ФорумПрограммированиеПыхнуть хотите?Готовые решения → STemp — мой шаблонизатор

STemp — мой шаблонизатор

  • adw0rd

    Сообщения: 22943 Репутация: N Группа: в ухо

    Spritz 22 ноября 2008 г. 15:33, спустя 4 часа 46 минут 45 секунд


    незнаю только сколько раз вызовиться гетер но ошибки точно не будет


    будет несколько раз вызывать



    надо

    $A = $this->get("array");
    foreach ($A as $key=>$value)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 22 ноября 2008 г. 15:37, спустя 3 минуты 36 секунд

    adw0rd, можно:
    foreach ($a = $this->get("array") as $key=>$value)

    Но __get мне кажется лучше.
  • Trej Gun

    Сообщения: 5302 Репутация: N Группа: в ухо

    Spritz 22 ноября 2008 г. 15:41, спустя 3 минуты 52 секунды

    sap, зпасибо незнал что там можно = использовать
  • adw0rd

    Сообщения: 22943 Репутация: N Группа: в ухо

    Spritz 22 ноября 2008 г. 16:48, спустя 1 час 6 минут 57 секунд

    будет несколько раз вызывать


    фигню сморозил, ссори :)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • AlexB

    Сообщения: 4299 Репутация: N Группа: в ухо

    Spritz 22 ноября 2008 г. 17:23, спустя 35 минут 2 секунды


    Таким образом, я пришел к выводу, что шаблонизатор нужен, но он не должен быть навороченным тормозом типа Smarty.
    Идеология блочных шаблонизаторов (XTemplate, например) мне не импонирует потому, что в них нет ветвлений как таковых, есть только циклы.
    sap, прости меня но это абсолютно бредовая фраза. В XTemplate нет ни циклов, ни ветвлений. Он вообще не предполагает каких-либо программных конструкций в шаблоне. В шаблоне содержится только разметка.
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 22 ноября 2008 г. 17:24, спустя 1 минуту 28 секунд

    AlexB, имхо, эта разметка может быть названа циклами, так как на более низком уровне это циклы и есть.
  • AlexB

    Сообщения: 4299 Репутация: N Группа: в ухо

    Spritz 22 ноября 2008 г. 17:41, спустя 16 минут 22 секунды

    Вот и нет. Самое главный стереотип, который я никак не могу побороть в умах оппонентов, это попытка трактовать код шаблона как аналог конструкций алгоритмического языка. А это не так.

    Когда в шаблоне мы встречаем конструкцию
    <!– BEGIN:block –>
    Это не ветвление и не цикл! Это просто декларация: "На этом месте может быть этот кусок кода. А может и не быть. А может быть несколько раз. А может здесь не быть, но пригодится потом в 10 других местах".

    Поэтому я и сказал что фраза бредовая, ибо на уровне шаблона это просто блок - не более, на более низком уровне, как ты говоришь, т.е. на уровне программного кода, который выполняется в движке шаблонизатора это может быть все что угодно и if и for и print и даже function.

    Т.е. либо ничего, либо все, но никак ни что-то одно. )))))))
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 26 ноября 2008 г. 10:08, спустя 3 дня 16 часов 27 минут

    sap, а если несколько элементов нужно приинклудить?
    includeFile() только же 1 файл может.
    ка думаешь, может массивом сделать?
    типа так

        
    private function includeFile($Page)
       {
           if (!file_exists($this->include_file[$Page]))
               throw new STempException('Include file '.$this->include_file.' not found');
               
           require_once($this->include_file[$Page]);
       }

    Естественно в include_file до этого массив вгонять.

    P.S. В ООП не силен, так что не ругайте если что не так =)

  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 26 ноября 2008 г. 10:11, спустя 3 минуты 20 секунд

    Professor, в 99% случаев достаточно приинклюдить один файл.

    Если нужно два, то удали метод setIncludeFile и измени метод includeFile чтобы подключаемый файл указывался аргументом:

    private function includeFile($include_file)
    {
    $this->include_file = $this->path.$this->include_file;

    if (!file_exists($this->include_file))
    throw new STempException('Include file '.$this->include_file.' not found');

    require_once($this->include_file);
    }


    P.S. И плюсани мне карму :D
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 26 ноября 2008 г. 10:23, спустя 12 минут 1 секунду

    Professor, в 99%

    Ну я хотел Меню приинклудить.
    Зачем она мне в Index-се?
    Может еще где то меню выводить нужно будет, только с другими параметрами.
    и еще какие то куски, которые часто встречаются.

    Вот я и подумал, если массив сделать файлов которые всегда нужно инклудить.
    Типа меню,шапка подвал. Особенно если они меняются.

    include_file['Menu']="menu.tpl.php"
    include_file['Head']="Head.tpl.php"
    include_file['Bottom']="Bottom.tpl.php"

    и вызывать потом
    $this->includeFile("Menu");

    Или не стоит?
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 26 ноября 2008 г. 10:26, спустя 3 минуты 6 секунд

    Professor, можно, конечно.

    Только скажи мне, какой смысл выносить из индекса хеад, футер, меню, если они все равно всегда есть на странице? Почему не оставить их в индексе?
    А если уж меняются, тогда да, твой вариант как раз подходит.
  • md5

    Сообщения: 11956 Репутация: N Группа: в ухо

    Spritz 26 ноября 2008 г. 10:31, спустя 4 минуты 48 секунд


    P.S. И плюсани мне карму :D
    кармадрочеры на пыхе? О_о
    все умрут, а я изумруд
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 26 ноября 2008 г. 10:33, спустя 2 минуты 1 секунду

    md5,
    Наличие кармы всегда приводит к кармадрочерству.
  • md5

    Сообщения: 11956 Репутация: N Группа: в ухо

    Spritz 26 ноября 2008 г. 10:35, спустя 1 минуту 58 секунд


    md5,
    Наличие кармы всегда приводит к кармадрочерству.

    хуёва
    все умрут, а я изумруд
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 26 ноября 2008 г. 10:37, спустя 1 минуту 27 секунд

    Опять квотинг наебнулся)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!