- 1
<button type="button" class="btn blue" style="float: left; margin-bottom: 20px; margin-left: 15px;" onclick="window.location = '/cars/car/update/id/<?php echo $model->id; ?>'"></button>
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+157
<button type="button" class="btn blue" style="float: left; margin-bottom: 20px; margin-left: 15px;" onclick="window.location = '/cars/car/update/id/<?php echo $model->id; ?>'"></button>
Проект работает на основе Yii framework. Тут явное пренебрежение всеми концепциями и стандартами: от размещения css в html элементе, до не понимания, как устроен веб в целом -- почему window.location, а не обычный линк, для меня остается тайной. Искренне желаю взглянуть в лицо автору кода.
gost 05.03.2015 16:20 # +4
Fike 05.03.2015 17:45 # 0
Vasiliy 05.03.2015 18:06 # +2
dekameron 12.03.2015 15:34 # 0
А по стандартам Yii 1 button вывести нихрена не легче, чем просто вписать в представление html-код
creepy-code 12.03.2015 23:01 # 0
Fike 14.03.2015 13:20 # 0
покороче вышло
понятно, что там еще URL надо генерировать на лету, а при локализации там появится еще говна, но все равно делать согласно замыслу Yii 1обычно себе дороже.
bormand 14.03.2015 13:25 # +1
Ага... На десяток символов покороче... А в итоге поломал ЧПУ, которые могли работать в оригинале и запорол ссылку - вот всяко там было /cars/car/update/10 или /cars/car/update?id=10, а не /cars/car/update10. И ради чего была эта "оптимизация"?
Ну и <?php ?> посреди атрибутов, имхо, смотрится ужасно.
Fike 14.03.2015 13:52 # 0
creepy-code 14.03.2015 14:57 # 0
Неужели весь веб в целом?
kegdan 14.03.2015 15:21 # +1
Fike 14.03.2015 16:57 # +1
Resha 12.03.2015 17:57 # −2
А причиной всему "Надо через 10 минут, у нас презентация, а кнопка не работает! ААААА!" от менеджера.
Говнокод? Да! Ржать над ним? Плакать скорее, причём понимая вероятные причины.
creepy-code 12.03.2015 22:59 # 0
Времени, чтобы сделать ссылку и повесить на нее класс или те же стили, занимает ровно столько же, сколько и эта реализация.
Resha 13.03.2015 00:28 # 0
guest 13.03.2015 13:49 # 0
Там нужно было сделать ссылку для перехода на страницу редактирования -- всё. Эта задача реализуется при помощи тега <a href='...'></a>.
Resha 13.03.2015 13:57 # 0
creepy-code 13.03.2015 23:04 # 0
Resha 14.03.2015 04:30 # 0
Опять же, если в той системе стили от какого-нибудь бутстрапа - да, программер погорячился слегка.
bormand 14.03.2015 08:12 # +1
Это вообще возможно хоть в каком-нибудь браузере? Емнип, нативное оформление кнопки полностью отваливается после любой попытки что-то перекрасить или скруглить. Поэтому либо вообще не трогаем стиль, либо делаем полностью свой. Третьего не дано.
Но я могу ошибаться. Я не профи в вёрстке.
Resha 14.03.2015 10:18 # 0
bormand 14.03.2015 11:33 # 0
kegdan 14.03.2015 12:53 # +2
guest 13.03.2015 13:50 # 0
Resha 13.03.2015 13:59 # 0
Ну и да, использовать вот это - <?= CHtml::link('Редактировать', ['/cars/car/update', 'id'=>$model->id], ['class'=>'btn btn-success']) ?> вместо чистого html - это тот ещё пиздец, конечно (а это автор приводит, как пример правильной кнопки, причём почему-то автоматически подразумевая, что используется бутстраповская кнопка).
creepy-code 13.03.2015 23:17 # 0
Но, есть важный момент -- сам адрес ссылки. Фреймворк, как вы могли заметить, используется Yii. А Yii в свою очередь поддерживает настройку маршрутов. Т.е. исходный /cars/car/update/id/<id> можно заменить в настройках приложения на что душе угодного, хоть на /cs-c-u-<id>, при условии, что этот адрес обрабатывается urlManager'ом.
В своем примере, я хотел показать лаконичность кода, который легко читается и его можно легко рефакторить.
Я ни в коем случае не претендую на правильный вариант кнопки -- исходное решение неплохо справляется со своим замыслом. Тут дело в другом: если я использую фреймворк, я следую его тенденциям.
А иначе, какой смысл использовать фреймворк, если можно накостылить велосипедов с нуля?!
Resha 14.03.2015 04:28 # +1
Насчёт ссылок-кнопок - у меня самого было куча случаев, когда приходилось писать такие вот решения по причинам, которые я перечислил. Обычно это бывает в проектах, в которых подобные решения можно считать даже красивыми, потому что остальной код - это полный пиздец. Ну и опять же, как я уже писал - у PHP-программистов с фронтендом в целом жопа. Лучше нанимать отдельного человека на это, если есть возможность.