Захожу в созданный views, жму "изменить", затем жму "предпросмотр"
Все выдает правильно. А в конце страницы выводит автоматически созданный sql-запрос,
на основании которого построена страница.
Скажите, плиз, можно ли этот запрос немного вручную подкорректировать?
Захожу в созданный views, жму "изменить", затем жму "предпросмотр"
Все выдает правильно. А в конце страницы выводит автоматически созданный sql-запрос,
на основании которого построена страница.
Скажите, плиз, можно ли этот запрос немного вручную подкорректировать?
Что значит в ручную, если вы его с помощью виевса создаете? Сделайте самостоятельный сниппет на основе того запроса, какого угодно вида, и все.
Dalay -> Что значит в ручную, если вы его с помощью виевса создаете?
Хочу добавить несколько условий отбора в WHERE.
Dalay -> Сделайте самостоятельный сниппет на основе того запроса, какого угодно вида, и все.
Предварительно так и сделал. Но хотелось бы сделать более системно.
Мне кажется что такая возможность должна быть. Уж очень это напрашивается.
Только куда копать не знаю...
Dalay -> Что значит в ручную, если вы его с помощью виевса создаете?
Хочу добавить несколько условий отбора в WHERE.
Dalay -> Сделайте самостоятельный сниппет на основе того запроса, какого угодно вида, и все.
Предварительно так и сделал. Но хотелось бы сделать более системно.
Мне кажется что такая возможность должна быть. Уж очень это напрашивается.
Только куда копать не знаю...
Ну не знаю насколько справедливо называть сделанное виевсом «системно». Вот что я имел ввиду: если не знаете, как самостоятельно составить нужный запрос, то посмотрите, как его создает виевс и на его основе сниппетом выводите нужное в блок или куда вам надо. Разве так не проще?
Приемлемое решение - это возмможность корректировки результирующего запроса
при корректировке самого views.
Как я понимаю это, возможно уже реализовано с помощью какого нибудь модуля,
расширяющего возможности views. Может кто знает?
Знает что? Как сделать свой модуль для views описано в документации. Если надо скорректировать конкретный запрос - хук.
Я помниться переделывал внешние (exposed) фильтры (надо было добавить сортировку, которую во views нельзя сделать) и мне было проще альтернуть запрос, чем писать модуль.
Там кнопЫчка есть «экспорт», попробуйте нажать. :)
Я уже когда-то тыкал эту кнопочку, и у меня (как впрочем и сейчас) сложилось впечатление, что это не тот код, который выполняется views во время генерации самой страницы.
Этот код настраивает нужным образом сам view, фактически просто передаёт все параметры, которые мы настроили. Ошибаюсь?
"Dan" wrote:
Я, помнится, переделывал внешние (exposed) фильтры (надо было добавить сортировку, которую во views нельзя сделать) и мне было проще альтернуть запрос, чем писать модуль
Кстати, столкнулся с этим сам. Но лезть в программирование из-за этого не захотелось)
Дадада. Люди не знают что такое cache_get/set, а ты предлагаешь делать сниппетами. Потом будут думать - "Откуда 1500 запросов на главной? Ах да! У меня же в template.php десять сниппеттов, неужели они?!"
Делайте на views в режиме полей, со включенным кэшированием. Как "вырастите" в знаниях - своим модулем.
Дадада. Люди не знают что такое cache_get/set, а ты предлагаешь делать сниппетами. Потом будут думать - "Откуда 1500 запросов на главной? Ах да! У меня же в template.php десять сниппеттов, неужели они?!"
Че за бред и при чем тут template.php? "1500 запросов на главной" появляются как раз после следования советам делать все-че-не -попадя Виевсами. Да нафиг он, Друпал, вообще нужен, если использование его собственного апи подразумевает использование апи другого стороннего.
Че за бред и при чем тут template.php?
... если использование его собственного апи...
Это не бред, это суровая реальность. Люди не знают АПИ! Знающие сами решат, что им лучше - views или собственный код. Остальные берут сниппеты откуда не попадя и не зная как они работают, пихают во все доступные места, пока не заработает.
Хочешь сделаю смешно? Попросили меня посмотреть сайт, который "притормаживал". Беглый осмотр выявил:
- блок на views выводящий что-то там с терминами, но от него отказались, т.к не смогли добиться нужного отображения (от незнания модуля).
- блок в кастом-модуле выводящий то же самое, не дописан до конца.
- сниппет в template.php
самое прикольное, что из-за того что все эти три блока вставлялись ручками, они работали все, но первые два были вставлены неправильно, поэтому запросы выполнялись, но ничего не выводили. Маразм? Да. Редкость? Нет.
Именно поэтому я всем советую пользоваться views - тыкая мышкой сложно _так_ напортачить. Плюс можно применить стандартные ф-ции оптимизации, которые описаны и разжёваны многократно. Хоть то же кэширование во views.
В заключенение вопрос на засыпку: сколько ты видел на д.ру снипеттов с кэшированием?
Вот ты упрямый перец. Или я всего не догоняю, что вполне возможно.
Давай так: если ты мне сейчас скажешь, что результат выполнения кода, помещенного в блок(при включенном кешировании блоков) не хрена не кэшируется, и код выполняется каждый раз по новой, то я тогда поверю тебе на слово. Более того - скажу искреннее спасибо за новую для меня информацию. То же применительно и к коду в template.php(при включенном же кэше), в принципе. Заметь, это не под...ебка, я действительно допускаю, что такое может быть.
Режим кэширования: Нормальный.
Кэш блоков: Включен.
1. Добавляем новый блок, контент: <?php print( date('H:i:s') ); ?> Помещаем блок в регион. Жмём до посинения F5 - на каждое обновление время будет обновляться.
2. Теперь идём в views, создаём список заголовок нод, ставим кэширование, например 1 час - смотрим, стираем пару нод, смотрим.
Вывод: кэширование views работает всегда, кэширование блоков - только для анонимов. Я надеюсь не открыл для тебя америку? Или таки открыл?
Вывод: кэширование views работает всегда, кэширование блоков - только для анонимов. Я надеюсь не открыл для тебя америку? Или таки открыл?
Кэширование views работает, когда выбран и задействован режим кэширования блока и уж точно не по дефолту. Но это ладно, фиг с ним, другое забавно. Ты предлагаешь решать Виевсом проблему кэширования для анонимов? Для того есть более специфические решения. Не согласен? Дома хлеб пилой двуручной нарезаешь?
Если уж совсем лениво открывать базу и ставить нужный режим кэширования у нужного блока, есть Block Cache Alter, например. Но не Виевс же для этого мостить.
Ты предлагаешь решать Виевсом проблему кэширования для анонимов?
Я тебе показываю, что кэш views работает для залогиненных, а ты делаешь вывод, что я предлагаю использовать его для анонимов? Где логика?
Для анонимов в друпале всё проще. Нагрузка начинает жрать ресурсы, когда много залогиненных. Вот для них кэшировать кучу выборок просто необходимо. На кой ляд грузить список последних новостей при каждом просмотре, когда эти новости добавляются несколько раз в неделю?
Например можно поставить перманентный кэш и сбрасывать его по тригеру обновления материала.
"Dalay" wrote:
Если уж совсем лениво открывать базу и ставить нужный режим кэширования
Это тебе просто. А большинство пользователей вообще смутно представляют себе работу блоков, не говоря уже о нюансах режима их кэширования.
Ты даёшь советы как специалист специалисту, а надо ориентировать советы на новичков - таких на сайте большинство. Иначе все начинают кричать, что views много жрёт и делают сниппеты, на которые без слёз не взглянешь.
Ты в курсе, что куча народу не только не знает АПИ друпала, но и в PHP плавают? А ко мне много таких обращается в аську.
Я тебе показываю, что кэш views работает для залогиненных, а ты делаешь вывод, что я предлагаю использовать его для анонимов? Где логика?
ОписАлся, сорри, для залогиненных естесно.
"Dan" wrote:
Ты в курсе, что куча народу не только не знает АПИ друпала, но и в PHP плавают? А ко мне много таких обращается в аську.
Все когда-то начинают сначала. Или поручают решить свою надобность тому, кто начал раньше, если деньги есть. То, что тебе с помощью Виевс гораздо проще и быстрей кому-то предоставить им желаемое, не отменяет того, что есть на самом деле.
А что есть на самом деле? Что собственный код эффективнее? Вернулись с чего начали - не умеет большинство писать свой код и говорить им что их код будет эффективнее views - вводить в заблуждение. Не будет. Пусть учатся, но не думают, что сделать снипетт - это как два пальца.
Я делал тестовое задание для кандидатов в работу на простые задание, в условиях было знание АПИ друпала выше среднего. Из 10-ти проходили его 1-2. И это люди, которые считают, что хорошо знают АПИ.
А что есть на самом деле? Что собственный код эффективнее? Вернулись с чего начали - не умеет большинство писать свой код и говорить им что их код будет эффективнее views - вводить в заблуждение. Не будет. Пусть учатся, но не думают, что сделать снипетт - это как два пальца.
Забавно, ты сетуешь, что люди не знают Друпала, и при этом отсылаешь их изучать Вивс. Противоречий не видишь?
Что есть на самом деле? Тотальное облондинивание и развод. Создание ложных стереотипов и подмена понятий. Ну прям про "демократию" у меня получилось.
Печально, Ден, когда профессионал становиться ремесленником, и перестает видеть все остальное, что находиться за пределами сферы его меркантильных интересов.
есть сайт, 5 видов по 10 отображений в них, заказчик говорит, неплохо было бы добавить к ним поле,
не вопрос раз и готово.
твой вариант: есть 50 функций (самый фиговый вариант) которые делают запросы и тд. надо исправить все sql запросы, функции вывода и тд. а потом еще и проверить не напортачил ли где.
но ты программист клевый у тебя свой мини views велосипед наверно, с целым забором из if`ов на все случаи жизни.
есть сайт, 5 видов по 10 отображений в них, заказчик говорит, неплохо было бы добавить к ним поле,
не вопрос раз и готово.
твой вариант: есть 50 функций (самый фиговый вариант) которые делают запросы и тд. надо исправить все sql запросы, функции вывода и тд. а потом еще и проверить не напортачил ли где.
но ты программист клевый у тебя свой мини views велосипед наверно, с целым забором из if`ов на все случаи жизни.
Какие еще 50 функций? Че за гон? Достаточно добавить новое в запрос и поправить вывод. Что, собственно, делает и виевс, тока за "5 рублей", я же предлагаю снизить расходы до "1 копейки". Хоть и больше телодвижений совершать придеться, но в конечном итоге окупит себя неизмеримо больше. Ты предлагаешь "по-быстрому перепихнуться" и разойтись, а я за любовь. Извини за пафос
Забавно, ты сетуешь, что люди не знают Друпала, и при этом отсылаешь их изучать Вивс. Противоречий не видишь?
Нет, не вижу. Изучить views не в пример проще большинству людей нежели изучить АПИ друпал.
"Dalay" wrote:
Печально, Ден, когда профессионал становиться ремесленником, и перестает видеть все остальное, что находиться за пределами сферы его меркантильных интересов.
Я экономлю деньги заказчика и занимаюсь оптимизацией реально узких мест сайта, а такие места далеко не всегда запросы views. Если же узкое место - views - нет проблем, перейти на свой код можно очень быстро, даже на продакшене.
Кстати, ты можешь сказать на сколько views неэффективнее собственного кода? С примерами в цифрах?
Забавно, ты сетуешь, что люди не знают Друпала, и при этом отсылаешь их изучать Вивс. Противоречий не видишь?
Нет, не вижу. Изучить views не в пример проще большинству людей нежели изучить АПИ друпал.
Правда? Сам понимаешь, что говоришь? Хотя да, изучать мир через телевизор - это вполне в духе времени.
"Dan" wrote:
Я экономлю деньги заказчика и занимаюсь оптимизацией реально узких мест сайта, а такие места далеко не всегда запросы views. Если же узкое место - views - нет проблем, перейти на свой код можно очень быстро, даже на продакшене.
Чего ты ему экономишь с помощью Виевс, кроме времени общения с тобой, как исполнителем? 95% твоих клиентов хер когда потом соскочат с Виевса. Следующий «мастер» порекомендует «докупить» железных мощностей, а тот, что будет после - перейти на самописный вариант «узкозаточенный под конкретный сайт».:)
Виевс - это не проблема сам по себе, это гавно, как стиль использования движка. Логичное продолжение такого стиля - решение вопроса фотогалереи, банальнейшая вещь в любой другой условно популярной CMS, с помощью установки около десятка дополнительных модулей от разных маинтайнеров. Тут здравый смысл просто не участвует, потому, как не сопоставим с подобной хренью.
"Dan" wrote:
Кстати, ты можешь сказать на сколько views неэффективнее собственного кода? С примерами в цифрах?
Views самый популярный модуль Drupal, написан и вылизан он далеко не новичками-нубами, а ребятами которые знают друпал очень хорошо и которые тоже думают о производительности не в последнюю очередь. И их авторитет для меня выше чем твой, потому что они - делают, а ты - говоришь:
* Я тебя попросил привести примеры хороших решений сниппетов, представленных на этом сайте - ты проигнорировал.
* Оценки производительности views и самописного кода от тебя тоже нет (хотя сам требуешь привести тебе примеры).
читал вас, читал и так никто ничего и не написал толкового, одни споры - что лучше...
можете хотя бы ссылки толковые дать, ато по тем что тут давали толком тоже ничего нет, кроме названия хуков...
мне нужно сделать сортировку или выборку, нашел одно решение:
в настройках вьюса добавить фильтр и потом в своем модуле использовать хук дабы подменить запрос, но проблема в том что там несколько аргументов сразу может передаваться, и их число точно не известно, а кол-во фильтров устанавливается вручную... И еще - можно ли как то передавать аргументы вьюсу методом пост?
Views самый популярный модуль Drupal, написан и вылизан он далеко не новичками-нубами, а ребятами которые знают друпал очень хорошо и которые тоже думают о производительности не в последнюю очередь. И их авторитет для меня выше чем твой, потому что они - делают, а ты - говоришь:
* Я тебя попросил привести примеры хороших решений сниппетов, представленных на этом сайте - ты проигнорировал.
* Оценки производительности views и самописного кода от тебя тоже нет (хотя сам требуешь привести тебе примеры).
Dan, ты прикалываешься что ли? Вот щас брошу все на пол и ломанусь по сайте этому примеры тебе выискивать, когда суть претензий вообще иная, не смеши.:)
Ладно, хочешь сказать, что не понял меня, комрад? Ок, попробую еще раз и понятней. В форме ответов-вопросов нормально? Буду считать, что ты кивнул.:)
И так:
В: Что делает модуль Views?
О: (без мата и кратко) Обрабатывает и выводит некие сниппеты, составленные с учетом АПИ Друпала посредством своего собственного АПИ.
В: Можно ли выполнять и выводить результаты таких же сниппетов, но без использования Views и его АПИ?
О: КОНЕШНА
В: Views это один из самых легких модулей для Друпала? Его использование никак не скажется на производительности сайта?
О: Не надо думать про производительность сайта и не надо жадничать - любой уважающий себя сайт с самого начала должен хостится минимум на ВПС, шаред - для лохов и спаммеров.
Ну и тд. Уже подзаебывает, если честно, доказывать очевидное не глупому, вроде, человеку. То, что модуль популярен не говорит, в свете нашей с тобой милой беседы, практически ни о чем. Скорее наоборот: если бы ты не спал на лекциях по гуманитарным дисциплинам, то наверняка бы знал, что большинство редко когда бывает правым(как,тебе Дима Менделеев например, в качестве кандидата в авторитеты?).
читал вас, читал и так никто ничего и не написал толкового, одни споры - что лучше...
можете хотя бы ссылки толковые дать, ато по тем что тут давали толком тоже ничего нет, кроме названия хуков...
Мы вообще-то флудим тут. Модераторов нет, поэтому можно оттянуться. Хуки вашу проблему должны решить - реализуйте хук и посмотрите что в него приходит, сразу станет понятно что с этим делать.
Собственно, если через жопу применять, то сниппет еще более бесполезен, чем Views.
Что касается производительности - интереснее было бы посмотреть на цифры, а не на субъективные мнения, намеки и аналогии (которые, как известно, ложны). Еще неплохо бы в них учесть скорость разработки сложных представлений на Views и изобретения аналогичных велосипедов через API. Особенно с учетом аргументов, отношений, прав доступа, а также необходимости поддержки представлений - клонирования, модификации и т.п. А то так можно договориться до того, что Друпал в принципе говно, так как гораздо быстрее будет работать написанный на ассемблере веб-сервер, в который будет жестко интегрирована вся необходимая функциональность
Ну и как правильно замечено, заменить уже сделанную вьюху сниппетом - очень легко (в смысле копирования запроса).
Собственно, если через жопу применять, то сниппет еще более бесполезен, чем Views.
Что касается производительности - интереснее было бы посмотреть на цифры, а не на субъективные мнения, намеки и аналогии (которые, как известно, ложны). Еще неплохо бы в них учесть скорость разработки сложных представлений на Views и изобретения аналогичных велосипедов через API. Особенно с учетом аргументов, отношений, прав доступа, а также необходимости поддержки представлений - клонирования, модификации и т.п. А то так можно договориться до того, что Друпал в принципе говно, так как гораздо быстрее будет работать написанный на ассемблере веб-сервер, в который будет жестко интегрирована вся необходимая функциональность
Ну и как правильно замечено, заменить уже сделанную вьюху сниппетом - очень легко (в смысле копирования запроса).
Ну а что мешает лично поэкспериментировать? Ждать, когда кто-то начнет доказывать очевидное, не самая разумная идея.
Заменить то может и легко, тока врят ли кто будет это делать, мне таких случаев не известно, по крайней мере. Ибо мировоззрения уже другие.
А Друпал и есть говно полное в том виде, в котором представляют его «популяризаторы» простых и быстрых решений.
Признаюсь честно, если надо будет делать действительно нечто сложное, скорее всего сделаю это Виевсом, но исключительно по причине своей лени, а не потому, что это самый лучший вариант. Но масса то использует его в большинстве своем для простейших выборок.
Ну а что мешает лично поэкспериментировать? Ждать, когда кто-то начнет доказывать очевидное, не самая разумная идея.
Да уж, действительно, ждать пока кто-то начнет подкреплять свои слова аргументами - не самая разумная идея Гораздо разумнее предложить другим доказывать ваши слова, да.
Вы же рассказываете про скорость сниппетов и медленность вьюса, но ничего кроме умозрительных предположений не приводите. Так неинтересно. Я как бы в курсе, что код быстрее надстройки над кодом, нативное быстрее виртуального, а асм в руках мастера быстрее всего на свете. Но это же не повод призывать всех собирать на коленке неделю то, что можно сделать за час ради выигрыша, например, в 10%. Оттого практические подтверждения и интереснее теоретической болтовни.
И тут еще: http://www.google.com/search?hl=ru&q=site%3Awww.drupal.ru+views+%D0%BF%D...
Ты сам то смотришь свои ссылки?
Первый топик: "Производительность: Снипет vs Views. А как сделать снипетом, то что делает вьюс"
Кусок сниппета:
<?php
while ($data = db_fetch_object($result)) {
$node = node_load($data->nid);
$output .= node_view($node, TRUE);
}
?>
Ты тоже так пишешь производительные сниппеты?
Ещё раз: хватит трепаться, докажи тормознутьсть, а не приводи в доказательство крики других людей про медленный views.
С каким кэшированием и что такое «производительные сниппеты»? Ден, ты реально сьезжаешь на просеку. Галимый сниппет и в Виевсах сотворить не сложно, там никакой защиты от дурака так же не стоит, на сколько мне известно. Про кэш мы выше вроде выяснили, вспомни.
Возьми два одинаковых сниппета, один из которых будет выполняться посредством Виевса, а другой «нативно», без оного. Не важно насколько этот гиппотетический сниппет будет грамотно составлен, сейчас о другом речь. Какой из двух этих вариантов будет производительней? Что бы ответить на этот вопрос мне лично цифры и тесты лабораторные не нужны. Если тебе без этого никак, то помоги себе сам. Поможешь себе - покажешь другим, вдруг и свою точку зрения конкретной инфой подтвердить удасться. И будешь реально коронованный авторитет на родноязычном сайте, а не как те абстрактные фраера с загнивающего капиталистического орга.:)
Да уж, действительно, ждать пока кто-то начнет подкреплять свои слова аргументами - не самая разумная идея Гораздо разумнее предложить другим доказывать ваши слова, да.
Вы же рассказываете про скорость сниппетов и медленность вьюса, но ничего кроме умозрительных предположений не приводите. Так неинтересно. Я как бы в курсе, что код быстрее надстройки над кодом, нативное быстрее виртуального, а асм в руках мастера быстрее всего на свете. Но это же не повод призывать всех собирать на коленке неделю то, что можно сделать за час ради выигрыша, например, в 10%. Оттого практические подтверждения и интереснее теоретической болтовни.
graker, мы тут с Деном всего лишь беседуем, никаких призывов к массовым беспорядкам или какой либо другой подобной хрени в моих лозунгах нет, как нет и самих лозунгов, собственно. Наивные иллюзии о перестройки мира оставлены далеко позади вместе с девственностью. Амбиций прослыть мегазнатоком Друпала не испытываю так же.
То, что вами названо «теоретическая болтовня» для меня - практическая реальность. Я не отстаиваю того, чего не попробовал. Так что, дружище graker, все, что у нас действительно есть - это мы сами. И вашим путем, соответственно, пройти сможете лишь только вы сами.
Пример того, что я называю теоретической болтовней: хорошо составленные представления Views работают медленнее хорошо написанных сниппетов. Это заявление бесполезно, поскольку из него нельзя понять, насколько медленнее, и, следовательно, нельзя сделать вывода о том, когда что лучше применять. Впрочем, от этого заявления есть другая польза: оно хорошо подходит, чтобы начать светскую беседу
Пример описания "практической реальности": я составил вот такие сниппеты, их аналоги - вот такие представления. Сниппеты заруливают представления по скорости на x%. Из этого практического результата ищущий сможет извлечь пользу и понять:
1) Стоит ли писать, отлаживать и поддерживать сниппеты ради прироста производительности %x в аналогичных задачах.
2) Стоит ли пересмотреть и переделать другие вьюхи в уже существующих проектах, или полученная выгода не стоит усилий.
3) (внимание) Как можно улучшить модуль Views (лично для себя или вообще), чтобы он стал быстрее, по возможности сохранив удобство работы.
Это просто мой взгляд на беседы про Вьюс, извините, если зря вмешался в разговор
Да уж, действительно, ждать пока кто-то начнет подкреплять свои слова аргументами - не самая разумная идея Гораздо разумнее предложить другим доказывать ваши слова, да.
Аргументов выше было предостаточно, кстати. Основной - здравый смысл, которы вы же сами и обозначили словами об очевидных преимуществах нативных решений.
Аргументов выше было предостаточно, кстати. Основной - здравый смысл, которы вы же сами и обозначили словами об очевидных преимуществах нативных решений.
Так здравый же смысл не упирается в одну только скорость Здравый смысл подсказывает человеку, что GUI-приложение лучше писать с помощью объектно-ориентированных GUI-библиотек, а не на ассемблере. Здравый смысл подсказывает, что можно использовать CMS вместо того, чтобы реализовывать стандартные велосипеды заново. Здравый смысл подсказывает, как и что выбирать в зависимости от обстоятельств.
Я по профессии пишу на асме, каждый день почти, и поэтому знаю, что такое "быстро". Но тем не менее, отдал бы полцарства за инструмент, аналогичный Views по универсальности. Потому что быстро != эффективно.
Аргументов выше было предостаточно, кстати. Основной - здравый смысл, которы вы же сами и обозначили словами об очевидных преимуществах нативных решений.
В программировании здравый смысл не подкреплённый ничем - демагогия. Все любят кричать "Да ваш код - отстой! Так писать нельзя!", но очень мало кто способен аргументировать.
Я не первый год на d.ru обитаю и прекрасно вижу уровень здешних сниппетов. Это позволяет мне говорить:, что "Люди не знают АПИ..." А раз не знают, значит и не напишут хороший код.
Я с самого начала тебя просил показать хороший сниппет. Ну покажи! Не надо ссылок на целую кучу, дай две-три ссылки.
От тебя в качестве доказательства твоих слов пока две ссылки на гугл, по которым можно найти неправильные и медленные сниппеты (сам ты по этим ссылкам и не ходил, видимо). Покажи мне сниппеты, которые ты считаешь достойными.
Я что много прошу?
От беседы с хорошим человеком грех отказываться. Я недостаточно умен, что бы заочно считать незнакомого человека глупей себя, и вместе с тем, мне хватает мозгов осознать сей факт. Только защиты диссертаций от меня прошу не ждать. Субботнего шоу с уродами тоже.
Я не первый год на d.ru обитаю и прекрасно вижу уровень здешних сниппетов. Это позволяет мне говорить:, что "Люди не знают АПИ..." А раз не знают, значит и не напишут хороший код.
Я с самого начала тебя просил показать хороший сниппет. Ну покажи! Не надо ссылок на целую кучу, дай две-три ссылки.
От тебя в качестве доказательства твоих слов пока две ссылки на гугл, по которым можно найти неправильные и медленные сниппеты (сам ты поэтим ссылкам и не ходил видимо). Покажи мне сниппеты, которые ты считаешь достойными.
Я что много прошу?
Ну не напишут и бог с ними, Ден. Что ты в самом деле. Они свою карму отмалывают, ты - свою. И ты себе, как человеку с АПИ, безусловно, хорошо знакомому, можешь позволить исполнять нечто более продуктивно, не закрываясь от реальности авторитетами и стереотипами.
Так здравый же смысл не упирается в одну только скорость Здравый смысл подсказывает человеку, что GUI-приложение лучше писать с помощью объектно-ориентированных GUI-библиотек, а не на ассемблере. Здравый смысл подсказывает, что можно использовать CMS вместо того, чтобы реализовывать стандартные велосипеды заново. Здравый смысл подсказывает, как и что выбирать в зависимости от обстоятельств.
Я по профессии пишу на асме, каждый день почти, и поэтому знаю, что такое "быстро". Но тем не менее, отдал бы полцарства за инструмент, аналогичный Views по универсальности. Потому что быстро != эффективно.
Да согласен, не упирается. Но скорость это еще и не синоним производительности так же. У вас есть опыт использования модуля Виевс на среднестатистическом российском шаред-хостинге? Думаю, что есть. Так о чем разговор?
Ну е-моё, ну что за холивар на ровном месте?
Задницу можно сделать и на вьюсе и в виде сниппета. Вот пример:
В одном проекте был запрос:
SELECT COUNT(*)
FROM (SELECT node.nid AS nid FROM node node WHERE (node.status <>0)
AND (node.vid IN ( SELECT tn.vid FROM term_node tn WHERE tn.tid = 1))) count_alias
это из вьюхи.
Я переписал его в сниппете:
SELECT COUNT(*) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE
tn.tid = 1 AND n.status = 1
Уважаемые знатоки, внимание вопрос, что работало быстрее?
Кешировать НЕЛЬЗЯ
От тебя в качестве доказательства твоих слов пока две ссылки на гугл, по которым можно найти неправильные и медленные сниппеты (сам ты по этим ссылкам и не ходил, видимо). Покажи мне сниппеты, которые ты считаешь достойными.
Подожди, Ден, ты чет опять не на том зациклишься и меня в блудняк мысленный ввергаешь.
Опять по новой. При чем сдесь «правильные» или «не правильные»? Ты с помощью виевс создаешь сниппет и вид тех данных, что он тебе выдаст. Так если ты возьмешь этот же, сформированный Виевсом код и просто переделаешь, его убрав зависимость от АПИ виевса. Что бы его можно было использовать потом «напряму», путем вставки в блок или код страницы, не суть. Что будет в результате более производительным? Ну ты чего, не выспался что ли? Или действительно не понятно обьясняю?
ПС Если ты меня опять попросишь показать тебе что нить «хороше», я окурком выжгу дырку на мониторе своего ноута в месте, где находиться твой аватар Давай, Ден, выключай Тупака Шакура, ну его нах, галимый музон.
Опять по новой. При чем сдесь «правильные» или «не правильные»? Ты с помощью виевс создаешь сниппет и вид тех данных, что он тебе выдаст. Так если ты возьмешь этот же, сформированный Виевсом код и просто переделаешь, его убрав зависимость от АПИ виевса. Что бы его можно было использовать потом «напряму», путем вставки в блок или код страницы, не суть. Что будет в результате более производительным?
Кстати, пользуясь случаем хочу сказать: новый уникальный способ ответа на глупые вопросы через $-ссылки - просто находка! :)
В принципе, они бесплатные и тайм-аут я поставил минимальный, так обычно обрамляю тегом для кода, чтобы тиц не уходил.
НО!
Можно поставить таймаут в 300 секунд (сейчас 60), включить рекламу для взрослых (ещё +десяток попапов) и можно отключить бесплатный вариант, оставив только СМС, минимальная цена 30р
НО! Можно поставить таймаут в 300 секунд (сейчас 60), включить рекламу для взрослых (ещё +десяток попапов) и можно отключить бесплатный вариант, оставив только СМС, минимальная цена 30р
От тебя в качестве доказательства твоих слов пока две ссылки на гугл, по которым можно найти неправильные и медленные сниппеты (сам ты по этим ссылкам и не ходил, видимо). Покажи мне сниппеты, которые ты считаешь достойными.
Я что много прошу?
Выше ответил. Преимущественно обхожусь теми самыми или их модификациями.
Уважаемые знатоки, внимание вопрос, что работало быстрее? Кешировать НЕЛЬЗЯ
Вот пример доказательства. Пришёл - привёл пример.
"Dalay" wrote:
О чем и речь, собственно.
Да чего ты за других-то прячешься? Виктор своё мнение имеет и его аргументирует. Так же я знаю, что он напишет адекватный сниппет. От тебя же пока только слова. Как были так и есть.
"Dalay" wrote:
При чем сдесь «правильные» или «не правильные»? Ты с помощью виевс создаешь сниппет и вид тех данных, что он тебе выдаст. Что бы его можно было использовать потом «напряму», путем вставки в блок или код страницы, не суть. Что будет в результате более производительным? Ну ты чего, не выспался что ли? Или действительно не понятно обьясняю?
Неверно. То что показывают тебе views - это не вся работа которую он делает. Именно поэтому я и прошу показать тебя примеры снипеттов. Не просто так же. По твоему вся работа views - это тупо селекты в кучу свалить? Да, его архитектура неидеально, всё таки он универсальный инструмент. Но составление запроса - это только половина работы, остальную работу пропускают. Не пишут на drupal.ru лучше чем views и если ты не видишь в чём косяки, то ты не сможешь написать лучше чем views. А если не сможешь, то почему советуешь?
Неверно. То что показывают тебе views - это не вся работа которую он делает. Именно поэтому я и прошу показать тебя примеры снипеттов. Не просто так же. По твоему вся работа views - это тупо селекты в кучу свалить? Да, его архитектура неидеально, всё таки он универсальный инструмент. Но составление запроса - это только половина работы, остальную работу пропускают. Не пишут на drupal.ru лучше чем views и если ты не видишь в чём косяки, то ты не сможешь написать лучше чем views. А если не сможешь, то почему советуешь?
Ну так и рассказал бы чего Виевс еще такого прикольного делает. Мне бы так и не помешали новые знания.
Да вроде никто и не говорил, что все к запросам сводиться. Ай, ну нафиг, Ден, заколебало по кругу тебе одно и то же вещать.
ПС. Ты кстать, в защиту своих теорий тож весьма на доводы поскромничал. Если такие есть, то огласи доступно, и мое мнение, возможно измениться. Я такой же ученик, как и все мы, выводы свои держу, пока не появилось других новых.
потому что разное кол-во передаваемых аргументов, от 0 до 5 к примеру может быть, и там получается нужно создать фильтр, к примеру поле выбрал и тип "содержит все слова" при этом надо сразу написать к примеру типа (а б ц д) - тогда можно будет использовать 4 аргумента, НО, если их будет меньше, к примеру 2 то в запрос так и уйдут последние ц и д и в итоге я ничего не выведу, или надо ручками в хуке тогда их обнулять... вобщем как то через опу как мне кажется...
Посмотрел твои сниппеты. Это простейшие сниппеты в один селект. Ради _такого_ уж точно ставить views не надо. Но сила views (и косяки сниппетов выползают на сложных запросах).
У тебя на http://www.drupalka.ru/node/79:
- нет настройки кол-ва вывода. Юзеру надо лезсть в код, что бы поправить - надо делать настройку блока.
- $types = node_get_types('names'); надо делать вне цикла - незачем вызывать функцию несколько раз.
Посмотрел твои сниппеты. Это простейшие сниппеты в один селект. Ради _такого_ уж точно ставить views не надо. Но сила views (и косяки сниппетов выползают на сложных запросах).
У тебя на http://www.drupalka.ru/node/79:
- нет настройки кол-ва вывода. Юзеру надо лезсть в код, что бы поправить - надо делать настройку блока.
- $types = node_get_types('names'); надо делать вне цикла - незачем вызывать функцию несколько раз.
Ну так екарный бабай, ведь Виевс то большинство ставит именно из-за таких простых вещей, чего я и втираю тебе последние два дня.
Замечания учту, спасибо. Там много чего не идеального. Ну и скорее, как некие заготовки позиционируются.
Пожалуйста повторю:
- изучить views проще чем АПИ друпала.
- написать полноценный сниппет-замену views могут мало кто из присутствующих на этом сайте.
Из этих двух утверждения я делаю вывод, что новичкам надо советовать сначала изучать views и другие модули, а уже потом - лесть в код.
Это не аргументы, а наставления и твое лично мнение. Изучать АПИ Виевс прежде Друпала, извини - бред.
«Полноценный сниппет-замену views» - согласен, лично я не осилю. Но посмотри на друпал-сайты, много ты там действительно сложных воплощенных решений видишь. Подавляющее большинство ресурсов этого не требуют? И советовать их создателям сходу ставить Виевс и делать простейшие выборки с его помощью - ересь, достойная костра святой инквизиции.
ПС Касаемо же шареда - про Виевс тут вообще можно не думать. По крайней мере при настоящем положении русских дел.
Это не аргументы, а наставления и твое лично мнение. Изучать АПИ Виевс прежде Друпала, извини - бред.
Опа, где я писал про API views и просто друпал? Я писал: views и АПИ друпала, перефразируя - сначала изучить "кнопочки и галочки" views, а потом - лесть в кишки друпала.
Аргументов я привёл достаточно. Самый главный - низкий уровень знания АПИ друпала. Очень низкий. Много ты видел снипетов c pager_query? ...с db_rewrite_sql? ... учитывающих ревизии? ...фильтрующих вывод? ...форматирующих поля ССК? Во views это в коробке. У горе писателей сниппетов это появляется только когда придут Ромка, RxB или ещё кто и ткнёт носом.
Про настройки сниппетов я вообще молчу - никто не прикручивает настройки к блокам. Да и вообще мало кто делает модуль и вставляет код в него! Вот ты на своём сайте привёл снипеты, куда их юзеру вставлять? Думаешь он будет создавать модуль, делать блок и навешивать на него block_cache_alter? Ага, щас! Он не знает что это можно (нужно) сделать, он видит, что если что-то поменять в page.tpl.php, то это появляется на сайте. Значит надо вставлять туда!
Нельзя людей агитировать за сниппеты, если люди не умеют (не знают) как с ними обращаться.
Опа, где я писал про API views и просто друпал? Я писал: views и АПИ друпала, перефразируя - сначала изучить "кнопочки и галочки" views, а потом - лесть в кишки друпала.
Аргументов я привёл достаточно. Самый главный - низкий уровень знания АПИ друпала. Очень низкий. Много ты видел снипетов c pager_query? ...с db_rewrite_sql? ... учитывающих ревизии? ...фильтрующих вывод? ...форматирующих поля ССК? Во views это в коробке. У горе писателей сниппетов это появляется только когда придут Ромка, RxB или ещё кто и ткнёт носом.
Про настройки сниппетов я вообще молчу - никто не прикручивает настройки к блокам. Да и вообще мало кто делает модуль и вставляет код в него! Вот ты на своём сайте привёл снипеты, куда их юзеру вставлять? Думаешь он будет создавать модуль, делать блок и навешивать на него block_cache_alter? Ага, щас! Он не знает что это можно (нужно) сделать, он видит, что если что-то поменять в page.tpl.php, то это появляется на сайте. Значит надо вставлять туда!
Собственно, круг восьмой...
Ну его нахер уже, Ден, надоела эта тема круглая.
Давай уже поставим точку признанием того факта, что люди вольны сами решать с чего им начинать и чем заканчивать. Хотя, в последнем случае за них уже все решено.:)
"Dan" wrote:
Нельзя людей агитировать за сниппеты, если люди не умеют (не знают) как с ними обращаться.
Ты че меня с плакатиком на демонстрации заснял? Фотки покажешь?
Могу привести отрывок из кода добавления кастомной сортировки во внешний фильтр.
<?php
/**
* Implementation of hook_form_FORM_ID_form_alter()
*/
function МОДУЛЬ_form_views_exposed_form_alter(&$form, &$form_state) {
if($form['#id'] == 'views-exposed-form-competitors-page-1'){
Спасибо за пример!! будет пища для моска, хотя напрягает уже второй день тупить, ничего толком сделать не могу. И я так понял что это тоже как и я делал - сначала добавил фильтр, а потом вот также подменяю ему аргументы... фигня вот только с их разным кол-вом... никак не могу придумать как сделать универсально.......
Да и я так понял Вы как раз там подменяете дефолтную форму, которая начинает отображатся в экспозед фильтре при анлоке фильтра для смертного... полезно, как раз когда так пробовал - сразу же задумался о том чтобы убрать тип запроса, (содержит, не содержит и тд) чтобы одно свое было, а пользователь мог изменять только содержимое... да и то мне надо сделать там не текстовое поле, а уже готовую выборку, либо селект либо перечень чекбоксов.... вобщем, изучаю друпал...
массивы дело хорошее, но прикол в том что мне нужно создать фильтр, уже с нужным кол-вом аргументов ((, да и как передать вьюсу массив? кстати вот я кажется уже спрашивал тут - как бы передать аргументы вьюсу методом пост ?,...
Комментарии
Хм, мне тоже интересно.
Где можно посмотреть полностью код, который выполняется при генерации views
Предлагаете нам угадать, что вы собираетесь изменять, рассказывать не будете?
А PHP-код, выполняющийся при генерации views, можно посмотреть в модуле views
Там кнопЫчка есть «экспорт», попробуйте нажать.
Захожу в созданный views, жму "изменить", затем жму "предпросмотр"
Все выдает правильно. А в конце страницы выводит автоматически созданный sql-запрос,
на основании которого построена страница.
Скажите, плиз, можно ли этот запрос немного вручную подкорректировать?
Что значит в ручную, если вы его с помощью виевса создаете? Сделайте самостоятельный сниппет на основе того запроса, какого угодно вида, и все.
Dalay -> Что значит в ручную, если вы его с помощью виевса создаете?
Хочу добавить несколько условий отбора в WHERE.
Dalay -> Сделайте самостоятельный сниппет на основе того запроса, какого угодно вида, и все.
Предварительно так и сделал. Но хотелось бы сделать более системно.
Мне кажется что такая возможность должна быть. Уж очень это напрашивается.
Только куда копать не знаю...
Так бы и сказали сразу, что надо кастомные фильтры добавить. Такая возможность есть, она называется Views API.
Ну не знаю насколько справедливо называть сделанное виевсом «системно». Вот что я имел ввиду: если не знаете, как самостоятельно составить нужный запрос, то посмотрите, как его создает виевс и на его основе сниппетом выводите нужное в блок или куда вам надо. Разве так не проще?
http://drupalcontrib.org/api/function/hook_views_query_alter/6
и другие:
http://drupalcontrib.org/api/drupal/contributions--views--docs--docs.php/6
Приемлемое решение - это возмможность корректировки результирующего запроса
при корректировке самого views.
Как я понимаю это, возможно уже реализовано с помощью какого нибудь модуля,
расширяющего возможности views. Может кто знает?
Знает что? Как сделать свой модуль для views описано в документации. Если надо скорректировать конкретный запрос - хук.
Я помниться переделывал внешние (exposed) фильтры (надо было добавить сортировку, которую во views нельзя сделать) и мне было проще альтернуть запрос, чем писать модуль.
Я уже когда-то тыкал эту кнопочку, и у меня (как впрочем и сейчас) сложилось впечатление, что это не тот код, который выполняется views во время генерации самой страницы.
Этот код настраивает нужным образом сам view, фактически просто передаёт все параметры, которые мы настроили. Ошибаюсь?
Кстати, столкнулся с этим сам. Но лезть в программирование из-за этого не захотелось)
Можно, конечно, использовать Q-Views.
Но это ешо один полноценный модуль.
А мне нужно "всего-лишь" подправить запрос Views...
Что вы в Views то так вцепились? Сделайте вывод нужной информации сниппетом.
Дадада. Люди не знают что такое cache_get/set, а ты предлагаешь делать сниппетами. Потом будут думать - "Откуда 1500 запросов на главной? Ах да! У меня же в template.php десять сниппеттов, неужели они?!"
Делайте на views в режиме полей, со включенным кэшированием. Как "вырастите" в знаниях - своим модулем.
Че за бред и при чем тут template.php? "1500 запросов на главной" появляются как раз после следования советам делать все-че-не -попадя Виевсами. Да нафиг он, Друпал, вообще нужен, если использование его собственного апи подразумевает использование апи другого стороннего.
Это не бред, это суровая реальность. Люди не знают АПИ! Знающие сами решат, что им лучше - views или собственный код. Остальные берут сниппеты откуда не попадя и не зная как они работают, пихают во все доступные места, пока не заработает.
Хочешь сделаю смешно? Попросили меня посмотреть сайт, который "притормаживал". Беглый осмотр выявил:
- блок на views выводящий что-то там с терминами, но от него отказались, т.к не смогли добиться нужного отображения (от незнания модуля).
- блок в кастом-модуле выводящий то же самое, не дописан до конца.
- сниппет в template.php
самое прикольное, что из-за того что все эти три блока вставлялись ручками, они работали все, но первые два были вставлены неправильно, поэтому запросы выполнялись, но ничего не выводили. Маразм? Да. Редкость? Нет.
Именно поэтому я всем советую пользоваться views - тыкая мышкой сложно _так_ напортачить. Плюс можно применить стандартные ф-ции оптимизации, которые описаны и разжёваны многократно. Хоть то же кэширование во views.
В заключенение вопрос на засыпку: сколько ты видел на д.ру снипеттов с кэшированием?
Вот ты упрямый перец. Или я всего не догоняю, что вполне возможно.
Давай так: если ты мне сейчас скажешь, что результат выполнения кода, помещенного в блок(при включенном кешировании блоков) не хрена не кэшируется, и код выполняется каждый раз по новой, то я тогда поверю тебе на слово. Более того - скажу искреннее спасибо за новую для меня информацию. То же применительно и к коду в template.php(при включенном же кэше), в принципе. Заметь, это не под...ебка, я действительно допускаю, что такое может быть.
Режим кэширования: Нормальный.
Кэш блоков: Включен.
1. Добавляем новый блок, контент: <?php print( date('H:i:s') ); ?> Помещаем блок в регион. Жмём до посинения F5 - на каждое обновление время будет обновляться.
2. Теперь идём в views, создаём список заголовок нод, ставим кэширование, например 1 час - смотрим, стираем пару нод, смотрим.
Вывод: кэширование views работает всегда, кэширование блоков - только для анонимов. Я надеюсь не открыл для тебя америку? Или таки открыл?
Кэширование views работает, когда выбран и задействован режим кэширования блока и уж точно не по дефолту. Но это ладно, фиг с ним, другое забавно. Ты предлагаешь решать Виевсом проблему кэширования для анонимов? Для того есть более специфические решения. Не согласен? Дома хлеб пилой двуручной нарезаешь?
Если уж совсем лениво открывать базу и ставить нужный режим кэширования у нужного блока, есть Block Cache Alter, например. Но не Виевс же для этого мостить.
Я тебе показываю, что кэш views работает для залогиненных, а ты делаешь вывод, что я предлагаю использовать его для анонимов? Где логика?
Для анонимов в друпале всё проще. Нагрузка начинает жрать ресурсы, когда много залогиненных. Вот для них кэшировать кучу выборок просто необходимо. На кой ляд грузить список последних новостей при каждом просмотре, когда эти новости добавляются несколько раз в неделю?
Например можно поставить перманентный кэш и сбрасывать его по тригеру обновления материала.
Это тебе просто. А большинство пользователей вообще смутно представляют себе работу блоков, не говоря уже о нюансах режима их кэширования.
Ты даёшь советы как специалист специалисту, а надо ориентировать советы на новичков - таких на сайте большинство. Иначе все начинают кричать, что views много жрёт и делают сниппеты, на которые без слёз не взглянешь.
Ты в курсе, что куча народу не только не знает АПИ друпала, но и в PHP плавают? А ко мне много таких обращается в аську.
ОписАлся, сорри, для залогиненных естесно.
Все когда-то начинают сначала. Или поручают решить свою надобность тому, кто начал раньше, если деньги есть. То, что тебе с помощью Виевс гораздо проще и быстрей кому-то предоставить им желаемое, не отменяет того, что есть на самом деле.
А что есть на самом деле? Что собственный код эффективнее? Вернулись с чего начали - не умеет большинство писать свой код и говорить им что их код будет эффективнее views - вводить в заблуждение. Не будет. Пусть учатся, но не думают, что сделать снипетт - это как два пальца.
Я делал тестовое задание для кандидатов в работу на простые задание, в условиях было знание АПИ друпала выше среднего. Из 10-ти проходили его 1-2. И это люди, которые считают, что хорошо знают АПИ.
Забавно, ты сетуешь, что люди не знают Друпала, и при этом отсылаешь их изучать Вивс. Противоречий не видишь?
Что есть на самом деле? Тотальное облондинивание и развод. Создание ложных стереотипов и подмена понятий. Ну прям про "демократию" у меня получилось.
Печально, Ден, когда профессионал становиться ремесленником, и перестает видеть все остальное, что находиться за пределами сферы его меркантильных интересов.
views рулит!,Dan + в карму
Точно рулит, правильно сказал. Рулить самому геморней.
да геморней, проще 1 галочку поставить чем 50 сниппетов править..
Херасе глочки у вас.
Пример, пожалуйста. Того, о чем говоришь.
есть сайт, 5 видов по 10 отображений в них, заказчик говорит, неплохо было бы добавить к ним поле,
не вопрос раз и готово.
твой вариант: есть 50 функций (самый фиговый вариант) которые делают запросы и тд. надо исправить все sql запросы, функции вывода и тд. а потом еще и проверить не напортачил ли где.
но ты программист клевый у тебя свой мини
viewsвелосипед наверно, с целым забором из if`ов на все случаи жизни.Какие еще 50 функций? Че за гон? Достаточно добавить новое в запрос и поправить вывод. Что, собственно, делает и виевс, тока за "5 рублей", я же предлагаю снизить расходы до "1 копейки". Хоть и больше телодвижений совершать придеться, но в конечном итоге окупит себя неизмеримо больше. Ты предлагаешь "по-быстрому перепихнуться" и разойтись, а я за любовь. Извини за пафос
Нет, не вижу. Изучить views не в пример проще большинству людей нежели изучить АПИ друпал.
Я экономлю деньги заказчика и занимаюсь оптимизацией реально узких мест сайта, а такие места далеко не всегда запросы views. Если же узкое место - views - нет проблем, перейти на свой код можно очень быстро, даже на продакшене.
Кстати, ты можешь сказать на сколько views неэффективнее собственного кода? С примерами в цифрах?
Правда? Сам понимаешь, что говоришь? Хотя да, изучать мир через телевизор - это вполне в духе времени.
Чего ты ему экономишь с помощью Виевс, кроме времени общения с тобой, как исполнителем? 95% твоих клиентов хер когда потом соскочат с Виевса. Следующий «мастер» порекомендует «докупить» железных мощностей, а тот, что будет после - перейти на самописный вариант «узкозаточенный под конкретный сайт».:)
Виевс - это не проблема сам по себе, это гавно, как стиль использования движка. Логичное продолжение такого стиля - решение вопроса фотогалереи, банальнейшая вещь в любой другой условно популярной CMS, с помощью установки около десятка дополнительных модулей от разных маинтайнеров. Тут здравый смысл просто не участвует, потому, как не сопоставим с подобной хренью.
Прочитай предыдущий параграф.
Views самый популярный модуль Drupal, написан и вылизан он далеко не новичками-нубами, а ребятами которые знают друпал очень хорошо и которые тоже думают о производительности не в последнюю очередь. И их авторитет для меня выше чем твой, потому что они - делают, а ты - говоришь:
* Я тебя попросил привести примеры хороших решений сниппетов, представленных на этом сайте - ты проигнорировал.
* Оценки производительности views и самописного кода от тебя тоже нет (хотя сам требуешь привести тебе примеры).
читал вас, читал и так никто ничего и не написал толкового, одни споры - что лучше...
можете хотя бы ссылки толковые дать, ато по тем что тут давали толком тоже ничего нет, кроме названия хуков...
мне нужно сделать сортировку или выборку, нашел одно решение:
в настройках вьюса добавить фильтр и потом в своем модуле использовать хук дабы подменить запрос, но проблема в том что там несколько аргументов сразу может передаваться, и их число точно не известно, а кол-во фильтров устанавливается вручную... И еще - можно ли как то передавать аргументы вьюсу методом пост?
Dan, ты прикалываешься что ли? Вот щас брошу все на пол и ломанусь по сайте этому примеры тебе выискивать, когда суть претензий вообще иная, не смеши.:)
Ладно, хочешь сказать, что не понял меня, комрад? Ок, попробую еще раз и понятней. В форме ответов-вопросов нормально? Буду считать, что ты кивнул.:)
И так:
В: Что делает модуль Views?
О: (без мата и кратко) Обрабатывает и выводит некие сниппеты, составленные с учетом АПИ Друпала посредством своего собственного АПИ.
В: Можно ли выполнять и выводить результаты таких же сниппетов, но без использования Views и его АПИ?
О: КОНЕШНА
В: Views это один из самых легких модулей для Друпала? Его использование никак не скажется на производительности сайта?
О: Не надо думать про производительность сайта и не надо жадничать - любой уважающий себя сайт с самого начала должен хостится минимум на ВПС, шаред - для лохов и спаммеров.
Ну и тд. Уже подзаебывает, если честно, доказывать очевидное не глупому, вроде, человеку. То, что модуль популярен не говорит, в свете нашей с тобой милой беседы, практически ни о чем. Скорее наоборот: если бы ты не спал на лекциях по гуманитарным дисциплинам, то наверняка бы знал, что большинство редко когда бывает правым(как,тебе Дима Менделеев например, в качестве кандидата в авторитеты?).
То что модуль популярен говорит о том, что его тестирует очень много людей и вылизывают его не в пример больше чем другие модули. По всем параметрам.
Не вижу ни одного доказательства. Только фразы "views - говно", большинство - быдло и тд. Это не доказательства, это просто трёп.
Мы вообще-то флудим тут. Модераторов нет, поэтому можно оттянуться. Хуки вашу проблему должны решить - реализуйте хук и посмотрите что в него приходит, сразу станет понятно что с этим делать.
Помимо этих, я и другие слова писал, прочитай их. И не передергивай (опять), про быдло у меня не было.
На, Ден, ищи тут доказательства: http://www.google.com/search?q=site%3Awww.drupal.ru%20%D1%81%D0%BD%D0%B8...
И тут еще: http://www.google.com/search?hl=ru&q=site%3Awww.drupal.ru+views+%D0%BF%D...
ПС. Через жопу применяем и виевс бесполезен.
Может лучше тогда о тетках?
Собственно, если через жопу применять, то сниппет еще более бесполезен, чем Views.
Что касается производительности - интереснее было бы посмотреть на цифры, а не на субъективные мнения, намеки и аналогии (которые, как известно, ложны). Еще неплохо бы в них учесть скорость разработки сложных представлений на Views и изобретения аналогичных велосипедов через API. Особенно с учетом аргументов, отношений, прав доступа, а также необходимости поддержки представлений - клонирования, модификации и т.п. А то так можно договориться до того, что Друпал в принципе говно, так как гораздо быстрее будет работать написанный на ассемблере веб-сервер, в который будет жестко интегрирована вся необходимая функциональность
Ну и как правильно замечено, заменить уже сделанную вьюху сниппетом - очень легко (в смысле копирования запроса).
Ну а что мешает лично поэкспериментировать? Ждать, когда кто-то начнет доказывать очевидное, не самая разумная идея.
Заменить то может и легко, тока врят ли кто будет это делать, мне таких случаев не известно, по крайней мере. Ибо мировоззрения уже другие.
А Друпал и есть говно полное в том виде, в котором представляют его «популяризаторы» простых и быстрых решений.
Признаюсь честно, если надо будет делать действительно нечто сложное, скорее всего сделаю это Виевсом, но исключительно по причине своей лени, а не потому, что это самый лучший вариант. Но масса то использует его в большинстве своем для простейших выборок.
Да уж, действительно, ждать пока кто-то начнет подкреплять свои слова аргументами - не самая разумная идея Гораздо разумнее предложить другим доказывать ваши слова, да.
Вы же рассказываете про скорость сниппетов и медленность вьюса, но ничего кроме умозрительных предположений не приводите. Так неинтересно. Я как бы в курсе, что код быстрее надстройки над кодом, нативное быстрее виртуального, а асм в руках мастера быстрее всего на свете. Но это же не повод призывать всех собирать на коленке неделю то, что можно сделать за час ради выигрыша, например, в 10%. Оттого практические подтверждения и интереснее теоретической болтовни.
С каким кэшированием и что такое «производительные сниппеты»? Ден, ты реально сьезжаешь на просеку. Галимый сниппет и в Виевсах сотворить не сложно, там никакой защиты от дурака так же не стоит, на сколько мне известно. Про кэш мы выше вроде выяснили, вспомни.
Возьми два одинаковых сниппета, один из которых будет выполняться посредством Виевса, а другой «нативно», без оного. Не важно насколько этот гиппотетический сниппет будет грамотно составлен, сейчас о другом речь. Какой из двух этих вариантов будет производительней? Что бы ответить на этот вопрос мне лично цифры и тесты лабораторные не нужны. Если тебе без этого никак, то помоги себе сам. Поможешь себе - покажешь другим, вдруг и свою точку зрения конкретной инфой подтвердить удасться. И будешь реально коронованный авторитет на родноязычном сайте, а не как те абстрактные фраера с загнивающего капиталистического орга.:)
То есть эти крики - лишь провокация моих наймитов? Это и есть доказательства, Ден, глаза раскрой пошире.
И я ниче, в принципе, не имею против нашей милой беседы. Не один ты на клиентах навострился по ушам ездить.:)
graker, мы тут с Деном всего лишь беседуем, никаких призывов к массовым беспорядкам или какой либо другой подобной хрени в моих лозунгах нет, как нет и самих лозунгов, собственно. Наивные иллюзии о перестройки мира оставлены далеко позади вместе с девственностью. Амбиций прослыть мегазнатоком Друпала не испытываю так же.
То, что вами названо «теоретическая болтовня» для меня - практическая реальность. Я не отстаиваю того, чего не попробовал. Так что, дружище graker, все, что у нас действительно есть - это мы сами. И вашим путем, соответственно, пройти сможете лишь только вы сами.
Пример того, что я называю теоретической болтовней: хорошо составленные представления Views работают медленнее хорошо написанных сниппетов. Это заявление бесполезно, поскольку из него нельзя понять, насколько медленнее, и, следовательно, нельзя сделать вывода о том, когда что лучше применять. Впрочем, от этого заявления есть другая польза: оно хорошо подходит, чтобы начать светскую беседу
Пример описания "практической реальности": я составил вот такие сниппеты, их аналоги - вот такие представления. Сниппеты заруливают представления по скорости на x%. Из этого практического результата ищущий сможет извлечь пользу и понять:
1) Стоит ли писать, отлаживать и поддерживать сниппеты ради прироста производительности %x в аналогичных задачах.
2) Стоит ли пересмотреть и переделать другие вьюхи в уже существующих проектах, или полученная выгода не стоит усилий.
3) (внимание) Как можно улучшить модуль Views (лично для себя или вообще), чтобы он стал быстрее, по возможности сохранив удобство работы.
Это просто мой взгляд на беседы про Вьюс, извините, если зря вмешался в разговор
Аргументов выше было предостаточно, кстати. Основной - здравый смысл, которы вы же сами и обозначили словами об очевидных преимуществах нативных решений.
Так здравый же смысл не упирается в одну только скорость Здравый смысл подсказывает человеку, что GUI-приложение лучше писать с помощью объектно-ориентированных GUI-библиотек, а не на ассемблере. Здравый смысл подсказывает, что можно использовать CMS вместо того, чтобы реализовывать стандартные велосипеды заново. Здравый смысл подсказывает, как и что выбирать в зависимости от обстоятельств.
Я по профессии пишу на асме, каждый день почти, и поэтому знаю, что такое "быстро". Но тем не менее, отдал бы полцарства за инструмент, аналогичный Views по универсальности. Потому что быстро != эффективно.
В программировании здравый смысл не подкреплённый ничем - демагогия. Все любят кричать "Да ваш код - отстой! Так писать нельзя!", но очень мало кто способен аргументировать.
Я не первый год на d.ru обитаю и прекрасно вижу уровень здешних сниппетов. Это позволяет мне говорить:, что "Люди не знают АПИ..." А раз не знают, значит и не напишут хороший код.
Я с самого начала тебя просил показать хороший сниппет. Ну покажи! Не надо ссылок на целую кучу, дай две-три ссылки.
От тебя в качестве доказательства твоих слов пока две ссылки на гугл, по которым можно найти неправильные и медленные сниппеты (сам ты по этим ссылкам и не ходил, видимо). Покажи мне сниппеты, которые ты считаешь достойными.
Я что много прошу?
От беседы с хорошим человеком грех отказываться. Я недостаточно умен, что бы заочно считать незнакомого человека глупей себя, и вместе с тем, мне хватает мозгов осознать сей факт. Только защиты диссертаций от меня прошу не ждать. Субботнего шоу с уродами тоже.
Ну не напишут и бог с ними, Ден. Что ты в самом деле. Они свою карму отмалывают, ты - свою. И ты себе, как человеку с АПИ, безусловно, хорошо знакомому, можешь позволить исполнять нечто более продуктивно, не закрываясь от реальности авторитетами и стереотипами.
Да согласен, не упирается. Но скорость это еще и не синоним производительности так же. У вас есть опыт использования модуля Виевс на среднестатистическом российском шаред-хостинге? Думаю, что есть. Так о чем разговор?
Ну е-моё, ну что за холивар на ровном месте?
Задницу можно сделать и на вьюсе и в виде сниппета. Вот пример:
В одном проекте был запрос:
FROM (SELECT node.nid AS nid FROM node node WHERE (node.status <> 0)
AND (node.vid IN ( SELECT tn.vid FROM term_node tn WHERE tn.tid =
1 )) ) count_alias
это из вьюхи.
Я переписал его в сниппете:
tn.tid = 1 AND n.status = 1
Уважаемые знатоки, внимание вопрос, что работало быстрее?
Кешировать НЕЛЬЗЯ
Это же друпал.ру. Считаю, что тут должен быть срач "Views vs. Сниппеты", а не про украинский язык или баны мдинка!
О чем и речь, собственно. Но задница, исполненная на Виевс - это для любителей жирных жоп, типо Тинто Брасса.
Ладно, тогда
ГОВНО ваш вьюс, я не умею им пользоваться и мне влом гуглить модули, я быстрее сниппет напишу
http://www.youtube.com/watch?v=oavMtUWDBTM
Подожди, Ден, ты чет опять не на том зациклишься и меня в блудняк мысленный ввергаешь.
Опять по новой. При чем сдесь «правильные» или «не правильные»? Ты с помощью виевс создаешь сниппет и вид тех данных, что он тебе выдаст. Так если ты возьмешь этот же, сформированный Виевсом код и просто переделаешь, его убрав зависимость от АПИ виевса. Что бы его можно было использовать потом «напряму», путем вставки в блок или код страницы, не суть. Что будет в результате более производительным? Ну ты чего, не выспался что ли? Или действительно не понятно обьясняю?
ПС Если ты меня опять попросишь показать тебе что нить «хороше», я окурком выжгу дырку на мониторе своего ноута в месте, где находиться твой аватар Давай, Ден, выключай Тупака Шакура, ну его нах, галимый музон.
[громко кричит] Насколько производительным?! Насколько?!
Если есть смешные и свежие, то я за.
Блин, слова, достойные Библии.
Ну че, может уже к пошлым анекдотам перейдем?
В принципе, они бесплатные и тайм-аут я поставил минимальный, так обычно обрамляю тегом для кода, чтобы тиц не уходил.
НО!
Можно поставить таймаут в 300 секунд (сейчас 60), включить рекламу для взрослых (ещё +десяток попапов) и можно отключить бесплатный вариант, оставив только СМС, минимальная цена 30р
Да! ДА!!!
Начинай, ты последний пришел.
Для Дена:
Те сниппеты, что использую лично сам, можешь посмотреть на сайте из моего профиля.
Выше ответил. Преимущественно обхожусь теми самыми или их модификациями.
лучше бы помогли новичку в друпале...
Если материально, то я пас.
да нафиг материально )))
Виктор, это наш холивар не мешай!
Вот пример доказательства. Пришёл - привёл пример.
Да чего ты за других-то прячешься? Виктор своё мнение имеет и его аргументирует. Так же я знаю, что он напишет адекватный сниппет. От тебя же пока только слова. Как были так и есть.
Неверно. То что показывают тебе views - это не вся работа которую он делает. Именно поэтому я и прошу показать тебя примеры снипеттов. Не просто так же. По твоему вся работа views - это тупо селекты в кучу свалить? Да, его архитектура неидеально, всё таки он универсальный инструмент. Но составление запроса - это только половина работы, остальную работу пропускают. Не пишут на drupal.ru лучше чем views и если ты не видишь в чём косяки, то ты не сможешь написать лучше чем views. А если не сможешь, то почему советуешь?
мне нужно модифицровать запрос вьюс без использования фильтров, или ткните тогда как написать сниппет ) хм,... (ушол гуглить маны по сниппетам)
А почему без использования фильтров, напомните?
Ну так и рассказал бы чего Виевс еще такого прикольного делает. Мне бы так и не помешали новые знания.
Да вроде никто и не говорил, что все к запросам сводиться. Ай, ну нафиг, Ден, заколебало по кругу тебе одно и то же вещать.
ПС. Ты кстать, в защиту своих теорий тож весьма на доводы поскромничал. Если такие есть, то огласи доступно, и мое мнение, возможно измениться. Я такой же ученик, как и все мы, выводы свои держу, пока не появилось других новых.
потому что разное кол-во передаваемых аргументов, от 0 до 5 к примеру может быть, и там получается нужно создать фильтр, к примеру поле выбрал и тип "содержит все слова" при этом надо сразу написать к примеру типа (а б ц д) - тогда можно будет использовать 4 аргумента, НО, если их будет меньше, к примеру 2 то в запрос так и уйдут последние ц и д и в итоге я ничего не выведу, или надо ручками в хуке тогда их обнулять... вобщем как то через опу как мне кажется...
Посмотрел твои сниппеты. Это простейшие сниппеты в один селект. Ради _такого_ уж точно ставить views не надо. Но сила views (и косяки сниппетов выползают на сложных запросах).
У тебя на http://www.drupalka.ru/node/79:
- нет настройки кол-ва вывода. Юзеру надо лезсть в код, что бы поправить - надо делать настройку блока.
- $types = node_get_types('names'); надо делать вне цикла - незачем вызывать функцию несколько раз.
Ну так екарный бабай, ведь Виевс то большинство ставит именно из-за таких простых вещей, чего я и втираю тебе последние два дня.
Замечания учту, спасибо. Там много чего не идеального. Ну и скорее, как некие заготовки позиционируются.
Пожалуйста повторю:
- изучить views проще чем АПИ друпала.
- написать полноценный сниппет-замену views могут мало кто из присутствующих на этом сайте.
Из этих двух утверждения я делаю вывод, что новичкам надо советовать сначала изучать views и другие модули, а уже потом - лесть в код.
а учебника нету случаем, с картЫнкамЫ ? ))
Он, к сожалению, тоже в поиске находится
Это не аргументы, а наставления и твое лично мнение. Изучать АПИ Виевс прежде Друпала, извини - бред.
«Полноценный сниппет-замену views» - согласен, лично я не осилю. Но посмотри на друпал-сайты, много ты там действительно сложных воплощенных решений видишь. Подавляющее большинство ресурсов этого не требуют? И советовать их создателям сходу ставить Виевс и делать простейшие выборки с его помощью - ересь, достойная костра святой инквизиции.
ПС Касаемо же шареда - про Виевс тут вообще можно не думать. По крайней мере при настоящем положении русских дел.
Опа, где я писал про API views и просто друпал? Я писал: views и АПИ друпала, перефразируя - сначала изучить "кнопочки и галочки" views, а потом - лесть в кишки друпала.
Аргументов я привёл достаточно. Самый главный - низкий уровень знания АПИ друпала. Очень низкий. Много ты видел снипетов c pager_query? ...с db_rewrite_sql? ... учитывающих ревизии? ...фильтрующих вывод? ...форматирующих поля ССК? Во views это в коробке. У горе писателей сниппетов это появляется только когда придут Ромка, RxB или ещё кто и ткнёт носом.
Про настройки сниппетов я вообще молчу - никто не прикручивает настройки к блокам. Да и вообще мало кто делает модуль и вставляет код в него! Вот ты на своём сайте привёл снипеты, куда их юзеру вставлять? Думаешь он будет создавать модуль, делать блок и навешивать на него block_cache_alter? Ага, щас! Он не знает что это можно (нужно) сделать, он видит, что если что-то поменять в page.tpl.php, то это появляется на сайте. Значит надо вставлять туда!
Нельзя людей агитировать за сниппеты, если люди не умеют (не знают) как с ними обращаться.
Собственно, круг восьмой...
Ну его нахер уже, Ден, надоела эта тема круглая.
Давай уже поставим точку признанием того факта, что люди вольны сами решать с чего им начинать и чем заканчивать. Хотя, в последнем случае за них уже все решено.:)
Ты че меня с плакатиком на демонстрации заснял? Фотки покажешь?
Могу привести отрывок из кода добавления кастомной сортировки во внешний фильтр.
<?php
/**
* Implementation of hook_form_FORM_ID_form_alter()
*/
function МОДУЛЬ_form_views_exposed_form_alter(&$form, &$form_state) {
if($form['#id'] == 'views-exposed-form-competitors-page-1'){
$form['custom_sorting'] = array(
'#type' => 'select',
'#options' => array('All'=> t('Sorting'), 'rating'=>t('On rating'), 'date'=>t('On date')),
'#weight' => -10,
);
}
/**
* Implementation of hook_views_query_alter()
*/
function МОДУЛЬ_views_query_alter(&$view, &$query) {
if($view->name == 'competitors'){
if(isset($_GET['custom_sorting'])){
switch($_GET['custom_sorting']){
case 'date':
$query->orderby[]= 'node_created';
$query->fields['node_created'] =
array('field'=>'created', 'table' => 'node', 'alias' => 'node_created' );
break;
case 'rating':
$query->orderby[]= 'votingapi_cache_node_points_vote_sum_value';
$query->fields['votingapi_cache_node_points_vote_sum_value'] =
array('field' => 'value', 'table' => 'votingapi_cache_node_points_vote_sum',
'alias' => 'votingapi_cache_node_points_vote_sum_value' );
break;
default:
}
}
}
}
?>
Спасибо за пример!! будет пища для моска, хотя напрягает уже второй день тупить, ничего толком сделать не могу. И я так понял что это тоже как и я делал - сначала добавил фильтр, а потом вот также подменяю ему аргументы... фигня вот только с их разным кол-вом... никак не могу придумать как сделать универсально.......
Да и я так понял Вы как раз там подменяете дефолтную форму, которая начинает отображатся в экспозед фильтре при анлоке фильтра для смертного... полезно, как раз когда так пробовал - сразу же задумался о том чтобы убрать тип запроса, (содержит, не содержит и тд) чтобы одно свое было, а пользователь мог изменять только содержимое... да и то мне надо сделать там не текстовое поле, а уже готовую выборку, либо селект либо перечень чекбоксов.... вобщем, изучаю друпал...
Передавай массивом с ключами
массивы дело хорошее, но прикол в том что мне нужно создать фильтр, уже с нужным кол-вом аргументов ((, да и как передать вьюсу массив? кстати вот я кажется уже спрашивал тут - как бы передать аргументы вьюсу методом пост ?,...
Попробуй без views. Своя форма - свой вывод. Dalay поможет
да, если б настолько разобраться с друпалом...будем ковыряться....
Dalay говорит что разобраться с АПИ друпала легко.
А чего еще Dalay сделает? В сутенера моего решил поиграть?
Ниче не попутал?