*
* @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" => "jordan-walker-named-new-director-of-tfss-film-production-program" "category_name" => "blog" ] |
query_string | "name=jordan-walker-named-new-director-of-tfss-film-production-program&category_name=blog"
|
request | "blog/jordan-walker-named-new-director-of-tfss-film-production-program"
|
matched_rule | "(.+?)/([^/]+)(?:/([0-9]+))?/?$"
|
matched_query | "category_name=blog&name=jordan-walker-named-new-director-of-tfss-film-production-program&page="
|
did_permalink | true
|
Key | Value |
query | array:3 [ "page" => "" "name" => "jordan-walker-named-new-director-of-tfss-film-production-program" "category_name" => "blog" ] |
query_vars | array:66 [ "page" => 0 "name" => "jordan-walker-named-new-director-of-tfss-film-production-program" "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 | 23599
|
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 = 'jordan-walker-named-new-director-of-tfss-film-production-program' 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 | 23599
|
post_author | "43"
|
post_date | "2021-09-21 16:47:57"
|
post_date_gmt | "2021-09-21 16:47:57"
|
post_content | """ <a href="https://www.imdb.com/name/nm0907899/?ref_=fn_al_nm_1%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer"><span data-mce-type="bookmark" style="width: 0px;overflow: hidden;line-height: 0" class="mce_SELRES_start"></span>Jordan Walker</a> knows first-hand what it’s like to experience an unexpected creative awakening.\n \n \n \n As the son of two doctors, the newly appointed director of Toronto Film School’s <a href="https://www.torontofilmschool.ca/programs/film-production-diploma/" target="_blank" rel="noopener noreferrer">Film Production</a> program spent his childhood sitting in on surgeries, following his father around on medical rounds, and dreaming of a future in medicine.\n \n \n <p style="text-align: center">[youtube https://www.youtube.com/watch?v=GtafLyh6ujI]</p>\n \n \n In fact, it wasn’t until he landed himself a tennis scholarship to the University of Southern California, where he initially studied Pre-Med, the idea of not following in his parents’ footsteps even occurred to him.\n \n \n \n “I always thought I’d be a doctor, too, but I took just one acting class in my second year, and I was, like, ‘Woah, this is so much fun!’” said the Toronto-born writer, producer and actor, whose resume includes numerous award-winning film, television and new media projects that have screened at prestigious festivals including <a href="https://www.tiff.net" target="_blank" rel="noopener noreferrer">TIFF</a>, <a href="https://www.festival-cannes.com/en/" target="_blank" rel="noopener noreferrer">Cannes</a> and <a href="https://slamdance.com/" target="_blank" rel="noopener noreferrer">Slamdance</a>.\n \n \n \n “Before that, I didn’t have an expression for my creativity and, to be honest, I never really thought of myself that way. But that acting class was amazing – and it changed everything for me.”\n \n \n \n And he never looked back.\n \n \n \n In the 10 years since he joined Toronto Film School as an instructor, Walker has been inspiring his students – many of whom took similarly winding paths in their creative journeys – with his unique brand of mentorship.\n \n \n \n A champion of hands-on experience in addition to in-class theory, he enjoys helping students gain on-set work experience – whether that be on his own projects, including his 2015 cult hit, <a href="https://www.imdb.com/title/tt3919218/?ref_=nm_knf_i3%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer"><em>How to Plan An Orgy in a Small Town</em></a><em>, </em>and 2019’s four-time Canadian Screen Award-nominated feature, <a href="https://www.imdb.com/title/tt6739796/" target="_blank" rel="noopener noreferrer"><em>James vs. His Future Self</em></a> – or recommending them to his network of industry contacts.\n \n \n \n [caption id="attachment_22831" align="aligncenter" width="670"]<img class="wp-image-22831 size-medium" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2021/05/TFS_ALL_PresidentBarnsley3_0510-1.jpg" alt="Toronto Film School's president Andrew Barnsley with Emmy and Golden Globe Award trophies" width="670" height="393" /> Toronto Film School's president, Andrew Barnsley[/caption]\n \n \n \n It’s that experiential approach to teaching that Toronto Film School’s <a href="https://www.torontofilmschool.ca/blog/andrew-barnsley-celebrates-schitts-creeks-historic-night-at-emmys/" target="_blank" rel="noopener noreferrer">Emmy-winning</a> President, <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">Andrew Barnsley</a>, said made Walker’s appointment to the directorship of Film Production program a “no-brainer.”\n \n \n \n "Jordan is a proven industry leader on set, in the boardroom and in the classroom. During his time as an instructor at Toronto Film School, he has inspired and supported hundreds of students as they began their careers in the creative industries,” Barnsley said.\n \n \n \n “Jordan now has a bigger platform to continue to shape the next generation of industry professional. We are delighted to welcome him into his new role."\n \n \n \n <img class="alignnone size-medium wp-image-23604 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2021/09/TFS_FP_JordanWalker2_0917.jpg" alt="" width="670" height="458" />\n \n \n \n Walker’s own post-film school career path has been likewise inspiring for its many twists and turns.\n \n \n \n While still studying acting at USC, Walker managed to get himself represented by a manager who worked at <a href="https://www.wmeagency.com/" target="_blank" rel="noopener noreferrer">William Morris Agency</a>, and his momentum as an actor grew. He started going out for lots of auditions, and was almost cast in the late-‘90s teen drama, <a href="https://en.wikipedia.org/wiki/Dawson's_Creek" target="_blank" rel="noopener noreferrer"><em>Dawson’s Creek</em></a>.\n \n \n \n Just as his acting career was beginning to take off, however, Walker was called home for a family emergency.\n \n \n \n It was upon his return to Toronto that Walker had the opportunity to creatively connect with his aspiring director sister, fellow Toronto Film School instructor <a href="https://www.imdb.com/name/nm0907964/" target="_blank" rel="noopener noreferrer">Leah Walker</a>, for the first time. The end result of their initial collaboration was <a href="https://www.imdb.com/title/tt0289049/" target="_blank" rel="noopener noreferrer"><em>The Acrobatic Sex Cult</em></a> – a black-and-white short film that follows 20-somethings Karyn and Simon as they struggle with the repercussions of bringing sex into their friendship.\n \n \n \n [caption id="attachment_23605" align="aligncenter" width="670"]<img class="wp-image-23605 size-medium" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2021/09/TFS_FP_LeahWalkerHeadshot_0917.jpg" alt="Toronto Film School instructor Leah Walker" width="670" height="523" /> Leah Walker[/caption]\n \n \n \n “She directed it and I starred in it and produced it, and it was really a lot of fun,” Walker said of working on the film, which was selected to the <a href="https://en.wikipedia.org/wiki/Montreal_World_Film_Festival" target="_blank" rel="noopener noreferrer">Montreal World</a>, <a href="https://raindance.org/" target="_blank" rel="noopener noreferrer">Raindance</a>, and Paris film festivals.\n \n \n \n “It ended up getting us both hooked.”\n \n \n \n From there, Walker turned his attention to filmmaking full time – writing, producing and acting in his and Leah’s own projects. The sibling duo made two feature thrillers together – first 2007’s <a href="https://www.imdb.com/title/tt0952687/?ref_=nm_flmg_prd_10%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer"><em>The Third Eye</em></a><em>, </em>starring <a href="https://www.imdb.com/title/tt0397138/" target="_blank" rel="noopener noreferrer"><em>Corner Gas</em></a>’ <a href="https://www.imdb.com/name/nm0818166/?ref_=ttfc_fc_cl_t1%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer">Tara Spencer-Nairn</a>, then <a href="https://www.imdb.com/title/tt2582624/?ref_=nm_knf_i2%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer"><em>The Privileged</em></a><em>, </em>starring <a href="https://www.imdb.com/title/tt0844441/?ref_=nm_knf_i1%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer"><em>True Blood</em></a>’s <a href="https://www.imdb.com/name/nm0870794/?ref_=tt_ov_st%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer">Sam Trammell</a>, in 2013 – as well as a number of shorts.\n \n \n \n Around 2012, Walker found another filmmaking partner in then up-and-coming director, <a href="https://www.imdb.com/name/nm1550227/" target="_blank" rel="noopener noreferrer">Jeremy Lalonde</a>. Impressed by his work, he agreed to team up with him on his short film, <a href="https://www.imdb.com/title/tt3554248/?ref_=nm_flmg_prd_6%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer"><em>Bastards</em></a> – an experience that ultimately led to the pair's long-term partnership.\n \n \n \n <img class="aligncenter wp-image-23609 size-medium" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2021/09/TFS_FP_JordanWalkerMoviePosters_0917.jpg" alt="Posters of How to Plan An Orgy in a Small Town and James vs. His Future Self" width="670" height="503" />\n \n \n \n For the past 10 years, Lalonde and Walker have collaborated on a number of high-profile projects, including: <em>How to Plan An Orgy in a Small Town</em><em>, </em>which won a dozen awards, screened at 30 international film festivals and was released in more than 100 theatres in 15 countries; the <a href="https://canadiancomedyawards.org" target="_blank" rel="noopener noreferrer">Canadian Comedy Award</a>-nominated <a href="https://www.imdb.com/title/tt6085642/?ref_=nm_flmg_prd_2%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer"><em>The Go-Getters;</em></a> and <em>James vs. His Future Self</em>, which won four awards at the 2019 <a href="https://torontoafterdark.com/" target="_blank" rel="noopener noreferrer">Toronto After Dark Film Festival</a> including <a href="https://torontoafterdark.com/2019-awards" target="_blank" rel="noopener noreferrer">Best Canadian Feature</a>.\n \n \n \n It was also around the same time that Walker was approached by <a href="https://www.imdb.com/name/nm1733337/" target="_blank" rel="noopener noreferrer">Adam Till,</a> whom he’d met playing tennis with the pair’s shared mentor, <a href="https://www.thecanadianencyclopedia.ca/en/article/michael-a-levine" target="_blank" rel="noopener noreferrer">Michael Levine</a> – to join the Toronto Film School’s then newly launched <a href="https://www.torontofilmschool.ca/programs/writing-for-film-tv-diploma/" target="_blank" rel="noopener noreferrer">Writing for Film & Television</a> program as an instructor.\n \n \n \n “My first class was Finance, and I loved it. Then, when they were looking for a Career Development instructor, a group of students from my Finance who went into (then Film Production Program Director Rick Bennett’s) office and recommended me for the job,” Walker laughed.\n \n \n \n “I’m the only one to teach that class and I love it! I would not have taken the job (as Program Director) until they guaranteed I’d be able to keep teaching the Career Development class. It means that much to me.”\n \n \n \n For Walker, one of the most rewarding aspects of the job has been the opportunities he’s had to involve the most talented among his students in his own projects – and watching their careers take off thereafter.\n \n \n \n “Having students on my sets is my favourite part,” he said, noting that much of the crew on the <a href="https://www.imdb.com/title/tt3919218/?ref_=nm_knf_i3%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer"><em>How to Plan An Orgy in a Small Town</em></a> set consisted of his TFS students at the time – many of whom have since gone on to ‘big, big things.’\n \n \n \n “I brought <a href="https://www.imdb.com/name/nm5052063/?ref_=ttfc_fc_cr44%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer">Heather Young</a>, who was in my very first class teaching, on as our production manager for that film. She had never production managed before, but I had faith in her and absolutely could not have made the film without her,” Walker said of Young, whose production coordinator credits now boast hit shows such as <a href="https://www.imdb.com/title/tt4145054/?ref_=nm_flmg_msc_5%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer"><em>Shadowhunters</em></a><em>, </em><a href="https://www.imdb.com/title/tt5296406/?ref_=nm_flmg_msc_4%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer"><em>Designated Survivor</em></a><em>, </em><a href="https://www.imdb.com/title/tt10473150/?ref_=nm_flmg_msc_3%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer"><em>Grand Army</em></a><em>, </em><a href="https://www.imdb.com/title/tt2177268/?ref_=nm_flmg_msc_2%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer"><em>Clarice</em></a><em>, </em>and <a href="https://www.imdb.com/title/tt10839422/?ref_=nm_flmg_msc_1%22%20%5Ct%20%22_blank" target="_blank" rel="noopener noreferrer"><em>Sex/Life</em></a><em>.</em>\n \n <em> </em>\n \n <span data-mce-type="bookmark" style="width: 0px;overflow: hidden;line-height: 0" class="mce_SELRES_start"></span>\n \n <em> </em>\n \n <img class="aligncenter wp-image-23606 size-medium" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2021/09/TFS_FP_JordanWalker3_0917.jpg" alt="Jordan Walker with equipment in studio" width="670" height="458" />\n <span data-mce-type="bookmark" style="width: 0px;overflow: hidden;line-height: 0" class="mce_SELRES_start"></span>\n \n “It feels so good to have this family of TFS students that can jump in on projects. To be honest, I've been rescued by my students on all of my films. They make my films possible,” he said. “And, in turn, I think having a Jeremy Lalonde film on their resume seems to have really given them a launchpad.”\n \n \n \n Now that Walker has taken over the helm of the <a href="https://www.torontofilmschool.ca/programs/film-production-diploma/" target="_blank" rel="noopener noreferrer">Film Production</a> program, he’s looking forward to mentoring even more future stars amongst this next generation of upcoming filmmakers.\n \n \n \n “It wasn’t something I was expecting, but I’m really excited about this new challenge and getting to sink my teeth into it,” he said of his new leadership role at Toronto Film School.\n \n \n \n “I really want to be part of this new momentum and this new push to really make TFS competitive on the world stage, and I feel like this is a nice opportunity to contribute to that as much as I can.”\n \n \n \n <span data-mce-type="bookmark" style="width: 0px;overflow: hidden;line-height: 0" class="mce_SELRES_start"></span><span data-mce-type="bookmark" style="width: 0px;overflow: hidden;line-height: 0" class="mce_SELRES_start"></span> """ |
post_title | "Jordan Walker Named New Director of TFS's Film Production Program"
|
post_excerpt | "" |
post_status | "publish"
|
comment_status | "open"
|
ping_status | "open"
|
post_password | "" |
post_name | "jordan-walker-named-new-director-of-tfss-film-production-program"
|
to_ping | "" |
pinged | "" |
post_modified | "2023-03-27 21:07:20"
|
post_modified_gmt | "2023-03-27 21:07:20"
|
post_content_filtered | "" |
post_parent | 0
|
guid | "https://dev.tfs.staging.poundandgrain.ca/?p=23599"
|
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/jordan-walker-named-new-director-of-tfss-film-production-program/"
|
USER | "forge"
|
HOME | "/home/forge"
|
HTTP_REFERER | "https://dev.tfs.staging.poundandgrain.ca/blog/jordan-walker-named-new-director-of-tfss-film-production-program"
|
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 | "33477"
|
REMOTE_ADDR | "3.140.195.249"
|
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 | 1731865015.0577
|
REQUEST_TIME | 1731865015
|
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"
|