CMS DataLife Engine - Система управления сайтами

Sign in to follow this  
blogftnet

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

Recommended Posts

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 ограничения.

 

Share this post


Link to post
Share on other sites

@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>" );

Share this post


Link to post
Share on other sites
43 минуты назад, blogftnet сказал:

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
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 нужно ставить плагины, менять код или городить стили.

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

Share this post


Link to post
Share on other sites
33 минуты назад, blogftnet сказал:

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

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

Share this post


Link to post
Share on other sites
1 час назад, alex32 сказал:

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

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

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

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

Edited by blogftnet

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
28 минут назад, blogftnet сказал:

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

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

 

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

Share this post


Link to post
Share on other sites
26 минут назад, blogftnet сказал:

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

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

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

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

Share this post


Link to post
Share on other sites
20 минут назад, celsoft сказал:

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

 

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

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

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

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

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites
10 минут назад, blogftnet сказал:

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

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

 

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

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

 

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

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

 

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

Share this post


Link to post
Share on other sites
10 минут назад, blogftnet сказал:

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

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

 

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

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

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

Share this post


Link to post
Share on other sites

в четвертом бутстрапе стили для  селектора 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

Edited by alex32

Share this post


Link to post
Share on other sites

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

 

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

  • Like 1

Share this post


Link to post
Share on other sites
2 часа назад, Sh1ning сказал:

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

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

Share this post


Link to post
Share on other sites
12 часов назад, Sh1ning сказал:

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

 

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

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

Share this post


Link to post
Share on other sites
1 час назад, redissx сказал:

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

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

 

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

grid-column: 1 / -1;

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

Edited by Sh1ning
  • Upvote 1

Share this post


Link to post
Share on other sites
В 08.10.2019 в 10:33, blogftnet сказал:

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

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

 

 

Share this post


Link to post
Share on other sites
В 08.10.2019 в 11:47, alex32 сказал:

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

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

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

 

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

 

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

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

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

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

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

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

Share this post


Link to post
Share on other sites
20 минут назад, blogftnet сказал:

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

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

 

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

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

 

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

Share this post


Link to post
Share on other sites
30 минут назад, blogftnet сказал:

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

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

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

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

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

 

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

 

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

  • Like 1
  • Upvote 1

Share this post


Link to post
Share on other sites
10 часов назад, blogftnet сказал:

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this