*
* @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" => "toronto-film-school-celebrates-class-of-2022-with-gala-graduation-celebration" "category_name" => "news" ] |
query_string | "name=toronto-film-school-celebrates-class-of-2022-with-gala-graduation-celebration&category_name=news"
|
request | "news/toronto-film-school-celebrates-class-of-2022-with-gala-graduation-celebration"
|
matched_rule | "(.+?)/([^/]+)(?:/([0-9]+))?/?$"
|
matched_query | "category_name=news&name=toronto-film-school-celebrates-class-of-2022-with-gala-graduation-celebration&page="
|
did_permalink | true
|
Key | Value |
query | array:3 [ "page" => "" "name" => "toronto-film-school-celebrates-class-of-2022-with-gala-graduation-celebration" "category_name" => "news" ] |
query_vars | array:66 [ "page" => 0 "name" => "toronto-film-school-celebrates-class-of-2022-with-gala-graduation-celebration" "category_name" => "news" "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 | 26857
|
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 = 'toronto-film-school-celebrates-class-of-2022-with-gala-graduation-celebration' 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 | 26857
|
post_author | "43"
|
post_date | "2022-11-23 17:43:14"
|
post_date_gmt | "2022-11-23 17:43:14"
|
post_content | """ <img class="alignnone size-full wp-image-26870 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_2022Grad_Stage_1117.jpg" alt="" width="650" height="450" />\n \n \n <p style="font-weight: 400">“Now go forth and be bold!”</p>\n \n <p style="font-weight: 400">It was with that call to action that 350 up-and-coming creatives closed one chapter in their lives as students and opened up a new one full of exciting career possibilities as newly minted graduates of <a href="https://www.torontofilmschool.ca/" target="_blank" rel="noopener noreferrer">Toronto Film School</a>.</p>\n \n \n [caption id="attachment_27043" align="aligncenter" width="650"]<img class="wp-image-27043 size-full" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_2022Grad_BarnsleyPodium_1207.jpg" alt="" width="650" height="450" /> Toronto Film School President Andrew Barnsley[/caption]\n \n \n \n “Today is a day of celebration. The programs you’ve completed are formidable: they challenge both your creativity and your competency and are designed to help you realize the potential of your dreams...Be proud of what you have accomplished here,” Toronto Film School’s <a href="https://www.torontofilmschool.ca/blog/toronto-film-school-poised-for-global-greatness-with-andrew-barnsley-at-the-helm-as-newly-named-president/" target="_blank" rel="noopener noreferrer">Emmy and Golden Globe-winning President</a>, <a href="https://www.imdb.com/name/nm2367266/?ref_=fn_al_nm_0" target="_blank" rel="noopener noreferrer">Andrew Barnsley</a>, said in his opening address to graduates.\n \n \n <p style="font-weight: 400">“Careers in the creative industries are very powerful and important, and we know now more than ever the importance of storytelling and elevating voices, so congratulations – you are one step further along on that path.”</p>\n \n <p style="text-align: center">[youtube https://www.youtube.com/watch?v=U0vR-tbmCNc]</p>\n \n <p style="font-weight: 400">Held on Thursday, Nov. 17 at the <a href="https://www.mtccc.com/" target="_blank" rel="noopener noreferrer">Metro Toronto Convention Centre</a>, Toronto Film School’s 2022 Graduation Gala Ceremony drew a near-capacity crowd of graduates’ family members and friends, who were on hand to cheer their loved ones on as they sauntered, strolled and even sashayed across the stage at the<a href="https://www.mtccc.com/facility/rooms-and-spaces/theatre/" target="_blank" rel="noopener noreferrer"> John W.H. Bassett Theatre</a> to collect their scrolls.</p>\n \n <p style="font-weight: 400">The lively two-hour ceremony saw the conferment of diplomas across the range of on-campus and online programs offered at Toronto Film School – including <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/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/writing-for-film-tv-diploma/" target="_blank" rel="noopener noreferrer">Writing for Film & Television</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/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>, <a href="https://online.torontofilmschool.ca/programs/designing-for-fashion-diploma/" target="_blank" rel="noopener noreferrer">Designing for Fashion</a>, and <a href="https://online.torontofilmschool.ca/programs/visual-effects-vfx-diploma/" target="_blank" rel="noopener noreferrer">Visual Effects for Film & Television</a>.</p>\n \n \n [caption id="attachment_26860" align="aligncenter" width="650"]<img class="wp-image-26860 size-full" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_2022Grad_GaveLindo_1117.jpg" alt="Distinguished Speaker Gave Lindo, Head of Content Programming for TikTok North America" width="650" height="450" /> Distinguished Speaker Gave Lindo, Head of Content Programming for TikTok North America[/caption]\n \n \n <p style="font-weight: 400">The ceremony’s special Distinguished Speaker, <a href="https://www.linkedin.com/in/gavelindo/?originalSubdomain=ca" target="_blank" rel="noopener noreferrer">Gave Lindo</a>, spoke to the importance of each graduate’s creative pursuit and why they matter in today’s world – a world in which a person’s individual contributions cannot only provide personal meaning, but can now also be scaled to reach “millions of people around the world.”</p>\n \n <p style="font-weight: 400">“Producers, your productions will feature stories that will inspire and entertain; screenwriters, your words will tell stories that will remind us of who we are; actors, your performances bring stories to life; VFX creators, your creations will help us see the impossible,” said Lindo, the Head of Content Programming for <a href="https://www.tiktok.com/en/" target="_blank" rel="noopener noreferrer">TikTok</a> in North America.</p>\n \n <p style="font-weight: 400">“Graphic and media designers, your creativity will shape how we see the world; fashion designers, your designs will determine how we see ourselves in the world; and video game designers, developers and animators, your imagination will build new worlds.”</p>\n \n \n <img class="alignnone size-full wp-image-27049 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS-Inside-Track-Poster-Ep-1-YT-Thumbnail-5.jpg" alt="" width="650" height="450" />\n \n \n <p style="font-weight: 400">Lindo also urged graduates to take seriously the influential power they now wield as the next generation of up-and-coming creatives, and to commit to being a “positive force” in their chosen fields.</p>\n \n <p style="font-weight: 400">“The creative industries have been a source of so much inspiration, but have also grappled with a number of issues, from unsafe work environments, lack of diversity and representation, and the issues brought to the forefront by the <a href="https://metoomvmt.org/" target="_blank" rel="noopener noreferrer">#MeToo movement</a>,” Lindo lamented.</p>\n \n <p style="font-weight: 400">“So today, I have an ask of each of you…commit to speaking up when you see something you know is not okay and commit to using your power and influence in support of those with limited power and limited influence.”</p>\n \n <p style="text-align: center">[youtube https://www.youtube.com/watch?v=gYc70qd6y0k]</p>\n \n <p style="font-weight: 400">That was advice <a href="https://online.torontofilmschool.ca/programs/?_gl=1*11q9bl0*_ga*NzkwNTEzMTY5LjE2NjE0MzIxOTk.*_ga_BGNC0JPCP3*MTY2OTE3NDY0NS4yNTMuMS4xNjY5MTc1Mjk1LjMzLjAuMA.." target="_blank" rel="noopener noreferrer">Toronto Film School Online</a> valedictorian, <a href="https://www.torontofilmschool.ca/blog/hitting-the-ground-running-shelby-mitchell-adams-video-production-story/" target="_blank" rel="noopener noreferrer">Shelby Mitchell-Adams</a>, has already begun putting into action.</p>\n \n <p style="font-weight: 400">As a self-taught Indigenous filmmaker from the <a href="http://www.akwesasne.ca/" target="_blank" rel="noopener noreferrer">Akwesasne</a> reservation, the <a href="https://online.torontofilmschool.ca/programs/video-production-diploma/" target="_blank" rel="noopener noreferrer">Video Production</a> grad is committed to sharing the previously untold stories of her community in the wake of a residential school system that once sought to strip the identities and silence the voices of those who came before her.</p>\n \n <p style="font-weight: 400">“For myself, I’m happy to see that the gatekeepers are finally opening doors for Indigenous content creators with narrative sovereignty, who are demolishing stereotypes and misrepresentation, and I’m grateful TFS is giving us a platform to do so,” said Mitchell-Adams, who won Best Canadian Short Award at the <a href="https://www.torontofilmschool.ca/blog/toxic-shock-and-the-zoo-emerge-as-big-winners-at-2022-tfs-film-fest/" target="_blank" rel="noopener noreferrer">2022 TFS Film Festival</a> for her short documentary, <em>Radio Bingo</em>.</p>\n \n <p style="font-weight: 400">The film chronicles Mitchell-Adams’ experience in the Indian Residential Day School system and her community’s efforts to take back the Mohawk language that was stolen from them.</p>\n \n <p style="font-weight: 400">“I carried a heavy heart during my time (at TFS), especially because we were all brought up in these government-run church schools and, to this very day, our Indigenous children are still being found in unmarked graves. We tell ourselves on the reservation that we are not victims but survivors, and that these stories have to be told,” she said, urging her fellow grads to likewise take courage in the sharing of their own experiences.</p>\n \n <p style="font-weight: 400">“I encourage you to tell your story and have the courage to send your heart and soul out into the universe. I’m not going to lie, it’s going to be scary. Be a survivor!”</p>\n \n <p style="text-align: center">[youtube https://www.youtube.com/watch?v=BvGEOCEevYQ]</p>\n \n <p style="font-weight: 400">Having just overcome the “toughest year” of her life in 2021 – and coming out the other side as valedictorian of her <a href="https://www.torontofilmschool.ca/programs/graphic-design-interactive-media-diploma/" target="_blank" rel="noopener noreferrer">Graphic Design & Interactive Media</a> program’s graduating class – many would say <a href="https://www.torontofilmschool.ca/blog/fulfilling-her-design-dreams-naveen-kazmis-graphic-design-story/" target="_blank" rel="noopener noreferrer">Naveen Kazmi</a> is the very definition of a survivor.</p>\n \n <p style="font-weight: 400">“Being a new immigrant in Canada, leaving behind my family, my home, my comfort zone, going through a divorce and all the struggles that follow with it, not being able to be close to my parents, not being able to hug them and cry my heart out, I was this close to giving up on myself,” Kazmi admitted in her valedictory address.</p>\n \n <p style="font-weight: 400">What turned things around for her, she said, was some wise advice delivered to her by her uncle, her Chacha – words she shared with her fellow graduates in hopes that, one day, they might also help them weather any forthcoming storms that might come their way.</p>\n \n <p style="font-weight: 400">“He said to me, ‘The sun will not shine on you every day. The storms will come, and you cannot stop them. The only thing you can do is keep moving forward. Keep walking. Do not look back, do not fear, do not regret. Just keep walking,’” recalled Kazmi, who is now working as a Graphic Designer at <a href="https://www.cbre.ca/" target="_blank" rel="noopener noreferrer">CBRE Toronto</a>.</p>\n \n <p style="font-weight: 400">“And that is exactly what I did. My tickets were booked to go back home. My suitcases were packed. I was not even supposed to be here. But guess what? I never took that flight. Instead, I moved forward, never looked back, walked towards my laptop and attended my first lecture here. And now here we are on graduation day!”</p>\n \n \n [caption id="attachment_26868" align="aligncenter" width="650"]<img class="wp-image-26868 size-full" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_2022Grad_JuliaChristensenHughes_1123.jpg" alt="Yorkville Education Company President Julia Christensen Hughes" width="650" height="450" /> Yorkville Education Company President Dr. Julia Christensen Hughes[/caption]\n \n \n <p style="font-weight: 400">In her closing remarks, Yorkville Education Company President <a href="https://www.yorkvilleu.ca/globally-recognized-academic-dr-julia-christensen-hughes-appointed-incoming-president-of-yorkville-university/" target="_blank" rel="noopener noreferrer">Dr. Julia Christensen Hughes</a> remarked on what an “absolute joy and privilege” it was to bear witness to such a wonderful celebration.</p>\n \n <p style="font-weight: 400">“I had the pleasure of being pretty much centre stage, watching each of you cross, and…it felt like we were witnessing history in the making – our future storytellers, our future filmmakers, and all the various programs that you represent,” she said.</p>\n \n <p style="font-weight: 400">“Knowing how badly the world needs the stories that you will undoubtedly produce, what courage you will have shown, what hard work, what creativity to bring you here today…Each one of you is closing one chapter and opening another that I have every confidence will be so profound.”</p>\n \n \n <img class="alignnone size-full wp-image-27046 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ALL_2022Grad_Candid1_1207.jpg" alt="" width="650" height="450" />\n <p style="font-weight: 400"><strong> </strong></p>\n \n <h1 style="text-align: center">2022 President’s Award Winners</h1>\n <p style="font-weight: 400;text-align: center">(presented to the graduating student with the highest cumulative Grade Point Average in each program)</p>\n <p style="font-weight: 400;text-align: center"><strong> </strong></p>\n \n <h2 style="font-weight: 400;text-align: center"><strong>Toronto Film School: </strong></h2>\n <p style="text-align: center">Robert Lazier – Film Production</p>\n <p style="text-align: center"><a href="https://www.torontofilmschool.ca/blog/becoming-the-person-she-was-born-to-be-regan-pardos-acting-story/">Regan Kristine Pardo</a> – Acting for Film, TV and The Theatre</p>\n <p style="text-align: center"><a href="https://www.torontofilmschool.ca/blog/making-a-big-change-megan-st-pierres-screenwriting-story/">Megan St-Pierre</a> – Writing for Film & TV</p>\n <p style="text-align: center">Bryanny Bailey – Writing for Film & TV</p>\n <p style="text-align: center">Maria Villarino Marzo– Graphic Design & Interactive Media</p>\n <p style="text-align: center"><a href="https://www.torontofilmschool.ca/blog/discovering-her-new-equilibrium-fiona-jeevas-video-game-design-story/">Fiona Jeeva </a>– Video Game Design & Animation</p>\n <p style="text-align: center"><a href="https://www.torontofilmschool.ca/blog/stepping-up-her-professional-game-sydney-pallisters-video-game-development-story/">Sydney Pallister</a> – Video Game Design & Development</p>\n <p style="text-align: center">Ciaran Paul Downes – Video Game Design & Development</p>\n <p style="text-align: center">Terence Payson Lo – Video Game Design & Development</p>\n <p style="font-weight: 400;text-align: center"><strong> </strong></p>\n \n <h2 style="text-align: center"><strong>Toronto Film School Online:</strong></h2>\n <p style="text-align: center">Dominic Berger– Video Production</p>\n <p style="text-align: center">Eloise Lavoie-Dufour– Writing for Film & Television</p>\n <p style="text-align: center"><a href="https://www.torontofilmschool.ca/blog/a-passion-for-punjabi-fashion-parmpreet-kaur-gills-fashion-design-story/">Parmpreet Gill</a> – Designing for Fashion</p>\n <p style="text-align: center"><a href="https://www.torontofilmschool.ca/blog/fulfilling-a-longing-for-a-creative-career-julia-colleys-online-graphic-design-story/">Julia Colley</a> – Graphic Design & Interactive Media</p>\n <p style="text-align: center">Salisha Nanan– Video Game Design & Animation</p>\n <p style="text-align: center"><a href="https://www.torontofilmschool.ca/blog/vfx-student-parlays-newfound-skills-into-success-on-webby-award-winning-what-if-series/">Maryna Hordiienko </a>– Visual Effects for Film & TV</p>\n \n \n <img class="alignnone size-full wp-image-27045 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ALL_2022Grad_Candid3_1207.jpg" alt="" width="650" height="450" />\n \n \n <h1 style="text-align: center">2022 Program Valedictorians</h1>\n <h2 style="text-align: center"><strong>Toronto Film School</strong></h2>\n <p style="text-align: center"><span lang="EN-US"><a href="https://www.torontofilmschool.ca/blog/film/discovering-a-new-pathway-forward-kimberly-miller-pryces-film-production-story/" target="_blank" rel="noopener noreferrer">Kimberly Miller-Pryce</a> – Film Production</span></p>\n <p style="text-align: center"><span lang="EN-US"><a href="https://www.torontofilmschool.ca/blog/becoming-the-person-she-was-born-to-be-regan-pardos-acting-story/">Regan Kristine Pardo</a> – Acting for Film, TV & the Theatre</span></p>\n <p style="text-align: center"><span lang="EN-US"><a href="https://www.torontofilmschool.ca/blog/making-a-big-change-megan-st-pierres-screenwriting-story/">Megan St-Pierre</a> – Writing for Film & Television</span></p>\n <p style="text-align: center"><span lang="EN-US"><a href="https://www.torontofilmschool.ca/blog/fulfilling-her-design-dreams-naveen-kazmis-graphic-design-story/" target="_blank" rel="noopener noreferrer">Naveen Kazmi</a> – Graphic Design & Interactive Media</span></p>\n <p style="text-align: center"><span lang="EN-US"><a href="https://www.torontofilmschool.ca/blog/stepping-up-her-professional-game-sydney-pallisters-video-game-development-story/">Sydney Pallister</a> – Video Game Design & Development</span></p>\n <p style="text-align: center"><span lang="EN-US"><a href="https://www.torontofilmschool.ca/blog/discovering-her-new-equilibrium-fiona-jeevas-video-game-design-story/">Fiona Jeeva </a>– Video Game Design & Animation</span></p>\n \n <h2 style="text-align: center"><b><span lang="EN-US">Toronto Film School Online</span></b></h2>\n <p style="text-align: center"><span lang="EN-US"><a href="https://www.torontofilmschool.ca/blog/hitting-the-ground-running-shelby-mitchell-adams-video-production-story/" target="_blank" rel="noopener noreferrer">Shelby Mitchell-Adams</a> – Video Production</span></p>\n <p style="text-align: center"><span lang="EN-US"><a href="https://www.torontofilmschool.ca/blog/never-forget-your-voice-arthur-ladouceurs-online-writing-for-film-television-story/" target="_blank" rel="noopener noreferrer">Arthur Ladouceur</a> – Writing for Film & Television</span></p>\n <p style="text-align: center"><span lang="EN-US"><a href="https://www.torontofilmschool.ca/blog/fulfilling-a-longing-for-a-creative-career-julia-colleys-online-graphic-design-story/">Julia Colley</a> – Graphic Design & Interactive Media</span></p>\n <p style="text-align: center"><span lang="EN-US"><a href="https://www.torontofilmschool.ca/blog/mastering-brand-new-skills-evgenia-stroganovas-video-game-story/" target="_blank" rel="noopener noreferrer">Evgenia Stroganov</a>a – Video Game Design & Animation</span></p>\n <p style="text-align: center"><span lang="EN-US"><a href="https://www.torontofilmschool.ca/blog/a-passion-for-punjabi-fashion-parmpreet-kaur-gills-fashion-design-story/">Parmpreet Gill</a> – Designing for Fashion</span></p>\n <p style="text-align: center"><span lang="EN-US">Agnieszka Raczynska – Visual Effects for Film & TV</span></p>\n \n \n <img class="alignnone size-medium wp-image-26873 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_2022Grad_Photobooth_1117.jpg" alt="" width="364" height="526" /> """ |
post_title | "Toronto Film School Celebrates Class of 2022 with Graduation Gala Celebration"
|
post_excerpt | "" |
post_status | "publish"
|
comment_status | "closed"
|
ping_status | "open"
|
post_password | "" |
post_name | "toronto-film-school-celebrates-class-of-2022-with-gala-graduation-celebration"
|
to_ping | "" |
pinged | "" |
post_modified | "2023-03-27 21:06:52"
|
post_modified_gmt | "2023-03-27 21:06:52"
|
post_content_filtered | "" |
post_parent | 0
|
guid | "https://dev.tfs.staging.poundandgrain.ca/?p=26857"
|
menu_order | 0
|
post_type | "post"
|
post_mime_type | "" |
comment_count | "0"
|
filter | "raw"
|
Key | Value |
SERVER_SOFTWARE | "nginx/1.22.1"
|
REQUEST_URI | "/news/toronto-film-school-celebrates-class-of-2022-with-gala-graduation-celebration/"
|
USER | "forge"
|
HOME | "/home/forge"
|
HTTP_REFERER | "https://dev.tfs.staging.poundandgrain.ca/news/toronto-film-school-celebrates-class-of-2022-with-gala-graduation-celebration"
|
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 | "27847"
|
REMOTE_ADDR | "3.17.79.169"
|
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 | 1731842473.0979
|
REQUEST_TIME | 1731842473
|
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"
|