За последние 24 часа нас посетили 21884 программиста и 1379 роботов. Сейчас ищут 715 программистов ...

Smarty

Тема в разделе "Прочие вопросы по PHP", создана пользователем jei, 10 авг 2013.

  1. jei

    jei Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    Очень жаль что не нашёл раздела на форуме посвещённого смарти.Но что и стоило ожидать.Имеется файл product.html он находится в
    c:\WebServers\home\vidicar2\www\wa-data\public\shop\themes\custom\
    подозреваю что это шаблонизатор смарти сам магазин на шоп скрипте.
    Итак вопрос что блин это за синтаксис такой где в обще переменные определять.Или можно ли тут запрос сделать к базе.В крайнем случае подинклудить нормальный файл пхп как?

    Код (Text):
    1. <!-- stock info -->
    2.             {if $product_available}
    3.             <div class="stocks">
    4.                 {function name=in_stock n=0 low=5 critical=2}
    5.                     {if $n > $low or $n === null}
    6.                     <strong class="stock-high"><i class="icon16 stock-green"></i>[`In stock`]</strong>
    7.                     {elseif $n > $critical}
    8.                     <strong class="stock-low"><i class="icon16 stock-yellow"></i>{_w("Only %d left in stock", "Only %d left in stock", $n)}</strong>
    9.                     {elseif $n > 0}
    10.                     <strong class="stock-critical"><i class="icon16 stock-red"></i>{_w("Only %d left in stock", "Only %d left in stock", $n)}</strong>
    11.                     {else}
    12.                     <strong class="stock-none"><i class="icon16 stock-transparent"></i>[`Out of stock`]</strong>
    13.                     {/if}
    14.                 {/function}
    15.                 {foreach $product.skus as $sku}
    16.                     <div {if $sku.id != $product.sku_id}style="display:none"{/if} id="sku-{$sku.id}-stock">
    17.                     {if $sku.stock}
    18.                     {foreach $stocks as $stock_id => $stock}
    19.                         {if isset($sku.stock[$stock_id])}
    20.                         {$stock_count = $sku.stock[$stock_id]}
    21.                         {else}
    22.                         {$stock_count = null}
    23.                         {/if}
    24.                         {$stock.name}: {in_stock n=$stock_count low=$stock.low_count critical=$stock.critical_count}<br>
    25.                     {/foreach}
    26.                     {else}
    27.                     {in_stock n=$sku.count}
    28.                     {/if}
    29.                     </div>
    30.                 {/foreach}                
    31.             </div>
    32.             {/if}
     
  2. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Синтаксис шаблонизатора предоставляет возможность работать с PHP функциями, объявлять переменные и многое другое.
    Крайне нежелательно в шаблонизаторе делать запросы к базе данных, за это отвечает модель, шаблонизатору мы отдаем подготовленные данные и работаем с ними.
    Вставку PHP можно сделать следующим образом:
    Код (Text):
    1. {php}
    2.     // подключение php скрипта прямо
    3.           // из шаблона
    4.           include('/path/to/display_weather.php');
    5. {/php}
    Объявлять переменную
    Код (Text):
    1.  
    2. {$name = "Bob"}
    3. {* либо *}
    4. {assign var="name" value="Bob"}
     
  3. jei

    jei Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    спасибо Invision за скорость ответа буду пробовать.
     
  4. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    в контроллере ептыдь :D:D
     
  5. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    В представлении часто требуется объявление переменных, представление ничего не знает о контроллере.
     
  6. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А можно пример?
    В твоем случае рушится MVC модель.Представление должно получить готовые данные из контроллера и вывести.
     
  7. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Фантазии у верстальщиков хватает, банально переменная-флаг иногда требуется.
     
  8. jei

    jei Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    smitt открою тебе секрет MVC не существует)
     
  9. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Да ну, а yii фраимворк и другие как работают?
    Тебе правильно сказали в контроллере надо все реализовывать.
    Но ты вряд ли последуешь совету:)
     
  10. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    это вобще был стеб на тему MVC )
     
  11. jei

    jei Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    smitt да а где этот контролер в большой чёрной дыре или может ты его сам поможешь найти?

    Добавлено спустя 5 минут 13 секунд:
    Будешь всегда всех слушать будешь ботаником.Вон нефть до сих пор используют.Хотя бесплатная энергия эфира вокруг нас и её гораздо больше чем нефти.
    Так же и тут, крикнули тебе ооооо нефть - Смарти.И ты как человек не думающий повторил о да Смарти.Своё мнение надо иметь.
     
  12. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    А Энштейн со своей глупой СТО об этом и не знает ((
     
  13. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Энергия эфира имеется ввиду - остатки рассеиваемой энергии от звёзд и радио передатчиков. Её можно собирать. Например: закапываешь вдоль высоковольтной передачи свою антенну и снимаешь "энергию эфира" :D Можно не так нагло, а просто на бОльшем расстоянии собирать.
     
  14. jei

    jei Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    YSandro Вот если бы её можно было ещё куда то складывать) То вообще супер.Хотя если только в вещества какие то.

    Добавлено спустя 4 минуты 47 секунд:
    Invision

    Код (Text):
    1. {php}
    2.     // подключение php скрипта прямо
    3.         // из шаблона
    4.         include('/path/to/display_weather.php');
    5. {/php}
    говорит не определенно таких тегов {php}

    Syntax Error in template "L:\home\vidicar2\www\wa-data\public\shop\themes\custom\product.html" on line 107 "{php}" unknown tag "php"
     
  15. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    я бы не рискнул больше пары лампочек вешать нагрузки.. А то ведь по проводам легко найти куда они идут ))
     
  16. jei

    jei Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    Mr.M.I.T. и что с того то?Это энергия все равно бы ушла в никуда?Учи мат часть) Вешай так хоть электродвигатель только работать он у тебя не будет.Напряжённость электромагнитного поля слишком мала.если только поставишь параллельно линию километр с длиной.Вольтов 50 снимешь)

    Добавлено спустя 25 минут 32 секунды:
    Invision можно ли запрос к базе сделать прям в виде.И как примерно его составить.
    Или хотя бы способ как найти контролер?
     
  17. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Зато глупый Никола Тесла знал.
     
  18. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Куда в никуда, вы емкостную составляющую ЛП увеличивается в разы, к тому же вы сдвигаете фазу,
    в его время такая теория работала, к тому же он был практиком, а не теоретиком.
    а вот ТБ и СанПин так не считают. И вобще ЭДС индукции в контуре наводит магнитный поток, который зависит протекающего тока...
     
  19. jei

    jei Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    Если вы такой умный что вы тут делаете, запускайте колайдер?)
     
  20. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Нет не прокатит это у тебя. Не уж то после 5 лет опыта ты не можешь дать поиск?

    Здесь я вообще тебя не понял.Я вообще о смарти не говорил. Может ты и имеешь свое мнение, но мне достаточно им обладать:)

    Добавлено спустя 3 минуты 2 секунды:
    Занимательная Физика... а знаете ли вы что сопротивление проводника намного больше сопротивления проводницы?:)
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    бедный джей...
     
  22. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Ну как дела, нашел контроллер? )
    Страшное колдунство сейчас спрошу:
    название шаблона по коду искал?
     
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    о жесть чувак жесть
    мне аж страшно стало
     
  24. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Да что там искать? Там я думаю за пару минут по assign можно все найти...
     
  25. jei

    jei Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    smitt выкини в мусорку свой assign
    Всё хакается как и положено хакерам просто, итак маленькая история как я хакаю смарти для новичков кто не взлюбил смарти только от его названия быстрый коим я его лично не считаю.Кучу не нужного мусора.
    И всё это прессуется соусом.Программистов которые не умело пользуются им пытаясь вставлять в свой проекты.
    Не понимая даже зачем он нужен им.Хотя есть такое мнение что в обще не нужен.И я его яркий поклонник.
    Итак бьём смарти прямо в нос .Вставляем нужный нам код в файл его шаблона product.html тупо делать это можно легко.Здесь я передаю строку.Можете и штмл в блок включить какой вам хочется.
    Показываю пример.

    Код (Text):
    1. {if $smarty.post.a1_1 == 1}
    2.                     [`Это первая моя писанина`]
    3.                     {/if}
    4.                     {if $smarty.post.a1_1 == 2}
    5.                     <div class="stocks">
    6. [`Это вторая моя писанина`]
    7. </div>
    8.                     {/if}
    Показываем смарти, что он тут не хозяйн наглым образом передаём переменные через глобальный массив
    $smarty.post.a1_1 вот в таком извращение приходится принимать их с глобального массива.Да и ещё можно делать всякие свой условия прям там же в шаблоне.Далее спросите а откуда то передать да легко делаем поиск в тотале слова product.html выходим на код который подключает этот файл а там играем с глобальным массивом и с данными.Едим дальше если у вас шоп скрипт то он при обновлений начнёт обновлять кое какие свой файлы на что смарти среагирует моментально перкомпилив шаблоны опять по своему и ваш код пропадает.Что делаем обязательно снимаем бекап на серваке желательно по чаще.Особенно перед обновлением.Если заказчик совсем бредит обновлениями шоп скрипта или чего другого объясняем что по факту обновления он ничего абсолютно не получит кроме красивых слов, от якобы новых крутых функциях апи и ядра)))Если он уже совсем очень хочет обновиться обновляем ему шоп скрипт предварительно сохранив свой файлы.Просто меняем их потом.И говорим ну что как круто обновились, что нового.Да ничего барахло больше не буду этого делать а ну и правильно. И говорим ему что бы больше так не делал) ну в крайнем случае он через пол года пишет вам хочу обновиться.Обновляется.Снова меняем два файла.И живём счастливо)