Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Народ помогите, облазил форум и документацию, но не нашел, как посмотреть значения переменных в шаблоне. Единственное, что накопал {$settings|var_dump}

Меня интересует, что-то вроде {get_template_vars} - вывод всех значений переменных из шаблона, но к сожалению в Simpla не работает.

Наверняка есть зарезервированные переменные типа {title}, {title_page} {head}, как узнать полный список?

Ссылка на сообщение
Поделиться на другие сайты

Зарегистрированных нет, кроме непосредственно зарезервированных smarty. Все переменные, передаваемые в шаблон объявляются в обработчиках (IndexView.php, ProductsView.php, IndexAdmin.php и т.д.) Значение в этих переменных можно посмтореть просто написав ее в шаблоне, типа {$title}. Если в переменной массив, то можно так {print_r({$my_array})}

Ссылка на сообщение
Поделиться на другие сайты

в любом нужном  шаблоне пишем {debug} 

И после будет открываться всплывающее окно со всеми переменными что передаются в шаблон 

Ссылка на сообщение
Поделиться на другие сайты

Спасибо, воспользовался {debug}, помогает.

А как мне значение переменной, к примеру {$meta_title} передать в PHP, для того чтобы с ним работать в /root/index.php?

Ссылка на сообщение
Поделиться на другие сайты

Передать - никак.

 

Если оно было ранее записано в шаблон посредством design->assign, то получить можно через

$mt = $this->design->get_var('meta_title');

 

Скорее всего, Вы занимаетесь изобретением (кривого) велосипеда.  Если бы Вы привели подробности своей задачи, то скорее получили бы совет, который бы облегчил Ваши нелегкие труды...

Изменено пользователем Kors
Ссылка на сообщение
Поделиться на другие сайты

Передать - никак.

 

Если оно было ранее записано в шаблон посредством design->assign, то получить можно через

$mt = $this->design->get_var('meta_title');

 

Скорее всего, Вы занимаетесь изобретением (кривого) велосипеда.  Если бы Вы привели подробности своей задачи, то скорее получили бы совет, который бы облегчил Ваши нелегкие труды...

 

Есть скрипт, учитывающий статистику посещения сайта. Скрипт работает на PHP. Часть кода этого скрипта помещается в php-файл, например index.php. В эту часть кода ему нужно передать НАЗВАНИЕ СТРАНИЦЫ.

 

Т.е. выдернуть из CMS {meta_title} и передать это значение скрипту.

 

На CMS Simple Made это делается приблизительно так:

 

$captured_content = $gCms->smarty->get_template_vars('captured_content');

 

А здесь что-то никак не разберусь, {get_template_vars} ничего не показывает, существующие переменные через {debug} приходится смотреть.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

Другой вариант - вставить в шаблон PHP-код, но где разрешить это действие в конфигурации я пока тоже не нашел. По дефолту конструкция {php}..........{/php} не работает :(

Изменено пользователем legko
Ссылка на сообщение
Поделиться на другие сайты

Есть скрипт, учитывающий статистику посещения сайта. Скрипт работает на PHP. Часть кода этого скрипта помещается в php-файл, например index.php. В эту часть кода ему нужно передать НАЗВАНИЕ СТРАНИЦЫ.

 

Т.е. выдернуть из CMS {meta_title} и передать это значение скрипту.

 

На CMS Simple Made это делается приблизительно так:

 

$captured_content = $gCms->smarty->get_template_vars('captured_content');

 

А здесь что-то никак не разберусь, {get_template_vars} ничего не показывает, существующие переменные через {debug} приходится смотреть.

 

а почему вы не можете этот скрипт разместить в View ?

Ссылка на сообщение
Поделиться на другие сайты

а почему вы не можете этот скрипт разместить в View ?

 

Спасибо, попробовал, но echo $meta_title; ничего не показывает (значит не считывает значение из CMS), хотя echo "AAAAAAA"; из файла View.php принтуется нормально.

Я так понимаю, что значение переменной $meta_title все-равно нужно вытаскивать как-то так:

$smarty->tpl_vars


... чего дальше еще не разобрался

 

=========================

 

UPD: не View.php не подходит, на главной странице получаю $meta_title, на других страницах нет.

Изменено пользователем legko
Ссылка на сообщение
Поделиться на другие сайты

Спасибо, попробовал, но echo $meta_title; ничего не показывает (значит не считывает значение из CMS), хотя echo "AAAAAAA"; из файла View.php принтуется нормально.

Я так понимаю, что значение переменной $meta_title все-равно нужно вытаскивать как-то так:

$smarty->tpl_vars


... чего дальше еще не разобрался

 

вы также можете включить пхп код в шаблон с помощью тегов: {php}код{/php}.

 

если у вас версия ниже 2.3.5, нужно включить поддержку php в шаблоне - Smarty/libs/Smarty.class.php найти public $allow_php_tag и поставить в true.

 

чтобы включить поддержку в симпла >=2.3.5 идем в api/Design.php

4я строка меняем на 

require_once(dirname(dirname(__FILE__)).'/Smarty/libs/SmartyBC.class.php');

15ю строчку на 

$this->smarty = new SmartyBC()

и уже дальше поставить флаг $allow_php_tag=true в Smarty/libs/Smarty.class.php найти public $allow_php_tag

Ссылка на сообщение
Поделиться на другие сайты

index.php перед строкой:

// Отладочная информация

делаем:

$myvar = $view->design->get_var('meta_title');
var_dump($myvar);

И дальше уже вставляете свой код и в него переменную $myvar

Изменено пользователем yr4ik
Ссылка на сообщение
Поделиться на другие сайты
  • 2 года спустя...

в любом нужном  шаблоне пишем {debug} 

И после будет открываться всплывающее окно со всеми переменными что передаются в шаблон 

Ребят подскажите гв каком именно файле прописывать debug или print_r()

И как выводить их, то есть какой адрес указывать в браузере?

И в чём между ними разница?

 

У меня задача посмотреть какие переменные я могу использовать в шаблоне для seo - title description keywords и h1

хочу цену вытащить и одну из характеристик товара но не нашёл этих переменных

Ссылка на сообщение
Поделиться на другие сайты

Ребят подскажите гв каком именно файле прописывать debug или print_r()

И как выводить их, то есть какой адрес указывать в браузере?

И в чём между ними разница?

 

У меня задача посмотреть какие переменные я могу использовать в шаблоне для seo - title description keywords и h1

хочу цену вытащить и одну из характеристик товара но не нашёл этих переменных

 

{debug} пишите в любом месте нужного вам файла шаблона (как я понимаю вам нужен product.tpl). И там всплевет окно со всеми переданными в шаблон переменными.

 

print_r и var_dump  служат для вывода значения уже известно переменной  (Пример: {$product|var_dump} ) писать их нужно так же в нужных шаблонах.

 

цена будет: {$product->variant->price} (это цена основного варианта). Для свойств - потребуется делать перебор через foreach

Изменено пользователем yr4ik
Ссылка на сообщение
Поделиться на другие сайты

Большое в

 

{debug} пишите в любом месте нужного вам файла шаблона (как я понимаю вам нужен product.tpl). И там всплевет окно со всеми переданными в шаблон переменными.

 

print_r и var_dump  служат для вывода значения уже известно переменной  (Пример: {$product|var_dump} ) писать их нужно так же в нужных шаблонах.

 

цена будет: {$product->variant->price} (это цена основного варианта). Для свойств - потребуется делать перебор через foreach

Большое вам спасибо за разъяснение.
Уже научился смотреть переменные через debug
И за цену отдельно спасибо - всё работает.

Только пока ешё принцип вытаскивания переменной не совсем понятен..
пытался вытянуть переменную характеристики таким образом
{$product->value->features->0->name}

но эт я погорячился :) 
так не работает

а foreach я ещё не освоил..
как я понимаю это надо делать в другом файле..

Ссылка на сообщение
Поделиться на другие сайты
  • 4 месяца спустя...

Доброго времени суток. Почта Банк дал скрипт, и вот чото не могу осилить передачу ему стоимости товара... Simpla 2.3.6
Сам скрипт выглядит так:

<div id="pos-credit-container"></div><script src="https://my.pochtabank.ru/sdk/v1/pos-credit.js" type="text/javascript"></script><script type="text/javascript">// <![CDATA[
  var options = {
  ttCode: 'тут код точки',
  ttName: 'тут ее адрес',
  fullName: '',
  phone: '',
  manualOrderInput: false,
  order: [
  {
  price: вот тут должна быть стоимость, в симпле она в переменной {$product->variant->price}
  }
  ]
};
window.PBSDK.posCredit.mount('#pos-credit-container', options);

  // подписка на событие завершения заполнения заявки
  window.PBSDK.posCredit.on('done', function(id){
  console.log('Id заявки: ' + id)
  });

  // При необходимости можно убрать виджет вызвать unmount
  // window.PBSDK.posCredit.unmount('#pos-credit-container');
// ]]></script>

Подскажите, пжлс!

Ссылка на сообщение
Поделиться на другие сайты

Подскажите, пжлс!

 

Так в чем проблема? Так и пишите 

price: '{$product->variant->price}'

 

Если у вас код в отдельном файле, создайте переменную 

<script>
var price = '{$product->variant->price}';
</script>

а в скрипте пишите

price: price
Ссылка на сообщение
Поделиться на другие сайты

 

Так в чем проблема? Так и пишите 

price: '{$product->variant->price}'

 

Если у вас код в отдельном файле, создайте переменную 

<script>
var price = '{$product->variant->price}';
</script>

а в скрипте пишите

price: price

Вот в том-то и дело, что order: [

         {

           price: '{$product->variant->price}'

         }

         ]

};

не работает, банковский модуль просто не выводится. Если ему передавать order: [

         {

           price: 200

         }

         ]

};

то все работает, а с переменной не хочет.

Ссылка на сообщение
Поделиться на другие сайты

Вот в том-то и дело, что order: [

         {

           price: '{$product->variant->price}'

         }

         ]

};

не работает, банковский модуль просто не выводится. Если ему передавать order: [

         {

           price: 200

         }

         ]

};

то все работает, а с переменной не хочет.

 

Во-первых, такое  может сработать только в файле .tpl.  Где у Вас это делается, неизвестно.

Во-вторых, чтобы сработало в файле .tpl, в него заранее должны быть переданы нужные данные.

В-третьих, Ваш фрагмент явно неверный, так как товаров, вообще говоря, в заказе несколько, а у Вас указывается всегда один...

Ссылка на сообщение
Поделиться на другие сайты

Редактирую файл product.tpl через Шаблоны у админки. Должно сработать? Так как это шаблон вывода одного конкретного товара, то товар в заказе должен быть один (передаю в банк не корзину, а конкретный товар). "в него заранее должны быть переданы нужные данные." - если переменную {$product->variant->price} вставляю просто в код, то она вводится. В теле скрипта - не работает. ЧЯДНТ?

 




 


   
Ссылка на сообщение
Поделиться на другие сайты

{literal}{/literal}  - при добавлении\удалении ничего не меняется...

 

Может вы уже сайт покажете или полный код страницы?

Ссылка на сообщение
Поделиться на другие сайты

 

Может вы уже сайт покажете или полный код страницы?

 

может еще автору приплатить. а то скучно тут на форуме

Ссылка на сообщение
Поделиться на другие сайты

Редактирую файл product.tpl через Шаблоны у админки. Должно сработать? Так как это шаблон вывода одного конкретного товара, то товар в заказе должен быть один (передаю в банк не корзину, а конкретный товар). "в него заранее должны быть переданы нужные данные." - если переменную {$product->variant->price} вставляю просто в код, то она вводится. В теле скрипта - не работает. ЧЯДНТ?

 

Почти все ДНТ.

 

Проблему описываете кое-как, обрывками, в стиле "Я вставляю вот это в КАКОЙ-ТО файл в КАКОЕ-ТО место". Тем самым пустяковый вопрос превращаете в сложную проблему...

 

Если жалко выложить  все подробности, то продолжайте вставлять. Сначала вставляйте после в 1-ой строки и смотрите результат. Если не решится вопрос, то пробуйте послк 2-ой, затем после 3-ей и т. д.  Когда закончите, можно будет начать сначала, вставлять внутрь строки после N-го символа для всех имеющих смысл значений N. Потом пишете длинный-предлинный отчет...

 

Причин может быть много разных. Например, причина может быть подобно такой

http://forum.simplacms.ru/topic/11766-микроразметка-для-google/?p=105101

 

И гадать можно долго...

Изменено пользователем phukortsin
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...