*
* @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" => "film-production-grad-contributed-to-1917s-oscar-winning-visual-effects" "category_name" => "blog" ] |
query_string | "name=film-production-grad-contributed-to-1917s-oscar-winning-visual-effects&category_name=blog"
|
request | "blog/film-production-grad-contributed-to-1917s-oscar-winning-visual-effects"
|
matched_rule | "(.+?)/([^/]+)(?:/([0-9]+))?/?$"
|
matched_query | "category_name=blog&name=film-production-grad-contributed-to-1917s-oscar-winning-visual-effects&page="
|
did_permalink | true
|
Key | Value |
query | array:3 [ "page" => "" "name" => "film-production-grad-contributed-to-1917s-oscar-winning-visual-effects" "category_name" => "blog" ] |
query_vars | array:66 [ "page" => 0 "name" => "film-production-grad-contributed-to-1917s-oscar-winning-visual-effects" "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 | 18935
|
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 = 'film-production-grad-contributed-to-1917s-oscar-winning-visual-effects' 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 | 18935
|
post_author | "43"
|
post_date | "2020-02-13 16:03:37"
|
post_date_gmt | "2020-02-13 16:03:37"
|
post_content | """ In a recent <a href="https://www.cbc.ca/news/canada/north/gabriel-darku-yellowknife-october-faction-1.5440695" target="_blank" rel="noopener noreferrer">interview with the CBC</a>, Gabriel Darku said it was at Toronto Film School where opportunities as an actor opened up for him. Casting directors and producers were regular guest speakers at the school. In fact he was <a href="https://www.torontofilmschool.ca/blog/from-american-gods-to-private-eyes-alumnus-gabrial-darku-is-achieving-his-dreams-as-an-actor/" target="_blank" rel="noopener noreferrer">discovered</a> by <a href="https://www.ambitiontalent.com/" target="_blank" rel="noopener noreferrer">Ambition Talent</a>’s <a href="https://www.ambitiontalent.com/david" target="_blank" rel="noopener noreferrer">David Ritchie</a> following a speaking event at TFS, <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> alumni <a href="https://www.imdb.com/name/nm7523016/" target="_blank" rel="noopener noreferrer">Gabriel Darku's</a> career began taking off shortly after he earned his diploma in 2015 – starting with a lead role in all 20 episodes of YTV/Netflix Original’s Daytime Emmy-nominated series, <em><a href="https://www.imdb.com/title/tt6849940/?ref_=nm_flmg_act_7" target="_blank" rel="noopener noreferrer">ReBoot: The Guardian Code</a></em>. Since then, the 24-year-old Yellowknife native has continued to land a steady stream of roles of high-profile TV shows – from small parts in <em><a href="https://www.imdb.com/title/tt1898069/?ref_=nm_flmg_act_5" target="_blank" rel="noopener noreferrer">American Gods</a></em>, <em><a href="https://www.imdb.com/title/tt5722298/?ref_=nm_flmg_act_9" target="_blank" rel="noopener noreferrer">Private Eyes </a></em>and <em><a href="https://www.imdb.com/title/tt4145054/?ref_=nm_flmg_act_10" target="_blank" rel="noopener noreferrer">Shadowhunters</a></em>, to lead roles in a host of Netflix series including<em><a href="https://www.imdb.com/title/tt6160506/?ref_=nm_flmg_act_3" target="_blank" rel="noopener noreferrer"> Impulse</a></em>, <em><a href="https://www.imdb.com/title/tt4667888/?ref_=nm_flmg_act_4" target="_blank" rel="noopener noreferrer">Slasher</a></em> and the new Netflix series <em><a href="https://www.imdb.com/title/tt8826128/?ref_=nm_flmg_act_2" target="_blank" rel="noopener noreferrer">October Faction</a></em>.\n \n \n \n \n <p style="text-align: center;"><iframe src="https://www.youtube.com/embed/ajJwMsW6b54" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>\n \n \n \n \n Recently, Gab sat down to answer your questions. We posed a series of questions submitted to us through the Toronto Film School’s <a href="https://www.instagram.com/torontofilmschool/" target="_blank" rel="noopener noreferrer">Instagram</a> page. Here's what he had to say:\n \n \n \n <em><strong>Was acting always a lifelong dream of yours? </strong></em>\n \n \n \n <strong> </strong><strong>“</strong>No, it was not. I always looked at (acting) like a crazy dream job that wasn’t really feasible. I was more of a jock and musician growing up in high school. I was interested in drama and acting class, but because I was always busy with the other stuff, I never did it, so I never had any spark or anything like that.\n \n \n \n “It wasn’t until the summer of 2012, I was working for McDonald’s and McDonald’s Canada held a competition to do a commercial hiring their own employees instead of actors. I ended up getting in, and it was actually that experience that sparked that fire in me to want to be in front of the camera…on the day of the shoot, it was 13.5 hours in front of the camera for a 30-second commercial, and I loved every second of it. So that sparked a passion.”\n \n \n \n <img class="alignnone size-medium wp-image-17923 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/11/TFS_ACT_GabeDarku2_1030.jpg" alt="" width="670" height="393" />\n \n \n \n <strong><em>Are there any opportunities you wish you’d taken more advantage of during your time at Toronto Film School?</em> </strong>\n \n \n \n “Definitely the networking opportunities. I have friends and ex-classmates who still have so many connections from the school – and not just connections they made from school, but connections that have spread through those connections. Networking, I think, is seriously under-appreciated by a lot of newcomers into the industry, because you really can make it far just on your connections alone. And Toronto Film School is filled with teachers and staff members who are working full time in the industry, so those connections are priceless.\n \n \n \n “And then, on top of that, you’re sitting in class with someone who could potentially become the next Scorsese or the next Leonardo DiCaprio – you have no idea.\n \n \n \n “It’s also really important…to get out there and take advantage of the fact that you can book a studio and collaborate with a Production student and just make content whenever you want. That’s also something I definitely wish I took advantage of more, for sure.”\n \n \n \n <strong><em>What keeps you motivated in your acting career?</em> </strong>\n \n \n \n “What keeps me going is that desire to entertain; to create truth. It’s funny, because I found a spark to being in front of a camera through a McDonald’s commercial, and yet, after going through school and having been in the industry for a while now, I’ve come to really realize the importance of what I do, and just how big of an impact artists, and the film, TV and theatre industry can have on humanity.\n \n \n \n “Storytellers are really important to society. We’re in a very electric time in society and in our political environment where truthful stories being told today can really help our future – and that’s something that really gets me going and it’s something that I really strive to accomplish as my career goes on: to create very important work.”\n \n \n \n <img class="alignnone size-medium wp-image-17925 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/11/TFS_ACT_GabeDarku3_1030.jpg" alt="" width="670" height="393" />\n \n \n \n <em><strong>What is your preparation process when taking on a new role? </strong></em>\n \n \n \n “The process can be different, not just from person to person, but from project to project. I’m still a very new actor, so my process is definitely bound to change at some point as I move forward…I’m always experimenting and trying to find something that’s going to work better for the next time, you know?\n \n \n \n “When I got <em><a href="https://www.imdb.com/title/tt6849940/?ref_=nm_ov_bio_lk3">ReBoot</a></em>, my first big role, I got the notice way ahead of time and we were sent the entire booklet of 20 episodes before I was even flown out to Victoria to film. So by the time I got to the hotel and met all my co-stars, I had already had a huge binder of scripts, and they were already all tabbed out…We had so much time to prepare – we had weeks, and when we got there, we did another week and a half of character study with the director and figuring out how we were going to shoot the thing. So, it was a long process.\n \n \n \n “Then you get something like <em><a href="https://www.imdb.com/title/tt8826128/?ref_=nm_flmg_act_2" target="_blank" rel="noopener noreferrer">October Faction</a></em>, my new show coming out soon, that was very quick. I accepted the offer on a Sunday, I did wardrobe on the Tuesday and was on-set Thursday – for leading a Netflix show through four months of filming. It was crazy! There wasn’t a lot of time beforehand to really prepare and dive into character study and stuff. Yes, I looked into a lot of the back material of the <em>October Faction</em> <a href="https://www.idwpublishing.com/product-category/october-faction/" target="_blank" rel="noopener noreferrer">graphic novels</a> and whatnot, and I learnt my history. But that show was very much a process of discovering the character as I was going on, just because I didn’t have a huge amount of time to do the prep work beforehand. And that was really interesting to me – getting to learn the character as I was portraying him, as I was interacting with my co-stars and with the people that are more likely to affect him. It was a really, really interesting and eye-opening process, and something I look forward to exploring more.\n \n \n \n “But I feel like, generally, my main process is to try to keep things not too intellectual, because I feel like the more you intellectualize ideas and rules, the more you try to focus so heavily on backstory, when maybe the backstory isn’t too important. It can really cloud someone’s mental space – so, for me, it’s all about more natural, impulsive tendencies.”\n \n \n \n <em><strong>What’s it like auditioning for a big studio like Netflix? </strong></em>\n \n \n \n “It’s no different, really, than any other audition, to be honest with you. When you get an audition breakdown for film and TV, you will also have a standard list of information: casting director, the director they have on board, if they have one, and the studio you’re going out for, which can be anything from Netflix, to Hulu, to Amazon, to NBC. And all (auditions) happen in the same places around the city – more of the bigger projects happen in certain areas and the smaller projects, those auditions happen in certain areas – but they’re all run the same way.\n \n \n \n “Really, the only difference in the auditioning process comes when you’re being looked at for a lead and they start narrowing it down. (That’s when they) start to do screen tests and chemistry testing, and when they’re bringing you in to meet executives and not just the casting director. That’s when things can change a little bit, because it becomes more like an interview, not just an audition.\n \n \n \n “But, to be frank, all auditions are pretty much the same – and I think that really helps. It becomes easier to see it’s Netflix and keep that out of your mind, because sometimes people get nervous when they’re going up for a big studio like that, but it’s all the same.”\n \n \n \n <img class="alignnone size-medium wp-image-17927 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/11/TFS_ACT_GabeDarku4_1030.jpg" alt="" width="670" height="393" />\n \n \n \n <em><strong>What makes a good director from an acting point of view?</strong></em>\n \n <strong> </strong>\n \n “As an actor, I would never want to give advice to a director, but to be honest, something that’s really good for a director to know is how to communicate with actors. I don’t think you will ever meet an actor who hasn’t said that the best directing experience they’ve had is with a director who’s also an actor – and that’s because they just inherently know how actors think, how they talk, and how it’s not always easy to just say a couple of words about how you want something to be done because that can be interpreted in so many different ways.\n \n \n \n “So a director who really knows his or her vision, and who really knows what they want out of their actors and their crew. That’s probably the best piece of advice I can give you: Have a vision that’s clear and easy to communicate – and if it’s not easy to communicate, find a way to communicate it so that everyone around you can help make that vision come to an honest reality.”\n \n \n \n <em><strong>What advice would you give to aspiring actors struggling to breakthrough? </strong></em>\n \n <strong> </strong>\n \n “Man, it’s tough. It’s not easy to find success in the art industry, let alone film and TV and theatre. One of the best pieces of advice I can give you is determination – just never give up. You’ve got to stick to your guns, you’ve got to know what you’re passionate about, know what you’re in it for, and strive to be successful for yourself and to have self-fulfillment. Because if you’re in this just for the fame or for the money or for outside success, it’s most likely not going to work out – it’s got to be about what you love to do.\n \n \n \n “Taking acting studio courses is a brilliant idea, too, just even as a way to open yourself up as a human being. Being able to step into someone else’s shoes, even if just for an eight-week course…can really help someone come out of their shell – and as an actor, it’s something you should always be doing. So even after you graduate film school, keep taking classes – there’s no cap on how much you can learn and how much you can self improve. I’ve been taking courses at <a href="http://sophieannrooney.com/" target="_blank" rel="noopener noreferrer">RAW – Rooney Actors Workshop</a> for a couple of years now.\n \n \n \n “Also, make your own content – that’s something I really wish I did more of now. I have a roommate that is writing and creating her own web series, and they’re already on season 3 and it’s so inspiring to see that happen. When you don’t have the professional work coming in to make a living, that’s not a reason to not be doing what you love to do. Everyone has a film-quality camera on their smartphones – most people can film a good movie from the thing that’s in their pocket – so if you have friends and people who are interested in what you’re interested in and you build a community, you can get out there and create whatever you want to create, and you can brings the success to you.\n \n \n \n “At the end of the day, it’s about how determined you are, and how passionate you are, and how big your dream is…Never let any of the lack of work or the lack of responses from auditions get you down and have you thinking this maybe isn’t for you. If you know that it’s what you want to do, then it is for you and it’s just a matter of keep moving forward.”\n \n \n \n <strong>Are there any types of roles you’d like to play but haven’t been cast in yet? </strong>\n \n \n \n “I’m still so early on in my career as an actor that I feel like I haven’t done a lot of roles to begin with. And it’s not like there’s a specific role that I haven’t done yet that I’m dying to do – I’m dying to do them all!\n \n \n \n “If it’s far away from the person that I am naturally, then it’s interesting to me. As an actor, that’s something you strive for: to be able to embody and portray something that would normally be so outside of yourself. So, really, anything I feel would be a challenge to me like that, I would go for. I can’t think of anything specific, because, yeah, I want to do it all.”\n \n \n \n <img class="alignnone size-medium wp-image-17929 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2019/11/TFS_ACT_GabeDarku3_1030-1.jpg" alt="" width="670" height="393" />\n \n \n \n <strong>On a recent <a href="https://www.instagram.com/gabrieldarku/" target="_blank" rel="noopener noreferrer">Instagram post</a>, you talked about a breakthrough you had with a character you’re trying to portray in your scene study class. Tell us about that experience. </strong>\n \n <strong> </strong>\n \n “I’ve had a bit of a rough summer. You know, everyone goes through some personal stuff, and as an actor, especially, your personal life is inspiration and it affects your work. When you’re feeling down or a lack of inspiration or a lack of motivation to do work, it can really affect you.\n \n \n \n “I’ve been studying at RAW – Rooney Actors Workshop – for a couple of years now…and I was really excited to get back into a round of classes because I thought that would hype me up and give me some inspiration and get me going again. And my teacher, because she knows me, she gave me a scene that was meant to challenge me – and it did. I read it once and I just could not wrap my head around it. I learned a really big lesson about that: If you judge your character off the bat, you’re really putting yourself at a huge disadvantage – and that’s totally what I did…I went through more than the first half of class doing all these great exercises and watching all of these great actors make so many cool discoveries about their characters, and I’m just stuck there not knowing what to do, and it felt really bad…\n \n \n \n “I decided to go out and get an outfit. It was sort of a country-rock character, so I chose a specific song to play guitar to, and that helped me get an idea of where this character was going, but then I came to realize that I was really unhappy with it, because it was just me. I realized I was still up on stage just as Gabe dressed up playing guitar, and it just really hit me hard that I was not going to get anywhere with this scene.\n \n \n \n “A couple nights later, I went out dancing with some friends for my partner’s birthday and I had, like, a huge revelation. It was crazy, it was absolutely crazy. We were dancing to electronic music and something about just dropping all of your worries and being in a moment and not thinking about anything can really have a huge impact. I started to feel something – there was a kink in my face happening and a slant in my body and it really helped me realize this is a physicality that can really relate to the character I was doing. And it was crazy. I couldn’t stop thinking about it for the rest of the night, my mind was racing, I got home, I dropped to my knees, and I was, like, I could cry almost.\n \n \n \n “It felt so good to finally break through a barrier. I feel like as artists, and as actors especially, we can start to feel really alien and different or just strange, because we’re constantly hopping in and out of personalities. You can get your head stuck in the clouds so easily, especially when something’s happening in your personal life. It can really affect your work, and breaking through that barrier feels so good. So, I was really excited to get into class this week and I ended up going in and having a great performance and now I’m stoked to finish the scene next week.\n \n \n \n “I’m just really happy that that happened. It’s that kind of stuff, that feeling that actors are always going for…that is the reason I do what I do, and it’s that feeling that I’m constantly chasing. The money is great, sure. The fame is great, sure. But it’s that self-gratification of your art that’s really going to keep you going and what’s going to bring you true success and true peace of mind.” """ |
post_title | "Film Production Grad Contributed to 1917's Oscar-Winning Visual Effects"
|
post_excerpt | "" |
post_status | "publish"
|
comment_status | "closed"
|
ping_status | "open"
|
post_password | "" |
post_name | "film-production-grad-contributed-to-1917s-oscar-winning-visual-effects"
|
to_ping | "" |
pinged | "" |
post_modified | "2023-03-27 21:08:05"
|
post_modified_gmt | "2023-03-27 21:08:05"
|
post_content_filtered | "" |
post_parent | 0
|
guid | "https://dev.tfs.staging.poundandgrain.ca/?p=18935"
|
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/film-production-grad-contributed-to-1917s-oscar-winning-visual-effects/"
|
USER | "forge"
|
HOME | "/home/forge"
|
HTTP_REFERER | "https://dev.tfs.staging.poundandgrain.ca/blog/film-production-grad-contributed-to-1917s-oscar-winning-visual-effects"
|
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 | "6024"
|
REMOTE_ADDR | "18.191.186.12"
|
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 | 1731908779.9248
|
REQUEST_TIME | 1731908779
|
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"
|