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);
*/
$template = apply_filters( 'template_include', $template );
$is_stringy = is_string( $template ) || ( is_object( $template ) && method_exists( $template, '__toString' ) );
$template = $is_stringy ? realpath( (string) $template ) : null;
if (
is_string( $template ) &&
( str_ends_with( $template, '.php' ) || str_ends_with( $template, '.html' ) ) &&
is_file( $template ) &&
is_readable( $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] => 1980 [post_author] => 4 [post_date] => 2020-12-07 17:55:47 [post_date_gmt] => 2020-12-07 22:55:47 [post_content] => For individuals who are new to addiction recovery, choosing a safe and substance-free living environment is extremely important. Many individuals will want to return home after they complete medical detox and inpatient treatment. However, moving into a sober home immediately after treatment is often the most beneficial choice. Sober living homes were designed to help individuals slowly transition back into independent living and the community at large after they complete intensive inpatient treatment services. The period directly following inpatient care is often the most vulnerable. Men and women are more susceptible to relapse, and it is better if they reside in a safe place with other, like-minded individuals as they navigate early recovery. Most sober living homes operate somewhat like a co-op. Residents all contribute by participating in daily chores and paying rent on a weekly or monthly basis. Some sober homes are privately run while others are run by religious institutions or recovery-related businesses. While each home will operate differently depending on who is in charge, most sober homes follow the same basic outline. Residents are expected to abide by a strictly enforced set of rules and guidelines that were carefully developed to promote accountability and effectively help residents avoid relapse. However, sober homes are still more loosely structured than other residential facilities, seeing as they include a greater amount of personal freedom while allowing residents to gain employment and participate in additional outside obligations. <img class="alignleft size-full wp-image-1981" src="https://riverbendresidence.com/wp-content/uploads/2020/11/What-Does-a-Sober-Home-Look-Like.jpg" alt="What Does a Sober Home Look Like? " width="600" height="400" /> <h2>What Does a Recovery Home Look Like?</h2> Sober homes vary significantly depending on where they are located and their overall cost. Some sober living homes are rather extravagant, and more closely resemble luxury retreats than humble living environments. Some are less-than-satisfactory and could be considered “flop houses” - a derogatory term for an unsafe living environment that does not have the well-being of residents in mind. <h2>The In's and Out's of a Halfway House</h2> In most cases, however, sober living homes are well-decorated and comfortable homes that house between 6 and 10 residents at a time, depending on their size. Most of the bedrooms in the house are private or semi-private and come fully furnished, and residents also have access to a kitchen, communal spaces like a living room and a game room, and a spacious backyard. Most over living homes are located in safe residential communities, many are actually in gated communities to ensure the safety of their residents. When you move into a sober living home, you must request an in-person tour before you make any long-term commitments. When looking around the house for yourself, there is a short checklist to keep in mind. Some of the things to look for include: <ul> <li>A clean and well-kept living environment</li> <li>A clean kitchen that is fully equipped with everything you might need to prepare meals for yourself</li> <li>Private or semi-private bedrooms that are kept clean and tidy at all times</li> <li>A spacious and comfortable communal area</li> <li>A safe and private neighborhood</li> <li>Proximity to 12-step meeting houses and other recovery-related resources</li> </ul> <h2>Riverbend Residence - Communal Living</h2> At <a href="https://riverbendresidence.com/">Riverbend Residence</a>, we offer four beautifully appointed, gender-specific sober living houses in Sparta, New Jersey. We consider ourselves to be somewhere in between luxury, a home-style retreat facility, and a comfortable, communal living environment. Our main priority is ensuring that all of our residents are as comfortable as possible at all times as they work to navigate early recovery and ultimately transition back into fully independent living. Our New Jersey sober living homes offer residents plenty of living space, a clean and tidy living environment, and access to all of the recovery-related resources they need to effectively avoid relapse. For more information or to take an in-person tour of one of our four sober living residences, please feel free to reach out to us today. [post_title] => What Does a Sober Home Look Like? [post_excerpt] => [post_status] => publish [comment_status] => closed [ping_status] => open [post_password] => [post_name] => what-does-sober-home-look-like [to_ping] => [pinged] => [post_modified] => 2020-12-07 17:55:47 [post_modified_gmt] => 2020-12-07 22:55:47 [post_content_filtered] => [post_parent] => 0 [guid] => https://riverbendresidence.com/?p=1980 [menu_order] => 0 [post_type] => post [post_mime_type] => [comment_count] => 0 [filter] => raw [status] => publish [id] => 1980 [slug] => what-does-sober-home-look-like [custom] => Array ( [_edit_lock] => 1607381676:3 [_edit_last] => 3 [_thumbnail_id] => 1981 [_wp_page_template] => default [_yoast_wpseo_focuskw] => What Does a Sober Home Look Like? [_yoast_wpseo_metadesc] => Most sober living homes operate somewhat like a co-op. Residents all contribute by participating in daily chores and paying rent regularly. [_yoast_wpseo_linkdex] => 67 [_yoast_wpseo_content_score] => 30 [_yoast_wpseo_primary_category] => 10 [_yoast_wpseo_title] => What Does a Sober Home Look Like? | Riverbend Residence ) ) |
| 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-sober-home-look-like/ |
| USER | fpm200067 |
| HOME | /home/fpm200067 |
| WPENGINE_ACCOUNT | riverbendresid |
| WPENGINE_PHPSESSIONS | on |
| WPENGINE_DB_SESSIONS | off |
| HTTP_CF_IPCOUNTRY | US |
| HTTP_CDN_LOOP | cloudflare; loops=1 |
| HTTP_ACCEPT_ENCODING | gzip |
| HTTP_X_REAL_IP_REMOTE | 104.23.243.192 |
| 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; |
| HTTPS | on |
| HTTP_X_WORDPRESS_TYPE | DEFAULT |
| HTTP_X_WPE_LOCAL_SSL | 1 |
| HTTP_CF_CONNECTING_IP | 216.73.217.61, 216.73.217.61, 216.73.217.61 |
| HTTP_X_UA_ORIGINAL | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
| SERVER_NAME | riverbendresidence.com |
| SCRIPT_FILENAME | /nas/content/live/riverbendresid/index.php |
| CONTENT_TYPE | |
| QUERY_STRING | |
| HTTP_CF_RAY | 9f0bbdeacdba4bc2-CMH |
| HTTP_X_WPE_SSL | 1 |
| PATH_TRANSLATED | /nas/content/live/riverbendresid/index.php |
| REQUEST_METHOD | GET |
| REDIRECT_STATUS | 200 |
| REMOTE_PORT | |
| HTTP_X_WPE_EDGE | AN |
| PATH_INFO | |
| CONTENT_LENGTH | 0 |
| SERVER_PORT | 80 |
| HTTP_X_FORWARDED_PROTO | https |
| HTTP_X_FORWARDED_HOST | riverbendresidence.com |
| SERVER_PROTOCOL | HTTP/1.1 |
| HTTP_HOST | riverbendresidence.com |
| HTTP_RAWHOST | riverbendresidence.com |
| PHP_VALUE | upload_max_filesize=50M; post_max_size=100M; |
| REMOTE_ADDR | 216.73.217.61 |
| DOCUMENT_ROOT | /nas/content/live/riverbendresid |
| DOCUMENT_URI | /index.php |
| IS_WPE | 1 |
| HTTP_X_WPENGINE_PHP_VERSION | 7.4 |
| HTTP_X_CACHE_GROUP | normal |
| HTTP_WPE_READONLY | on |
| HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
| HTTP_CF_VISITOR | {\"scheme\":\"https\"} |
| HTTP_ACCEPT | */* |
| SYSLOG_IDENT | phperr-riverbendresid |
| REQUEST_SCHEME | http |
| HTTP_X_IS_BOT | 1 |
| HTTP_X_WPE_REQUEST_ID | 284ac6a9d57cf366e3aabc19060cfbaa |
| HTTP_VIA | 1.1 pod-404710 (Varnish/8.0) |
| SCRIPT_NAME | /index.php |
| SERVER_ADDR | 127.0.0.1 |
| GATEWAY_INTERFACE | CGI/1.1 |
| HTTP_X_WPE_INSTALL_NAME | riverbendresid |
| FCGI_ROLE | RESPONDER |
| PHP_SELF | /index.php |
| REQUEST_TIME_FLOAT | 1776935497.46 |
| REQUEST_TIME | 1776935497 |
| Key | Value |
| USER | fpm200067 |
| HOME | /home/fpm200067 |
| WPENGINE_ACCOUNT | riverbendresid |
| WPENGINE_PHPSESSIONS | on |
| WPENGINE_DB_SESSIONS | off |
| HTTP_CF_IPCOUNTRY | US |
| HTTP_CDN_LOOP | cloudflare; loops=1 |
| HTTP_ACCEPT_ENCODING | gzip |
| HTTP_X_REAL_IP_REMOTE | 104.23.243.192 |
| 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; |
| HTTPS | on |
| HTTP_X_WORDPRESS_TYPE | DEFAULT |
| HTTP_X_WPE_LOCAL_SSL | 1 |
| HTTP_CF_CONNECTING_IP | 216.73.217.61, 216.73.217.61, 216.73.217.61 |
| HTTP_X_UA_ORIGINAL | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
| SERVER_NAME | riverbendresidence.com |
| SCRIPT_FILENAME | /nas/content/live/riverbendresid/index.php |
| CONTENT_TYPE | |
| QUERY_STRING | |
| HTTP_CF_RAY | 9f0bbdeacdba4bc2-CMH |
| HTTP_X_WPE_SSL | 1 |
| PATH_TRANSLATED | /nas/content/live/riverbendresid/index.php |
| REQUEST_METHOD | GET |
| REDIRECT_STATUS | 200 |
| REMOTE_PORT | |
| HTTP_X_WPE_EDGE | AN |
| PATH_INFO | |
| CONTENT_LENGTH | 0 |
| SERVER_PORT | 80 |
| HTTP_X_FORWARDED_PROTO | https |
| HTTP_X_FORWARDED_HOST | riverbendresidence.com |
| SERVER_PROTOCOL | HTTP/1.1 |
| REQUEST_URI | /what-does-sober-home-look-like/ |
| HTTP_HOST | riverbendresidence.com |
| HTTP_RAWHOST | riverbendresidence.com |
| PHP_VALUE | upload_max_filesize=50M; post_max_size=100M; |
| REMOTE_ADDR | 216.73.217.61 |
| DOCUMENT_ROOT | /nas/content/live/riverbendresid |
| DOCUMENT_URI | /index.php |
| IS_WPE | 1 |
| SERVER_SOFTWARE | nginx |
| HTTP_X_WPENGINE_PHP_VERSION | 7.4 |
| HTTP_X_CACHE_GROUP | normal |
| HTTP_WPE_READONLY | on |
| HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
| HTTP_CF_VISITOR | {"scheme":"https"} |
| HTTP_ACCEPT | */* |
| SYSLOG_IDENT | phperr-riverbendresid |
| REQUEST_SCHEME | http |
| HTTP_X_IS_BOT | 1 |
| HTTP_X_WPE_REQUEST_ID | 284ac6a9d57cf366e3aabc19060cfbaa |
| HTTP_VIA | 1.1 pod-404710 (Varnish/8.0) |
| SCRIPT_NAME | /index.php |
| SERVER_ADDR | 127.0.0.1 |
| GATEWAY_INTERFACE | CGI/1.1 |
| HTTP_X_WPE_INSTALL_NAME | riverbendresid |
| FCGI_ROLE | RESPONDER |
| PHP_SELF | /index.php |
| REQUEST_TIME_FLOAT | 1776935497.46 |
| REQUEST_TIME | 1776935497 |