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);
}
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;
}
<?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] => 2134 [post_author] => 4 [post_date] => 2021-01-12 11:21:01 [post_date_gmt] => 2021-01-12 16:21:01 [post_content] => A sober home, also known as a sober living house or a halfway house, is a sober living environment specifically designed to help men and women who are new to recovery maintain sobriety while reintegrating into society. Sober homes offer highly structured living conditions and hold residence accountable by requiring them to adhere to a strict set of rules and guidelines. In most instances, an individual will live in a sober home for between 6 and 9 months - the length of the stay can be shorter or longer depending on the unique needs of the individual resident. Entering into a sober home immediately after inpatient treatment often means the difference between staying sober long-term and relapsing - it is highly encouraged and is generally a part of every thorough aftercare program. Sober homes like Riverbend Residence are highly structured and gender-specific and require residents to participate in ongoing therapy and a 12-step program of their choosing (usually Alcoholics Anonymous or Narcotics Anonymous). Their main goal is to help make the transition from residential rehab to fully independent living as easy as possible. <img class="alignleft size-full wp-image-2135" src="https://riverbendresidence.com/wp-content/uploads/2021/01/What-is-a-Three-Quarter-Sober-Home.jpg" alt="What is a Three-Quarter Sober Home? " width="600" height="400" /> <h2>What is a Three-Quarter Sober Home?</h2> While there are several different types of sober homes, traditional sober living houses and three-quarter houses are the most common. A three-quarter house allows residents a greater amount of personal freedom. They have later curfews on the weekdays and the weekends, they do not need to be enrolled in an intensive outpatient or outpatient program, and they are generally more lenient when it comes to following house rules (like participating in daily chores). There are several similarities between a three-quarter sober home and a traditional sober home. Both residential options encourage daily participation in 12-step meetings, and most three-quarter homes will require residents to turn in a weekly meeting sheet that is signed daily. Three-quarter homes encourage residents to find and maintain a job, go back to school full or part-time, or volunteer regularly. If you are looking for the accountability and structure provided by a sober living home with more freedom and flexibility, a three-quarter home is likely an ideal option. Learn more about our Riverbend Residence sober homes and if they are an appropriate option for yourself or a loved one. <h2>Different Types of Sober Recovery Homes</h2> When you are looking for the right sober home for you, there are several different factors to keep in mind. There are several different types of sober homes, each of which can be beneficial to a unique set of needs and requirements. Different types of sober homes include: <ul> <li>Sober living homes that put a strong emphasis on the 12 steps of Alcoholics Anonymous. These homes will require daily meeting attendance, require participation in step work, and ask that all residents begin sponsoring other people as soon as they finish the steps.</li> <li>Vocational sober living homes. These homes emphasized helping residents find a job or career that suits their unique interests and needs.</li> <li>Demographic-specific sober homes. Some sober homes are gender-specific, age-specific, or geared specifically towards working professionals, parents, or young adults who are still in school.</li> <li>Three-quarter sober homes. This type of sober home allows for a greater level of personal freedom and has fewer rules and regulations. This is generally the last step before a complete reintegration into society and fully independent living.</li> </ul> <h2>Riverbend Residence - Gender-Specific Sober Living</h2> While <a href="https://riverbendresidence.com/">Riverbend Residence</a> offers traditional sober living housing for men and women in the New Jersey area, we also offer a less structured level of living for those who have longer and sobriety or who can keep themselves accountable without additional rules in place. However, we expect all of our residents to be actively engaged in a 12-step program at all times and to be consistently prioritizing their sobriety as they navigate day-to-day life. If you would like to learn more about our reputable recovery residence or if you would like to learn more about three-quarter sober living options, reach out to us today. [post_title] => What is a Three-Quarter Sober Home? [post_excerpt] => [post_status] => publish [comment_status] => closed [ping_status] => open [post_password] => [post_name] => what-is-three-quarter-sober-home [to_ping] => [pinged] => [post_modified] => 2021-01-12 11:21:01 [post_modified_gmt] => 2021-01-12 16:21:01 [post_content_filtered] => [post_parent] => 0 [guid] => https://riverbendresidence.com/?p=2134 [menu_order] => 0 [post_type] => post [post_mime_type] => [comment_count] => 0 [filter] => raw [status] => publish [id] => 2134 [slug] => what-is-three-quarter-sober-home [custom] => Array ( [_edit_lock] => 1610468472:3 [_edit_last] => 3 [_thumbnail_id] => 2135 [_wp_page_template] => default [_yoast_wpseo_focuskw] => Three-Quarter Sober Home [_yoast_wpseo_metadesc] => While there are several different types of sober homes, traditional sober living houses and three-quarter houses are the most common. [_yoast_wpseo_linkdex] => 71 [_yoast_wpseo_content_score] => 30 [_yoast_wpseo_title] => What is a Three-Quarter Sober Home? | Riverbend Residence [_yoast_wpseo_estimated-reading-time-minutes] => 4 [_wp_old_date] => 2021-01-04 ) ) |
| 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-is-three-quarter-sober-home/ |
| USER | fpm200067 |
| HOME | /home/fpm200067 |
| WPENGINE_ACCOUNT | riverbendresid |
| WPENGINE_PHPSESSIONS | on |
| WPENGINE_DB_SESSIONS | off |
| HTTP_VIA | 1.1 pod-404710 (Varnish/7.7) |
| HTTP_X_IS_BOT | 1 |
| PATH_TRANSLATED | /nas/content/live/riverbendresid/index.php |
| PATH_INFO | |
| SCRIPT_FILENAME | /nas/content/live/riverbendresid/index.php |
| HTTP_X_CACHE_GROUP | normal |
| HTTP_ACCEPT_ENCODING | gzip |
| SERVER_PROTOCOL | HTTP/1.1 |
| DOCUMENT_URI | /index.php |
| SERVER_PORT | 80 |
| GATEWAY_INTERFACE | CGI/1.1 |
| HTTP_ACCEPT_LANGUAGE | en-US,en;q=0.5 |
| HTTP_X_FORWARDED_PROTO | https |
| HTTP_CDN_LOOP | cloudflare; loops=1 |
| HTTP_USER_AGENT | CCBot/2.0 (https://commoncrawl.org/faq/) |
| CONTENT_LENGTH | 0 |
| REQUEST_METHOD | GET |
| REDIRECT_STATUS | 200 |
| HTTP_X_WPE_EDGE | AN |
| HTTP_X_WPE_LOCAL_SSL | 1 |
| REMOTE_ADDR | 18.97.9.175 |
| IS_WPE | 1 |
| HTTP_HOST | riverbendresidence.com |
| HTTP_RAWHOST | riverbendresidence.com |
| HTTP_X_WPE_REQUEST_ID | 74d4314ffa440a786ed8e93fd8896b29 |
| CONTENT_TYPE | |
| HTTP_X_WPE_SSL | 1 |
| HTTP_X_WPE_INSTALL_NAME | riverbendresid |
| HTTP_X_WORDPRESS_TYPE | DEFAULT |
| HTTP_X_UA_ORIGINAL | CCBot/2.0 (https://commoncrawl.org/faq/) |
| HTTP_ACCEPT | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
| HTTP_X_FORWARDED_HOST | riverbendresidence.com |
| HTTP_CF_RAY | 9cb24abc7a291e2d-IAD |
| HTTP_WPE_READONLY | on |
| SYSLOG_IDENT | phperr-riverbendresid |
| PHP_VALUE | post_max_size=100M; upload_max_filesize=50M; |
| SERVER_NAME | riverbendresidence.com |
| DOCUMENT_ROOT | /nas/content/live/riverbendresid |
| SCRIPT_NAME | /index.php |
| HTTPS | on |
| SERVER_ADDR | 127.0.0.1 |
| REMOTE_PORT | |
| HTTP_CF_IPCOUNTRY | US |
| HTTP_X_REAL_IP_REMOTE | 104.23.209.29 |
| HTTP_CF_CONNECTING_IP | 18.97.9.175, 18.97.9.175, 18.97.9.175 |
| HTTP_X_WPENGINE_PHP_VERSION | 7.4 |
| HTTP_CF_VISITOR | {\"scheme\":\"https\"} |
| PHP_ADMIN_VALUE | syslog.ident=phperr-riverbendresid; 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; |
| QUERY_STRING | |
| REQUEST_SCHEME | http |
| FCGI_ROLE | RESPONDER |
| PHP_SELF | /index.php |
| REQUEST_TIME_FLOAT | 1770628837.88 |
| REQUEST_TIME | 1770628837 |
| Key | Value |
| USER | fpm200067 |
| HOME | /home/fpm200067 |
| WPENGINE_ACCOUNT | riverbendresid |
| WPENGINE_PHPSESSIONS | on |
| WPENGINE_DB_SESSIONS | off |
| HTTP_VIA | 1.1 pod-404710 (Varnish/7.7) |
| HTTP_X_IS_BOT | 1 |
| PATH_TRANSLATED | /nas/content/live/riverbendresid/index.php |
| PATH_INFO | |
| SCRIPT_FILENAME | /nas/content/live/riverbendresid/index.php |
| HTTP_X_CACHE_GROUP | normal |
| HTTP_ACCEPT_ENCODING | gzip |
| SERVER_PROTOCOL | HTTP/1.1 |
| DOCUMENT_URI | /index.php |
| SERVER_PORT | 80 |
| GATEWAY_INTERFACE | CGI/1.1 |
| HTTP_ACCEPT_LANGUAGE | en-US,en;q=0.5 |
| HTTP_X_FORWARDED_PROTO | https |
| HTTP_CDN_LOOP | cloudflare; loops=1 |
| HTTP_USER_AGENT | CCBot/2.0 (https://commoncrawl.org/faq/) |
| CONTENT_LENGTH | 0 |
| REQUEST_METHOD | GET |
| REDIRECT_STATUS | 200 |
| HTTP_X_WPE_EDGE | AN |
| HTTP_X_WPE_LOCAL_SSL | 1 |
| REMOTE_ADDR | 18.97.9.175 |
| IS_WPE | 1 |
| HTTP_HOST | riverbendresidence.com |
| HTTP_RAWHOST | riverbendresidence.com |
| HTTP_X_WPE_REQUEST_ID | 74d4314ffa440a786ed8e93fd8896b29 |
| REQUEST_URI | /what-is-three-quarter-sober-home/ |
| CONTENT_TYPE | |
| SERVER_SOFTWARE | nginx |
| HTTP_X_WPE_SSL | 1 |
| HTTP_X_WPE_INSTALL_NAME | riverbendresid |
| HTTP_X_WORDPRESS_TYPE | DEFAULT |
| HTTP_X_UA_ORIGINAL | CCBot/2.0 (https://commoncrawl.org/faq/) |
| HTTP_ACCEPT | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
| HTTP_X_FORWARDED_HOST | riverbendresidence.com |
| HTTP_CF_RAY | 9cb24abc7a291e2d-IAD |
| HTTP_WPE_READONLY | on |
| SYSLOG_IDENT | phperr-riverbendresid |
| PHP_VALUE | post_max_size=100M; upload_max_filesize=50M; |
| SERVER_NAME | riverbendresidence.com |
| DOCUMENT_ROOT | /nas/content/live/riverbendresid |
| SCRIPT_NAME | /index.php |
| HTTPS | on |
| SERVER_ADDR | 127.0.0.1 |
| REMOTE_PORT | |
| HTTP_CF_IPCOUNTRY | US |
| HTTP_X_REAL_IP_REMOTE | 104.23.209.29 |
| HTTP_CF_CONNECTING_IP | 18.97.9.175, 18.97.9.175, 18.97.9.175 |
| HTTP_X_WPENGINE_PHP_VERSION | 7.4 |
| HTTP_CF_VISITOR | {"scheme":"https"} |
| PHP_ADMIN_VALUE | syslog.ident=phperr-riverbendresid; 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; |
| QUERY_STRING | |
| REQUEST_SCHEME | http |
| FCGI_ROLE | RESPONDER |
| PHP_SELF | /index.php |
| REQUEST_TIME_FLOAT | 1770628837.88 |
| REQUEST_TIME | 1770628837 |