Перейти к содержанию

kgb

Актив
  • Постов

    695
  • Зарегистрирован

  • Посещение

  • Победитель дней

    31

Весь контент kgb

  1. Я так понимаю у тебя мильона-полтора меню? Иначе чего там целый день делаь?
  2. А при чем здессь логика IPS& Надо пробежаться по стеку вызовов и понять, как формируется запрос и где проблема.
  3. Так не лучше, так должно быть. Теперь дальше. А название скина местные екстрасенсы должны угадывать? Или ты думаешь, здесь народ все шаблоны наизусть знает? (млядь, поколение комиксов, включайте мозги, учитесь задавать вопросы) По скрину видно что настроек темы нет. Значит или тема кривая, или тема не соответствует версии движка, или просто глюканула в момент загрузки. Можно попробовать создать копию дефолтной темы, а потом эту загрузить поверх дефолтной
  4. Конечно. Раз пользуешься рассадником заразы радикалом. Потрудись скрины сюда залить
  5. По логике вещей, твой запрос SELECT * FROM `ips_core_message_posts` AS `core_message_posts` WHERE msg_id < IS NULL... звучит так - ВЫБРАТЬ из таблицы `ips_core_message_posts` и назвать выбранное как `core_message_posts` ГДЕ поле msg_id меньше чем ЕСТЬ НОЛЬ . Сооброжаешь? Надо выяснять откуда там IS NULL берется.
  6. Это хорошо, Но на всякий случай, часто помогает вот это {{echo '<pre>';}} {{print_r($record);}} {{echo '</pre>';exit;}} Что бы понять, что же там у нас в переменной $record (или $row или что там еще будет )
  7. kgb

    Minimized Quote

    Интерессный плагинчик. А вот в аттаче моя, слегка измененная версия. Разница небольшая, но может комуто быть полезна. А разница в то, что доблена своя (конкрено для этого плагина) языковая строка. Т.е. вместо стандартного read more , может быть Open All/ Соот-но через управление языками можно изменить, например для русского свою строку задать, например "Открыть цитату" По умолчанию, просто "Open" Minimized Quote_1.0_ KGB.xml Minimized Quote_1.0_ KGB.xml
  8. Самое простое и легкое, не удалять код поиска из оригинального места, а скрыть его с помощю CSS для больших экранов. Перенесенный код наоборот скрывать (при необходимости) для смартов и телефонов. Это решение для стандартного шаблона, что там с нестандартными - это к авторам.
  9. Решение во вложении. Путь applications/core/extensions/core/ModCp/Unapproved.php Оригинальные строчки заккоментированы и прокоментированы // kgb original Добавленные прокомментированы // kgb fix Это на тот случай, если в след. версиях решат проблему. Будет возможность сравнить файлы Unapproved.php Unapproved.php
  10. Перенося поиск, не забывайте, что один и тот же код поиска используется как для "полной" версии, так и для "мобильного" отрображения
  11. Спасибо. Впрочем я нашел этот баг и решение на него, чуть позже отпишу
  12. Господа., проверьте кому не лень, как работает модерация (одобрение) комментариев статусов через панель модераторов Дело в том, что столкнулся с багом. Если включить статусы и включить модерацию статусов, то сами статусы одобряются через панель модерации нормально, а вот с одобрением комментариев к статусам вылезает проблема, комменты не находятся. Проверьте у себя, у вас так же или это мой личный глюк?
  13. Не помню. Ты пробегись по моим сообщениям, я ведь в выражениях не стесняюсь и для некоторых это тоже гадости, хотя я просто называю вещи своими именами)))))) Ну я тоже столкнулся с той же проблемой. Если на форумах на главной, в разделах и в темах можно показывать разные блоки, то для Pages везде показывается один, да его еще хрен удалишь)))))) (кстати, у кого проблема с удалением, простой способ - перемещаем в другоу место, например из сайдбара в хидер и тут же удаляем))). В то же время в режиме page bilder движек предусматривает создание кастомных мест для виджетов. Если открыть шаблоны page_builder то мы увидем там, как пример для трех колонок <div> <div class='ipsGrid ipsGrid_collapsePhone'> <div class='ipsGrid_span4'> {template="widgetContainer" group="pages" app="cms" params="'col1', $widgets, 'vertical'"} </div> <div class='ipsGrid_span4'> {template="widgetContainer" group="pages" app="cms" params="'col2', $widgets, 'vertical'"} </div> <div class='ipsGrid_span4'> {template="widgetContainer" group="pages" app="cms" params="'col3', $widgets, 'vertical'"} </div> </div> </div> Однако попытка создать создесть кастомный виджет контейнер в шаблонах при ручном режиме , например {template="widgetContainer" group="pages" app="cms" params="'MyCustomArea', $widgets, 'vertical'"} ни к чему не привела, не работает. Выясням. Находим класс, который за это отвечает, он здесь /applications/cms/sources/Pages/Page.php и видим. Для page_builder такой код if ( $this->type === 'builder' ) { list( $group, $name, $key ) = explode( '__', $this->template ); \IPS\Output::i()->output = \IPS\Theme::i()->getTemplate('pages')->globalWrap( $nav, \IPS\cms\Theme::i()->getTemplate($group, 'cms', 'page')->$name( $this, $this->getWidgets() ), $this ); } Где getWidgets() как раз вытаскивает как стандартные так и кастомные места для виджетов. Ну а для ручного режима код такой else { /* Populate \IPS\Output::i()->sidebar['widgets'] sidebar/header/footer widgets */ $this->getWidgets(); \IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'pages', 'cms' )->globalWrap( $nav, $this->getHtmlContent(), $this ); } дальше дело техники, возможно несколько вариатнов, сложнее, проще, лучше хуже, но самый простой, это заменить код для ручного режима вот так else { /* Populate \IPS\Output::i()->sidebar['widgets'] sidebar/header/footer widgets */ //$this->getWidgets(); //original \IPS\Output::i()->sidebar['widgets'] = $this->getWidgets();//custom widget area \IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'pages', 'cms' )->globalWrap( $nav, $this->getHtmlContent(), $this ); } И упс, в жопу программеров от IPS? мы сами с ушами))) Теперь мы шаблонах пишем, например {template="widgetContainer" group="global" app="core" params="'header_MyTemplate_Display', 'horizontal'"} или {template="widgetContainer" group="global" app="core" params="'sidebar_MyTemplate_Display', 'vertical'"} или для листинга {template="widgetContainer" group="global" app="core" params="'header_MyTemplate_Listing', 'horizontal'"} Ну и т.д. и получаем кастомное мето для виджета. Там, Прадва еще с css немного может придеться поработать, но это уже мелочи
  14. Если речь идет о блоках pages, добавляемых через менеджер виджетов, то стандатным средство это никак, я писал выше, что а движек для определения места блока использует как раз location ( точнее поле "area_area" в таблице "cms_page_widget_areas" ). Так только создавать для каждого шаблона bodyClasses {{\IPS\Output::i()->bodyClasses[] = 'cms_display';}} {{\IPS\Output::i()->bodyClasses[] = 'cms_listing';}} и т.д. и происывать прям блоках условия, правда есть недостаток, блоки кешировать нельзя. Есть другой вариант. Отказаться от менеджера виджетов, а также от глобального сайдбара и прям в шаблонах создать места для блоков, включая сайдбар и вставлять блоки через {block="KEY"} Есть правда третий вариант, который я реализовал, но он требует прямого вмешательства в исходный код. Они там одну строчку не дописали, или забыли или просто не захотели спецом
  15. Это как? Для отображения базы данных используется - для полной записи - группа шаблонов "display", для категорий - "listing", для главной страницы базы - в зависимости от настроек - или "category_articles" ( с вариантами category_2_column_first_featured, category_2_column_image_feature и т.д. ) или "category_index" . Разные шаблоны для одной базы , например разные шаблоны display сделать нельзя. Я не понимаю. Самое простое, добавить поле чекбокс и включать его при добавлении видео-новости. А потом проверять в шаблоне и в зависимости от значения выводить то, что надо
  16. Во первых кто тебя заставляет все лепить в глобал шаблоне? Во-вторых, ты спросил, я показал механизмы, которы, кстати, сам движек использует. Например bodyClasses используется для вывода меню в зависимости от шаблона, а location для определания места виджетов, добавляемых через менеджер виджетов. Ну и в третьих чем твое от WP [not-aviable=main] {content} [/not-aviable] отличается от {{if $location['app'] == 'cms'}} Блок {{endif}} ??????? Или опиши конкретно, что где хочешь, а то не понятно о каком блоке речь, толи ты его ручками в шаблоне прописываешь, толи это кастом блок от pages толи еще что
  17. А в чем проблема? <div class="1 ipsHide"></div> Не будет показываться нигде а в css прописываем body[data-pageapp="cms"] .1 { display: block; } Вариант 2 - еще лучше/ Через переменную $location , которая в GlobalTemplate есть. {{if $location['app'] == 'cms'}} <div class="1"></div> {{endif}} Здесь сложнее, т.к. и $location['app'] и $location['module'] будут одинаковыми. Но есть выход, называется bodyClasses . В шаблоне страницы record.phtml добавляем bodyClasses, например вот так {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}} И тогда у нас body уже имеет доп. класс fullNews / Соот-но или через css body.fullNews или чекркз проверку существования класса {{if !in_array('fullNews', \IPS\Output::i()->bodyClasses )}} блаблабла {{endif}} Там три буквы пропущено, фильтр плохих слов не прошли
  18. Пара кастом блоков за 7 тысяч? Может мне начать лепить, десяток в день можно сделать, миллионером стану
  19. Ну так обращаться не по номеру а через customFieldDisplayByKey {{$myVar = explode ( ',' , $row->customFieldDisplayByKey('components') );}} Или ключи и значения одинаковыми сделать
  20. Немного не поняятно что к чемую Что выводит щас вот такой код? {{echo '<pre>';}} {{print_r({$row->customFieldDisplayByKey('components', 'raw'));}} {{echo '</pre>';exit;}} А еще лучше по id поля {{echo '<pre>';}} {{print_r($record->field_NN);}} {{echo '</pre>';exit;}}
  21. Ну так правильно, в display-шаблонах $record, в listing-шаблонах $rows котороая потом форичится в $row {{foreach $rows as $row}}
×
×
  • Создать...