Сборник индуского кода.

Bermuda

Новичок
Как вы думаете, что делает этот код? Ни за что не догадаетесь! Ответ ниже.
У меня чуть не случился апокалипсец, когда я узнал что именно он делает.
PHP:
/**
 * Metodo recursivo que devuelve una descripcion recortada hasta la ultima
 * palabra completa dentro del rango indicado.
 *
 * @param String 	$idioma		Idioma en el que se debe obtener la
 * descripcion
 * @param Int 		$id			ID del registro a obtener
 * @param Array     $campos		Campos de los que obtener la informacion,
 * ordenados por orden de preferencia. Se devolveran los datos del primer
 * campo con datos
 * @param Int		$puntoCorte	Numero maximo de caracteres a obtener
 * @param Int		$recursiva	Valor que va incrementando hasta obtener un
 * resultado en la busqueda
 * @return mixed $rs Objeto referencia a RecordSet
 */
public function &descripcionCorta($idioma, $id = 0, $imagen, $campos = 'descripcion', $puntoCorte = 300, $recursividad = 1) {
    if($id != 0) {
        $relid = $id;
    } else {
        $relid = '(SELECT ' . $this->nombreTabla . '.id FROM ' . $this->nombreTabla . ", global_imgWeb_publicar img WHERE " .
                     $this->nombreTabla . ".id = img.relid AND img.tabla = '". $this->nombreTabla.
                     "' AND img.flag_visible = 1 ORDER BY fecha_publicacion DESC LIMIT 1)";
    }
    if(is_array($campos)) {
        foreach($campos as $k => $campo) {
            $case .= ($k == 0 ? "" : ",");
            $case .= "case
                    when length($campo) > ". $puntoCorte ." then
                        greatest(
                            locate(' ', substr($campo, 1, ". $puntoCorte ."), length(substr($campo, 1, ". $puntoCorte .")) - $recursividad),
                            locate('.', substr($campo, 1, ". $puntoCorte ."), length(substr($campo, 1, ". $puntoCorte .")) - $recursividad),
                            locate(',', substr($campo, 1, ". $puntoCorte ."), length(substr($campo, 1, ". $puntoCorte .")) - $recursividad)
                        )
                    else
                        length($campo)
                end as $campo";
        }
    } else {
        $case .= "case
                    when length($campos) > ". $puntoCorte ." then
                        greatest(
                            locate(' ', substr($campos, 1, ". $puntoCorte ."), length(substr($campos, 1, ". $puntoCorte .")) - $recursividad),
                            locate('.', substr($campos, 1, ". $puntoCorte ."), length(substr($campos, 1, ". $puntoCorte .")) - $recursividad),
                            locate(',', substr($campos, 1, ". $puntoCorte ."), length(substr($campos, 1, ". $puntoCorte .")) - $recursividad)
                        )
                    else
                        length($campo)
                end as $campo";
    }
    $sql = "SELECT  " . $case;
    $from = ' FROM fundacion_campanyas_idi';
    $where = " WHERE relidioma = '" . $idioma . "' AND relcampanya = " . $relid;
    $sql .= $from . $where;
    $rs = $this->Execute($sql);
    if(($rs->fields) && (count($rs->fields))) {
        if($rs->fields[$campos[0]] == 0 && $rs->fields[$campos[1]] == 0) {
            if(!$this->ErrorMsg()) {
                $desc = $this->descripcionCorta($idioma, $id, $imagen, $campos, $puntoCorte, $recursividad + 5);
            } else {
                w('Se produjo un error de MySQL: ' . $this->ErrorMsg());
            }
        } else {
            foreach($campos as $campo) {
                if(!$desc && $rs->fields[$campo] > 0) {
                   $campos =    $this->abbTabla     . '.id, ' .
                                $this->abbTablaIdi  . '.titulo, ' .
                                ' concat(substr(' . $this->abbTablaIdi . '.' . $campo . ', 1, '. $rs->fields[$campo] . "),'...') as descripcion, " .
                                ' date_format(' . $this->abbTabla . '.fecha_publicacion, "%d-%m-%Y") as fecha_publicacion ';
                    $tablas =   ' FROM ' . $this->nombreTabla . " " . $this->abbTabla .
                                ' INNER JOIN ' . $this->nombreTablaIdi . ' ' . $this->abbTablaIdi .
                                ' ON ' . $this->abbTabla . '.id=' . $this->abbTablaIdi . '.relcampanya' .
                                ' INNER JOIN global_imgWeb_publicar g' .
                                ' ON g.relid = ' . $this->abbTabla . '.id';
                    $where =    ' g.flag_visible = 1' .
                                " AND g.tabla = 'fundacion_campanyas'" .
                                " AND g.relimagen = '". $imagen ."'" .
                                ' AND ' . $this->abbTabla . '.fecha_publicacion <= CURDATE()' .
                                ' AND ' . $this->abbTabla . '.fecha_caducidad > CURDATE()' .
                                ' AND ' . $this->abbTablaIdi . ".relidioma = '" . $idioma . "'";

                    $where .= ' AND ' . $this->abbTabla . '.id = ' . $relid;
                    $order = $this->abbTabla . '.fecha_publicacion DESC';

                    $limit = ' LIMIT 1';

                    $sql = 'SELECT ' . $campos . $tablas;
                    $sql .= ' WHERE ' . $where . ' ORDER BY ' . $order . $limit;
                    $desc = $this->Execute($sql);
                }
            }
        }
        return $desc;
    } else {
        return $this->_getText('LBL_NO_HAY_REGISTROS');
    }
}
Этот метод класса Модель получает из БД описание и обрезает его до 300 символов до ближайшего пробела. РЕКУРСИВНО!
 

Bermuda

Новичок
silent9, так и есть, только от этого не легче...
Коллега наваял. Оторвал бы руки, да он в другом городе.
 

Активист

Активист
Команда форума
> img.tabla
> global_imgWeb_publicar
> descripcionCorta
> ($campos as $campo)
> $puntoCorte

А вы тут треп устроили. Инглишь - язык программистов! У медиков - латынь, у нас инглишь)) Tabla вам всем)

-~{}~ 31.07.09 01:41:

> abbTablaIdi
Дословно "Щас как дам в табла.. иди отсюда..."
 

vegaplex

Новичок
кстати, а вот стало интересно посмотреть на оригинальный Индусский исходник с подобным речитотивом что-то типа (если взять к примеру рунет)
PHP:
$opisanie_fotografii;
$file_tablici;
$nomer_novosti;
$posle_sortirovki
и т.д. интерсно, как бы я себя чувствовал, дебажа реальный, истинный индусский код 0_о
 

A1x

Новичок
наверно так же как индус дебажащий русский исходник типа этого))

интересно, как на индусских форумах называются темы типа "Сборник индуского кода"?)
 

zerkms

TDD infected
Команда форума
xxx:
09:25:14_»_меня зацепил вопрос: интересно, как на индусских форумах называются темы типа "Сборник индуского кода"?)
 

zerkms

TDD infected
Команда форума
они у себя в юморе только не смешные анекдоты и истории постят...
 

iceman

говнокодер
чет на ихнем форуме не одной строчки кода не нашел +)
 

Adelf

Administrator
Команда форума
PHP:
if (count($path) > 1)
    $path[count($path) - 1]["last"] = 1;
else if (count($path))
    $path[0]["last"] = 1;
Обнаружил вот только что. В проекте, который перешел от другого человека. Тщательно припрятанный стандартный прием программиста-индуса.
 

Adelf

Administrator
Команда форума
А почему не весь код приведен? Код вполне правильный(он генерит новый url без одного из параметров, на который и перенаправляет потом), только не совсем ту задачу, что нужна была топикстартеру, решал.
 

tf

крылья рулят
правильный идуский код, который можно заменить на один оператор
остальной бред, типо тега в header тут писать ненужно, ибо он не рабочий
 

MLover

Новичок
PHP:
if ( isset($aPOST['updates'][$iGameId][$iPhoneId][$iLanguageId][$iApiId]['build_id']) &&
     $aPOST['updates'][$iGameId][$iPhoneId][$iLanguageId][$iApiId]['build_id'] != 0 &&
     $aPOST['updates'][$iGameId][$iPhoneId][$iLanguageId][$iApiId]['build_id'] != null &&
     $aPOST['updates'][$iGameId][$iPhoneId][$iLanguageId][$iApiId]['build_id'] != 'NULL')
  {

Это далеко не единственный пример кода одного румынского гениуса с которым я работаю на одном проекте в настоящее время:D
 

AmdY

Пью пиво
Команда форума
после последнего условия код из индусского превращается в код с ошибкой (теоретически)
PHP:
if ( isset($aPOST['updates'][$iGameId][$iPhoneId][$iLanguageId][$iApiId]['build_id']) && 
     $aPOST['updates'][$iGameId][$iPhoneId][$iLanguageId][$iApiId]['build_id'] !== 0 && 
     $aPOST['updates'][$iGameId][$iPhoneId][$iLanguageId][$iApiId]['build_id'] !== null && 
     $aPOST['updates'][$iGameId][$iPhoneId][$iLanguageId][$iApiId]['build_id'] != 'NULL') 
  {
 

tf

крылья рулят
вот еще один перл
http://www . etea . com . ua/echai/inc/copyrights/copyright-image.php?url=http://www . etea . com . ua/sites/echai/upload/images_colection/04_coffee/11_sidamo.jpg
чисто без палева копирайты ставит
 

Wicked

Новичок
этим наверное тоже можно подсунуть ссылку на поток интернет-радио :)
 

mustafa

Новичок
знакомый в скайп прислал кусок кода
PHP:
<?php
function DelOrder(){
    global $dbconn;
    if(isset($_GET["id_order"]) && intval($_GET["id_order"])) {
        $strSQL = "DELETE FROM ".ECARDS_ORDERS_TABLE." WHERE id='".$_GET["id_order"]."'";
        $rs = $dbconn->Execute($strSQL);
    }    
 OrdersList();
}
?>
 
Сверху