*
* @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/uat.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/uat.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/uat.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/uat.tfs.staging.poundandgrain.ca/releases/20241113033749/web/app/themes/tfs/storage/framework/views/2bc8d2ea874031e3ddb3a557319b7cad31a2f2d3.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/uat.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/uat.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/uat.tfs.staging.poundandgrain.ca/releases/20241113033749/web/wp/wp-blog-header.php"
Key | Value |
query_vars | array:3 [ "page" => "" "name" => "acting-students-give-circa-1600s-shakespeare-play-a-1980s-reboot" "category_name" => "blog" ] |
query_string | "name=acting-students-give-circa-1600s-shakespeare-play-a-1980s-reboot&category_name=blog"
|
request | "blog/acting-students-give-circa-1600s-shakespeare-play-a-1980s-reboot"
|
matched_rule | "(.+?)/([^/]+)(?:/([0-9]+))?/?$"
|
matched_query | "category_name=blog&name=acting-students-give-circa-1600s-shakespeare-play-a-1980s-reboot&page="
|
did_permalink | true
|
Key | Value |
query | array:3 [ "page" => "" "name" => "acting-students-give-circa-1600s-shakespeare-play-a-1980s-reboot" "category_name" => "blog" ] |
query_vars | array:66 [ "page" => 0 "name" => "acting-students-give-circa-1600s-shakespeare-play-a-1980s-reboot" "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" => 16 "nopaging" => false "comments_per_page" => "50" "no_found_rows" => false "order" => "DESC" ] |
meta_query | WP_Meta_Query {#2562} |
queried_object | WP_Post {#2563} |
queried_object_id | 24993
|
request | """ SELECT wp_posts.*\n \t\t\t\t\t FROM wp_posts \n \t\t\t\t\t WHERE 1=1 AND wp_posts.post_name = 'acting-students-give-circa-1600s-shakespeare-play-a-1980s-reboot' 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 | 24993
|
post_author | "43"
|
post_date | "2022-03-11 20:26:53"
|
post_date_gmt | "2022-03-11 20:26:53"
|
post_content | """ Shakespeare’s circa-1604 play <em><a href="https://create.torontofilmschool.ca/showcase/measure-for-measure/" target="_blank" rel="noopener noreferrer">Measure for Measure</a> </em>will get a 1980s reboot with Toronto Film School’s upcoming virtual stage adaptation of this #MeToo morality-meets-judgment tale.\n \n \n \n Adapted by Patricia Tedford and her fifth-term <a href="https://staging.torontofilmschool.ca/programs/acting-for-film-tv-and-the-theatre-diploma/" target="_blank" rel="noopener noreferrer">Acting for Film, TV & the Theatre</a> students, the 90-minute adaptation raises many questions: What happens when people are granted power? Do they change much? Do the rules shift for them? Or are their true natures finally given ‘free’ reign?\n \n \n \n <img class="aligncenter wp-image-25050 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/MeasureForMeasure-383x526-1.jpg" alt="Measure for Measure poster " width="383" height="526" />\n \n \n \n “This adaptation of <em>Measure for Measure</em> could easily be dubbed <em>Power & Politics,</em> with a generous side of <em>Carnality and the Church</em>. It examines double standards and whether the ends ever justify the means: essentially, the intersection of morality and power,” Tedford said of the play, which is set in Vienna in 1985 as the discovery of a new deadly disease brings the sexual party to an abrupt end.\n \n \n \n “Now a new standard is being set down for sexual behaviour. Cities are being ‘cleaned up,’ moving unsavoury elements out of the city. With it, a new conservatism has changed everything. But, has the state ever had any place in the bedroom? What is the extent of damage when it tries to interfere?”\n \n \n \n <em>Measure for Measure</em>, which is assistant directed and stage-managed by Klaas Raymond, will take to the virtual stage for a three-performance run on March 24, 25 and 26 as follows:\n \n \n <p style="text-align: center;">Thursday, March 24 at 6 p.m.</p>\n <p style="text-align: center;">Friday, March 25 at 8 p.m.</p>\n <p style="text-align: center;">Saturday, March 26 at 3 p.m.</p>\n \n <p style="text-align: center;"><strong>***Click </strong><strong><a href="https://create.torontofilmschool.ca/showcase/measure-for-measure/" target="_blank" rel="noopener noreferrer">here</a></strong><strong> </strong><strong>to Livestream any of the above performances***</strong></p>\n \n <h1 style="text-align: center;"><strong>The Creative Team Behind <i>Measure for Measure</i>:</strong></h1>\n \n \n <img class="aligncenter wp-image-24997 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_1MaggieCarr_0309-598x526-1.jpg" alt="Maggie Carr as Juliet/Mariana" width="598" height="526" />\n <p style="text-align: center;"><strong>Maggie Carr – Juliet/Mariana</strong></p>\n \n <div class="page" title="Page 1">\n <div class="section">\n <div class="layoutArea">\n <div class="column">\n <p style="text-align: center;">Maggie Carr began acting in musical theatre productions in her hometown of Shelburne, Ontario with LP Stage Productions. Some favourite roles she has performed include Wendy in Peter Pan and Little Red in Into The Woods. Maggie is currently training at Toronto Film School in the Acting for Film, TV and the Theatre program. Throughout high school, Maggie was a competitive dancer in hip-hop, jazz and musical theatre and has training in ballet. She is very passionate about dance and music. Maggie plays the guitar and piano and is a soprano singer. She also has training in horseback riding. In her free time, Maggie enjoys spending time outside in the sun and playing with her cats.</p>\n \n \n </div>\n </div>\n </div>\n </div>\n \n <p style="text-align: center;"><strong><img class="alignnone wp-image-24998 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_2MorganFremlin_0309-598x526-1.jpg" alt="Morgan Fremlin as Mistress Overdone/Sister Francisca" width="598" height="526" /> </strong></p>\n <p style="text-align: center;"><strong>Morgan Fremlin – Mistress Overdone/Sister Francisca</strong></p>\n <p style="text-align: center;">Morgan Fremlin is a young, Toronto-based actress originally from Espanola, Ontario. She attended modelling classes at Madame Guaveruex’s Academy for two years, before moving to dance and acting classes at Arts North. She has performed in many theatre productions, including <em>Footloose</em>, <em>The Little Mermaid</em>, and <em>The Theory of Relativity</em>, among others. Morgan is currently studying at Toronto Film School to further cultivate her acting abilities as she works towards graduation. She hopes her future work continues to push the envelope for what is expected from Canadian actors.</p>\n \n \n \n <p style="text-align: center;"><strong><img class="alignnone wp-image-24999 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_3BrentGosnell_0309-598x526-1.jpg" alt="Brent Gosnell as Elbow" width="598" height="526" /> </strong></p>\n <p style="text-align: center;"><strong>Brent Gosnell – Elbow</strong></p>\n <p style="text-align: center;">Ready to be on the big screen, Brent Gosnell is an up-and-coming actor who loves to display his range of emotion and personality. Theatrical pieces Brent has worked on in the past include <em>Marat</em> <em>Sade</em>, and<em> How to Succeed in High School Without Really Trying</em>. He loves writing music and skits in his spare time and is a skateboard and snowboard enthusiast. Brent also looks forward to working with actors like Tom Cruise and Leonardo DiCaprio, so he can learn and grow as an actor.</p>\n \n \n \n <p style="text-align: center;"><strong><img class="alignnone wp-image-25000 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_4JakeHitchon_0309-598x526-1.jpg" alt="Jake Hitchon as First Gentleman/Barnardine" width="598" height="526" /> </strong></p>\n <p style="text-align: center;"><strong>Jake Hitchon – First Gentleman/Barnardine</strong></p>\n <p style="text-align: center;">Jake Alexander Hitchon was born in Cornwall, Ontario and grew up in the countryside of Lunenburg, Ontario. He graduated high school at Rothwell Osnabruck in 2015 as an honour roll student. During his time in university, he took an off-campus class at the Ottawa Acting Company and loved it. He later decided to pursue a career in the arts, completing his Bachelor of Arts degree in Film Studies at Carleton University in 2020. He’s now a student at Toronto Film School, looking to build confidence and connections with others in the film industry. He looks forward to graduating and breaking into the film industry where he can then start his career journey.</p>\n \n \n \n <p style="text-align: center;"><strong><img class="alignnone wp-image-25001 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_5CamdenJeppson_0309-598x526-1.jpg" alt="Camden Jeppson as Provost" width="598" height="526" /> </strong></p>\n <p style="text-align: center;"><strong>Camden Jeppson – Provost</strong></p>\n <p style="text-align: center;">Camden is ecstatic to be a part of the <em>Measure for Measure</em> cast this term. At 19 years old, Camden recently performed in the self-made short <em>Classic</em> and production of <em>Marat/Sade</em> in a previous term at Toronto Film School. Prior to joining TFS, Camden got his roots in the North Peace Secondary School musical production of <em>Grease</em> as Doody and <em>Alice in Wonderland</em> as the dodo bird. Outside of work in the home studio, Camden enjoys playing guitar, writing, and drawing digital art.</p>\n <strong> </strong>\n \n \n \n <img class="aligncenter wp-image-25002 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_6DanielaLibano_0309-598x526-1.jpg" alt="Daniela Libano as Isabella" width="598" height="526" />\n <p style="text-align: center;"><strong>Daniela Libano – Isabella</strong></p>\n <p style="text-align: center;">Daniela Libano is a Chilean Canadian actor based in Toronto, Canada, where she has been honing her craft for the last nine months through various student-based films and a collection of monologues. She uses her love of the arts to bring in a sense of security and play to everything she does in her daily and professional life. You can see Daniela in things such as London Sonata where she played Danny Sparks, a film written by the 3X Camera Acting class this summer, where she helped co-write the film under the direction and guidance of Jonathan Higgins. She has also starred in <em>Marat/Sad</em>e playing the woman, Charlotte Corday, the eventual assassin of Jean Paul Marat. Her favourite pastimes away from the screen are going out for runs and watching other actors perform, whether professional or her peers.</p>\n <strong> </strong>\n \n \n \n <img class="aligncenter wp-image-25003 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_7AedanMacNeil_0309-598x526-1.jpg" alt="Aeden MacNeil as Lucio" width="598" height="526" />\n <p style="text-align: center;"><strong>Aeden MacNeil – Lucio</strong></p>\n <p style="text-align: center;">Originally from Hamilton Ontario, Aedan previously pursued a career in the construction industry. It wasn’t until he was forced online that he realized that acting was his calling. Aedan used online platforms to perform improv, create skits and explore the acting world. Since joining Toronto Film School he has performed in The Persecution and Assassination of Jean-Paul Marat, as Kokol and Death of a Salesman, as Biff Loman. Aedan likes to use his intense vocal range to play a plethora of characters. He wants to pursue a career in everything from voiceover for video games, to classic theatre, and everything in between.</p>\n <strong> </strong>\n \n \n \n <img class="aligncenter wp-image-25004 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_AmandaMarinoff_0309-598x526-1.jpg" alt="Kira Nox as Escalus" width="598" height="526" />\n <p style="text-align: center;"><strong>Kira Nox – Escalus</strong></p>\n <p style="text-align: center;">Kira Nox began her acting career in high school, exploring theatre work and expressions. Now enrolled in the Acting for Film, TV and Theatre program at Toronto Film School, she looks forward to continuing to grow her skills in the field. Kira first got into acting due to her passion for movies and sharing other people’s stories. She’s also currently learning ASL to further her communication skills. Kira enjoys spending her free time working with accents and movement, including dancing, yoga, meditation and space exploration using the body.</p>\n <strong> </strong>\n \n \n \n <img class="aligncenter wp-image-25005 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_8RileyMcGloin_0309-598x526-1.jpg" alt="Riley McGloin as Froth/Servant/Friar Peter" width="598" height="526" />\n <p style="text-align: center;"><strong>Riley McGloin – Froth/Servant/Friar Peter</strong></p>\n Prior to enrolling at Toronto Film School's Acting program, Riley McGloin had been involved in theatre and musical theatre productions for nearly seven years. His acting journey began back in 2012, when he decided to participate in several school productions, and continued as he began taking occasional lessons for voice. In 2019, he took on the role of Max Detweiler in a local production of <em>The Sound of Music</em> in his hometown of Moncton, New Brunswick.\n \n <strong> </strong>\n \n \n \n <img class="aligncenter wp-image-25006 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_9MeganMorand_0309-598x526-1.jpg" alt="Megan Morand as Duke Vincentio" width="598" height="526" />\n <p style="text-align: center;"><strong>Megan Morand – Duke Vincentio</strong></p>\n <p style="text-align: center;">Megan Rose Morand is an up-and-coming actor from Windsor, Ontario. She has a rich theatrical background, which started at the Lakeshore Academy of Fine Arts with her debut role as Tinkerbell in <em>Peter Pan</em>. Her more recent roles include those of Mary Snow in the TFS production <em>of Salt-Water Moon</em> and the Herald in <em>Marat/Sade</em>. Megan has always had a passion for the arts and brings an immense amount of energy and passion to the stage during her performances. She is currently enrolled in the Acting for Film, Television and Theatre Program at Toronto Film School, where she continues to pursue her passion for the arts.</p>\n <strong> </strong>\n \n \n \n <img class="aligncenter wp-image-25007 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_10IvoPereira_0309-598x526-1.jpg" alt="Ivo Pereira – Angelo" width="598" height="526" />\n <p style="text-align: center;"><strong>Ivo Pereira – Angelo</strong></p>\n <p style="text-align: center;">Ivo C. Pereira is an experienced practitioner of martial arts and stunt work, with more than 14 years of experience studying different forms. He has performed in TFS productions including <em>Betrayal</em> as Robert and <em>The Laramie Project</em> as Aaron McKinney. He has directed, and starred in his own silent short film <em>Rise</em> and continues on creating more of his own content. Ivo is proficient in Portuguese and passionate about working in the field of voice-over and animation. In his spare time, Ivo enjoys motorcycling, rock climbing, and writing. He is well adapted at carrying out leadership roles, as he has done so in many of his prior instructing positions.</p>\n <strong> </strong>\n \n \n \n <img class="aligncenter wp-image-25008 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_13AJSigueYntig_0309-598x526-1.jpg" alt="AJ Sigue Yntig as Friar Thomas/Abhorson/Second Gentleman/Messenger Boy" width="598" height="526" />\n <p style="text-align: center;"><strong>AJ Sigue Yntig – Friar Thomas/Abhorson/Second Gentleman/Messenger Boy</strong></p>\n <p style="text-align: center;"> AJ is currently a student at Toronto Film School, studying in the Acting for Film, TV, and the Theatre program. He has always had an interest in acting, especially musical theatre and singing. AJ has been in other productions and has previously played Tom in <em>The Glass Menagerie</em>, Edmund in <em>Long Day’s Journey into Night</em>, and Dupreet from <em>Marat/Sade</em>. In his spare time, he likes to read, work out, and play badminton and volleyball. He is grateful to his friends and family for their love and support and would like to thank all those involved in the Term 5 play.</p>\n \n \n \n \n <img class="aligncenter wp-image-25009 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_11KaitlynWhetstone_0309-598x526-1.jpg" alt="Kaitlyn Whetstone as Pompey" width="598" height="526" />\n <p style="text-align: center;"><strong>Kaitlyn Whetstone – Pompey</strong></p>\n <p style="text-align: center;">Kaitlyn Whetstone started acting in Guelph, Ontario through the Great Big Theatre Company, where she learned to perform on stage and read a script for the first time. She also indulged in high school performances, where she took on the role of Sharpay in <em>High School Musical</em> and Emily in <em>Our Town</em>. Kaitlyn has attended training with writer Lindsay Price and got the opportunity to perform two of her plays in the NTS Drama Festival. In high school, she took the position as director for a play, which was also performed at NTS. Kaitlyn has a passion for musical theatre, dance and movement. She attended Strictly Rhythm Dance Academy, as well as Holly Hughes Dance Academy back in her hometown. Kaitlyn is currently training at Toronto Film School in the Acting for Film, TV & Theatre program.</p>\n <strong> </strong>\n \n \n \n <img class="aligncenter wp-image-25010 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_12GerardoYelaGarcia_0309-598x526-1.jpg" alt="Gerardo Yela Garcia as Claudio" width="598" height="526" />\n <p style="text-align: center;"><strong>Gerardo Yela Garcia – Claudio</strong></p>\n <p style="text-align: center;">Gerardo Yela Garcia is a Canadian-based actor born in the Central American country of Guatemala. Gerardo is currently attending the Acting for Film, Television and Theatre program at Toronto Film School, to work on refining his craft. From a very young age, Gerardo always enjoyed the art of performing. Gerardo’s passion for storytelling finally met diligence at the age of 15, when he enrolled in Drama classes in high school. From the ages of 15 to 18, Gerardo took part in Improvisational ‘Lunchbox’ Theatre for his school, from skit writing to script adaptation, as well as character work for various high school plays and musicals such as, <em>Mama Mia!</em> (Sky), <em>Grease</em> (Kenickie) and <em>Shrek</em> (Puss in Boots). Despite working on many adaptations of rom-coms and fantasy, during his time at Toronto Film School, Gerardo has leaned into more dramatic roles and coming-of-age stories. He thrives on more complex, meatier roles that represent an unparalleled level of realism.</p>\n \n \n \n \n <img class="aligncenter wp-image-25011 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_14PatriciaTedford_0309-598x526-1.jpg" alt="Patricia Tedford – Director Measure for Measure" width="598" height="526" />\n <p style="text-align: center;"><strong>Patricia Tedford – Director</strong></p>\n <p style="text-align: center;">Over a 35-year career as an actor, director, teacher, Patricia now lives in Toronto. Previously, Patricia taught Acting and Voice for Theatre at Thorneloe at Laurentian University, in Sudbury, Ontario. Patricia’s most current endeavour was <em>St. Ella of the Camino</em>, a one-person show, which she wrote, performed and produced. The world premiere of <em>St. Ella of the Camino</em> marked Patricia’s first writing venture and was performed in October 2019. Other recent performances in Sudbury include: <em>Escape from Happiness</em> (Thorneloe Theatre), <em>Shakespeare’s Will</em> (Text Me Productions), <em>Hay Fever</em> (Thorneloe Theatre), <em>Henry and Alice Into the Wild</em> (Blue Water Summer Playhouse), <em>Our Town</em>, <em>How It Works</em> (Sudbury Theatre Centre), <em>Muskeg and Money</em> (North Road Theatre), and <em>Faith Healer</em> (ImPulse Theatre/Text Me Productions). For Thorneloe she has directed <em>Road, Greek, The Memory of Water, Cabaret, The Last Days of Judas Iscariot, Les Belles Soeurs, Book </em><em>of Days, Hedda Gabler, Twelfth Night </em>and<em> As You Like It</em>. Her most recent film was an ongoing project that was developed in yearly chapters: <em>Perspective</em>, which premiered in September 2020 at Cinéfest in Sudbury. Patricia has lived and worked as an actor in Montreal, Vancouver, Toronto, Ottawa and Sudbury. She has taught Voice for Acting and Acting at the University of Ottawa, York University, Ottawa School of Speech and Drama, St. Lawrence College and U of Toronto. Patricia is the founder and Artistic Director/Producer of Text Me Productions since 2012. She was the Founder/Artistic Director/Producer of Ottawa Lunchbox Theatre 2003-2006. Patricia holds a BFA with a Specialization in Performance from Concordia University, an MFA in Acting, and the Voice Teacher Diploma from York University. <em>Measure for Measure</em> is Patricia’s first directing project at TFS. Thanks to the creative team for going on this crazy ride, and to Hart for the opportunity.</p>\n \n \n \n \n <img class="aligncenter wp-image-25032 size-medium" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_ACT_KlaasRaymond_0309-526x526-1.jpg" alt="Klaas Raymond - Director Measure for Measure" width="526" height="526" />\n <p style="text-align: center;"><strong>Klaas Raymond</strong></p>\n <p style="text-align: center;">Klaas Raymond just graduated from Toronto Film School, where he was able to produce his own short film called <em>A Loophole For the Rich A-Hole</em>. Klaas started performing in high school, quickly taking action and doing musicals such as<em> Into the Woods</em> performing as the Wolf and steward, <em>Les Miserables</em> performing as a Chorus Member, both produced by Penny and Pound/Part and ParcelTheatre. He then played the great Doctor Seward in a production of <em>Dracula</em> produced by Part and ParcelTheatre, and performed as Mr. Kirby in <em>You Can’t Take It With You</em>, also produced by Part and Parcel Theatre, all performed at the Cambridge Art Theatre.</p>\n \n \n \n \n """ |
post_title | "Acting Students Give Circa-1600s Shakespeare Play a 1980s Reboot"
|
post_excerpt | "" |
post_status | "publish"
|
comment_status | "closed"
|
ping_status | "open"
|
post_password | "" |
post_name | "acting-students-give-circa-1600s-shakespeare-play-a-1980s-reboot"
|
to_ping | "" |
pinged | "" |
post_modified | "2023-04-04 19:08:44"
|
post_modified_gmt | "2023-04-04 19:08:44"
|
post_content_filtered | "" |
post_parent | 0
|
guid | "https://uat.tfs.staging.poundandgrain.ca/?p=24993"
|
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/acting-students-give-circa-1600s-shakespeare-play-a-1980s-reboot/"
|
USER | "forge"
|
HOME | "/home/forge"
|
HTTP_REFERER | "https://uat.tfs.staging.poundandgrain.ca/blog/acting-students-give-circa-1600s-shakespeare-play-a-1980s-reboot"
|
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 | "uat.tfs.staging.poundandgrain.ca"
|
REDIRECT_STATUS | "200"
|
HTTPS | "on"
|
SERVER_NAME | "uat.tfs.staging.poundandgrain.ca"
|
SERVER_PORT | "443"
|
SERVER_ADDR | "10.0.1.187"
|
REMOTE_PORT | "13509"
|
REMOTE_ADDR | "3.139.97.97"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
SERVER_PROTOCOL | "HTTP/2.0"
|
DOCUMENT_ROOT | "/home/forge/uat.tfs.staging.poundandgrain.ca/releases/20241113033749/web"
|
DOCUMENT_URI | "/index.php"
|
SCRIPT_NAME | "/index.php"
|
SCRIPT_FILENAME | "/home/forge/uat.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 | 1731830890.2338
|
REQUEST_TIME | 1731830890
|
DB_NAME | "tfs_uat"
|
DB_USER | "***"
|
DB_PASSWORD | "************"
|
WP_ENV | "development"
|
WP_HOME | "https://uat.tfs.staging.poundandgrain.ca"
|
WP_SITEURL | "https://uat.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"
|
MIRROR_URL | "https://dev.tfs.staging.poundandgrain.ca"
|
SOURCE_OF_TRUTH | "false;"
|
BLOG_URL | "https://dev.tfs.staging.poundandgrain.ca"
|
Key | Value |
DB_NAME | "tfs_uat"
|
DB_USER | "***"
|
DB_PASSWORD | "************"
|
WP_ENV | "development"
|
WP_HOME | "https://uat.tfs.staging.poundandgrain.ca"
|
WP_SITEURL | "https://uat.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"
|
MIRROR_URL | "https://dev.tfs.staging.poundandgrain.ca"
|
SOURCE_OF_TRUTH | "false;"
|
BLOG_URL | "https://dev.tfs.staging.poundandgrain.ca"
|