legko Posted June 9, 2015 Report Share Posted June 9, 2015 Народ помогите, облазил форум и документацию, но не нашел, как посмотреть значения переменных в шаблоне. Единственное, что накопал {$settings|var_dump}Меня интересует, что-то вроде {get_template_vars} - вывод всех значений переменных из шаблона, но к сожалению в Simpla не работает.Наверняка есть зарезервированные переменные типа {title}, {title_page} {head}, как узнать полный список? Quote Link to post Share on other sites
koteyka Posted June 9, 2015 Report Share Posted June 9, 2015 Зарегистрированных нет, кроме непосредственно зарезервированных smarty. Все переменные, передаваемые в шаблон объявляются в обработчиках (IndexView.php, ProductsView.php, IndexAdmin.php и т.д.) Значение в этих переменных можно посмтореть просто написав ее в шаблоне, типа {$title}. Если в переменной массив, то можно так {print_r({$my_array})} Quote Link to post Share on other sites
yr4ik Posted June 9, 2015 Report Share Posted June 9, 2015 в любом нужном шаблоне пишем {debug} И после будет открываться всплывающее окно со всеми переменными что передаются в шаблон Quote Link to post Share on other sites
legko Posted June 10, 2015 Author Report Share Posted June 10, 2015 Спасибо, воспользовался {debug}, помогает.А как мне значение переменной, к примеру {$meta_title} передать в PHP, для того чтобы с ним работать в /root/index.php? Quote Link to post Share on other sites
Kors Posted June 10, 2015 Report Share Posted June 10, 2015 (edited) Передать - никак. Если оно было ранее записано в шаблон посредством design->assign, то получить можно через$mt = $this->design->get_var('meta_title'); Скорее всего, Вы занимаетесь изобретением (кривого) велосипеда. Если бы Вы привели подробности своей задачи, то скорее получили бы совет, который бы облегчил Ваши нелегкие труды... Edited June 10, 2015 by Kors Quote Link to post Share on other sites
Noxter Posted June 10, 2015 Report Share Posted June 10, 2015 Если в переменной массив, то можно так {print_r({$my_array})}А еще можно и так {$my_array|print_r} даже проще Quote Link to post Share on other sites
legko Posted June 10, 2015 Author Report Share Posted June 10, 2015 (edited) Передать - никак. Если оно было ранее записано в шаблон посредством 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} не работает Edited June 10, 2015 by legko Quote Link to post Share on other sites
mishanya Posted June 10, 2015 Report Share Posted June 10, 2015 Есть скрипт, учитывающий статистику посещения сайта. Скрипт работает на PHP. Часть кода этого скрипта помещается в php-файл, например index.php. В эту часть кода ему нужно передать НАЗВАНИЕ СТРАНИЦЫ. Т.е. выдернуть из CMS {meta_title} и передать это значение скрипту. На CMS Simple Made это делается приблизительно так: $captured_content = $gCms->smarty->get_template_vars('captured_content'); А здесь что-то никак не разберусь, {get_template_vars} ничего не показывает, существующие переменные через {debug} приходится смотреть. а почему вы не можете этот скрипт разместить в View ? Quote Link to post Share on other sites
legko Posted June 10, 2015 Author Report Share Posted June 10, 2015 (edited) а почему вы не можете этот скрипт разместить в View ? Спасибо, попробовал, но echo $meta_title; ничего не показывает (значит не считывает значение из CMS), хотя echo "AAAAAAA"; из файла View.php принтуется нормально.Я так понимаю, что значение переменной $meta_title все-равно нужно вытаскивать как-то так:$smarty->tpl_vars... чего дальше еще не разобрался ========================= UPD: не View.php не подходит, на главной странице получаю $meta_title, на других страницах нет. Edited June 10, 2015 by legko Quote Link to post Share on other sites
mishanya Posted June 10, 2015 Report Share Posted June 10, 2015 Спасибо, попробовал, но 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.php4я строка меняем на 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 Quote Link to post Share on other sites
yr4ik Posted June 10, 2015 Report Share Posted June 10, 2015 (edited) index.php перед строкой: // Отладочная информацияделаем: $myvar = $view->design->get_var('meta_title'); var_dump($myvar); И дальше уже вставляете свой код и в него переменную $myvar Edited June 10, 2015 by yr4ik Quote Link to post Share on other sites
madison21 Posted April 22, 2018 Report Share Posted April 22, 2018 в любом нужном шаблоне пишем {debug} И после будет открываться всплывающее окно со всеми переменными что передаются в шаблон Ребят подскажите гв каком именно файле прописывать debug или print_r()И как выводить их, то есть какой адрес указывать в браузере?И в чём между ними разница? У меня задача посмотреть какие переменные я могу использовать в шаблоне для seo - title description keywords и h1хочу цену вытащить и одну из характеристик товара но не нашёл этих переменных Quote Link to post Share on other sites
yr4ik Posted April 23, 2018 Report Share Posted April 23, 2018 (edited) Ребят подскажите гв каком именно файле прописывать debug или print_r()И как выводить их, то есть какой адрес указывать в браузере?И в чём между ними разница? У меня задача посмотреть какие переменные я могу использовать в шаблоне для seo - title description keywords и h1хочу цену вытащить и одну из характеристик товара но не нашёл этих переменных {debug} пишите в любом месте нужного вам файла шаблона (как я понимаю вам нужен product.tpl). И там всплевет окно со всеми переданными в шаблон переменными. print_r и var_dump служат для вывода значения уже известно переменной (Пример: {$product|var_dump} ) писать их нужно так же в нужных шаблонах. цена будет: {$product->variant->price} (это цена основного варианта). Для свойств - потребуется делать перебор через foreach Edited April 23, 2018 by yr4ik Quote Link to post Share on other sites
madison21 Posted April 23, 2018 Report Share Posted April 23, 2018 Большое в {debug} пишите в любом месте нужного вам файла шаблона (как я понимаю вам нужен product.tpl). И там всплевет окно со всеми переданными в шаблон переменными. print_r и var_dump служат для вывода значения уже известно переменной (Пример: {$product|var_dump} ) писать их нужно так же в нужных шаблонах. цена будет: {$product->variant->price} (это цена основного варианта). Для свойств - потребуется делать перебор через foreachБольшое вам спасибо за разъяснение.Уже научился смотреть переменные через debugИ за цену отдельно спасибо - всё работает.Только пока ешё принцип вытаскивания переменной не совсем понятен..пытался вытянуть переменную характеристики таким образом{$product->value->features->0->name}но эт я погорячился так не работаета foreach я ещё не освоил..как я понимаю это надо делать в другом файле.. Quote Link to post Share on other sites
Finlig Posted September 5, 2018 Report Share Posted September 5, 2018 Доброго времени суток. Почта Банк дал скрипт, и вот чото не могу осилить передачу ему стоимости товара... 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>Подскажите, пжлс! Quote Link to post Share on other sites
chocolate_moles Posted September 5, 2018 Report Share Posted September 5, 2018 Подскажите, пжлс! Так в чем проблема? Так и пишите price: '{$product->variant->price}' Если у вас код в отдельном файле, создайте переменную <script> var price = '{$product->variant->price}'; </script> а в скрипте пишите price: price Quote Link to post Share on other sites
Finlig Posted September 6, 2018 Report Share Posted September 6, 2018 Так в чем проблема? Так и пишите price: '{$product->variant->price}' Если у вас код в отдельном файле, создайте переменную <script> var price = '{$product->variant->price}'; </script> а в скрипте пишите price: price Вот в том-то и дело, что order: [ { price: '{$product->variant->price}' } ]};не работает, банковский модуль просто не выводится. Если ему передавать order: [ { price: 200 } ]};то все работает, а с переменной не хочет. Quote Link to post Share on other sites
phukortsin Posted September 6, 2018 Report Share Posted September 6, 2018 Вот в том-то и дело, что order: [ { price: '{$product->variant->price}' } ]};не работает, банковский модуль просто не выводится. Если ему передавать order: [ { price: 200 } ]};то все работает, а с переменной не хочет. Во-первых, такое может сработать только в файле .tpl. Где у Вас это делается, неизвестно.Во-вторых, чтобы сработало в файле .tpl, в него заранее должны быть переданы нужные данные.В-третьих, Ваш фрагмент явно неверный, так как товаров, вообще говоря, в заказе несколько, а у Вас указывается всегда один... Quote Link to post Share on other sites
Finlig Posted September 6, 2018 Report Share Posted September 6, 2018 Редактирую файл product.tpl через Шаблоны у админки. Должно сработать? Так как это шаблон вывода одного конкретного товара, то товар в заказе должен быть один (передаю в банк не корзину, а конкретный товар). "в него заранее должны быть переданы нужные данные." - если переменную {$product->variant->price} вставляю просто в код, то она вводится. В теле скрипта - не работает. ЧЯДНТ? Quote Link to post Share on other sites
Kosjak76 Posted September 6, 2018 Report Share Posted September 6, 2018 А скрипт у вас в {literal}{/literal} ? Quote Link to post Share on other sites
Finlig Posted September 6, 2018 Report Share Posted September 6, 2018 {literal}{/literal} - при добавлении\удалении ничего не меняется... Quote Link to post Share on other sites
chocolate_moles Posted September 6, 2018 Report Share Posted September 6, 2018 {literal}{/literal} - при добавлении\удалении ничего не меняется... Может вы уже сайт покажете или полный код страницы? Quote Link to post Share on other sites
shooroop Posted September 6, 2018 Report Share Posted September 6, 2018 Может вы уже сайт покажете или полный код страницы? может еще автору приплатить. а то скучно тут на форуме Quote Link to post Share on other sites
Noxter Posted September 6, 2018 Report Share Posted September 6, 2018 :рукалицо: Quote Link to post Share on other sites
phukortsin Posted September 7, 2018 Report Share Posted September 7, 2018 (edited) Редактирую файл product.tpl через Шаблоны у админки. Должно сработать? Так как это шаблон вывода одного конкретного товара, то товар в заказе должен быть один (передаю в банк не корзину, а конкретный товар). "в него заранее должны быть переданы нужные данные." - если переменную {$product->variant->price} вставляю просто в код, то она вводится. В теле скрипта - не работает. ЧЯДНТ? Почти все ДНТ. Проблему описываете кое-как, обрывками, в стиле "Я вставляю вот это в КАКОЙ-ТО файл в КАКОЕ-ТО место". Тем самым пустяковый вопрос превращаете в сложную проблему... Если жалко выложить все подробности, то продолжайте вставлять. Сначала вставляйте после в 1-ой строки и смотрите результат. Если не решится вопрос, то пробуйте послк 2-ой, затем после 3-ей и т. д. Когда закончите, можно будет начать сначала, вставлять внутрь строки после N-го символа для всех имеющих смысл значений N. Потом пишете длинный-предлинный отчет... Причин может быть много разных. Например, причина может быть подобно такой http://forum.simplacms.ru/topic/11766-микроразметка-для-google/?p=105101 И гадать можно долго... Edited September 7, 2018 by phukortsin Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.