*
* @package org.cocur.slugify
* @author Florian Eckerstorfer <florian@eckerstorfer.co>
* @author Marchenko Alexandr
* @copyright 2012-2014 Florian Eckerstorfer
* @license http://www.opensource.org/licenses/MIT The MIT License
*/
interface SlugifyInterface
{
/**
* Return a URL safe version of a string.
*
* @param string $string
* @param string|array|null $options
*
* @return string
*
* @api
*/
public function slugify(string $string, array|string|null $options = null): string;
}
"syntax error, unexpected '|', expecting variable (T_VARIABLE) (View: /home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/web/app/themes/tfs/resources/views/single.blade.php)"
*
* @param string $__path
* @param array $__data
* @return string
*/
protected function evaluatePath($__path, $__data)
{
$obLevel = ob_get_level();
ob_start();
extract($__data, EXTR_SKIP);
// We'll evaluate the contents of the view inside a try/catch block so we can
// flush out any stray output that might get out before an error occurs or
// an exception is thrown. This prevents any partial views from leaking.
try {
include $__path;
} catch (Throwable $e) {
$this->handleViewException($e, $obLevel);
}
return ltrim(ob_get_clean());
}
/**
* Handle a view exception.
*
* @param \Throwable $e
* @param int $obLevel
* @return void
*
* @throws \Throwable
*/
protected function handleViewException(Throwable $e, $obLevel)
{
while (ob_get_level() > $obLevel) {
ob_end_clean();
}
*
* @package org.cocur.slugify
* @author Florian Eckerstorfer <florian@eckerstorfer.co>
* @author Marchenko Alexandr
* @copyright 2012-2014 Florian Eckerstorfer
* @license http://www.opensource.org/licenses/MIT The MIT License
*/
interface SlugifyInterface
{
/**
* Return a URL safe version of a string.
*
* @param string $string
* @param string|array|null $options
*
* @return string
*
* @api
*/
public function slugify(string $string, array|string|null $options = null): string;
}
"syntax error, unexpected '|', expecting variable (T_VARIABLE)"
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
if (null !== $this->vendorDir) {
unset(self::$registeredLoaders[$this->vendorDir]);
}
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
* @return true|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
$includeFile = self::$includeFile;
$includeFile($file);
return true;
}
return null;
}
/**
* Finds the path to the file where the class is defined.
*
* @param string $class The name of the class
*
* @return string|false The path if found, false otherwise
*/
public function findFile($class)
{
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
}
*
* For the full copyright and license information, please view the LICENSE.md
* file that was distributed with this source code.
*
* ------------------------------------------------------------------
*/
declare(strict_types=1);
namespace TOC;
use Cocur\Slugify\Slugify;
use Cocur\Slugify\SlugifyInterface;
/**
* UniqueSlugify creates slugs from text without repeating the same slug twice per instance
*
* @author Casey McLaughlin <caseyamcl@gmail.com>
*/
class UniqueSlugify implements SlugifyInterface
{
/**
* @var SlugifyInterface
*/
private $slugify;
/**
* @var array
*/
private $used;
/**
* Constructor
*
* @param SlugifyInterface|null $slugify
*/
public function __construct(?SlugifyInterface $slugify = null)
{
$this->used = array();
$this->slugify = $slugify ?: new Slugify();
/**
* @return void
*/
private static function initializeIncludeClosure()
{
if (self::$includeFile !== null) {
return;
}
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*
* @param string $file
* @return void
*/
self::$includeFile = \Closure::bind(static function($file) {
include $file;
}, null, null);
}
}
"/home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/vendor/caseyamcl/toc/src/UniqueSlugify.php"
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
if (null !== $this->vendorDir) {
unset(self::$registeredLoaders[$this->vendorDir]);
}
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
* @return true|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
$includeFile = self::$includeFile;
$includeFile($file);
return true;
}
return null;
}
/**
* Finds the path to the file where the class is defined.
*
* @param string $class The name of the class
*
* @return string|false The path if found, false otherwise
*/
public function findFile($class)
{
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
}
/**
* @var HTML5
*/
private $htmlParser;
/**
* @var SlugifyInterface
*/
private $slugifier;
/**
* Constructor
*
* @param HTML5|null $htmlParser
* @param SlugifyInterface|null $slugify
*/
public function __construct(?HTML5 $htmlParser = null, ?SlugifyInterface $slugify = null)
{
$this->htmlParser = $htmlParser ?? new HTML5();
$this->slugifier = $slugify ?? new UniqueSlugify();
}
/**
* Fix markup
*
* @param string $markup
* @param int $topLevel
* @param int $depth
* @return string Markup with added IDs
* @throws RuntimeException
*/
public function fix(string $markup, int $topLevel = 1, int $depth = 6): string
{
if (! $this->isFullHtmlDocument($markup)) {
$partialID = uniqid('toc_generator_');
$markup = sprintf("<body id='%s'>%s</body>", $partialID, $markup);
}
$domDocument = $this->htmlParser->loadHTML($markup);
$domDocument->preserveWhiteSpace = true; // do not clobber whitespace
<?php
namespace App\View\Composers;
use DOMDocument;
use Roots\Acorn\View\Composer;
class BlogPost extends Composer
{
protected static $views = [
'partials.content-single',
];
public function override()
{
$fields = get_fields();
$htmlContent = apply_filters( 'the_content', get_the_content() );
$markupFixer = new \TOC\MarkupFixer();
$tocGenerator = new \TOC\TocGenerator();
$htmlContent = $markupFixer->fix($htmlContent);
$fields['toc'] = $tocGenerator->getOrderedHtmlMenu($htmlContent);
$fields['the_content'] = $htmlContent;
$fields['the_category'] = $this->getCategory();
return $fields;
}
public function getCategory() {
$category = null;
if(get_the_terms(get_the_id(), 'category')) {
foreach(get_the_terms(get_the_id(), 'category') as $term) {
if($term->name !== "Blog" && $term->name !== "Events" && $term->name !== "News") {
$category = $term;
return $category;
}
}
}
*/
public function compose(View $view)
{
$this->view = $view;
$this->data = new Fluent($view->getData());
$view->with($this->merge());
}
/**
* Data to be merged and passed to the view before rendering.
*
* @return array
*/
protected function merge()
{
return array_merge(
$this->with(),
$this->view->getData(),
$this->override()
);
}
/**
* Data to be passed to view before rendering
*
* @return array
*/
protected function with()
{
return [];
}
/**
* Data to be passed to view before rendering
*
* @return array
*/
protected function override()
{
return static::$views;
}
$view = array_slice(explode('\\', static::class), 3);
$view = array_map([Str::class, 'snake'], $view, array_fill(0, count($view), '-'));
return implode('/', $view);
}
/**
* Compose the view before rendering.
*
* @param \Illuminate\View\View $view
* @return void
*/
public function compose(View $view)
{
$this->view = $view;
$this->data = new Fluent($view->getData());
$view->with($this->merge());
}
/**
* Data to be merged and passed to the view before rendering.
*
* @return array
*/
protected function merge()
{
return array_merge(
$this->with(),
$this->view->getData(),
$this->override()
);
}
/**
* Data to be passed to view before rendering
*
* @return array
return $callback;
}
/**
* Build a class based container callback Closure.
*
* @param string $class
* @param string $prefix
* @return \Closure
*/
protected function buildClassEventCallback($class, $prefix)
{
[$class, $method] = $this->parseClassEvent($class, $prefix);
// Once we have the class and method name, we can build the Closure to resolve
// the instance out of the IoC container and call the method on it with the
// given arguments that are passed to the Closure as the composer's data.
return function () use ($class, $method) {
return $this->container->make($class)->{$method}(...func_get_args());
};
}
/**
* Parse a class based composer name.
*
* @param string $class
* @param string $prefix
* @return array
*/
protected function parseClassEvent($class, $prefix)
{
return Str::parseCallback($class, $this->classEventMethodForPrefix($prefix));
}
/**
* Determine the class event method based on the given prefix.
*
* @param string $prefix
* @return string
* @param \Closure|string $listener
* @param bool $wildcard
* @return \Closure
*/
public function makeListener($listener, $wildcard = false)
{
if (is_string($listener)) {
return $this->createClassListener($listener, $wildcard);
}
if (is_array($listener) && isset($listener[0]) && is_string($listener[0])) {
return $this->createClassListener($listener, $wildcard);
}
return function ($event, $payload) use ($listener, $wildcard) {
if ($wildcard) {
return $listener($event, $payload);
}
return $listener(...array_values($payload));
};
}
/**
* Create a class based listener using the IoC container.
*
* @param string $listener
* @param bool $wildcard
* @return \Closure
*/
public function createClassListener($listener, $wildcard = false)
{
return function ($event, $payload) use ($listener, $wildcard) {
if ($wildcard) {
return call_user_func($this->createClassCallable($listener), $event, $payload);
}
$callable = $this->createClassCallable($listener);
return $callable(...array_values($payload));
* @param bool $halt
* @return array|null
*/
public function dispatch($event, $payload = [], $halt = false)
{
// When the given "event" is actually an object we will assume it is an event
// object and use the class as the event name and this event itself as the
// payload to the handler, which makes object based events quite simple.
[$event, $payload] = $this->parseEventAndPayload(
$event, $payload
);
if ($this->shouldBroadcast($payload)) {
$this->broadcastEvent($payload[0]);
}
$responses = [];
foreach ($this->getListeners($event) as $listener) {
$response = $listener($event, $payload);
// If a response is returned from the listener and event halting is enabled
// we will just return this response, and not call the rest of the event
// listeners. Otherwise we will add the response on the response list.
if ($halt && ! is_null($response)) {
return $response;
}
// If a boolean false is returned from a listener, we will stop propagating
// the event to any further listeners down in the chain, else we keep on
// looping through the listeners and firing every one in our sequence.
if ($response === false) {
break;
}
$responses[] = $response;
}
return $halt ? null : $responses;
}
protected function addEventListener($name, $callback)
{
if (Str::contains($name, '*')) {
$callback = function ($name, array $data) use ($callback) {
return $callback($data[0]);
};
}
$this->events->listen($name, $callback);
}
/**
* Call the composer for a given view.
*
* @param \Illuminate\Contracts\View\View $view
* @return void
*/
public function callComposer(ViewContract $view)
{
$this->events->dispatch('composing: '.$view->name(), [$view]);
}
/**
* Call the creator for a given view.
*
* @param \Illuminate\Contracts\View\View $view
* @return void
*/
public function callCreator(ViewContract $view)
{
$this->events->dispatch('creating: '.$view->name(), [$view]);
}
}
} catch (Throwable $e) {
$this->factory->flushState();
throw $e;
}
}
/**
* Get the contents of the view instance.
*
* @return string
*/
protected function renderContents()
{
// We will keep track of the amount of views being rendered so we can flush
// the section after the complete rendering operation is done. This will
// clear out the sections for any separate views that may be rendered.
$this->factory->incrementRender();
$this->factory->callComposer($this);
$contents = $this->getContents();
// Once we've finished rendering the view, we'll decrement the render count
// so that each sections get flushed out next time a view is created and
// no old sections are staying around in the memory of an environment.
$this->factory->decrementRender();
return $contents;
}
/**
* Get the evaluated contents of the view.
*
* @return string
*/
protected function getContents()
{
return $this->engine->get($this->path, $this->gatherData());
}
$this->view = $view;
$this->path = $path;
$this->engine = $engine;
$this->factory = $factory;
$this->data = $data instanceof Arrayable ? $data->toArray() : (array) $data;
}
/**
* Get the string contents of the view.
*
* @param callable|null $callback
* @return array|string
*
* @throws \Throwable
*/
public function render(callable $callback = null)
{
try {
$contents = $this->renderContents();
$response = isset($callback) ? $callback($this, $contents) : null;
// Once we have the contents of the view, we will flush the sections if we are
// done rendering all views so that there is nothing left hanging over when
// another view gets rendered in the future by the application developer.
$this->factory->flushStateIfDoneRendering();
return ! is_null($response) ? $response : $contents;
} catch (Throwable $e) {
$this->factory->flushState();
throw $e;
}
}
/**
* Get the contents of the view instance.
*
* @return string
<?php $__env->startSection('content'); ?>
<?php while(have_posts()): ?> <?php (the_post()); ?>
<?php echo $__env->first(['partials.content-single-' . get_post_type(), 'partials.content-single'], \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
<?php endwhile; ?>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('layouts.app', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/web/app/themes/tfs/resources/views/single.blade.php ENDPATH**/ ?>
/**
* Get the evaluated contents of the view at the given path.
*
* @param string $__path
* @param array $__data
* @return string
*/
protected function evaluatePath($__path, $__data)
{
$obLevel = ob_get_level();
ob_start();
extract($__data, EXTR_SKIP);
// We'll evaluate the contents of the view inside a try/catch block so we can
// flush out any stray output that might get out before an error occurs or
// an exception is thrown. This prevents any partial views from leaking.
try {
include $__path;
} catch (Throwable $e) {
$this->handleViewException($e, $obLevel);
}
return ltrim(ob_get_clean());
}
/**
* Handle a view exception.
*
* @param \Throwable $e
* @param int $obLevel
* @return void
*
* @throws \Throwable
*/
protected function handleViewException(Throwable $e, $obLevel)
{
while (ob_get_level() > $obLevel) {
ob_end_clean();
"/home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/web/app/themes/tfs/storage/framework/views/eb422c8beb3d93cfa2fe08ce3b438f23bc0fae21.php"
*
* @param string $path
* @param array $data
* @return string
*/
public function get($path, array $data = [])
{
$this->lastCompiled[] = $path;
// If this given view has expired, which means it has simply been edited since
// it was last compiled, we will re-compile the views so we can evaluate a
// fresh copy of the view. We'll pass the compiler the path of the view.
if ($this->compiler->isExpired($path)) {
$this->compiler->compile($path);
}
// Once we have the path to the compiled file, we will evaluate the paths with
// typical PHP just like any other templates. We also keep a stack of views
// which have been rendered for right exception messages to be generated.
$results = $this->evaluatePath($this->compiler->getCompiledPath($path), $data);
array_pop($this->lastCompiled);
return $results;
}
/**
* Handle a view exception.
*
* @param \Throwable $e
* @param int $obLevel
* @return void
*
* @throws \Throwable
*/
protected function handleViewException(Throwable $e, $obLevel)
{
$e = new ViewException($this->getMessage($e), 0, 1, $e->getFile(), $e->getLine(), $e);
parent::handleViewException($e, $obLevel);
$this->factory->callComposer($this);
$contents = $this->getContents();
// Once we've finished rendering the view, we'll decrement the render count
// so that each sections get flushed out next time a view is created and
// no old sections are staying around in the memory of an environment.
$this->factory->decrementRender();
return $contents;
}
/**
* Get the evaluated contents of the view.
*
* @return string
*/
protected function getContents()
{
return $this->engine->get($this->path, $this->gatherData());
}
/**
* Get the data bound to the view instance.
*
* @return array
*/
public function gatherData()
{
$data = array_merge($this->factory->getShared(), $this->data);
foreach ($data as $key => $value) {
if ($value instanceof Renderable) {
$data[$key] = $value->render();
}
}
return $data;
}
throw $e;
}
}
/**
* Get the contents of the view instance.
*
* @return string
*/
protected function renderContents()
{
// We will keep track of the amount of views being rendered so we can flush
// the section after the complete rendering operation is done. This will
// clear out the sections for any separate views that may be rendered.
$this->factory->incrementRender();
$this->factory->callComposer($this);
$contents = $this->getContents();
// Once we've finished rendering the view, we'll decrement the render count
// so that each sections get flushed out next time a view is created and
// no old sections are staying around in the memory of an environment.
$this->factory->decrementRender();
return $contents;
}
/**
* Get the evaluated contents of the view.
*
* @return string
*/
protected function getContents()
{
return $this->engine->get($this->path, $this->gatherData());
}
/**
$this->view = $view;
$this->path = $path;
$this->engine = $engine;
$this->factory = $factory;
$this->data = $data instanceof Arrayable ? $data->toArray() : (array) $data;
}
/**
* Get the string contents of the view.
*
* @param callable|null $callback
* @return array|string
*
* @throws \Throwable
*/
public function render(callable $callback = null)
{
try {
$contents = $this->renderContents();
$response = isset($callback) ? $callback($this, $contents) : null;
// Once we have the contents of the view, we will flush the sections if we are
// done rendering all views so that there is nothing left hanging over when
// another view gets rendered in the future by the application developer.
$this->factory->flushStateIfDoneRendering();
return ! is_null($response) ? $response : $contents;
} catch (Throwable $e) {
$this->factory->flushState();
throw $e;
}
}
/**
* Get the contents of the view instance.
*
* @return string
<!doctype html>
<html <?php language_attributes(); ?>>
<?php echo \Roots\view(\Roots\app('sage.view'), \Roots\app('sage.data'))->render(); ?>
</html>
}
break;
}
}
if ( ! $template ) {
$template = get_index_template();
}
/**
* Filters the path of the current template before including it.
*
* @since 3.0.0
*
* @param string $template The path of the template to include.
*/
$template = apply_filters( 'template_include', $template );
if ( $template ) {
include $template;
} elseif ( current_user_can( 'switch_themes' ) ) {
$theme = wp_get_theme();
if ( $theme->errors() ) {
wp_die( $theme->errors() );
}
}
return;
}
"/home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/web/app/themes/tfs/index.php"
<?php
/**
* Loads the WordPress environment and template.
*
* @package WordPress
*/
if ( ! isset( $wp_did_header ) ) {
$wp_did_header = true;
// Load the WordPress library.
require_once __DIR__ . '/wp-load.php';
// Set up the WordPress query.
wp();
// Load the theme template.
require_once ABSPATH . WPINC . '/template-loader.php';
}
"/home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/web/wp/wp-includes/template-loader.php"
<?php
/**
* WordPress View Bootstrapper
*/
define('WP_USE_THEMES', true);
require __DIR__ . '/wp/wp-blog-header.php';
"/home/forge/dev.tfs.staging.poundandgrain.ca/releases/20241113033749/web/wp/wp-blog-header.php"
Key | Value |
query_vars | array:3 [ "page" => "" "name" => "tfs-grad-credits-italian-contemporary-film-fest-with-helping-her-find-her-way" "category_name" => "blog" ] |
query_string | "name=tfs-grad-credits-italian-contemporary-film-fest-with-helping-her-find-her-way&category_name=blog"
|
request | "blog/tfs-grad-credits-italian-contemporary-film-fest-with-helping-her-find-her-way"
|
matched_rule | "(.+?)/([^/]+)(?:/([0-9]+))?/?$"
|
matched_query | "category_name=blog&name=tfs-grad-credits-italian-contemporary-film-fest-with-helping-her-find-her-way&page="
|
did_permalink | true
|
Key | Value |
query | array:3 [ "page" => "" "name" => "tfs-grad-credits-italian-contemporary-film-fest-with-helping-her-find-her-way" "category_name" => "blog" ] |
query_vars | array:66 [ "page" => 0 "name" => "tfs-grad-credits-italian-contemporary-film-fest-with-helping-her-find-her-way" "category_name" => "blog" "error" => "" "m" => "" "p" => 0 "post_parent" => "" "subpost" => "" "subpost_id" => "" "attachment" => "" "attachment_id" => 0 "pagename" => "" "page_id" => 0 "second" => "" "minute" => "" "hour" => "" "day" => 0 "monthnum" => 0 "year" => 0 "w" => 0 "tag" => "" "cat" => "" "tag_id" => "" "author" => "" "author_name" => "" "feed" => "" "tb" => "" "paged" => 0 "meta_key" => "" "meta_value" => "" "preview" => "" "s" => "" "sentence" => "" "title" => "" "fields" => "" "menu_order" => "" "embed" => "" "category__in" => [] "category__not_in" => [] "category__and" => [] "post__in" => [] "post__not_in" => [] "post_name__in" => [] "tag__in" => [] "tag__not_in" => [] "tag__and" => [] "tag_slug__in" => [] "tag_slug__and" => [] "post_parent__in" => [] "post_parent__not_in" => [] "author__in" => [] "author__not_in" => [] "search_columns" => [] "ignore_sticky_posts" => false "suppress_filters" => false "cache_results" => true "update_post_term_cache" => true "update_menu_item_cache" => false "lazy_load_term_meta" => true "update_post_meta_cache" => true "post_type" => "" "posts_per_page" => 10 "nopaging" => false "comments_per_page" => "50" "no_found_rows" => false "order" => "DESC" ] |
meta_query | WP_Meta_Query {#2559} |
queried_object | WP_Post {#2560} |
queried_object_id | 25946
|
request | """ SELECT wp_posts.*\n \t\t\t\t\t FROM wp_posts \n \t\t\t\t\t WHERE 1=1 AND wp_posts.post_name = 'tfs-grad-credits-italian-contemporary-film-fest-with-helping-her-find-her-way' 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 | 25946
|
post_author | "43"
|
post_date | "2022-06-23 19:16:14"
|
post_date_gmt | "2022-06-23 19:16:14"
|
post_content | """ <p style="font-weight: 400;"><a href="https://www.linkedin.com/in/donatella-zanon-97a583147/" target="_blank" rel="noopener noreferrer">Donatella Zanon</a> was in her sixth term of the <a href="https://www.torontofilmschool.ca/programs/film-production-diploma/" target="_blank" rel="noopener noreferrer">Film Production</a> program at Toronto Film School when the pandemic hit and all of her post-graduation plans began to fall apart.</p>\n \n <p style="font-weight: 400;">Her visa to stay in Canada was in jeopardy, she couldn’t find a job, and flying home to Italy wasn’t an option because, at the time, borders were closing and flights were being cancelled – in short, she found herself at a loss for what to do next.</p>\n \n \n [caption id="attachment_25956" align="aligncenter" width="526"]<img class="wp-image-25956 size-medium" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/06/TFS_FP_DonatellaZanon_0617.jpg" alt="" width="526" height="526" /> Donatella Zanon[/caption]\n \n \n <p style="font-weight: 400;">Then, through an opportune twist of fate, she happened across the <a href="https://icff.ca/festival-2022/" target="_blank" rel="noopener noreferrer">Italian Contemporary Film Festival (ICFF)</a>.</p>\n \n <p style="font-weight: 400;">“I spoke with the organizers there at the festival, which was taking place at Ontario Place because of the pandemic, and they took me on,” she said, noting that festival helped her secure a work permit and sponsorship to remain in the country.</p>\n \n <p style="font-weight: 400;">“It was very unexpected and beautiful, in a way. They helped me find my way in the worst moment in time, when I truly had no real hope of staying. It was fantastic.”</p>\n \n <p style="font-weight: 400;">Zanon, who got her festival start working for her hometown <a href="https://www.labiennale.org/en/cinema/2022" target="_blank" rel="noopener noreferrer">Venice International Film Festival</a> as a volunteer, said her love of cinema started at a very early age, spurred by her father’s own passion for film.</p>\n \n <p style="font-weight: 400;">“I’ve always been in love with film and cinema, and I’ve always been involved in it – it’s been a family-type spirit passed on to me,” she said. “I’ve always been the one staying in the movie theatre to watch the credits with my father, because I knew, one day, I wanted to be one of the people whose names were up there.”</p>\n \n <p style="font-weight: 400;">It was that passion that drove Zanon to want to study film, first – briefly – at the <a href="https://www.torontofilmschool.ca/blog/toronto-film-school-announces-collaboration-beijing-film-academy/" target="_blank" rel="noopener noreferrer">Beijing Film Academy</a>, then at Toronto Film School, where she earned her diploma in <a href="https://www.torontofilmschool.ca/programs/film-production-diploma/" target="_blank" rel="noopener noreferrer">Film Production</a> in 2020.</p>\n \n <p style="font-weight: 400;">“My time at Toronto Film School was fantastic. I think I’ve always dreamed of going to film school and meeting like-minded people, but I never really fully understood the scope of what that would look like,” she said.</p>\n \n <p style="font-weight: 400;">“And it was not just the classes, but all the people I met, the little details you pick up by collaborating with others, and hearing the stories and experiences of teachers who have lots to teach. So many were big inspirations to me and the reason I choose to pursue this career.”</p>\n \n <p style="font-weight: 400;">Now that she's graduated, Zanon said her drive to make her mark as a filmmaker is as strong as ever. Since finishing her studies at Toronto Film School, she’s so far worked on a few TV and short film sets, but said her real passion lies in feature films.</p>\n \n <p style="font-weight: 400;">“I’m really drawn to the feature film world and I’m really drawn the idea of co-productions – making deals between countries and making something happen between different productions, different crews,” she said, noting that she’s keen to pursue producing, screenwriting and directing opportunities in the future. “I find it all very enticing and exciting.”</p>\n \n \n <img class="alignnone size-medium wp-image-25954 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/06/TFS_FP_ICFFPoster_0617.jpg" alt="" width="670" height="327" />\n \n \n <p style="font-weight: 400;">In the meantime, she's absolutely "loved" every minute of her time working for the ICFF as its Communications Coordinator – a role which not only feeds her lifelong appetite for the cinema, but has also provided many networking opportunities for her within the international filmmaking community.</p>\n \n <p style="font-weight: 400;">“I’ve made so many connections, I’ve met so many people, so many producers, and so many professionals in the industry,” she said of her work with the ICFF. “I really love this festival and I love what I do.”</p>\n \n <p style="font-weight: 400;">And this year, she said, is an especially exciting one for the ICFF.</p>\n \n <p style="font-weight: 400;">After two years of drive-in events, this year’s “mind-blowing” 11<sup>th</sup> edition of the festival will move to the <a href="https://www.thedistillerydistrict.com/" target="_blank" rel="noopener noreferrer">The Distillery Historic District</a>, where Zanon said attendees will be treated to a brand-new open-air “cinema village” concept from June 24 - July 16.</p>\n \n \n <img class="alignnone size-medium wp-image-25953 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/06/TFS_FP_ICFF_DistilleryRendering_0617.jpg" alt="" width="526" height="526" />\n \n \n <p style="font-weight: 400;">“This is something we’ve never done before, taking over a whole district with a village dedicated to entertainment, cinema and culture,” she said. “If there is a moment to check out a festival, it’s this one, where you have an open environment where you can watch films outdoors, enjoy some cocktail receptions, and also see some multicultural art exhibits.”</p>\n \n <p style="font-weight: 400;">Organized in collaboration with the <a href="https://ambottawa.esteri.it/ambasciata_ottawa/en/" target="_blank" rel="noopener noreferrer">Embassy of Italy in Ottawa</a>, the <a href="https://constoronto.esteri.it/consolato_toronto/en/il_consolato/" target="_blank" rel="noopener noreferrer">Consulate General of Italy in Toronto</a>, the <a href="https://consmontreal.esteri.it/consolato_montreal/en/" target="_blank" rel="noopener noreferrer">Consulate General of Italy in Montreal</a>, and the <a href="https://iictoronto.esteri.it/iic_toronto/en/" target="_blank" rel="noopener noreferrer">Istituto Italiano di Cultura in Toronto</a>, the 2022 festival will feature 40 feature films, 23 short films, and more than 10 North American premieres by some of the best Italian stars – including <a href="https://www.imdb.com/name/nm0309348/" target="_blank" rel="noopener noreferrer">Alessandro Gassmann</a>, <a href="https://www.imdb.com/name/nm0314358/?ref_=fn_al_nm_1" target="_blank" rel="noopener noreferrer">Claudia Gerini</a>, <a href="https://www.imdb.com/name/nm0051880/?ref_=fn_al_nm_1" target="_blank" rel="noopener noreferrer">Lino Banfi </a>and <a href="https://www.imdb.com/name/nm0209948/?ref_=fn_al_nm_1" target="_blank" rel="noopener noreferrer">Fabio De Luigi</a>.</p>\n \n \n For more information about the Italian Contemporary Film Festival, including a full list of screenings, go to <a href="https://icff.ca/festival-2022/" target="_blank" rel="noopener noreferrer">https://icff.ca/festival-2022/</a>\n \n \n <h2 style="font-weight: 400; text-align: center;"><strong>Here is Zanon's Top 5 list of some of the “must-see” cinematic highlights of the 2022 ICFF:</strong></h2>\n \n \n <img class="size-medium wp-image-25948 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/06/TFS_FP_Ennio_0617.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400; text-align: center;"><a href="https://icff.ca/title-item/ennio/"><strong>Ennio: The Maestro</strong></a></p>\n <p style="font-weight: 400; text-align: center;"><strong>Director:</strong> Giuseppe Tornatore</p>\n <p style="font-weight: 400; text-align: center;"><strong>Length:</strong> 167 minutes</p>\n <p style="font-weight: 400; text-align: center;"><strong>Year:</strong> 2021</p>\n <p style="font-weight: 400; text-align: center;"><strong>Countries:</strong> Belgium, China, Italy, Japan</p>\n <p style="font-weight: 400; text-align: center;"><strong>Plot:</strong><strong> </strong><em>Ennio: The Maestro</em> follows the life and achievements of legendary Italian composer Ennio Morricone. The film goes through his journey from composing music for artists like Paul Anka, to his debut with Sergio Leone, to his Oscar-winning score for <em>The Hateful Eight</em><em> </em>(2016). The film provides behind the scenes access to Morricone and his life and those that he worked with, making the film all the more emotional considering Morricone’s passing in 2020. A celebration of his life and musical abilities, <em>Ennio</em> showcases what it was like to work alongside the master composer and who he was off-screen with those he called family and friends.</p>\n <p style="font-weight: 400; text-align: center;"><strong>ICFF Screening Times:</strong></p>\n <p style="text-align: center;">- Sunday, June 26 at 4 p.m. at the TIFF Bell Lightbox</p>\n <p style="text-align: center;">- Tuesday, June 28 at 8:15 p.m. at the Distillery District Spirit Theatre</p>\n <p style="text-align: center;">Click <a href="https://icff.ca/title-item/ennio/" target="_blank" rel="noopener noreferrer"><strong>here</strong></a> for tickets</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-25949 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/06/TFS_FP_Drinkwater_0617.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400; text-align: center;"><a href="https://icff.ca/title-item/drinkwater/"><strong>Drinkwater</strong></a></p>\n <p style="font-weight: 400; text-align: center;"><strong>Director:</strong> Stephen Campanelli</p>\n <p style="font-weight: 400; text-align: center;"><strong>Length:</strong> 117 minutes</p>\n <p style="font-weight: 400; text-align: center;"><strong>Year:</strong> 2021</p>\n <p style="font-weight: 400; text-align: center;"><strong>Country:</strong> Canada</p>\n <p style="font-weight: 400; text-align: center;"><strong>Plot:</strong> A sweet coming-of-age story in the John Hughes tradition, set in small-town BC. Mike Drinkwater is bullied at school, and his father, plated by Eric McCormack, is a reprobate scam artist, hardly the role model Mike deserves. A young woman moves to town, and their friendship gives them both courage to overcome their challenges.</p>\n <p style="font-weight: 400; text-align: center;"><strong>ICFF Screening Times: </strong></p>\n <p style="font-weight: 400; text-align: center;">- Friday, July 1 at 8:15 p.m. at the Distillery District Spirit Theatre</p>\n <p style="font-weight: 400; text-align: center;">- Friday, July 1 at 9:30 p.m. at the Distillery District Trinity Theatre</p>\n <p style="text-align: center;">Click <a href="https://icff.ca/title-item/drinkwater/" target="_blank" rel="noopener noreferrer"><strong>here</strong></a> for tickets</p>\n \n \n \n <p style="font-weight: 400; text-align: center;"><strong><img class="alignnone size-medium wp-image-25950" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/06/TFS_FP_RememberMePoster_0617.jpg" alt="" width="526" height="526" /> </strong></p>\n <p style="font-weight: 400; text-align: center;"><a href="https://icff.ca/title-item/remember-me-the-mahalia-jackson-story/"><strong>Remember Me: The Mahalia Jackson Story</strong></a></p>\n <p style="font-weight: 400; text-align: center;"><strong>Director:</strong> Denise Dowse</p>\n <p style="font-weight: 400; text-align: center;"><strong>Length:</strong> 94 minutes</p>\n <p style="font-weight: 400; text-align: center;"><strong>Year:</strong> 2020</p>\n <p style="font-weight: 400; text-align: center;"><strong>Country:</strong> United States</p>\n <p style="font-weight: 400; text-align: center;"><strong>Plot:</strong> An inspirational portrayal of Mahalia Jackson’s remarkable life and ascension to the “Queen of Gospel”, as well as her indelible bond with Dr. Martin Luther King Jr. in their fight for civil rights and social justice.</p>\n <p style="font-weight: 400; text-align: center;"><strong>ICFF Screening Time:</strong></p>\n <p style="font-weight: 400; text-align: center;"><strong>- </strong>Friday, July 8 at 9:30 p.m. at the Distillery District Trinity Cinema</p>\n <p style="text-align: center;">Click <a href="https://icff.ca/title-item/remember-me-the-mahalia-jackson-story/" target="_blank" rel="noopener noreferrer"><strong>here</strong></a> for tickets</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-25951 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/06/TFS_FP_EduardoEMonicaPoster_0617.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400; text-align: center;"><a href="https://icff.ca/title-item/eduardo-e-monica/"><strong>Eduardo e Monica</strong></a></p>\n <p style="font-weight: 400; text-align: center;"><strong>Director:</strong> René Sampaio</p>\n <p style="font-weight: 400; text-align: center;"><strong>Length:</strong> 114 minutes</p>\n <p style="font-weight: 400; text-align: center;"><strong>Year:</strong> 2020</p>\n <p style="font-weight: 400; text-align: center;"><strong>Country:</strong> Brazil</p>\n <p style="font-weight: 400; text-align: center;"><strong>Plot:</strong> On an unusual day, a series of coincidences lead Eduardo to meet Monica at a party. Curiosity is aroused between the two and, despite not being alike, they fall madly in love. This love needs to mature and learn to overcome differences.</p>\n <p style="font-weight: 400; text-align: center;"><strong>ICFF Screening Time: </strong></p>\n <p style="font-weight: 400; text-align: center;">- Monday, July 11 at 9:30 p.m. at the Distillery District Trinity Cinema</p>\n <p style="text-align: center;">Click <a href="https://icff.ca/title-item/eduardo-e-monica/" target="_blank" rel="noopener noreferrer"><strong>here</strong></a> for tickets</p>\n \n \n \n \n <img class="alignnone size-medium wp-image-25952 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/06/TFS_FP_Steadfast_0617.jpg" alt="" width="526" height="526" />\n <p style="font-weight: 400; text-align: center;"><a href="https://icff.ca/title-item/steadfast-the-messenger-and-the-message/"><strong>Steadfast: The Messenger and the Message</strong></a></p>\n <p style="font-weight: 400; text-align: center;"><strong>Director:</strong> Fahim Hamid Ali</p>\n <p style="font-weight: 400; text-align: center;"><strong>Length:</strong> 57 minutes</p>\n <p style="font-weight: 400; text-align: center;"><strong>Year:</strong> 2022</p>\n <p style="font-weight: 400; text-align: center;"><strong>Country:</strong> Canada</p>\n <p style="font-weight: 400; text-align: center;"><strong>Plot:</strong> A heartwarming documentary film that follows the life and career of the Honourable Dr. Jean Augustine – the first Black woman elected to the Parliament of Canada and the founder of Black History Month in Canada.</p>\n <p style="font-weight: 400; text-align: center;"><strong>ICFF Screening Time:</strong></p>\n <p style="font-weight: 400; text-align: center;">- Saturday, July 9 at 9:30 p.m. at the Distillery District Trinity Cinema</p>\n <p style="text-align: center;">Click <a href="https://icff.ca/title-item/steadfast-the-messenger-and-the-message/" target="_blank" rel="noopener noreferrer"><strong>here</strong></a> for tickets</p>\n \n \n """ |
post_title | "TFS Grad Credits Italian Contemporary Film Fest with Helping Her Find Her Way"
|
post_excerpt | "" |
post_status | "publish"
|
comment_status | "closed"
|
ping_status | "open"
|
post_password | "" |
post_name | "tfs-grad-credits-italian-contemporary-film-fest-with-helping-her-find-her-way"
|
to_ping | "" |
pinged | "" |
post_modified | "2023-03-27 21:07:01"
|
post_modified_gmt | "2023-03-27 21:07:01"
|
post_content_filtered | "" |
post_parent | 0
|
guid | "https://dev.tfs.staging.poundandgrain.ca/?p=25946"
|
menu_order | 0
|
post_type | "post"
|
post_mime_type | "" |
comment_count | "0"
|
filter | "raw"
|
Key | Value |
SERVER_SOFTWARE | "nginx/1.22.1"
|
REQUEST_URI | "/blog/tfs-grad-credits-italian-contemporary-film-fest-with-helping-her-find-her-way/"
|
USER | "forge"
|
HOME | "/home/forge"
|
HTTP_REFERER | "https://dev.tfs.staging.poundandgrain.ca/blog/tfs-grad-credits-italian-contemporary-film-fest-with-helping-her-find-her-way"
|
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 | "23013"
|
REMOTE_ADDR | "18.222.116.93"
|
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 | 1731849479.2897
|
REQUEST_TIME | 1731849479
|
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"
|