Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 41 Ответов
  • 8785 Просмотров
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Не смог не поделиться, нашел сегодня вот такое в коммерческом расширении, думаю по коду понятно в каком )
Что должно быть в голове у человека, чтобы внутри HTML элемента, вызываемого к показу внутри PHP кода обращаться к базе и чего то там перебирать через foreach.
Мой мир никогда не будет прежним, ушел за пузырем

Код: php
echo '<img class="dgimg" src="'.resize($obj->imgoriginalname, $ad_maxwidth, $ad_maxheight, 0, 0, $ad_showwatermark, $obj->catid)
            .'" '.get_width_height($obj->imgoriginalname, $ad_maxwidth, $ad_maxheight, $obj->catid).' alt="'.$obj->imgtitle.'" /><br />';
            echo ($ad_showrating && $ratingpos == 1)? '<div>'.showVote ($obj->id, $obj->imgvotes, $obj->imgvotesum, true, $obj->catid).'</div>' : '';
              if ($ad_slideshow) {
              $element = substr($order, 2);
              $wheredesc  = ($dir == 'DESC')? '> ':'< ';
              $whereasc = ($dir == 'ASC')? '> ':'< ';
              $db->setQuery('SELECT p.*'
              .' FROM #__datsogallery AS p'
              .' WHERE p.id != '.$obj->id
              .' AND '.$order.$whereasc.$db->Quote($obj->$element)
              .' AND p.catid = '.$obj->catid
              .' AND p.published = 1'
              .' AND p.approved = 1'
              .' AND p.language IN ('.$db->Quote($language)
              .','.$db->Quote('*').')'
              .' GROUP BY '.$order.' '.$dir
              );
              $rows = $db->loadObjectList();
              if (count($rows)) {
                foreach ($rows as $row) {
                  echo "<a class=\"viewdetails\" style=\"visibility:hidden;\" rel=\"shadowbox[viewdetails];player=img;current_id="
                  .JRoute::_("index.php?option=com_datsogallery&view=image&amp;catid=".$row->catid."&amp;id=".$row->id.$itemid.$na)
                  ."\" href=\"".JURI::root()."index.php?option=com_datsogallery&view=sbox&catid=".$row->catid."&id=".$row->id
                  ."&format=raw\" title=\"".jsspecialchars($row->imgtitle)."\"></a>\n";
                }
              }
              $db->setQuery('SELECT p.*'
              .' FROM #__datsogallery AS p'
              .' WHERE p.id != '.$obj->id
              .' AND '.$order.$wheredesc.$db->Quote($obj->$element)
              .' AND p.catid = '.$obj->catid
              .' AND p.published = 1'
              .' AND p.approved = 1'
              .' AND p.language IN ('.$db->Quote($language)
              .','.$db->Quote('*').')'
              .' GROUP BY '.$order.' '.$dir
              );
              $rows = $db->loadObjectList();
              if (count($rows)) {
                foreach ($rows as $row) {
                  echo "<a class=\"viewdetails\" style=\"visibility:hidden;\" rel=\"shadowbox[viewdetails];player=img;current_id="
                  .JRoute::_("index.php?option=com_datsogallery&view=image&amp;catid=".$row->catid."&amp;id=".$row->id.$itemid.$na)
                  ."\" href=\"".JURI::root()."index.php?option=com_datsogallery&view=sbox&catid=".$row->catid."&id=".$row->id
                  ."&format=raw\" title=\"".jsspecialchars($row->imgtitle)."\"></a>\n";
                }
              }
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Код, смешной до невозможности
« Ответ #1 : 22.04.2015, 18:27:51 »
префикс $ad_ в именах переменных о многом говорит...
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Код, смешной до невозможности
« Ответ #2 : 22.04.2015, 18:38:50 »
а что за расширение такое?
интернет-блог: http://websiteprog.ru
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Код, смешной до невозможности
« Ответ #3 : 22.04.2015, 18:48:29 »
а что за расширение такое?
Незабвенная DatsoGallery
Код с версии 1.2.8
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Код, смешной до невозможности
« Ответ #4 : 22.04.2015, 19:45:40 »
Она же еще с таким ужасом и за деньги продавалась? :)
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Код, смешной до невозможности
« Ответ #5 : 22.04.2015, 19:52:07 »
Она же еще с таким ужасом и за деньги продавалась? :)
не поверишь, она до сих пор продается )
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Код, смешной до невозможности
« Ответ #6 : 22.04.2015, 19:57:14 »
Ну а что, работает главное, потенциальным покупателям неважно как оно написано. Бистрикс вроде вон тоже на 90% из г-кода состоит, вся логика в представлениях реализована, тем не менее продукт продается и в России немалой популярностью пользуется.
интернет-блог: http://websiteprog.ru
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Код, смешной до невозможности
« Ответ #7 : 22.04.2015, 20:00:24 »
Ну а что, работает главное, потенциальным покупателям неважно как оно написано. Бистрикс вроде вон тоже на 90% из г-кода состоит, вся логика в представлениях реализована, тем не менее продукт продается и в России немалой популярностью пользуется.
Так то не поспоришь, оно работает.
Но при любой попытке внести незначительное изменение попадаешь в ад.
Мне вот понадобилось изменить тип ссылки из режима просмотра галереи, после найденного плюнул и отказался от заказа, там еще много чего надо было делать. Ковыряться в таком г.. просто невозможно.

Там же не так дико много кода, можно было бы за столько лет причесать и оформить. Когда сам же это и писал - переделать зная структуру работы на пару недель максимум.
Да и разговор то не про это, просто смешной кусок кода, надо бы сделать тему в флейме где выкладывать подобные "страшилки", я у себя в старых исходниках тоже похожее находил
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Код, смешной до невозможности
« Ответ #8 : 22.04.2015, 20:11:12 »
Да, не помешало бы. Это хотя-бы может подтолкнуть разработчиков научится нормально писать. Я вот и на этом форуме на смешные коды натыкаюсь переодически. Вот например шедевр:
Код: php
$orderCol = 'a.name '.$orderDirn.', a.ordering'
      ||  $orderCol = 'a.date '.$orderDirn.', a.ordering' . 'a.time '.$orderDirn.', a.ordering'
      ||  $orderCol = 'a.state '.$orderDirn.', a.ordering';

Тоже компонент какой-то будет. А потом все кричат что Joomla отстой, когда наставять себе подобных расширений.
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Код, смешной до невозможности
« Ответ #9 : 22.04.2015, 20:14:38 »
Да. последний перл стоит этой коллекции ))
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Код, смешной до невозможности
« Ответ #10 : 22.04.2015, 20:16:44 »
Код: php
$orderCol = 'a.name '.$orderDirn.', a.ordering'
      ||  $orderCol = 'a.date '.$orderDirn.', a.ordering' . 'a.time '.$orderDirn.', a.ordering'
      ||  $orderCol = 'a.state '.$orderDirn.', a.ordering';
Чет я не пойму что это вообще делает, "Х = бла ИЛИ Х = бла2 ИЛИ Х = бла3", понятно что это запрос в базу, но логику не улавливаю

Кстати я понял причину подобного кода у датсы - чтобы ни один сторонний прогер не смог разобраться и покупатели обращались к производителю за доработками, нормальная такая бизнес логика )
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Код, смешной до невозможности
« Ответ #11 : 22.04.2015, 20:20:15 »
оно делает $orderCol = true, а то что имел  ввиду автор бог знает, видимо запрос какой то но даже и в запросе ', a.ordering' . 'a.time ' ошибка будет . Этот шедевр еще обернут был в условие в которое автор никогда не попадает, поэтому он до сих пор убежден что оно работает.
« Последнее редактирование: 22.04.2015, 20:27:43 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Код, смешной до невозможности
« Ответ #12 : 22.04.2015, 20:26:53 »
оно делает $orderCol = true
ну, вернет оно единицу вне зависимости от типа переменной (хотя сомневаюсь что там оно объявлено), смысл сего действа непонятен.
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Код, смешной до невозможности
« Ответ #13 : 13.11.2015, 21:31:18 »
Попросили меня тут  одну форму подкоректировать. Залез в компонент и..
Спойлер
[свернуть]

Это только кусок из файла в несколко тыщ строк, коих там еще навалом. Компоненет вроде как коммерческий..
 
интернет-блог: http://websiteprog.ru
*

KKAAZZOO

  • Живу я здесь
  • 2288
  • 118 / 9
Re: Код, смешной до невозможности
« Ответ #14 : 13.11.2015, 21:43:39 »
Sobi бесплатный компонент, но создал его солидный разработчик Радек Суски, весьма авторитетный человек в Joomla сообществе
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Код, смешной до невозможности
« Ответ #15 : 13.11.2015, 21:44:17 »
Шедевр!  ::)
Не будь паразитом, сделай что-нибудь самостоятельно!
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Код, смешной до невозможности
« Ответ #16 : 13.11.2015, 21:52:20 »
Цитировать
Sobi бесплатный компонент, но создал его солидный разработчик Радек Суски, весьма авторитетный человек в Joomla сообществе

Даже не знаю что на это ответить. Код говорит сам за себя. Мне вот интересно как он угадывал в каком месте и сколько этих табуляторов "\t" поставить
интернет-блог: http://websiteprog.ru
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Код, смешной до невозможности
« Ответ #17 : 13.11.2015, 21:58:29 »
там DatsoGallery такая же по коду, раз столкнулся, пару суток голову ломал с выводами, модулями к ней и т.д.
может поэтому и автор кода столько ошибок сделал.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

wishlight

  • Живу я здесь
  • 4980
  • 293 / 1
  • от 150 руб быстрый хостинг без блокировок
Re: Код, смешной до невозможности
« Ответ #18 : 13.11.2015, 22:00:11 »
Пасаны, как не стать ***кодером?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Код, смешной до невозможности
« Ответ #19 : 13.11.2015, 22:04:21 »
Цитировать
Пасаны, как не стать ***кодером?

Ну может это раздел поможет?
интернет-блог: http://websiteprog.ru
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Код, смешной до невозможности
« Ответ #20 : 13.11.2015, 22:08:40 »
Ну может это раздел поможет?
не не поможет, вон целый сайт аля баш уже много лет работает http://govnokod.ru/ а нашего полку прирастает с каждым годом )
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Код, смешной до невозможности
« Ответ #21 : 13.11.2015, 22:08:52 »
Ну когда пишешь на php, язык так и подстрекает опуститься в ***кодинг.
Вот, вчера такое накодил, оцените на гкснутость.
Спойлер
[свернуть]
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Код, смешной до невозможности
« Ответ #22 : 13.11.2015, 22:10:52 »
а куда этот ключ и столько ТРУЕ+ФАЛСЕ?
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Код, смешной до невозможности
« Ответ #23 : 13.11.2015, 22:11:42 »
Воланд - у тебя тоже адовые переменные $add ))
а так то хз что у тебя там должно быть, я может быть делал через кейсы, они красивше читаются. Ну и для таких вот уровневых условий обязательно нужны комментарии, что у тебя за массив и что там за каждый элемент внутри $condition, через месяц сам не разберешься

хотя по своему маленькому опыту могу судить, что если получается вот такой быдлокод - значит надо менять саму логику приложения, бо такое не должно быть. Но - зачастую лень и оставляешь в продакшн, ведь работает а переписывать бюджета нет
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Код, смешной до невозможности
« Ответ #24 : 13.11.2015, 22:18:19 »
Хм, а как там через кейсы, там 6 условий, должны учитываться одновременно, если они есть.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Код, смешной до невозможности
« Ответ #25 : 13.11.2015, 22:18:30 »
Но - зачастую лень и оставляешь в продакшн, ведь работает а переписывать бюджета нет
вот лень=это точно, я бывает так ленюсь, что паддинги с маргинами путаю в CSS, про код вообще молчу.
и тем более я ***кодер и не умею и новичок, если сравнивать с проффесионалами в этом деле.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Код, смешной до невозможности
« Ответ #26 : 13.11.2015, 22:18:57 »
Воланд - я нашел тебе пример твоего кода http://govnokod.ru/19013
абажаю такие штуки
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Код, смешной до невозможности
« Ответ #27 : 13.11.2015, 22:19:57 »

хотя по своему маленькому опыту могу судить, что если получается вот такой быдлокод - значит надо менять саму логику приложения, бо такое не должно быть. Но - зачастую лень и оставляешь в продакшн, ведь работает а переписывать бюджета нет
Там жуткий K2, еще и с доработками, его не перепишешь ))
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Код, смешной до невозможности
« Ответ #28 : 13.11.2015, 22:29:37 »
Хм, а как там через кейсы, там 6 условий, должны учитываться одновременно, если они есть.

Код: php
switch (true) {
    case (condition):
        // do something
        break;
    case (condition):
        // do something else
        break;   
}
интернет-блог: http://websiteprog.ru
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Код, смешной до невозможности
« Ответ #29 : 13.11.2015, 22:31:45 »
Только брейк мне там не нужен.
А значит, кейсы еще уменьшили бы читаемость.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться