"...Годы страданий начались с тех пор, когда в город приехал новый художник Феофан Копытто.
Первая его работа вызвала в городе большой шум. Это был портрет заведующего гостиничным трестом. Феофан Копытто оставил станковистов далеко позади. Заведующий гостиничным трестом был изображен не масляными красками, не акварелью, не углем, не темперой, не пастелью, не гуашью и не свинцовым карандашом. Он был сработан из овса. И когда художник Копытто перевозил на извозчике картину в музей, лошадь беспокойно оглядывалась и ржала.
Там специально поставил комментарий, что с кешем можно поэкспериментировать при необходимости. Кеширование по времени со значением 0 (т.е. кеш отключен) взято за дефолтную опцию. А так - да, можно кешировать хоть по контексту URL, хоть по тегам, хоть по сессии или ещё как угодно. Тут уже на усмотрение ТС, хотя он, как мне кажется, даже не будет заморачиваться с такими "несущественными" моментами. )
А также в семёрке нет быстрых/удобных методов обращения к параметрам GET-запроса, а также удобного контроля за кешем build-массива и ещё 100500 вещей, которые облегчают жизнь. Если же из этого кода убрать комментарии и ненужные проверки (которые здесь приведены как опциональные конструкции), то получите ну может чуть более, чем заветные 2 строчки. Да и в кол-ве ли строчек суть? Или же боитесь переработать?
И вообще: может, хватит уже тосковать и ныть о "простоте" D7?
Собственно, из вышеприведённого перечня это наиболее безобидная неточность в вашем случае. Поскольку PHP (слава Богу) в операторах сравнения понимает что и 0 и FALSE - не ИСТИНА. Стало быть, поскольку вы проверяете именно истинность результата preg_match(), то в вашем случае сработает только 1, остальные два возможных результата просто не имеют значения.
И что? Запрос Андрюхи не удовлетворяет условию вашей проверки, следовательно $_GET['type'] не будет изменён вашим "фильтром" и пойдёт в неизменном виде в SQL-запрос.
А зачем? Мы ж с вами уже объяснились в своё время. Я вам признался, что я цыган и не котирую высшее образование. Я также не читал брошюрки о Друпале за завтраком в ВУЗе, как это делали вы. Что вам с того, что я что-то там критикую или одобряю?
dashiwa wrote: Красивый код пишется для программистов. Бизнесу нужен рабочий код, ему все равно на красоту а тем более есть красота стоит денег...и еще каких..
kompospec wrote: Чистота кода важна там - где продают именно код.
Однако. Канонический кошерный контроллер хотел бы вернуть ответ "Нет результатов", если их нет (т.е. SQL-запрос вернул ноль рядов). Или "Ошибка в параметрах", если параметр не передали или передали с ошибкой (в вашем случае будет фатальной ошибкой передать, например, не буквенное значение, а числовое, типа ?type=0).
Имхо, вы тут таки пытаетесь смешивать мух с котлетами. Думаю, если всё же попытаться натягивать шаблон MVC на приведённый код, то (как-то очень условно):
1. Цикл while (проход по рядам) - это всё таки ещё модель. Модель на выходе должна дать все результирующие данные, без разметки и форматирования.
Как добавить несколько изменяемых предложений внутрь Ноды. Д8.
Гениально, маэстро.
Как добавить несколько изменяемых предложений внутрь Ноды. Д8.
"...Годы страданий начались с тех пор, когда в город приехал новый художник Феофан Копытто.
Первая его работа вызвала в городе большой шум. Это был портрет заведующего гостиничным трестом. Феофан Копытто оставил станковистов далеко позади. Заведующий гостиничным трестом был изображен не масляными красками, не акварелью, не углем, не темперой, не пастелью, не гуашью и не свинцовым карандашом. Он был сработан из овса. И когда художник Копытто перевозил на извозчике картину в музей, лошадь беспокойно оглядывалась и ржала.
Как добавить несколько изменяемых предложений внутрь Ноды. Д8.
Там специально поставил комментарий, что с кешем можно поэкспериментировать при необходимости. Кеширование по времени со значением 0 (т.е. кеш отключен) взято за дефолтную опцию. А так - да, можно кешировать хоть по контексту URL, хоть по тегам, хоть по сессии или ещё как угодно. Тут уже на усмотрение ТС, хотя он, как мне кажется, даже не будет заморачиваться с такими "несущественными" моментами. )
Как добавить несколько изменяемых предложений внутрь Ноды. Д8.
А также в семёрке нет быстрых/удобных методов обращения к параметрам GET-запроса, а также удобного контроля за кешем build-массива и ещё 100500 вещей, которые облегчают жизнь. Если же из этого кода убрать комментарии и ненужные проверки (которые здесь приведены как опциональные конструкции), то получите ну может чуть более, чем заветные 2 строчки. Да и в кол-ве ли строчек суть? Или же боитесь переработать?
И вообще: может, хватит уже тосковать и ныть о "простоте" D7?
Ajax Throbber -прогресс запроса
Тут, честно говоря, вообще непонятно о чём речь и где именно находится эта кнопка, где нужен AJAX-индикатор.
Да и версию Друпала следовало бы явно указать, только по отдельным признакам можно догадаться, что D7.
Как добавить несколько изменяемых предложений внутрь Ноды. Д8.
hook_entity_view
Добавить программное (виртульное) поле, а-ля:
To be required or not to be?
Необязательно делать через AJAX. Зависимые состояния полей (в вашем случае visible и required ) штатно устанавливаются через Form API states.
https://www.drupal.org/docs/drupal-apis/form-api/conditional-form-fields...
Не выводится сообщение о сбросе пароля
"Вообще" - подразумеваются и любые системные сообщения Друпала? Т.е. не только относящиеся к механизму авторизации?
Случайное отображение элементов Представления
+1 к версии о кэше.
Модель-Представление-Контроллер где это в Друпале?
Ну как бы это и не ожидалось с первого подхода. Не переживайте.
Модель-Представление-Контроллер где это в Друпале?
Всем доброго вечера. Видимо, банкет продолжается.
Да бросьте. Скрыть ошибки/предупреждения и не получить вообще ничего на странице - это по-вашему выход?
Модель-Представление-Контроллер где это в Друпале?
Тем, что ваш код вместо любого (хотя бы) результата не даст вообще ничего, кроме ошибок на экране. Недостаточно?
В общем, хватит на сегодня. Видимо, тема исчерпала свой интригующий потенциал. С вами было приятно пообщаться.
Модель-Представление-Контроллер где это в Друпале?
Например, с какими ошибками?
Собственно, из вышеприведённого перечня это наиболее безобидная неточность в вашем случае. Поскольку PHP (слава Богу) в операторах сравнения понимает что и 0 и FALSE - не ИСТИНА. Стало быть, поскольку вы проверяете именно истинность результата preg_match(), то в вашем случае сработает только 1, остальные два возможных результата просто не имеют значения.
Намного хуже всё остальное (п.1 и 2).
Модель-Представление-Контроллер где это в Друпале?
Неточности - это примерно о половине вашего кода, если уж зарыться. Ну что, попробуем прикинуть. Навскидку:
1. В случае отсутствия (т.е. непередачи) параметра
?type=...
вы получите PHP notice, причём несколько раз. А такая ситуация может быть.Модель-Представление-Контроллер где это в Друпале?
Пересмотрел ещё раз ваш код - признаю, не обратил внимание на инвертирование маски
"/[^a-z]/"
. Да, ваш фильтр не пропустит Андрюхин запрос.Модель-Представление-Контроллер где это в Друпале?
Мне очень страшно оказаться в вашем списке недопрограммистов. Поэтому ничего писать не буду. Да и вообще - я здесь просто понты кидаю. Умничаю-с.
Модель-Представление-Контроллер где это в Друпале?
И что? Запрос Андрюхи не удовлетворяет условию вашей проверки, следовательно
$_GET['type']
не будет изменён вашим "фильтром" и пойдёт в неизменном виде в SQL-запрос.Модель-Представление-Контроллер где это в Друпале?
А зачем? Мы ж с вами уже объяснились в своё время. Я вам признался, что я цыган и не котирую высшее образование. Я также не читал брошюрки о Друпале за завтраком в ВУЗе, как это делали вы. Что вам с того, что я что-то там критикую или одобряю?
Модель-Представление-Контроллер где это в Друпале?
Есть мысль, что таки в конкретно этом случае будет просто ошибка SQL. Поскольку экранировано одинарными кавычками.
Ищу ментора -- учителя
Смысл месседжа совсем не в этом. Ключевые слова "я могу".
А я вот не могу.
Модель-Представление-Контроллер где это в Друпале?
Модель-Представление-Контроллер где это в Друпале?
Модель-Представление-Контроллер где это в Друпале?
Что-то вроде этого, если сильно зажмуриться. )
Однако. Канонический кошерный контроллер хотел бы вернуть ответ "Нет результатов", если их нет (т.е. SQL-запрос вернул ноль рядов). Или "Ошибка в параметрах", если параметр не передали или передали с ошибкой (в вашем случае будет фатальной ошибкой передать, например, не буквенное значение, а числовое, типа ?type=0).
Как по феншую создавать свой модуль?
Тут, видимо, нужно выбирать: по фэншую или же как вам удобно. Иначе фэншуй не состоится. Меняйте философию, что сказать.
Давайте прикинем. Вам, видимо, нужно привязать twig-шаблон к выводу таблицы. В чём проблема? Примеров множество в сети, погуглите, найдёте.
Модель-Представление-Контроллер где это в Друпале?
Имхо, вы тут таки пытаетесь смешивать мух с котлетами. Думаю, если всё же попытаться натягивать шаблон MVC на приведённый код, то (как-то очень условно):
1. Цикл while (проход по рядам) - это всё таки ещё модель. Модель на выходе должна дать все результирующие данные, без разметки и форматирования.