*
* @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/uat.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/uat.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/uat.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/uat.tfs.staging.poundandgrain.ca/releases/20241113033749/web/app/themes/tfs/storage/framework/views/2bc8d2ea874031e3ddb3a557319b7cad31a2f2d3.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/uat.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/uat.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/uat.tfs.staging.poundandgrain.ca/releases/20241113033749/web/wp/wp-blog-header.php"
Key | Value |
query_vars | array:3 [ "page" => "" "name" => "synchronizing-our-creative-community-toronto-film-schools-response-to-the-covid-19-crisis" "category_name" => "news" ] |
query_string | "name=synchronizing-our-creative-community-toronto-film-schools-response-to-the-covid-19-crisis&category_name=news"
|
request | "news/synchronizing-our-creative-community-toronto-film-schools-response-to-the-covid-19-crisis"
|
matched_rule | "(.+?)/([^/]+)(?:/([0-9]+))?/?$"
|
matched_query | "category_name=news&name=synchronizing-our-creative-community-toronto-film-schools-response-to-the-covid-19-crisis&page="
|
did_permalink | true
|
Key | Value |
query | array:3 [ "page" => "" "name" => "synchronizing-our-creative-community-toronto-film-schools-response-to-the-covid-19-crisis" "category_name" => "news" ] |
query_vars | array:66 [ "page" => 0 "name" => "synchronizing-our-creative-community-toronto-film-schools-response-to-the-covid-19-crisis" "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" => 16 "nopaging" => false "comments_per_page" => "50" "no_found_rows" => false "order" => "DESC" ] |
meta_query | WP_Meta_Query {#2562} |
queried_object | WP_Post {#2563} |
queried_object_id | 19774
|
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 = 'synchronizing-our-creative-community-toronto-film-schools-response-to-the-covid-19-crisis' 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 | 19774
|
post_author | "43"
|
post_date | "2020-05-08 15:53:32"
|
post_date_gmt | "2020-05-08 15:53:32"
|
post_content | """ Creativity. Collaboration. Communication. Camaraderie.\n \n \n \n Those are the four cornerstones upon which Toronto Film School has successfully constructed a new online reality – one in which its entire collective of students, staff and faculty can remain united as a creative community for the duration of the COVID-19 crisis.\n \n \n <p style="text-align: center;"><iframe src="https://www.youtube.com/embed/N9Ql1Ebtco0" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>\n \n \n “When we began this initiative, it was honestly full-speed ahead – it was pedal to the metal,” <a href="https://staging.torontofilmschool.ca/programs/fashion-design-diploma/faculty/" target="_blank" rel="noopener noreferrer">Paula Shneer</a>, Toronto Film School’s <a href="https://staging.torontofilmschool.ca/programs/fashion-design-diploma/faculty/" target="_blank" rel="noopener noreferrer">Senior Director of Education</a> said of the school’s Herculean efforts to transition its slate of hands-on, on-campus classes to an online model built upon the synchronous remote delivery of courses.\n \n \n \n “I think we’re the only school – I can’t even think of another school…that has been able to really pull off what we’ve pulled off in a matter of barely a few weeks.”\n \n \n \n Faced with the sudden closure of its physical campuses when a province-wide state of emergency was declared in the final week of Winter term, Toronto Film School first worked to ensure students could complete their exams and final assessments online, before announcing a delayed start to the Spring term.\n \n \n \n <img class="alignnone size-medium wp-image-19775 aligncenter" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ALL_PaulaShneerHeadshot_0501-670x393-1.jpg" alt="" width="670" height="393" />\n \n \n \n In the weeks leading up to the postponed April 20 start, Shneer said many faculty and staff regularly put in 12- to 16-hour days – working tirelessly alongside the school’s curriculum developer to amend their individual courses to an online environment, while also ensuring all program outcomes could still be met.\n \n \n \n “The amount of meetings and discussions and collaboration of ideas from the faculty and from the program directors about how this was actually going to work, it was intense,” she added.\n \n \n \n “Faculty had maybe three weeks to get this up, done and finished, with some tweaking along the way. But to overhaul all of these programs from on-campus to online was unbelievable.”\n \n \n \n <img class="alignnone size-medium wp-image-10380 aligncenter" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BlogImage_AndrewInterview-670x392-1.jpg" alt="" width="670" height="392" />\n \n \n \n <a href="http://www.project10.ca/about" target="_blank" rel="noopener noreferrer">Andrew Barnsley</a>, Toronto Film School’s <a href="https://staging.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>, was likewise laudatory in his praise of colleagues for their swift response to the pandemic measures.\n \n \n \n “Toronto Film School moved very quickly to pivot towards an online, self-isolation model…” remarked the <a href="https://staging.torontofilmschool.ca/blog/toronto-film-schools-andrew-barnsley-scores-four-emmy-nods-with-schitts-creek-team/" target="_blank" rel="noopener noreferrer">Emmy-nominated</a> executive producer of <a href="https://www.cbc.ca/schittscreek/" target="_blank" rel="noopener noreferrer"><em>Schitt’s Creek</em></a>.\n \n \n \n “The whole way the curriculum has shifted, the way that the instructors and faculty are engaging with students – if you think about how quickly this all happened, it’s very remarkable.”\n \n \n \n <img class="alignnone size-medium wp-image-19691 aligncenter" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_HartMasseyHeadshot_0421-670x393-1.jpg" alt="" width="670" height="393" />\n \n \n \n For <a href="https://staging.torontofilmschool.ca/programs/acting-for-film-tv-and-the-theatre-diploma/faculty/" target="_blank" rel="noopener noreferrer">Hart Massey</a>, the transition process was a time of inspired creativity – thanks, in large part, to Toronto Film School’s “brilliant” team of instructors, who worked relentlessly to ensure their ability to continue delivering the same level of instruction online as they’re known for administering in the classroom.\n \n \n \n “I believe that when you hit a point of necessity, then you have to start being creative and innovative – and that’s what we’re all about. TFS has always been about being innovative and cutting edge,” said Massey, the longtime director of TFS’s <a href="https://staging.torontofilmschool.ca/programs/acting-for-film-tv-and-the-theatre-diploma/" target="_blank" rel="noopener noreferrer">Acting for Film, TV & the Theatre</a> program.\n \n \n \n “We’re creating something that is totally innovative and totally new, while incorporating all the elements from the program, and courses from the program, and all the incredible instructors from the program into something we can bring to you on your doorstep.”\n \n \n \n While all that behind-the-scenes work was underway in preparation for the April 20 online launch to the Spring Term, Toronto Film School staff and faculty simultaneously sought out ways in which to keep students connected with the school throughout their extended Spring break.\n \n \n \n On April 2 alone, Toronto Film School launched at total of 17 live Zoom sessions designed to both engage and inform it students – many of them specific to each individual program and term.\n \n \n \n And that was just the beginning of what would become an ambitious campaign of daily touchpoint webinars.\n \n \n \n “We knew that everybody was anxious trying to figure this all out…so, the webinars were, in many cases, informative: Program directors saying, ‘Okay, this is what it’s going to look like, this is how the courses are going to be approached,’” Shneer explained, noting that, in total, Toronto Film School hosted more than 60 such live sessions between April 2 and April 20.\n \n \n \n <img class="alignnone size-medium wp-image-19760 aligncenter" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ALL_JasonPriestlyGroupSmile_0424-670x393-1.jpg" alt="" width="670" height="393" />\n \n \n \n Another exciting initiative launched during students’ extended Spring break was the <em>In Conversation </em>speaker series.\n \n \n \n Designed to inspire and engage, the <em>In Conversation</em> Zoom events have allowed students the opportunity to hear directly from a growing list of award-winning filmmakers, writers, actors and comedians – including Academy Award-nominated filmmaker <a href="https://staging.torontofilmschool.ca/blog/in-conversation-with-atom-egoyan-event-delves-into-all-facets-of-celebrated-filmmakers-journey/" target="_blank" rel="noopener noreferrer">Atom Egoyan</a>, 30-year veteran stand-up comedian <a href="https://staging.torontofilmschool.ca/blog/toronto-film-school-students-crack-up-with-caroline-rhea-during-latest-instalment-of-in-conversation-series/" target="_blank" rel="noopener noreferrer">Caroline Rhea</a>, Oscar- and Golden Globe-nominated writer and actor <a href="https://staging.torontofilmschool.ca/blog/nia-vardalos-meteoric-rise-to-fame-and-critical-acclaim-inspires-during-motivational-in-conversation-event/" target="_blank" rel="noopener noreferrer">Nia Vardalos</a>, and teen-heartthrob-turned-award-winning-director <a href="https://staging.torontofilmschool.ca/blog/jason-priestleys-transformation-from-teen-heartthrob-to-acclaimed-actor-director-impresses-in-conversation-audience/" target="_blank" rel="noopener noreferrer">Jason Priestley</a>.\n \n \n \n <img class="alignnone size-medium wp-image-19649 aligncenter" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ALL_NiaVardalos1_0415-670x391-1.jpg" alt="" width="670" height="391" />\n \n \n \n “The <em>In Conversation</em> series…came out of brainstorming with staff, administration and faculty about ways we could enhance the student experience during this time of self-isolation during the COVID pandemic,” said Barnsley, who co-hosts the 90-minute events alongside <a href="https://staging.torontofilmschool.ca/programs/writing-for-film-tv-diploma/faculty/" target="_blank" rel="noopener noreferrer">Adam Till</a>, director of the <a href="https://staging.torontofilmschool.ca/programs/writing-for-film-tv-diploma/" target="_blank" rel="noopener noreferrer">Writing for Film & Television</a> program.\n \n \n \n “The feedback I’ve been receiving from students on this series has been very positive. You get the students who are just big fans of the talent we’ve brought into these conversations, but you also get students who are really inspired by the stories that these people have been able to share – their personal journeys of what it takes and the tools that they used along the way.”\n \n \n \n <img class="alignnone size-medium wp-image-19542 aligncenter" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_YU_ALL_DeirdrePickerellHeadshot_0408-670x393-1.jpg" alt="" width="670" height="393" />\n \n \n \n On the mental health and wellness side of things, <a href="https://www.yorkvilleu.ca/news/blog/yorkville-university-appoints-dr-deirdre-pickerell-new-dean-student-success/" target="_blank" rel="noopener noreferrer">Dr. Deirdre Pickerell</a>, the Dean of Student Success, and her team have been likewise hard at work rolling out a series of carefully curated resources – from podcasts and YouTube videos, to tip sheets and infographics, to a newly launched Ask An Expert webinar – all aimed at helping students and staff navigate the COVID-19 crisis.\n \n \n \n “We’re taking the approach of sharing resources that will help students with their mental health and wellness,” Pickerell said of her team’s recently launched #TFS_CARES campaign.\n \n \n \n “That means not only sharing really cool content that we’re finding, but also creating content that we think will be helpful for students…It’s all geared to helping them navigate this really challenging time.”\n \n \n \n <img class="alignnone size-medium wp-image-19776 aligncenter" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ALL_PaulGrahamHeadshot_0501-670x393-1.jpg" alt="" width="670" height="393" />\n \n \n \n Also hard at work to help support students and faculty through the transition from in-class to online studies has been <a href="https://yorkvilleu.academia.edu/PaulGraham" target="_blank" rel="noopener noreferrer">Paul Graham</a>, University Librarian, and his team of library staff.\n \n \n \n Graham said his team has employed a “focused service ethic” to their approach to the crisis – ensuring both awareness of, and access to the multitude of resources Toronto Film School’s online library can provide.\n \n \n \n “When you think of a library, people are going to think about maybe e-books and journal articles, but it’s not just that – it also encompasses videos, pictures, news articles, stage plays, screenplay databases, fashion marketing information, film information,” Graham explained, encouraging students and faculty, alike, to seek out his team’s assistance if they have any questions.\n \n \n \n “We enjoy when students ask us questions. We enjoy it when faculty has lots of work for us to do…We would welcome any question, any concern – even if we can’t answer it, we’ll find out who can and direct them to the correct department. When in doubt, ask the librarian.”\n \n \n \n With all that groundwork laid in advance of April 20, Shneer said the Spring term at Toronto Film School got off to an overwhelmingly positive start.\n \n \n \n “We didn’t know what Week 1 would bring…but we were thrilled. Attendance was phenomenal. Engagement was phenomenal,” she said, noting her team’s inboxes were quickly flooded with positive feedback from students like Christian Dalton and Romika Leslie.\n \n \n \n <img class="alignnone size-medium wp-image-19778 aligncenter" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/Screen-Shot-2020-05-01-at-3.36.08-PM-670x376-1.jpg" alt="" width="670" height="376" />\n \n \n \n “After my first week, I have nothing but positive things to say. I’m so excited to be here,” said Dalton, a first-term Acting student.\n \n \n \n “Everyone in my classes has been super involved and no one’s left out. There is a learning curve with technology for some, but it works so well and I can’t say enough good things. I absolutely love it.”\n \n \n \n Even Leslie, who admitted be being a bit apprehensive about the shift to online Acting classes, said the enthusiasm of her instructors immediately won her and her classmates over.\n \n \n \n <img class="alignnone size-medium wp-image-19777 aligncenter" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_RomikaLeslieScreenshot_0501-670x392-1.jpg" alt="" width="670" height="392" />\n \n \n \n “I was a little skeptical, thinking ‘How are we going to keep that same passion?’ But the energy the teachers are going with and the motivation they have (is contagious),” she said.\n \n \n \n “They’re very passionate about ‘This is going to work! We’re going to do this!’ So, I’m, like, ‘Alright, I’m with you. Let’s go!’”\n \n \n \n <img class="alignnone size-medium wp-image-19275 aligncenter" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_FP_YaleMassey_0311-670x393-1.jpg" alt="" width="670" height="393" />\n \n \n \n Those sentiments were echoed by both <a href="https://staging.torontofilmschool.ca/programs/film-production-diploma/faculty/" target="_blank" rel="noopener noreferrer">Yale Massey</a> and <a href="https://staging.torontofilmschool.ca/programs/writing-for-film-tv-diploma/faculty/" target="_blank" rel="noopener noreferrer">Adam Till</a>, directors of the <a href="https://staging.torontofilmschool.ca/programs/film-production-diploma/" target="_blank" rel="noopener noreferrer">Film Production</a> and <a href="https://staging.torontofilmschool.ca/programs/writing-for-film-tv-diploma/" target="_blank" rel="noopener noreferrer">Writing for Film & Television</a> programs, respectively.\n \n \n \n “It’s been pretty fascinating for me, just to see everyone coming together and making the most of this situation and trying to stay creative and keep learning,” said Massey.\n \n \n \n “Some of the ideas that instructors have had in terms of transitioning their courses online have been fabulous, and the first week is off to a good start. Students are engaged. Students think it’s much more than they thought it was going to be.”\n \n \n \n <img class="alignnone size-medium wp-image-8096 aligncenter" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/AdamTill_1025-670x386-1.jpg" alt="" width="670" height="386" />\n \n \n \n Added Till: “We’ve gotten great feedback from the students so far. I think everyone’s pleasantly surprised at how much we can do (on Zoom) between sharing screens and the breakout rooms, and the hand-raising function. It really does feel like a classroom.” """ |
post_title | "Synchronizing Our Creative Community | Toronto Film School’s Response to the COVID-19 Crisis"
|
post_excerpt | "" |
post_status | "publish"
|
comment_status | "closed"
|
ping_status | "open"
|
post_password | "" |
post_name | "synchronizing-our-creative-community-toronto-film-schools-response-to-the-covid-19-crisis"
|
to_ping | "" |
pinged | "" |
post_modified | "2023-04-04 19:11:38"
|
post_modified_gmt | "2023-04-04 19:11:38"
|
post_content_filtered | "" |
post_parent | 0
|
guid | "https://uat.tfs.staging.poundandgrain.ca/?p=19774"
|
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/synchronizing-our-creative-community-toronto-film-schools-response-to-the-covid-19-crisis/"
|
USER | "forge"
|
HOME | "/home/forge"
|
HTTP_REFERER | "https://uat.tfs.staging.poundandgrain.ca/news/synchronizing-our-creative-community-toronto-film-schools-response-to-the-covid-19-crisis"
|
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 | "uat.tfs.staging.poundandgrain.ca"
|
REDIRECT_STATUS | "200"
|
HTTPS | "on"
|
SERVER_NAME | "uat.tfs.staging.poundandgrain.ca"
|
SERVER_PORT | "443"
|
SERVER_ADDR | "10.0.1.187"
|
REMOTE_PORT | "45748"
|
REMOTE_ADDR | "3.141.21.106"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
SERVER_PROTOCOL | "HTTP/2.0"
|
DOCUMENT_ROOT | "/home/forge/uat.tfs.staging.poundandgrain.ca/releases/20241113033749/web"
|
DOCUMENT_URI | "/index.php"
|
SCRIPT_NAME | "/index.php"
|
SCRIPT_FILENAME | "/home/forge/uat.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 | 1736448678.5351
|
REQUEST_TIME | 1736448678
|
DB_NAME | "tfs_uat"
|
DB_USER | "***"
|
DB_PASSWORD | "************"
|
WP_ENV | "development"
|
WP_HOME | "https://uat.tfs.staging.poundandgrain.ca"
|
WP_SITEURL | "https://uat.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"
|
MIRROR_URL | "https://dev.tfs.staging.poundandgrain.ca"
|
SOURCE_OF_TRUTH | "false;"
|
BLOG_URL | "https://dev.tfs.staging.poundandgrain.ca"
|
Key | Value |
DB_NAME | "tfs_uat"
|
DB_USER | "***"
|
DB_PASSWORD | "************"
|
WP_ENV | "development"
|
WP_HOME | "https://uat.tfs.staging.poundandgrain.ca"
|
WP_SITEURL | "https://uat.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"
|
MIRROR_URL | "https://dev.tfs.staging.poundandgrain.ca"
|
SOURCE_OF_TRUTH | "false;"
|
BLOG_URL | "https://dev.tfs.staging.poundandgrain.ca"
|