1. Лучший говнокод

    В номинации:
    За время:
  2. PHP / Говнокод #6937

    +167

    1. 1
    $r = $this->client->getBerechneteGrundversorgungsTarifebyPLZundVerbrauchKundenart($this->params);

    По сути не говнокод, но нечитабельность налицо...

    vov4ik, 13 Июня 2011

    Комментарии (41)
  3. PHP / Говнокод #6761

    +158

    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
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    public function getRelatedDataProvider($relationName,$config=array(),$params=array()){
    		
    		$md = $this->getMetaData();
    		if(!isset($md->relations[$relationName])){
    			throw new CDbException(Yii::t('yii','{class} does not have relation "{name}".',
    				array('{class}'=>get_class($this), '{name}'=>$relationName)));
    		}
    		
    		$relation = $md->relations[$relationName];
    		if(!($relation instanceof CHasManyRelation || $relation instanceof CManyManyRelation)){
    			throw new CDbException(Yii::t('yii','Связь {class}.{name} имеет тип, отличный от Has_Many и Many_Many.',
    				array('{class}'=>get_class($this), '{name}'=>$relationName)));
    		}
    		
    		// return new CArrayDataProvider($this->getRelated($relationName,true,$params), $config);
    		
    		var_dump($relation);
    		
    		// копируем критерии из связи
    		$criteria = new CDbCriteria;
    		foreach(array('select', 'condition', 'params', 'limit', 'offset', 'order', 'group', 'join', 'having', 'with', 'alias', 'index', 'together') as $param){
    			$criteria->$param = $relation->$param;
    		}
    		
    		// склеиваем параметры с критерией
    		$criteria->mergeWith(
    			is_string($params)
    				? array('condition' => $params)
    				: $params
    		);
    		
    		// добавляем связь через fk
    		// ВОТ ТУТ Я НИЧЕГО НЕ ПОНИМАЮ :)
    		$thisTable = $this->getTableAlias();
    		$childModel = CActiveRecord::model($relation->className);
    		$childMd = $childModel->getMetaData();
    		$childTable = empty($relation->alias) ? $childModel->getTableAlias() : $relation->alias;
    		//$criteria->join .= " {$relation->joinType} {$thisTable} ON {$thisTable}.{$relation->foreignKey}={$childTable}.{$childMd->tableSchema->primaryKey}";
    		$criteria->params[':fkrel'] = $this->{$relation->foreignKey};
    		$criteria->addCondition("{$childTable}.{$relation->foreignKey}=:fkrel");
    		
    		
    		// собираем кофиг для CActiveDataProvider
    		$dpConfig = array(
    			'criteria' => $criteria,
    		) + $config;
    		
    		echo "CActiveDataProvider( {$relation->className} , criteria: ".var_export($dpConfig['criteria']->toArray(),true)." )";
    		
    		// 
    		$dataProvider = new CActiveDataProvider(
    			$relation->className,
    			$dpConfig
    		);
    		
    		return $dataProvider;
    	}
    	
    }

    res-nullis, 26 Мая 2011

    Комментарии (41)
  4. C# / Говнокод #6684

    +128

    1. 1
    long.Parse(Convert.ToString(Convert.ToSingle(Item.Value.ToString())))

    wiz, 17 Мая 2011

    Комментарии (41)
  5. PHP / Говнокод #5671

    +162

    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
    public static function create_folder ( $path, $rights = self::default_rights )
    	{
    		$result = true;
    		// Получаем список папок
    		$folders = explode( DIRECTORY_SEPARATOR, trim( self::get_absolute_path( $path ), DIRECTORY_SEPARATOR ) );
    		$exists = true;
    		// Ищем существующую папку
    		while ( $exists && sizeof( $folders ) )
    		{
    			$exists_folder[] = array_shift( $folders );
    			$exists = realpath( implode( DIRECTORY_SEPARATOR, $exists_folder ) );
    		}
    		if ( !file_exists( implode( DIRECTORY_SEPARATOR, $exists_folder ) ) )
    		{
    			array_unshift( $folders, array_pop( $exists_folder ) );
    		}
    		$parent = implode( DIRECTORY_SEPARATOR, $exists_folder );
    		unset( $exists_folder );
    		// поочередно создаем папки
    		foreach ( $folders as & $folder )
    		{
    			$parent .= DIRECTORY_SEPARATOR . $folder;
    			$result = mkdir( $parent, $rights );
    		}
    		clearstatcache( );
    		return $result;
    	}

    Вот что значит не знать про необязательный аргумент recursive у mkdir...

    GhOsTMZ, 14 Февраля 2011

    Комментарии (41)
  6. Куча / Говнокод #5313

    +134

    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
    .стиль3 {font-family: Arial; font-size: 22px; font-style: italic;}
    .стиль4 {font-family: Arial; font-size: 18px; font-style: italic; color: rgb(102,0,0);}
    .стиль5 {font-family: Arial; font-size: 18px; font-weight: bold; color: rgb(0,0,204);}
    .стиль6 {font-family: Arial; font-size: 20px; font-weight: bold; color: rgb(32,0,240);}
    .стиль7 {font-family: Arial; font-size: 20px; font-weight: bold; color: rgb(48,0,240);}
    .стиль8 {font-family: Arial; font-size: 20px; font-weight: bold; color: rgb(64,0,240);}
    .стиль9 {font-family: Arial; font-size: 24px; font-weight: bold; color: rgb(255,0,0);}
    .стиль108 {font-family: Arial, sans-serif; font-size: 8px; font-weight: bold; color: rgb(64,0,240);}
    .стиль111 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt;}
    .стиль10 {font-family: Arial, sans-serif; font-size: 10px; font-weight: bold; color: rgb(64,0,240);}
    .стиль12 {font-family: Arial; font-size: 12px; font-weight: bold; color: rgb(64,0,240);}
    .стиль14 {font-family: Arial; font-size: 14px; font-weight: bold; color: rgb(255,0,0);}
    .стиль15 {font-family: Arial; font-size: 12px; color: rgb(0,0,255);}
    .стиль16 {font-family: Arial; font-size: 16px; font-style: italic; color: rgb(255,0,0);}
    .стиль36 {font-size: 36px; color: rgb(102,0,204);}
    .стиль18 {font-family: Arial, Helvetica, sans-serif; font-size: 18px; color: rgb(102,0,0);}

    Цссник сайта одного препода. Я чуть под стол не упал когда увидел:)
    Даешь браузерам цсс кирилицей!

    moonie, 18 Января 2011

    Комментарии (41)
  7. Си / Говнокод #5133

    +132

    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
    struct 
    {
    	unsigned char * low;  //младшая часть адреса
      	unsigned char * high; //страшая часть адреса(только младших 3 бита)
    } padr;
    
    void filladdr(unsigned int * addr) //подготовка адресных ног МК
    {
    	padr.low = (unsigned char *)addr;
    	padr.high = padr.low + 1;
    	PORTB = *padr.low;
    	PORTE &= 0x8;
    	PORTE |= *padr.high;
    
    }
    
    unsigned char readFromSRAM(unsigned int * adrss)
    {
    	char outD;
    	TRISD = 0xFF;
    	filladdr(adrss);
    	PORTA &= 0xFC;
    	NOP(); // задержка на время доступа
    	outD = PORTD;
    	PORTA |= 0x7;
    	return outD;
    }
    
    void writeToSRAM(unsigned int * adrss, unsigned char * data)
    {
    	TRISD = 0x0;
    	filladdr(adrss);
    	PORTD = *data;
    	PORTA &= 0xF8;
    	NOP();  // задержка на время доступа
    	PORTA |= 0x7;
    	PORTD = 0x0;
    }

    говнокод для работы с 2кб внешней SRAM памяти для микроконтролеров pic

    nice_penguin, 02 Января 2011

    Комментарии (41)
  8. Pascal / Говнокод #4943

    +92

    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
    unit uncrt;
    
    interface
    
    procedure ClrScr;
    procedure Sound(Hz: Word);
    procedure NoSound;
    
    procedure TextColor(Color: Byte);
    procedure TextBackground(Color: Byte);
    
    var
      TextAttr: Byte; { Для особо продвинутых случаев }
    
    implementation
    
    procedure ClrScr;
    begin end;
    
    procedure Sound(Hz: Word);
    begin end;
    procedure NoSound;
    begin end;
    
    procedure TextColor(Color: Byte);
    begin end;
    procedure TextBackground(Color: Byte);
    begin end;
    
    end.

    Вас достала школота, раскрашивающая свои бибикающие программы?
    Вам поможет этот модуль!

    TarasB, 16 Декабря 2010

    Комментарии (41)
  9. Си / Говнокод #4210

    +129

    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
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    #include <iostream>
    #include <windows.h>
    #include <pthread.h>
     
    void * func_MyThread(void * args)
    {
     
    int S=0; //
     
       int i;
     
       int j;
     
    int k;
     
    pthread_t MyThread;
     
    pthread_create(&MyThread,NULL,func_MyThread,NULL); 
     
    for (i=1; i <=8; i++)//
     
    pthread_join(MyThread,NULL);
     
    {
     
        S +=i+1; //
    }
     
       pthread_create(&MyThread,NULL,func_MyThread,NULL); 
     
     for (j=4; j <=12; j++)//
     
    pthread_join(MyThread,NULL);
     
    {
     
    S+=j; //
     
    }
     
    pthread_create(&MyThread,NULL,func_MyThread,NULL);
     
    for (k=5; k<=20; k++)
     
    pthread_join(MyThread,NULL);
     
    {
     
        S += k*(2*k-1); 
    }
     
    {
     
    std::cout <<"S= \t" <<S; //
     
    return 0;// 
    }

    студент решал задачу по распределенному программированию.
    все очень серьезно.

    niXman, 09 Сентября 2010

    Комментарии (41)
  10. PHP / Говнокод #4091

    +162

    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
    if ($is_home) {
    			echo '<script>
    function chkcbfrm() {
    	var el = $(\'#inppleasecallback\')[0];
    	if ((el.value == \'\') || (el.value == el.defaultValue)) {
    		alert(\'Введите номер телефона...\');
    		return false;
    	} else
    		return true;
    }
    </script>';
    			echo '<form method="post" id="frmcallback" onsubmit="return chkcbfrm();">';
    			echo '<p>Введите пожалуйста телефон в формате +7-3812-XXXXXX</p>';
    			echo '<input type="text" class="textboxcontact" style="width: 220px" id="inppleasecallback" name="please_callback" value="Введите номер телефона" onfocus="if(this.value==this.defaultValue) this.value=\'\';" onblur="if(this.value==\'\') this.value = this.defaultValue;" />';
    			echo '<a href="#" class="butmore" onclick="if (chkcbfrm()) $(\'#frmcallback\').submit(); return false;">Перезвоните</a>';		
    			echo '<form>';
    		} else {
    			
    			$ЕБАНУТЫЙ_ТЕКСТ = 'Введите пожалуйста телефон в формате +7-3812-XXXXXX (код страны - код города - номер), название организации, ФИО контактного лица и предмет интереса (XXX, XXX, металлопрокат, XXXXXX, крановое хозяйство)';
    			
    			echo '<form method="post" id="frmcallback" onsubmit="if ($(\'#inppleasecallback\')[0].value == $(\'#inppleasecallback\')[0].defaultValue) { alert(\'Введите номер телефона...\'); return false; }">';
    			echo '<textarea class="textareacontact" style="width: 220px; height: 150px;" id="inppleasecallback" name="please_callback" onfocus="if(this.value==this.defaultValue) this.value=\'\';" onblur="if(this.value==\'\') this.value = this.defaultValue;">'.$ЕБАНУТЫЙ_ТЕКСТ.'</textarea>';
    			echo '<input class="submitcontact" type="submit" value="Перезвоните" />';
    			echo '<form>';
    		}

    по просьбе заказчика текст менялся 2-3 раза на дню, за что и получил такое название

    shuchkin, 24 Августа 2010

    Комментарии (41)
  11. 1C / Говнокод #3617

    −132

    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
    Если ДатаЧисло(НачДата) < 10 Тогда
    	ЧислоДата = "0"+ДатаЧисло(НачДата);
    Иначе
    	ЧислоДата =  ДатаЧисло(НачДата);
    КонецЕсли;
    
    Если ДатаМесяц(НачДата) < 10 Тогда
    	МесяцДата = "0"+ДатаМесяц(НачДата);
    Иначе
    	МесяцДата =  ДатаМесяц(НачДата);
    КонецЕсли;			
    		
    Если ДатаЧисло(КонДата) < 10 Тогда
    	КонЧислоДата = "0"+ДатаЧисло(КонДата);
    Иначе
    	КонЧислоДата =  ДатаЧисло(КонДата);
    КонецЕсли;
    
    Если ДатаМесяц(КонДата) < 10 Тогда
    	КонМесяцДата = "0"+ДатаМесяц(КонДата);
    Иначе                                                                     
    	КонМесяцДата =  ДатаМесяц(КонДата);
    КонецЕсли;			
    
    /// ... где-то ниже
    ЧислоДата+"/"+МесяцДата+"/"+ДатаГод(НачДата)+";"+КонЧислоДата+"/"+КонМесяцДата+"/"+ДатаГод(КонДата)

    У меня это ужалось до 2х строк:
    ДатаСтр = Строка(Формат(НачДата, "ДDDMMYYYY"));
    ДатаСтр = СтрЗаменить(ДатаСтр, ".", "/");

    just_geek, 01 Июля 2010

    Комментарии (41)