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

    +52

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    <?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
    <?if (!empty($arResult)):?>
    <ul id="horizontal-multilevel-menu">
    <?
    $previousLevel = 0;
    foreach($arResult as $arItem):?>
    	<?if ($previousLevel && $arItem["DEPTH_LEVEL"] < $previousLevel):?>
    		<?=str_repeat("</ul></li>", ($previousLevel - $arItem["DEPTH_LEVEL"]));?>
    	<?endif?>
    	<?if ($arItem["IS_PARENT"]):?>
    		<?if ($arItem["DEPTH_LEVEL"] == 1):?>
    			<li><a href="<?=$arItem["LINK"]?>" class="<?if ($arItem["SELECTED"]):?>root-item-selected<?else:?>root-item<?endif?>"><?=$arItem["TEXT"]?></a>
    				<ul>
    		<?else:?>
    			<li<?if ($arItem["SELECTED"]):?> class="item-selected"<?endif?>><a href="<?=$arItem["LINK"]?>" class="parent"><?=$arItem["TEXT"]?></a>
    				<ul>
    		<?endif?>
    	<?else:?>
    		<?if ($arItem["PERMISSION"] > "D"):?>
    			<?if ($arItem["DEPTH_LEVEL"] == 1):?>
    				<li><a href="<?=$arItem["LINK"]?>" class="<?if ($arItem["SELECTED"]):?>root-item-selected<?else:?>root-item<?endif?>"><?=$arItem["TEXT"]?></a></li>
    			<?else:?>
    				<li<?if ($arItem["SELECTED"]):?> class="item-selected"<?endif?>><a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a></li>
    			<?endif?>
    		<?else:?>
    			<?if ($arItem["DEPTH_LEVEL"] == 1):?>
    				<li><a href="" class="<?if ($arItem["SELECTED"]):?>root-item-selected<?else:?>root-item<?endif?>" title="<?=GetMessage("MENU_ITEM_ACCESS_DENIED")?>"><?=$arItem["TEXT"]?></a></li>
    			<?else:?>
    				<li><a href="" class="denied" title="<?=GetMessage("MENU_ITEM_ACCESS_DENIED")?>"><?=$arItem["TEXT"]?></a></li>
    			<?endif?>
    		<?endif?>
    	<?endif?>
    	<?$previousLevel = $arItem["DEPTH_LEVEL"];?>
    <?endforeach?>
    <?if ($previousLevel > 1)://close last item tags?>
    	<?=str_repeat("</ul></li>", ($previousLevel-1) );?>
    <?endif?>
    </ul>
    <div class="menu-clear-left"></div>
    <?endif?>

    Очередной говнокод от битрикса. "Генерация" выпадающего горизонтального меню.

    Запостил: avtorfox, 12 Июня 2012

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

    • B_PROLOG_FORTH_RAPIRA_INCLUDED
      Ответить
    • Когда в PHP отключат и запретят короткие теги, битрикс перестанет работать. Сплошная печаль.
      Ответить
      • Ну что поделать. Судьба.

        P.S. Кстати с длинными тегами было бы еще ужасней.
        Ответить
      • "битрикс перестанет работать" - по Вашему то что делает битрикс называется "работать"? :)
        Ответить
        • Ну что-то оно таки делает.
          Ответить
          • Копирует на хост 15 тысяч файлов и что-то с ними делает. Угу, работает :)
            Ответить
            • Ваше несогласие с логикой работы битрикса видится мне обидой ребенка на непонимание, как работает вертолет.
              Ответить
              • Не вертолёт, а говно. Сразу видно что ты нормальных цмс не видел
                Ответить
                • Сразу видно, что ты в школе плохо русский учил. Очевидно, ты мне сейчас будешь говорить, что хорошие cms это жумла или вордпресс или любой другой отстойный опенсорс:)
                  Ответить
                  • Покажите мне неопенсорсные CMS.
                    Ответить
                    • Что-нибудь жутко энтерпрайзное и платное на жабе или шарпе... Всяко же есть.
                      Ответить
                      • Но явно не Битрикс.
                        Ответить
                        • битрикс как раз жутко энтерпрайзное и платное, только что не на жабе.
                          Ответить
                          • Но он ведь опенсурсен (как и все на пхп).
                            Ответить
                            • И всё-таки на пхп не всё опенсурсно. Теоретически CMS можно поставить в виде двоичных модулей, скомпилированных для Zend Guard / Zend Optimizer или ещё для какого-нибудь загрузчика байткода. Но я не могу вспомнить таких CMS, потому и спросил у barbarbar'а.

                              Можно ещё обфусцировать код...
                              Ответить
                              • Ответить
                              • Верно, один файлик, в котором происходит проверка лицензии, подключение ядра и проверка авторизации пользователя - обфусцирован. Так что битрикс нельзя считать опенсорсной cms еще и поэтому.

                                В любом случае, опенсорс это когда лицензия позволяет брать и использовать чужой код, в том числе менять его. А насколько я знаю, ни одна из наших платных русских cms этого не дает делать.
                                Ответить
                            • Это не так. Лицензия не позволяет изменять исходный код.
                              Ответить
                    • Хм, довольно странный вопрос для веб-программиста.
                      Ответить
                    • юми)

                      На самом деле всякмй CMS это говно (или НЕ говно, от задачи зависит) в той или иной степени. Просто в случае платного CMS ты получаешь поддержку, а с бесплатным ибешся сам. Вот и вся разница.

                      Но использовать CMS (даже бесплатный!) для простого сайта лучше чем писать с ноля.
                      Ответить

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