*
* @package org.cocur.slugify
* @author Florian Eckerstorfer <florian@eckerstorfer.co>
* @author Marchenko Alexandr
* @copyright 2012-2014 Florian Eckerstorfer
* @license http://www.opensource.org/licenses/MIT The MIT License
*/
interface SlugifyInterface
{
/**
* Return a URL safe version of a string.
*
* @param string $string
* @param string|array|null $options
*
* @return string
*
* @api
*/
public function slugify(string $string, array|string|null $options = null): string;
}
"syntax error, unexpected '|', expecting variable (T_VARIABLE) (View: /home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/web/app/themes/tfs/resources/views/single.blade.php)"
*
* @param string $__path
* @param array $__data
* @return string
*/
protected function evaluatePath($__path, $__data)
{
$obLevel = ob_get_level();
ob_start();
extract($__data, EXTR_SKIP);
// We'll evaluate the contents of the view inside a try/catch block so we can
// flush out any stray output that might get out before an error occurs or
// an exception is thrown. This prevents any partial views from leaking.
try {
include $__path;
} catch (Throwable $e) {
$this->handleViewException($e, $obLevel);
}
return ltrim(ob_get_clean());
}
/**
* Handle a view exception.
*
* @param \Throwable $e
* @param int $obLevel
* @return void
*
* @throws \Throwable
*/
protected function handleViewException(Throwable $e, $obLevel)
{
while (ob_get_level() > $obLevel) {
ob_end_clean();
}
*
* @package org.cocur.slugify
* @author Florian Eckerstorfer <florian@eckerstorfer.co>
* @author Marchenko Alexandr
* @copyright 2012-2014 Florian Eckerstorfer
* @license http://www.opensource.org/licenses/MIT The MIT License
*/
interface SlugifyInterface
{
/**
* Return a URL safe version of a string.
*
* @param string $string
* @param string|array|null $options
*
* @return string
*
* @api
*/
public function slugify(string $string, array|string|null $options = null): string;
}
"syntax error, unexpected '|', expecting variable (T_VARIABLE)"
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
if (null !== $this->vendorDir) {
unset(self::$registeredLoaders[$this->vendorDir]);
}
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
* @return true|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
$includeFile = self::$includeFile;
$includeFile($file);
return true;
}
return null;
}
/**
* Finds the path to the file where the class is defined.
*
* @param string $class The name of the class
*
* @return string|false The path if found, false otherwise
*/
public function findFile($class)
{
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
}
*
* For the full copyright and license information, please view the LICENSE.md
* file that was distributed with this source code.
*
* ------------------------------------------------------------------
*/
declare(strict_types=1);
namespace TOC;
use Cocur\Slugify\Slugify;
use Cocur\Slugify\SlugifyInterface;
/**
* UniqueSlugify creates slugs from text without repeating the same slug twice per instance
*
* @author Casey McLaughlin <caseyamcl@gmail.com>
*/
class UniqueSlugify implements SlugifyInterface
{
/**
* @var SlugifyInterface
*/
private $slugify;
/**
* @var array
*/
private $used;
/**
* Constructor
*
* @param SlugifyInterface|null $slugify
*/
public function __construct(?SlugifyInterface $slugify = null)
{
$this->used = array();
$this->slugify = $slugify ?: new Slugify();
/**
* @return void
*/
private static function initializeIncludeClosure()
{
if (self::$includeFile !== null) {
return;
}
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*
* @param string $file
* @return void
*/
self::$includeFile = \Closure::bind(static function($file) {
include $file;
}, null, null);
}
}
"/home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/vendor/caseyamcl/toc/src/UniqueSlugify.php"
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
if (null !== $this->vendorDir) {
unset(self::$registeredLoaders[$this->vendorDir]);
}
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
* @return true|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
$includeFile = self::$includeFile;
$includeFile($file);
return true;
}
return null;
}
/**
* Finds the path to the file where the class is defined.
*
* @param string $class The name of the class
*
* @return string|false The path if found, false otherwise
*/
public function findFile($class)
{
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
}
/**
* @var HTML5
*/
private $htmlParser;
/**
* @var SlugifyInterface
*/
private $slugifier;
/**
* Constructor
*
* @param HTML5|null $htmlParser
* @param SlugifyInterface|null $slugify
*/
public function __construct(?HTML5 $htmlParser = null, ?SlugifyInterface $slugify = null)
{
$this->htmlParser = $htmlParser ?? new HTML5();
$this->slugifier = $slugify ?? new UniqueSlugify();
}
/**
* Fix markup
*
* @param string $markup
* @param int $topLevel
* @param int $depth
* @return string Markup with added IDs
* @throws RuntimeException
*/
public function fix(string $markup, int $topLevel = 1, int $depth = 6): string
{
if (! $this->isFullHtmlDocument($markup)) {
$partialID = uniqid('toc_generator_');
$markup = sprintf("<body id='%s'>%s</body>", $partialID, $markup);
}
$domDocument = $this->htmlParser->loadHTML($markup);
$domDocument->preserveWhiteSpace = true; // do not clobber whitespace
<?php
namespace App\View\Composers;
use DOMDocument;
use Roots\Acorn\View\Composer;
class BlogPost extends Composer
{
protected static $views = [
'partials.content-single',
];
public function override()
{
$fields = get_fields();
$htmlContent = apply_filters( 'the_content', get_the_content() );
$markupFixer = new \TOC\MarkupFixer();
$tocGenerator = new \TOC\TocGenerator();
$htmlContent = $markupFixer->fix($htmlContent);
$fields['toc'] = $tocGenerator->getOrderedHtmlMenu($htmlContent);
$fields['the_content'] = $htmlContent;
$fields['the_category'] = $this->getCategory();
return $fields;
}
public function getCategory() {
$category = null;
if(get_the_terms(get_the_id(), 'category')) {
foreach(get_the_terms(get_the_id(), 'category') as $term) {
if($term->name !== "Blog" && $term->name !== "Events" && $term->name !== "News") {
$category = $term;
return $category;
}
}
}
*/
public function compose(View $view)
{
$this->view = $view;
$this->data = new Fluent($view->getData());
$view->with($this->merge());
}
/**
* Data to be merged and passed to the view before rendering.
*
* @return array
*/
protected function merge()
{
return array_merge(
$this->with(),
$this->view->getData(),
$this->override()
);
}
/**
* Data to be passed to view before rendering
*
* @return array
*/
protected function with()
{
return [];
}
/**
* Data to be passed to view before rendering
*
* @return array
*/
protected function override()
{
return static::$views;
}
$view = array_slice(explode('\\', static::class), 3);
$view = array_map([Str::class, 'snake'], $view, array_fill(0, count($view), '-'));
return implode('/', $view);
}
/**
* Compose the view before rendering.
*
* @param \Illuminate\View\View $view
* @return void
*/
public function compose(View $view)
{
$this->view = $view;
$this->data = new Fluent($view->getData());
$view->with($this->merge());
}
/**
* Data to be merged and passed to the view before rendering.
*
* @return array
*/
protected function merge()
{
return array_merge(
$this->with(),
$this->view->getData(),
$this->override()
);
}
/**
* Data to be passed to view before rendering
*
* @return array
return $callback;
}
/**
* Build a class based container callback Closure.
*
* @param string $class
* @param string $prefix
* @return \Closure
*/
protected function buildClassEventCallback($class, $prefix)
{
[$class, $method] = $this->parseClassEvent($class, $prefix);
// Once we have the class and method name, we can build the Closure to resolve
// the instance out of the IoC container and call the method on it with the
// given arguments that are passed to the Closure as the composer's data.
return function () use ($class, $method) {
return $this->container->make($class)->{$method}(...func_get_args());
};
}
/**
* Parse a class based composer name.
*
* @param string $class
* @param string $prefix
* @return array
*/
protected function parseClassEvent($class, $prefix)
{
return Str::parseCallback($class, $this->classEventMethodForPrefix($prefix));
}
/**
* Determine the class event method based on the given prefix.
*
* @param string $prefix
* @return string
* @param \Closure|string $listener
* @param bool $wildcard
* @return \Closure
*/
public function makeListener($listener, $wildcard = false)
{
if (is_string($listener)) {
return $this->createClassListener($listener, $wildcard);
}
if (is_array($listener) && isset($listener[0]) && is_string($listener[0])) {
return $this->createClassListener($listener, $wildcard);
}
return function ($event, $payload) use ($listener, $wildcard) {
if ($wildcard) {
return $listener($event, $payload);
}
return $listener(...array_values($payload));
};
}
/**
* Create a class based listener using the IoC container.
*
* @param string $listener
* @param bool $wildcard
* @return \Closure
*/
public function createClassListener($listener, $wildcard = false)
{
return function ($event, $payload) use ($listener, $wildcard) {
if ($wildcard) {
return call_user_func($this->createClassCallable($listener), $event, $payload);
}
$callable = $this->createClassCallable($listener);
return $callable(...array_values($payload));
* @param bool $halt
* @return array|null
*/
public function dispatch($event, $payload = [], $halt = false)
{
// When the given "event" is actually an object we will assume it is an event
// object and use the class as the event name and this event itself as the
// payload to the handler, which makes object based events quite simple.
[$event, $payload] = $this->parseEventAndPayload(
$event, $payload
);
if ($this->shouldBroadcast($payload)) {
$this->broadcastEvent($payload[0]);
}
$responses = [];
foreach ($this->getListeners($event) as $listener) {
$response = $listener($event, $payload);
// If a response is returned from the listener and event halting is enabled
// we will just return this response, and not call the rest of the event
// listeners. Otherwise we will add the response on the response list.
if ($halt && ! is_null($response)) {
return $response;
}
// If a boolean false is returned from a listener, we will stop propagating
// the event to any further listeners down in the chain, else we keep on
// looping through the listeners and firing every one in our sequence.
if ($response === false) {
break;
}
$responses[] = $response;
}
return $halt ? null : $responses;
}
protected function addEventListener($name, $callback)
{
if (Str::contains($name, '*')) {
$callback = function ($name, array $data) use ($callback) {
return $callback($data[0]);
};
}
$this->events->listen($name, $callback);
}
/**
* Call the composer for a given view.
*
* @param \Illuminate\Contracts\View\View $view
* @return void
*/
public function callComposer(ViewContract $view)
{
$this->events->dispatch('composing: '.$view->name(), [$view]);
}
/**
* Call the creator for a given view.
*
* @param \Illuminate\Contracts\View\View $view
* @return void
*/
public function callCreator(ViewContract $view)
{
$this->events->dispatch('creating: '.$view->name(), [$view]);
}
}
} catch (Throwable $e) {
$this->factory->flushState();
throw $e;
}
}
/**
* Get the contents of the view instance.
*
* @return string
*/
protected function renderContents()
{
// We will keep track of the amount of views being rendered so we can flush
// the section after the complete rendering operation is done. This will
// clear out the sections for any separate views that may be rendered.
$this->factory->incrementRender();
$this->factory->callComposer($this);
$contents = $this->getContents();
// Once we've finished rendering the view, we'll decrement the render count
// so that each sections get flushed out next time a view is created and
// no old sections are staying around in the memory of an environment.
$this->factory->decrementRender();
return $contents;
}
/**
* Get the evaluated contents of the view.
*
* @return string
*/
protected function getContents()
{
return $this->engine->get($this->path, $this->gatherData());
}
$this->view = $view;
$this->path = $path;
$this->engine = $engine;
$this->factory = $factory;
$this->data = $data instanceof Arrayable ? $data->toArray() : (array) $data;
}
/**
* Get the string contents of the view.
*
* @param callable|null $callback
* @return array|string
*
* @throws \Throwable
*/
public function render(callable $callback = null)
{
try {
$contents = $this->renderContents();
$response = isset($callback) ? $callback($this, $contents) : null;
// Once we have the contents of the view, we will flush the sections if we are
// done rendering all views so that there is nothing left hanging over when
// another view gets rendered in the future by the application developer.
$this->factory->flushStateIfDoneRendering();
return ! is_null($response) ? $response : $contents;
} catch (Throwable $e) {
$this->factory->flushState();
throw $e;
}
}
/**
* Get the contents of the view instance.
*
* @return string
<?php $__env->startSection('content'); ?>
<?php while(have_posts()): ?> <?php (the_post()); ?>
<?php echo $__env->first(['partials.content-single-' . get_post_type(), 'partials.content-single'], \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
<?php endwhile; ?>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('layouts.app', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/web/app/themes/tfs/resources/views/single.blade.php ENDPATH**/ ?>
/**
* Get the evaluated contents of the view at the given path.
*
* @param string $__path
* @param array $__data
* @return string
*/
protected function evaluatePath($__path, $__data)
{
$obLevel = ob_get_level();
ob_start();
extract($__data, EXTR_SKIP);
// We'll evaluate the contents of the view inside a try/catch block so we can
// flush out any stray output that might get out before an error occurs or
// an exception is thrown. This prevents any partial views from leaking.
try {
include $__path;
} catch (Throwable $e) {
$this->handleViewException($e, $obLevel);
}
return ltrim(ob_get_clean());
}
/**
* Handle a view exception.
*
* @param \Throwable $e
* @param int $obLevel
* @return void
*
* @throws \Throwable
*/
protected function handleViewException(Throwable $e, $obLevel)
{
while (ob_get_level() > $obLevel) {
ob_end_clean();
"/home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/web/app/themes/tfs/storage/framework/views/eb422c8beb3d93cfa2fe08ce3b438f23bc0fae21.php"
*
* @param string $path
* @param array $data
* @return string
*/
public function get($path, array $data = [])
{
$this->lastCompiled[] = $path;
// If this given view has expired, which means it has simply been edited since
// it was last compiled, we will re-compile the views so we can evaluate a
// fresh copy of the view. We'll pass the compiler the path of the view.
if ($this->compiler->isExpired($path)) {
$this->compiler->compile($path);
}
// Once we have the path to the compiled file, we will evaluate the paths with
// typical PHP just like any other templates. We also keep a stack of views
// which have been rendered for right exception messages to be generated.
$results = $this->evaluatePath($this->compiler->getCompiledPath($path), $data);
array_pop($this->lastCompiled);
return $results;
}
/**
* Handle a view exception.
*
* @param \Throwable $e
* @param int $obLevel
* @return void
*
* @throws \Throwable
*/
protected function handleViewException(Throwable $e, $obLevel)
{
$e = new ViewException($this->getMessage($e), 0, 1, $e->getFile(), $e->getLine(), $e);
parent::handleViewException($e, $obLevel);
$this->factory->callComposer($this);
$contents = $this->getContents();
// Once we've finished rendering the view, we'll decrement the render count
// so that each sections get flushed out next time a view is created and
// no old sections are staying around in the memory of an environment.
$this->factory->decrementRender();
return $contents;
}
/**
* Get the evaluated contents of the view.
*
* @return string
*/
protected function getContents()
{
return $this->engine->get($this->path, $this->gatherData());
}
/**
* Get the data bound to the view instance.
*
* @return array
*/
public function gatherData()
{
$data = array_merge($this->factory->getShared(), $this->data);
foreach ($data as $key => $value) {
if ($value instanceof Renderable) {
$data[$key] = $value->render();
}
}
return $data;
}
throw $e;
}
}
/**
* Get the contents of the view instance.
*
* @return string
*/
protected function renderContents()
{
// We will keep track of the amount of views being rendered so we can flush
// the section after the complete rendering operation is done. This will
// clear out the sections for any separate views that may be rendered.
$this->factory->incrementRender();
$this->factory->callComposer($this);
$contents = $this->getContents();
// Once we've finished rendering the view, we'll decrement the render count
// so that each sections get flushed out next time a view is created and
// no old sections are staying around in the memory of an environment.
$this->factory->decrementRender();
return $contents;
}
/**
* Get the evaluated contents of the view.
*
* @return string
*/
protected function getContents()
{
return $this->engine->get($this->path, $this->gatherData());
}
/**
$this->view = $view;
$this->path = $path;
$this->engine = $engine;
$this->factory = $factory;
$this->data = $data instanceof Arrayable ? $data->toArray() : (array) $data;
}
/**
* Get the string contents of the view.
*
* @param callable|null $callback
* @return array|string
*
* @throws \Throwable
*/
public function render(callable $callback = null)
{
try {
$contents = $this->renderContents();
$response = isset($callback) ? $callback($this, $contents) : null;
// Once we have the contents of the view, we will flush the sections if we are
// done rendering all views so that there is nothing left hanging over when
// another view gets rendered in the future by the application developer.
$this->factory->flushStateIfDoneRendering();
return ! is_null($response) ? $response : $contents;
} catch (Throwable $e) {
$this->factory->flushState();
throw $e;
}
}
/**
* Get the contents of the view instance.
*
* @return string
<!doctype html>
<html <?php language_attributes(); ?>>
<?php echo \Roots\view(\Roots\app('sage.view'), \Roots\app('sage.data'))->render(); ?>
</html>
}
break;
}
}
if ( ! $template ) {
$template = get_index_template();
}
/**
* Filters the path of the current template before including it.
*
* @since 3.0.0
*
* @param string $template The path of the template to include.
*/
$template = apply_filters( 'template_include', $template );
if ( $template ) {
include $template;
} elseif ( current_user_can( 'switch_themes' ) ) {
$theme = wp_get_theme();
if ( $theme->errors() ) {
wp_die( $theme->errors() );
}
}
return;
}
"/home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/web/app/themes/tfs/index.php"
<?php
/**
* Loads the WordPress environment and template.
*
* @package WordPress
*/
if ( ! isset( $wp_did_header ) ) {
$wp_did_header = true;
// Load the WordPress library.
require_once __DIR__ . '/wp-load.php';
// Set up the WordPress query.
wp();
// Load the theme template.
require_once ABSPATH . WPINC . '/template-loader.php';
}
"/home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/web/wp/wp-includes/template-loader.php"
<?php
/**
* WordPress View Bootstrapper
*/
define('WP_USE_THEMES', true);
require __DIR__ . '/wp/wp-blog-header.php';
"/home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/web/wp/wp-blog-header.php"
Key | Value |
query_vars | array:3 [ "page" => "" "name" => "panel-of-indigenous-filmmakers-tackle-topic-of-cinema-as-a-form-of-social-protest" "category_name" => "blog" ] |
query_string | "name=panel-of-indigenous-filmmakers-tackle-topic-of-cinema-as-a-form-of-social-protest&category_name=blog"
|
request | "blog/panel-of-indigenous-filmmakers-tackle-topic-of-cinema-as-a-form-of-social-protest"
|
matched_rule | "(.+?)/([^/]+)(?:/([0-9]+))?/?$"
|
matched_query | "category_name=blog&name=panel-of-indigenous-filmmakers-tackle-topic-of-cinema-as-a-form-of-social-protest&page="
|
did_permalink | true
|
Key | Value |
query | array:3 [ "page" => "" "name" => "panel-of-indigenous-filmmakers-tackle-topic-of-cinema-as-a-form-of-social-protest" "category_name" => "blog" ] |
query_vars | array:66 [ "page" => 0 "name" => "panel-of-indigenous-filmmakers-tackle-topic-of-cinema-as-a-form-of-social-protest" "category_name" => "blog" "error" => "" "m" => "" "p" => 0 "post_parent" => "" "subpost" => "" "subpost_id" => "" "attachment" => "" "attachment_id" => 0 "pagename" => "" "page_id" => 0 "second" => "" "minute" => "" "hour" => "" "day" => 0 "monthnum" => 0 "year" => 0 "w" => 0 "tag" => "" "cat" => "" "tag_id" => "" "author" => "" "author_name" => "" "feed" => "" "tb" => "" "paged" => 0 "meta_key" => "" "meta_value" => "" "preview" => "" "s" => "" "sentence" => "" "title" => "" "fields" => "" "menu_order" => "" "embed" => "" "category__in" => [] "category__not_in" => [] "category__and" => [] "post__in" => [] "post__not_in" => [] "post_name__in" => [] "tag__in" => [] "tag__not_in" => [] "tag__and" => [] "tag_slug__in" => [] "tag_slug__and" => [] "post_parent__in" => [] "post_parent__not_in" => [] "author__in" => [] "author__not_in" => [] "search_columns" => [] "ignore_sticky_posts" => false "suppress_filters" => false "cache_results" => true "update_post_term_cache" => true "update_menu_item_cache" => false "lazy_load_term_meta" => true "update_post_meta_cache" => true "post_type" => "" "posts_per_page" => 10 "nopaging" => false "comments_per_page" => "50" "no_found_rows" => false "order" => "DESC" ] |
meta_query | WP_Meta_Query {#2559} |
queried_object | WP_Post {#2560} |
queried_object_id | 21760
|
request | """ SELECT wp_posts.*\n \t\t\t\t\t FROM wp_posts \n \t\t\t\t\t WHERE 1=1 AND wp_posts.post_name = 'panel-of-indigenous-filmmakers-tackle-topic-of-cinema-as-a-form-of-social-protest' AND wp_posts.post_type = 'post'\n \t\t\t\t\t \n \t\t\t\t\t ORDER BY wp_posts.post_date DESC\n \t\t\t\t\t """ |
post_count | 1
|
in_the_loop | true
|
current_comment | -1
|
found_posts | 1
|
is_single | true
|
is_singular | true
|
Key | Value |
ID | 21760
|
post_author | "43"
|
post_date | "2020-12-07 15:43:04"
|
post_date_gmt | "2020-12-07 15:43:04"
|
post_content | """ “Now go forth and be awesome!”\n \n \n \n That was the crux of the motivational messaging delivered to the nearly 700 graduates who took part in Toronto Film School’s first-ever virtual convocation ceremony, which was recently live-streamed to an audience of more an 1,000 people from all around the world.\n \n \n <p style="text-align: center;"><iframe src="https://www.youtube.com/embed/LKtHVP4aa-E" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>\n \n \n “This is certainly different. Normally, I would be welcoming you to the Toronto Arts Centre and I’d be staring out at you and your family and friends packed into a 500-seat venue,” Dr. Rick Davey, President of Toronto Film School, explained to graduates in his opening remarks.\n \n \n \n “Not this year. This year, I’m in the <a href="https://www.facebook.com/TorontoFilmSchool/videos/425293061594990" target="_blank" rel="noopener noreferrer">Rick Bennett</a> Studio and you are anywhere you want to be. Yet, the important matters remain. You have graduated, and I and my colleagues are excited to greet you and to celebrate your achievements.”\n \n \n \n Over the course of the 90-minute celebration that followed, Toronto Film School paid tribute to the hard work and dedication demonstrated by the members of its Class of 2019 and 2020 graduates. The full ceremony can be viewed <a href="https://youtu.be/NPL18gcfKsA" target="_blank" rel="noopener noreferrer">here</a>.\n \n \n \n <img class="alignnone size-medium wp-image-21667 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2020/11/TFS_ALL_StudentsGrad1_1126.jpg" alt="" width="670" height="393" />\n \n \n \n In total, 698 graduates marked their convocation from Toronto Film School’s array of on-campus and online programs, including: <a href="https://www.torontofilmschool.ca/programs/acting-for-film-tv-and-the-theatre-diploma/" target="_blank" rel="noopener noreferrer">Acting for Film, TV & the Theatre</a>; <a href="https://www.torontofilmschool.ca/programs/fashion-design-diploma/" target="_blank" rel="noopener noreferrer">Fashion Design</a>; <a href="https://www.torontofilmschool.ca/programs/film-production-diploma/" target="_blank" rel="noopener noreferrer">Film Production</a>; <a href="https://www.torontofilmschool.ca/programs/graphic-design-interactive-media-diploma/" target="_blank" rel="noopener noreferrer">Graphic Design & Interactive Media</a>; <a href="https://www.torontofilmschool.ca/programs/marketing-fashion-entertainment/" target="_blank" rel="noopener noreferrer">Marketing for Fashion & Entertainment</a>; <a href="https://www.torontofilmschool.ca/programs/video-game-design-animation/" target="_blank" rel="noopener noreferrer">Video Game Design & Animation</a>; <a href="https://www.torontofilmschool.ca/programs/video-game-design-development/" target="_blank" rel="noopener noreferrer">Video Game Design & Development</a>; <a href="https://online.torontofilmschool.ca/programs/video-production-diploma/" target="_blank" rel="noopener noreferrer">Video Production</a>; and <a href="https://www.torontofilmschool.ca/programs/writing-for-film-tv-diploma/" target="_blank" rel="noopener noreferrer">Writing for Film & Television</a>.\n \n \n \n During his keynote address, Toronto Film School’s <a href="https://www.torontofilmschool.ca/blog/andrew-barnsley-executive-producer-schitts-creek-joins-toronto-film-school-executive-producer-residence/" target="_blank" rel="noopener noreferrer">Executive Producer in Residence</a> <a href="http://www.project10.ca/about" target="_blank" rel="noopener noreferrer">Andrew Barnsley</a> lauded graduates for their “monumental” achievements in the face of the COVID-19 pandemic – drawing parallels between their academic successes and his professional ones.\n \n \n \n “Like you, I had a tough year…But, like you, I had something monumental to celebrate in 2020: a television series that I poured my heart and soul into over the last seven years of my life made history,” he said, referencing <em><a href="https://www.cbc.ca/schittscreek/m_site/" target="_blank" rel="noopener noreferrer">Schitt’s Creek</a></em>’s <a href="https://www.torontofilmschool.ca/blog/andrew-barnsley-celebrates-schitts-creeks-historic-night-at-emmys/" target="_blank" rel="noopener noreferrer">unprecedented Emmy run</a>.\n \n \n \n “I had a 2020 moment when I needed it most, just like you are having your moment right now.”\n \n \n <p style="text-align: center;"><iframe src="https://www.youtube.com/embed/5H8LrNiF4hY" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>\n \n \n And just as he did when celebrating his Emmy wins, Barnsley urged Toronto Film School graduates to take time out to reflect on everything and everyone who helped contribute to their success – from the family and friends who helped shape their worldviews, to the risks they took to pursue their passions, to the classrooms where they laid their educational foundations upon which their future careers will be built.\n \n \n \n “I thought about my life from every angle possible to fully grasp what my Emmy achievement meant, and I encourage you all to do the same with your graduation,” Barnsley urged.\n \n \n \n “When you leave…here today, think about what you’ve done here at Toronto Film School. Think about where you’re going. Think about your people and why you’re on this path. Think about what gets you out of bed in the morning. Think about your dream. Think about the risks you’ve already taken to get here and what you’ve learned from them,” he added.\n \n \n \n “Now is a time for reflection, and believe me, when you go through the process of truly taking inventory, you are going to inspire yourselves and recognize that you’re only getting started…You’ve all built yourselves a solid foundation that’s going to open doors and create opportunities for you for the rest of your life. But you’re just getting started. Dream big, stay focused, and be accountable to you.”\n \n \n <p style="text-align: center;"><iframe src="https://www.youtube.com/embed/IyRRBRJvBgc" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>\n \n \n Upon reflecting back on her time at Toronto Film School, Davisville Campus valedictorian <a href="https://www.torontofilmschool.ca/blog/finding-her-perfect-fit-alanna-moness-marketing-for-fashion-entertainment-story/" target="_blank" rel="noopener noreferrer">Alanna Moness</a> characterized the last 18 months as a “truly transformative time.”\n \n \n \n “I can’t help but compare myself to the person I was just a mere two years ago. In addition to earning the diploma I worked very hard for, I am proud to say that my studies at Toronto Film School gave me the confidence, direction and career path that cannot be taught anywhere else,” said the <a href="https://www.torontofilmschool.ca/programs/marketing-fashion-entertainment/" target="_blank" rel="noopener noreferrer">Marketing for Fashion & Entertainment</a> grad who aspires to a career in merchandising or allocation with <a href="https://www.aritzia.com/en/home" target="_blank" rel="noopener noreferrer">Aritzia</a>.\n \n \n \n “Both my personal and my intellectual growth are a true testament to Toronto Film School’s faculty and curriculum. And for that, I am forever grateful.”\n \n \n <p style="text-align: center;"><iframe src="https://www.youtube.com/embed/mxpwbjDUZec" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>\n \n \n That sentiment was echoed by Toronto Film School Online valedictorian <a href="https://www.torontofilmschool.ca/blog/video-production-is-not-a-job-its-an-adventure-jury-rodionovs-tfs-story/" target="_blank" rel="noopener noreferrer">Jury Rodionov</a>, who graduated from the <a href="https://online.torontofilmschool.ca/programs/video-production-diploma/" target="_blank" rel="noopener noreferrer">Video Production</a> program.\n \n \n \n “I cannot believe it is our graduation today, but it does not feel like it’s the end of an era. I feel like it is the beginning of a journey today – a fantastic journey where there’s never a dull moment…,” he said, lauding TFSO faculty for preparing him to launch his new career as a cinematographer, sound mixer and producer behind many different TV and web series, commercials, music videos and short films.\n \n \n \n “The one thing I know for sure is that we begin our careers today and it is not just another ordinary job. It is an adventure, and that adventure began when we joined Toronto Film School.”\n \n \n <p style="text-align: center;"><iframe src="https://www.youtube.com/embed/Yby5SyIMtWE" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>\n \n \n For actor-turned-screenwriter <a href="https://www.torontofilmschool.ca/blog/from-child-actor-to-lgbtq-screenwriter-rodney-roys-writing-for-film-tv-story/" target="_blank" rel="noopener noreferrer">Rodney Roy</a>, graduating with a <a href="https://www.torontofilmschool.ca/programs/writing-for-film-tv-diploma/" target="_blank" rel="noopener noreferrer">Writing for Film & Television</a> diploma as College Dundas Campus’ valedictorian marked a major milestone in the pursuit of his passion.\n \n \n \n “My fellow graduates, today we celebrate a major achievement in our academic lives, as well as the sacrifice and hard work that went into it. It wasn’t easy, but we did it. Today we graduate…with a competitive portfolio and the training it takes to make it in our respective fields and create our own stories,” he said.\n \n \n \n “Graduating from TFS is undeniably the happiest and proudest day of my life, and all I can do I smile and shake my head at how long it took me to get here. It’s true what I’m about to say: It doesn’t matter how much time it takes you to get your shit together, just as long as you do.”\n \n \n \n <img class="size-medium wp-image-21672 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2020/11/TFS_ALL_StudentsGrad2_1126.jpg" alt="" width="670" height="393" />\n \n \n <p style="text-align: center;"><strong>2020 Program Valedictorians: </strong></p>\n <p style="text-align: center;"><strong> </strong></p>\n <p style="text-align: center;">- Acting for Film, TV & the Theatre – <a href="https://www.torontofilmschool.ca/blog/finding-his-true-calling-trenton-hawkins-acting-for-film-tv-the-theatre-story/" target="_blank" rel="noopener noreferrer">Trenton Hawkins</a></p>\n <p style="text-align: center;">- Fashion Design - <a href="https://www.torontofilmschool.ca/blog/rework-repurpose-recycle-shannan-mackenzie-halls-fashion-design-story/" target="_blank" rel="noopener noreferrer">Shannan MacKenzie-Hall</a></p>\n <p style="text-align: center;">- Film Production - <a href="https://www.torontofilmschool.ca/blog/finding-her-bliss-siobhan-kielys-film-production-story/" target="_blank" rel="noopener noreferrer">Siobhan Kiely</a></p>\n <p style="text-align: center;">- Graphic Design & Interactive Media - <a href="https://www.torontofilmschool.ca/blog/uncovering-her-creativity-connection-emilee-lemires-graphic-design-story/" target="_blank" rel="noopener noreferrer">Emilee Lemire</a></p>\n <p style="text-align: center;">- Marketing for Fashion & Entertainment - <a href="https://www.torontofilmschool.ca/blog/finding-her-perfect-fit-alanna-moness-marketing-for-fashion-entertainment-story/" target="_blank" rel="noopener noreferrer">Alanna Moness</a></p>\n <p style="text-align: center;">- Online Graphic Design & Interactive Media - <a href="https://www.torontofilmschool.ca/blog/third-times-a-charm-zach-derbeckers-online-graphic-design-interactive-media-story/" target="_blank" rel="noopener noreferrer">Zach Derbecker</a></p>\n <p style="text-align: center;">- Online Video Game Animation - <a href="https://www.torontofilmschool.ca/blog/tfs-online-video-game-student-lands-coveted-job-at-behaviour-interactive/" target="_blank" rel="noopener noreferrer">Nathaniel Rudichuk</a></p>\n <p style="text-align: center;">- Online Video Production - <a href="https://www.torontofilmschool.ca/blog/video-production-is-not-a-job-its-an-adventure-jury-rodionovs-tfs-story/" target="_blank" rel="noopener noreferrer">Jury Rodionov</a></p>\n <p style="text-align: center;">- Online Writing for Film & Television - <a href="https://www.torontofilmschool.ca/blog/reconsidering-his-options-adam-mays-online-writing-for-film-television-story/" target="_blank" rel="noopener noreferrer">Adam May</a></p>\n <p style="text-align: center;">- Video Game Design & Animation - <a href="https://www.torontofilmschool.ca/blog/teamwork-makes-the-dream-work-priscille-beaulieaus-video-game-design-animation-story/" target="_blank" rel="noopener noreferrer">Priscille Beaulieu</a></p>\n <p style="text-align: center;">- Video Game Design & Development - <a href="https://www.torontofilmschool.ca/blog/in-pursuit-of-enlightenment-sergio-chirazs-video-game-development-story/" target="_blank" rel="noopener noreferrer">Sergio Chiraz</a></p>\n <p style="text-align: center;">- Writing for Film & Television - <a href="https://www.torontofilmschool.ca/blog/from-child-actor-to-lgbtq-screenwriter-rodney-roys-writing-for-film-tv-story/" target="_blank" rel="noopener noreferrer">Rodney Roy</a></p>\n \n <p style="text-align: center;"><strong>2020 Program Awards: </strong></p>\n <p style="text-align: center;"><strong> </strong></p>\n <p style="text-align: center;">- Best Video Game Developer | Jackie Ching Ting Lin</p>\n <p style="text-align: center;">- Creativity in Business – Fashion Design | <a href="https://www.torontofilmschool.ca/blog/rework-repurpose-recycle-shannan-mackenzie-halls-fashion-design-story/" target="_blank" rel="noopener noreferrer">Shannan MacKenzie-Hall</a></p>\n <p style="text-align: center;">- Creativity in Business – Marketing for Fashion & Entertainment | Margaret McConkey</p>\n <p style="text-align: center;">- Excellence in Graphic Design | Wynand Vanluttikhuizen</p>\n <p style="text-align: center;">- Best Actor | Joseph Dancey</p>\n <p style="text-align: center;">- Distinguished Filmmaker | Maxim Baraliuc</p>\n <p style="text-align: center;">- Best Screenwriter | Gabriel Bastidas & Rebecca Black</p>\n \n <p style="text-align: center;"><strong>2020 President’s Awards (graduating student with highest cumulative average):</strong></p>\n <p style="text-align: center;"><strong> </strong></p>\n <p style="text-align: center;">- Video Game Design & Animation | Anthony Rietze</p>\n <p style="text-align: center;">- Fashion Design | <a href="https://www.torontofilmschool.ca/blog/rework-repurpose-recycle-shannan-mackenzie-halls-fashion-design-story/" target="_blank" rel="noopener noreferrer">Shannan MacKenzie-Hall</a></p>\n <p style="text-align: center;">- Marketing for Fashion & Entertainment | <a href="https://www.torontofilmschool.ca/blog/finding-her-perfect-fit-alanna-moness-marketing-for-fashion-entertainment-story/" target="_blank" rel="noopener noreferrer">Alanna Moness</a></p>\n <p style="text-align: center;">- Graphic Design & Interactive Media | <a href="https://www.torontofilmschool.ca/blog/uncovering-her-creativity-connection-emilee-lemires-graphic-design-story/" target="_blank" rel="noopener noreferrer">Emilee Lemire</a></p>\n <p style="text-align: center;">- Acting for Film, TV & the Theatre | Heather Hedley</p>\n <p style="text-align: center;">- Film Production | <a href="https://www.torontofilmschool.ca/blog/finding-her-bliss-siobhan-kielys-film-production-story/" target="_blank" rel="noopener noreferrer">Siobhan Kiely </a></p>\n <p style="text-align: center;">- Writing for Film & Television | Misty Lambert</p>\n <p style="text-align: center;">- Video Production | <a href="https://www.torontofilmschool.ca/blog/video-production-is-not-a-job-its-an-adventure-jury-rodionovs-tfs-story/" target="_blank" rel="noopener noreferrer">Jury Rodionov</a></p>\n \n \n <img class="alignnone size-medium wp-image-21666 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2020/11/TFS_ALL_RickDaveyGrad_1126.jpg" alt="" width="670" height="393" />\n \n \n \n To close out the night, Davey took one last chance to congratulate Toronto Film School’s newly minted alumni and reflect on why graduations are his favourite celebrations.\n \n \n \n “Your parents, partners, children are thinking about what you have achieved. They are looking forward to all the possibilities ahead. And that’s why graduations are such special events,” he said.\n \n \n \n “They identify the people who matter to you and they evoke memories and possibilities for everyone involved. And that’s why graduations are my favourite celebrations – perhaps especially this year, when we yearn for something special.”\n \n \n \n """ |
post_title | "Panel of Indigenous Filmmakers Tackle Topic of Cinema as a Form of Social Protest"
|
post_excerpt | "" |
post_status | "publish"
|
comment_status | "closed"
|
ping_status | "open"
|
post_password | "" |
post_name | "panel-of-indigenous-filmmakers-tackle-topic-of-cinema-as-a-form-of-social-protest"
|
to_ping | "" |
pinged | "" |
post_modified | "2023-03-27 21:07:44"
|
post_modified_gmt | "2023-03-27 21:07:44"
|
post_content_filtered | "" |
post_parent | 0
|
guid | "https://dev.tfs.staging.poundandgrain.ca/?p=21760"
|
menu_order | 0
|
post_type | "post"
|
post_mime_type | "" |
comment_count | "0"
|
filter | "raw"
|
Key | Value |
SERVER_SOFTWARE | "nginx/1.22.1"
|
REQUEST_URI | "/blog/panel-of-indigenous-filmmakers-tackle-topic-of-cinema-as-a-form-of-social-protest/"
|
USER | "forge"
|
HOME | "/home/forge"
|
HTTP_REFERER | "https://dev.tfs.staging.poundandgrain.ca/blog/panel-of-indigenous-filmmakers-tackle-topic-of-cinema-as-a-form-of-social-protest"
|
HTTP_ACCEPT_ENCODING | "gzip, br, zstd, deflate"
|
HTTP_USER_AGENT | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
|
HTTP_ACCEPT | "*/*"
|
HTTP_HOST | "dev.tfs.staging.poundandgrain.ca"
|
REDIRECT_STATUS | "200"
|
HTTPS | "on"
|
SERVER_NAME | "dev.tfs.staging.poundandgrain.ca"
|
SERVER_PORT | "443"
|
SERVER_ADDR | "10.0.1.187"
|
REMOTE_PORT | "38886"
|
REMOTE_ADDR | "18.117.76.180"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
SERVER_PROTOCOL | "HTTP/2.0"
|
DOCUMENT_ROOT | "/home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/web"
|
DOCUMENT_URI | "/index.php"
|
SCRIPT_NAME | "/index.php"
|
SCRIPT_FILENAME | "/home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/web/index.php"
|
CONTENT_LENGTH | "" |
CONTENT_TYPE | "" |
REQUEST_METHOD | "GET"
|
QUERY_STRING | "" |
FCGI_ROLE | "RESPONDER"
|
PHP_SELF | "/index.php"
|
REQUEST_TIME_FLOAT | 1731871951.6214
|
REQUEST_TIME | 1731871951
|
DB_NAME | "tfs_dev"
|
DB_USER | "***"
|
DB_PASSWORD | "************"
|
WP_ENV | "development"
|
WP_HOME | "https://dev.tfs.staging.poundandgrain.ca"
|
WP_SITEURL | "https://dev.tfs.staging.poundandgrain.ca/wp"
|
WP_DEBUG_LOG | "/path/to/debug.log"
|
AUTH_KEY | "****************************************************************"
|
SECURE_AUTH_KEY | "****************************************************************"
|
LOGGED_IN_KEY | "****************************************************************"
|
NONCE_KEY | "****************************************************************"
|
AUTH_SALT | "****************************************************************"
|
SECURE_AUTH_SALT | "****************************************************************"
|
LOGGED_IN_SALT | "****************************************************************"
|
NONCE_SALT | "****************************************************************"
|
ACF_PRO_KEY | "b3JkZXJfaWQ9NDQxMjV8dHlwZT1kZXZlbG9wZXJ8ZGF0ZT0yMDE0LTExLTEyIDA2OjA0OjE3"
|
Key | Value |
DB_NAME | "tfs_dev"
|
DB_USER | "***"
|
DB_PASSWORD | "************"
|
WP_ENV | "development"
|
WP_HOME | "https://dev.tfs.staging.poundandgrain.ca"
|
WP_SITEURL | "https://dev.tfs.staging.poundandgrain.ca/wp"
|
WP_DEBUG_LOG | "/path/to/debug.log"
|
AUTH_KEY | "****************************************************************"
|
SECURE_AUTH_KEY | "****************************************************************"
|
LOGGED_IN_KEY | "****************************************************************"
|
NONCE_KEY | "****************************************************************"
|
AUTH_SALT | "****************************************************************"
|
SECURE_AUTH_SALT | "****************************************************************"
|
LOGGED_IN_SALT | "****************************************************************"
|
NONCE_SALT | "****************************************************************"
|
ACF_PRO_KEY | "b3JkZXJfaWQ9NDQxMjV8dHlwZT1kZXZlbG9wZXJ8ZGF0ZT0yMDE0LTExLTEyIDA2OjA0OjE3"
|