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] => 2166 [post_author] => 4 [post_date] => 2021-01-19 09:29:59 [post_date_gmt] => 2021-01-19 14:29:59 [post_content] => There is no shortage of sober living homes in the state of New Jersey. In fact, in response to the constantly increasing rates of substance abuse and the nationwide opioid epidemic, there are now over 300 sober living houses and 400 Oxford houses throughout the state, according to the New Jersey Department of Community Affairs. However, there has been a good deal of controversy surrounding the opening of so many sober homes, seeing as not all are reputable and many do not have the best interest of their residents at heart. To help community members differentiate between reputable and non-reputable sober homes, the NJ Department of Community Affairs proposed a set of strict regulations that would apply to this specific type of residential environment. <h2>Guidelines for Sober Living Homes</h2> Amendments to the existing rules were made in June of 2017, which included that only family-style or duplex homes could be utilized and that there could not be more than 10 residents at any given time. Regulating sober homes has been a major challenge, both for the homeowners and for lawmakers. There has been much community pushback, and there have been numerous amendments made to existing laws over the years. Many have pushed for a credentialing process, which would help reduce the number of unregulated “sober homes” in existence throughout the state. As it stands, sober homes in New Jersey must be adequately licensed to open their doors. To get licensed, they must meet the following guidelines and consistently follow the below-listed regulations: <ul> <li>They must have at least one staff member present on the property at all times</li> <li>They must have 10 or fewer residents living in the house</li> <li>They must meet the local codes for the definition of a “single-family home”</li> </ul> Riverbend Residence is dedicated to adhering to all state regulations and guidelines, and all of our residences are fully licensed and accredited through the state of New Jersey. <img class="alignleft size-full wp-image-2167" src="https://riverbendresidence.com/wp-content/uploads/2021/01/New-Jersey-Sober-Living-Regulations.jpg" alt="New Jersey Sober Living Regulations " width="600" height="400" /> <h2>The Importance of Sober Living</h2> Sober living is a vital part of the overall treatment process, and it usually means the difference between relapse and long-term recovery. There are many benefits to sober living, including access to add structure and support, as well as a high level of personal accountability. Most reputable treatment centers (including Riverbend Residence) hold their residents to a high set of standards and require them to abide by a strict set of rules and guidelines geared towards making the transition back to fully independent living all that much easier. These rules are in place for a reason - they help residents learn how to successfully structure their own lives around their recovery. For more information, reach out today. Some examples of these sober living guidelines include: <ul> <li>Participating in daily house chores and keeping personal spaces clean</li> <li>Finding a recovery-appropriate job and maintaining this job</li> <li>Treating other residents with courtesy and respect (and treating support staff members with respect)</li> <li>Waking up by a certain time every morning and returning home by a set curfew</li> <li>Attending at least one 12-step meeting every day and working through the 12 steps with a sponsor</li> <li>Maintaining complete abstinence from all mood and mind-altering substances</li> </ul> <h2>Riverbend Residence - Licensed and Accredited Sober Living Housing</h2> At <a href="https://riverbendresidence.com/">Riverbend Residence</a>, we offer gender-specific sober living to men and women of all ages in New Jersey and all surrounding areas. We strictly follow state-imposed guidelines, making sure that there are no more than 10 residents in any one of our single-family homes at a time, and ensuring that there is always a support staff member on-site to help assist residents and offer them any additional support they might need. Our main priority is ensuring that our residents have the tools they need to maintain success in sobriety as they navigate early recovery and begin learning how to live an entirely new way of life. [post_title] => New Jersey Sober Living Regulations [post_excerpt] => [post_status] => publish [comment_status] => closed [ping_status] => open [post_password] => [post_name] => new-jersey-sober-living-regulations [to_ping] => [pinged] => [post_modified] => 2021-01-19 09:29:59 [post_modified_gmt] => 2021-01-19 14:29:59 [post_content_filtered] => [post_parent] => 0 [guid] => https://riverbendresidence.com/?p=2166 [menu_order] => 0 [post_type] => post [post_mime_type] => [comment_count] => 0 [filter] => raw [status] => publish [id] => 2166 [slug] => new-jersey-sober-living-regulations [custom] => Array ( [_edit_lock] => 1611066895:3 [_edit_last] => 3 [_thumbnail_id] => 2167 [_wp_page_template] => default [_yoast_wpseo_focuskw] => New Jersey Sober Living Regulations [_yoast_wpseo_metadesc] => Sober living is a vital part of the overall treatment process, and it usually means the difference between relapse and long-term recovery. [_yoast_wpseo_linkdex] => 65 [_yoast_wpseo_content_score] => 30 [_yoast_wpseo_primary_category] => 10 [_yoast_wpseo_title] => New Jersey Sober Living Regulations | Riverbend Residence [_yoast_wpseo_estimated-reading-time-minutes] => 4 ) ) |
| 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 | /new-jersey-sober-living-regulations/ |
| USER | fpm200067 |
| HOME | /home/fpm200067 |
| WPENGINE_ACCOUNT | riverbendresid |
| WPENGINE_PHPSESSIONS | on |
| WPENGINE_DB_SESSIONS | off |
| SCRIPT_FILENAME | /nas/content/live/riverbendresid/index.php |
| HTTP_X_IS_BOT | 1 |
| HTTP_CF_CONNECTING_IP | 18.97.14.86, 18.97.14.86, 18.97.14.86 |
| 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; |
| SERVER_NAME | riverbendresidence.com |
| DOCUMENT_ROOT | /nas/content/live/riverbendresid |
| DOCUMENT_URI | /index.php |
| SCRIPT_NAME | /index.php |
| IS_WPE | 1 |
| HTTP_CF_RAY | 9da7874bcd25a9b4-IAD |
| HTTP_X_REAL_IP_REMOTE | 104.23.213.186 |
| HTTP_ACCEPT | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
| HTTP_CF_IPCOUNTRY | US |
| HTTP_X_WPENGINE_PHP_VERSION | 7.4 |
| HTTPS | on |
| REMOTE_PORT | |
| HTTP_RAWHOST | riverbendresidence.com |
| HTTP_X_UA_ORIGINAL | CCBot/2.0 (https://commoncrawl.org/faq/) |
| HTTP_WPE_READONLY | on |
| HTTP_USER_AGENT | CCBot/2.0 (https://commoncrawl.org/faq/) |
| HTTP_ACCEPT_LANGUAGE | en-US,en;q=0.5 |
| HTTP_X_WPE_REQUEST_ID | 5813ae1b08a9ee1a3831c18a44c3d0b5 |
| SERVER_PROTOCOL | HTTP/1.1 |
| QUERY_STRING | |
| HTTP_X_WPE_INSTALL_NAME | riverbendresid |
| HTTP_CDN_LOOP | cloudflare; loops=1 |
| HTTP_X_FORWARDED_PROTO | https |
| HTTP_X_CACHE_GROUP | normal |
| PATH_INFO | |
| CONTENT_TYPE | |
| REQUEST_METHOD | GET |
| SERVER_PORT | 80 |
| HTTP_X_FORWARDED_HOST | riverbendresidence.com |
| REMOTE_ADDR | 18.97.14.86 |
| CONTENT_LENGTH | 0 |
| REQUEST_SCHEME | http |
| HTTP_ACCEPT_ENCODING | gzip |
| HTTP_CF_VISITOR | {\"scheme\":\"https\"} |
| HTTP_VIA | 1.1 pod-404710 (Varnish/trunk) |
| SYSLOG_IDENT | phperr-riverbendresid |
| REDIRECT_STATUS | 200 |
| SERVER_ADDR | 127.0.0.1 |
| HTTP_X_WORDPRESS_TYPE | DEFAULT |
| HTTP_X_WPE_LOCAL_SSL | 1 |
| HTTP_X_WPE_SSL | 1 |
| HTTP_HOST | riverbendresidence.com |
| PHP_VALUE | upload_max_filesize=50M; post_max_size=100M; |
| PATH_TRANSLATED | /nas/content/live/riverbendresid/index.php |
| GATEWAY_INTERFACE | CGI/1.1 |
| HTTP_X_WPE_EDGE | AN |
| FCGI_ROLE | RESPONDER |
| PHP_SELF | /index.php |
| REQUEST_TIME_FLOAT | 1773200329.63 |
| REQUEST_TIME | 1773200329 |
| Key | Value |
| USER | fpm200067 |
| HOME | /home/fpm200067 |
| WPENGINE_ACCOUNT | riverbendresid |
| WPENGINE_PHPSESSIONS | on |
| WPENGINE_DB_SESSIONS | off |
| REQUEST_URI | /new-jersey-sober-living-regulations/ |
| SCRIPT_FILENAME | /nas/content/live/riverbendresid/index.php |
| HTTP_X_IS_BOT | 1 |
| HTTP_CF_CONNECTING_IP | 18.97.14.86, 18.97.14.86, 18.97.14.86 |
| 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; |
| SERVER_NAME | riverbendresidence.com |
| DOCUMENT_ROOT | /nas/content/live/riverbendresid |
| DOCUMENT_URI | /index.php |
| SCRIPT_NAME | /index.php |
| IS_WPE | 1 |
| HTTP_CF_RAY | 9da7874bcd25a9b4-IAD |
| HTTP_X_REAL_IP_REMOTE | 104.23.213.186 |
| HTTP_ACCEPT | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
| HTTP_CF_IPCOUNTRY | US |
| HTTP_X_WPENGINE_PHP_VERSION | 7.4 |
| HTTPS | on |
| REMOTE_PORT | |
| SERVER_SOFTWARE | nginx |
| HTTP_RAWHOST | riverbendresidence.com |
| HTTP_X_UA_ORIGINAL | CCBot/2.0 (https://commoncrawl.org/faq/) |
| HTTP_WPE_READONLY | on |
| HTTP_USER_AGENT | CCBot/2.0 (https://commoncrawl.org/faq/) |
| HTTP_ACCEPT_LANGUAGE | en-US,en;q=0.5 |
| HTTP_X_WPE_REQUEST_ID | 5813ae1b08a9ee1a3831c18a44c3d0b5 |
| SERVER_PROTOCOL | HTTP/1.1 |
| QUERY_STRING | |
| HTTP_X_WPE_INSTALL_NAME | riverbendresid |
| HTTP_CDN_LOOP | cloudflare; loops=1 |
| HTTP_X_FORWARDED_PROTO | https |
| HTTP_X_CACHE_GROUP | normal |
| PATH_INFO | |
| CONTENT_TYPE | |
| REQUEST_METHOD | GET |
| SERVER_PORT | 80 |
| HTTP_X_FORWARDED_HOST | riverbendresidence.com |
| REMOTE_ADDR | 18.97.14.86 |
| CONTENT_LENGTH | 0 |
| REQUEST_SCHEME | http |
| HTTP_ACCEPT_ENCODING | gzip |
| HTTP_CF_VISITOR | {"scheme":"https"} |
| HTTP_VIA | 1.1 pod-404710 (Varnish/trunk) |
| SYSLOG_IDENT | phperr-riverbendresid |
| REDIRECT_STATUS | 200 |
| SERVER_ADDR | 127.0.0.1 |
| HTTP_X_WORDPRESS_TYPE | DEFAULT |
| HTTP_X_WPE_LOCAL_SSL | 1 |
| HTTP_X_WPE_SSL | 1 |
| HTTP_HOST | riverbendresidence.com |
| PHP_VALUE | upload_max_filesize=50M; post_max_size=100M; |
| PATH_TRANSLATED | /nas/content/live/riverbendresid/index.php |
| GATEWAY_INTERFACE | CGI/1.1 |
| HTTP_X_WPE_EDGE | AN |
| FCGI_ROLE | RESPONDER |
| PHP_SELF | /index.php |
| REQUEST_TIME_FLOAT | 1773200329.63 |
| REQUEST_TIME | 1773200329 |