1. C++ / Говнокод #19938

    +6

    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
    #include <iostream>
        using namespace std;
         
        struct One
        {
          bool operator==(const One &) { cout << "hello from One!" << endl; return true; }
          bool operator==(unsigned int) { cout << "hello from One!" << endl;  return true; }
        };
        One operator "" x( unsigned long long int ) { return One{}; }
        One operator "" xMAGICK( unsigned long long int ) { return One{}; }
         
        int main()
        {
          cout << (0xMAGICK == 0x);
         
          return 0;
        }

    http://ideone.com/gGYFce
    Расширяем множество шестнадцатеричных цифр при помощи UDL
    В C++17 осталось разрешить перегрузку операторов встроенных типов - вот тогда можно будет оторваться по-полной!

    gost, 05 Мая 2016

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

    +1

    1. 1
    2. 2
    3. 3
    // $r[2] = 1080;
    $timeStart = (strlen(floor($r[2] / 60)) == 1 ? "0" . floor($r[2] / 60) : floor($r[2] /
                                           60)) . ":" . (strlen($r[2] % 60) == 1 ? "0" . $r[2] % 60 : $r[2] % 60);

    Превращаем минуты во время в формате H:i by ©senior shaurma developer

    pahhan, 05 Мая 2016

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

    −96

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Процедура Таймаут(ЧислоСекунд)
    	НачВремя = ТекущаяДата();
    	Пока 1 = 1 Цикл
    		Если ТекущаяДата() - НачВремя > ЧислоСекунд Тогда
    			Прервать;
    		КонецЕсли;
    	КонецЦикла; 
    КонецПроцедуры

    Вот это я понимаю!!! Таймаут...
    Это из той же конфигурации, что и прошлые мои кладки.
    По прежнему коплю на патроны.
    Открыт для любых конструктивных идей.

    ivan_0110, 05 Мая 2016

    Комментарии (14)
  4. PHP / Говнокод #19933

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $sql = "SELECT COUNT(`user_id`) FROM `link_empl_tf` WHERE `sched_date` >= " . $DB->
        F(substr($startDate, 6, 4) . "-" . substr($startDate, 3, 2) . "-" . substr($startDate,
                0, 2)) . " AND `sched_date` <= " . $DB->F(substr($endDate, 6, 4) . "-" . substr
            ($endDate, 3, 2) . "-" . substr($endDate, 0, 2)) . " AND `user_id`=" . $DB->F($uParam[0]) .
        ";";

    Date formatting by ©senior shaurma developer

    pahhan, 05 Мая 2016

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

    +1

    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
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    <?
    	/*
    		Bitrix Cleaner v2.2 - https://github.com/creadome/bitrixcleaner
    		Быстрая очистка 1С-Битрикс
    		(c) 2015 Станислав Васильев - http://creado.me
    		[email protected]
    	*/
    	require $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_before.php';
    	$trash = array(
    		'cache' => array(
    			'/bitrix/cache/' => 'Неуправляемый кеш',
    			'/bitrix/managed_cache/' => 'Управляемый кеш',
    			'/bitrix/html_pages/' => 'HTML кеш'
    		),
    		'files' => array(
    			'/upload/resize_cache/' => 'Кеш изображений'
    		)
    	);
    	if ($_GET['clean']) {
    		BXClearCache(true);
    		$GLOBALS['CACHE_MANAGER']->CleanAll();
    		$GLOBALS['stackCacheManager']->CleanAll();
    		$staticHtmlCache = \Bitrix\Main\Data\StaticHtmlCache::getInstance();
    		$staticHtmlCache->deleteAll();
    		foreach ($trash['files'] as $files => $name) DeleteDirFilesEx($files);
    	}
    	function countsize($directory) {
    		$count = array('file' => 0, 'size' => 0);
    		foreach (scandir($directory) as $file) {
    			if ($file != '.' && $file != '..') {
    				if (is_dir($directory.$file)) {
    					$inner = countsize($directory.$file.'/');
    					$count['file'] += $inner['file'];
    					$count['size'] += $inner['size'];
    				} else {
    					$count['file'] ++;
    					$count['size'] += filesize($directory.$file);
    				}
    			}
    		}
    		return $count;
    	}
    ?>
    
    <table>
    	<tr>
    		<th>Описание</th>
    		<th>Путь</th>
    		<th>Файлы</th>
    		<th>Размер</th>
    	</tr>
    
    	<?
    		foreach ($trash as $type) {
    			foreach ($type as $directory => $name) {
    				$count = countsize($_SERVER['DOCUMENT_ROOT'].$directory);
    	?>
    
    				<tr>
    					<td><?=$name?></td>
    					<td><a href="/bitrix/admin/fileman_admin.php?lang=ru&amp;path=<?=$directory?>"><?=$directory?></a></td>
    					<td><?=$count['file']?></td>
    					<td><?=round($count['size'] / 1048576, 2)?> Мб</td>
    				</tr>
    
    	<?
    			}
    		}
    	?>
    </table>
    
    <input type="button" value="Очистить" class="adm-btn-save" data-action="clean">

    Битрикс. порадовала строчка "'/bitrix/cache/' => 'Неуправляемый кеш'". Оказывается даже адептам битрикса не подвластно управление кешом самого битрикса :D

    https://github.com/creadome/bitrixcleaner/blob/master/cleaner/cleaner.php

    Keeper, 05 Мая 2016

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

    +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
    foreach ($userFilterList as $uParam)  { // массив юзеров ~300
        // ... говнокод
    
        $usenb = $DB->getField("SELECT `usenb` FROM `users` WHERE `id`=" . $DB->F($uParam[0]) . ";"); // дозапрашиваем поле
    
        // ... говнокод
    
        for ($i = 0; $i < $dayCount; $i++) { // $dayCount по дефолту 3
            $sql = "SELECT * FROM `link_empl` WHERE `user_id`=" . $DB->F($uParam[0]) .
                                    " AND `sched_date`=" . $DB->F(date("Y-m-d", strtotime($startDate) + $i * 24 * 60 *
                                        60)) . ";";
            $r = $DB->getRow($sql);
    
            // ... говнокод
    
            if ($r) {
                $wt = ($r[3] - $r[2]) / 30;
                $timeStart = (strlen(floor($r[2] / 60)) == 1 ? "0" . floor($r[2] / 60) : floor($r[2] /
                60)) . ":" . (strlen($r[2] % 60) == 1 ? "0" . $r[2] % 60 : $r[2] % 60);
                 $timeEnd = (strlen(floor($r[3] / 60)) == 1 ? "0" . floor($r[3] / 60) : floor($r[3] /
                60)) . ":" . (strlen($r[3] % 60) == 1 ? "0" . $r[3] % 60 : $r[3] % 60);
                $res = "<table cellpadding='0' cellspacing='0' class='sched seltf'><tr>";
                $sql = "SELECT тут_много_полей FROM `bfx` AS bfx 
                LEFT JOIN `tasks` AS tsk ON tsk.id=bfx .task_id  
                LEFT JOIN `tickets` AS ticket ON ticket.task_id=bfx .task_id  
                LEFT JOIN `task_types` AS ttype ON ttype.id=ticket.task_type  
                 LEFT JOIN `task_status` AS status ON status.id=tsk.status_id  
                LEFT JOIN `list_addr` AS addr ON addr.id=ticket.dom_id  
                WHERE bfx .em_id=" . $DB->F($uParam[0]) .
                " AND bfx .c_date=" . $DB->F(date("Y-m-d", strtotime($startDate) + $i * 24 * 60 *
                 60)) . ";";
                $DB->query($sql);
    
                // ... говнокод
            }
        }
    }

    график работ аля диаграмма ганта by ©senior shaurma developer

    pahhan, 05 Мая 2016

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

    −1

    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
    if (!function_exists('printr')) {
            function printr($array) {
                    GLOBAL $USER;
                    if (!$USER->IsAdmin()) return false;
                    $args = func_get_args();
                    if (count($args) > 1) {
                            foreach ($args as $values)
                                    printr($values);
                    } else {
                            if (is_array($array) || is_object($array)) {
                                    echo "<pre>";
                                    print_r($array);
                                    echo "</pre>";
                            } else {
                                    echo $array;
                            }
                    }
                    return true;
            }
    }
    printr($arr1,$arr2, $str, "string");

    Битрикс. Собственный уникальный print_r c Машанями и Медведем. Видио о существовании xdebug адепты bitrix не догадываются.

    http://b.pages.org.ua/php_interface/2011/03/03/universalnyy-print_r-dlya-bitriksa.html

    Keeper, 05 Мая 2016

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

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    class BHStorage extends BHProto {
      private static $instance;
      public static function _() {
        if(isset(self::$instance)) return self::$instance;
        self::$instance = new self();
        return self::$instance;
      }
      private $db;
      private function __construct() {
        global $DB;
        $this->db = $DB;
      }

    Недосинглтон. Скажите уже кто нибудь адептам битрикса, что на дворе уже 2016 год.
    https://github.com/dbfun/bitrix-heretic/blob/master/lib/BHStorage.php

    Keeper, 05 Мая 2016

    Комментарии (0)
  9. PHP / Говнокод #19928

    −4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    // установлен ли модуль?
      public static function isInstall($module) {
        $data = COption::GetOptionString('main', 'heretic/'.$module, 'N');
        return $data == 'Y';
      }

    И снова гитхаб радует битрикс шлаком. В этот раз, нас радует репозиторий с говорящим описание "Битрикс Еретик" https://github.com/dbfun/bitrix-heretic/blob/master/lib/BHProto.php
    А установлен ли модуль? Таки да. Всегда- да!

    Keeper, 05 Мая 2016

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

    +1

    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
    if(!strpos($amount,'.')) {
        $amount = $amount . '.00';
    } else {
    	$strlength = strlen(explode('.',$amount)[1]);
    	if($strlength != 2) {
    		if($strlength == 1) {
    			$amount = $amount . '0';
    		}
    		if($strlength > 2) {
    			$amount = round($amount,2);
    		}
    	}
    }

    Получение дробного до сотых числа

    ykpon, 05 Мая 2016

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