- 1
require_once __DIR__ . '/composer' . '/autoload_real.php';
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+142
require_once __DIR__ . '/composer' . '/autoload_real.php';
Symfony 2
+41
....
<table border="0" cellspacing="0" cellpadding="1">
<tr>
<td width="45%" valign="top">
<?if($arResult["AUTH"]["new_user_registration"]=="Y"):?>
<b><?echo GetMessage("STOF_2REG")?></b>
<?endif;?>
</td>
<td width="10%"> </td>
<td width="45%" valign="top">
<?if($arResult["AUTH"]["new_user_registration"]=="Y"):?>
<b><?echo GetMessage("STOF_2NEW")?></b>
<?endif;?>
</td>
</tr>
<tr>
....
наткнулся в Битриксе, в шаблоне стандартного компонента sale.order.full
Видимо не судьба одной проверкой <?if($arResult["AUTH"]["new_user_registration"]=="Y"):?> исключить всю строку <tr>...</tr>
+71
<?php
</script>
?>
ПыхапеГовно выдаёт:
?>
Как оказалось, ему асболютно пофиг каким тегом его открывают, и каким закрывают... <script language="php"> echo "blah-blah-blah"; ?> тоже работает...
+56
<?php
/*
@package Widgetkit
* @author YOOtheme http://www.yootheme.com
*/
$sets = array_chunk($widget->items, $settings['items_per_set']);
foreach(array_keys($sets) as $s) {
$nav[] = '<li><span></span></li>';
}
?>
<?php foreach ($sets as $set => $items) : ?>
<ul class="set">
<?php foreach ($items as $item) : ?>
<li>
<div><?php echo $item['navigation']; ?></div>
</li>
<?php endforeach; ?>
</ul>
<?php endforeach; ?>
<?php
?>
И так в 230 файлах.
Садо-мазо, блин!
+48
function ruslat ($string) # Задаём функцию перекодировки кириллицы в транслит.
{
$string = ereg_replace("ж","zh",$string);
$string = ereg_replace("ё","yo",$string);
$string = ereg_replace("й","i",$string);
$string = ereg_replace("ю","yu",$string);
$string = ereg_replace("ь","",$string);
$string = ereg_replace("ч","ch",$string);
$string = ereg_replace("щ","sh",$string);
$string = ereg_replace("ц","c",$string);
$string = ereg_replace("у","u",$string);
$string = ereg_replace("к","k",$string);
$string = ereg_replace("е","e",$string);
$string = ereg_replace("н","n",$string);
$string = ereg_replace("г","g",$string);
$string = ereg_replace("ш","sh",$string);
$string = ereg_replace("з","z",$string);
$string = ereg_replace("х","h",$string);
$string = ereg_replace("ъ","",$string);
$string = ereg_replace("ф","f",$string);
$string = ereg_replace("ы","y",$string);
$string = ereg_replace("в","v",$string);
$string = ereg_replace("а","a",$string);
$string = ereg_replace("п","p",$string);
$string = ereg_replace("р","r",$string);
$string = ereg_replace("о","o",$string);
$string = ereg_replace("л","l",$string);
$string = ereg_replace("д","d",$string);
$string = ereg_replace("э","ye",$string);
$string = ereg_replace("я","ya",$string);
$string = ereg_replace("с","s",$string);
$string = ereg_replace("м","m",$string);
$string = ereg_replace("и","i",$string);
$string = ereg_replace("т","t",$string);
$string = ereg_replace("б","b",$string);
$string = ereg_replace("Ё","yo",$string);
$string = ereg_replace("Й","I",$string);
$string = ereg_replace("Ю","YU",$string);
$string = ereg_replace("Ч","CH",$string);
$string = ereg_replace("Ь","",$string);
$string = ereg_replace("Щ","SH'",$string);
$string = ereg_replace("Ц","C",$string);
$string = ereg_replace("У","U",$string);
$string = ereg_replace("К","K",$string);
$string = ereg_replace("Е","E",$string);
$string = ereg_replace("Н","N",$string);
$string = ereg_replace("Г","G",$string);
$string = ereg_replace("Ш","SH",$string);
$string = ereg_replace("З","Z",$string);
$string = ereg_replace("Х","H",$string);
$string = ereg_replace("Ъ","",$string);
$string = ereg_replace("Ф","F",$string);
$string = ereg_replace("Ы","Y",$string);
$string = ereg_replace("В","V",$string);
$string = ereg_replace("А","A",$string);
$string = ereg_replace("П","P",$string);
$string = ereg_replace("Р","R",$string);
$string = ereg_replace("О","O",$string);
$string = ereg_replace("Л","L",$string);
$string = ereg_replace("Д","D",$string);
$string = ereg_replace("Ж","Zh",$string);
$string = ereg_replace("Э","Ye",$string);
$string = ereg_replace("Я","Ya",$string);
$string = ereg_replace("С","S",$string);
$string = ereg_replace("М","M",$string);
$string = ereg_replace("И","I",$string);
$string = ereg_replace("Т","T",$string);
$string = ereg_replace("Б","B",$string);
return $string;
}
function latrus ($string) # Теперь задаём функцию перекодировки транслита в кириллицу.
{
$string = ereg_replace("zh","ж",$string);
$string = ereg_replace("Zh","Ж",$string);
$string = ereg_replace("yo","ё",$string);
$string = ereg_replace("Yu","Ю",$string);
$string = ereg_replace("Ju","Ю",$string);
$string = ereg_replace("ju","ю",$string);
$string = ereg_replace("yu","ю",$string);
$string = ereg_replace("sh","ш",$string);
$string = ereg_replace("yе","э",$string);
$string = ereg_replace("jа","я",$string);
$string = ereg_replace("yа","я",$string);
$string = ereg_replace("Sh","Ш",$string);
$string = ereg_replace("Ch","Ч",$string);
$string = ereg_replace("ch","ч",$string);
$string = ereg_replace("Yo","Ё",$string);
$string = ereg_replace("Ya","Я",$string);
$string = ereg_replace("Ja","Я",$string);
$string = ereg_replace("Ye","Э",$string);
$string = ereg_replace("i","и",$string);
$string = ereg_replace("'","ь",$string);
$string = ereg_replace("c","ц",$string);
$string = ereg_replace("u","у",$string);
$string = ereg_replace("k","к",$string);
$string = ereg_replace("e","е",$string);
$string = ereg_replace("n","н",$string);
$string = ereg_replace("g","г",$string);
...... OVER9000
Кто писал - не знаю. Это финал, господа. Задача на три строчки:
function translit($string, $back = 0) {
$converter = array('а'=>'a','б'=>'b','в'=>'v','г'=>'g ','д'=>'d','е'=>'e','ё'=>'e','ж'=>'zh',' з'=>'z','и'=>'i','й'=>'y','к'=>'k','л'=> 'l','м'=>'m','н'=>'n','о'=>'o','п'=>'p', 'р'=>'r','с'=>'s','т'=>'t','у'=>'u','ф'= >'f','х'=>'h','ц'=>'c','ч'=>'ch','ш'=>'s h','щ'=>'sch','ь'=>'\'','ы'=>'y','ъ'=>'\ '','э'=>'e','ю'=>'yu','я'=>'ya','А'=>'A' ,'Б'=>'B','В'=>'V','Г'=>'G','Д'=>'D','Е' =>'E','Ё'=>'E','Ж'=>'Zh','З'=>'Z','И'=>' I','Й'=>'Y','К'=>'K','Л'=>'L','М'=>'M',' Н'=>'N','О'=>'O','П'=>'P','Р'=>'R','С'=> 'S','Т'=>'T','У'=>'U','Ф'=>'F','Х'=>'H', 'Ц'=>'C','Ч'=>'Ch','Ш'=>'Sh','Щ'=>'Sch', 'Ь'=>'\'','Ы'=>'Y','Ъ'=>'\'','Э'=>'E','Ю '=>'Yu','Я'=>'Ya',);
if ($back == 1) $converter = array_flip($converter);
return strtr($string, $converter);
}
+60
function GetEndUTCTime($stime) {
$ddd = split('-', $stime);
if ($ddd[1] == '01')
$ddd[1] = '02'; else if ($ddd[1] == '02')
$ddd[1] = '03'; else if ($ddd[1] == '03')
$ddd[1] = '04'; else if ($ddd[1] == '04')
$ddd[1] = '05'; else if ($ddd[1] == '05')
$ddd[1] = '06'; else if ($ddd[1] == '06')
$ddd[1] = '07'; else if ($ddd[1] == '07')
$ddd[1] = '08'; else if ($ddd[1] == '08')
$ddd[1] = '09'; else if ($ddd[1] == '09')
$ddd[1] = '10'; else if ($ddd[1] == '10')
$ddd[1] = '11'; else if ($ddd[1] == '11')
$ddd[1] = '12'; else if ($ddd[1] == '12') {
$ddd[1] = '01';
$ddd[0]++;
} $result = $ddd[0] . '-' . $ddd[1] . '-' . $ddd[2];
return $result;
}
// Returns submitted time in appropriate format (e.g. 2009-04-01T09:43:25.5244704Z)
Документацыя по API SmartMove.
+50
if(!$category = $this->EE->product_model->get_category_by_key($key)){
$this->EE->functions->redirect($this->EE->functions->create_url($this->EE->config->item('site_404')));
exit();
}
// Эти 4 строчки достают все продукт которые относятся к выбранной категории. Дальше веселее ..
// Build our variable data
$vars[0] = array(
'site_id' => $category[0]['site_id'],
'category_id' => $category[0]['category_id'],
'category_image' => $img,
'category_detail' => $category[0]['detail'],
'parent_id' => $category[0]['parent_id'],
'category_title' => $category[0]['title'],
'url_title' => $category[0]['url_title'],
'meta_title' => $category[0]['meta_title'],
'meta_keyword' => $category[0]['meta_keyword'],
'meta_descr' => $category[0]['meta_descr'],
'total_results' => count($category[0]["products"]),
'results' => $category[0]["products"],
'no_results' => array(),
'result_filter_set' => '',
'breadcrumb_parent_categories' => $breadcrumb_parent_categories,
'catalog_guest_flag' => $flag_catalog,
'catalog_price_visible' => $catalog_visible
);
// Filter the results
if(count($category[0]["products"]) != 0)
$vars = $this->_filter_results($vars,$key,true);
// А теперь count($vars['results']) == $this->EE->config->products_per_page;
// И самое веселое -
foreach($vars[0]['results'] as $rst){
$tmp = $this->_get_product($rst["product_id"]);
$results[] = $tmp[0];
}
$vars[0]['results'] = $results;
// Функция _get_product() получает все данные о продукте: отзывы, описание, цена, куча опций. Пара строчек оттуда:
if($product_id == ''){
// Get product by param or dynamically
$product_id = $this->EE->TMPL->fetch_param('product_id');
$url_title = $this->EE->TMPL->fetch_param('url_title');
if($product_id != ''){
$products = $this->EE->product_model->get_products($product_id);
}else{
// get by url key
$key = ($url_title == '') ? $this->EE->uri->segment(2) : $url_title;
if(!$products = $this->EE->product_model->get_product_by_key($key)){
// Not a product page
return false;
}
}
}else{
if(!$products = $this->EE->product_model->get_products($product_id)){
return false;
}
}
// Очень интересен вызов функции get_products(), эта ф-ция вызывается и для продуктов в каталоге и на странице продукта.
// Каждый вызов тянет за собой 25 запросов в базу, если на странице 40 продуктов * 25 = 1000 запросов = ~ 20 секунд на загрузку страницы
кусочек кода который выводит продукты в каталог, взят из eCommerce плагина BrilliantRetail для ExpressionEngine. Плагин кстати говоря стоит 150 баксов, мда )
+53
protected function CreateClass($className, $params) {
switch (count($params)) {
case 0:
return new $className();
break;
case 1:
return new $className($params[0]);
break;
case 2:
return new $className($params[0], $params[1]);
break;
case 3:
return new $className($params[0], $params[1], $params[2]);
break;
case 4:
return new $className($params[0], $params[1], $params[2], $params[3]);
break;
case 5:
return new $className($params[0], $params[1], $params[2], $params[3], $params[4]);
break;
case 6:
return new $className($params[0], $params[1], $params[2], $params[3], $params[4], $params[5]);
break;
case 7:
return new $className($params[0], $params[1], $params[2], $params[3], $params[4], $params[5], $params[6]);
break;
case 8:
return new $className($params[0], $params[1], $params[2], $params[3], $params[4], $params[5], $params[6], $params[7]);
break;
case 9:
return new $className($params[0], $params[1], $params[2], $params[3], $params[4], $params[5], $params[6], $params[7], $params[8]);
break;
case 10:
return new $className($params[0], $params[1], $params[2], $params[3], $params[4], $params[5], $params[6], $params[7], $params[8], $params[9]);
break;
default:
echo "Too many arguments";
return null;
break;
}
}
Продолжение одного нашумевшего блокбастера: Радж и "шоколадная" фабрика.
Исходники взяты из компонента JEvents для Joomla. Файл из папки "icalevent". Думаю что стоит сделать акцент на iCAL, есть в этом что-то особенное.
+59
"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
"IBLOCK_ID" => $arParams["IBLOCK_ID"],
"ELEMENT_SORT_FIELD" => $arParams["ELEMENT_SORT_FIELD"],
"ELEMENT_SORT_ORDER" => $arParams["ELEMENT_SORT_ORDER"],
"PROPERTY_CODE" => $arParams["LIST_PROPERTY_CODE"],
"META_KEYWORDS" => $arParams["LIST_META_KEYWORDS"],
"META_DESCRIPTION" => $arParams["LIST_META_DESCRIPTION"],
"BROWSER_TITLE" => $arParams["LIST_BROWSER_TITLE"],
"INCLUDE_SUBSECTIONS" => $arParams["INCLUDE_SUBSECTIONS"],
"BASKET_URL" => $arParams["BASKET_URL"],
"ACTION_VARIABLE" => $arParams["ACTION_VARIABLE"],
"PRODUCT_ID_VARIABLE" => $arParams["PRODUCT_ID_VARIABLE"],
"SECTION_ID_VARIABLE" => $arParams["SECTION_ID_VARIABLE"],
"FILTER_NAME" => $arParams["FILTER_NAME"],
"DISPLAY_PANEL" => $arParams["DISPLAY_PANEL"],
"CACHE_TYPE" => $arParams["CACHE_TYPE"],
"CACHE_TIME" => $arParams["CACHE_TIME"],
"CACHE_FILTER" => $arParams["CACHE_FILTER"],
"CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
"SET_TITLE" => $arParams["SET_TITLE"],
"SET_STATUS_404" => $arParams["SET_STATUS_404"],
"DISPLAY_COMPARE" => $arParams["USE_COMPARE"],
"PAGE_ELEMENT_COUNT" => $arParams["PAGE_ELEMENT_COUNT"],
"LINE_ELEMENT_COUNT" => $arParams["LINE_ELEMENT_COUNT"],
"PRICE_CODE" => $arParams["PRICE_CODE"],
"USE_PRICE_COUNT" => $arParams["USE_PRICE_COUNT"],
"SHOW_PRICE_COUNT" => $arParams["SHOW_PRICE_COUNT"],
Очень ценные данные. Сразу как-то подозрительно, когда видишь в cms такое. Ну это ж божественная суть битрикса...
+117
class traffic {
function traffic() {
global $mosConfig_live_site;
$remhost = @$_SERVER['REMOTE_HOST'];
if (strpos($remhost,".") != false) { $remhost = strtok($remhost,"."); }
$remhost = strtoupper($remhost);
$mb = @$_COOKIE['mb'];
//if ($mb == -1 || $mb == 0) { return; }
if (isset($mb)) {
if ($mb < 300) { $colormb = "green"; }
else { $colormb = "red"; }
$t =<<<TXT
<center><b>
<font size="4" style="line-height: 40px"><font color="$colormb"><p>eto prosto tak</p> $mb </font> </font>
<br><font size="2" color="blue" style="line-height: 20px">$remhost</font></br></b></center>
<font color="brown" size="1" style="line-height: 8px">* -01:00</font>
TXT;
echo $t ;
echo @$_SERVER['HTTP_USER_AGENT'];
return;
}
$headers = apache_request_headers(); //
if (!isset($headers['Authorization'])) { //
header('HTTP/1.0 401 Unauthorized'); //
header('WWW-Authenticate: NTLM'); // - NTLM
return; } //
//
if (substr($headers['Authorization'],0,5) == 'NTLM ') { // , NTLM-
$chain = base64_decode(substr($headers['Authorization'],5)); //
switch (ord($chain{8})) { //
case 3: // 5 - type-3
foreach (array('LM_resp','NT_resp','domain','user','host') as $k=>$v) {
extract(unpack('vlength/voffset',substr($chain,$k*8+14,4)));
$val = substr($chain,$offset,$length);
//echo "$v: ".($k<2 ? hex_dump($val) : iconv('UTF-16LE','CP1251',$val))."<br>\r\n";
switch ($k) {
case 2:
$domain = iconv('UTF-16LE','CP1251',$val);
case 3:
$username = iconv('UTF-16LE','CP1251',$val);
//case 4:
// $hostname = iconv('UTF-16LE','CP1251',$val);
}
}
$sdlt = fopen("http://sdlt/sdlt.php?username=".$username."&domainname=".$domain."&key=4125896370","r");
$str = fscanf($sdlt,"%s");
fclose($sdlt);
list($mb) = $str;
if ($mb == -1) { return; }
setcookie("mb",$mb,time()+64800);
if ($mb < 300) { $colormb = "green"; }
else { $colormb = "red"; }
$t =<<<TXT
<center><b> -<br> :<br>
<font size="4" style="line-height: 40px"><font color="$colormb"><p>privet ilya!!!!!!!!!!!!!!!!!!!!!! </p> $mb </font><font color="brown">*</font></font><br>
<font style="line-height: 24px"> :</font><br>
<font size="1" color="blue" style="line-height: 20px">$remhost ($domain - $username)</font><br></b></center>
<font color="brown" size="1" style="line-height: 8px">* - 01:00</font>
TXT;
echo $t;
return;
case 1: // 3
//if (ord($chain{13}) == 0xB2 || ord($chain{13}) == 0x8201) { // NTLM 0xb2 13 type-1:
$chain = "NTLMSSP\x00".//
"\x02" /* */ ."\x00\x00\x00\x00\x00\x00\x00".
"\x28\x00" /* */ ."\x00\x00".
"\x01\xB2" /* */ ."\x00\x00".
"\x00\x02\x02\x02\x00\x00\x00\x00". // nonce
"\x00\x00\x00\x00\x00\x00\x00\x00";
header('HTTP/1.0 401 Unauthorized');
header('WWW-Authenticate: NTLM '.base64_encode($chain)); // type-2
return;// }
}
}
}
}
}
$traffic=new traffic();
безжалостный и беспощадный ООП в php