*
* @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" => "little-bird-coming-to-tfs-for-truth-and-reconciliation-day-screening" "category_name" => "news" ] |
query_string | "name=little-bird-coming-to-tfs-for-truth-and-reconciliation-day-screening&category_name=news"
|
request | "news/little-bird-coming-to-tfs-for-truth-and-reconciliation-day-screening"
|
matched_rule | "(.+?)/([^/]+)(?:/([0-9]+))?/?$"
|
matched_query | "category_name=news&name=little-bird-coming-to-tfs-for-truth-and-reconciliation-day-screening&page="
|
did_permalink | true
|
Key | Value |
query | array:3 [ "page" => "" "name" => "little-bird-coming-to-tfs-for-truth-and-reconciliation-day-screening" "category_name" => "news" ] |
query_vars | array:66 [ "page" => 0 "name" => "little-bird-coming-to-tfs-for-truth-and-reconciliation-day-screening" "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 | 23717
|
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 = 'little-bird-coming-to-tfs-for-truth-and-reconciliation-day-screening' 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 | 23717
|
post_author | "43"
|
post_date | "2021-09-23 17:11:37"
|
post_date_gmt | "2021-09-23 17:11:37"
|
post_content | """ Hot off its <a href="https://2021.tiffr.com/shows/little-bird" target="_blank" rel="noopener noreferrer">world premiere at TIFF</a>, <a href="https://www.imdb.com/name/nm5532058/?ref_=nmbio_bio_nm" target="_blank" rel="noopener noreferrer">Tim Myles</a> is bringing his acclaimed new short film, <em><a href="https://www.imdb.com/title/tt15246156/?ref_=nm_knf_t1" target="_blank" rel="noopener noreferrer">Little Bird</a></em>, back to Toronto Film School for a special screening in honour of <a href="https://www.canada.ca/en/canadian-heritage/campaigns/national-day-truth-reconciliation.html" target="_blank" rel="noopener noreferrer">National Truth and Reconciliation Day</a>.\n \n \n <p style="text-align: center;"><iframe title="YouTube video player" src="https://www.youtube.com/embed/3faBtTF9BvA" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>\n \n \n The Mi’kmaw filmmaker and actor said he’s honoured by the opportunity to screen the 15-minute, semi-autobiographical film, which tells the story of a young man struggling to come to terms with his mother’s death, with his alma mater.\n \n \n \n “It means the world to me. I’m so thankful and grateful that Toronto Film School has been so supportive of my career post-graduation,” said the Class of 2016 <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> alumnus.\n \n \n \n “I think it’s important to show other students that this is what TFS thinks of its students – that they want you to succeed, and that they will celebrate your successes with you. We’re a small, close-knit school, so it creates a real sense of community – and I always felt that when I was there.”\n \n \n \n <img class="aligncenter wp-image-23726 size-medium" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2021/09/TFS_ACT_LittleBirdPoster_TimMyles_0921.jpg" alt="Movie poster of Little Bird used at Toronto International Film Festival " width="411" height="526" />\n \n \n \n Hosted by 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>, the <em>Little Bird</em> screening will take place at <a href="http://www.theroyal.to/?fbclid=IwAR0wu6ZITqEz5thlZnQl9Vxx8ZopKxq0P3FVoT1Cq97PAp06626gftF4rD4" target="_blank" rel="noopener noreferrer">The Royal Cinema</a>, <a href="https://www.google.com/maps/place/608+College+St,+Toronto,+ON+M6G+1B4/@43.6553504,-79.4151289,19z/data=!4m5!3m4!1s0x882b34f1d7575829:0xe407900c96bab76c!8m2!3d43.6553504!4d-79.4145817" target="_blank" rel="noopener noreferrer">608 College St.,</a> on Thursday, Sept. 30 at 2 p.m., followed by a Q&A panel discussion featuring Myles, who both directed and stars in the film, and his two co-stars, <a href="https://www.imdb.com/name/nm12854233/?ref_=ttfc_fc_cl_t3" target="_blank" rel="noopener noreferrer">Lisa Nasson</a> and <a href="https://www.imdb.com/name/nm0544752/?ref_=ttfc_fc_cl_t1" target="_blank" rel="noopener noreferrer">Cheri Maracle</a>.\n \n \n \n A limited number of tickets will be available on a first-come, first-served basis as of this Friday, Sept. 24 at 4 p.m. Any TFS staff, students or alumni who would like to attend are asked to email <a href="mailto:events@yorkvilleu.ca">events@yorkvilleu.ca.</a> For those unable to attend the event in person, the Q&A panel discussion with Myles and his cast will be live-streamed at 2:30 p.m. at <a href="https://create.torontofilmschool.ca/screening/littlebird/" target="_blank" rel="noopener noreferrer">https://create.torontofilmschool.ca/screening/littlebird/ </a>\n \n \n \n Written during the COVID-19 pandemic, <em>Little Bird</em> tells a deeply personal story based on Myles’ own experience with grief following the 2013 death of his mother from polycystic kidney disease.\n \n \n \n <img class="aligncenter wp-image-23721 size-medium" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2021/09/TFS_ACT_LittleBirdStill1_TimMyles_0921.jpg" alt="Little Bird movie preview " width="670" height="376" />\n \n \n \n “<em>Little Bird</em> follows a young man who is in the middle of giving a eulogy at his mother’s funeral, and in a grief-induced panic attack, grabs the urn with her ashes and makes a run for it to spend one final day with her,” the 27-year-old native Newfoundlander said of the <a href="https://www.torontofilmschool.ca/blog/tfs-grad-tim-myles-named-recipient-of-2020-imaginenative-lift-mentorship-grant/" target="_blank" rel="noopener noreferrer">2020 LIFT/imagineNATIVE Mentorship Grant</a>-winning film, which mirrors his own emotional journey.\n \n \n \n “Right after my mom passed away, I packed up all my things and moved to Toronto to follow my dreams of becoming an actor…but part of me always felt like I was running away at a very integral time that I should have spent grieving this tremendous loss.”\n \n \n \n [caption id="attachment_23728" align="aligncenter" width="462"]<img class="wp-image-23728 size-medium" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2021/09/TFS_ACT_TimMylesMom2_0921.jpg" alt="Tim Myles' late mother, Joelle " width="462" height="526" /> Tim Myles' late mother, Joelle.[/caption]\n \n \n \n It wasn’t until the pandemic hit, in fact, that Myles took the time to truly process the magnitude of his heartbreak – feelings that, until then, he’d unsuccessfully attempted to tune out.\n \n \n \n “I tried really hard to push that grief down, but it would always come out at really inappropriate times. Whenever I would go home for the holidays, it would rear its head and it was bad for a while,” he recalled.\n \n \n \n “But during the pandemic, I had time to sit down and reflect on the last few years and to think about her – and that’s kind of when <em>Little Bird</em> came out.”\n \n \n \n [caption id="attachment_23724" align="aligncenter" width="670"]<img class="wp-image-23724 size-medium" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2021/09/TFS_ACT_LittleBirdCrew_TimMyles_0921.jpg" alt="'Little Bird' cast and crew wearing protective masks standing before a house on set" width="670" height="458" /> Tim Myles and his 'Little Bird' cast and crew.[/caption]\n \n \n \n Filmed this past June on the Saugeen Shores near <a href="https://www.google.com/maps/place/Southampton,+ON/@44.4947533,-81.3972064,13z/data=!3m1!4b1!4m5!3m4!1s0x8829cfbc0ee0d0c9:0x9f95e0d6cd37c1e4!8m2!3d44.4948543!4d-81.3695635" target="_blank" rel="noopener noreferrer">Southampton, Ontario</a>, <em>Little Bird</em> is described as a “deeply moving, yet often humorous tribute” to Myles’ late mother, Joelle, as well as to his Mi’kmaw heritage.\n \n \n \n Myles said the on-set presence of his aunt, whom he cast as the voice of his mother, helped make the experience of shooting <em>Little Bird</em> all the more healing and authentic. The pair smudged the set every morning before shooting and bonded with elders from the <a href="https://saugeenfirstnation.ca/" target="_blank" rel="noopener noreferrer">Saugeen First Nation</a>, several of whom were also cast in small parts in the film.\n \n \n \n “It was so, so special. I haven’t really talked about this part of filming before, but it was such an important, important thing for my aunt to come,” Myles said, noting that she even brought along to set one of his mother’s ceremonial jackets, which she’d had custom made on the<a href="http://www.mfngov.ca/" target="_blank" rel="noopener noreferrer"> Miawpukek Mi’kamawey Mawi’omi</a> reserve in Conne River, Newfoundland.\n \n \n \n “I didn’t know she had brought it…so when I saw it hanging there, I just broke down. Everything just came up and it was very cathartic and beautiful. It was just a big healing experience – and I think it was what my mom would have wanted as closure to this era.”\n \n \n \n [caption id="attachment_23725" align="aligncenter" width="526"]<img class="wp-image-23725 size-medium" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2021/09/TFS_ACT_LittleBird_TimMylesLisaNasson_0921.jpg" alt="Tim Myles and Lisa Nasson on set of 'Little Bird'." width="526" height="526" /> Tim Myles and Lisa Nasson on the set of 'Little Bird'.[/caption]\n \n \n \n Myles said he was also blessed in the casting of his two central female roles – landing “highly respected” Mohawk actor <a href="https://www.imdb.com/name/nm0544752/?ref_=ttfc_fc_cl_t1" target="_blank" rel="noopener noreferrer">Cheri Maracle</a> – who’s starred in series including <em><a href="https://www.imdb.com/title/tt0264226/?ref_=nm_flmg_act_15" target="_blank" rel="noopener noreferrer">Blackfly</a>, <a href="https://www.imdb.com/title/tt0401035/?ref_=nm_flmg_act_14" target="_blank" rel="noopener noreferrer">Moccasin Flats</a>, <a href="https://www.imdb.com/title/tt1463395/?ref_=nm_flmg_act_11" target="_blank" rel="noopener noreferrer">Blackstone</a>, </em>and <em><a href="https://www.imdb.com/title/tt11761252/?ref_=nm_flmg_act_5" target="_blank" rel="noopener noreferrer">Unsettled</a> </em>– for the role of Anjij, and fellow Mi’kmaw actor <a href="https://www.imdb.com/name/nm12854233/?ref_=ttfc_fc_cl_t3" target="_blank" rel="noopener noreferrer">Lisa Nasson</a> to play the role of his sister, Jade.\n \n \n \n “I saw an interview with Cheri, and I recognized in her this energy and aura that embodied the character of Anjij – this quick-witted, but kind and gentle soul that, for my character, was so greatly needed at the time,” Myles said, noting that he sent the script to her agent and was pleasantly surprised when she agreed to sign on.\n \n \n \n “For the role of Jade, I actually wrote it with Lisa in mind. She’s one of my oldest friends in Toronto and we’re both Mi’kmaw, so we have that bond.”\n \n \n \n <img class="aligncenter wp-image-23723 size-medium" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2021/09/TFS_ACT_LittleBirdStill2_TimMyles_0921.jpg" alt="Little Bird movie clip of Tim Myles walking in a field holding an urn alongside Lisa Nasson " width="670" height="376" />\n \n \n \n Now that Myles and his cast have made their big red carpet debuts at TIFF during the festival’s <a href="https://tiff.net/events/short-cuts-yyz-edition" target="_blank" rel="noopener noreferrer">Short Cuts: YYZ Edition</a> programme – an experience Myles characterized as “beautiful” – he’s excited to see if he can ride the film’s momentum all the way to <a href="https://www.sundance.org/" target="_blank" rel="noopener noreferrer">Sundance</a> and <a href="https://slamdance.com/" target="_blank" rel="noopener noreferrer">Slamdance</a>.\n \n \n \n He’s also currently writing his first feature – a dark coming of age about growing up in rural Newfoundland in the 1990s – while also working as an assistant costume designer.\n \n \n \n No matter what comes next for him in his filmmaking career, Myles said he knows his mother would be proud of him, just as she always was.\n \n \n \n [caption id="attachment_23722" align="aligncenter" width="385"]<img class="wp-image-23722 size-medium" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2021/09/TFS_ACT_TimMylesMom_0921.jpg" alt="Young Tim Myles being held by his late mother, Joelle." width="385" height="526" /> Tim Myles and his late mother, Joelle.[/caption]\n \n \n \n “I used to write the plays when I was in school, and she was always there in the front row, supporting me. Every time I had an acting accomplishment, she would tell the whole world,” he laughed.\n \n \n \n “She was just amazing and she would be very happy and very, very proud. I know she is looking down on me, wherever she may be.”\n \n \n \n \n \n """ |
post_title | "‘Little Bird’ coming to TFS for Truth and Reconciliation Day Screening"
|
post_excerpt | "" |
post_status | "publish"
|
comment_status | "open"
|
ping_status | "open"
|
post_password | "" |
post_name | "little-bird-coming-to-tfs-for-truth-and-reconciliation-day-screening"
|
to_ping | "" |
pinged | "" |
post_modified | "2023-03-27 21:07:19"
|
post_modified_gmt | "2023-03-27 21:07:19"
|
post_content_filtered | "" |
post_parent | 0
|
guid | "https://dev.tfs.staging.poundandgrain.ca/?p=23717"
|
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/little-bird-coming-to-tfs-for-truth-and-reconciliation-day-screening/"
|
USER | "forge"
|
HOME | "/home/forge"
|
HTTP_REFERER | "https://dev.tfs.staging.poundandgrain.ca/news/little-bird-coming-to-tfs-for-truth-and-reconciliation-day-screening"
|
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 | "56704"
|
REMOTE_ADDR | "3.135.195.35"
|
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 | 1731860126.7589
|
REQUEST_TIME | 1731860126
|
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"
|