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

    +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
    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
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    class Query {
      protected $baseTable;
      protected $baseTableAlias;
      protected $whereGroup;
    
      protected $joins = array();
      protected $fields = array();
    
      protected $executed = FALSE;
      protected $resource = NULL;
    
    
      function __construct($base_table = 'node', $alias = 'n') {
        $this->whereGroup = new QueryWhereGroup();
        $this->baseTable = $base_table;
        $this->baseTableAlias = empty($alias) ? $base_table : $alias;
      }
    
      function select($fields) {
        settype($fields, 'array');
        foreach ($fields as $alias => $field) {
          if (is_numeric($alias)) {
            $this->fields[] = $field;
          }
          else {
            $this->fields[$alias] = "$field as $alias";
          }
        }
    
        return $this;
      }
    
      /**
       * @param QueryWhereGroup $whereGroup
       * @return Query
       */
      function where($whereGroup) {
        call_user_func_array(array($this->whereGroup, 'cond'), func_get_args());
        return $this;
      }
    
      function createWhereGroup() {
        return new QueryWhereGroup();
      }
    
      function join($table, $alias = NULL, $condition, $join_type = 'INNER') {
        if (!$alias) {
          $alias = $table;
        }
    
        if (is_array($condition)) {
          $condition = 'USING ('. join(', ', $condition) .')';
        }
        if (!preg_match('/^ON|USING/i', $condition)) {
          $condition = 'ON '. $condition;
        }
    
        $this->joins[$alias] = "$join_type JOIN $table $alias $condition";
        return $this;
      }
    
      function compile() {
        $select_fields = join(', ', array_unique($this->fields));
        $joins_list = join("\n", $this->joins);
        $where_conditions = $this->whereGroup->compile();
    
        if (!empty($where_conditions)) {
          $where_conditions = 'WHERE '. $where_conditions;
        }
    
        return "SELECT $select_fields FROM {{$this->baseTable}} {$this->baseTableAlias} \n $joins_list $where_conditions";
      }
    
      function args() {
        return $this->whereGroup->args;
      }
    
      function execute() {
        return db_query($this->compile(), $this->args());
      }
    
      function fetchAll() {
        $res = $this->execute();
        while($row = db_fetch_object($res)) {
          $rows[] = $row;
        }
        return $rows;
      }
    }

    построитель запросов (drupal 6)
    wheregroup здесь http://govnokod.ru/6076

    vectoroc, 23 Марта 2011

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

    +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
    class QueryWhereGroup {
      public $groupOp = 'AND';
      public $args = array();
      public $conditions = array();
    
      function cond($field, $value = NULL, $op = '=') {
        if ($value === NULL) {
          $this->conditions[] = $field;
          if (is_object($field) && isset($field->args)) {
            $this->args = array_merge($this->args, $field->args);
          }
        }
        else {
          if (is_numeric($value)) {
            $this->conditions[] = "$field $op %d";
            $this->args[]  = $value;
          }
          elseif (is_array($value)) {
            $placeholders  = db_placeholders($value, is_numeric(current($value)) ? 'int' : 'text');
            $this->conditions[] = "$field  IN ($placeholders)";
            $this->args = array_merge($this->args, $value);
          }
          else {
            $this->conditions[] = "$field $op '%s'";
            $this->args[]  = $value;
          }
        }
    
        return $this;
      }
    
      function compile($wrap = FALSE) {
        $result = join(" $this->groupOp ", $this->conditions);
        if ($wrap && !empty($result)) {
          $result = "(\n$result\n)";
        }
    
        return $result;
      }
    
      function __toString() {
        return $this->compile();
      }
    }

    см. след говнокод

    vectoroc, 23 Марта 2011

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

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if ( $arOrderProps['CODE'] == 'BIRTHDATE_MONTH'
    	  || $arOrderProps['CODE'] == 'DOCEXPIRATION_MONTH'
    	  || $arOrderProps['CODE'] == 'BIRTHDATE_DAY'
    	  || $arOrderProps['CODE'] == 'DOCEXPIRATION_DAY' )
    {
    	if ( $curVal[0] == '0' )
    	{
    	$curVal = $curVal[1];
    	}
    }

    Преобразование месяца или дня, например 05 => 5. var_dump( $curVal ) => string(2) "20"

    wwwguru, 23 Марта 2011

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

    +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
    <?php
    $str=$argv[1];
    $sz=sizeof($str);
    $c=1;
    while($c){
    for($i=0;$i<=10;$i++){
    $str = strtolower($str);
    $per = str_shuffle($str);
    #echo "$per\n";
    $res=system("egrep ' ".$per." ' ./dict.txt | gawk '{ print $1 }'");
    if($res!="" && $sz=sizeof($res)){echo "Success $res\n";};
    };
    };
    ?>

    Поиск слов в словаре

    AliceGoth, 23 Марта 2011

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

    +166

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <select name="input_name[14]">
      <option value="Интернет"<?if(htmlspecialchars($_POST['input_name'][15]) == "Интернет") echo ' SELECTED';?>>Интернет
     <option value="Авто / Мото"<?if(htmlspecialchars($_POST['input_name'][15]) == "Авто / Мото") echo ' SELECTED';?>>Авто / Мото
      <option value="Бизнес и производство"<?if(htmlspecialchars($_POST['input_name'][15]) == "Бизнес и производство") echo ' SELECTED';?>>Бизнес и производство
      <option value=""<?if(htmlspecialchars($_POST['input_name'][15]) == "") echo ' SELECTED';?>>Оборудование
      <option value=""<?if(htmlspecialchars($_POST['input_name'][15]) == "") echo ' SELECTED';?>>Бытовая техника
      <option value=""<?if(htmlspecialchars($_POST['input_name'][15]) == "") echo ' SELECTED';?>>Все для животных
      <option value=""<?if(htmlspecialchars($_POST['input_name'][15]) == "") echo ' SELECTED';?>>Здоровье и красота
      <option value=""<?if(htmlspecialchars($_POST['input_name'][15]) == "") echo ' SELECTED';?>>Медицина
      <option value=""<?if(htmlspecialchars($_POST['input_name'][15]) == "") echo ' SELECTED';?>>Знакомства
      <option value=""<?if(htmlspecialchars($_POST['input_name'][15]) == "") echo ' SELECTED';?>>Компьютеры и комплектующие
      </select>

    без комментариев
    http://javascript.ru/forum/dom-window/15999-mnogourovnevyjj-select.html

    vulkan, 22 Марта 2011

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function plural_filter($param) {
      if(strstr($param, 'Hotels'))
        return str_replace('Hotels', 'Hotel', $param);
      else if(strstr($param, 'Restaurants'))
        return str_replace('Restaurants', 'Restaurant', $param);
      else
        return $param;
    }

    no comments xD

    realsugar, 22 Марта 2011

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

    +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
    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
    <?
            if ($GET['cat'] == 'read') $y=date("Y");
                    else $y=$GET['cat'] ;
                    
            if ($GET['alb'] == 'read') $m=date("m");
                    else $m=$GET['alb'] ;
            
            if (!isset($y) OR $y < 1970 OR $y > 2037) $y=date("Y");
            if (!isset($m) OR $m < 1 OR $m > 12) $m=date("m");
     
            include_once './libs/mysql.php';
            
            $res='';
            $rows='';
            $date_array = array(); 
            $arraycount=1;          
    
                    
            $res = mysqlQuery("SELECT * 
                                                    FROM `". BG_DBPREFIX ."calendar`
                                                    WHERE YEAR(date)=".$y." AND MONTH(date)=".$m."
                                                    ORDER BY date ASC"
                                                    );
        if(mysql_num_rows($res) > 0)         // Если записи есть, вытаскиваем по одной в цикле 
                    {                                       
                    while($rows = htmlChars(mysql_fetch_assoc($res))) // попутно обрабатывая функцией htmlChars() 
            {
                            $date_array[$arraycount]['id']=$rows['id'];
                            $date_array[$arraycount]['date']=$rows['date'];
                            $date_array[$arraycount]['name']=$rows['name'];
                            $date_array[$arraycount]['status']=$rows['status'];
                            $arraycount++;
                    };
                    }
     
                    $prev_y=date('Y',mktime (0,0,0,$m-1,1,$y));
                    $prev_m=date('m',mktime (0,0,0,$m-1,1,$y));
                    $next_y=date('Y',mktime (0,0,0,$m+1,1,$y));
                    $next_m=date('m',mktime (0,0,0,$m+1,1,$y));
     
    echo "<a href=\"".href('cat='.$prev_y,'alb='.$prev_m)."\">Prev</a>";
    echo "<a href=\"".href('cat='.$next_y,'alb='.$next_m)."\">Next</a>";

    qbasic, 21 Марта 2011

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

    +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
    40. 40
    41. 41
    42. 42
    43. 43
    <?
    class ActiveRecord {
    static function find_by_id($id) {
    	$class = get_called_class(); // LSI magic comes from here
    	$sql = 'SELECT FROM `' . $class . '` WHERE `id`=\'' . $id .  "';";
    	echo "Generate sql for select by id\n";
    	echo $sql . "\n";
    	return(new $class);
    }
    
    function save() {
    
    $class = get_class();
    
    if(!isset($this->id)) {
    echo "Generate sql for new Record:\n";
    $sql = 'INSERT INTO `' . $class . '` ';
    $sql_fields = '(';
    $sql_values = '(';
    foreach($this->fields as $field => $type) {
    	if($field != 'id') {
    	$sql_fields .= '`' . $field . '`,';
    	$sql_values .= "'" . $this->{$field} . "',";
    	}
    }
    $sql = $sql . substr($sql_fields, 0, -1) . ') VALUES ' . substr($sql_values, 0, -1) . ');';
    echo 'sql: ' . $sql . "\n";
    $this->id = 1;
    } 
    else {
    	echo "Generate sql for Update:\n";
    	 
    	$sql = 'UPDATE `' . $class . '` SET ';
    	foreach($this->fields as $field => $type) {
    	if($field != 'id') {
    	$sql .= '`' . $field . '`=\'' . $this->{$field} . '\',';
    	}
    	}
    	$sql = substr($sql, 0, -1) . ';';
    	echo 'sql: ' . $sql . "\n";
    }
    }
    }

    qbasic, 21 Марта 2011

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

    +166

    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
    /*
         * Language
         */
    
        $CONFIG['LANGUAGE'] = 'ru_ru';
    
        if (!preg_match('/en\./', $_SERVER['HTTP_HOST']))
        {
            $CONFIG['LANGUAGE'] = 'ru_ru';
        } else
        {
            $CONFIG['LANGUAGE'] = 'en';
        }
        $CONFIG['LANGUAGE'] = 'en';

    ещё тёпленькое. из-за "неизвестных" причин выбиралась не та локаль... видимо решили забить так, чтоб наверняка.

    POPSuL, 21 Марта 2011

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

    +146

    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
    <?php
    // Calculate the age from a given birth date
    // Example: GetAge("1986-06-18");
    function GetAge($Birthdate)
    {
            // Explode the date into meaningful variables
            list($BirthYear,$BirthMonth,$BirthDay) = explode("-", $Birthdate);
            // Find the differences
            $YearDiff = date("Y") - $BirthYear;
            $MonthDiff = date("m") - $BirthMonth;
            $DayDiff = date("d") - $BirthDay;
            // If the birthday has not occured this year
            if ($DayDiff < 0 || $MonthDiff < 0)
              $YearDiff--;
            return $YearDiff;
    }
    ?>

    добыто в интернете.
    Опять пхп и опять даты. Похоже, это вечное...

    Lure Of Chaos, 20 Марта 2011

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