1. Список говнокодов пользователя HiNeX

    Всего: 11

  2. JavaScript / Говнокод #21505

    −53

    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
    class MapUtils {
        static isPrimitive(obj) {
            switch (typeof obj) {
                case "string":
                case "number":
                case "boolean":
                    return true;
            }
            return !!(obj instanceof String || obj === String ||
            obj instanceof Number || obj === Number ||
            obj instanceof Boolean || obj === Boolean);
        }
    
        static getClazz(target: any, propertyKey: string): any {
            return Reflect.getMetadata("design:type", target, propertyKey)
        }
    
        static getJsonProperty<T>(target: any, propertyKey: string):  IJsonMetaData {
            return Reflect.getMetadata(jsonMetadataKey, target, propertyKey);
        }
    
        static deserialize<T>(clazz:{new(): T}, jsonObject) {
            if ((clazz === undefined) || (jsonObject === undefined)) return undefined;
            let obj = new clazz();
            Object.keys(obj).forEach((key) => {
                let propertyMetadataFn:(IJsonMetaData) => any = (propertyMetadata)=> {
                    let propertyName = propertyMetadata.name || key;
                    let innerJson = undefined;
                    innerJson = jsonObject ? jsonObject[propertyName] : undefined;
                    let clazz = MapUtils.getClazz(obj, key);
                    if (!MapUtils.isPrimitive(clazz)) {
                        return MapUtils.deserialize(clazz, innerJson);
                    } else {
                        return jsonObject ? jsonObject[propertyName] : undefined;
                    }
                };
    
                let propertyMetadata:IJsonMetaData = MapUtils.getJsonProperty(obj, key);
                if (propertyMetadata) {
                    obj[key] = propertyMetadataFn(propertyMetadata);
                } else {
                    if (jsonObject && jsonObject[key] !== undefined) {
                        obj[key] = jsonObject[key];
                    }
                }
            });
            return obj;
        }
    }

    Учимся кодить правильно: http://cloudmark.github.io/Json-Mapping/

    HiNeX, 20 Октября 2016

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

    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
    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
    <?php
      header('Content-Type: text/plain;'); //Мы будем выводить простой текст
      set_time_limit(0); //Скрипт должен работать постоянно
      ob_implicit_flush(); //Все echo должны сразу же отправляться клиенту
      $address = 'localhost'; //Адрес работы сервера
      $port = 1985; //Порт работы сервера (лучше какой-нибудь редкоиспользуемый)
      if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
        //AF_INET - семейство протоколов
        //SOCK_STREAM - тип сокета
        //SOL_TCP - протокол
        echo "Ошибка создания сокета";
      }
      else {
        echo "Сокет создан\n";
      }
      //Связываем дескриптор сокета с указанным адресом и портом
      if (($ret = socket_bind($sock, $address, $port)) < 0) {
        echo "Ошибка связи сокета с адресом и портом";
      }
      else {
        echo "Сокет успешно связан с адресом и портом\n";
      }
      //Начинаем прослушивание сокета (максимум 5 одновременных соединений)
      if (($ret = socket_listen($sock, 5)) < 0) {
        echo "Ошибка при попытке прослушивания сокета";
      }
      else {
        echo "Ждём подключение клиента\n";
      }
      do {
        //Принимаем соединение с сокетом
        if (($msgsock = socket_accept($sock)) < 0) {
          echo "Ошибка при старте соединений с сокетом";
        } else {
          echo "Сокет готов к приёму сообщений\n";
        }
        $msg = "Hello!"; //Сообщение клиенту
        echo "Сообщение от сервера: $msg";
        socket_write($msgsock, $msg, strlen($msg)); //Запись в сокет
        //Бесконечный цикл ожидания клиентов
        do {
          echo 'Сообщение от клиента: ';
          if (false === ($buf = socket_read($msgsock, 1024))) {
            echo "Ошибка при чтении сообщения от клиента";       }
          else {
            echo $buf."\n"; //Сообщение от клиента
          }
          //Если клиент передал exit, то отключаем соединение
          if ($buf == 'exit') {
            socket_close($msgsock);
            break 2;
          }
          if (!is_numeric($buf)) echo "Сообщение от сервера: передано НЕ число\n";
          else {
            $buf = $buf * $buf;
            echo "Сообщение от сервера: ($buf)\n";
          }
          socket_write($msgsock, $buf, strlen($buf));
        } while (true);
      } while (true);
      //Останавливаем работу с сокетом
      if (isset($sock)) {
        socket_close($sock);
        echo "Сокет успешно закрыт";
      }
    ?>

    HiNeX, 23 Марта 2016

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

    +7

    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
    <?php
    require __DIR__ . '/google-api-php-client/src/Google/autoload.php';
    define('CLIENT_SECRET_PATH', __DIR__ . '/client_secret.json');
    define('SCOPES', implode(' ', array(Google_Service_Calendar::CALENDAR)));
    // ini_set('error_reporting', E_ALL & ~E_NOTICE);
    // ini_set('display_errors', 1);
    // ini_set('display_startup_errors', 1);
    $token = array(
        'access_token' => 'ya29.VgIK8cb-zWiGwy-cwE5yV4F1MiGzp4LAPogdBCxaqOs3lC8jLxeZL_xK6vEHr_HwrMcg',
        'token_type' => 'Bearer',
        'expires_in' => 3600,
        'created' => 1451157166,
        'refresh_token' => '1/oNh5t4RUGAMiYnNmyIH8iySPr0CdQpnKiXxR57Cj3EpIgOrJDtdun6zK6XiATCKT');
    $json_token = json_encode($token);
      $client = new Google_Client();
      $client->setScopes(SCOPES);
      $client->setRedirectUri('http://localhost/obscur');
      $client->setAuthConfigFile(CLIENT_SECRET_PATH);
      $client->setAccessType('offline');
      $client->refreshToken('1/oNh5t4RUGAMiYnNmyIH8iySPr0CdQpnKiXxR57Cj3EpIgOrJDtdun6zK6XiATCKT');
      $client->setAccessToken($json_token);
    $flname = $_POST['flname'];
    $comment = $_POST['comment'];
    $startTime = str_replace(' ','T',$_POST['start']);
    $endTime = str_replace(' ','T',$_POST['end']);
    $members = $_POST['members'];
    $phone = $_POST['phone'];
    $summary = $flname + ' ' + $members + ' ' + $comment + ' ' + $phone;
    if($flname && $comment && $startTime && $endTime && $members && $phone != ""){
      $service = new Google_Service_Calendar($client);
      $event_info = new Google_Service_Calendar_Event(array(
      'summary' => 'Занято',
      'description' => $summary,
      'start' => array(
        'dateTime' => $startTime,
        'timeZone' => 'Asia/Almaty',
      ),
      'end' => array(
        'dateTime' => $endTime,
        'timeZone' => 'Asia/Almaty',
      ), 
      ));
      $events = $service->events->listEvents('primary');
      
      while(true) {
        foreach ($events->getItems() as $event) {
          
          if(substr($event->start->dateTime, 0, -6) == $startTime){
            echo 'Извините, на данное время уже есть запись';
            $exist = true;
            break;
          }else{
            $exist = false;
          }
        }
        $pageToken = $events->getNextPageToken();
        if ($pageToken) {
          $optParams = array('pageToken' => $pageToken);
          $events = $service->events->listEvents('primary', $optParams);
        } else {
          break;
        }
      }
    if($exist == false){
      $calendarId = '[email protected]';
      $event = $service->events->insert($calendarId, $event_info);
      printf('Запись добавлена');
      header("Location: http://localhost/obscur/забронировать.php");
    }
            
      
    }else{
    	echo "Вы заполнили не все поля";
    }
    ?>

    Блядь

    HiNeX, 19 Января 2016

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

    +5

    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 ($template)             // BAD
    if (isset($template))      // GOOD
    if ($template !== NULL))   // GOOD
    if ($template !== ''))     // GOOD
    
    if (strlen($template) > 0) // BAD! strlen("-1") is greater than 0
    if (is_string($template) && strlen($template) > 0) // BETTER
    
    if ($foo == $bar)          // BAD, avoid truthy comparisons
    if ($foo != $bar)          // BAD, avoid falsy comparisons
    if ($foo === $bar))        // GOOD
    if ($foo !== $bar))        // GOOD
    
     // We only allow valid persons
    if (is_object($p) && strlen($p->lastN) > 0 && $p->hidden === FALSE && $this->environment->moonPhase === MOON_LIB::CRESCENT) {
     $xmM = $thd;
    }
    
    if ($this->isValidPerson($person) {
      $xmM = $thd;
    }

    Решил погуглить гайдлайны по PHP: http://flowframework.readthedocs.org/en/stable/TheDefinitiveGuide/PartV/CodingGuideLines/PHP.html

    HiNeX, 07 Декабря 2015

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

    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
    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
    <?php
    
    namespace Oro\Bundle\ActivityListBundle\Controller;
    
    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
    
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\EventDispatcher\EventDispatcherInterface;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\Translation\TranslatorInterface;
    
    use Oro\Bundle\ActivityListBundle\Event\ActivityConditionOptionsLoadEvent;
    
    /**
     * @Route("/activity-list/segment")
     */
    class SegmentController extends Controller
    {
        /**
         * @Route("/activity-condition")
         * @Template
         */
        public function activityConditionAction(Request $request)
        {
            $params = $request->attributes->get('params', []);
            $conditionOptions = [
                'activityConditionOptions' => [
                    'listOption'     => $this->forward(
                        'OroActivityListBundle:Api/Rest/ActivityList:getActivityListOption',
                        [],
                        ['_format' => 'json']
                    )->getContent(),
                    'entitySelector' => sprintf('#%s', $params['entity_choice_id']),
                    'fieldsLoaderSelector' =>  sprintf(
                        '[data-ftid=%soro_api_querydesigner_fields_entity]',
                        $params['entity_choice_id']
                    ),
                    'fieldChoice' => [
                        'select2' => [
                            'placeholder' => $this->getTranslator()->trans(
                                'oro.query_designer.condition_builder.choose_entity_field'
                            ),
                        ],
                    ],
                    'extensions' => [],
                ]
            ];
    
            $dispatcher = $this->getEventDispatcher();
            if (!$dispatcher->hasListeners(ActivityConditionOptionsLoadEvent::EVENT_NAME)) {
                return $conditionOptions;
            }
    
            $event = new ActivityConditionOptionsLoadEvent($conditionOptions['activityConditionOptions']);
            $dispatcher->dispatch(ActivityConditionOptionsLoadEvent::EVENT_NAME, $event);
    
            return [
                'activityConditionOptions' => $event->getOptions(),
            ];
        }
    
        /**
         * @return EventDispatcherInterface
         */
        protected function getEventDispatcher()
        {
            return $this->get('event_dispatcher');
        }
    
        /**
         * @return TranslatorInterface
         */
        protected function getTranslator()
        {
            return $this->get('translator');
        }
    }

    Странная передача параметра в виджет.

    HiNeX, 03 Декабря 2015

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

    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
    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
    <?php
    
    class Palindrome {
    	protected $text;
    
    	function __construct($text) {
    		$this->text = $text;
    	}
    
    	protected function isPalindrome($text) {
    		$string	= mb_strtolower(preg_replace("/[^A-Za-zА-Яа-я0-9]/", "", $text));
    		$status = mb_strlen($string) > 2?($string == $this->reverce($string)):false;
    
    		return (object) [
    				'status' => $status, 
    				'string' => $string, 
    				'original' => trim($text, ' ')
    			];
    	}
    
    	protected function comparingStrings($first_string, $last_string) {
    		$comparing = mb_strlen($first_string) > mb_strlen($last_string);
    		return $comparing?$first_string:$last_string;
    	}
    
    	protected function findPalindrome()
    	{
    		$palindrome = mb_strlen($this->text);
    		$result		= false;
    
    		for ($i = 0; $i < $palindrome; $i++) {
    			$palindrome_c = $palindrome-$i;
    			for ($j = 0; $j < $palindrome_c; $j++) {
    				$find 		= $this->isPalindrome(mb_substr($this->text, $j, $palindrome_c, "UTF-8"));
    
    				if ($find->status) {
    					$result = $this->comparingStrings($find->original, $result);
    				}
    			}
    		}
    
    		return $result;
    	}
    
    	public function view() {
    		if ($this->isPalindrome($this->text)->status) 
    			return $this->text;
    
    		if ($palindrome = $this->findPalindrome())
    			return $palindrome;
    
    		return mb_substr($this->text, 0, 1);
    	}
    }
    
    $view = 'Введите палиндром!';
    
    if (isset($_POST['text'])) {
    	$palindrome = new Palindrome($_POST['text']);
    	$view = $palindrome->view();
    }
    
    ?> 
    
    <html>
    	<head>
    		<title>Palindrome</title>
    	</head>
    	<body>
    		<div><?=$view?></div>
    		<form action="?" method="POST">
    			<input type="text" name="text">
    			<input type="submit">
    		</form>
    	</body>
    </html>

    Накатил тестовое на коленке.

    HiNeX, 17 Ноября 2015

    Комментарии (4)
  8. Куча / Говнокод #18912

    +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
    <!DOCTYPE html>
    <!--Привет, друг!
    Привет, друг. 
    Чушь какая.-->
    <title>CMW | Авторизация</title>
    
    <!-- <Meta> -->
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- </Meta> -->
    
    <!-- <Stylesheet> -->
    <link rel="stylesheet" href="./Stylesheet/index.css">
    <!-- </Stylesheet> -->
    
    <!-- <div style="background-color: #2b333e">Для рекламы</div> -->
    
    <header class="z-depth-1">
        <!-- Фиксация навигации при прокрутке -->
        <div class="navbar-fixed">
            <nav>
                <div class="nav-wrapper">
                    <div class="container"><a href="#" data-activates="slide-out" class="button-collapse"><i class="mdi-navigation-menu"></i></a></div>
                    <a class="navbar-brand navigation__logo" href="main.html"></a>
                    <a  href="auth.html"><button type="submit" class="btn button__main navbar-right authorization">Авторизация</button></a>
                </div>
            </nav>
        </div>
    </header>

    Верстку от дизайнера привезли

    HiNeX, 25 Октября 2015

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

    +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
    public function save() {
    		if (!empty(self::$single)) {
    			if (isset(self::$single['id'])) {
    				$id = self::$single['id'];
    				unset(self::$single['id']);
    				$arraySetters = [];
    				foreach (self::$single as $key => $value) {
    					$arraySetters[] = '`'.$key.'` = \''.$value.'\'';
    				}
    				self::$single['id'] = $id;
    				self::$exec = static::$db->prepare('UPDATE '.self::$table.' SET '.implode(', ', $arraySetters).' WHERE `id` = '.$id.' LIMIT 1');
    				return self::$exec->execute();
    			} else {
    				$arrayKeys = [];
    				$arrayValues = [];
    				foreach (self::$single as $key => $value) {
    					$arrayKeys[] = '`'.$key.'`';
    					$arrayValues[] = '\''.$value.'\'';
    				}
    				self::$exec = static::$db->prepare('INSERT INTO '.self::$table.' ('.implode(', ', $arrayKeys).') VALUES ('.implode(', ', $arrayValues).')');
    				if ($status = self::$exec->execute()) {
    					self::$single['id'] = static::$db->lastInsertId();
    				}
    				return $status;
    			}
    		}
    		return false;
    	}

    HiNeX, 12 Октября 2015

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

    −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
    var value = points[j].value;
    // console.log('Shit data' + value);
    
    // Case hall
    switch (signalsNames[signals-1]) {
      case 'RespFlow':
        value = (value/(65534/500))-250;
      case 'Leak':
      case 'Obstruct':
        value = (value/(65534/100));
      case 'SollDruck':
      case 'IstDruck':
        value = (value/(65534/4000)) / 100;
      case 'AMV':
        value = (value/(65534/630)) / 10;
      case 'AZV':
        value = (value/(65534/2000));
      case 'BreathFreq':
        value = (value/(65534/63));
    }
    
    pointsString.push(signalsNames[signals-1]+' value='+value);

    Я и томский хакатон

    HiNeX, 08 Октября 2015

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

    −11

    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
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    function getAd($ad)
    	{
    		$query = $this->db->query("SELECT A.title as header, A.href as board_id, A.id as b_id, A.user_id,
    			B.name as category, C.name as root_category, B.href as category_href,
    			B.href as cat_href, C.href as root_href, D.name as city_name,
    			A.*, B.*, C.*, D.* FROM
    			board as A,
    			categories as B,
    			categories as C,
    			region as D
    			WHERE
    			B.id = A.id_category and C.id = B.root_id and D.href = A.city
    			and A.href = '".functions::q($ad)."' LIMIT 1");
    		while($b = mysql_fetch_assoc($query))
    		{
    			self::check_hit($b['b_id']);
    			$this->INFO['title'] = $b['header']." - ".$b['category']." на %SITE%";
    			$this->INFO['description'] = $b['header'].($b['price'] != 0 ? " - ". $b['price'] . ' ' . (($b['price_t'] == 'uah') ? 'грн' : '$' ) ."." : "").", ".$b['category']." на %SITE%";
    			$this->search->R = $b['city'];
    			$this->search->CAT_HREF = $b['cat_href'];
    			$this->search->COUNT_ADS = 5;
    			$this->search->setInf();
    			$this->getInfo();
    			$board = $this;
    			echo "<div id='content' align='left' class='mtop0'>";
    			$q = $this->db->query("SELECT * FROM photo WHERE folder = '".functions::q($b['photos_id'])."' ORDER BY time ASC");
    			$i = 0;
    			$photo = Array();
    			while($p = mysql_fetch_assoc($q)) {
    				$url = HOME.'photo/'.$p['folder'].'/'.$p['name'];
    				$url_local = DIR.'/photo/'.$p['folder'].'/'.$p['name'];
    				$size = functions::getFullSize($url_local, 553, 373);
    				$size_min = functions::getFullSize($url_local, 90, 70);
    				$photo[$i] = Array($url, $size['width'], $size['height'], $size_min['width'], $size_min['height']);
    				$i++;
    			}
    			echo "<div class='board-content'>";
    			echo "<div class='bread p10px bbottom-eee'>";
    			echo "<a href='".HOME."search/'>Все объявления</a>";
    			$this->search->getBreadLink(HOME.$b['city']."/", trim($b['city_name']));
    			$this->search->getBreadLink(HOME.$b['city'].'/'.$b['root_href']."/", trim($b['root_category']));
    			$this->search->getBreadLink(HOME.$b['city'].'/'.$b['cat_href']."/", trim($b['category']));
    			echo "</div>
    			</div>";
    			echo "<div class='mtop11 board-content'>";
    			// left
    			echo "<div class='w600px left'>";
    			$rel="";
    			echo "<div class='photos-mini right'>";
    			for($i = 0; $i < count($photo); $i++)
    			{
    				preg_match('/\.([^\.]+)$/',$photo[0][0],$a);
    				echo "<div class='m5".($i == 0 ? " mtop0" : ($i == count($photo) - 1 ? " mbottom0" : ""))."'>";
    				if ($i > 0) $rel=" rel='gallery'";
    				echo "<a class='fullp' href='".str_replace($a[1],'full.'.$a[1],$photo[$i][0])."' ".$rel." class='photo-gallery' style='display:none;' title='" . ($i + 1) . "'>
    					<img src='".$photo[$i][0]."' width='".$photo[$i][3]."' height='".$photo[$i][4]."'
    						data-width='".$photo[$i][1]."'  data-height='".$photo[$i][2]."' ".($i == 0 ? " class='op1'" : "")."/>
    					</a>";
    				echo "<a href='".$photo[$i][0]."' class='photo-gallery' title='" . ($i + 1) . "'>
    				<img src='".$photo[$i][0]."' width='".$photo[$i][3]."' height='".$photo[$i][4]."'
    				data-width='".$photo[$i][1]."'  data-height='".$photo[$i][2]."' ".($i == 0 ? " class='op1'" : "")."/>
    				</a>";
    				echo "</div>";
    			}
    			echo "<div class='cboth'></div>";
    			echo "</div>";
    			echo "<div class='photo left' align='left'>";
    			if (isset($a))
    			echo "<a class='fullp' rel='gallery' title='1' id='fullp' href='".str_replace($a[1],'full.'.$a[1],$photo[0][0])."'><img src='".$photo[0][0]."' id='main-photo'/></a>";
    			/*for($i = 0; $i <= count($photo); $i++)
    			{
    				echo "<img src='".$photo[]."' width='' height=''/>";
    			}*/
    			echo "</div>";
    			echo "<div class='cboth'></div>";
    			echo "</div><!-- /.left -->";
    			// right
    			echo "<div class='w500px right'>";
    			echo "<h1 class='board-h1'>".$b['header']."</h1>";
    			// SillexLab edit
                if ($this->getUserId() == $b['user_id'] || $this->getAdmin())
                {
    				echo '<div class="service-buttons-wrap">';
    				echo '<div class="service-buttons"><a class="button service" href="service/top/'.$b['b_id'].'"><img src="img/button-top.png" class="img-button"></a>';
    				echo '<a class="button service" href="/service/color/'.$b['b_id'].'" style=""><img src="img/button-color.png" class="img-button"></a><a class="button service" href="/service/important/'.$b['b_id'].'" style=""><img src="img/button-time.png" class="img-button"></a></div>';
    				echo '</div>';
    			}
    			/*if ($this->getAdmin()) echo "<div class='service-buttons'>
    			<a class='button service' href='service/top/".$b['b_id']."'>В топ!</a>
    			<a class='button service' href='/service/color/".$b['b_id']."'>Выделить цветом</a>
    			<a class='button service' href='/service/important/".$b['b_id']."'>Сделать срочным</a></div>";
    			*/
    			$price = empty($b['price']) ? "---" : $b['price']." ".(($b['price_t'] == 'uah') ? 'грн' : '$' ).".";
    			echo "<div class='board-price'>
    				<span class='price-num'>$price</span></div>";
    			echo "<div class='board-content w410px mtop11'>";
    			echo "<table cellpadding='0' cellspacing='0' class='board-info'>
    				<tr><td class='td1'>Автор:</td><td><strong>".$b['autor']."</strong> <a href='".HOME."search/?hash=".md5($b['email'])."' style='font-size: 11px;'>(Все объявления владельца)</a></td></tr>

    Божественный метод

    HiNeX, 21 Сентября 2015

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