throw new \RuntimeException(sprintf('Unable to write in the cache directory (%s).', $dir));
}
$tmpFile = tempnam($dir, basename($key));
if (false !== @file_put_contents($tmpFile, $content) && @rename($tmpFile, $key)) {
@chmod($key, 0666 & ~umask());
if (self::FORCE_BYTECODE_INVALIDATION == ($this->options & self::FORCE_BYTECODE_INVALIDATION)) {
// Compile cached file into bytecode cache
if (\function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), FILTER_VALIDATE_BOOLEAN)) {
@opcache_invalidate($key, true);
} elseif (\function_exists('apc_compile_file')) {
apc_compile_file($key);
}
}
return;
}
throw new \RuntimeException(sprintf('Failed to write cache file "%s".', $key));
}
public function getTimestamp($key)
{
if (!file_exists($key)) {
return 0;
}
return (int) @filemtime($key);
}
}
class_alias('Twig\Cache\FilesystemCache', 'Twig_Cache_Filesystem');
if (!$this->isAutoReload() || $this->isTemplateFresh($name, $this->cache->getTimestamp($key))) {
$this->cache->load($key);
}
$source = null;
if (!class_exists($cls, false)) {
$loader = $this->getLoader();
if (!$loader instanceof SourceContextLoaderInterface) {
$source = new Source($loader->getSource($name), $name);
} else {
$source = $loader->getSourceContext($name);
}
$content = $this->compileSource($source);
if ($this->bcWriteCacheFile) {
$this->writeCacheFile($key, $content);
} else {
$this->cache->write($key, $content);
$this->cache->load($key);
}
if (!class_exists($mainCls, false)) {
/* Last line of defense if either $this->bcWriteCacheFile was used,
* $this->cache is implemented as a no-op or we have a race condition
* where the cache was cleared between the above calls to write to and load from
* the cache.
*/
eval('?>'.$content);
}
}
if (!class_exists($cls, false)) {
throw new RuntimeError(sprintf('Failed to load Twig template "%s", index "%s": cache might be corrupted.', $name, $index), -1, $source);
}
}
if (!$this->runtimeInitialized) {
$this->initRuntime();
/**
* Loads a template internal representation.
*
* This method is for internal use only and should never be called
* directly.
*
* @param string $name The template name
* @param int $index The index if it is an embedded template
*
* @return \Twig_TemplateInterface A template instance representing the given template name
*
* @throws LoaderError When the template cannot be found
* @throws RuntimeError When a previously generated cache is corrupted
* @throws SyntaxError When an error occurred during compilation
*
* @internal
*/
public function loadTemplate($name, $index = null)
{
return $this->loadClass($this->getTemplateClass($name), $name, $index);
}
/**
* @internal
*/
public function loadClass($cls, $name, $index = null)
{
$mainCls = $cls;
if (null !== $index) {
$cls .= '___'.$index;
}
if (isset($this->loadedTemplates[$cls])) {
return $this->loadedTemplates[$cls];
}
if (!class_exists($cls, false)) {
if ($this->bcGetCacheFilename) {
$key = $this->getCacheFilename($name);
} else {
*
* @param string|TemplateWrapper|\Twig\Template $name The template name
*
* @throws LoaderError When the template cannot be found
* @throws RuntimeError When a previously generated cache is corrupted
* @throws SyntaxError When an error occurred during compilation
*
* @return TemplateWrapper
*/
public function load($name)
{
if ($name instanceof TemplateWrapper) {
return $name;
}
if ($name instanceof Template) {
return new TemplateWrapper($this, $name);
}
return new TemplateWrapper($this, $this->loadTemplate($name));
}
/**
* Loads a template internal representation.
*
* This method is for internal use only and should never be called
* directly.
*
* @param string $name The template name
* @param int $index The index if it is an embedded template
*
* @return \Twig_TemplateInterface A template instance representing the given template name
*
* @throws LoaderError When the template cannot be found
* @throws RuntimeError When a previously generated cache is corrupted
* @throws SyntaxError When an error occurred during compilation
*
* @internal
*/
public function loadTemplate($name, $index = null)
}
$key = null;
$output = false;
if ( false !== $expires ) {
ksort($data);
$key = md5($file.json_encode($data));
$output = $this->get_cache($key, self::CACHEGROUP, $cache_mode);
}
if ( false === $output || null === $output ) {
$twig = $this->get_twig();
if ( strlen($file) ) {
$loader = $this->get_loader();
$result = $loader->getCacheKey($file);
do_action('timber_loader_render_file', $result);
}
$data = apply_filters('timber_loader_render_data', $data);
$data = apply_filters('timber/loader/render_data', $data, $file);
$template = $twig->load($file);
$output = $template->render($data);
}
if ( false !== $output && false !== $expires && null !== $key ) {
$this->delete_cache();
$this->set_cache($key, $output, self::CACHEGROUP, $expires, $cache_mode);
}
$output = apply_filters('timber_output', $output);
return apply_filters('timber/output', $output, $data, $file);
}
protected function delete_cache() {
Cleaner::delete_transients();
}
/**
* Get first existing template.
*
* @param array|string $templates Name(s) of the Twig template(s) to choose from.
* @return string|bool Name of chosen template, otherwise false.
if ( $via_render ) {
$file = apply_filters('timber_render_file', $file);
} else {
$file = apply_filters('timber_compile_file', $file);
}
$output = false;
if ($file !== false) {
if ( is_null($data) ) {
$data = array();
}
if ( $via_render ) {
$data = apply_filters('timber_render_data', $data);
} else {
$data = apply_filters('timber_compile_data', $data);
}
$output = $loader->render($file, $data, $expires, $cache_mode);
} else {
if ( is_array($filenames) ) {
$filenames = implode(", ", $filenames);
}
Helper::error_log( 'Error loading your template files: '.$filenames.'. Make sure one of these files exists.' );
}
do_action('timber_compile_done');
return $output;
}
/**
* Compile a string.
*
* @api
* @example
* ```php
* $data = array(
* 'username' => 'Jane Doe',
* );
$twig = $dummy_loader->get_twig();
$template = $twig->createTemplate($string);
return $template->render($data);
}
/**
* Fetch function.
*
* @api
* @param array|string $filenames Name of the Twig file to render. If this is an array of files, Timber will
* render the first file that exists.
* @param array $data Optional. An array of data to use in Twig template.
* @param bool|int $expires Optional. In seconds. Use false to disable cache altogether. When passed an
* array, the first value is used for non-logged in visitors, the second for users.
* Default false.
* @param string $cache_mode Optional. Any of the cache mode constants defined in TimberLoader.
* @return bool|string The returned output.
*/
public static function fetch( $filenames, $data = array(), $expires = false, $cache_mode = Loader::CACHE_USE_DEFAULT ) {
$output = self::compile($filenames, $data, $expires, $cache_mode, true);
$output = apply_filters('timber_compile_result', $output);
return $output;
}
/**
* Render function.
*
* Passes data to a Twig file and echoes the output.
*
* @api
* @example
* ```php
* $context = Timber::context();
*
* Timber::render( 'index.twig', $context );
* ```
* @param array|string $filenames Name of the Twig file to render. If this is an array of files, Timber will
* render the first file that exists.
* @param array $data Optional. An array of data to use in Twig template.
* @param bool|int $expires Optional. In seconds. Use false to disable cache altogether. When passed an
* Passes data to a Twig file and echoes the output.
*
* @api
* @example
* ```php
* $context = Timber::context();
*
* Timber::render( 'index.twig', $context );
* ```
* @param array|string $filenames Name of the Twig file to render. If this is an array of files, Timber will
* render the first file that exists.
* @param array $data Optional. An array of data to use in Twig template.
* @param bool|int $expires Optional. In seconds. Use false to disable cache altogether. When passed an
* array, the first value is used for non-logged in visitors, the second for users.
* Default false.
* @param string $cache_mode Optional. Any of the cache mode constants defined in TimberLoader.
* @return bool|string The echoed output.
*/
public static function render( $filenames, $data = array(), $expires = false, $cache_mode = Loader::CACHE_USE_DEFAULT ) {
$output = self::fetch($filenames, $data, $expires, $cache_mode);
echo $output;
return $output;
}
/**
* Render a string with Twig variables.
*
* @api
* @example
* ```php
* $data = array(
* 'username' => 'Jane Doe',
* );
*
* Timber::render_string( 'Hi {{ username }}, I’m a string with a custom Twig variable', $data );
* ```
* @param string $string A string with Twig variables.
* @param array $data An array of data to use in Twig template.
* @return bool|string
*/
use Timber\Timber;
/*
* The Template for displaying all single posts
*/
$gantry = Gantry\Framework\Gantry::instance();
$theme = $gantry['theme'];
// We need to render contents of <head> before plugin content gets added.
$context = Timber::get_context();
$context['page_head'] = $theme->render('partials/page_head.html.twig', $context);
$post = Timber::query_post();
$context['post'] = $post;
$context['wp_title'] .= ' - ' . $post->title();
Timber::render(['single-' . $post->ID . '.html.twig', 'single-' . $post->post_type . '.html.twig', 'single.html.twig'], $context);
/**
* 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 ) {
/**
* Fires immediately before including the template.
*
* @since 6.9.0
*
* @param string $template The path of the template about to be included.
*/
do_action( 'wp_before_include_template', $template );
include $template;
} elseif ( current_user_can( 'switch_themes' ) ) {
$theme = wp_get_theme();
if ( $theme->errors() ) {
wp_die( $theme->errors() );
}
}
return;
}
<?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';
}
<?php /** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * * @var bool */ define( 'WP_USE_THEMES', true ); /** Loads the WordPress Environment and Template */ require __DIR__ . '/wp-blog-header.php';
| Key | Value |
| TCM_PostShown | WP_Post Object ( [ID] => 1962 [post_author] => 4 [post_date] => 2020-12-01 15:50:48 [post_date_gmt] => 2020-12-01 20:50:48 [post_content] => A halfway house is a sober living environment, one specially designed for men or women who recently completed an addiction treatment program and are looking for a safe and structured environment in which to continue along in their recovery journeys. Because of their portrayal in mainstream media - television shows, movies, books, and the like - many mistakenly believe that the term “halfway house” refers to a dingy living situation for recently released convicts and other shady characters. On the contrary, halfway houses are generally pristine and safe and inhabited by men or women who are dedicated to continuing in sobriety. <h2>The Reality of Life in a Sober Home</h2> Still, you might be wondering exactly what living in a halfway house looks like on a day-to-day basis. We have broken down a “day in the life” of a typical Riverbend Residence resident, allowing you unique insight and a more detailed and comprehensive look. If you have any additional questions, please feel free to reach out to us at any point in time - we are happy to fill you in however we possibly can. <img class="alignleft size-full wp-image-1963" src="https://riverbendresidence.com/wp-content/uploads/2020/11/What-Does-Living-in-a-Halfway-House-Look-Like.jpg" alt="What Does Living in a Halfway House Look Like? " width="600" height="400" /> <h2>What Does Living in a Halfway House Look Like? A Day in the Life</h2> We've put together an example schedule of a day in the life of a halfway house resident. This is not universal and varies per sober home. Also, if you are employed or going to school, then your schedule is flexible and accommodating for these positive steps you are taking in your sober life. <strong>7AM - 8AM:</strong> You wake up and participate in your morning routine, regardless of what this might look like. You might lay in bed for 20 minutes and read an excerpt from a Daily Meditation book, or shower and make yourself breakfast, or drive to your favorite coffee shop for a latte and return to the residence before the morning group meeting takes place. <strong>8AM:</strong> The morning group meeting begins, and all residents are required to attend. Everyone sits in a circle and reads an excerpt from a Daily Meditation book before commenting on the excerpt, or about any other recovery-related challenges they are facing (or recovery-related successes they have experienced). This is a time to check-in and offers peer support. <strong>9AM daily chores</strong>: All residents are required to participate in daily chores, which alternate every week. These chores could include things like sweeping and mopping the kitchen floor, unloading, loading, and running the dishwasher or sweeping the outside patio. The goal is to instill our residents with a sense of pride that goes hand-in-hand with a clean living space. <strong>10AM:</strong> The resident heads to his or her full-time job, where he or she will remain until the workday comes to a close at 5 pm. <strong>5:30PM:</strong> The resident attends a 12 step meeting after work, where he or she gets a sheet signed to prove attendance. <strong>7PM:</strong> After the meeting, the resident grabs a bite to eat with friends and returns home before his or her 10 pm curfew. As you can see, halfway house living is pretty low-key - regular living is interwoven with recovery-related activities and a little bit of added structure and support. Halfway houses offer residents a wide range of benefits, including built-in peer support, the invaluable insight of support staff members, increased levels of accountability, and a focus on the continued development of essential life and relapse prevention skills. <h2>Riverbend Residence - Gender-Specific Sober Living</h2> <a href="https://riverbendresidence.com/">Riverbend Residence</a> offers men and women in Sussex County, New Jersey, and all surrounding areas the opportunity to continue healing in a safe and supportive environment, surrounded by like-minded individuals. If you have recently completed a higher level of clinical care and you are looking to continue along the path to long-term sobriety, give Riverbend Residence a call. We are more than happy to set up a tour of our facility and answer any additional questions you might have, either about what it looks like to live in a halfway house or about sober living in general. [post_title] => What Does Living in a Halfway House Look Like? [post_excerpt] => [post_status] => publish [comment_status] => closed [ping_status] => open [post_password] => [post_name] => what-does-living-in-halfway-house-look-like [to_ping] => [pinged] => [post_modified] => 2020-12-01 15:52:48 [post_modified_gmt] => 2020-12-01 20:52:48 [post_content_filtered] => [post_parent] => 0 [guid] => https://riverbendresidence.com/?p=1962 [menu_order] => 0 [post_type] => post [post_mime_type] => [comment_count] => 0 [filter] => raw [status] => publish [id] => 1962 [slug] => what-does-living-in-halfway-house-look-like [custom] => Array ( [_edit_lock] => 1606855971:3 [_edit_last] => 3 [_thumbnail_id] => 1963 [_wp_page_template] => default [_yoast_wpseo_focuskw] => Living in a Halfway House Look Like [_yoast_wpseo_metadesc] => Halfway house living is pretty low-key - regular living is interwoven with recovery activities plus added structure and support. [_yoast_wpseo_linkdex] => 67 [_yoast_wpseo_content_score] => 30 [_yoast_wpseo_primary_category] => 10 [_yoast_wpseo_title] => What Does Living in a Halfway House Look Like? | Riverbend Residence [_wp_old_date] => 2020-11-25 ) ) |
| TCM_SnippetsWrittenIds | Array ( ) |
| TCM_SnippetsWrittenMd5 | Array ( ) |
| TCM_Cache_Query_2_ | Array ( [0] => Array ( [id] => post [text] => Post (post) [name] => Post (post) ) [1] => Array ( [id] => page [text] => Page (page) [name] => Page (page) ) ) |
| Key | Value |
| SERVER_SOFTWARE | nginx |
| REQUEST_URI | /what-does-living-in-halfway-house-look-like/ |
| USER | fpm200067 |
| HOME | /home/fpm200067 |
| WPENGINE_ACCOUNT | riverbendresid |
| WPENGINE_PHPSESSIONS | on |
| WPENGINE_DB_SESSIONS | off |
| SCRIPT_NAME | /index.php |
| SCRIPT_FILENAME | /nas/content/live/riverbendresid/index.php |
| HTTP_ACCEPT | */* |
| HTTP_X_IS_BOT | 1 |
| HTTP_RAWHOST | riverbendresidence.com |
| PATH_TRANSLATED | /nas/content/live/riverbendresid/index.php |
| HTTP_X_WPE_SSL | 1 |
| HTTP_X_WPE_INSTALL_NAME | riverbendresid |
| HTTP_VIA | 1.1 pod-404710 (Varnish/trunk) |
| HTTP_ACCEPT_ENCODING | gzip |
| HTTP_CDN_LOOP | cloudflare; loops=1 |
| HTTP_X_FORWARDED_PROTO | https |
| HTTP_REFERER | https://riverbendresidence.com/what-does-living-in-halfway-house-look-like |
| HTTP_CF_RAY | 9db75910bb674afc-CMH |
| HTTP_X_WPE_REQUEST_ID | 7c03ecab247abc6147e31bf6d7dd912a |
| HTTP_X_WPE_EDGE | AN |
| HTTP_CF_CONNECTING_IP | 216.73.216.59, 216.73.216.59, 216.73.216.59 |
| HTTP_X_WPENGINE_PHP_VERSION | 7.4 |
| PATH_INFO | |
| REQUEST_METHOD | GET |
| SERVER_PORT | 80 |
| HTTP_X_CACHE_GROUP | normal |
| QUERY_STRING | |
| REDIRECT_STATUS | 200 |
| HTTPS | on |
| SERVER_ADDR | 127.0.0.1 |
| HTTP_HOST | riverbendresidence.com |
| PHP_VALUE | post_max_size=100M; upload_max_filesize=50M; |
| HTTP_X_WPE_LOCAL_SSL | 1 |
| HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
| HTTP_CF_VISITOR | {\"scheme\":\"https\"} |
| SERVER_NAME | riverbendresidence.com |
| SERVER_PROTOCOL | HTTP/1.1 |
| DOCUMENT_ROOT | /nas/content/live/riverbendresid |
| CONTENT_TYPE | |
| HTTP_X_FORWARDED_HOST | riverbendresidence.com |
| HTTP_X_UA_ORIGINAL | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
| HTTP_WPE_READONLY | on |
| SYSLOG_IDENT | phperr-riverbendresid |
| PHP_ADMIN_VALUE | newrelic.appname=riverbendresid; newrelic.browser_monitoring.auto_instrument=off; newrelic.enabled=off; newrelic.license=; sendmail_path=/bin/sendmail-wrapper.sh 5b7ea12d5efa8de29e9e6505a5de420da8ba2ef3 /usr/sbin/sendmail -t -i; syslog.ident=phperr-riverbendresid; |
| CONTENT_LENGTH | 0 |
| REMOTE_PORT | |
| GATEWAY_INTERFACE | CGI/1.1 |
| DOCUMENT_URI | /index.php |
| REQUEST_SCHEME | http |
| IS_WPE | 1 |
| HTTP_X_REAL_IP_REMOTE | 104.23.197.124 |
| HTTP_X_WORDPRESS_TYPE | DEFAULT |
| HTTP_CF_IPCOUNTRY | US |
| REMOTE_ADDR | 216.73.216.59 |
| FCGI_ROLE | RESPONDER |
| PHP_SELF | /index.php |
| REQUEST_TIME_FLOAT | 1773366208.16 |
| REQUEST_TIME | 1773366208 |
| Key | Value |
| USER | fpm200067 |
| HOME | /home/fpm200067 |
| WPENGINE_ACCOUNT | riverbendresid |
| WPENGINE_PHPSESSIONS | on |
| WPENGINE_DB_SESSIONS | off |
| SCRIPT_NAME | /index.php |
| SCRIPT_FILENAME | /nas/content/live/riverbendresid/index.php |
| HTTP_ACCEPT | */* |
| HTTP_X_IS_BOT | 1 |
| HTTP_RAWHOST | riverbendresidence.com |
| PATH_TRANSLATED | /nas/content/live/riverbendresid/index.php |
| HTTP_X_WPE_SSL | 1 |
| HTTP_X_WPE_INSTALL_NAME | riverbendresid |
| HTTP_VIA | 1.1 pod-404710 (Varnish/trunk) |
| HTTP_ACCEPT_ENCODING | gzip |
| HTTP_CDN_LOOP | cloudflare; loops=1 |
| HTTP_X_FORWARDED_PROTO | https |
| HTTP_REFERER | https://riverbendresidence.com/what-does-living-in-halfway-house-look-like |
| HTTP_CF_RAY | 9db75910bb674afc-CMH |
| HTTP_X_WPE_REQUEST_ID | 7c03ecab247abc6147e31bf6d7dd912a |
| HTTP_X_WPE_EDGE | AN |
| HTTP_CF_CONNECTING_IP | 216.73.216.59, 216.73.216.59, 216.73.216.59 |
| HTTP_X_WPENGINE_PHP_VERSION | 7.4 |
| PATH_INFO | |
| REQUEST_METHOD | GET |
| SERVER_PORT | 80 |
| HTTP_X_CACHE_GROUP | normal |
| REQUEST_URI | /what-does-living-in-halfway-house-look-like/ |
| QUERY_STRING | |
| REDIRECT_STATUS | 200 |
| HTTPS | on |
| SERVER_ADDR | 127.0.0.1 |
| HTTP_HOST | riverbendresidence.com |
| PHP_VALUE | post_max_size=100M; upload_max_filesize=50M; |
| HTTP_X_WPE_LOCAL_SSL | 1 |
| HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
| HTTP_CF_VISITOR | {"scheme":"https"} |
| SERVER_NAME | riverbendresidence.com |
| SERVER_PROTOCOL | HTTP/1.1 |
| DOCUMENT_ROOT | /nas/content/live/riverbendresid |
| CONTENT_TYPE | |
| SERVER_SOFTWARE | nginx |
| HTTP_X_FORWARDED_HOST | riverbendresidence.com |
| HTTP_X_UA_ORIGINAL | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
| HTTP_WPE_READONLY | on |
| SYSLOG_IDENT | phperr-riverbendresid |
| PHP_ADMIN_VALUE | newrelic.appname=riverbendresid; newrelic.browser_monitoring.auto_instrument=off; newrelic.enabled=off; newrelic.license=; sendmail_path=/bin/sendmail-wrapper.sh 5b7ea12d5efa8de29e9e6505a5de420da8ba2ef3 /usr/sbin/sendmail -t -i; syslog.ident=phperr-riverbendresid; |
| CONTENT_LENGTH | 0 |
| REMOTE_PORT | |
| GATEWAY_INTERFACE | CGI/1.1 |
| DOCUMENT_URI | /index.php |
| REQUEST_SCHEME | http |
| IS_WPE | 1 |
| HTTP_X_REAL_IP_REMOTE | 104.23.197.124 |
| HTTP_X_WORDPRESS_TYPE | DEFAULT |
| HTTP_CF_IPCOUNTRY | US |
| REMOTE_ADDR | 216.73.216.59 |
| FCGI_ROLE | RESPONDER |
| PHP_SELF | /index.php |
| REQUEST_TIME_FLOAT | 1773366208.16 |
| REQUEST_TIME | 1773366208 |