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

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

    +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
    void NewTorrent_PeersListViewCtrl::OnAttach()
    {	
    	WTL::CMenuHandle menu;
    	BOOL menu_created = menu.LoadMenu(HAL_GENERIC_ADD_LV_MENU);
    	InitialSetup(menu);	
    // ...
    	for (int i=0, e=3; i < e; ++i)
    	{
    		AddColumn(names[i].c_str(), i, visible[i], widths[i]);
    	}	
    // ...
    }

    Седьмая строка в этом огрызке вызывает сомнения.

    emanon, 10 Мая 2016

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

    +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
    #include <iostream>
    #include <map>
    
    template <typename T1, typename T2, typename F>
    void operator ^= (std::map<T1,T2> &m, F func) {
        for (typename std::map<T1,T2>::iterator i = m.begin();  i != m.end(); ) {
            if (func(i))
                i = m.erase(i);
            else
                ++i;
        }
    }
    
    template <typename T1, typename T2>
    void operator ^= (std::map<T1,T2> &m, T2 value) {
        for (typename std::map<T1,T2>::iterator i = m.begin();  i != m.end(); ) {
            if (value == i->second)
                i = m.erase(i);
            else
                ++i;
        }
    }
    
    int main() {
        std::map<int,bool> m = {
            {0,false},
            {1,true},
            {2,false},
            {3,true},
            {4,false},
            {5,true},
            {6,false},
            {7,true},
            {8,false},
            {9,true},
            {10,false}
        };
    
        for (auto i = m.begin(); i != m.end(); ++i)
            std::cout << "{" << i->first << "," << i->second << "} ";
        std::cout << std::endl;
    
        m ^= false;
        m ^= [](auto &i) { return i->first == 5; };
    
        for (auto i = m.begin(); i != m.end(); ++i)
            std::cout << "{" << i->first << "," << i->second << "} ";
        std::cout << std::endl;
    }

    Для std::vector'a запись не особо-то кошерная:

    std::vector<int> v = {1,2,3,4,5};
    v.erase(std::remove_if(v.begin(),v.end(),[](int &i){ return i <= 3;}), v.end());
    А для std::map даже такого не придумали. Пора исправлять

    Antervis, 10 Мая 2016

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

    +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
    // новый тестовый экшн в контроллере
            public function actionNew($alias)
        {
            $model=Partners::model()->model()->findByAttributes(array('alias'=>$alias));
                   
                    if($model==null)
                throw new CHttpException(404,'The requested page does not exist.');
                           
                    $this->render('view',array(
                'model'=>$this->loadModel($model->id),
            ));
           
        }
     
    // правило в конфиге
    // '<module:\w+>/<controller:\w+>/<alias:\w+>' => '<module>/<controller>/new',

    https://vk.com/echo_php?w=wall-175_189930%2Fall

    Уи1

    Keeper, 07 Мая 2016

    Комментарии (1)
  5. Куча / Говнокод #19949

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    <ol ng-init="citationsLimit = 3" ng-model="citationsLimit">
    	<li class="citation citationList" ng-repeat="citation in answerFact.citations | limitTo: citationsLimit as citationsResult">
    		<i class="fa ic-marker fa-circle" aria-hidden="true"></i>
    		<div class="citation-text">
    			<span ng-bind-html="citation.highlightedSentenceString"></span>
    			<span ng-if="citation.source">
    				(<a  href="{{citation.source}}" target="_blank">{{citation.source}}</a>)
    			</span>
    		</div>
    	</li>
    </ol>

    ifmy, 06 Мая 2016

    Комментарии (1)
  6. 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)
  7. 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)
  8. 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)
  9. JavaScript / Говнокод #19881

    +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
    function toggleAdPanelMobile(e) {
        if (mobilecheck()) {
            if ($(e.target).parents('.catalog-container').length || $(e.target).hasClass('button')) {
                if ($('#site-content').hasClass('open')) {
                    $siteAdv.show();
                }
            } else {
                if (!$('#site-content').hasClass('open')) {
                    $siteAdv.show();
                }
            }
        }
    }

    Главное, что работает

    inferusvv , 26 Апреля 2016

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

    +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
    <ul id="top_menu" alias="{$alias}" parentAlias="{$parentAlias}">
        {foreach $items as $i}
            {*{$i->parentId == null} :)*}
            {if $i->parentId == null}
                <li class="{if $alias === $i->alias || $parentAlias === $i->alias}active{/if}"><a href="{Yii::app()->params->languageUrl}/{$i->alias}" onclick="return false;">{$i->lang->name}</a>
                    <ul class="sub" style="display: none;">
                        {foreach $items as $ii}
                            {if $ii->parentId == $i->id}
                                <li class="{if $alias === $ii->alias || $parentAlias === $ii->alias}active{/if}">
                                    {if $ii->hasAction > 0}
                                        <a href="{if $ii->alias!==''}{Yii::app()->params->languageUrl}/{$ii->alias}{/if}">{$ii->lang->name}</a>
                                    {else}
                                        <a href="{Yii::app()->params->languageUrl}/{$i->alias}{if $ii->alias!==''}/{$ii->alias}{/if}">{$ii->lang->name}</a>
                                    {/if}
                                </li>
                            {/if}
                        {/foreach}
                    </ul>
                </li>
            {/if}
        {/foreach}
    </ul>

    Типичное меню на фреймворках.
    В данном случае Yii

    M-A-X, 26 Апреля 2016

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

    +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
    <script type="text/javascript" src="{$assetsUrl}/js/controllers/news.js"></script>
    <div class="breadcrumbs">
     <span typeof="v:Breadcrumb" ><a href="/" style="color: #000000;">{Y::t('MainMenu', 'Главная')}</a></span> /
     <span typeof="v:Breadcrumb" style="color: red;">{$this->title}</span>
    </div>
    <div class="news_sections">
        <ul>
            {assign comment ''}
            {foreach from=Trololo::model()->newsTypes() key=k item=n}
                {if Yii::app()->request->getParam('rubric')==$k}
                    {assign comment $n['comment']}
                    <li class="active"><span>{$n['label']}</span></li>
                {else}
                    <li class=""><span><a href="{Yii::app()->params->languageUrl}/news/rubric/{$k}">{$n['label']}</a></span></li>
                {/if}
            {/foreach}
        </ul>
    </div>
    <h1 class="page_title">{$comment}</h1>

    Типичный шаблон на фреймворке.
    В данном случае - Yii.

    M-A-X, 26 Апреля 2016

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