*
* @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" => "acting-students-set-to-bring-its-a-wonderful-life-to-the-stage-this-holiday-season" "category_name" => "news" ] |
query_string | "name=acting-students-set-to-bring-its-a-wonderful-life-to-the-stage-this-holiday-season&category_name=news"
|
request | "news/acting-students-set-to-bring-its-a-wonderful-life-to-the-stage-this-holiday-season"
|
matched_rule | "(.+?)/([^/]+)(?:/([0-9]+))?/?$"
|
matched_query | "category_name=news&name=acting-students-set-to-bring-its-a-wonderful-life-to-the-stage-this-holiday-season&page="
|
did_permalink | true
|
Key | Value |
query | array:3 [ "page" => "" "name" => "acting-students-set-to-bring-its-a-wonderful-life-to-the-stage-this-holiday-season" "category_name" => "news" ] |
query_vars | array:66 [ "page" => 0 "name" => "acting-students-set-to-bring-its-a-wonderful-life-to-the-stage-this-holiday-season" "category_name" => "news" "error" => "" "m" => "" "p" => 0 "post_parent" => "" "subpost" => "" "subpost_id" => "" "attachment" => "" "attachment_id" => 0 "pagename" => "" "page_id" => 0 "second" => "" "minute" => "" "hour" => "" "day" => 0 "monthnum" => 0 "year" => 0 "w" => 0 "tag" => "" "cat" => "" "tag_id" => "" "author" => "" "author_name" => "" "feed" => "" "tb" => "" "paged" => 0 "meta_key" => "" "meta_value" => "" "preview" => "" "s" => "" "sentence" => "" "title" => "" "fields" => "" "menu_order" => "" "embed" => "" "category__in" => [] "category__not_in" => [] "category__and" => [] "post__in" => [] "post__not_in" => [] "post_name__in" => [] "tag__in" => [] "tag__not_in" => [] "tag__and" => [] "tag_slug__in" => [] "tag_slug__and" => [] "post_parent__in" => [] "post_parent__not_in" => [] "author__in" => [] "author__not_in" => [] "search_columns" => [] "ignore_sticky_posts" => false "suppress_filters" => false "cache_results" => true "update_post_term_cache" => true "update_menu_item_cache" => false "lazy_load_term_meta" => true "update_post_meta_cache" => true "post_type" => "" "posts_per_page" => 10 "nopaging" => false "comments_per_page" => "50" "no_found_rows" => false "order" => "DESC" ] |
meta_query | WP_Meta_Query {#2559} |
queried_object | WP_Post {#2560} |
queried_object_id | 26960
|
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 = 'acting-students-set-to-bring-its-a-wonderful-life-to-the-stage-this-holiday-season' 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 | 26960
|
post_author | "43"
|
post_date | "2022-12-01 18:24:19"
|
post_date_gmt | "2022-12-01 18:24:19"
|
post_content | """ <img class="alignnone size-full wp-image-26961 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_ItsAWonderfulLifeTHUMB_1129.jpg" alt="" width="650" height="450" />\n \n \n <p style="font-weight: 400">Toronto Film School is set to bring <a href="https://en.wikipedia.org/wiki/Frank_Capra" target="_blank" rel="noopener noreferrer">Frank Capra</a>’s <em>It’s a Wonderful Life</em> to the stage at Papermill Theatre later this month.</p>\n \n <p style="font-weight: 400">Directed by Andy Massingham, this theatrical re-telling of a timeless Christmas classic draws upon “unique talents” of Massighnam’s “gifted” <a href="https://www.torontofilmschool.ca/programs/acting-for-film-tv-and-the-theatre-diploma/" target="_blank" rel="noopener noreferrer">Acting for Film, TV & the Theatre</a> students.</p>\n \n <p style="font-weight: 400">“<em>It’s A Wonderful Life </em>began its own curious life as a short story entitled <a href="https://en.wikipedia.org/wiki/The_Greatest_Gift" target="_blank" rel="noopener noreferrer"><em>The Greatest Gift</em></a>, written by Philip Van Doren Stern in 1943. A copy of it made it to legendary filmmaker Frank Capra, who loved the theme and knew there was a movie somewhere in it,” Massingham explained.</p>\n \n <p style="font-weight: 400">“So, he turned the story around a little bit, weaving in some elements of Dickens’ <a href="https://en.wikipedia.org/wiki/A_Christmas_Carol" target="_blank" rel="noopener noreferrer"><em>A Christmas Carol</em></a><em>, </em>as well as a nod to <a href="https://en.wikipedia.org/wiki/Aristophanes" target="_blank" rel="noopener noreferrer">Aristophanes</a> and <a href="https://en.wikipedia.org/wiki/Homer" target="_blank" rel="noopener noreferrer">Homer</a>, mixed in some rich new characters and came up with a film masterpiece, which he re-christened <a href="https://en.wikipedia.org/wiki/It%27s_a_Wonderful_Life" target="_blank" rel="noopener noreferrer"><em>It’s A Wonderful Life</em></a>.”</p>\n \n \n <img class="alignnone size-medium wp-image-26998 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/12/TFS_ACT_ItsAWonderfulLifePoster_1201.jpg" alt="" width="347" height="526" />\n \n \n <p style="font-weight: 400">Toronto Film School’s production of <em>It’s a Wonderful Life</em>, which is stage-managed by Emily Larman, will take to the stage at The Papermill Theatre for a three-performance run in Dec. 14, 15 and 17 as follows:</p>\n \n <p style="font-weight: 400;text-align: center">Wednesday, Dec. 14 at 7 p.m.</p>\n <p style="font-weight: 400;text-align: center">Thursday, Dec. 15 at 9 p.m.</p>\n <p style="font-weight: 400;text-align: center">Saturday, Dec. 17 at 2 p.m.</p>\n \n <p style="font-weight: 400">The Papermill Theatre is located at <a href="https://www.toronto.ca/explore-enjoy/history-art-culture/museums/todmorden-mills/" target="_blank" rel="noopener noreferrer">Todmorden Mills</a>, <a href="https://www.google.com/maps/place/67+Pottery+Rd,+Toronto,+ON+M4K+2B9/@43.686434,-79.360328,17z/data=!3m1!4b1!4m5!3m4!1s0x89d4ccbd193228fb:0x8739d86bfa203e42!8m2!3d43.686434!4d-79.360328" target="_blank" rel="noopener noreferrer">67 Pottery Rd.</a> Tickets are free and are available at the door.</p>\n <p style="font-weight: 400"><strong> </strong></p>\n \n <h1 style="font-weight: 400;text-align: center"><strong>The Creative Team Behind </strong><strong>It’s a Wonderful Life:</strong></h1>\n \n <p style="font-weight: 400;text-align: center"><img class="alignnone size-medium wp-image-26962" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_SahraAinab_1129.jpg" alt="" width="526" height="526" /></p>\n <p style="font-weight: 400;text-align: center"><strong>Sahra Ainab as Rose Bailey/Conductor (Frankie)</strong></p>\n <p style="font-weight: 400;text-align: center">Sahra Ainab is an actress from Edmonton, Alberta. She has worked in both theatre and film projects such as <em>Rochdale, West Side Story, Peter Pan </em>and <em>Mirror Game</em>. Sahra has a passion for bringing vibrant characters to life through all her roles. She is currently completing her fifth term at Toronto Film School and has big plans to dominate the film industry.</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-26963 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_JulesArruda_1128.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400;text-align: center"><strong>Jules Arruda as Ernie/Ruth Dakin Bailey/Zuzu</strong></p>\n <p style="font-weight: 400;text-align: center">Jelica ‘Jules’ Arruda was born and raised in Toronto, Ontario, to a father of Portuguese decent and a mother of French Canadian decent. She is currently enrolled in the Acting program at Toronto Film School. Jules has learned a multitude of skills in that program so far, such as writing, directing and camera, as well as acting on stage and camera. In her third term, Jules wrote, directed and starred in her own silent short film, entitled <em>Bury Your Gays</em>. She has always loved acting and will continue to act, write and direct in the future, where she hopes to find a bigger platform to display her talents on screen.</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-26964 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_AshleyMinHeeChung_1129.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400;text-align: center"><strong>Ashley Min Hee Chung as Violet Bick</strong></p>\n <p style="font-weight: 400;text-align: center">Ashley Min Here Chung is a Canadian-Korean actor currently training as a Term 5 Toronto Film School student. She fell in love with performing while attending a regional arts high school program, where she’d watch performances by classmates in the dance, theatre, and music program. Coming out of high school, she studied Fashion Communication and Flight Services at Seneca College. Her passion for acting continued to grow during Covid, so she decided to audition for Toronto Film School. That decision has changed her life. Ashley has performed numerous amazing scenes from film and theatrical pieces, such as <em>Angels in America</em>, directed by John Beale. As Ashley’s time in TFS comes to an end, she aspires to continue to grow as an actor in film and theatre.</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-26965 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_JulianGibson_1129.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400;text-align: center"><strong>Julian Gibson as Peter Bailey/Tyler/Bridgekeeper</strong></p>\n <p style="font-weight: 400;text-align: center">Julian Gibson is an actor from Ottawa, Ontario who started his career at a young age working for Angie’s Models & Talent Inc. In high school, he worked on creating short films and studying cameras. Before coming to Toronto Film School to focus on his real ambition for acting, he studied Tourism and Hospitality at Algonquin College. But he rekindled his passion for the arts and decided to further his career at Toronto Film School. Julian plans to combine his love of acting and travel to bring his creativity to the world through acting, directing and production.</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-26966 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_-HayleyKent_1129.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400;text-align: center"><strong>Hayley Kent as Mary Hatch</strong></p>\n <p style="font-weight: 400;text-align: center">Hayley Kent is currently a Term 5 student in the Acting for Film, TV & the Theatre at Toronto Film School. Coming straight out of high school, her ambition for acting has never been higher. Though Hayley didn’t have much professional experience in acting before coming to TFS, she was a part of her high school drama program, as well as her high school theatre program. Since coming to TFS, Hayley has learned not only how to act, but how to create and produce films, and has begun a few projects of her own.</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-26967 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_BrennanMacDonald_1129.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400;text-align: center"><strong>Brennan MacDonald as George Bailey</strong></p>\n <p style="font-weight: 400;text-align: center">Brennan MacDonald has always had a love for entertaining people through the art of acting. Ever since he was young, he’s always taken interest in school plays and musicals where he got to play characters such as ‘Sebastian’ in <em>The Little Mermaid</em>, ‘Fritz’ and ‘the Mouse King’ in <em>The Nutcracker</em>, and ‘Mayor May Who’ in <em>The Grinch</em>. He also performed in various annual music festivals for both musical theatre and choir. He’d go on to win multiple awards for best musical theatre performance at Stars of the Festival for his performances as ‘Seymour’ and ‘the Dentist’ from <em>Little Shop of Horrors</em>, ‘Mr Cellophane’ from <em>Chicago</em>, and ‘Chef Louis’ from <em>The Little Mermaid</em>. Before graduating, he helped teach a film and video class at his high school with his former school teacher Scott Bowman. He now lives in Toronto, where he’s currently in his fifth term studying at Toronto Film School in the Acting for Film, TV & the Theatre program.</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-26968 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_AlirezaMirzamohammadali_1129.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400;text-align: center"><strong>Alireza Mirzamohammadali as Uncle Billy</strong></p>\n <p style="font-weight: 400;text-align: center">Alireza Mirzamohammadali is an actor who started his career as an actor in 2016 with the film called <em>The Sad Song</em>, when he was thousands of kilometres away from North America, in Iran. After that, he went on stage for the first time that year with the play <em>Martial Law</em>. After 370 nights of being on stage and playing roles in different films between 2016 to 2021, he came to Canada to pursue the dream he’s had since he was a child – to make his way to Hollywood. It’s almost impossible to be born in the Middle East and dream to be a Hollywood actor, but for a guy whose favourite movie is <em>Mission Impossible</em>, nothing is impossible. He believes the goal of being an artist is to make the world a better place.</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-26969 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_EricMoatti_1129.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400;text-align: center"><strong>Eric Moatti as Mr. Gower/Sam Wainwright/Old Man Collins</strong></p>\n <p style="font-weight: 400;text-align: center">Eric Moatti is a Canadian-born actor from Toronto, Ontario. Originally from Montreal, Quebec, his family moved to Toronto when he was 13 years old. Growing up in the suburban GTA, he went to school at Vaughan Secondary School, where he began to develop a passion for drama and comedy. After starting an improv-comedy club at school with a few students and one passionate drama teacher, Eric began taking summer training courses at The Second City in downtown Toronto. After high school, Eric decided on the newly created Comedy Writing & Performing program at Humber College for his studies, but later dropped out to pursue a career in IT. After over a decade in that workforce and a global pandemic, Eric was accepted to Toronto Film School on a whim submission. He has been devoting himself to building his brand in the industry ever since.</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-26970 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_AngelineMonegro_1129.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400;text-align: center"><strong>Angeline Monegro as Ezekiel/Bert/Mrs. hatch/Mrs. Martini</strong></p>\n <p style="font-weight: 400;text-align: center">Angeline Monegro was born and raised in the Dominican Republic. She has worked in the industry since she was seven years old as a TV host, and in plays and musicals. After graduating from one of the most recognized musical theatre academies in the Dominican Republic, AFA , she participated in musicals such as <em>The Wizard of Oz</em>, <em>Cinderella</em>, and Y<em>oMio</em>. She is now continuing her development in the film industry and has worked on Dominican films including <em>Desaparecido</em> and <em>Rango de Honor</em>” A current Acting student at Toronto Film School, Angeline continues to learn and develop as an actress, producer, director, and writer, in order to grow within the industry in both English and Spanish.</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-26971 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_RavinduPadmanath_1129.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400;text-align: center"><strong>Ravindu Padmanath as Clarence</strong></p>\n <p style="font-weight: 400;text-align: center">Before enrolling as a student at Toronto Film School, Ravindu Padmanath watched all of the shows and movies, often finding himself instantly fascinated with the characters he saw on screen and the actors playing them. He became obsessed with actors’ performances, watching Youtube videos about an actor′s history or videos talking about how acting works. After coming to the realization that he wanted to be an actor, he started taking many Drama classes in high school, acting in plays and comedy sketches. After finding that many people in his class seemed to enjoy his performances, he decided to enrol at Toronto Film School. In Term 3, he performed in a collaborative class film, playing the character of ‘Verbal’ from <em>The Usual Suspects</em>. He also created his own short film.</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-26972 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_JordanPantlitz_1129.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400;text-align: center"><strong>Jordan Pantlitz as Joseph/Pete</strong></p>\n <p style="font-weight: 400;text-align: center">Jordan Pantlitz is a 27-year-old actor born in Wolverhampton, England. He got his start in modelling through Sean Brown, who selected Jordan to represent his Brand (Needs&WantsNeeds) during its 2017 launch. That catapulted Jordan into being one of the top in-demand models in Toronto through 2017 to 2020. Following that success and the opportunities that came with it, Jordan later decided to step back from modelling to pursue a career in acting, writing and cinematography, citing that “A lot had changed in my life. I was really aimless and hurting from past events I had been through. I forgot who I was and what mattered and what didn’t. I needed and wanted to do something that would help save my creative productivity and express myself and challenge myself.” Jordan decided to audition for Toronto Film School and got in. “I wanted to take all my pain, all my happiness, all my happy and dark moments, and learn how to make it all performative to a degree to actually show people where I can take things in a scene because of where I have been in life and what I have seen and experienced”.</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-26973 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_KaitlynRobinson_1129.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400;text-align: center"><strong>Kaitlyn Robinson as Winifred Potter/Janey</strong></p>\n <p style="font-weight: 400;text-align: center">Kaitlyn Robinson is an actress currently in her fifth term of the Acting for Film, TV & the Theatre program at Toronto Film School. Kaitlyn aspires to be a film and TV actor, but also has a passion for theatre and musicals, where she can showcase her singing talents. She has performed in numerous theatre and film projects throughout her time at school. Some of her notable roles are ‘Skylar’ in <em>Good Will Hunting</em>, and ‘Harper Pitt’ in <em>Angels in America.</em></p>\n \n <p style="font-weight: 400;text-align: center"><em> </em></p>\n <img class="alignnone size-medium wp-image-26974 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_RaymondScott_1128.jpg" alt="" width="521" height="526" />\n <p style="font-weight: 400;text-align: center"><strong>Raymond Scott as Henry Potter/Ed/Bank Teller/Mr. Welch</strong></p>\n <p style="font-weight: 400;text-align: center">Raymond Scott is an actor currently in the fifth term of the Acting for Film, TV & the Theatre program at Toronto Film School. He has performed many scenes from TV shows, films and plays during his time at school. Some of his notable theatre roles are ‘Starbuck’ in <em>Moby Dick</em> and ‘Officer Frank’ in <em>Chase</em>. He also performed scenes from films and TV shows, such as ‘Michael Kelso’ in <em>That 70’s Show</em> and ‘Neal Page’ in <em>Planes, Trains and Automobiles.</em></p>\n \n \n \n \n <img class="alignnone size-medium wp-image-26975 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_SkyThukral_1129.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400;text-align: center"><strong>Sky Thukral as Harry Bailey/Dr. Campbell/Stanley’Jenkins</strong></p>\n <p style="font-weight: 400;text-align: center">Sky Thukral was a model in Delhi (India), working for Amazon and several other brands. He always dreamed of becoming an actor, so he left home and came to Canada to make that dream come true. Sky always loved watching films and watching actors on the screen made him happy, so he realized he wanted to do that someday. He is currently in his fifth term at Toronto Film School. In Term 3, he produced, directed, and starred in his own short silent film, titled <em>The Cursed Dream</em>. He also played a hostage in a YouTube video produced by Mercenary Productions. Sky did some modeling in India, because he was afraid to perform in front of people, but after coming to TFS and training for a while, he can proudly say that he’s not that afraid anymore. He loves the feeling of being in front of a camera and getting that attention.</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-26976 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_EmilyLarman_1129.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400;text-align: center"><strong>Emily Larman – Stage Manager </strong></p>\n <p style="font-weight: 400;text-align: center">Emily Larman is a 21-year-old Canadian actress who graduated from the Acting for Film, TV & the Theatre program at Toronto Film School in November 2022. She developed a passion for acting at a young age whilst performing scenes from movies with her friends. Larman’s passion only grew as she did, watching her favourite films and TV shows and learning more about what went on behind the scenes. Since graduating from TFS, she has been eagerly searching for ways to immerse herself more in the industry, as she loves acting and everything about the business. Emily is extremely passionate about this production and is incredibly grateful to everyone who helped make it possible.</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-26977 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_ACT_AndyMassingham_1129.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400;text-align: center"><strong>Andy Massingham – Director </strong></p>\n <p style="font-weight: 400;text-align: center">Andy Massingham is a Dora-award winning actor, director, writer and teacher who has been working professionally in theatre and film for over 30 years. His previous directing credits for Toronto Film School include <em>Ye Gods, This Is How </em><em>It’s Done </em>and <em>Clue. </em>Andy has performed at the Stratford festival, the National Arts Centre, Banff Centre, Theatre New Brunswick and dozens of others. His solo show <em>Rough House </em>toured Canada and the U.S. Andy is thrilled to be working with this wonderful ensemble and is so very grateful for this opportunity.</p>\n \n \n """ |
post_title | "Acting Students Set to Bring ‘It’s A Wonderful Life’ to the Stage this Holiday Season"
|
post_excerpt | "" |
post_status | "publish"
|
comment_status | "closed"
|
ping_status | "open"
|
post_password | "" |
post_name | "acting-students-set-to-bring-its-a-wonderful-life-to-the-stage-this-holiday-season"
|
to_ping | "" |
pinged | "" |
post_modified | "2023-03-27 21:06:51"
|
post_modified_gmt | "2023-03-27 21:06:51"
|
post_content_filtered | "" |
post_parent | 0
|
guid | "https://dev.tfs.staging.poundandgrain.ca/?p=26960"
|
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/acting-students-set-to-bring-its-a-wonderful-life-to-the-stage-this-holiday-season/"
|
USER | "forge"
|
HOME | "/home/forge"
|
HTTP_REFERER | "https://dev.tfs.staging.poundandgrain.ca/news/acting-students-set-to-bring-its-a-wonderful-life-to-the-stage-this-holiday-season"
|
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 | "51733"
|
REMOTE_ADDR | "18.222.182.8"
|
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 | 1731842769.885
|
REQUEST_TIME | 1731842769
|
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"
|