1. 1C / Говнокод #20156

    −97

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Запрос = Новый Запрос();
    Запрос.Текст = "ВЫБРАТЬ
    		|	РАЗНОСТЬДАТ(&Дата1, &Дата2, МЕСЯЦ) КАК РезультатРазность";
    Запрос.УстановитьПараметр("Дата1",СтрТЧ.ДатаНачала);
    Запрос.УстановитьПараметр("Дата2",СтрТЧ.ДатаОкончания);
    Результат = Запрос.Выполнить().Выгрузить();
    КолвоМесяцев = Результат[0].РезультатРазность+1;

    Классика жанра. Ходим на сервер, чтобы посчитать разность дат. Ну да, сервер же у нас целыми днями воздух гоняет, заняться ему больше нечем. Давайте 2+2 складывать начнем через сервак.
    Причем, б*ть, через сервер приложений, который в свою очередь погонит запрос на сервер MSSQL.

    mrbus, 08 Июня 2016

    Комментарии (25)
  2. C++ / Говнокод #20155

    −2

    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
    namespace spine {
    
    static SkeletonBatch* instance = nullptr;
    
    void SkeletonBatch::setBufferSize (int vertexCount) {
    	if (instance) delete instance;
    	instance = new SkeletonBatch(vertexCount);
    }
    
    SkeletonBatch* SkeletonBatch::getInstance () {
    	if (!instance) instance = new SkeletonBatch(8192);
    	return instance;
    }
    
    SkeletonBatch::SkeletonBatch (int capacity) :
    	_capacity(capacity), _position(0)
    {
    	_buffer = new V3F_C4B_T2F[capacity];
    	_firstCommand = new Command();
    	_command = _firstCommand;
    
    	Director::getInstance()->getScheduler()->scheduleUpdate(this, -1, false);
    }
    
    SkeletonBatch::~SkeletonBatch () {
    	Director::getInstance()->getScheduler()->unscheduleUpdate(this);
    
    	Command* command = _firstCommand;
    	while (command) {
    		Command* next = command->next;
    		delete command;
    		command = next;
    	}
    
    	delete [] _buffer;
    }

    https://github.com/EsotericSoftware/spine-runtimes/blob/master/spine-cocos2dx/3/src/spine/SkeletonBatch.cpp
    Это просто шедевЕр! Течет как ссаные тряпки...

    MarkusD, 08 Июня 2016

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

    +2

    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
    <?php
    /*
    You can place here your functions and event handlers
    
    AddEventHandler("module", "EventName", "FunctionName");
    function FunctionName(params)
    {
            //code
    }
    */
    
    AddEventHandler('form', 'onBeforeResultAdd', 'my_onBeforeResultAdd');
    CModule::IncludeModule('cleantalk.antispam');
    
    function my_onBeforeResultAdd($WEB_FORM_ID, $arFields, $arrVALUES) {
     $ct_status = COption::GetOptionString('cleantalk.antispam', 'status', '0');
     if ($ct_status == 1) {
      global $APPLICATION;
      $aParams = array();
      $aParams['type'] = 'comment';
      $aParams['sender_email'] = isset($arrVALUES['email']) ? $arrVALUES['email'] : '';
      $aParams['sender_nickname'] = isset($arrVALUES['nickname']) ? $arrVALUES['nickname'] : '';
      $aParams['message_title'] = isset($arrVALUES['title']) ? $arrVALUES['title'] : '';
      $aParams['message_body'] = isset($arrVALUES['message']) ? $arrVALUES['message'] : '';
      $aResult = CleantalkAntispam::CheckAllBefore($aParams, FALSE);
      if (isset($aResult) && is_array($aResult)) {
       if ($aResult['errno'] == 0) {
        if ($aResult['allow'] == 1) {
            //Not spammer - just return;
            return;
        } else {
         if (preg_match('//u', $aResult['ct_result_comment'])) {
          $err_str=preg_replace('/^[^\*]*?\*\*\*|\*\*\*[^\*]*?$/iu','',$aResult['ct_result_comment']);
          $err_str=preg_replace('/<[^<>]*>/iu', '', $err_str);
         } else {
          $err_str=preg_replace('/^[^\*]*?\*\*\*|\*\*\*[^\*]*?$/i','',$aResult['ct_result_comment']);
          $err_str=preg_replace('/<[^<>]*>/i', '', $err_str);
         }
         $APPLICATION->ThrowException($err_str);
         return false;
        }
       }
      }
     }
    }
    ?>

    Четкая конторка написала четкий антиспам-модуль для битрикса и показывает как его нужно использовать. Тут все в одном флаконе - от игнорирования всех стандартов PSR разом до иррациональной реализации ... Пост на хабре: https://habrahabr.ru/company/cleantalk/blog/302800/

    zenn1989, 08 Июня 2016

    Комментарии (9)
  4. Куча / Говнокод #20151

    +3

    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
    <name>customer_language_iso</name>
                          <value>
                            <string>en</string>
                          </value>
                        </member>
                      </struct>
                    </value>
                  </data>
                </array>
              </value>
            </data>
          </array>
        </value>
      </param>
    </params>

    За 7 лет в туризме ни разу не видел человеческого api.
    Страшнющие нечитабельные SOAP, фантастическая вложенность, json внутри xml, время ответа доходит до нескольких минут и прочее, прочее.

    tablecell, 07 Июня 2016

    Комментарии (13)
  5. 1C / Говнокод #20150

    −103

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    Таб = Документ.ПолучитьОбъект().РаботникиОрганизаций;
    Таб.Очистить();
    // блабла...
    
    Таб = Документ.ПолучитьОбъект().РаботникиОрганизаций;
    Раб = Таб.Добавить();
    // Далее идет заполнение строки ТЧ...
    
    Док = Документ.ПолучитьОбъект();
    Док.Записать(РежимЗаписиДокумента.Проведение);

    "А чо у миня ничо ни записываецца????!!!!1111"
    "Ну у миня документ через COM-соединение... наверное изза этово..."
    Ну или, проще говоря, стандартная баба с красным дипломом программиста...

    mrbus, 07 Июня 2016

    Комментарии (7)
  6. PHP / Говнокод #20149

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    код в файле load.php который блокирует установку
    
    if ( ! extension_loaded( 'mysql' ) && ! file_exists( WP_CONTENT_DIR . '/db.php' ) ) {
            wp_load_translations_early();
            die( __( 'Your PHP installation appears to be missing the MySQL extension which is required by WordPress.' ) );
        }

    Приветы! Есть такая ситуация: на хостинг надо установить не очень новую версию вордпрсса, на хосте установлена mysqli, но эта версия вордпресса (а нужна именно эта версия) не поддерживает mysqli, поэтому я планирую работать с удаленной базой mysql. Так вот проблема в том, что при установке вордпресса ирнсталлятор проверяет какой тип базы установлен, конечно же он видит mysqli и выдает ошибку Your PHP installation appears to be missing the MySQL extension which is required by WordPress....В файле load.php пытался закомментировать код отвечающий за проверку, но сайт после этого вообще никаких признаков жизни не падает. Как можно отключить эту проверку? Спасибо)

    viromax, 07 Июня 2016

    Комментарии (13)
  7. PHP / Говнокод #20148

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public function getAllParentCategories($category_id,&$parents = array()) {
    	$parent_id = $this->db->query("SELECT parent_id FROM " . DB_PREFIX . "category WHERE category_id = '" . (int)$category_id . "'")->row['parent_id'];
    	if ($parent_id == 0)
    		return $parents;
    	else {
    		$parents[] = $parent_id;
    		return $this->getAllParentCategories($parent_id,$parents);
    	}
    }

    рекурсивная функция с sql запросом, что может быть лучше?

    php73, 07 Июня 2016

    Комментарии (14)
  8. Куча / Говнокод #20147

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    // on every year that is evenly divisible by 4
    // except every year that is evenly divisible by 100
    // unless the year is also evenly divisible by 400
    pub fn is_leap_year(year: usize) -> bool {
        match ((year % 4), (year % 100), (year % 400)) {
            (0, 0, 0) => true,
            (0, 0, _) => false,
            (0, _, _) => true,
            (_, _, _) => false,
        }
    }

    Интересный способ использовать сопоставление с образцом.

    PS
    Добавьте плиз Rust.

    gorthauer87, 07 Июня 2016

    Комментарии (20)
  9. C# / Говнокод #20145

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    string tempFolder = DateTime.Now.Year.ToString("0000") 
    	+  DateTime.Now.Month.ToString("00")
    	+ DateTime.Now.Day.ToString("00")
    	+ "-" + DateTime.Now.Hour.ToString("00")
    	+ DateTime.Now.Minute.ToString("00")
    	+ DateTime.Now.Second.ToString("00");

    Kronic, 07 Июня 2016

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if (!CModule::IncludeModule("iblock")) die();//7-оборудование. 8-отрасли. 5-разработки. 6-проекты.
    $a=0;if(strpos($_SERVER['REQUEST_URI'], '/development/')!==false) $a=5;
    elseif(strpos($_SERVER['REQUEST_URI'], '/projects/')!==false) $a=6;
    elseif(strpos($_SERVER['REQUEST_URI'], '/serial-production/')!==false) $a=13;
    elseif(strpos($_SERVER['REQUEST_URI'], '/control-systems/')!==false) $a=7;
    elseif(strpos($_SERVER['REQUEST_URI'], '/industry/')!==false) $a=8;

    Классика битрикс - разработки в индусском стиле. Проект стоил 500к+ дерева, не считая поддержки.

    ajiko, 07 Июня 2016

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