*
* @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" => "guest-article-alumni-liaison-specialist-emma-hartley-on-making-connections-for-career-success" "category_name" => "blog" ] |
query_string | "name=guest-article-alumni-liaison-specialist-emma-hartley-on-making-connections-for-career-success&category_name=blog"
|
request | "blog/guest-article-alumni-liaison-specialist-emma-hartley-on-making-connections-for-career-success"
|
matched_rule | "(.+?)/([^/]+)(?:/([0-9]+))?/?$"
|
matched_query | "category_name=blog&name=guest-article-alumni-liaison-specialist-emma-hartley-on-making-connections-for-career-success&page="
|
did_permalink | true
|
Key | Value |
query | array:3 [ "page" => "" "name" => "guest-article-alumni-liaison-specialist-emma-hartley-on-making-connections-for-career-success" "category_name" => "blog" ] |
query_vars | array:66 [ "page" => 0 "name" => "guest-article-alumni-liaison-specialist-emma-hartley-on-making-connections-for-career-success" "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 | 26621
|
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 = 'guest-article-alumni-liaison-specialist-emma-hartley-on-making-connections-for-career-success' 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 | 26621
|
post_author | "43"
|
post_date | "2022-11-21 16:20:44"
|
post_date_gmt | "2022-11-21 16:20:44"
|
post_content | """ <span lang="en-US">Creative industries are exciting, challenging, dynamic and competitive. For many graduates, the leap from education to your first or next step in the creative sector can feel dizzying and, oftentimes, family and friends don’t quite understand. Who does? Toronto Film School alumni. </span>\n \n \n \n <span lang="en-US">TFS graduates who have gone before you understand your path. They know the skills, knowledge, creative and technical expertise you have earned during your training. And, as working professionals, they understand the trends and demands of the specific field you are about to step into. </span>\n \n \n \n <span lang="en-US">Could it be that alumni are the great untapped resource in your post-grad job search?</span>\n \n \n \n <img class="size-full wp-image-26625 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/11/TFS_WFT_KatieFordHeadshot_1111.jpg" alt="" width="650" height="450" />\n \n \n \n <b><u>How to Find Alumni</u></b>\n \n \n \n <a title="Original URL: https://www.linkedin.com/school/toronto-film-school/people/. Click or tap if you trust this link." href="https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.linkedin.com%2Fschool%2Ftoronto-film-school%2Fpeople%2F&data=05%7C01%7Ccreason%40torontofilmschool.ca%7Cdbac08ea2be24d1383ab08dab3a52401%7C8e5c33be6efe45efb1956787de8fd649%7C0%7C0%7C638019819101504447%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=%2FOlrBr%2B4KK%2Be9tJDOqdQC%2FtsqyC981uQN%2B5QHrBdU0o%3D&reserved=0" target="_blank" rel="noopener noreferrer" data-auth="Verified" data-linkindex="12"><b><span lang="en-US">Toronto Film School’s LinkedIn Alumni page</span></b></a><span lang="en-US"> is a great place to start. It is a current, extensive directory of alumni, easily searchable by location, company, year, and keywords such as program or company. Browsing the page is a fantastic way to learn about career path options related to your education and it is a great tool to identify professionals you can reach out to.</span>\n \n \n \n <span lang="en-US">Did you know we also have an official Facebook Alumni community? </span><a title="Original URL: https://www.facebook.com/groups/160336670656165. Click or tap if you trust this link." href="https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.facebook.com%2Fgroups%2F160336670656165&data=05%7C01%7Ccreason%40torontofilmschool.ca%7Cdbac08ea2be24d1383ab08dab3a52401%7C8e5c33be6efe45efb1956787de8fd649%7C0%7C0%7C638019819101504447%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=F%2Be1BxLM7Ljk%2B%2Fii6xhiAqcrsBkToBbt%2B%2FwfMFZmyQM%3D&reserved=0" target="_blank" rel="noopener noreferrer" data-auth="Verified" data-linkindex="13"><b><span lang="en-US">Toronto Film School - Student & Alumni Forum</span></b></a><b> </b><span lang="en-US">is<b> </b>a space where you can network, promote your projects and find out about upcoming professional development opportunities, jobs and casting calls. Keep an eye on the group for our monthly Alumni Spotlight feature.</span>\n \n \n \n <b><u><span lang="en-US">Building Alumni Relationships</span></u></b>\n \n \n \n <span lang="en-US">Connecting with alumni via informational interviews is an exceptionally effective networking method. What’s an </span><a title="Original URL: https://careerservices.mytfs.ca/home-page/exploring-career-options/informational-interviews/. Click or tap if you trust this link." href="https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcareerservices.mytfs.ca%2Fhome-page%2Fexploring-career-options%2Finformational-interviews%2F&data=05%7C01%7Ccreason%40torontofilmschool.ca%7Cdbac08ea2be24d1383ab08dab3a52401%7C8e5c33be6efe45efb1956787de8fd649%7C0%7C0%7C638019819101504447%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=mEYevvS9SOrkRAqVnrvu%2BWu4TsoGEUL2kOd21tS9Uek%3D&reserved=0" target="_blank" rel="noopener noreferrer" data-auth="Verified" data-linkindex="14"><span lang="en-US">informational interview?</span></a><span lang="en-US"> A coffee chat. An informal 1:1 where you gain intel, from those in the know, about a particular career path or organization. These opportunities can help you craft a more strategic job search <i>and</i> make connections in your field. </span>\n \n \n \n <b><span lang="en-US">5 Top Tips for Alumni Coffee Chats: </span></b>\n \n \n \n <b><span lang="en-US">1. Clearly define your ask: </span></b><span lang="en-US">You’ve found an alumnus you want to chat to, but before you reach out, define WHY it is you want to connect. Are you exploring career paths and looking to hear more about their role? Applying to the same company? Looking for perspectives on further training or joining a union? Clearly communicating what it is you want to learn from them is key to using their (busy) time wisely.</span>\n \n \n \n <b><span lang="en-US">2. Do your research:</span></b><span lang="en-US"> At every stage of networking, research helps! Looking into their career path online first can help you craft a personalized outreach email that’s more likely to get responses. Tell them exactly what it is about their career path or role that impresses you.</span>\n \n \n \n <b><span lang="en-US">3. Reach out directly: </span></b><span lang="en-US">A referral through a mutual contact is ideal. Finding a direct professional email is the next best thing. If you are struggling to locate an email address, try messaging via their professional website; see if they belong to a professional crew database such as </span><a title="Original URL: https://www.accessreelworld.ca/search_results. Click or tap if you trust this link." href="https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.accessreelworld.ca%2Fsearch_results&data=05%7C01%7Ccreason%40torontofilmschool.ca%7Cdbac08ea2be24d1383ab08dab3a52401%7C8e5c33be6efe45efb1956787de8fd649%7C0%7C0%7C638019819101504447%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=mcGetbplL5EePBAALAu7Gklz%2BPzo%2Bl3Fd5o9J%2B0rd5Q%3D&reserved=0" target="_blank" rel="noopener noreferrer" data-auth="Verified" data-linkindex="15"><span lang="en-US">AccessReelworld</span></a><span lang="en-US"> or </span><a title="Original URL: https://www.wearehere.ca/. Click or tap if you trust this link." href="https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.wearehere.ca%2F&data=05%7C01%7Ccreason%40torontofilmschool.ca%7Cdbac08ea2be24d1383ab08dab3a52401%7C8e5c33be6efe45efb1956787de8fd649%7C0%7C0%7C638019819101504447%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=bF8sONKnrQyA2qfkR9jm0mCGi%2F3EVU84zwcAroZNzYA%3D&reserved=0" target="_blank" rel="noopener noreferrer" data-auth="Verified" data-linkindex="16"><span lang="en-US">HERE</span></a><span lang="en-US">; trial </span><a title="Original URL: https://pro.imdb.com/. Click or tap if you trust this link." href="https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpro.imdb.com%2F&data=05%7C01%7Ccreason%40torontofilmschool.ca%7Cdbac08ea2be24d1383ab08dab3a52401%7C8e5c33be6efe45efb1956787de8fd649%7C0%7C0%7C638019819101504447%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=XOAj%2BrBlcZ8lARNsnNCfulTkbzy5R6dyTK5pO1i0v8w%3D&reserved=0" target="_blank" rel="noopener noreferrer" data-auth="Verified" data-linkindex="17"><span lang="en-US">imdb.pro</span></a> <span lang="en-US">to view more detailed film crew information; browse union directories (e.g., </span><a title="Original URL: https://www.dgc.ca/en/national/. Click or tap if you trust this link." href="https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.dgc.ca%2Fen%2Fnational%2F&data=05%7C01%7Ccreason%40torontofilmschool.ca%7Cdbac08ea2be24d1383ab08dab3a52401%7C8e5c33be6efe45efb1956787de8fd649%7C0%7C0%7C638019819101504447%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=A2qrmSXqp7FhiW5O9BJ0tjdCMOOjy6U0BqRf%2F1QbiPE%3D&reserved=0" target="_blank" rel="noopener noreferrer" data-auth="Verified" data-linkindex="18"><span lang="en-US">DGC)</span></a><span lang="en-US"> for individuals and their contact info</span><span lang="en-US">. A direct LinkedIn message or other social DM may also work, but first, check how active they are on that platform.<b> </b>If your initial email doesn’t yield results, send a polite, brief ‘nudge’ email after 7-10 days.</span>\n \n \n \n <b><span lang="en-US">4. Be prepared</span></b><span lang="en-US">: Yay! You’ve confirmed a meeting, now it’s time to prep. Make sure you reconfirm your meeting time a few days beforehand, test your tech if it’s on Zoom or know your route if it’s in person. Do your research so you have at least 10 questions you want to ask. Remember, you’re the one asking for the informational interview, so be the one to start the conversation, introduce yourself and keep track of the time!</span>\n \n \n \n <b><span lang="en-US">5. Follow up: </span></b><span lang="en-US">If your initial email doesn’t yield results, a polite, brief ‘nudge’ email is perfectly fine to send after 7-10 days. Following any 1:1 meeting, remember to send a </span><a title="Original URL: https://careerservices.mytfs.ca/preparing-for-work/saying-thanks-after-an-interview/. Click or tap if you trust this link." href="https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcareerservices.mytfs.ca%2Fpreparing-for-work%2Fsaying-thanks-after-an-interview%2F&data=05%7C01%7Ccreason%40torontofilmschool.ca%7Cdbac08ea2be24d1383ab08dab3a52401%7C8e5c33be6efe45efb1956787de8fd649%7C0%7C0%7C638019819101659985%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=A%2Fc9pYozSZqTH8OXcg1z5CiS57KNL0R1d7pzc03d4EU%3D&reserved=0" target="_blank" rel="noopener noreferrer" data-auth="Verified" data-linkindex="19"><span lang="en-US">THANK YOU email</span></a><span lang="en-US"> within 24 hours. And keep in touch, let them know how their advice has helped you on your career journey. </span>\n \n \n \n <span lang="en-US">For more detailed tips, check out the </span><a title="Original URL: https://careerservices.mytfs.ca/home-page/exploring-career-options/informational-interviews/. Click or tap if you trust this link." href="https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcareerservices.mytfs.ca%2Fhome-page%2Fexploring-career-options%2Finformational-interviews%2F&data=05%7C01%7Ccreason%40torontofilmschool.ca%7Cdbac08ea2be24d1383ab08dab3a52401%7C8e5c33be6efe45efb1956787de8fd649%7C0%7C0%7C638019819101659985%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Y65Oknb3UDkgKcjwsYhud%2B3OPVGcOtIp0EydFYGhVGI%3D&reserved=0" target="_blank" rel="noopener noreferrer" data-auth="Verified" data-linkindex="20"><span lang="en-US">TFS Career Portal</span></a><span lang="en-US"> on how to reach out, prepare and make the most of these meetings.</span>\n \n \n \n <b><u><span lang="en-US">Stay Connnected</span></u></b>\n \n \n \n <span lang="en-US">Toronto Film School staff and services remain on hand to support you through your next steps, to celebrate your achievements and connect you with other alumni. Here’s what’s in it for you:</span>\n \n \n <ul>\n \t<li><span lang="en-US">6 months </span><a title="Original URL: http://bit.ly/TFSappoint. Click or tap if you trust this link." href="https://can01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fbit.ly%2FTFSappoint&data=05%7C01%7Ccreason%40torontofilmschool.ca%7Cdbac08ea2be24d1383ab08dab3a52401%7C8e5c33be6efe45efb1956787de8fd649%7C0%7C0%7C638019819101659985%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=PzRt11pxHKyEBvTKraWMi5blDHYSvaO4oOHRqGXGE%2Fo%3D&reserved=0" target="_blank" rel="noopener noreferrer" data-auth="Verified" data-linkindex="21"><span lang="en-US">free career advising</span></a><span lang="en-US"> from TFS’s Career Services team</span></li>\n \t<li><span lang="en-US">6 months access to Toronto Film School’s exclusive </span><a title="Original URL: https://careerservices.mytfs.ca/home-page/job-board/. Click or tap if you trust this link." href="https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcareerservices.mytfs.ca%2Fhome-page%2Fjob-board%2F&data=05%7C01%7Ccreason%40torontofilmschool.ca%7Cdbac08ea2be24d1383ab08dab3a52401%7C8e5c33be6efe45efb1956787de8fd649%7C0%7C0%7C638019819101659985%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=DuTQKL7CMQ0FvJuirrFwbLylELsKticDUKwxXUgxwGU%3D&reserved=0" target="_blank" rel="noopener noreferrer" data-auth="Verified" data-linkindex="22"><span lang="en-US">job board</span></a></li>\n \t<li><span lang="en-US">Year-round free professional development </span><a title="Original URL: https://careerservices.mytfs.ca/calendar/. Click or tap if you trust this link." href="https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcareerservices.mytfs.ca%2Fcalendar%2F&data=05%7C01%7Ccreason%40torontofilmschool.ca%7Cdbac08ea2be24d1383ab08dab3a52401%7C8e5c33be6efe45efb1956787de8fd649%7C0%7C0%7C638019819101659985%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=wGodGQPdCst47PVD8ElqdDwNrDW0VDHJ1CLf5vDU5dk%3D&reserved=0" target="_blank" rel="noopener noreferrer" data-auth="Verified" data-linkindex="23"><span lang="en-US">webinars</span></a></li>\n \t<li><span lang="en-US">Hear first about new alumni programming and opportunities </span></li>\n </ul>\n \n \n <span lang="en-US">To update your contact information and to let us know what you've been up to, reach out to </span><a target="_blank" rel="noopener noreferrer" data-auth="NotApplicable" data-safelink="true" data-linkindex="24"><span lang="en-US">alumni@torontofilmschool.ca.</span></a><span lang="en-US"> We will be in touch with ways to collaborate!</span>\n \n \n \n <span lang="en-US">We look forward to staying in touch and following all your future successes.</span>\n \n \n <p style="text-align: center"><strong>About the Author</strong></p>\n \n \n <img class="alignnone size-full wp-image-26623 aligncenter" src="https://dev.tfs.staging.poundandgrain.ca/app/uploads/2022/10/YU_TFS_EmmaHartley_1024.jpg" alt="" width="650" height="450" />\n \n \n \n – <i><a title="Original URL: https://www.linkedin.com/in/emmaclarehartley/. Click or tap if you trust this link." href="https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.linkedin.com%2Fin%2Femmaclarehartley%2F&data=05%7C01%7Ccreason%40torontofilmschool.ca%7C6f6db7a292b14f6b99ea08dab5d01a0b%7C8e5c33be6efe45efb1956787de8fd649%7C0%7C0%7C638022202707584095%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=BpuGFSAJFf70iw5CR%2FIM6I7AqwbmKjnTiyv4E1eUoaU%3D&reserved=0" target="_blank" rel="noopener noreferrer" data-auth="Verified" data-linkindex="0">Emma Hartley </a>(she/her) is a Career Educator who has supported thousands of emerging professionals through community building, career advising and job search support. Prior to Yorkville, she worked with students and alumni at Toronto Metropolitan University as a Career Education Specialist and as a Committee Chair for the media training non-profit, POV. She has a 15-year background in film and TV, working in Canada, US and UK. In her spare time, she runs the grassroots organization, Start in Screen. </i> """ |
post_title | "Guest Article: Alumni Liaison Specialist Emma Hartley on Making Connections for Career Success"
|
post_excerpt | "" |
post_status | "publish"
|
comment_status | "closed"
|
ping_status | "open"
|
post_password | "" |
post_name | "guest-article-alumni-liaison-specialist-emma-hartley-on-making-connections-for-career-success"
|
to_ping | "" |
pinged | "" |
post_modified | "2023-03-27 21:06:52"
|
post_modified_gmt | "2023-03-27 21:06:52"
|
post_content_filtered | "" |
post_parent | 0
|
guid | "https://dev.tfs.staging.poundandgrain.ca/?p=26621"
|
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/guest-article-alumni-liaison-specialist-emma-hartley-on-making-connections-for-career-success/"
|
USER | "forge"
|
HOME | "/home/forge"
|
HTTP_REFERER | "https://dev.tfs.staging.poundandgrain.ca/blog/guest-article-alumni-liaison-specialist-emma-hartley-on-making-connections-for-career-success"
|
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 | "7592"
|
REMOTE_ADDR | "3.140.186.17"
|
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 | 1731839975.1759
|
REQUEST_TIME | 1731839975
|
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"
|