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

andros0789

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

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

  • Посещение

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

    24

Активность репутации

  1. Лайк
    andros0789 отреагировална пост kgb в Как скрыть блоки на определенной странице?   
    Не в боди шаблона страницы. Давай определимся. Есть общие шаблоны,  есть шаблоны Pages. Если включить режим дизайнера, то они лежат в папке cms.  внутри папка database а в ней уже группы шаблонов для Pages/ Так? Так.  Например для отображения полной новости (статьи или чего там еще) используется по умолчанию группа "display" . Внуттри несколько шаблонов, основной record.phtml . Вот если в нем прописать {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}} то при просмотре полной новости в body будет этот класс 
    Типа так
    <body class="ipsApp ipsApp_front ipsJS_has ipsClearfix ipsApp_noTouch fullNews" data-controller="core.front.core.app" data-message="" data-pageapp="forums" data-pagelocation="front" data-pagemodule="forums" data-pagecontroller="topic" itemscope="" itemtype="http://schema.org/WebSite">  
    <section class="promo-strip span12 {{if in_array('fullNews', \IPS\Output::i()->bodyClasses )}}ipsHide{{endif}}"> <ul class="promo-strip__list row "> {block="newstop4"} </ul> </section> ИЛИ {{if !in_array('fullNews', \IPS\Output::i()->bodyClasses )}} <section class="promo-strip span12"> <ul class="promo-strip__list row "> {block="newstop4"} </ul> </section> {{endif}}  
    Хрошоая то хорошая, но устанавливать ее можно только в шаблонах Pages, наверноее еще в Pages-блоках шаблонов или добавлять плагином в нужные классы. В общих шаблонах она разумеется работать не будет, что понятно
  2. Лайк
    andros0789 отреагировална пост Respected в Как скрыть блоки на определенной странице?   
    {{if in_array('МОЙКЛАСС', \IPS\Output::i()->bodyClasses )}} Класс имеется {{else}} Класса нет {{endif}}  
  3. Лайк
    andros0789 отреагировална пост kgb в Изменение Темы на форуме   
    Так не лучше, так должно быть.
    Теперь дальше. А название скина местные екстрасенсы должны угадывать? Или ты думаешь, здесь народ все шаблоны наизусть знает? (млядь, поколение комиксов, включайте мозги, учитесь задавать вопросы)
    По скрину видно что настроек темы нет.
    Значит или  тема кривая, или тема не соответствует версии движка, или просто глюканула в момент загрузки.
    Можно попробовать создать копию дефолтной темы, а потом эту загрузить поверх дефолтной
  4. Лайк
    andros0789 отреагировална пост kgb в Как скрыть блоки на определенной странице?   
    Это хорошо, Но на всякий случай, часто помогает вот это 
    {{echo '<pre>';}} {{print_r($record);}} {{echo '</pre>';exit;}} Что бы понять, что же там у нас в переменной $record (или $row или что там еще будет )
  5. Лайк
    andros0789 отреагировална пост kgb в Как скрыть блоки на определенной странице?   
    Во первых кто тебя заставляет все лепить в глобал шаблоне? Во-вторых, ты спросил, я показал механизмы, которы, кстати, сам движек использует.  Например bodyClasses используется для вывода меню в зависимости от шаблона, а location для определания места виджетов, добавляемых через менеджер виджетов. Ну и в третьих чем твое от WP
    [not-aviable=main] {content} [/not-aviable] отличается от
    {{if $location['app'] == 'cms'}} Блок {{endif}} ???????
     
    Или опиши конкретно, что где хочешь, а то не понятно о каком блоке речь, толи ты его ручками в шаблоне прописываешь, толи это кастом блок от pages толи еще что
  6. Лайк
    andros0789 отреагировална пост kgb в Как скрыть блоки на определенной странице?   
    А чем видео новость отличается от обычной?
  7. Лайк
    andros0789 отреагировална пост kgb в Как скрыть блоки на определенной странице?   
    Это как? Для отображения базы данных используется - для полной записи - группа шаблонов "display",  для категорий -  "listing", для главной страницы базы - в зависимости от настроек - или "category_articles" ( с вариантами category_2_column_first_featured, category_2_column_image_feature и т.д. ) или "category_index" . Разные шаблоны для одной базы ,  например разные шаблоны display сделать нельзя. Я не понимаю.
     
    Самое простое, добавить поле чекбокс и включать его при добавлении видео-новости. А потом проверять в шаблоне и в зависимости от значения выводить то, что надо
  8. Лайк
    andros0789 отреагировална пост kgb в Как скрыть блоки на определенной странице?   
    Если речь идет о блоках pages, добавляемых  через менеджер виджетов, то стандатным средство это никак, я писал выше, что
    а движек для определения места блока использует как раз location ( точнее поле "area_area" в таблице "cms_page_widget_areas" ). Так  только создавать  для каждого шаблона bodyClasses
    {{\IPS\Output::i()->bodyClasses[] = 'cms_display';}} {{\IPS\Output::i()->bodyClasses[] = 'cms_listing';}} и т.д. и происывать прям блоках условия, правда есть недостаток, блоки кешировать нельзя.
     
    Есть другой вариант. Отказаться от менеджера виджетов, а также от глобального сайдбара и прям в шаблонах создать места для блоков, включая сайдбар и вставлять блоки через {block="KEY"}
     
    Есть правда третий вариант, который я реализовал, но он требует прямого вмешательства в исходный код. Они там одну строчку не дописали, или забыли или просто не захотели спецом
  9. Лайк
    andros0789 отреагировална пост kgb в Как скрыть блоки на определенной странице?   
    Не помню. Ты пробегись по моим сообщениям, я ведь в выражениях не стесняюсь и для некоторых это тоже гадости, хотя я просто называю вещи своими именами))))))
     
    Ну я тоже столкнулся с той же проблемой. Если на форумах на главной, в разделах и в темах можно показывать разные блоки, то для 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 немного может придеться поработать, но это уже мелочи
  10. Лайк
    andros0789 получил реакцию от Kinkl в IPS 4 - два сайдбара   
    Я делал по своему))
    Вместо
     {template="sidebar" if="theme.sidebar_position == 'left'" app="core" group="global" params="'left'"} вставил свой шаблон
    {template="left_sidebar" app="core" group="global" params=""}. В шаблон вставлял то что мне нужно в этом блоке, а  правый у меня через визуальный редактор редактировался.
  11. Лайк
    andros0789 получил реакцию от Respected в IPS 4 - два сайдбара   
    Я делал по своему))
    Вместо
     {template="sidebar" if="theme.sidebar_position == 'left'" app="core" group="global" params="'left'"} вставил свой шаблон
    {template="left_sidebar" app="core" group="global" params=""}. В шаблон вставлял то что мне нужно в этом блоке, а  правый у меня через визуальный редактор редактировался.
  12. Лайк
    andros0789 отреагировална пост Artemka в IPS Community Suite 4.2   
    Новое в IPS 4.2 Интеграция с Authy
    В 4.1.18 мы добавили двухфакторную аутентификацию . Уже в 4.2 мы объявили новый параметр для запуска 2FA при входе с нового устройства , а в 4.2 мы также добавляем Authy в качестве обработчика аутентификации.
    Настройка
     
    Чтобы настроить двухфакторную аутентификацию с помощью Authy, пользователь будет вводить свой номер телефона. Чтобы подтвердить свой номер телефона, они затем введут код, показанный в приложении Auhy, или передадут код, отправленный текстовым сообщением или телефонным звонком. Система автоматически покажет соответствующий интерфейс на основе того, какие опции вы включили - например, если вы не хотите включать приложение в качестве опции, он не будет ссылаться на Authy.


    Проверка с помощью Authy
     
    Когда пользователю нужно будет проверить свою учетную запись, система автоматически покажет соответствующий интерфейс. Если вы разрешаете проверку с помощью приложения Authy и либо это единственный вариант, который вы разрешаете, либо система знает, что пользователь установил приложение Authy, система предложит им использовать это приложение. Это можно сделать либо с помощью опции OneTouch от Authy (когда пользователь получит push-уведомление для приложения, и когда он щелкнет утвердить, экран автоматически обновится) или их опцию SoftToken (где пользователю будет предложено открыть приложение Authy И введите код, который они видят). Если вы разрешаете аутентификацию с помощью текстового сообщения и / или телефонного звонка, пользователь также увидит варианты их использования.
    Эти скриншоты показывают процесс аутентификации OneTouch
     


    После одобрения пользователя экран ожидания будет автоматически обновляться при аутентификации пользователя.
    Для аутентификации SoftToken пользователю предлагается ввести код, показанный в приложении Authy:
     

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



    Управление
    Если пользователь изменит свой номер телефона, он может перенастроить систему в своих настройках учетной записи. Система автоматически показывает «Проверка по телефону», а не «Аути», если приложение недоступно в качестве опции.


  13. Лайк
    andros0789 получил реакцию от TemKa_SD в Как сделать фильтры в страницах?   
    Я себе сделал по другому) Через JavaScript
    <ul class="theme-grid-filter" id="theme-filter">             <li data-filter="tf-all" class="active"><i></i>Все темы</li>             <li data-filter="tf-dark" class=""><i></i>Тёмные</li>             <li data-filter="tf-light" class=""><i></i>Светлые</li>             <li data-filter="tf-image" class=""><i></i>С фонами</li>         </ul> ! function (t, e, i, a) { t.fn.doubleTapToGo = function (a) { return !!("ontouchstart" in e || navigator.msMaxTouchPoints || navigator.userAgent.toLowerCase().match(/windows phone os 7/i)) && (this.each(function () { var e = !1; t(this).on("click", function (i) { var a = t(this); a[0] !== e[0] && (i.preventDefault(), e = a) }), t(i).on("click touchstart MSPointerDown", function (i) { for (var a = !0, o = t(i.target).parents(), n = 0; n < o.length; n++) o[n] === e[0] && (a = !1); a && (e = !1) }) }), this) } }(jQuery, window, document), $(document).ready(function () { $("#theme-filter li").on("click", function () { $("#theme-filter li").removeClass(), $(this).addClass("active"); var t = $(this).attr("data-filter"); "tf-all" === t ? ($("#theme-grid li").removeClass("t-in").addClass("t-out"), setTimeout(function () { $("#theme-grid li").removeClass("t-hide t-out").addClass("t-in") }, 200)) : ($("#theme-grid li").removeClass("t-in").addClass("t-out"), setTimeout(function () { $("#theme-grid li").removeClass("t-hide t-out").addClass("t-in"), $("#theme-grid li:not(." + t + ")").addClass("t-hide") }, 200)) }); var t = function () { $(".link").each(function () { var t = $(this).height(); $(this).css({ "font-size": (t / 11).toFixed(0) + "px" }) }) }; t(); var e = function () { $(".iphone_flat .screenWrap").each(function () { var t = $(this).height(), e = .2841475573 * t; $(this).css({ perspective: e + "px" }) }) }; e(); var i = function () { $(".iframePreview").each(function () { var t = $(this).width(), e = $(this).parent(".screen").width(); $(this).css({ transform: "scale(" + e / t + ")" }) }) }; i(); var a = function () { $(".videoScale").each(function () { var t = $(this).height(), e = t / 1080; $(this).find("#ytplayer").css({ transform: "scale(" + e + ")" }) }) }; a(), $(window).resize(function () { t(), e(), i(), a() }), $(".faqs li div").hide(), $(".faqs li strong").click(function () { $(this).parent().find("div").slideToggle("fast") }), $(".why").click(function () { return $(".why_text").slideToggle(), !1 }), $("ul#filter a").click(function () { $(this).css("outline", "none"), $("ul#filter .current").parent().find("span").hide(), $("ul#filter .current").removeClass("current"), $(this).parent().addClass("current"), $(this).parent().find("span").show(); var t = $(this).text().toLowerCase().replace(" ", "-"); return "all" === t ? $("ul#portfolio li.hidden").fadeIn("fast").removeClass("hidden") : $("ul#portfolio li").each(function () { $(this).hasClass(t) ? $(this).fadeIn("fast").removeClass("hidden") : $(this).fadeOut("fast").addClass("hidden") }), !1 }), $(".closePopup").click(function () { return $("#pricingPopup, .popupBackground").hide(), !1 }), $(".showPopup").click(function () { return $(".popupBackground").show(), !1 }), $(".ie .iewarning").html("<strong>Important:</strong> Your browser is outdated! To view this site correctly, please <a href='http://windows.microsoft.com/en-us/internet-explorer/download-ie'>upgrade your browser</a> or use a safe, modern browser such as <a href='https://www.mozilla.org/firefox/' target='_blank'>Firefox</a>, <a href='https://www.google.com/chrome' target='_blank'>Chrome</a>, <a href='https://www.apple.com/safari/' target='_blank'>Safari</a> or <a href='http://www.opera.com/' target='_blank'>Opera</a>.") }); @media (max-width:550px) { .theme-grid { margin:0; padding:0 } .theme-grid>li { padding:0 0 80px 0; width:100% } } .theme-grid-filter { display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex; -webkit-box-align:center; -webkit-align-items:center; -ms-flex-align:center; align-items:center; -webkit-box-pack:center; -webkit-justify-content:center; -ms-flex-pack:center; justify-content:center; text-align:center; margin-bottom:20px; background:#d8dee6; box-shadow:inset rgba(0,0,0,0.08) 0px -1px 0px } .theme-grid-filter li { padding:20px 30px; cursor:pointer; position:relative; -webkit-transition:color 0.1s linear; transition:color 0.1s linear } .theme-grid-filter li:hover,.theme-grid-filter li.active { color:#222 } .theme-grid-filter li.active:before,.theme-grid-filter li.active:after { content:''; position:absolute; z-index:1; bottom:1px; left:50%; margin-left:-6px; width:12px; height:12px; border:6px solid transparent; border-bottom-color:rgba(0,0,0,0.08); box-sizing:border-box } .theme-grid-filter li.active:after { z-index:2; border-bottom-color:#fff; bottom:0px } .theme-grid-filter li.active { pointer-events:none }  
    И создал доп поле по которому в страницах делаю выборку.
    Добавил его в class="{доп поле}"
    <section id="premadeThemes"> <ul id="theme-grid" class="theme-grid"> <li itemscope="" itemtype="http://data-vocabulary.org/Product" class="tf-light t-in"> <div class="tg-card"> <a href="/portfolio/vtope-r2/" title="Подробнее о Vtope" class="theme-grid-link"> <div class="theme-grid-item" style="background-image:url('/uploads/monthly_2016_11/583b5c668c754_.PNG.027135bef11d95a59672122b35c3d297.PNG');"> <img src="/uploads/monthly_2017_03/583b5c668c754_.thumb.PNG.d6ade120039d470994aca3e16aab2e80.PNG" alt="" itemprop="image"> </div> </a> <div class="theme-grid-text"> <a href="http://cmsmafia.ru/portfolio/vtope-r2/" title="Подробнее о Vtope" itemprop="url"><h4 itemprop="name">Vtope</h4></a> <span class="adjustPrice" itemprop="price">₽ 500.00</span> <div itemprop="description" style="text-align: justify; word-wrap: break-word;" data-ipstruncate="" data-ipstruncate-size="4 lines" data-ipstruncate-type="remove" class="is-truncated"> Vtope — это приятный светлый стиль, который подойдет для любого паблика. В ходе работы были созданы макеты: главной страницы, страницы отзывы, контакты, партнеры и других страниц. Особенности дизайна сайта: тематическое оформление шапки каждой страницы сайта... </div> </div> </div> </li> </ul> </section>  
  14. Лайк
    andros0789 получил реакцию от Respected в IPS Community Suite 4.2   
    Вот это работа! Рад очень, что в свое время выбрал данный движок.
  15. Лайк
    andros0789 отреагировална пост kgb в Перевод в зависимости от выбранного языка   
    Так сам же написал
    Так что извини, ты сам понимал, что несколько сумбурно написано.
    Чиста теоретически, навскидку, как самое простое сделать доополнительно второе (третье, 4е) поле для текста, а в шаблонах проверять язык и в зависимости от языка подгружать поля
    {{if \IPS\Member::loggedIn()->language()->id === 1}} <section class="ipsType_richText ipsType_normal" data-controller='core.front.core.lightboxedImages'>{$record->_content|raw}</section> {{else}} <section class="ipsType_richText ipsType_normal" data-controller='core.front.core.lightboxedImages'>{$record->customFieldDisplayByKey('Content2', 'display')|raw}</section> {{endif}}  
     



  16. Лайк
    andros0789 отреагировална пост kgb в Как вывести member->id в php файле?   
    Потому что он относится к категории людей, которые привыкли брать, но ничего не отдавать. Эти люди считаю что им все должны и должны на халяву.  Вот посмотрите на это сообщение
    Он превыше всего!!! Даже несмотря на то, что условие задачи не сформулировал, остальные должны догадаться, что ему нужно и выложить для него решение
  17. Лайк
    andros0789 получил реакцию от sasha197 в Текст с боковой панели   
    Че то я тебя нифига не понимаю. тебе удалить надо или сократить??? Если сократить то смотри div в котором закреплен тот код что я написал удалить, и в нем увидишь 6 lines, замени 6 на 2, а дальше идет 2ка, ее замени на 1цу
  18. Лайк
    andros0789 получил реакцию от sasha197 в Текст с боковой панели   
  19. Лайк
    andros0789 отреагировална пост Вячеслав Русаков в Как сделать название темы в одну строку?   
    Уже добавлял там везде, через каждую строчку до закрытия </div> ничего вообще не меняется
  20. Лайк
    andros0789 получил реакцию от sasha197 в Текст с боковой панели   
    Sipsb, я так понял он хочет убрать все кроме именно текста сообщения.
     
  21. Лайк
    andros0789 отреагировална пост WOLF в Помогите найти стиль на 3.4.9   
    +
    за это время давно можно было сверстать с нуля, но видимо наш Сеньор PHP не такой уж и Сеньор 
  22. Лайк
    andros0789 получил реакцию от maltsman в Слайдер, ищу   
    http://ipbmafia.ru/files/file/1715-featured-content/
  23. Лайк
    andros0789 получил реакцию от killer911 в Перенос форума из директории   
    killer911, в принципе нет))просто я так обычно делал)
    Кеш не забудьте почистить.
  24. Лайк
    andros0789 получил реакцию от killer911 в Перенос форума из директории   
    В корне вашего форума файл conf_global.php, в нем поправьте следующий код. (и далее я обычно заливал поверх новую версию IPS с заменой и переходил по пути ваш_форум/admin/upgrade и дополнительно обновлял его).
    $INFO['board_url']            =    'http://ваш_сайт.ru';  
  25. Лайк
    andros0789 отреагировална пост seobot в Как правильно..?   
    Заходишь в Аналитику и кидаешь свои коды)

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