*
* @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" => "toronto-film-school-presents-28-days-28-films-series-documentaries-to-watch-this-black-history-month" "category_name" => "blog" ] |
query_string | "name=toronto-film-school-presents-28-days-28-films-series-documentaries-to-watch-this-black-history-month&category_name=blog"
|
request | "blog/toronto-film-school-presents-28-days-28-films-series-documentaries-to-watch-this-black-history-month"
|
matched_rule | "(.+?)/([^/]+)(?:/([0-9]+))?/?$"
|
matched_query | "category_name=blog&name=toronto-film-school-presents-28-days-28-films-series-documentaries-to-watch-this-black-history-month&page="
|
did_permalink | true
|
Key | Value |
query | array:3 [ "page" => "" "name" => "toronto-film-school-presents-28-days-28-films-series-documentaries-to-watch-this-black-history-month" "category_name" => "blog" ] |
query_vars | array:66 [ "page" => 0 "name" => "toronto-film-school-presents-28-days-28-films-series-documentaries-to-watch-this-black-history-month" "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 | 22044
|
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 = 'toronto-film-school-presents-28-days-28-films-series-documentaries-to-watch-this-black-history-month' 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 | 22044
|
post_author | "43"
|
post_date | "2021-02-01 14:11:46"
|
post_date_gmt | "2021-02-01 14:11:46"
|
post_content | """ From poignant documentaries and historical dramas, to sidesplitting comedies and blockbuster superhero flicks – in honour of Black History Month, Toronto Film School has put together a list of must-see films, documentaries and television series to watch this February.\n \n \n \n Each of the following recommended projects was submitted by members of Toronto Film School's community of students, alumni and faculty.\n \n \n \n <img class="size-medium wp-image-22045 aligncenter" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_13th_0126-372x526-1.jpg" alt="" width="372" height="526" />\n <p style="text-align: center;"><strong><a href="https://en.wikipedia.org/wiki/13th_(film)" target="_blank" rel="noopener noreferrer"><em>13<sup>th</sup></em></a></strong>(2016)</p>\n <p style="text-align: center;"><strong>Director: </strong>Ava DuVernay</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>An American documentary film exploring the intersection of race, justice and mass incarceration in the United States. It is titled under the 13th Amendment to the United States Constitution, adopted in 1865, which abolished slavery in the United States and ended involuntary servitude except as a punishment for conviction of a crime<em>.</em></p>\n <p style="text-align: center;"><strong>Recommended by Ingrid Hart, a member of the Acting for Film, TV & the Theatre faculty: </strong></p>\n <p style="text-align: center;">“This is as important a documentary as there ever could be, as DuVernay contends that slavery has been perpetuated since the end of the American Civil War through criminalizing behaviour and enabling police to arrest poor freedmen and force them to work for the state under convict leasing. This documentary was nominated for the Academy Award for Best Documentary Feature and won the Primetime Emmy Award for Outstanding Documentary. This film represents a milestone in the dissemination of information for the masses and is a must see!”</p>\n \n \n \n <p style="text-align: center;"><img class="alignnone size-medium wp-image-22046" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_21Bridges_0126-373x526-1.jpg" alt="" width="373" height="526" /></p>\n <p style="text-align: center;"><a href="https://staging.torontofilmschool.ca/blog/da-kink-in-my-hair-playwright-trey-anthony-joins-tfs-for-upcoming-in-conversation-event/" target="_blank" rel="noopener noreferrer"><strong><em>21 Bridges</em></strong></a> (2019)</p>\n <p style="text-align: center;"><strong>Director: </strong>Brian Kirk</p>\n <p style="text-align: center;"><strong>Starring: </strong>Chadwick Boseman, Taylor Kitsch, Sienna Miller</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>After uncovering a massive conspiracy, an embattled NYPD detective joins a citywide manhunt for two young cop killers. As the night unfolds, he soon becomes unsure of who to pursue – and who's in pursuit of him. When the search intensifies, authorities decide to take extreme measures by closing all of Manhattan's 21 bridges to prevent the suspects from escaping.</p>\n <p style="text-align: center;"><strong>Recommended by 2018 Graphic Design & Interactive Media graduate Dami Osoba:</strong></p>\n <p style="text-align: center;">“A celebration of Black Excellence! Chadwick Boseman gave an outstanding performance despite his health challenges which was only made known by his family after his unfortunate demise in 2020.”</p>\n \n \n \n <p style="text-align: center;"><img class="alignnone size-medium wp-image-22047" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_AkeelahAndTheBee_0126-372x526-1.jpg" alt="" width="372" height="526" /></p>\n <p style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Akeelah_and_the_Bee" target="_blank" rel="noopener noreferrer"><strong><em>Akeelah and the Bee</em></strong></a> (2006)</p>\n <p style="text-align: center;"><strong>Director: </strong>Doug Atchison</p>\n <p style="text-align: center;"><strong>Starring: </strong>Angela Bassett, Laurence Fishburne, Keke Palmer</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>Akeelah, an 11-year-old girl living in South Los Angeles, discovers she has a talent for spelling, which she hopes will take her to the National Spelling Bee. Despite her mother's objections, Akeelah doesn't give up on her goal. She finds help in the form of a mysterious teacher, and along with overwhelming support from her community, Akeelah might just have what it takes to make her dream come true.</p>\n <p style="text-align: center;"><strong>Recommended by Jael Jones Cabey, Acting for Film, TV & the Theatre student</strong></p>\n <p style="text-align: center;">“This movie, in its own way, provided me with knowledge in regard to different facets of the black experience. As a young child having watched <em>Akeelah and the Bee</em>, I was deeply moved by the notion that a little black girl could go on to achieve anything!”</p>\n \n \n \n <p style="text-align: center;"><img class="alignnone size-medium wp-image-22048" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_Ali_0126-373x526-1.jpg" alt="" width="373" height="526" /></p>\n <p style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Ali_(film)" target="_blank" rel="noopener noreferrer"><strong><em>Ali</em></strong></a> (2001)</p>\n <p style="text-align: center;"><strong>Director: </strong>Michael Mann</p>\n <p style="text-align: center;"><strong>Starring:</strong> Will Smith, Jamie Foxx, Jon Voight</p>\n <p style="text-align: center;"><strong>Synopsis:</strong> This biographical sports drama focuses on the life of boxer Muhammad Ami from 1964 to 1974, featuring his capture of the heavyweight title from Sonny Liston, his conversion to Islam, his criticism of the Vietnam war, banishment from boxing, his return to fight Joe Frazier in 1971, and, finally, his reclaiming the title from George Foreman in the Rumble in the Jungle fight of 1974. It also touches on the great social and political upheaval in the United States following the assassinations of Malcolm X and Martin Luther King Jr.</p>\n <p style="text-align: center;"><strong>Recommended by Ingrid Hart, a member of the Acting for Film, TV & the Theatre faculty: </strong></p>\n <p style="text-align: center;">“Will Smith's portrayal of one of the most significant figures of the 20th century is one for the books! My father was a boxer and so I'd watch boxing matches with him when I was a child. I grew to love the discipline of the sport and, of course, Muhammad Ali is my idol, too! My father was able to shake his hand years ago back in Jamaica, and I had the honour of attending a Toronto event where he was speaking! Ali forever!”</p>\n \n \n \n <p style="text-align: center;"><img class="alignnone size-medium wp-image-22049" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_Amistad_0126-372x526-1.jpg" alt="" width="372" height="526" /></p>\n <p style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Amistad_(film)" target="_blank" rel="noopener noreferrer"><strong><em>Amistad</em></strong></a> (1997)</p>\n <p style="text-align: center;"><strong>Director:</strong> Steven Spielberg</p>\n <p style="text-align: center;"><strong>Starring:</strong> Morgan Freeman, Anthony Hopkins, Djimon Hounsou, Matthew McConaughey</p>\n <p style="text-align: center;"><strong>Synopsis:</strong> Based on the true story of the events in 1839 aboard the slave ship La Amistad, during which Mende tribesmen abducted for the slave trade managed to gain control of their captors' ship off the coast of Cuba, and the international legal battle that followed their capture by the Washington, a US revenue cutter.</p>\n <p style="text-align: center;"><strong>Recommended by Ingrid Hart, a member of the Acting for Film, TV & the Theatre faculty: </strong></p>\n <p style="text-align: center;">“This story is based on the 1987 book <em>Mutiny on the Amistad: The Saga of a Slave Revolt and Its Impact on American Abolition, Law and Diplomacy, </em>by the historian Howard Jones. <em>Amistad</em> was nominated for four Academy Awards including Best Supporting Actor and Best Cinematography. Debbie Allen tried for years to make this movie and I'm so glad she persevered because this was the first movie I had ever seen about enslaved Africans who fought their oppressors and won!”</p>\n \n \n \n <p style="text-align: center;"><img class="alignnone size-medium wp-image-22050" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_Barbershop_0126-372x526-1.jpg" alt="" width="372" height="526" /></p>\n <p style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Barbershop_(film)" target="_blank" rel="noopener noreferrer"><strong><em>Barbershop</em></strong></a> (2002)</p>\n <p style="text-align: center;"><strong>Director: </strong>Tim Story</p>\n <p style="text-align: center;"><strong>Starring: </strong>Ice Cube, Anthony Anderson, Cedric the Entertainer, Eve</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>A smart comedy about a day in the life of a barbershop on the south side of Chicago. Calvin, who inherited the struggling business from his deceased father, views the shop as nothing but a burden and a waste of his time. After selling the shop to a local loan shark, Calvin slowly begins to see his father's vision and legacy and struggles with the notion that he just sold it out.</p>\n <p style="text-align: center;"><strong>Recommended by 2017 </strong><strong>Film Production graduate Becky Yeboah:</strong></p>\n <p style="text-align: center;"><em>“Barbershop</em> is such an entertaining piece, and it really embodies what it means to be a part of a community (which is, by the way, a very common, prominent message in so many films about Black culture: community). Yes, it's a comedy – and a rather silly one at that – but underneath all the shenanigans and all the absurdity, there's just so much heart. It also has such a strong message of forgiveness – which is something I think should be at the forefront of all our heartsthis year. Not only that, but <em>Barbershop </em>also speaks about leaning on one another, and working together to build better character, and to be better examples for our youth. It's all these things that make me happy to recommend <em>Barbershop</em> as a film to watch this Black History Month.”</p>\n \n \n \n <p style="text-align: center;"><img class="alignnone size-medium wp-image-22051" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_BlackPanther_0126-372x526-1.jpg" alt="" width="372" height="526" /></p>\n <p style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Black_Panther_(film)" target="_blank" rel="noopener noreferrer"><strong><em>Black Panther</em></strong></a> (2018)</p>\n <p style="text-align: center;"><strong>Director: </strong>Ryan Coogler</p>\n <p style="text-align: center;"><strong>Starring: </strong>Chadwick Boseman, Michael B. Jordan, Lupita Nyong'o, Danai Guria, Martin Freeman, Daniel Kaluuya</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>After the death of his father, T'Challa returns home to the African nation of Wakanda to take his rightful place as king. When a powerful enemy suddenly reappears, T'Challa's mettle as king – and as Black Panther – gets tested when he's drawn into a conflict that puts the fate of Wakanda and the entire world at risk. Faced with treachery and danger, the young king must rally his allies and release the full power of Black Panther to defeat his foes and secure the safety of his people.</p>\n <p style="text-align: center;"><strong>Recommended by 2017 Acting for Film, TV & the Theatre graduate Robert Cooper, 2017 Fashion Design graduate Amaka Obodo, and Acting faculty member Ingrid Hart: </strong></p>\n <p style="text-align: center;">“This is a monumental achievement in cinema as it showcases positive images of the black community and strengthens cultural identity. This is a superhero movie for the black community and for every community.”</p>\n \n \n \n <p style="text-align: center;"><img class="alignnone size-medium wp-image-22052" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_BlackPanthersVanguardRevolution_0126-373x526-1.jpg" alt="" width="373" height="526" /></p>\n <p style="text-align: center;"><a href="https://en.wikipedia.org/wiki/The_Black_Panthers:_Vanguard_of_the_Revolution" target="_blank" rel="noopener noreferrer"><strong><em>Black Panthers: Vanguard of the Revolution</em></strong></a> (2015)</p>\n <p style="text-align: center;"><strong>Director: </strong>Stanley Nelson</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>This documentary combines archival footage from the 1960s, and interviews with surviving Panthers and FBI agents, to tell the story of the revolutionary black organization the Black Panther Party and its impact on civil rights and American culture.</p>\n <p style="text-align: center;"><strong>Recommended by Ingrid Hart, a member of the Acting for Film, TV & the Theatre faculty: </strong></p>\n <p style="text-align: center;">“This is the first of a three-part series of documentary films about African American history. The film premiered at the 2015 Sundance Film Festival. The Black Panther Party had a positive impact on the community and provided safety and security during a time when the black community was under siege.”</p>\n \n \n \n <p style="text-align: center;"><img class="alignnone size-medium wp-image-22053" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_Blade_0126-373x526-1.jpg" alt="" width="373" height="526" /></p>\n <p style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Blade_(film)" target="_blank" rel="noopener noreferrer"><strong><em>Blade</em></strong></a> (1998)<strong><em> </em></strong></p>\n <p style="text-align: center;"><strong>Director: </strong>Stephen Norrington</p>\n <p style="text-align: center;"><strong>Starring: </strong>Wesley Snipes, Stephen Dorff, Kris Kristofferson</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>A half-mortal, half-immortal is out to avenge his mother's death and rid the world of vampires. The modern-day technologically advanced vampires he is going after are in search of his special blood type needed to summon an evil god who plays a key role in their plan to execute the human race.</p>\n <p style="text-align: center;"><strong>Recommended by 2017 Acting for Film, TV & the Theatre graduate Robert Cooper</strong></p>\n \n \n \n <p style="text-align: center;"><strong> <img class="alignnone size-medium wp-image-22054" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_BloodDiamond_0127-372x526-1.jpg" alt="" width="372" height="526" /></strong></p>\n <p style="text-align: center;"><em><a href="https://en.wikipedia.org/wiki/Blood_Diamond" target="_blank" rel="noopener noreferrer"><strong> Blood Diamond </strong></a></em>(2006)</p>\n <p style="text-align: center;"><strong>Director: </strong>Edward Zwick</p>\n <p style="text-align: center;"><strong>Starring: </strong>Leonardo DiCaprio, Djimon Hounsou, Jennifer Connelly, David Harewood</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>As civil war rages through 1990s Sierra Leone, two men – a white South African mercenary and a black Mende fisherman – become joined in a common quest to recover a rare gem that has the power to transform their lives. With the help of an American journalist, the men embark on a hazardous trek through rebel territory to achieve their goal.</p>\n <p style="text-align: center;"><strong>Recommended by 2017 Fashion Design graduate Amaka Obodo</strong></p>\n \n \n \n <p style="text-align: center;"><strong> <img class="alignnone size-medium wp-image-22055" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_BoyzNTheHood_0126-373x526-1.jpg" alt="" width="373" height="526" /></strong></p>\n <p style="text-align: center;"><a href="https://staging.torontofilmschool.ca/blog/da-kink-in-my-hair-playwright-trey-anthony-joins-tfs-for-upcoming-in-conversation-event/" target="_blank" rel="noopener noreferrer"><strong><em>Boyz n’ the Hood</em></strong></a> (2012)</p>\n <p style="text-align: center;"><strong>Director: </strong>John Singleton</p>\n <p style="text-align: center;"><strong>Starring: </strong>Cuba Gooding Jr., Laurence Fishburne, Nia Long, Ice Cube, Morris Chestnut</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>Tre is sent to live with his father, Furious Styles, in tough South Central Los Angeles. Although his hard-nosed father instills proper values and respect in him, and his devout girlfriend Brandi teaches him about faith, Tre's friends Doughboy and Ricky don't have the same kind of support and are drawn into the neighborhood's booming drug and gang culture, with increasingly tragic results.</p>\n <p style="text-align: center;"><strong>Recommended by 2017 Acting for Film, TV & the Theatre graduate Robert Cooper</strong></p>\n \n \n \n <p style="text-align: center;"><strong> <img class="alignnone size-medium wp-image-22056" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_ColorPurple_0126-372x526-1.jpg" alt="" width="372" height="526" /></strong></p>\n <p style="text-align: center;"><a href="https://en.wikipedia.org/wiki/The_Color_Purple_(film)" target="_blank" rel="noopener noreferrer"><strong><em>The Color Purple</em></strong></a> (1985)</p>\n <p style="text-align: center;"><strong>Director: </strong>Stephen Spielberg</p>\n <p style="text-align: center;"><strong>Starring: </strong>Whoopi Goldberg, Danny Glover, Margaret Avery, Oprah Winfrey</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>Based on the novel by Alice Walker, this is an epic tale spanning forty years in the life of Celie, an African-American woman living in the South who survives incredible abuse and bigotry. After Celie's abusive father marries her off to the equally debasing "Mister" Albert Johnson, things go from bad to worse, leaving Celie to find companionship anywhere she can. She perseveres, holding on to her dream of one day being reunited with her sister in Africa.</p>\n <p style="text-align: center;"><strong>Recommended by Ingrid Hart, a member of the Acting for Film, TV & the Theatre faculty: </strong></p>\n <p style="text-align: center;">“This is an American coming-of-age period drama based on the Pulitzer Prize-winning novel of the same name by Alice Walker. The film tells the story of a young African American girl and the problems African American women faced in the early 20th century. This film was nominated for eleven Academy Awards including Best Picture and Best Actress as well as four Golden Globe Award nominations. I remember finding this book on my mom's bookshelf when I was 10 years old. The pages were worn and tattered as though she had read it several times. I knew it wasn't a book for children and so I would sneak to read it and then put it back on the shelf! It continues to have a lasting impression on me and has got to be one of my favourite movies of all time!”</p>\n \n \n \n <p style="text-align: center;"><img class="alignnone size-medium wp-image-22057" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_DolemiteIsMyName_0126-373x526-1.jpg" alt="" width="373" height="526" /></p>\n <p style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Dolemite_Is_My_Name" target="_blank" rel="noopener noreferrer"><strong><em>Dolemite Is My Name</em></strong></a> (2019)</p>\n <p style="text-align: center;"><strong>Director: </strong>Craig Brewer</p>\n <p style="text-align: center;"><strong>Starring: </strong>Eddie Murphy, Keegan-Michael Key, Wesley Snipes, Chris Rock</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>Performer Rudy Ray Moore develops an outrageous character named Dolemite, who becomes an underground sensation and star of a kung-fu, anti-establishment film that could make or break Moore.</p>\n <p style="text-align: center;"><strong>Recommended by 2017 </strong><strong>Film Production graduate Becky Yeboah:</strong></p>\n <p style="text-align: center;"><em>“Dolemite is My Name</em> is actually one of my favourite 'Black' films of all time. It's not only silly, and raunchy, and just exceptionally hilarious, <em>Dolemite is My Name</em> is also a surprisingly inspiring story – specifically for filmmakers! As someone who's done, and has been doing the whole 'film-student-turned-low-budget-independent-passion-project-producing-filmmaker' thing, I found <em>Dolemite is My Name</em> so encouraging and powerful. It reminds dreamers like us that we can do this. One of my favourite lines from the film comes when Eddie Murphy's character, Rudy Ray Moore,realizes the "big shot" director they brought on board thinks their whole production is a joke, so he stands up for himself, his crew, and his movie and says the following: "I know you Mr. Big Time, but the rest of us ain’t never done no [expletive] like this before. I’m paying for this whole goddamn thing, and I ain’t got no [expletive] ego about it. If a box need to get moved, I will move the box, and if the crew get hungry, I go downstairs and start making sandwiches. Because we are here to work together to make a movie!" It sums up the mentality I aim to carry into every project I'm a part of. It spoke directly to me as a producer, and it made me look at Eddie Murphy's character – this determined, foolhardy, crazy man who was insane enough to want to make a movie – and say: "that's the kind of filmmaker I want to be.”</p>\n \n \n \n \n <img class="size-medium wp-image-22109 aligncenter" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_DoTheRightThing_0129-372x526-1.jpg" alt="" width="372" height="526" />\n <p style="text-align: center;"><strong><em><a href="https://en.wikipedia.org/wiki/Do_the_Right_Thing" target="_blank" rel="noopener noreferrer">Do The Right Thing</a> </em></strong>(1989)</p>\n <p style="text-align: center;"><strong>Director: </strong>Spike Lee</p>\n <p style="text-align: center;"><strong>Starring: </strong>Spike Lee, Danny Aiello, Ossie Davis, Giancarlo Esposito, Ruby Dee, John Turturro</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>Salvatore "Sal" Fragione is the Italian owner of a pizzeria in Brooklyn. A neighborhood local, Buggin' Out, becomes upset when he sees that the pizzeria's Wall of Fame exhibits only Italian actors. Buggin' Out believes a pizzeria in a black neighborhood should showcase black actors, but Sal disagrees. The wall becomes a symbol of racism and hate to Buggin' Out and to other people in the neighborhood, and tensions rise.</p>\n <p style="text-align: center;"><strong>Recommended by Ingrid Hart, a member of the Acting for Film, TV & the Theatre faculty</strong></p>\n \n \n \n \n <img class="alignnone size-medium wp-image-22110 aligncenter" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_GetOut_0129-372x526-1.jpg" alt="" width="372" height="526" />\n <p style="text-align: center;"><strong><em><a href="https://en.wikipedia.org/wiki/Get_Out" target="_blank" rel="noopener noreferrer">Get Out</a></em></strong> (2017)</p>\n <p style="text-align: center;"><strong>Director: </strong>Jordan Peele</p>\n <p style="text-align: center;"><strong>Starring:</strong> Daniel Kaluuya, Allison Williams, Lil Rel Howery, Bradley Whitford, Caleb Landry Jones, Stephen Root, Catherine Keener, Lakeith Stanfield</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>Now that Chris and his girlfriend, Rose, have reached the meet-the-parents milestone of dating, she invites him for a weekend getaway upstate with Missy and Dean. At first, Chris reads the family's overly accommodating behavior as nervous attempts to deal with their daughter's interracial relationship, but as the weekend progresses, a series of increasingly disturbing discoveries lead him to a truth that he never could have imagined.</p>\n <p style="text-align: center;"><strong> </strong><strong>Recommended by 2019 Film Production graduate Cheyenne "Casper" Lynn</strong></p>\n \n \n \n <p style="text-align: center;"><img class="alignnone size-medium wp-image-22058" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_Guns_0126-670x361-1.jpg" alt="" width="670" height="361" /></p>\n <p style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Guns_(miniseries)" target="_blank" rel="noopener noreferrer"><strong><em>Guns</em></strong></a> (2008)</p>\n <p style="text-align: center;"><strong>Director: </strong>Sudz Sutherland</p>\n <p style="text-align: center;"><strong>Starring: </strong>Colm Feore, Elisha Cuthbert, Stephen McHattie, K.C. Collins, Shawn Doyle and Lyriq Bent</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>Guns is a gritty and dramatic mini-series that tells the story of four families caught up in illegal gun trafficking and the ripple effect this has on their lives. This is the story of those who traffic guns, the cops who try to catch them and the innocent people who get caught in the crossfire.</p>\n <p style="text-align: center;"><strong>Recommended by Acting for Film, TV & the Theatre faculty member Andrew Moodie</strong></p>\n \n \n \n <p style="text-align: center;"><strong> <img class="alignnone size-medium wp-image-22059" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_HarlemNights_0126-372x526-1.jpg" alt="" width="372" height="526" /></strong></p>\n <p style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Harlem_Nights" target="_blank" rel="noopener noreferrer"><strong><em>Harlem Nights</em></strong></a> (1989)</p>\n <p style="text-align: center;"><strong>Director: </strong>Eddie Murphy</p>\n <p style="text-align: center;"><strong>Starring: </strong>Eddie Murphy, Richard Pryor, Redd Foxx, Danny Aiello, Michael Lerner, Della Reese</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>In the waning days of Prohibition, Sugar Ray and his adopted son, Quick, run a speakeasy called Club Sugar Ray. When gangster Bugsy Calhoune learns that Sugar Ray's place is pulling in more money than his own establishment, he pays corrupt cop Phil Cantone to close Club Sugar Ray down.</p>\n <p style="text-align: center;"><strong>Recommended by Ingrid Hart, a member of the Acting for Film, TV & the Theatre faculty: </strong></p>\n <p style="text-align: center;">“This is an American crime comedy-drama film about gorgeous nightclubs and fearless gangsters in late 1930s Harlem, New York City. I love the music and costume design and overall feel of this film. Richard Pryor is one of the greatest influencers of stand-up comedy and it's great to watch him and the rest of the beautiful cast re-ignite such a fantastic time known as the Harlem Renaissance. I went to theatre school in New York City and I remember visiting Harlem and thinking of what an amazingly creative and intriguing time it must have been in its prime.”</p>\n \n \n \n <p style="text-align: center;"><strong> <img class="alignnone size-medium wp-image-22060" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_Harriet_0126-373x526-1.jpg" alt="" width="373" height="526" /></strong></p>\n <p style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Harriet_(film)" target="_blank" rel="noopener noreferrer"><strong><em>Harriet</em></strong></a> (2019)</p>\n <p style="text-align: center;"><strong>Director: </strong>Kasi Lemmons</p>\n <p style="text-align: center;"><strong>Starring: </strong>Cynthia Erivo, Leslie Odom Jr., Joe Alwyn, Janelle Monáe</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>From her escape from slavery, through the dangerous missions she led to liberate hundreds of slaves through the Underground Railroad – the story of heroic abolitionist Harriet Tubman is told.</p>\n <p style="text-align: center;"><strong>Recommended by 2019 Film Production graduate Cheyenne "Casper" Lynn</strong></p>\n \n \n \n <p style="text-align: center;"><strong> <img class="alignnone size-medium wp-image-22061" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_HiddenFigures_0126-373x526-1.jpg" alt="" width="373" height="526" /></strong></p>\n <p style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Hidden_Figures" target="_blank" rel="noopener noreferrer"><strong><em>Hidden Figures</em></strong></a> (2016)<strong> </strong></p>\n <p style="text-align: center;"><strong>Director: </strong>Theodore Melfi</p>\n <p style="text-align: center;"><strong>Starring: </strong>Taraji P. Henson, Octavia Spencer, Janelle Monáe</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>Three brilliant African-American women at NASA – Katherine Johnson, Dorothy Vaughan and Mary Jackson – serve as the brains behind one of the greatest operations in history: the launch of astronaut John Glenn into orbit, a stunning achievement that restored the nation's confidence, turned around the Space Race and galvanized the world.</p>\n <p style="text-align: center;"><strong>Recommended by 2019 Film Production graduate Cheyenne "Casper" Lynn</strong></p>\n \n <p style="text-align: center;"><strong> </strong></p>\n <p style="text-align: center;"><img class="alignnone size-medium wp-image-22062" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_HomeAgain_0126-372x526-1.jpg" alt="" width="372" height="526" /></p>\n <p style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Home_Again_(2012_film)" target="_blank" rel="noopener noreferrer"><strong><em>Home Again</em></strong></a> (2016)</p>\n <p style="text-align: center;"><strong>Director: </strong>Sudz Sutherland</p>\n <p style="text-align: center;"><strong>Starring: </strong>Tatyana Ali, CCH Pounder, Lyriq Bent, Dewshane Williams</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>Canadian drama set in Kingston, Jamaica about three people who have been deported back to Jamaica, despite having lived in Canada, United States and United Kingdom for most of their lives.</p>\n <p style="text-align: center;"><strong>Recommended by Ingrid Hart, a member of the Acting for Film, TV & the Theatre faculty: </strong></p>\n <p style="text-align: center;">“As a descendant of Jamaican parents who arrived in Canada in the early 70's, I can relate to these stories of struggle and cultural identity. All of these performances are outstanding and it's always a thrill to watch brilliant Canadian talent on the screen!”</p>\n \n \n \n <p style="text-align: center;"><img class="alignnone size-medium wp-image-22063" src="https://uat.tfs.staging.poundandgrain.ca/app/uploads/2023/03/TFS_BHM_MalcolmX_0126-372x526-1.jpg" alt="" width="372" height="526" /></p>\n <p style="text-align: center;"><a href="https://en.wikipedia.org/wiki/Malcolm_X_(1992_film)" target="_blank" rel="noopener noreferrer"><strong><em>Malcolm X</em></strong></a> (1992)</p>\n <p style="text-align: center;"><strong>Director: </strong>Spike Lee</p>\n <p style="text-align: center;"><strong>Starring: </strong>Denzel Washington, Angela Bassett, Albert Hall, Al Freeman Jr., Delroy Lindo</p>\n <p style="text-align: center;"><strong>Synopsis: </strong>A tribute to the controversial black activist and leader of the struggle for black liberation. He hit bottom during his imprisonment in the '50s, he became a Black Muslim and then a leader in the Nation of Islam. His assassination in 1965 left a legacy of self-determination and racial pride.<strong> </strong></p>\n <p style="text-align: center;"><strong>Recommended by Ingrid Hart, a member of the Acting for Film, TV & the Theatre faculty: </strong></p>\n <p style="text-align: center;">“This is an American epic biographical drama that tells the story of key events in the life of human rights activist, Malcom X. In this film, Denzel was nominated for an Academy Award for Best Actor as well, this film is preserved in the U.S. National Film Registry by the Library of Congress for being culturally, historically, and aesthetically significant. The performances in this movie are spectacular and truly memorable! In fact, I remember the feeling I felt when I saw this movie for the first time. I had never seen visuals of black people presented in this way and it opened my eyes to """ |
post_title | "Toronto Film School Presents: 28 Days, 28 Films, Series & Documentaries to Watch This Black History Month"
|
post_excerpt | "" |
post_status | "publish"
|
comment_status | "closed"
|
ping_status | "open"
|
post_password | "" |
post_name | "toronto-film-school-presents-28-days-28-films-series-documentaries-to-watch-this-black-history-month"
|
to_ping | "" |
pinged | "" |
post_modified | "2023-04-04 19:10:29"
|
post_modified_gmt | "2023-04-04 19:10:29"
|
post_content_filtered | "" |
post_parent | 0
|
guid | "https://uat.tfs.staging.poundandgrain.ca/?p=22044"
|
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/toronto-film-school-presents-28-days-28-films-series-documentaries-to-watch-this-black-history-month/"
|
USER | "forge"
|
HOME | "/home/forge"
|
HTTP_REFERER | "https://uat.tfs.staging.poundandgrain.ca/blog/toronto-film-school-presents-28-days-28-films-series-documentaries-to-watch-this-black-history-month"
|
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 | "57291"
|
REMOTE_ADDR | "3.15.237.229"
|
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 | 1736417908.6802
|
REQUEST_TIME | 1736417908
|
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"
|