- 1
$NETCAT_FOLDER = join( strstr(__FILE__, "/") ? "/" : "\\", array_slice( preg_split("/[\/\\\]+/", __FILE__), 0, -3 ) ).( strstr(__FILE__, "/") ? "/" : "\\" );
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+163
$NETCAT_FOLDER = join( strstr(__FILE__, "/") ? "/" : "\\", array_slice( preg_split("/[\/\\\]+/", __FILE__), 0, -3 ) ).( strstr(__FILE__, "/") ? "/" : "\\" );
Метод определения абсолютного пути к папке, лежащей на сколько-то уровней выше текущей.
+149
$sql = " SELECT *, DATE_FORMAT( `date`, '%d.%m.%y %H:%i:%s' ) as `date` FROM `messages` ORDER BY `id` DESC LIMIT {$n->start()},".PNUMBER;
if ( $qr=mysql_query( $sql ) )
{
while ( $row = mysql_fetch_assoc( $qr ) )
{
echo htmlspecialchars( $row['name'] ).' ['.htmlspecialchars( $row['date'] ).']<br>';
echo smile( htmlspecialchars( $row['message'] ) ).'<br>';
if ( $row['otvet'] )
echo '<b>Ответ: '.smile( htmlspecialchars( $row['otvet'] ) ).'</b><hr>';
else
echo '<hr>';
}
}
else
{
echo 'Произошла системная ошибка';
mysql_function_error( 'Возникла ошибка при запросе. SQL: '.$sql.'|ERROR: '.mysql_error( ) );
}
...
+157
if (!$defaults && !is_null($defaults))
{
$this->form->setDefaults($defaults->toArray());
}
Все три строчки, зато какие! :)
+166
for ( ; $k <= 15; ++$k ) {
$map[$k] = $mx2[$k];
// A
if ( $map[$k] == 10 && $k == 1 || $map[$k] == 10 && $k == 2 || $map[$k] == 10 && $k == 3 ) {
$map[$k] = rand( 1, 9 );
}
// B
if ( $map[$k] == $map[$k-1] ) {
$map[$k] = rand( 1, 9 );
}
// C
if ( $map[$k] == $map[$k-2] && ( $k == 3 || $k == 6 || $k == 9 || $k == 12 || $k == 15 ) ) {
$map[$k] = rand( 1, 9 );
}
// B
if ( $map[$k] == $map[$k-1] ) {
$map[$k] = rand( 1, 9 );
}
// C
if ( $map[$k] == $map[$k-2] && ( $k == 3 || $k == 6 || $k == 9 || $k == 12 || $k == 15 ) ) {
$map[$k] = rand( 1, 9 );
}
// B
if ( $map[$k] == $map[$k-1] ) {
$map[$k] = rand( 1, 9 );
}
// C
if ( $map[$k] == $map[$k-2] && ( $k == 3 || $k == 6 || $k == 9 || $k == 12 || $k == 15 ) ) {
$map[$k] = rand( 1, 9 );
}
// B
if ( $map[$k] == $map[$k-1] ) {
$map[$k] = rand( 1, 9 );
}
// C
if ( $map[$k] == $map[$k-2] && ( $k == 3 || $k == 6 || $k == 9 || $k == 12 || $k == 15 ) ) {
$map[$k] = rand( 1, 9 );
}
// B
if ( $map[$k] == $map[$k-1] ) {
$map[$k] = rand( 1, 9 );
}
// C
if ( $map[$k] == $map[$k-2] && ( $k == 3 || $k == 6 || $k == 9 || $k == 12 || $k == 15 ) ) {
$map[$k] = rand( 1, 9 );
}
}
$mx2 - массив из 15 элементов(элементы имеют значение от 1 до 10, расположены рандомно). Генерируется таким образом новый массив $map, в котором не могут быть два одинаковых элемента подряд(а так же текущий и пред-предыдущий не должны быть равны). Как бы сделал типичный программист? Зафигачил бы в цикле цикл, в которм бы проверял равенство текущего элемента и предыдущего. А вот так сделал мудак со стажем. Не удивительно, что периодически всё работает не так как надо...
+158
# массив вывода BB-кодов
$BBcode = array(
"SIZE" => "<select class='nc_bbcode_bar_size' onChange=\"insert_bbcode('".$winID."','".$formID."','".$textareaID."', '[SIZE=' + this.value + ']', '[/SIZE]'); this.selectedIndex=0;\" name='bb_fontsize' title='".NETCAT_BBCODE_SIZE."' ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_SIZE."');\"" : "").">\r\n<option value=''>-- ".NETCAT_BBCODE_SIZE_DEF." --\r\n<option value='8'>8px\r\n<option value='10'>10px\r\n<option value='12'>12px\r\n<option value='14'>14px\r\n<option value='16'>16px\r\n<option value='18'>18px\r\n<option value='20'>20px\r\n<option value='22'>22px\r\n<option value='24'>24px\r\n</select>\r\n",
"COLOR" => "<a href='#' onClick=\"show_color_buttons('".$textareaID."'); return false;\" id='nc_bbcode_color_button_".$textareaID."' ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_COLOR."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_color.gif' alt='".NETCAT_BBCODE_COLOR."' class='nc_bbcode_wicon'></a>\r\n",
"SMILE" => "<a href='#' onClick=\"show_smile_buttons('".$textareaID."'); return false;\" id='nc_bbcode_smile_button_".$textareaID."' ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_SMILE."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_smile.gif' alt='".NETCAT_BBCODE_SMILE."' class='nc_bbcode_wicon'></a>\r\n",
"B" => "<a href='#' onClick=\"insert_bbcode('".$winID."','".$formID."','".$textareaID."','[B]','[/B]'); return false;\" ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_B."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_bold.gif' alt='".NETCAT_BBCODE_B."' class='nc_bbcode_icon'></a>\r\n",
// ... ещё 8 подобных строк ...
"CUT" => "<a href='#' onClick=\"insert_bbcode('".$winID."','".$formID."','".$textareaID."','[CUT=\'".NETCAT_BBCODE_CUT_MORE."\']','[/CUT]'); return false;\" ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_CUT."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_cut.gif' alt='".NETCAT_BBCODE_CUT."' class='nc_bbcode_icon'></a>\r\n");
Нет, это не Битрикс, это хуже. Зовётся сие чудо NetCat. Моё личное впечатление от CMSки - ТЗ составлял кто-то весьма неглупый, потому что пользоваться довольно удобно и в концепцию заложены прикольные идеи, но вот код писать посадили младшекурсников за экзамен автоматом. Без переписывания половины кода будущего у неё нет. Уже на PHP 5.3 или на MySQL старше 5.0 она отказывается работать. И тем не менее всё больше хостеров гордо пишут на своих сайтах, что поддерживают её.
+167
class string{
function strToUp($lo){
$up=array("а" => "А","б" => "Б","в" => "В","г" => "Г","д" => "Д","е" => "Е","ж" => "Ж","з" => "З","и" => "И",
"й" => "Й","к" => "К","л" => "Л","м" => "М","н" => "Н","о" => "О","п" => "П","р" => "Р","с" => "С",
"т" => "Т","у" => "У","ф" => "Ф","х" => "Х","ц" => "Ц","ч" => "Ч","ш" => "Ш","щ" => "Щ","ъ" => "Ъ",
"ы" => "Ы","ь" => "Ь","э" => "Э","ю" => "Ю","я" => "Я", "a" => "A", "b" => "B", "c" => "C","d" => "D","e" => "E","f" => "F","g" => "G","h" => "H","i" => "I","j" => "J",
"k" => "K","l" => "L","m" => "M","n" => "N","o" => "O","p" => "P","q" => "Q","r" => "R","s" => "S",
"t" => "T","u" => "U","v" => "V","w" => "W","x" => "X","y" => "Y","z" => "Z"
);
return strtr($lo, $up);
}
}
говнокласс ?? взято тут: http://www.runanet.net/technical/php/3/
+167
function getItemsList ($category_id, $page_number, $count, $sort) {
ini_set ('display_errors', 'Off');
$arr = $this->grabber_api_class->loadItemsByCategoryID ($category_id, $page_number, $count, $sort);
ini_set ('display_errors', 'On');
return $arr;
}
+114
function user_report_1()
{
global $dbServer,$dbPort,$dbUser,$dbPwd;
mysql_connect($dbServer.':'.$dbPort,$dbUser,$dbPwd);
mysql_query('Set charset cp1251');
mysql_select_db("DB");
$Sql='SELECT
`авто`.`ИмяОМ`, `авто`.`МаркаАвто`,`авто`.`ГосРегНомер`, `типыавто`.`Тип`, `цветавто`.`Цвет`
FROM
`зао мирком`.`авто`
INNER JOIN `зао мирком`.`типыавто` ON `авто`.`ТипАвто` = `типыавто`.ID
INNER JOIN `зао мирком`.`цветавто` ON `авто`.`ЦветМашины` = `цветавто`.ID
WHERE
`авто`.`Организация` = '.$_SESSION['ID'];
$result=mysql_query($Sql);
$html="<table>";
$html.="<tr><th>Название</th><th>Марка авто</th><th>Гос номер</th><th>Тип авто</th><th>Цвет авто</th></tr>";
while($row=mysql_fetch_row($result))
{
$html.="<tr>";
foreach($row as $val)
{
$html.="<td>$val</td>";
}
$html.="</tr>";
}
$html.="</table>";
return $html;
}
?>
<script>
function update(Elname,HtmlText)
{
var El=document.getElementById(Elname); // Находим елемент Elname в дереве DOM
El.innerHTML=HtmlText;
}
</script>
......
<tr><td><button onClick="update('work','<? echo(user_report_1())?>')">Отчет 1</button></td></tr> // Вот таких кнопочек там 5 штук
......
Заходит пользователь на страницу и ему сразу 5 отчетов генерируется а нужны они ему или не нужны это другой вопрос. Вот это я нагородил 1,5 года назад.
+161
function render_menu_item($tag,$value,$css=null){
$length=strlen($tag);
//Validate the tags
if($tag[0]=='<' && $tag[$length-1]=='>'){
$closingtag=str_replace('<','</',$tag);
if($css)
$tag=str_replace('>',' class="'.$css.'">',$tag);
}
else{
if($css){
$classtag='<'.$tag.' class="'.$css.'">';
$tag='<'.$tag.'>';
$closingtag=str_replace('<','</',$tag);
$tag=$classtag;
}
else{
$tag='<'.$tag.'>';
$closingtag=str_replace('<','</',$tag);
}
}
return $tag.$value.$closingtag;
}
Вот так пишут доблестные Drupal-разработчики из Иордании. Сохранено оригинальное форматирование.
+165
for ($c=0; $c<mysql_num_rows($q); $c++) {
Вот так...