1. PHP / Говнокод #17626

    +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
    //Получим все пробеги за все периоды
    		$ps_res = array();
    		foreach ($crews as $v)
    		{
    			foreach ($v['ps'] as $ps)
    			{
    				/**
    				 * Отправим горку запросов в виалон на получение километража.
    				 * Можноо, конечно сделать по людски и генерировать массив и
    				 * получить это всё одним запросом, но мне лень,
    				 * буду лучше как мудак грузить систему виалона.
    				 */
    				$g = $api->call('gps/get_c_report',
    						array('car_id'	 => $v['WI'],
    					'begin_time' => $ps['begin'],
    					'end_time'	 => $ps['end']));
    				$cnt = (float) str_replace(' km', '', $g[1]->reportResult->stats[0][1]);
    				if ($cnt > 2)
    				{
    					/**
    					 * Если проехали больше 2 км, то упаковать данные на
    					 * выставление пиздюлей
    					 */
    					$ps_res[$v['ID']][] = array('id' => $v['ID'], 'cnt' => $cnt, 'ps' => $ps);
    				}
    			}
    			if (!empty($ps_res))
    			{
    
    				/**
    				 * Выполним операции на каждой итерации, ибо виалон - зло.
    				 *  отваливается при большом количестве запросов.
    				 * Нет, я не настолько мудак в любом случае у них ограничение на кол-во
    				 *  операций варьирующееся от количества нагрузки на сервер.
    				 */
    				set_op($ps_res);
    				unset($ps_res[$v['ID']]);
    			}
    		}

    Комменты доставили, да.

    Rijen, 11 Февраля 2015

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

    +157

    1. 1
    $inp[] = implode("-", array_reverse(explode(".",$input['from-date']))).' '.$input['from-time'].'+0400';

    От платины отличается магическим '+0400' (ISO-8601, лол).

    heyzea1, 11 Февраля 2015

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

    +156

    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
    73. 73
    74. 74
    75. 75
    76. 76
    function form_xml_items( $sXML, $reserve, $exchange ){
    	foreach ($exchange as $in => $outs) {
    
    		$currency_in = taxonomy_term_load($in);
    		switch ($in) {
    			case 6:
    				$currency_in->name = 'CASHUAH';
    				break;
    			case 18:
    				$currency_in->name = 'CASHUSD';
    				break;
    
    // ...
    
    				$currency_in->name = 'TBRUB';
    				break;
    			case 161:
    				$currency_in->name = 'OPB';
    				break;
    		}
    
    		foreach ($outs as $out => $param) {
    
    			$currency_out = taxonomy_term_load($out);
    
    			switch ($out) {
    				case 11:
    					$currency_out->name ='CASHUAH';
    					break;
    				case 19:
    					$currency_out->name ='CASHUSD';
    					break;
    
    // ...
    
                                   case 155:
    					$currency_out->name = 'CARDRUB';
    					$currency_out->second_name = 'WIRERUB';
    					break;
    				case 162:
    					$currency_out->name = 'OPB';
    					break;
    			}
    
    			$sXML .= "<item>\n";
    			$sXML .= "<from>" . $currency_in->name . "</from>\n";
    			$sXML .= "<to>" . $currency_out->name  . "</to>\n";
    			$sXML .= "<in>1</in>\n";
    			$sXML .= "<out>" . $param["rate"] . "</out>\n";
    			$sXML .= "<amount>" . $param["reserve"] . "</amount>\n";
    			$sXML .= "</item>\n";
    			//wire and card in
    			if (isset( $currency_in->second_name)){
    				$sXML .= "<item>\n";
    				$sXML .= "<from>" . $currency_in->second_name . "</from>\n";
    				$sXML .= "<to>" . $currency_out->name  . "</to>\n";
    				$sXML .= "<in>1</in>\n";
    				$sXML .= "<out>" . $param["rate"] . "</out>\n";
    				$sXML .= "<amount>" . $param["reserve"] . "</amount>\n";
    				$sXML .= "</item>\n";
    			}
    			//wire and card out 
    			if (isset($currency_out->second_name)){
    				$sXML .= "<item>\n";
    				$sXML .= "<from>" . $currency_in->name . "</from>\n";
    				$sXML .= "<to>" . $currency_out->second_name  . "</to>\n";
    				$sXML .= "<in>1</in>\n";
    				$sXML .= "<out>" . $param["rate"] . "</out>\n";
    				$sXML .= "<amount>" . $param["reserve"] . "</amount>\n";
    				$sXML .= "</item>\n";
    			}
    		}
    
    	}
    	return $sXML;
    }

    Если не взирать на магические числа, кажеться этот код должен занимать строк 20, а не 130

    kissarat, 11 Февраля 2015

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (in_array ($v["field_currency_out"]["und"][0]["tid"], array(20, 21, 26, 27,153,157,154,152,155,162)) || in_array ($v["field_currency_in"]["und"][0]["tid"], array(22, 23, 24, 25,151,156,150,149,148,161))) {
        $v["field_payment"]["und"][0]["tid"] = 28;
    } else {
        $v["field_payment"]["und"][0]["tid"]= 13;
    }

    Представте что весь сайт написан в этом же духе.
    Причем мы имеем дело с двома наборами констант для обозначения валют - для входа и выхода перевода.

    kissarat, 10 Февраля 2015

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

    +156

    1. 1
    2. 2
    $dateStart = "2015-01-01";
    $dateEnd = date("Y-m-d", strtotime(date("Y-m-01", strtotime(date("Y-m-d", strtotime("+1 month", strtotime($dateStart))))) . " -1 day"));

    Вычисляем последний день месяца

    chumoleg, 10 Февраля 2015

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

    +157

    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
    /**
    	 * @return DevblocksSearchField[]
    	 */
    	static function getFields() {
    		$translate = DevblocksPlatform::getTranslationService();
    		
    		$columns = array(
    			SearchFields_Ticket::TICKET_ID => new DevblocksSearchField(SearchFields_Ticket::TICKET_ID, 't', 'id', $translate->_('common.id'), Model_CustomField::TYPE_NUMBER),
    			SearchFields_Ticket::TICKET_MASK => new DevblocksSearchField(SearchFields_Ticket::TICKET_MASK, 't', 'mask', $translate->_('ticket.mask'), Model_CustomField::TYPE_SINGLE_LINE),
    			SearchFields_Ticket::TICKET_SUBJECT => new DevblocksSearchField(SearchFields_Ticket::TICKET_SUBJECT, 't', 'subject', $translate->_('ticket.subject'), Model_CustomField::TYPE_SINGLE_LINE),
    			
    			SearchFields_Ticket::TICKET_FIRST_MESSAGE_ID => new DevblocksSearchField(SearchFields_Ticket::TICKET_FIRST_MESSAGE_ID, 't', 'first_message_id'),
    			SearchFields_Ticket::TICKET_FIRST_OUTGOING_MESSAGE_ID => new DevblocksSearchField(SearchFields_Ticket::TICKET_FIRST_OUTGOING_MESSAGE_ID, 't', 'first_outgoing_message_id'),
    			SearchFields_Ticket::TICKET_LAST_MESSAGE_ID => new DevblocksSearchField(SearchFields_Ticket::TICKET_LAST_MESSAGE_ID, 't', 'last_message_id'),
    			
    			SearchFields_Ticket::TICKET_FIRST_WROTE_ID => new DevblocksSearchField(SearchFields_Ticket::TICKET_FIRST_WROTE_ID, 't', 'first_wrote_address_id'),
    			SearchFields_Ticket::TICKET_FIRST_WROTE => new DevblocksSearchField(SearchFields_Ticket::TICKET_FIRST_WROTE, 'a1', 'email',$translate->_('ticket.first_wrote'), Model_CustomField::TYPE_SINGLE_LINE),
    			SearchFields_Ticket::TICKET_FIRST_WROTE_FIRST_NAME => new DevblocksSearchField(SearchFields_Ticket::TICKET_FIRST_WROTE_FIRST_NAME, 'a1', 'first_name', $translate->_('ticket.first_wrote') . ' First Name'),
    			SearchFields_Ticket::TICKET_FIRST_WROTE_LAST_NAME => new DevblocksSearchField(SearchFields_Ticket::TICKET_FIRST_WROTE_LAST_NAME, 'a1', 'last_name', $translate->_('ticket.first_wrote') . ' Last Name'),
    			SearchFields_Ticket::TICKET_FIRST_WROTE_SPAM => new DevblocksSearchField(SearchFields_Ticket::TICKET_FIRST_WROTE_SPAM, 'a1', 'num_spam',$translate->_('address.num_spam'), Model_CustomField::TYPE_NUMBER),
    			SearchFields_Ticket::TICKET_FIRST_WROTE_NONSPAM => new DevblocksSearchField(SearchFields_Ticket::TICKET_FIRST_WROTE_NONSPAM, 'a1', 'num_nonspam',$translate->_('address.num_nonspam'), Model_CustomField::TYPE_NUMBER),
    				
    			SearchFields_Ticket::TICKET_LAST_WROTE_ID => new DevblocksSearchField(SearchFields_Ticket::TICKET_LAST_WROTE_ID, 't', 'last_wrote_address_id'),
    			SearchFields_Ticket::TICKET_LAST_WROTE => new DevblocksSearchField(SearchFields_Ticket::TICKET_LAST_WROTE, 'a2', 'email',$translate->_('ticket.last_wrote'), Model_CustomField::TYPE_SINGLE_LINE),
    			SearchFields_Ticket::TICKET_LAST_WROTE_FIRST_NAME => new DevblocksSearchField(SearchFields_Ticket::TICKET_LAST_WROTE_FIRST_NAME, 'a2', 'first_name', $translate->_('ticket.last_wrote') . ' First Name'),
    			SearchFields_Ticket::TICKET_LAST_WROTE_LAST_NAME => new DevblocksSearchField(SearchFields_Ticket::TICKET_LAST_WROTE_LAST_NAME, 'a2', 'last_name', $translate->_('ticket.last_wrote') . ' Last Name'),
    				
    			SearchFields_Ticket::ORG_NAME => new DevblocksSearchField(SearchFields_Ticket::ORG_NAME, 'o', 'name', $translate->_('contact_org.name'), Model_CustomField::TYPE_SINGLE_LINE),
    			SearchFields_Ticket::REQUESTER_ADDRESS => new DevblocksSearchField(SearchFields_Ticket::REQUESTER_ADDRESS, 'ra', 'email',$translate->_('ticket.requester'), Model_CustomField::TYPE_SINGLE_LINE),
    			
    			SearchFields_Ticket::TICKET_ORG_ID => new DevblocksSearchField(SearchFields_Ticket::TICKET_ORG_ID, 't','org_id',$translate->_('contact_org.id')),
    			SearchFields_Ticket::TICKET_OWNER_ID => new DevblocksSearchField(SearchFields_Ticket::TICKET_OWNER_ID,'t','owner_id',$translate->_('common.owner'), Model_CustomField::TYPE_WORKER),
    			SearchFields_Ticket::TICKET_GROUP_ID => new DevblocksSearchField(SearchFields_Ticket::TICKET_GROUP_ID,'t','group_id',$translate->_('common.group')),
    			SearchFields_Ticket::TICKET_BUCKET_ID => new DevblocksSearchField(SearchFields_Ticket::TICKET_BUCKET_ID, 't', 'bucket_id',$translate->_('common.bucket')),
    			SearchFields_Ticket::TICKET_CREATED_DATE => new DevblocksSearchField(SearchFields_Ticket::TICKET_CREATED_DATE, 't', 'created_date',$translate->_('common.created'), Model_CustomField::TYPE_DATE),
    			SearchFields_Ticket::TICKET_UPDATED_DATE => new DevblocksSearchField(SearchFields_Ticket::TICKET_UPDATED_DATE, 't', 'updated_date',$translate->_('common.updated'), Model_CustomField::TYPE_DATE),
    			SearchFields_Ticket::TICKET_CLOSED_AT => new DevblocksSearchField(SearchFields_Ticket::TICKET_CLOSED_AT, 't', 'closed_at',$translate->_('ticket.closed_at'), Model_CustomField::TYPE_DATE),
    			SearchFields_Ticket::TICKET_WAITING => new DevblocksSearchField(SearchFields_Ticket::TICKET_WAITING, 't', 'is_waiting',$translate->_('status.waiting'), Model_CustomField::TYPE_CHECKBOX),
    			SearchFields_Ticket::TICKET_CLOSED => new DevblocksSearchField(SearchFields_Ticket::TICKET_CLOSED, 't', 'is_closed',$translate->_('status.closed'), Model_CustomField::TYPE_CHECKBOX),
    			SearchFields_Ticket::TICKET_DELETED => new DevblocksSearchField(SearchFields_Ticket::TICKET_DELETED, 't', 'is_deleted',$translate->_('status.deleted'), Model_CustomField::TYPE_CHECKBOX),

    https://github.com/jstanden/cerb6/blob/6.9.1/features/cerberusweb.core/api/dao/ticket.php#L1979

    lav45, 10 Февраля 2015

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

    +157

    1. 1
    2. 2
    float floor ( float $value )
    Возврашает ближайшее целое число, округляя value в меньшую сторону.

    > float
    > Возврашает ближайшее целое число
    > Возвращаемое значение функции floor() по прежнему типа float потому что диапазон значений float обычно больше, чем у integer.

    когда мне айдешка подсветила, что я в качестве ключа массива подставляю что-то не то, я начал прихуевать

    http://php.net/manual/ru/function.floor.php

    Fike, 10 Февраля 2015

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

    +166

    1. 1
    $this->log->log($log);

    DIX315, 09 Февраля 2015

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

    +164

    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
    // КЛАСС: класс 1
    class clsClass1 {
    	public function Test1() {
    		echo('Вызов из объекта clsClass2');
    	}
    }
    // КЛАСС: класс 2
    class clsClass2 {
    	public function Test2() {
    		objClass1()->Test1();
    	}
    }
    
    // ФУНКЦИЯ: возвращает объект
    function objClass1() {
    	// объявление глобальной переменой
    	global $objClass1;
    	// создание объекта
    	if (!isset($objClass1)) $objClass1 = new clsClass1();
    	// сохранение результата
    	return $objClass1;
    }
    
    // создание объекта класса 2
    $objClass2 = new clsClass2;
    
    // вызываем метод Test2() класса 2
    $objClass2->Test2();

    Как вызвать из метода класса метод другого класса? Это же очевидно!
    1. Обмазаться глобальными переменными
    2. Навелосипедить недосирглтон
    3. ?????
    4. PROFIT!

    http://www.sql.ru/forum/1136133/kak-obratitsya-k-obektu-iz-funkcii-klassa

    Stallman, 09 Февраля 2015

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function StrToFloat($str) {
        if (strstr($str, ',')) {
            $i = explode(',', $str);
            $str = implode('.', $i);
            settype($str, 'float');
        }
        return $str;
    }

    kissarat, 09 Февраля 2015

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