Перейти к публикации

Неконтролируемый враппер #dle-content


Рекомендованные сообщения

engine/modules/main.php
650: $tpl->set ( '{content}', "<div id='dle-content'>" . $tpl->result['content'] . "</div>" );

При создании своего шаблона столкнулся с проблемой дополнительно возникающего блока, который ломал изначальную вёрстку на boostrap 4.

Например: у меня есть блок .row  и дочерние элементы .col-4 которые в месте представляют собой вёрстку плитками в три колонки.

 

Я делаю так:

main.tpl
<div class="row align-items-stretch">
    {content}
</div>
shortstory.tpl
<div class="col-12 col-sm-6 col-lg-4">
    ...
</div>

Ожидаю:

<div class="row align-items-stretch">
    <div class="col-12 col-sm-6 col-lg-4">1</div>
    <div class="col-12 col-sm-6 col-lg-4">2</div>
    <div class="col-12 col-sm-6 col-lg-4">3</div>
</div>

А получаю:

<div class="row align-items-stretch">
  <div id="dle-content">
    <div class="col-12 col-sm-6 col-lg-4">1</div>
    <div class="col-12 col-sm-6 col-lg-4">2</div>
    <div class="col-12 col-sm-6 col-lg-4">3</div>
  </div>
</div>

И естественно вёрстка ломается, приходится гуглить как поменять код движка чтобы не было проблем либо костылить свои стили в обход стандартных конструкций bootstrap.

 

Возможно есть более элегантный способ обойти проблему но я о нём не знаю.

 

Какие варианты могут решить проблему:

 

1) Убрать враппер параметром:

{content wrapper="no"}

2) Добавить возможность указать классы для враппера.

{content wrapper_class="row"}

Можно ещё вынести управление враппером контента в админку, но это не так универсально как указание параметров прямо в шаблоне.

 

3) Ещё универсальнее конечно будет возможность добавлять враппер для повторяющихся списков:

{content} выводит всё подряд, а если это список, полезно иметь возможность обернуть его в ещё один блок со своими классами.

{content list_wrapper="yes" list_wrapper_class="row"}

Сейчас мне нужно явно проверять в каких я разделах чтобы понять вывожу я список или нет:

[available=main|cat|catalog]
  {info}
  <div class="row align-items-stretch">
    {content}
  </div>
[/available]

[not-available=main|cat|catalog]
  {info}
  {content}
[/not-available]

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

 

Ссылка на сообщение
Поделиться на других сайтах

@blogftnet

$tpl->set ( '{content}', "<div id='dle-content'>" . $tpl->result['content'] . "</div>" );

поменять через плагины на

$tpl->set ( '{content}', "<div id='dle-content' class='row'>" . $tpl->result['content'] . "</div>" );
Ссылка на сообщение
Поделиться на других сайтах
43 минуты назад, blogftnet сказал:

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

такой функционал уже есть, "Управление плагинами" называется (/admin.php?mod=plugins)

Ссылка на сообщение
Поделиться на других сайтах

Или свой плагин или добавить такие же стили как у row к этому #dle-content {display: flex ...

Вводить что-то в движке для этого 100% не будут, тк это и не нужно, все в шаблоне делается.

Ссылка на сообщение
Поделиться на других сайтах
16 часов назад, webair сказал:

@blogftnet


$tpl->set ( '{content}', "<div id='dle-content'>" . $tpl->result['content'] . "</div>" );

поменять через плагины на


$tpl->set ( '{content}', "<div id='dle-content' class='row'>" . $tpl->result['content'] . "</div>" );

Я и так уже делаю через правку кода:

$tpl->set ( '{content}', $tpl->result['content'] );

Любой метод означает что у dle есть сильные ограничение при создании шаблонов, даже в базовом функционале вывода списков,

и что для отображения обычного шаблона на bootstrap нужно ставить плагины, менять код или городить стили.

Но спасибо за инфу что можно сделать через плагины, не знал.

Ссылка на сообщение
Поделиться на других сайтах
33 минуты назад, blogftnet сказал:

Любой метод означает что у dle есть сильные ограничение при создании шаблонов

нет, не означает. А что, открыть файл bootstrap.css и заменить .row{ на .row, #dle-content{ так сложно? :) И даже плагины не нужны

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, alex32 сказал:

нет, не означает. А что, открыть файл bootstrap.css и заменить .row{ на .row, #dle-content{ так сложно? :) И даже плагины не нужны

сорян, но это подход плохого кодера)) при каждом обновлении bootstrap придётся менять эту строчку

ограничение есть, но возможно я преувеличиваю

в других цмс тоже полно кода который нужно патчить плагинами или прямо в коде
но разве это делает их более универсальными?

Изменено пользователем blogftnet
Ссылка на сообщение
Поделиться на других сайтах

подход плохого кодера - это лезть в php для исправления того, что можно исправить css

Ссылка на сообщение
Поделиться на других сайтах
28 минут назад, blogftnet сказал:

сорян, но это подход плохого кодера)) при каждом обновлении bootstrap придётся менять эту строчку

А добавить три строчки в свой CSS вместо правки библиотеки, религия не позволяет? Нужно для чего то лезть в код DLE? Надутая проблема из ничего, решается парой строк в CSS шаблона.

 

Вот оно поколение фреймворкеров ))) ни строчки своего кода верстки написать не могут )))  Зато все называют себя вебмастерами, системными администраторами, программистами ))) а нативного кода CSS никто не знает. Грустно (((

Ссылка на сообщение
Поделиться на других сайтах
26 минут назад, blogftnet сказал:

сорян, но это подход плохого кодера)) при каждом обновлении bootstrap придётся менять эту строчку

ограничение есть, но возможно я преувеличиваю

в других цмс тоже полно кода который нужно патчить плагинами или прямо в коде
но разве это делает их более универсальными?

Рофлан, это каждый раз обновлять bootstrap. WTF? Это сетка, зачем ее каждый раз обновлять? Если вы 90% от ее кода не используете.

Ссылка на сообщение
Поделиться на других сайтах
20 минут назад, celsoft сказал:

А добавить три строчки в свой CSS вместо правки библиотеки, религия не позволяет? Нужно для чего то лезть в код DLE? Надутая проблема из ничего, решается парой строк в CSS шаблона.

 

Вот оно поколение фреймворкеров ))) ни строчки своего кода верстки написать не могут )))  Зато все называют себя вебмастерами, системными администраторами, программистами ))) а нативного кода CSS никто не знает. Грустно (((

не знаю о каком вы поколении, я начинал из чистого хардкода и мне это надоело

21 минуту назад, Gameer сказал:

Рофлан, это каждый раз обновлять bootstrap. WTF? Это сетка, зачем ее каждый раз обновлять? Если вы 90% от ее кода не используете.

там постоянно появляются новые фишки
если проект на поддержке то их использование ещё как востребовано

42 минуты назад, alex32 сказал:

подход плохого кодера - это лезть в php для исправления того, что можно исправить css

согласен, но в данном случае мне не захотелось нарушать основу логики широко распространённой ui библиотеки из-за особенностей dle

18 часов назад, germanydletest сказал:

такой функционал уже есть, "Управление плагинами" называется (/admin.php?mod=plugins)

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

Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, blogftnet сказал:

интересует только ответ разрабов, если у них есть на это время

А разраб уже ответил 

 

32 минуты назад, celsoft сказал:

А добавить три строчки в свой CSS вместо правки библиотеки, религия не позволяет?

 

11 минут назад, blogftnet сказал:

согласен, но в данном случае мне не захотелось нарушать основу логики широко распространённой ui библиотеки из-за особенностей dle 

 

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

Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, blogftnet сказал:

не знаю о каком вы поколении, я начинал из чистого хардкода и мне это надоело

Надоело что? создавать свой дизайн? Или вы вообще не создаете никакого своего индивидуального вида страницы?  А ведь для этого точно нужно дополнительно использовать свой CSS код, куда и можно добавить одну строчку в том числе и для этого.

 

12 минут назад, blogftnet сказал:

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

Очень оптимально, выстрелить по мухам из пушки. Но это ваш выбор. Пользуйтесь им. Я же говорю, вы просто не знаете как это сделать на CSS, а говорите о том что начинали с хардкора. Спорить с этим даже бесмыссленно. Потому как если бы знали, никогда не стали бы это делать через систему плагинов. 

Ссылка на сообщение
Поделиться на других сайтах

в четвертом бутстрапе стили для  селектора row занимаю один блок

.row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}

Всё! Больше ничего нет. Но "хардкорному" верстальщику, видимо, неизвестно, что можно этот блок скопировать  в свой css и вместо селектора row подставить свой id  dle-content. Вот он, хардкор, во всей своей красе :):) Лезть в код скрипта вместо простой правки css

Изменено пользователем alex32
Ссылка на сообщение
Поделиться на других сайтах

Вопрос по теме, а может быть и нет, при верстке сайта на CSS Grid возникают сложности того, что navigation.tpl,search.tpl являются частью content, а должны быть вынесены отдельно, чтобы не ломать сетку.

 

Непонятно просто - speedbar вынесен - его можно размещать в отдельном блоке, хотя он тоже часть контента, а навигация и поиск - нет. Может кто-то подскажет дельные решения таких вопросов. По идее наверное можно как-то посчитать ширину блоков и задавать ширину 1 блока в случае поиска на 100%, а все остальные считать результатом, и ширину последнего блока для навигации. Если подскажете элегантное решение, будет круто) На grid ужасно приятно верстать сайт) Но есть вещи, которые пока не могу решить быстро.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Sh1ning сказал:

Непонятно просто - speedbar вынесен - его можно размещать в отдельном блоке, хотя он тоже часть контента, а навигация и поиск - нет. Может кто-то подскажет дельные решения таких вопросов. По идее наверное можно как-то посчитать ширину блоков и задавать ширину 1 блока в случае поиска на 100%, а все остальные считать результатом, и ширину последнего блока для навигации.

вот вроде слова знакомые, а что ты написал, вообще не понимаю...

Ссылка на сообщение
Поделиться на других сайтах
12 часов назад, Sh1ning сказал:

Вопрос по теме, а может быть и нет, при верстке сайта на CSS Grid возникают сложности того, что navigation.tpl,search.tpl являются частью content, а должны быть вынесены отдельно, чтобы не ломать сетку.

 

Непонятно просто - speedbar вынесен - его можно размещать в отдельном блоке, хотя он тоже часть контента, а навигация и поиск - нет. Может кто-то подскажет дельные решения таких вопросов. По идее наверное можно как-то посчитать ширину блоков и задавать ширину 1 блока в случае поиска на 100%, а все остальные считать результатом, и ширину последнего блока для навигации. Если подскажете элегантное решение, будет круто) На grid ужасно приятно верстать сайт) Но есть вещи, которые пока не могу решить быстро.

Делать ту же навигацию от первой фракции до конечной. Например,
.navigation {grid-column: 1 / 5;}

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, redissx сказал:

Делать ту же навигацию от первой фракции до конечной. Например,
.navigation {grid-column: 1 / 5;}

Да, действительно) очень круто) спасибо за информацию:)

 

Для растягивания грида лучше не задавать конкретный конец, потому что тогда нужны media запросы для разных разрешений, лучше вот так - 

grid-column: 1 / -1;

и выглядит очень классно)

Изменено пользователем Sh1ning
Ссылка на сообщение
Поделиться на других сайтах
В 08.10.2019 в 10:33, blogftnet сказал:

согласен, но в данном случае мне не захотелось нарушать основу логики широко распространённой ui библиотеки из-за особенностей dle

что мешает создать "соседний" стиль и подключить его после бутстрапа и прописывать все правки в нём?

 

 

Ссылка на сообщение
Поделиться на других сайтах
В 08.10.2019 в 11:47, alex32 сказал:

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

Спасибо за унижение, я не говорил что я не знаю как это сделать с помощью css, и примеры css кода мне не нужны, я просил нормального решения чтобы не покрывать шаблон костылями.

Если такого решения нет нет это не повод говорить что чьи то знания ниже плинтуса.

 

Sh1ning правильно подметил суть проблемы.

 

В 08.10.2019 в 11:47, celsoft сказал:

Я же говорю, вы просто не знаете как это сделать на CSS, а говорите о том что начинали с хардкора. Спорить с этим даже бесмыссленно.

Не стоит судить о том что я знаю а чего не знаю и делать выводы по двум сообщениям.

Зато по вашим двум сообщениям можно сделать вывод что на посту админа форума вы явно засиделись.

Никакой конкретики только насмешки, никакого профессионализма.

Отличный повод оставить достойные отзывы о поддержке DLE.

Ссылка на сообщение
Поделиться на других сайтах
20 минут назад, blogftnet сказал:

я просил нормального решения чтобы не покрывать шаблон костылями.

Решение с вмешательством в код скрипта это и есть костыль. Нет,  костылищщщеее

 

21 минуту назад, blogftnet сказал:

Не стоит судить о том что я знаю а чего не знаю и делать выводы по двум сообщениям.

 

Да мы уже поняли, кто что знает

Ссылка на сообщение
Поделиться на других сайтах
30 минут назад, blogftnet сказал:

Не стоит судить о том что я знаю а чего не знаю и делать выводы по двум сообщениям.

Зато по вашим двум сообщениям можно сделать вывод что на посту админа форума вы явно засиделись.

Никакой конкретики только насмешки, никакого профессионализма.

Отличный повод оставить достойные отзывы о поддержке DLE.

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

 

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

 

Делайте правильные выводы. Лучше их делать на мелочах и на ранних этапах. 

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, blogftnet сказал:

Sh1ning правильно подметил суть проблемы.

Ничего я не подмечал) Задал вопрос, получил ответ - реализовал - заняло 2 строки в css, в движок не лезу=) Сейчас технологии верстки намного упростились и переводить сайт на них - лично для меня одно удовольствие. И почему-то даже не люблю фреймворки, а привык все делать сам. Так лучше понимаешь логику и что куда добавлять из блоков. Но каждому свое. Вам тут уже несколько вариантов ребята накидали, и все рабочие и простые. 

Ссылка на сообщение
Поделиться на других сайтах
  • 1 год спустя...

Вообще, актуально как никогда. Если честно, уже сил нет контролировать этот ваш dle-content, особенно, когда у тебя больше 5и типов контента. 

Не понимаю, в чем проблема дать юзеру контроль? Методов было предложено уже тонна, самый наверно простой из них такой:

[content]
...
{content}
...
[/content]

Где в результате будет такая разметка:

  <div id="dle-content">
    ...
    content
    ...
  </div>

А ещё ведь может быть и разные типы сеток под разный тип контента, может ты и кастомами ещё выводишь и т.д. у меня лично получается уже 80 строк этого вашего dle-content в css разметке, т.е. это просто дубли, на которые ещё и лайтскор ругается, что соответственно по выдаче не хорошо сказывается... И таких ньюансов из-за неконтролируемого dle-content может быть тонна. 

 

И нет, я не использую фраемвоки, вообще, вплоть до сетки бутстрапа - я её не использую. Но я всегда сначала верстаю в HTML, а потом уже портирую под DLE. И каждый раз я сталкиваюсь с проблемами dle-content.

Изменено пользователем zettend
Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, zettend сказал:

Не понимаю, в чем проблема дать юзеру контроль? Методов было предложено уже тонна, самый наверно простой из них такой:


[content]
...
{content}
...
[/content]

Где в результате будет такая разметка:

Масло масленное, если нет тега {content} в шаблоне, то и нет тега <div id="dle-content">. Потому как он не используется, при выводе других тегов. Например при использовании тегов custom и прочее.

5 минут назад, zettend сказал:

А ещё ведь может быть и разные типы сеток под разный тип контента

Этот тег только у одного типа контента, и какие бы сетки не были, он никак не влияет ни на что. Из вашего большого описания, совершенно не понятно в чем проблема и какие у вас дубли 80 строк в CSS тоже непонятно. Можно сделать и 1000 строк в CSS, это не значит что они были сделаны оптимально и самым правильным способом.

Этот тег стоит не просто так чтобы было, он важен и нужен для выполнения функций DLE, в большинстве своем именно для выполнения AJAX функций.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...