Как убрать из html то что в css display: none ?

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

Аватар пользователя VasyOK VasyOK 23 февраля 2018 в 1:40

Всем привет!

В теме оформления прописано в CSS
.containner .selektor {
display: none;
}

Т.обр. некоторые элементы не показываются.
Есть ли возможность исключить эти скрытые элементы из HTML?

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

Комментарии

Аватар пользователя ivnish ivnish 23 февраля 2018 в 8:38

Ты сам ответил на свой вопрос. Либо переопределяй шаблоны, либо альтери формы, если нужный элемент в них находится

Аватар пользователя sas@drupal.org sas@drupal.org 23 февраля 2018 в 9:01

Да есть возможности, их много если на уровне темы то хуках в template.php, так же можно атттачить этот стиль через hook_ccs_alter и заменить своим нужным https://api.drupal.org/api/drupal/modules%21system%21system.api.php/func...

Аватар пользователя bumble bumble 23 февраля 2018 в 10:21

VasyOK wrote:

Есть ли возможность исключить эти скрытые элементы из HTML?

При особом желании - все есть.
Есть навыки парсинга CSS и HTML?

Аватар пользователя gun_dose gun_dose 23 февраля 2018 в 10:36

Если убрать всё, что display:none, то первым делом перестанут работать все формы. Думаю, несложно догадаться, почему.
По самому вопросу не ясна постановка: нужно убрать всё скрытое, при этом не трогая шаблоны и темизацию. Конечно же, есть вариант через JS

$('selector').detach();

Однако тут будет совершенно нулевой профит, потому что людям плевать, что там скрыто - его же не видно. А в поисковиках не работает js.

Аватар пользователя gun_dose gun_dose 23 февраля 2018 в 11:49

В заголовке. В любой друпаловской форме почти половина элементов подпадает под критерий "то что display:none"

Аватар пользователя ivnish ivnish 23 февраля 2018 в 11:55

А я понял вопрос так: у автора есть скрытый с помощью css элемент. Автора это напрягает, он хочет чтобы этого элемента вообще не было в разметке.

Аватар пользователя bumble bumble 23 февраля 2018 в 11:57

О! и я так понял.

Давай, VasyOK, разконфьюзь нас. Через-чур уж много оперативки задействовано для пятницы Wink

Аватар пользователя VasyOK VasyOK 23 февраля 2018 в 19:29

bumble wrote:

Есть навыки парсинга CSS и HTML?

При чем тут парсинг?

gun_dose wrote:

нужно убрать всё скрытое, при этом не трогая шаблоны и темизацию

Не все, а кое что.
Не трогая шаблоны типа block.tpl.php, node.tpl.php
В template.php функцию написать возможно придется. Если конечно модуль для этого не найду.

Форма это или не форма - не принципиально. Это в html.

Если это можно сделать через https://api.drupal.org/api/drupal/includes%21theme.inc/function/template... - можете пример указать.

Аватар пользователя bumble bumble 23 февраля 2018 в 19:35

VasyOK wrote:

При чем тут парсинг?

При том что нужно распарсить CSS, вытащить из него элементы с display: none;, потом распарсить выплюнутый друпалом хтмл и заменив в нем элементы из первого пункта вернуть в поток.

VasyOK wrote:

Если это можно сделать через https://api.drupal.org/api/drupal/includes%21theme.inc/function/template... - можете пример указать.

Это препроцессор html.tpl.php.

Аватар пользователя VasyOK VasyOK 23 февраля 2018 в 23:39

Блин ссылка режется. Через это можно выджратть "не нужный" HTML ?
function template_preprocess_html

Зачем? Ну я экспериментатор. Задача вывести открытые фильтры вьюхи в разных местах страницы. Я вывел один фильтр несколько раз и скрыл лишнее через CSS. Работает, только в HTML мусора много.

Аватар пользователя Semantics Semantics 24 февраля 2018 в 10:18

Я пока наблюдаю диссонанс.
Сначала распихать по разным областям страницы фильтры, а потом спрашивать как убрать их оттуда, чтобы не мешали.

Подозреваю, что автору нужно не удалять, а ограничивать, чтобы форма на разных страницах была в разных местах, но про условные операторы ещё неизвестно

Аватар пользователя gun_dose gun_dose 24 февраля 2018 в 10:22

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