*
* @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" => "tfs-online-video-production-student-vying-for-50k-telus-storyhive-grant-for-documentary-about-inspiring-widows" "category_name" => "blog" ] |
query_string | "name=tfs-online-video-production-student-vying-for-50k-telus-storyhive-grant-for-documentary-about-inspiring-widows&category_name=blog"
|
request | "blog/tfs-online-video-production-student-vying-for-50k-telus-storyhive-grant-for-documentary-about-inspiring-widows"
|
matched_rule | "(.+?)/([^/]+)(?:/([0-9]+))?/?$"
|
matched_query | "category_name=blog&name=tfs-online-video-production-student-vying-for-50k-telus-storyhive-grant-for-documentary-about-inspiring-widows&page="
|
did_permalink | true
|
Key | Value |
query | array:3 [ "page" => "" "name" => "tfs-online-video-production-student-vying-for-50k-telus-storyhive-grant-for-documentary-about-inspiring-widows" "category_name" => "blog" ] |
query_vars | array:66 [ "page" => 0 "name" => "tfs-online-video-production-student-vying-for-50k-telus-storyhive-grant-for-documentary-about-inspiring-widows" "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 | 15239
|
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 = 'tfs-online-video-production-student-vying-for-50k-telus-storyhive-grant-for-documentary-about-inspiring-widows' 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 | 15239
|
post_author | "43"
|
post_date | "2019-05-30 15:47:26"
|
post_date_gmt | "2019-05-30 15:47:26"
|
post_content | """ <a href="http://www.torontofilmschool.ca/" target="_blank" rel="noopener noreferrer">Toronto Film School</a> and <a href="https://www.yorkvilleu.ca/" target="_blank" rel="noopener noreferrer">Yorkville University</a> awarded degrees and diplomas to nearly 500 newly minted alumni during its 2019 Graduation Ceremony in Toronto.\n \n \n <p style="text-align: center;"><iframe src="https://www.youtube.com/embed/sSw49T8bbPY" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>\n \n \n Held on Thursday, May 9 at the <a href="http://www.tocentre.com/" target="_blank" rel="noopener noreferrer">Toronto Centre for the Arts</a>, the event drew a near-capacity crowd of graduates’ family members and friends to cheer on their loved ones as they marched across the stage in the <a href="http://www.meridianartscentre.com/theatres/george-weston-recital-hall" target="_blank" rel="noopener noreferrer">George Weston Recital Hall</a> to accept their scrolls.\n \n \n \n <img class="alignnone size-medium wp-image-15155 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/05/TFS_GradMomDaughter_0509.jpg" alt="" width="670" height="393" />\n \n \n \n “Your parents, partners and children here today are thinking about what you have achieved, and they’re looking forward to all the possibilities ahead of you,” <a href="https://www.yorkvilleu.ca/about/president-s-message/" target="_blank" rel="noopener noreferrer">Dr. Rick Davey</a>, President of Yorkville University/Toronto Film School, told graduates in attendance.\n \n \n \n “That’s why graduations are, for me, so special. They identify the people who matter to you, and they evoke memories and possibilities for everybody involved.”\n \n \n \n <img class="alignnone size-medium wp-image-15025 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/05/TFS_DaveyRickGrad_0515.jpg" alt="" width="670" height="393" />\n \n \n \n The two-hour ceremony saw the conferment of degrees and diplomas in the wide range of specialty programs offered at Yorkville University and Toronto Film School’s three campuses at Steeles, Davisville and Dundas Square, as well as online programs – from Yorkville Bachelor degrees in <a href="https://www.yorkvilleu.ca/programs/undergraduate-programs/bachelor-of-interior-design/" target="_blank" rel="noopener noreferrer">Interior Design</a> and Engineering Electronics Technology, to TFS diplomas in <a href="http://www.torontofilmschool.ca/programs/film-production-diploma/" target="_blank" rel="noopener noreferrer">Film Production</a>, <a href="http://www.torontofilmschool.ca/programs/video-game-design-animation/" target="_blank" rel="noopener noreferrer">Video Game Design</a>, <a href="http://www.torontofilmschool.ca/programs/acting-for-film-tv-and-the-theatre-diploma/" target="_blank" rel="noopener noreferrer">Acting</a>, <a href="http://www.torontofilmschool.ca/programs/writing-for-film-tv-diploma/" target="_blank" rel="noopener noreferrer">Screenwriting</a>, <a href="http://www.torontofilmschool.ca/programs/fashion-design-diploma/" target="_blank" rel="noopener noreferrer">Fashion Design</a>, <a href="http://www.torontofilmschool.ca/programs/marketing-fashion-entertainment/" target="_blank" rel="noopener noreferrer">Marketing</a>, and <a href="http://www.torontofilmschool.ca/programs/graphic-design-interactive-media-diploma/" target="_blank" rel="noopener noreferrer">Graphic Design.</a>\n \n \n \n <img class="alignnone size-medium wp-image-15023 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/05/TFS_GradHug2_0515.jpg" alt="" width="670" height="393" />\n \n \n \n Keynote speaker <a href="http://www.project10.ca/about" target="_blank" rel="noopener noreferrer">Andrew Barnsley</a> took his opportunity at the podium to heap praise on all those graduates in attendance he’d encountered over the past two years in his role as TFS’s <a href="http://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>.\n \n \n \n <img class="alignnone size-medium wp-image-15027 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/05/TFS_BarnsleyAndrewGrad_0515.jpg" alt="" width="670" height="393" />\n \n \n \n “Your enthusiasm invigorates me. Your commitment to learning inspires me. Your vision, your skills, your talent and your hard work have blown me away,” said Barnsley, a two-time Canadian Screen Award-winning executive producer of CBC/Netflix’s cult hit <a href="https://www.cbc.ca/schittscreek/" target="_blank" rel="noopener noreferrer"><em>Schitt’s Creek</em></a>, CTV’s <em><a href="https://www.ctv.ca/Jann" target="_blank" rel="noopener noreferrer">Jann</a></em>, and the upcoming Family Channel show <em>Up In The Air</em>.\n \n \n \n “All I can hope for for those of you I’ve spoken with over your six semesters at Toronto Film School is that I have been able to give to you a fraction of what you’ve given to me.”\n \n \n \n <img class="size-medium wp-image-15029 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/05/TFS_HighFiveGrad_0515.jpg" alt="" width="670" height="393" />\n \n \n \n To those ends, Barnsley summed up the words of wisdom he’s accumulated over his nearly 20-year career in the creative industries with the following pieces of advice to graduates:\n \n \n \n 1) Have a ‘big dream’ to which you anchor all your decisions and choices moving forward;\n \n \n \n 2) Your education doesn’t end today. Lifelong learning and expertise development is a vital way to set yourself apart from others;\n \n \n \n 3) Find a community of like-minded people, and seek out ways to elevate and support each other;\n \n \n \n <img class="alignnone size-medium wp-image-15039 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/05/TFS_Grads3_0515.jpg" alt="" width="670" height="474" />\n \n \n \n 4) Take risks, because making yourself uncomfortable is one of the greatest ways to grow and learn;\n \n \n \n 5) Failing is integral to success. Make mistakes, learn from them, recalibrate, and come out stronger and wiser;\n \n \n \n <img class="alignnone size-medium wp-image-15159 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/05/TFS_ACT_VictoriaBenGrad_0509.jpg" alt="" width="670" height="393" />\n \n \n \n 6) Believe in yourself and your goals. If you don’t, who will?\n \n \n \n 7) Commit to hard work and perseverance, push through rejection and ‘nos’ to get to success, achievement and glory;\n \n \n \n <img class="alignnone size-medium wp-image-15045 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/05/TFS_Diploma_0515.jpg" alt="" width="670" height="393" />\n \n \n \n 8) And last, but not least, take time out to reflect on your accomplishments.\n \n \n \n “Today is not the first day of the rest of your life…You’re not starting today, you’re already mid-stride on your journey – and you’re doing it. You’re equipped to take on the world, so please take a moment to reflect on this today. And as you grow and your careers evolve, don’t forget to reflect,” Barnsley urged graduates.\n \n \n \n <img class="alignnone size-medium wp-image-15157 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/05/TFS_YU_Graduation_0509.jpg" alt="" width="670" height="393" />\n \n \n \n “Reflect on the faculty and the staff who challenged you, who pushed you in directions that weren’t necessarily comfortable, but who taught you so much.\n \n \n \n “Reflect on your classmates who lifted you up when you felt you couldn’t move forward.\n \n \n \n <img class="alignnone size-medium wp-image-15043 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/05/TFS_Grads4_0515.jpg" alt="" width="670" height="393" />\n \n \n \n “Reflect on the choices that put you here…because if your choices got you here, as a graduate of Yorkville University and Toronto Film School, just imagine where your choices are going to take you in the future.”\n \n \n \n Barnsley wasn’t the only one offering up inspirational messages during the ceremony – graduates also heard from a trio of peers chosen to represent them as valedictorians of each of the three campuses.\n \n \n \n During her speech, Bachelor of Interior Design valedictorian Maggie McCormick spoke on behalf of her Steeles Campus classmates about how better prepared they now are to chase their dreams.\n \n \n \n <img class="alignnone size-medium wp-image-15033 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/05/YU_McCormickMaggie_0515.jpg" alt="" width="670" height="393" />\n \n \n \n “Whether you were here gaining formal training to bolster an existing skill set, making a career change, or pursuing post-secondary education for the first time, it’s been a privilege to watch my classmates develop their skill and style, to learn from one another, and to challenge and be challenged by each other to create better, more thoughtful work,” she said, crediting Yorkville’s ‘tremendously supportive’ faculty for their encouragement along the way.\n \n \n \n “The respect they inspired and continue to inspire consistently compelled me to push further and work harder. I hope and expect that this is not unique to the Interior Design program and that others here have had a similar experience…because the truth of the matter is that each of us is now better equipped to go out and accomplish our goals, whatever they may be.”\n \n \n \n Speaking on behalf of Davisville Campus graduates, Marketing for Fashion Entertainment valedictorian <a href="http://www.torontofilmschool.ca/blog/fuelling-personal-growth-courtneys-lawsons-marketing-for-fashion-entertainment-story/" target="_blank" rel="noopener noreferrer">Courtney Lawson</a> said her newfound ability to face her fears is the biggest lesson she’s taking away from her time at Toronto Film School.\n \n \n \n <img class="alignnone size-medium wp-image-15035 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/05/TFS_LawsonCourtneyGrad_0515.jpg" alt="" width="670" height="393" />\n \n \n \n Initially afraid that her return to school at age 30 after working for nearly a decade would seem like a step backward, Lawson said she struggled with her decision to attend TFS. But it was that decision, she said, that taught her that stepping out of one’s comfort zone often leads to the most personal growth.\n \n \n \n “Coming here was a turning point for me. I made a commitment to myself to step into this uncertain ground and what’s funny is, the decision that seemed like such a defeat was actually the thing that put me in the place I felt like I was in the flow of my life,” she said.\n \n \n \n “…In the past, I’ve wished a lot of my time away, I didn’t embrace experiences, I always wanted to be somewhere else. Instead of leaning into the fear, I ran from it. So, my advice for you today, as the person selected to represent your time here, is to lean into your fears, take all of those experiences you can, and always find your gratitude in forgiveness.”\n \n \n \n Lastly, representing Dundas Square Campus graduates, Acting for Film, TV & the Theatre valedictorian <a href="http://www.torontofilmschool.ca/blog/seizing-a-moment-of-clarity-matthew-mcdonalds-acting-for-film-tv-the-theatre-story/" target="_blank" rel="noopener noreferrer">Matthew McDonald</a> urged his classmates to utilize all the gifts and talents they nurtured during their time at TFS to help built a better world.\n \n \n \n <img class="size-medium wp-image-15037 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/05/TFS_McDonaldMattheew_0515.jpg" alt="" width="670" height="393" />\n \n \n \n “We’re entering into a very dark period in history – one of hate, one of oppression, and one of fear. In the past, the masses turned to greater things for answers during dark times. But the masses aren’t looking there anymore. They look to us,” he said of the creative industries.\n \n \n \n “They look to us, because when we do our job right, we have the opportunity to take them away from everything, even just for a moment. And that’s enough.\n \n \n \n “We have the power to heal. We have the power to inspire. And it takes all of us – the writer’s words, the actor’s choices, the director’s vision, the designer’s eye, and the editor who places all the pieces of this beautiful puzzle we call film together. Please don’t waste this gift.”\n \n \n \n <img class="alignnone size-medium wp-image-15031 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/05/TFS_GradTrio_0515.jpg" alt="" width="670" height="393" />\n \n \n \n <strong>ACADEMIC AWARDS</strong>\n <ul>\n \t<li>Bachelor of Interior Design Award of Excellence – Lauren Flynn</li>\n \t<li>Best Video Game Developer or Animator Award – Brady Irvine</li>\n \t<li>Creativity & Business Design Award (Fashion Design) – Stefanie von Thelen Newton</li>\n \t<li>Creativity in Business Awards (Marketing for Fashion & Entertainment) – <a href="http://www.torontofilmschool.ca/blog/fuelling-personal-growth-courtneys-lawsons-marketing-for-fashion-entertainment-story/" target="_blank" rel="noopener noreferrer">Courtney Lawson</a></li>\n \t<li>Excellence in Graphic Design Award – Buble Grewal</li>\n \t<li>The Best Actor Award – Mika Tamaki</li>\n \t<li>Distinguished Filmmaker Award – Jacob Ide</li>\n \t<li>Best Screenwriter Award – Maso Thomas Perez</li>\n </ul>\n <strong>PRESIDENT’S AWARDS</strong>\n <ul>\n \t<li>Acting for Film, TV & the Theatre – <a href="http://www.torontofilmschool.ca/blog/seizing-a-moment-of-clarity-matthew-mcdonalds-acting-for-film-tv-the-theatre-story/" target="_blank" rel="noopener noreferrer">Matthew McDonald</a> and Carly Telford</li>\n \t<li>Interior Decorating & Design Associate – Ravina Nanuian</li>\n \t<li>Bachelor of Interior Design – Laura Goodsman</li>\n \t<li>Bachelor of Technology – Omar Al-Bayati</li>\n \t<li>Fashion Design – Stefanie von Thelen Newton</li>\n \t<li>Marketing for Fashion & Entertainment – Nadda Adamjee</li>\n \t<li>Film Production – <a href="http://www.torontofilmschool.ca/blog/becoming-the-mediator-marie-soleil-kielecs-film-production-story/" target="_blank" rel="noopener noreferrer">Marie-Soleil Kielec</a></li>\n \t<li>Film Production Associate – Matthew Lewis</li>\n \t<li>Graphic Design and Interactive Media – Alexandra Dorward and Amber Reesor</li>\n \t<li>Video Game Design & Animation – <a href="http://www.torontofilmschool.ca/blog/video-game-design-grads-garner-praise-for-tournament-of-the-chosen-during-tfs-showcase/" target="_blank" rel="noopener noreferrer">Anthony Richards</a></li>\n \t<li>Video Game Design & Development – Taly Hotimsky</li>\n \t<li>Writing for Film & TV – Adam Castaldi</li>\n </ul>\n <strong>PROGRAM VALEDICTORIANS</strong>\n <ul>\n \t<li>Bachelor of Engineering Electronics Technology – Omar Al-Bayati</li>\n \t<li>Bachelor of Interior Design – Maggie McCormick</li>\n \t<li>Video Game Design & Animation – <a href="http://www.torontofilmschool.ca/blog/putting-in-the-work-gabriel-vignolas-video-game-design-animation-story/" target="_blank" rel="noopener noreferrer">Gabriel Vignola</a></li>\n \t<li>Video Game Design & Development – Brady Irvine</li>\n \t<li>Fashion Design – <a href="http://www.torontofilmschool.ca/blog/finding-her-perfect-fit-emma-fentons-fashion-design-story/" target="_blank" rel="noopener noreferrer">Emma Fenton</a></li>\n \t<li>Marketing for Fashion & Entertainment – <a href="http://www.torontofilmschool.ca/blog/fuelling-personal-growth-courtneys-lawsons-marketing-for-fashion-entertainment-story/" target="_blank" rel="noopener noreferrer">Courtney Lawson</a></li>\n \t<li>Graphic Design & Interactive Media – Celina Johnson</li>\n \t<li>Acting for Film, TV and the Theatre – <a href="http://www.torontofilmschool.ca/blog/seizing-a-moment-of-clarity-matthew-mcdonalds-acting-for-film-tv-the-theatre-story/" target="_blank" rel="noopener noreferrer">Matthew McDonald</a></li>\n \t<li>Film Production – <a href="http://www.torontofilmschool.ca/blog/becoming-the-mediator-marie-soleil-kielecs-film-production-story/" target="_blank" rel="noopener noreferrer">Marie-Soleil Kielec</a></li>\n \t<li>Writing for Film & Television – Adam Castaldi</li>\n </ul> """ |
post_title | "TFS Online Video Production Student Vying For $50K Telus Storyhive Grant For Documentary About Inspiring Widows"
|
post_excerpt | "" |
post_status | "publish"
|
comment_status | "closed"
|
ping_status | "open"
|
post_password | "" |
post_name | "tfs-online-video-production-student-vying-for-50k-telus-storyhive-grant-for-documentary-about-inspiring-widows"
|
to_ping | "" |
pinged | "" |
post_modified | "2023-03-27 21:08:18"
|
post_modified_gmt | "2023-03-27 21:08:18"
|
post_content_filtered | "" |
post_parent | 0
|
guid | "https://dev.tfs.staging.poundandgrain.ca/?p=15239"
|
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/tfs-online-video-production-student-vying-for-50k-telus-storyhive-grant-for-documentary-about-inspiring-widows/"
|
USER | "forge"
|
HOME | "/home/forge"
|
HTTP_REFERER | "https://dev.tfs.staging.poundandgrain.ca/blog/tfs-online-video-production-student-vying-for-50k-telus-storyhive-grant-for-documentary-about-inspiring-widows"
|
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 | "29220"
|
REMOTE_ADDR | "3.147.79.107"
|
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 | 1731941749.7802
|
REQUEST_TIME | 1731941749
|
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"
|