Разные заголовки одного материала в разных представлениях

Главные вкладки

Аватар пользователя Alex_Black Alex_Black 17 марта 2015 в 1:42

Всем привет столкнулся с такой проблемой и не знаю решения уже в доль и поперек исколесил представления Views но не могу найти решения.

Есть материал в нем генерируется автоматически заголовок из заполненных полей благодаря модулю Automatic Entity Labels.

И есть представления в двух вариантах (В двух внешних видах строчный и плиткой) где выводиться этот же материал.
Так вот можно ли как то во Views сделать так или модуль есть который может генерируется автоматически заголовок из заполненных.
То есть одна и тоже NODE но с разным заголовком в разных представлениях.

Пример сам заголовок из полей "поле1 поле2 поле 3 поле 4"

В представлениях:
в первом представлении заголовок из полей "поле1 поле2 поле 3 поле 4"
во втором представлении заголовок из полей "поле1 поле 4"

Комментарии

Аватар пользователя t1mm1 t1mm1 17 марта 2015 в 10:58

Если тайтл можно сформировать по шаблону автоматически, то сделайте предпроцесс для обработки филда вьюсов и через имя вьюса и дисплея переопределите заголовки.
Если нет, то два поля (что хуже само по себе при наличии первого варианта).

А вообще можно написать свой токен + хендлер к вьюхе. Это будет друпал вей.

Аватар пользователя gun_dose gun_dose 17 марта 2015 в 11:08

а чем не устраивает перезапись результатов поля? Очевидный плюс тут в том, что такой вариант можно накликать мышкой за одну минуту. А в чём минус?

Аватар пользователя t1mm1 t1mm1 17 марта 2015 в 18:45

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

Представьте, потом кому-то будете деллигировать свой проект на саппорт. Такие моменты вот будут очень трудно уловимы.
Вообще, старайтесь поменьше так делать. Лучше изучите апи, напишите свой хендлер. Это есть друпал вей.
...Вообще убивает, когда потом еще пхп или хтмл обработку суют в такие поля, или что еще хуже - джава скрипт. Ну не кошерно это, не кошерно.
Удобство только в том, что мышкой клац клац. А потом когда надо поправить и не помнишь.. ууу ) Скоро было интересных моментов в такие поиски, матерных слов и выпитого кофе..
В адекватной компании за такое пальцы засовывают в дверной проем )))

Аватар пользователя bumble bumble 10 ноября 2015 в 11:50

"Alex_Black" wrote:
Не знаю как это лучше сделать

Нужно вывести все поля, которые должны присутствовать в заголовке и разместить их перед полем заголовка.
Филдсет "Перезаписать результаты", отметить "Заменить выводимое полем значением" и наполнить токенами из "Подстановочных шаблонах".

Аватар пользователя Alex_Black Alex_Black 17 марта 2015 в 15:18

"gun_dose" wrote:
а чем не устраивает перезапись результатов поля? Очевидный плюс тут в том, что такой вариант можно накликать мышкой за одну минуту. А в чём минус?

Точно как раз то что надо блин забыл не подумал. спасибо

Аватар пользователя Alex_Black Alex_Black 17 марта 2015 в 18:50

"t1mm1" wrote:
Бред. Эти функции не просто так же доступны. Плохо походу вы знаете молодой человек Drupal. И зачем изобретать велосипед когда он стоит и ждет когда на него сядут.)))) За совет спасибо но я написал что я думаю об этом.

Аватар пользователя t1mm1 t1mm1 17 марта 2015 в 19:36

Да да, я плохо знаю друпал. Письками меряться смысла не вижу.

Эх.. Велосипеды велосипеды.
Молодой человек, вы просто не работали с европейскими компаниями.
Стандарты? Нет, не слышали.

Я скажу вам по секрету, что большинство контриб решений придумано для "кликанья мышкой". Но действительно нагруженные проекты почему-то отказываются от них, и даже для калькуляции тайтлов в результате вьюсов делают свои хендлеры для полей. Значете почему? Потому что читаемость кода и стандарты позволяют дальше жить проекту и развиваться в команде и не зависимо от разработчика.
На таком велосипеде вы уедете не дальше первго угла, когда нужно будет находить гибкие решения для вывода и последующей оптимизации.
Хотя, если вам по душе пихать это во все, что доступно, то что ж.. Переубеждать не буду.

Просто попробуйте это доказать на д.орге )

Просто ознакомьтесь с стандартами.
Может для "сайта на коленках" решение и ок. Но на моей практике за такое вставляют пальцы в дверной проем.
Это как использовать контексты для акцессов к дисплеям в ctools.

Аватар пользователя Alex_Black Alex_Black 17 марта 2015 в 18:53

Не когда просто не было не каких проблем + нагрузка пофиг так как сервак позволяет его SSD и оператива на 64 гига. Я молчу про процессор думаю очевидно какой он.

Аватар пользователя t1mm1 t1mm1 17 марта 2015 в 19:48

Мощно, норм сервак.

Но суть не в этом. Просто при наличии мощностей не стоит доводить свой код и методологию программирования до уровня.. эм.. ну такое.

Скажу так, клал серваки и по серьезнее. Достаточно попробовать через батч обновить таблицу на 15-17 лямов записей, в которой первичный индекс строится по 5-6 полям. Минимум. Бывало, уходили в даун.

А вообще соглашусь с одним - решений есть масса. Просто я больше сторонник стандартов, так сложилось и работа требует.

Аватар пользователя Alex_Black Alex_Black 17 марта 2015 в 21:49

Я думаю не стоит раздувать тему до критики и остановимся на этом, я узнал то что мне надо и на этом спасибо. Все работают как знают и как умеют. И как считают нужным. Во всеком случаии я могу похвастаться тем что у меня более десятка законченых проектов на Drupal и они работают по сей день и заказчик рад. И кто эти сайты после меня обслуживает не чего плохого не говорит, а переодически даже спрашивает совета.

Аватар пользователя Alex_Black Alex_Black 17 марта 2015 в 21:50

Вот пример http://gdsshop.ru/ все на стандартных модулях настроено грамотно мною и хостинг что ни есть самый просто и обратите внимание на скорость сайта как он быстро работает.

Аватар пользователя Alex_Black Alex_Black 17 марта 2015 в 21:54

Да и дизайн индивидуальный под заказ полностью в ручную сделанная тема. И таких у меня еще много проектов. Которые я сделал сам без чей то помощи.

И заметь они завершенные и доведены до идеала. Что как раз токи не каждый этим может похвастаться. А на словах все крутые. А браться за проекты и доводить до ума не все могут или просто больше понтов чем дела.

Аватар пользователя Alex_Black Alex_Black 17 марта 2015 в 22:00

На вот тебе еще один пример https://forwardtravel.ru/search.html покажи хоть один сайт тур агенства на котором подбор тура будет работать так быстро. И в чем прикол что можно еще быстрее сделать. И все тур агенства только мечтают о таком подборщике туров и авиа билетов.

Аватар пользователя t1mm1 t1mm1 18 марта 2015 в 1:08

Я работал в теме по авиаперевозчикам. Практически вся выдаваемая информация не актуальна на момент выборки, хотя бы потому, что это статика.
То что выбор через аякс - это гуд. То, что по факту подбор туров не происходит по актуальности, а по факту идет по статике - это бед.

Могу написать почему.
п.с. сейчас работаю с проектом по отельному бизнесу.

Аватар пользователя gun_dose gun_dose 18 марта 2015 в 11:14

"t1mm1" wrote:
Минус в том, что это деллитанство, когда запихивают даже подобные обработчики в текстовые поля..
Токены - исключение, так как токены по сути глобальны в их обработке по сайту вообще.
Представьте, потом кому-то будете деллигировать свой проект на саппорт. Такие моменты вот будут очень трудно уловимы.
Вообще, старайтесь поменьше так делать. Лучше изучите апи, напишите свой хендлер. Это есть друпал вей.

Вообще-то речь как раз и идёт о вставке токенов в поле. Ситуация тривиальнейшая и её обработка - это базовый функционал Views. Что касается саппорта, вы сейчас полную чушь сказали. Когда разрабу дают задание подправить вывод вьюс, он идёт на страницу редактирования представления и редактирует настройки поля. Если же вы напишете своих хэндлеров, то разраб как минимум придёт в пятиминутное замешательство, не поняв, что вообще происходит. А потом ему нужно будет лезть в код и искать ваши велосипеды и вникать в принципы их работы, т.к. уверен на 99%, что документацию к своим проектам вы не пишете. В итоге задачка из пятиминутного доступа в админку, стоимостью символических 5-10 долларов перерастает в полуторачасовой секс за минимум 20 долларов. А по быстродействию выйдет приблизительно одно и то же, т.к. поля из базы тянутся одни и те же.

Тем не менее, я понимаю, о чём вы говорите - неоднократно разгребал наследие педерастов, создающих типы материалов, состоящие исключительно из пхп полей, или делающих в node.tpl.php свич на 10 кейсов для обработки каждого типа материала и всё это приправлено прямыми запросами в БД.

Аватар пользователя t1mm1 t1mm1 18 марта 2015 в 11:59

Я согласен лишь отчасти.
Но в проектах, где нет разницы, 10 уе/час рейт, или 30 уе - на такие моменты не обращают внимания, но борются за чистоту кода.
Для меня тоже в свое время было странным, что действие, которое займет 5 минут занимало иногда час времени.

Просто почему так.
Вы вносите изменения через ui в корректировку вывода. Это гуд, это то, что нужно заказчику.
Но проект живет еще на гите и еще в нескольких бранчах. И очередной пулл данных с гита без использования миграции или фичей не перенесет то, что вы настроили у себя в базе. И использовать фичи для сеттингов фидбека - никто не пойдет на такое.
Потому и пишут подобные изменения максимально в коде.
Токены вообще отдельная история, потому как они в бОльшей степени для одиночных проектов и призваны просто облегчить жизнь и работу человеку, который не хочет знать или не знает апи. Даже построение алиасов - лучше через код. Особенно, если вы используете свою систему доступов, попимо пермишнов и стандартного user_access. И есть еще масса примеров, когда такой подход не желателен. Да, дял проекта одного человека - да хоть снипетты в аяксом в блоки. Но на проектах, где более одного человека - это приносит большие не удобства.

П.с. документацию пишу на кастом.
Комменты практически всегда.

>А по быстродействию выйдет приблизительно одно и то же, т.к. поля из базы тянутся одни и те же.
Зависит от объемов и вида обработки данных, а так же их источника. Не всегда данные беруться из базы друпала, есть еще внешние апи, с которыми приходится работать и данные по которым не всегда удается хранить в бд статически, так как они унифицированы по внешним входящим параметрам (например, актуальность наличия номерного фонда в отеле или сети отелей, где доступ на прямую коннет к внешней бд вам никто не даст впринципе, а делать надо).

>А потом ему нужно будет лезть в код и искать ваши велосипеды и вникать в принципы их работы
Стандарты, соблдайте стандарты. Друпал этим и хорош своими предопределенными хуками (и не только). Знющий человек разберется в коде быстро. Не знающих даже базы будет долго искать. Проходили уже, еще когда шестерка была в деве.

ИМХО, все зависит от самого проекта. Я тоже бы не заморачивался особо на прокте "одного человека". Сейчас же сталкиваюсь все чаще, что лучше потратить больше времени на качество и "по правилам", чем приносить гемморой в работу всей команды. Но это уже методологии программирования и реализации бизнес моделей в разрезе чистоты кода, чем наша тема.

>Тем не менее, я понимаю, о чём вы говорите - неоднократно разгребал наследие педерастов, создающих типы материалов, состоящие исключительно из пхп полей, или делающих в node.tpl.php свич на 10 кейсов для обработки каждого типа материала и всё это приправлено прямыми запросами в БД.
Вот я о том же.
Но все начиается "о, токены" )))) Хотя штука очень удобная, согласен. В работе с ct ctools и контексте - вообще не заменима. Но там это как раз нормально. С вьюсами же стоит быть аккуратнее. Любое подобное действие - это сразу +2-3 запроса, при том не через джоны, а отдельные. На 100 записях не скажется, а на более глубоких выборках уже будет ощутимо..

Аватар пользователя gun_dose gun_dose 18 марта 2015 в 12:31

"t1mm1" wrote:
И очередной пулл данных с гита без использования миграции или фичей не перенесет то, что вы настроили у себя в базе.

Так можно же вьюс экспортировать в код) Кстати, давно интересно, насколько это влияет на быстродействие.

Аватар пользователя t1mm1 t1mm1 18 марта 2015 в 12:55

Да, экспортировать можно. Но тут лучше фьючерс использовать. Они с более удобной системой миграции в целом. При желании можно все что угодно портировать.

Но дело в том, что клиент не хочет заморачиваться с этим. Как и другие участники команды могут просто погрязнуть с вечным мерджем и их конфликтами.
Я все же за работу через гит в разных ветках, и желательно с меньшим коэфициентом использования ui для подобног. Нет, ui это хорошо, и честно говоря, по началу спасало не раз. Но на проектах не крупных.

Еще другая сторона есть. Это клиенты (или кастомер), которые хотят все из коробки и ничего не настраивать. А переносить апдейты на живой проект.. только через апдейты либо через миграцию. За мою практику - не особо любят давать доступ в админку на живых проектах.

На счет быстродействия.
Метод миграции никак не влияет. В одном случае настройки модели вьюса хранятся изначально в базе, в другом (перенос через фичи или через экспорт/импорт) - аналогично, но с фичами - есть еще и сама фича, которую можно ревертнуть (вернуться к изначальному состоянию или виду). По факту в итоге - все настройки в базе. Методов переноса много, вплоть до инициализации объекта вьюсов в коде.
Испльзование токенов хорошо сказывается на производительности на больших объемах данных. Не всегда хватает базы от друпала, часто пишется что-то свое. Отсюда и все шишки. Для простых задач - очень даже норм. Для большого объема - наклдно. В свое время на нескольких проектах отказывался и от вьюсов, и от батча, и от много чего из-за нагрузок.

Аватар пользователя t1mm1 t1mm1 18 марта 2015 в 12:57

Скажу так. Друпал тем и хорош, что есть масса способов решить ту или иную задачу под определенные цели. Я по этой причине и перешел на него в свое время. В стандартизации, кстати, есть тоже такие моменты - главное удобство читаемости и прозрачность кода. И минимум интеграций кода через ui )