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

    +157

    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
    <?if (is_array($GLOBALS['cart_content'])):?>
    	<?foreach ($GLOBALS['cart_content'] as $item_id=>$odin):?>
    		<?if (isset($arResult['ITEMS'][$item_id])):?>
    			$('#product-order-<?=$item_id?>').html('<a href="/personal/cart/" class="buy" style="padding-left:20px">В корзине</a>').parent().addClass('bought');
    		<?endif;?>
    	<?endforeach;?>
    <?endif;?>
    
    
    <?if (is_array($GLOBALS['wishlist_content'])):?>
    	<?foreach ($GLOBALS['wishlist_content'] as $item_id=>$odin):?>
    		<?if (isset($arResult['ITEMS'][$item_id])):?>
    			$('#product-wishlist-<?=$item_id?>').html('<a href="/personal/wishlist/" class="reserve">Отложено</a>');
    		<?endif;?>
    	<?endforeach;?>
    <?endif;?>

    Довелось переделывать шаблон магазина на злополучном битриксе. Нашёл в старом шаблоне такую красоту, этот кусок вставляется в основной шаблон внутри тега <script>, предназначение его — на товарах которые в корзине отображать вместо ссылки купить надпись в корзине.

    Запостил: sickuenser, 03 Декабря 2010

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

    • христоматийное дерьмище
      Ответить
    • и причем GLOBALS, круто
      Ответить
      • Ви как-то по другому можете передать переменные внутрь шаблона?
        Это пейсали сраные неучи, но благодаря им мы имеем деньги
        Ответить
        • > Ви как-то по другому можете передать переменные внутрь шаблона?

          да. даже сраный смарти понимает переменные, передаваемые в стиле $temp->prop='val'
          Ответить
    • Ну да. Именно о таком коде вспоминаю, когда мелькает реклама о битриксе с его кампанентной структурой, архитектурой мвц и компонентах 2.0
      Ответить
      • >>кампанентной
        это очень правильно.))

        я еще не видел ни одного компонентного приложения на пыхе.
        Ответить
    • Интересно, а я нигде не наблюдал там такого кода. Это писали не программисты битрикса, а корявые разработчики, которые делали сайт на битриксе. Видать ума и опыта у них не хватило добраться до шаблонов.

      И уж поверьте, нигде в стандартных компонентах и модулях битрикса не пишут отрыто русский текст, иначе локализация будет страдать, это однозначно не код битрикса.
      Ответить
      • да ладно вам)
        первый попавшийся файл из битрикса взял, а там:
        if ($ex = $APPLICATION->GetException())
        {
        	echo CAdminMessage::ShowMessage(Array("TYPE" => "ERROR", "MESSAGE" => GetMessage("MOD_INST_ERR"), "HTML" => true, "DETAILS" => $ex->GetString()));
        }
        
        global $public_installed;
        
        /*Калл вырезан*/
        
        if ($public_installed) :
        ?>
        <p><?=GetMessage("MOD_DEMO_DIR")?></p>
        <table border="0" cellspacing="0" cellpadding="3">
        	<tr>
        		<td align="center"><p><b><?=GetMessage("MOD_DEMO_SITE")?></b></p></td>
        		<td align="center"><p><b><?=GetMessage("MOD_DEMO_LINK")?></b></p></td>
        	</tr>
        	<?
        	foreach($arSite as $fSite)
        	{
        		global ${"install_public_".$fSite["SITE_ID"]};
        		global ${"public_path_".$fSite["SITE_ID"]};
        		global ${"public_rewrite_".$fSite["SITE_ID"]};
        		global ${"is404_".$fSite["SITE_ID"]};
        
        		if (${"install_public_".$fSite["SITE_ID"]} == "Y" && !empty(${"public_path_".$fSite["SITE_ID"]}))
        		{
        			?>
        			<tr>
        				<td width="0%"><p>[<?=$fSite["SITE_ID"]?>] <?=$fSite["NAME"]?></p></td>
        				<td width="0%"><p><a href="<?if(strlen($fSite["SERVER_NAME"])>0) echo "http://".$fSite["SERVER_NAME"];?><?=$fSite["DIR"].${"public_path_".$fSite["SITE_ID"]}?>/"><?=$fSite["DIR"].${"public_path_".$fSite["SITE_ID"]}?>/</a></p></td>
        			</tr>
        			<?
        		}
        	}
        	?>
        </table>
        <?
        endif;
        ?>
        <form action="<?echo $APPLICATION->GetCurPage()?>">
        	<input type="hidden" name="lang" value="<?echo LANG?>">
        	<input type="submit" name="" value="<?echo GetMessage("MOD_BACK")?>">	
        <form>


        и глобальные переменные, и ошибка в таге form, и каша из логики и HTMLя и табличная верстка и устаревшие, не семантические таги и , и хеши с литеральными ключами: весь набор дерьма, который только бывает. Разве что SQL инъекции не хватает.

        Битрикс по дерьмовости кода не отличается от любой PHP цмски, разве что стоит дороже
        Ответить

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