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

    +108

    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
    private void InitializeUser()
    {
    	textBoxFirstname.Text = _user.FirstName;
    	textBoxLastname.Text = _user.LastName;
    	textBoxPassword.Text = _user.Password;
    	textBoxUsername.Text = _user.UserName;
    	textBoxMail.Text = _user.Mail;
    	comboBoxRoles.Text = _user.UserRole.Id>0 ? _user.UserRole.RoleName : "";
    	
    	comboBoxRoles.Enabled = true;
    
    	if(User.CurrentUser.isLoanOfficer || User.CurrentUser.isVisitor || User.CurrentUser.isCashier)
    	{
    		comboBoxRoles.Enabled = false;
    	}
    	else if(User.CurrentUser.isAdmin)
    	{
    		if(_user.isAdmin || _user.isSuperAdmin) comboBoxRoles.Enabled = false;
    	}
    	else if(User.CurrentUser.isSuperAdmin)
    	{
    		if(_user.isSuperAdmin) comboBoxRoles.Enabled = false;
    	}
    }

    Код взят из реального open source проекта. Реализация многоуровневой проверки прав текущего пользователя :).

    _Ru55_, 22 Октября 2010

    Комментарии (4)
  2. JavaScript / Говнокод #4412

    +144

    1. 1
    if ((text == '' || text == '\n') && document.getElementById('log').innerHTML == '...')

    Вот такое говнецо я сделал. Надо исправить.
    Следуя лозунгу говнокода "Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!", выкладываю.

    КЭП: document.getElementById('log').innerHTML == '...' - Фэйл, не надо завязываться на содержимое.

    Oleg_quadro, 22 Октября 2010

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

    +117

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    widgetPanel.ID = new Guid(String.Format("{0:D32}", widgetInfo.Id));
    
    // в другом месте
    
    var widgetId = Convert.ToInt32(widgetPanel.ID.ToString().Replace('-', '0').TrimStart('0'));

    Как узнать что именно надо класть на панель?
    Очень просто - брать ее id типа Guid, а искать в списке классов с id типа int

    Разумеется, никто не запрещал сделать что бы оба были guid, но это же совершенно не интересно.

    eval_2009, 21 Октября 2010

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

    +174

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $a_year[2005]="2005";
    $a_year[2006]="2006";
    $a_year[2007]="2007";
    $a_year[2008]="2008";
    $a_year[2009]="2009";
    $a_year[2010]="2010";
    $a_year[2011]="2011";
    $a_year[2012]="2012";

    больше 2012 года не вписали... xd

    ferry-very-good, 21 Октября 2010

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

    +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
    function getAvailableFlights($source,$dest){
    
        $connection = initDB();
        $query2;       
    
        $query2 = "SELECT * FROM Sectors WHERE Sector='".$source."'";
        $result2 = mysql_query($query2);
            //or die ("Query Failed ".mysql_error());                
        $row2 = mysql_fetch_array($result2);
        $SourceSID = $row2['SID'];
    
        $query3 = "SELECT * FROM Sectors WHERE Sector='".$dest."'";
        $result3 = mysql_query($query3);
            // or die ("Query Failed ".mysql_error());                
        $row3 = mysql_fetch_array($result3);
        $destSID= $row3['SID'];
            
            //Get available flights
        $query3 = "SELECT * FROM Flights WHERE SourceSID='".$SourceSID."' AND DestSID='".$destSID."'";
        $result3 = mysql_query($query3);
            //  or die ("Query Failed ".mysql_error()); 
    
        $flightsArray;
        $flightsID=1;
    
        while($row = mysql_fetch_array($result3)){        
                $fName= $row['FName'];
                $flightsArray[$flightsID] = $fName;
                $flightsID = $flightsID +1;
            }
        closeDB($connection);
        return $flightsArray;
    }

    В NetBeans есть несколько примеров с проектами PHP. Один из них AirAlliance. весь код оттуда можно сюда запостить.
    ну вместо той херни что написана выше можно использовать один запрос MySql
    'select distinct f.FName
    from Flights f
    left join Sectors s on f.SourceSID=s.SID
    left join Sectors d on f.DestSID=d.SID
    where s.SID='.(int)$source.' or d.SID='.(int)$dest

    duburlan, 21 Октября 2010

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

    +160

    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
    class XXX
    {
    	function _item()
    	{
    		return $this->val = substr(__FUNCTION__,1);
    	}
    
    	function _lister()
    	{
    		return $this->val = substr(__FUNCTION__,1);
    	}
    
    	function item()
    	{
    		return ($this->val === __FUNCTION__);
    	}
    
    	function lister()
    	{
    		return ($this->val === __FUNCTION__);
    	}
    
    	function __construct()
    	{
    		$this->_lister();
    	}
    }

    В прицнипе пофиг что оно делает. Но смотреть без слез, имхо нельзя :)

    grelkin, 21 Октября 2010

    Комментарии (2)
  7. JavaScript / Говнокод #4407

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    if( DateDiff > 1000*60*60*24*122 ) {
    	  	 $("#mfilter_err").text("Выбран интервал времени больше 4 месяцев");
    		 return false;
    	  }

    Странное у человека представление о длине 4 месяцев

    getrix, 21 Октября 2010

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    //функция конвертации времени в таймстамп, добавлено 08.07.2010
    function convertDate($date){
    	$dateArr = explode(".", $date);
    	$date = mktime(0,0,0,$dateArr[1],$dateArr[0],$dateArr[2]);
    	return $date;
    	
    	// 21.10.2010: а чем strtotime не устраивает?
    }

    И чем strtotime() не устроило, не понятно.

    getrix, 21 Октября 2010

    Комментарии (9)
  9. Java / Говнокод #4405

    +70

    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
    Map<Integer, ArrayList<?>> // filterId : filterParams
    {
    	//
    	// Фильтр занятости квартир (не вписывается в API, поэтому здесь заведены отдельные методы)
    	//
    	
        // хранит: showReserved, DateFrom, DateTo
        private ArrayList<?> reservedFilterParams
    
        public void onDateFilterChanged(Date dateFrom, Date dateTo, boolean showReserved)
        {
    	this.put(QuickFilters.FILTER_RESERVED_ID, reservedFilterParams)
    		
    	reservedFilterParams = ArrayUtils.getOrCreateArrayListWithElements(
    			this, QuickFilters.FILTER_RESERVED_ID, new Boolean(showReserved), dateFrom, dateTo )
    	
    	if (dateFrom == null && dateTo == null)
            {
                reservedFilterParams.set(0,new Boolean(true))
                this.remove(QuickFilters.FILTER_RESERVED_ID)
            }
        }
    
        public boolean doShowReserved()
        {
            return reservedFilterParams ? reservedFilterParams.get(0).booleanValue() : true
        }
    
        public Date getDateFrom()
        {
            return reservedFilterParams?.get(1)
        }
    
        public Date getDateTo()
        {
            return reservedFilterParams?.get(2)
        }
    
    }

    Язык Groovy, стиль - моя переходная форма от Java. Это я сам написал. Вообще мне даже нравится. Есть фильтры для поиска. У каждого фильтра есть только ему ведомые параметры. Приведенный код - это мапка для хранения того, какие пользователь выбрал фильтры и что в них установил.

    Есть API который я делаю, состоящий из типовых фильтров. Этот API автоматически юзает мапку через get/put. Но бывает, придумывается какой-то нетиповой фильтр, и его параметры приходится хардкодить в этой мапке. Короче, мне понравилась идея с мапкой, ведь даже если параметры захардкодены, то они всё равно пихаются в мапку. И читаемость для таких случаев навысоте.

    Bugdog, 20 Октября 2010

    Комментарии (5)
  10. JavaScript / Говнокод #4404

    +162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    <div style="position:relative">
    
    Всего товаров: 1<br />
    
    На сумму: 5 750,00
    
    
    
    </div>
    
    <script>$("#korzina").load("/korzina.php",{'fsdfsad':true});</script>

    Сей кодъ подгружается аяксом из скрипта /korzina.php в div#korzina. Естественно, тут же выполняется строчка номер 6, и онъ ещё раз подгружается. И ещё раз. И ещё раз...
    Долго думал, почему так тормозит браузер и почему по vnstat'у 64 кбит/с вверх и 24 вниз при простом просмотре страницы. Думаю, админ сервера (там стоит Apache, кеке) хотел бы удавить аффтара не меньше, чем я. Сайт в продакшне с марта.

    telnet, 20 Октября 2010

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