'name' => $all_categories,
'slug' => '*',
'icon' => 'all-press',
'link' => get_permalink( get_option('page_for_posts') ),
'current' => (is_home())? true : false,
)
);
if($terms){
foreach($terms as $term){
$context['press_types'][] = array(
'name' => $term->name,
'slug' => $term->slug,
'icon' => $term->slug,
'link' => get_term_link($term),
'current' => (is_tax('press-type', $term->term_id))? true : false,
);
}
}
$context['pagination'] = Timber::get_pagination();
//if($terms){
// foreach($terms as $term){
// $context['press_types'][] = new TimberTerm($term->term_id, 'press-type');
// }
//}
//Timber::render('templates/taxonomy-press-type.twig', $context);
return $context;
}else {
$context['is_press_type'] = false;
print_r('unsupported');
die();
}
return [
'title' => $this->title(),
];
}
"Class 'App\View\Composers\Timber' not found"
*/
public function compose(View $view)
{
$this->view = $view;
$this->data = new Fluent($view->getData());
$view->with($this->merge());
}
/**
* Data to be merged and passed to the view before rendering.
*
* @return array
*/
protected function merge()
{
return array_merge(
$this->with(),
$this->view->getData(),
$this->override()
);
}
/**
* Data to be passed to view before rendering
*
* @return array
*/
protected function with()
{
return [];
}
/**
* Data to be passed to view before rendering
*
* @return array
*/
protected function override()
{
return static::$views;
}
$view = array_slice(explode('\\', static::class), 3);
$view = array_map([Str::class, 'snake'], $view, array_fill(0, count($view), '-'));
return implode('/', $view);
}
/**
* Compose the view before rendering.
*
* @param \Illuminate\View\View $view
* @return void
*/
public function compose(View $view)
{
$this->view = $view;
$this->data = new Fluent($view->getData());
$view->with($this->merge());
}
/**
* Data to be merged and passed to the view before rendering.
*
* @return array
*/
protected function merge()
{
return array_merge(
$this->with(),
$this->view->getData(),
$this->override()
);
}
/**
* Data to be passed to view before rendering
*
* @return array
return $callback;
}
/**
* Build a class based container callback Closure.
*
* @param string $class
* @param string $prefix
* @return \Closure
*/
protected function buildClassEventCallback($class, $prefix)
{
[$class, $method] = $this->parseClassEvent($class, $prefix);
// Once we have the class and method name, we can build the Closure to resolve
// the instance out of the IoC container and call the method on it with the
// given arguments that are passed to the Closure as the composer's data.
return function () use ($class, $method) {
return $this->container->make($class)->{$method}(...func_get_args());
};
}
/**
* Parse a class based composer name.
*
* @param string $class
* @param string $prefix
* @return array
*/
protected function parseClassEvent($class, $prefix)
{
return Str::parseCallback($class, $this->classEventMethodForPrefix($prefix));
}
/**
* Determine the class event method based on the given prefix.
*
* @param string $prefix
* @return string
* @param \Closure|string $listener
* @param bool $wildcard
* @return \Closure
*/
public function makeListener($listener, $wildcard = false)
{
if (is_string($listener)) {
return $this->createClassListener($listener, $wildcard);
}
if (is_array($listener) && isset($listener[0]) && is_string($listener[0])) {
return $this->createClassListener($listener, $wildcard);
}
return function ($event, $payload) use ($listener, $wildcard) {
if ($wildcard) {
return $listener($event, $payload);
}
return $listener(...array_values($payload));
};
}
/**
* Create a class based listener using the IoC container.
*
* @param string $listener
* @param bool $wildcard
* @return \Closure
*/
public function createClassListener($listener, $wildcard = false)
{
return function ($event, $payload) use ($listener, $wildcard) {
if ($wildcard) {
return call_user_func($this->createClassCallable($listener), $event, $payload);
}
$callable = $this->createClassCallable($listener);
return $callable(...array_values($payload));
* @param bool $halt
* @return array|null
*/
public function dispatch($event, $payload = [], $halt = false)
{
// When the given "event" is actually an object we will assume it is an event
// object and use the class as the event name and this event itself as the
// payload to the handler, which makes object based events quite simple.
[$event, $payload] = $this->parseEventAndPayload(
$event, $payload
);
if ($this->shouldBroadcast($payload)) {
$this->broadcastEvent($payload[0]);
}
$responses = [];
foreach ($this->getListeners($event) as $listener) {
$response = $listener($event, $payload);
// If a response is returned from the listener and event halting is enabled
// we will just return this response, and not call the rest of the event
// listeners. Otherwise we will add the response on the response list.
if ($halt && ! is_null($response)) {
return $response;
}
// If a boolean false is returned from a listener, we will stop propagating
// the event to any further listeners down in the chain, else we keep on
// looping through the listeners and firing every one in our sequence.
if ($response === false) {
break;
}
$responses[] = $response;
}
return $halt ? null : $responses;
}
protected function addEventListener($name, $callback)
{
if (Str::contains($name, '*')) {
$callback = function ($name, array $data) use ($callback) {
return $callback($data[0]);
};
}
$this->events->listen($name, $callback);
}
/**
* Call the composer for a given view.
*
* @param \Illuminate\Contracts\View\View $view
* @return void
*/
public function callComposer(ViewContract $view)
{
$this->events->dispatch('composing: '.$view->name(), [$view]);
}
/**
* Call the creator for a given view.
*
* @param \Illuminate\Contracts\View\View $view
* @return void
*/
public function callCreator(ViewContract $view)
{
$this->events->dispatch('creating: '.$view->name(), [$view]);
}
}
} catch (Throwable $e) {
$this->factory->flushState();
throw $e;
}
}
/**
* Get the contents of the view instance.
*
* @return string
*/
protected function renderContents()
{
// We will keep track of the amount of views being rendered so we can flush
// the section after the complete rendering operation is done. This will
// clear out the sections for any separate views that may be rendered.
$this->factory->incrementRender();
$this->factory->callComposer($this);
$contents = $this->getContents();
// Once we've finished rendering the view, we'll decrement the render count
// so that each sections get flushed out next time a view is created and
// no old sections are staying around in the memory of an environment.
$this->factory->decrementRender();
return $contents;
}
/**
* Get the evaluated contents of the view.
*
* @return string
*/
protected function getContents()
{
return $this->engine->get($this->path, $this->gatherData());
}
$this->view = $view;
$this->path = $path;
$this->engine = $engine;
$this->factory = $factory;
$this->data = $data instanceof Arrayable ? $data->toArray() : (array) $data;
}
/**
* Get the string contents of the view.
*
* @param callable|null $callback
* @return array|string
*
* @throws \Throwable
*/
public function render(callable $callback = null)
{
try {
$contents = $this->renderContents();
$response = isset($callback) ? $callback($this, $contents) : null;
// Once we have the contents of the view, we will flush the sections if we are
// done rendering all views so that there is nothing left hanging over when
// another view gets rendered in the future by the application developer.
$this->factory->flushStateIfDoneRendering();
return ! is_null($response) ? $response : $contents;
} catch (Throwable $e) {
$this->factory->flushState();
throw $e;
}
}
/**
* Get the contents of the view instance.
*
* @return string
<!doctype html>
<?php echo \Roots\view(\Roots\app('sage.view'), \Roots\app('sage.data'))->render(); ?>
}
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;
}
"/home/forge/uat.hf10-pdn.staging.poundandgrain.ca/releases/20241218173020/web/app/themes/nevro/index.php"
<?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';
}
"/home/forge/uat.hf10-pdn.staging.poundandgrain.ca/releases/20241218173020/web/wp/wp-includes/template-loader.php"
<?php
/**
* WordPress View Bootstrapper
*/
define('WP_USE_THEMES', true);
require __DIR__ . '/wp/wp-blog-header.php';
"/home/forge/uat.hf10-pdn.staging.poundandgrain.ca/releases/20241218173020/web/wp/wp-blog-header.php"
Key | Value |
query_vars | array:1 [ "press-type" => "article" ] |
query_string | "press-type=article"
|
request | "press_type/article"
|
matched_rule | "press_type/([^/]+)/?$"
|
matched_query | "press-type=article"
|
did_permalink | true
|
Key | Value |
query | array:1 [ "press-type" => "article" ] |
query_vars | array:68 [ "press-type" => "article" "error" => "" "m" => "" "p" => 0 "post_parent" => "" "subpost" => "" "subpost_id" => "" "attachment" => "" "attachment_id" => 0 "name" => "" "pagename" => "" "page_id" => 0 "second" => "" "minute" => "" "hour" => "" "day" => 0 "monthnum" => 0 "year" => 0 "w" => 0 "category_name" => "" "tag" => "" "cat" => "" "tag_id" => "" "author" => "" "author_name" => "" "feed" => "" "tb" => "" "paged" => 0 "meta_key" => "" "meta_value" => "" "preview" => "" "s" => "" "sentence" => "" "title" => "" "fields" => "" "menu_order" => "" "embed" => "" "category__in" => [] "category__not_in" => [] "category__and" => [] "post__in" => [] "post__not_in" => [] "post_name__in" => [] "tag__in" => [] "tag__not_in" => [] "tag__and" => [] "tag_slug__in" => [] "tag_slug__and" => [] "post_parent__in" => [] "post_parent__not_in" => [] "author__in" => [] "author__not_in" => [] "search_columns" => [] "ignore_sticky_posts" => false "suppress_filters" => false "cache_results" => true "update_post_term_cache" => true "update_menu_item_cache" => false "lazy_load_term_meta" => true "update_post_meta_cache" => true "post_type" => "" "posts_per_page" => 10 "nopaging" => false "comments_per_page" => "50" "no_found_rows" => false "taxonomy" => "press-type" "term" => "article" "order" => "DESC" ] |
tax_query | WP_Tax_Query {#3198} |
meta_query | WP_Meta_Query {#3197} |
queried_object | WP_Term {#3268} |
queried_object_id | 5
|
request | """ SELECT SQL_CALC_FOUND_ROWS wp_5_posts.ID\n \t\t\t\t\t FROM wp_5_posts LEFT JOIN wp_5_term_relationships ON (wp_5_posts.ID = wp_5_term_relationships.object_id)\n \t\t\t\t\t WHERE 1=1 AND ( \n wp_5_term_relationships.term_taxonomy_id IN (5)\n ) AND ((wp_5_posts.post_type = 'post' AND (wp_5_posts.post_status = 'publish' OR wp_5_posts.post_status = 'acf-disabled')))\n \t\t\t\t\t GROUP BY wp_5_posts.ID\n \t\t\t\t\t ORDER BY wp_5_posts.post_date DESC\n \t\t\t\t\t LIMIT 0, 10 """ |
post_count | 5
|
current_post | -1
|
before_loop | true
|
current_comment | -1
|
found_posts | 5
|
max_num_pages | 1
|
is_archive | true
|
is_tax | true
|
Key | Value |
ID | 204
|
post_author | "1"
|
post_date | "2017-09-07 22:20:48"
|
post_date_gmt | "2017-09-07 22:20:48"
|
post_content | "" |
post_title | "Breaking free from back pain: New system reduces pain without buzzing, tingling"
|
post_excerpt | "" |
post_status | "publish"
|
comment_status | "closed"
|
ping_status | "open"
|
post_password | "" |
post_name | "breaking-free-from-back-pain-new-system-reduces-pain-without-buzzing-tingling"
|
to_ping | "" |
pinged | "" |
post_modified | "2024-03-18 22:38:52"
|
post_modified_gmt | "2024-03-18 22:38:52"
|
post_content_filtered | "" |
post_parent | 0
|
guid | "https://hf10.localhost/en/2017/09/07/breaking-free-from-back-pain-new-system-reduces-pain-without-buzzing-tingling/"
|
menu_order | 0
|
post_type | "post"
|
post_mime_type | "" |
comment_count | "0"
|
filter | "raw"
|
Key | Value |
hf-region-en | "1"
|
Key | Value |
SERVER_SOFTWARE | "nginx/1.26.2"
|
REQUEST_URI | "/en/press_type/article/"
|
USER | "forge"
|
HOME | "/home/forge"
|
HTTP_COOKIE | "hf-region-en=1"
|
HTTP_REFERER | "https://uat.hf10-pdn.staging.poundandgrain.ca/en/press_type/article"
|
HTTP_ACCEPT_ENCODING | "gzip, br, zstd, deflate"
|
HTTP_USER_AGENT | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
|
HTTP_ACCEPT | "*/*"
|
HTTP_HOST | "uat.hf10-pdn.staging.poundandgrain.ca"
|
REDIRECT_STATUS | "200"
|
HTTPS | "on"
|
SERVER_NAME | "uat.hf10-pdn.staging.poundandgrain.ca"
|
SERVER_PORT | "443"
|
SERVER_ADDR | "198.199.116.252"
|
REMOTE_PORT | "47174"
|
REMOTE_ADDR | "18.225.57.198"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
SERVER_PROTOCOL | "HTTP/2.0"
|
DOCUMENT_ROOT | "/home/forge/uat.hf10-pdn.staging.poundandgrain.ca/current/web"
|
DOCUMENT_URI | "/index.php"
|
SCRIPT_NAME | "/index.php"
|
SCRIPT_FILENAME | "/home/forge/uat.hf10-pdn.staging.poundandgrain.ca/current/web/index.php"
|
CONTENT_LENGTH | "" |
CONTENT_TYPE | "" |
REQUEST_METHOD | "GET"
|
QUERY_STRING | "" |
FCGI_ROLE | "RESPONDER"
|
PHP_SELF | "/index.php"
|
REQUEST_TIME_FLOAT | 1734800063.265
|
REQUEST_TIME | 1734800063
|
DB_NAME | "HF10_PDN_UAT"
|
DB_USER | "*************"
|
DB_PASSWORD | "********************"
|
DB_HOST | "localhost"
|
DB_PORT | "3306"
|
WP_ENV | "development"
|
WP_HOME | "https://uat.hf10-pdn.staging.poundandgrain.ca"
|
WP_SITEURL | "https://uat.hf10-pdn.staging.poundandgrain.ca/wp"
|
WP_DEBUG_LOG | "/storage/debug.log"
|
SITE_DOMAIN | "uat.hf10-pdn.staging.poundandgrain.ca"
|
DOMAIN_CURRENT_SITE | "uat.hf10-pdn.staging.poundandgrain.ca"
|
AUTH_KEY | "****************************************************************"
|
SECURE_AUTH_KEY | "****************************************************************"
|
LOGGED_IN_KEY | "****************************************************************"
|
NONCE_KEY | "****************************************************************"
|
AUTH_SALT | "****************************************************************"
|
SECURE_AUTH_SALT | "****************************************************************"
|
LOGGED_IN_SALT | "****************************************************************"
|
NONCE_SALT | "****************************************************************"
|
ACF_PRO_KEY | "b3JkZXJfaWQ9NDQxMjV8dHlwZT1kZXZlbG9wZXJ8ZGF0ZT0yMDE0LTExLTEyIDA2OjA0OjE3"
|
CHIMPMATIC_KEY | "lGZ0btIYSt4dk8op&hexpires=1622579217"
|
GOOGLE_MAPS_KEY | "AIzaSyCO5EV38tASfjBkGfRS3sRipepIVR3iyUE"
|
WP_DEFAULT_THEME | "sage"
|
WP_THEME | "sage"
|
SALESFORCE_CONNECTOR | "salesforce-connector-config"
|
SALESFORCE_CONNECTOR_GRANT_TYPE | "password"
|
SALESFORCE_CONNECTOR_TESTING_ENABLED | "true"
|
SALESFORCE_CONNECTOR_CLIENT_ID | "3MVG9BWMiHkoluZE0qiUtAc6UxeSLIcBe89sAn9Z62isPTC7KWOb4.F6ZMKjyFMaotkzAnmpw.BGBpk_R4QBC"
|
SALESFORCE_CONNECTOR_CLIENT_SECRET | "08C40A0EFB6D693C62D67449311F4609230251E6320D9DD7E0A4FF1CD86EED20"
|
SALESFORCE_CONNECTOR_USERNAME | "external.integration@nevro.com.uatf4"
|
SALESFORCE_CONNECTOR_PASSWORD | "Nevrotest123YS7bkK8IRj2g9XH8Sq1Q16gfjgnESSj8B3LX0TwB1On1wv53v"
|
SALESFORCE_CONNECTOR_ENDPOINT_INDIVIDUAL | "https://nevro--uatf4.sandbox.my.salesforce.com/services/data/v60.0/sobjects/Individual/"
|
SALESFORCE_CONNECTOR_ENDPOINT_LEAD | "https://nevro--uatf4.sandbox.my.salesforce.com/services/data/v60.0/sobjects/Lead/"
|
SALESFORCE_CONNECTOR_ENDPOINT_OAUTH_TOKEN | "https://nevro--uatf4.sandbox.my.salesforce.com/services/oauth2/token"
|
BUGHERD | "true"
|
SOURCE_OF_TRUTH | "true"
|
PHYSICIAN_FINDER | "https://www.nevrohfx.com"
|
Key | Value |
DB_NAME | "HF10_PDN_UAT"
|
DB_USER | "*************"
|
DB_PASSWORD | "********************"
|
DB_HOST | "localhost"
|
DB_PORT | "3306"
|
WP_ENV | "development"
|
WP_HOME | "https://uat.hf10-pdn.staging.poundandgrain.ca"
|
WP_SITEURL | "https://uat.hf10-pdn.staging.poundandgrain.ca/wp"
|
WP_DEBUG_LOG | "/storage/debug.log"
|
SITE_DOMAIN | "uat.hf10-pdn.staging.poundandgrain.ca"
|
DOMAIN_CURRENT_SITE | "uat.hf10-pdn.staging.poundandgrain.ca"
|
AUTH_KEY | "****************************************************************"
|
SECURE_AUTH_KEY | "****************************************************************"
|
LOGGED_IN_KEY | "****************************************************************"
|
NONCE_KEY | "****************************************************************"
|
AUTH_SALT | "****************************************************************"
|
SECURE_AUTH_SALT | "****************************************************************"
|
LOGGED_IN_SALT | "****************************************************************"
|
NONCE_SALT | "****************************************************************"
|
ACF_PRO_KEY | "b3JkZXJfaWQ9NDQxMjV8dHlwZT1kZXZlbG9wZXJ8ZGF0ZT0yMDE0LTExLTEyIDA2OjA0OjE3"
|
CHIMPMATIC_KEY | "lGZ0btIYSt4dk8op&hexpires=1622579217"
|
GOOGLE_MAPS_KEY | "AIzaSyCO5EV38tASfjBkGfRS3sRipepIVR3iyUE"
|
WP_DEFAULT_THEME | "sage"
|
WP_THEME | "sage"
|
SALESFORCE_CONNECTOR | "salesforce-connector-config"
|
SALESFORCE_CONNECTOR_GRANT_TYPE | "password"
|
SALESFORCE_CONNECTOR_TESTING_ENABLED | "true"
|
SALESFORCE_CONNECTOR_CLIENT_ID | "3MVG9BWMiHkoluZE0qiUtAc6UxeSLIcBe89sAn9Z62isPTC7KWOb4.F6ZMKjyFMaotkzAnmpw.BGBpk_R4QBC"
|
SALESFORCE_CONNECTOR_CLIENT_SECRET | "08C40A0EFB6D693C62D67449311F4609230251E6320D9DD7E0A4FF1CD86EED20"
|
SALESFORCE_CONNECTOR_USERNAME | "external.integration@nevro.com.uatf4"
|
SALESFORCE_CONNECTOR_PASSWORD | "Nevrotest123YS7bkK8IRj2g9XH8Sq1Q16gfjgnESSj8B3LX0TwB1On1wv53v"
|
SALESFORCE_CONNECTOR_ENDPOINT_INDIVIDUAL | "https://nevro--uatf4.sandbox.my.salesforce.com/services/data/v60.0/sobjects/Individual/"
|
SALESFORCE_CONNECTOR_ENDPOINT_LEAD | "https://nevro--uatf4.sandbox.my.salesforce.com/services/data/v60.0/sobjects/Lead/"
|
SALESFORCE_CONNECTOR_ENDPOINT_OAUTH_TOKEN | "https://nevro--uatf4.sandbox.my.salesforce.com/services/oauth2/token"
|
BUGHERD | "true"
|
SOURCE_OF_TRUTH | "true"
|
PHYSICIAN_FINDER | "https://www.nevrohfx.com"
|