Вывод кнопки подписки в типе контента

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 2.X
#1 4 марта 2025 в 21:44

Не даёт мне жизни такая штука:

Изображение

Это если заходить из профиля пользователя

хтмл: Контейнер subscribe почему-то генерируется раньше заголовка

2.17.1 чистая установка

Добавлено спустя 8 минут

В файле \templates\modern\controllers\users\profile_content.tpl.php

Вот код, который выводит заголовок (проверено)

  1. <?php if(empty($hide_h1)){ ob_start(); ?>
  2. <a class="avatar icms-user-avatar d-none d-lg-flex mr-3 <?php if (!empty($profile['is_online'])){ ?>peer_online<?php } else { ?>peer_no_online<?php } ?>" href="<?php echo href_to_profile($profile); ?>">
  3. <?php if($profile['avatar']){ ?>
  4. <?php echo html_avatar_image($profile['avatar'], $fields['avatar']['options']['size_teaser'], $profile['nickname']); ?>
  5. <?php } else { ?>
  6. <?php echo html_avatar_image_empty($profile['nickname'], 'avatar__inlist'); ?>
  7. <?php } ?>
  8. </a>
  9. <h1 class="d-flex align-items-center h2">
  10. <span>
  11. <a href="<?php echo href_to_profile($profile); ?>" class="text-muted">
  12. <?php html($profile['nickname']); ?>
  13. </a>
  14. <span class="d-none d-lg-inline-block"> &middot; <?php echo $list_header_h1; ?></span>
  15. </span>
  16. <?php if (!empty($ctype['rss_link'])) { ?>
  17. <sup>
  18. <a class="inline_rss_icon d-none d-lg-inline-block" href="<?php echo $ctype['rss_link']; ?>" title="RSS">
  19. <?php html_svg_icon('solid', 'rss'); ?>
  20. </a>
  21. </sup>
  22. <?php } ?>
  23. </h1>
  24. <?php $this->addToBlock('before_body', ob_get_clean().($toolbar_html ? html_each($toolbar_html) : '')); } ?>

html

  1. <div class="icms-body-toolbox">
  2. <div class="subscribe_wrap position-relative ml-lg-2 mb-2 mb-lg-0 d-flex flex-shrink-0">
  3. <a href="/subscriptions/subscribe" class="btn subscriber btn-responsive subscribe btn-primary" data-hash="6a93750e3eda550db86a7d1ccbd7107" data-link0="/subscriptions/subscribe" data-link1="/subscriptions/unsubscribe" data-text0="Подписаться" data-text1="Отписаться" data-issubscribe="0" data-target="{&quot;controller&quot;:&quot;content&quot;,&quot;subject&quot;:&quot;posts&quot;,&quot;params&quot;:{&quot;filters&quot;:[{&quot;field&quot;:&quot;user_id&quot;,&quot;condition&quot;:&quot;eq&quot;,&quot;value&quot;:&quot;1&quot;}]}}" title="" data-show_btn_title="1">
  4. <b class="icon-bell">
  5. <svg class="icms-svg-icon w-16" fill="currentColor"><use href="/templates/modern/images/icons/solid.svg#bell"></use></svg> </b>
  6. <b class="icon-bell-slash">
  7. <svg class="icms-svg-icon w-16" fill="currentColor"><use href="/templates/modern/images/icons/solid.svg#bell-slash"></use></svg> </b>
  8. <span class="icms-subscriptions__label">Подписаться</span>
  9. </a>
  10. <span title="Подписчики" class="count-subscribers btn btn-responsive btn-outline-secondary position-relative ml-2" data-list_link="/subscriptions/list_subscribers/6a93750ef3eda550db86a7d1ccbd7107">
  11. 0 </span>
  12. </div>
  13. <a class="avatar icms-user-avatar d-none d-lg-flex mr-3 peer_no_online" href="/users/1">
  14. <span class="icms-profile-avatar__default avatar__inlist" style="background-color: rgba(184, 161, 142, .9); color: black;"><svg fill="currentColor" viewBox="0 0 28 21"><text x="50%" y="50%" dominant-baseline="central" text-anchor="middle">Д</text></svg></span> </a>
  15. <h1 class="d-flex align-items-center h2">
  16. <span>
  17. <a href="/users/1" class="text-muted">
  18. Денис Юрьевич </a>
  19. <span class="d-none d-lg-inline-block"> &middot; Блог</span>
  20. </span>
  21. </h1>
  22. </div>
Добавлено спустя 2 минуты

думаю это связано c ob_start(); но не знаю как поправить

* на гитхате не нашёл

#2 4 марта 2025 в 21:52

В таких темах надо сразу ссылку прикреплять на страницу с проблемой. Там может в стилях дело, надо смотреть в консоли .

#3 4 марта 2025 в 23:03
В таких темах надо сразу ссылку прикреплять на страницу с проблемой. Там может в стилях дело, надо смотреть в консоли .
Happy

Не, дело в html

На демо <div class=«subscribe_wrap  идет после <h1>..</h1>

Сегодня в 23:51
#4 5 марта 2025 в 05:33

Не, дело в html

denmois

Думаю что именно в css. Как чиста эта сборка? Вообще ничего не меняли или все таки добавили что-то(вообще что нибудь)?

Бывает люди говорят чистая сборка а у самих виджеты добавлены, в админке ковырялись с годик. Добавили в css маленький кусочек и забыли. Всякое бывает. Поэтому Happy и попросил ссылку чтоб посмотреть что конфликтует...

Может вы где order:-1 прописали и забыли. Мы то не знаем. 

Вот посмотрите как на демо, очень легко поменять ордер приписав один класс не трогая хтмл.

Изображение

Не нравятся мне эти выражения «Чистая сборка». А на самом деле там девственница у которой пол холодильника побывало. Уж извиняйте… Я просто никому не верю.

Бывали случаи когда человек уверял что «Чистая сборка». А сам прописал стиль с твиттера в подвале сайта. И так получилось что имена классов совпали. Но уверял долго и упорно. Его аргумент был в том что хтмл то он не трогал совсем, значит чистая установка.

#5 7 марта 2025 в 15:35

Добрый день!

Установил систему заново

Поменял только положение виджетов в шапке и добавил некоторые CSS класы.

После каждого изменения проверял проявление проблемы

Но проблема проявилась только после сохранения настроек типа контента (для новостей поменял чек на «создание в группах»)

drive44.ru/users/1/content/news

Добавлено спустя 8 минут

Примечательно, что для тех типов контента, настройки которых еще не менял и не сохранял — все нормально

drive44.ru/users/1/content/posts

#6 7 марта 2025 в 16:44

Пропишите:

  1. .icms-body-toolbox .subscribe_wrap {
  2. order:1
  3. }
#7 7 марта 2025 в 17:11
Пропишите: .icms-body-toolbox .subscribe_wrap { order:1 }
pupsik

Это все замечательно, но хотелось бы разобраться с ошибкой а не лепить костыли

И если это баг значит нужно создать тикет на гитхабе. Кто умеет, прошу помочь в этом вопросе 

#8 7 марта 2025 в 17:40

Например я, не буду создавать тикет «Проблемы» найденой не мной. Ибо как я уже писал, я никому не верю в их действиях. 

Поменял только положение виджетов в шапке и добавил некоторые CSS класы.

Не внушает никакого деверия эти слова.

Если это баг, то тот куму надо уже об этом знает. Глядя в эту тему.

А так, поступайте как вам удобней. Ставте не ставте, это вам решать. Вам дали ольтернативу. 

#9 9 марта 2025 в 09:11

 denmois, ошибку получил

Но проблема проявилась только после сохранения настроек типа контента (для новостей поменял чек на «создание в группах»)

denmois

и именно так :)

Изображение

Очень интересно. Поразбираюсь дальше чуть позже

Добавлено спустя 3 минуты

С какими-то опциями не связано. На чистой 2.17.1 достаточно просто открыть любой тк и сохранить его настройки.

Изображение

Добавлено спустя 28 минут

В общем, проблема не с ob_start(); надо зайти в настройки типа контента и почистить поле 

Изображение

тогда все будет работать корректно.

Указывать тут позицию нужно только тогда, когда вы ее создали в своем шаблоне где-то в специальном месте. Т.е. если она у вас НЕ «before_body», то указываем. А если «before_body» то не указываем.

#10 9 марта 2025 в 16:25

 denmois, ошибку получил

Zau4man

 Zau4man, спасибо вам огромное! Радует, что есть действительно вникающие люди!
А то обращаюсь к сообществу, говорю что есть проблема, а из меня идиота делают, что я каких то стилей понавешал!

#11 9 марта 2025 в 17:15

и добавил некоторые CSS класы

denmois

Ну да, установка ведь Чистая была. Вы уж извините нас, пожалуйста, Месье.

что я каких то стилей понавешал

— denmois

#12 9 марта 2025 в 17:33
и добавил некоторые CSS класы denmois Ну да, установка ведь Чистая была. Вы уж извините нас, пожалуйста, Месье. что я каких то стилей понавешал — denmois
pupsik

Надеюсь в Вашу голову когда-нибудь придёт осознание того, что CSS на может изменить порядок вывода html, а может только изменить визуальное отображение

#13 9 марта 2025 в 17:43

Я исхожу из того, что ваша «Чистая» установка, вранье. А значит «доверия нет» что вы там еще поменяли.

#14 9 марта 2025 в 20:32

Как временное решение можете удалить эту строку github.com/instantsoft/icms2/blob/e893976935179fd9613c5aa3cb7cc92b8397956d/system/controllers/subscriptions/hooks/ctype_basic_form.php#L34

чтобы не подставлялось «before_body» как значение по умолчанию. В след. версии, скорее всего, будет убрано точно также.

#15 9 марта 2025 в 23:36

Спасибо, вопрос решен

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.