1. PHP / Говнокод #3300

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <?$APPLICATION->IncludeFile(
    			$APPLICATION->GetTemplatePath("include_areas/contacts.php"),
    			Array(),
    			Array("MODE"=>"html")
    		);?> </div>

    Вот так индусские проггеры из Bitrix показывают контакты сайта.

    Запостил: aleferov, 24 Мая 2010

    Комментарии (34) RSS

    • Битрикс полностью состоит из такого говна.
      Ответить
    • Поясните в чем говнокод?
      Ответить
      • Неадекватная через-задницу реализация, горазно приятнее видеть такое:
        $this->renderTemplate('include_areas/contacts')

        Учитывая ещё то, что ("MODE"=>"html") вообще здесь быть не должно - о типе контента должен знать не шаблонизатор, а сам контроллер. Который и выберет по типу нужный темплейт.
        Ответить
        • :) ну начнем с того что реализации MVC в битриксе нет, есть ее жалкое подобие. И шаблон выбирается не контроллером, а пользователем в настройках компонента или включаемой области.

          Применения ООП в битриксе тоже не особо много, в основном библиотеки статических методов.
          Ответить
        • в данном случае не вижу преимуществ перед include('include_areas/contacts.php');

          и вообще, использование активных шаблонов это зло. А еще к слову, смарти-подобные выкидыши тоже. единственный более-менее грамотный шаблонизатор для пхп видел только phpTal
          Ответить
          • php и есть шаблонизатор
            а то говно что зенд заталкивает в последние версии выглядит как на корове седло, кривоватое засраное седло
            Ответить
            • шаблонизатор, только шаблоны активные... про это можно почитать немного погуглив, а на скорую руку вот:
              <?php for($i=0;$i<10;$i++) {?>
               <input type="text" name="text<?php echo($i); ?>" value="<?php echo($i); ?>"/>
              <?php } ?>


              <t:loop value="i" range="0..9">
               <input type="text" t:name="'text'+i" value="i"/>
              </t:loop>


              что более читаемо для непрограммиста (напр. дизайнера) и лучше выглядит в визуальном редакторе? воот
              Ответить
              • В нормальных проектах дизайнер не верстатет, а верстает верстальщик. Верстальщики поймут любой шаблонизатор, но предпочитают xslt. Потому в нормальных проектах (уровня Яндекс) юзают xslt. В проектах средней паршивости юзают сам PHP, и тольков самых гавеных проектах юзают всякие смарти. Дальше идут мега-гавеные проекты, где мартышки пытаются написать собственные шаблонизаторы.
                Ответить
                • > Верстальщики поймут любой шаблонизатор
                  впервые слышу. все говорят об обратном

                  > но предпочитают xslt.
                  толковый подход, но (проверял сам) почему то тормозной (сделал схему, хмлы, хслт-преобразовывал в хтмл). мож я тупой задорукий

                  > мега-гавеные проекты, где мартышки пытаются написать собственные шаблонизаторы
                  если очередной смарти, то это уже ГК "космического масштаба и космической же глупости" (ц)
                  а вообще можно попробовать написать толковый
                  Ответить
                  • А Вы знаете хороших верстальщиков? Их довольно мало, на самом деле.
                    Поверьте: люди, знающие чем quirks mode отличается от standard complaint, что такое "свойство hasLayout" и "ie box model bug" -- достаточно умны, что бы освоить любой шаблонизатор, тем более такой простой как PHP: не на лиспе же их заставляют писать.

                    В школьница с фронт-пейджем конечно же не разберется, это да.

                    >>толковый подход, но (проверял сам) почему то тормозной (сделал схему, хмлы, хслт-преобразовывал в хтмл). мож я тупой задорукий

                    Во-первых нужно правильно работать с XML (не юзать например DOM ни в коем случае).
                    Во-вторых XSLT нужно писать правильно: это тоже мало кто умеет. Достаточно сделать x-path выражение для всего множества нодов (всех потомков корня) что бы все повисло вусмерть.
                    И наконец аутпут надо кешировать.
                    Яндекс как-то живет с XSLT, а там запросов не так уж мало, я думаю.
                    Но XSLT это язык, и его надо учить. К сожалению порог вхождения высок, выше чем в смарти. Но хорошие верстальщики (о которых я писал выше) его знают и любят.

                    >>а вообще можно попробовать написать толковый
                    Поверьте, многие пытались. Это не просто. Если у Вас есть лишний человекогод -- то наверное Вы можете написать хороший шаблонизатор. А если писать его на коленке -- будет очередной смарти.

                    Я думаю что на PHP надо использовать или PHP или уж тогда XSLT.
                    Ответить
                    • > А Вы знаете хороших верстальщиков? Их довольно мало, на самом деле.
                      вот именно, что больше кто ненавидит пхп

                      > правильно работать с...
                      ДОМ не использовал, а вот с XSLT не долго возился
                      и кеширования, конечно, не было

                      > лишний человекогод
                      пробую уже месяц. Хм, потихоньку... Труднее с языком выражений

                      > Я думаю что на PHP надо использовать или PHP или уж тогда XSLT.
                      это да. быстрее пхп-шаблонизатора чем пхп не будет никогда
                      Ответить
                  • вы правильно слышали на счёт верстальщиков, от коллектива к коллективу разный уровень
                    Ответить
                    • задача гения (программиста) сделать так, что бы морду можно было повесить на обезьяноподобных верстальщиков... Че та именно на хомосапиенс-верстальщиков скупятся
                      а обезьянки умеют только в визуалке, и пхп или смарти их вводит в ступор и агрессию
                      Ответить
                      • Ясно же, что вы ни одной серьезной веб-студии не видели, так зачем же все эти бессмысленные комментарии?
                        Ответить
                        • чем серьезней студия, тем больше в ней говна
                          Ответить
                          • Выгнали за профнепригодность? Не расстраивайтесь, вы догоните из уровень, лет через 5.
                            Ответить
                • хуже XSLT тяжело что-то придумать, он критически усложняет представление. Если шаблонизатор не позволяет сделать что-то быстро и не обладает прозрачным интерфейсом, а это критерии для большинства случаев его применения - то нафик такой шаблонизатор вообще. XSLT не потому используют, как вам кажется - достаточно составить сводную таблицу сравнительных характеристик..
                  Ответить
                  • как всегда - задумка благая, реализация кошмар. Сам по себе хслт не плох, но в верстке далек от хтмл
                    Ответить
                    • > ... хслт не плох, но в верстке далек от хтмл
                      > xslt сравнивается с html
                      ЩИТО?
                      Ответить
                      • я говорю об хслт шаблонах
                        Ответить
                        • ... и сравниваете их с таинственными HTML шаблонами?
                          Ответить
                          • шаблон веб-морды должен в итоге рождать хтмл, ага? значит, натурально, что к нему максимально приближен
                            Ответить
                    • чем же так неплох xslt, огласите весь список, пожалуйста =)
                      Ответить
                      • Такая же естественная штука, как CSS для управления стилями HTML.

                        Он быстрый, он декларативный, это стандарт, реализованный для многих языков, поддерживается браузерами (правда, пока что с оговорками).

                        Ну и потом, ни в одном шаблонизаторе на вход не поступает конкретная независимая структура данных: я яве объекты, в рнр массивы и переменные (обычно) – все это делает из шабона неоднородную кашу. А в XSLT – на входе одно дерево, на выходе другое, это очень удобно.

                        Короче, если хотите достичь идеального разделения труда верстака и программиста – используйте XSLT
                        Ответить
          • да ну, а наличие $this вас не наталкивает, что это возможно вполне полноценный хэлпер? или тот же renderTemplate позволяет вторым параметром передавать массив локальных переменных, заметьте, что с областью видимости исключительно локальной.
            Ответить
      • Видимо в том, что можно было обычный include использовать.
        Ответить
        • Нельзя ибо данный метод ищет файл рекурсивно в определенных местах, а в режиме редактирования добавляет блоки для управления файлом.
          Ответить
      • Еще эти какашки распиханы по отдельным фаилам (по 3 строчки каждый)
        Ответить
        • И в чем проблема? Вы не знаете где такие включения могут встретится? Мы обсуждаем реализацию включения редактируемой области или что?
          Ответить
          • Да проблемы особо-то и нет.
            Закомство с Bitrix было по касательной, и включало в себя переливку сотен php фаилов весом по 30 байт по FTP.
            Ответить
    • найдите мне девушку
      Ответить

    Добавить комментарий