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

edmsl

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

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

  • Посещение

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

    8

Сообщения, опубликованные edmsl

  1. 5 часов назад, Exception сказал:

    IPS\Helpers\Table\Content ( или \IPS\Helpers\Table\Db )
    \IPS\Content\Item и функцию getItemsWithPermission()

    Где найти информацию по этим классам и методам? Я даже на офф. сайте не могу найти.

  2. 7 часов назад, Exception сказал:

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

    Если я правильно все понимаю, то имеется ввиду перенос в хуки какого-то нового, созданного мной, плагина всех тех изменений, что я сделал в теме путем создания новых файлов шаблонов? Т.е. я удаляю все те новые шаблоны, а их код реализую через плагин?

  3. Собственно, можно ли как-то реализовать функционал блока (те, что из Pages) без использования этих самых блоков?

    Суть в чем. Я хочу реализовать баг-трекер. Есть сборки по играм и для каждой нужен свой баг-трекер. Первым делом решил воспользоваться плагином Downloads Plus. Он встраивает вкладку баг-трекера для каждого файла. Но на 4,7,9 он ожидаемо не работает. Поэтому создал новую базу даннных, создал для каждой сборки категорию, и туда записываю баги. От тем на форуме отказался, так как не удобно и не так гибко.

    Для каждой сборки на ее странице нужно отображать свои баги. Для этого сделал блок для нужной категории и вставил в код шаблона. И здесь главное неудобство. Надо для каждой игры-сборки создавать свой блок. А если их 10, то уже десять блоков. А если нужно еще фильтр? На каждый фильтр еще по блоку. Так же, если записей нет, то блок не отображается, даже если после условия {{if !empty( $records ) }} добавить {{else}} c кодом. А хотелось бы об этом явно указать.

    Поэтому нужно создать шаблон, который бы доставал данные из базы и выводил их, но без использования блоков. Я думал вставить код шаблона блоков без использования этих самых блоков, но как передать туда записи из БД я не знаю.

    Надеюсь, вы меня поняли.

    Может кто-то уже пытался нечто подобное реализовать?

    Вот что пытаюсь реализовать.

    Спойлер

    Screenshot_3.thumb.jpg.13bc4d4d35b4169deb24e99f7dc341a4.jpg

  4. 2 минуты назад, Exception сказал:

    Если напрямую изменять шаблоны, то при обновлении ips он их не обновит,

    Кто-то писал, что при обновлении ips будет предложено выбрать, какой код добавить в шаблон, текущий или новый. Или это не то?

    6 минут назад, Exception сказал:

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

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

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

  5. Exception Спасибо. Да, так и есть. class_core_front_global.

    Вообще, вся эта затея с заменой шаблонов мне уже не нравится. Мало того, что плагины после этого не работают, так еще и стандартные фишки, типа цвета имени пользователя в постконтейнере (его я тоже изменил и заменил шаблон), тоже не работают.

    Как говорится, из двух зол выбираем меньшее. Придется править оригинальные шаблоны.

  6. Приветствую.

    Решил изменить шапку сайта. Как рекомендуют на офф. сайте invision, сделал свой шаблон (header) в отдельном файле-шаблоне и заменил им оригинал. В globalTemplate заменил это:

    <div id='ipsLayout_header' class='ipsClearfix'>
    	<header>
    		<div class='ipsLayout_container'>
    			{template="logo" app="core" group="global" params=""}
    			{{if !\in_array('ipsLayout_minimal', \IPS\Output::i()->bodyClasses )}}
    				{template="userBar" app="core" group="global" params=""}
    				{template="mobileNavigationIcon" app="core" group="global" params=""}
    			{{endif}}
    		</div>
    	</header>
    	{template="navBar" app="core" group="global" params=""}
    	{{if !\in_array('ipsLayout_minimal', \IPS\Output::i()->bodyClasses )}}{template="mobileNavBar" app="core" group="global" params=""}{{endif}}
    </div>

    на это:

    {template="header" app="core" location="front" group="_myheader" params=""}

    У меня стоит плагин Clear Notifications, который добавляет кнопку очистки уведомлений в юзербар в шапке.

    firefox_2023-06-21_20-58-53.jpg.a017072ebdc7ef671a585c5112b3e449.jpg

    Это скрин из стандартной темы.

    Хук у плагина простой:

    /* !Hook Data - DO NOT REMOVE */
    public static function hookData() {
     return array_merge_recursive( array (
      'userBar' => 
      array (
        0 => 
        array (
          'selector' => '#elFullNotifications_menu > div.ipsMenu_footerBar.ipsType_center',
          'type' => 'add_inside_end',
          'content' => '{template="clearNotificationsLink" app="core" group="plugins" location="global"}',
        ),
      ),
    ), parent::hookData() );
    }
    /* End Hook Data */

    Но шаблон userBar у меня тоже свой, в отдельном файле (_userBar), т.к. я добавил туда одну кнопку, но див по селектору #elFullNotifications_menu > div.ipsMenu_footerBar.ipsType_center присутствует. И хук не добавляет кнопку.

    Вопрос: можно ли добавить кнопку очистки в кастомный шаблон через хук , а не через правку шаблона _userBar, напрямую прописав туда код шаблона кнопки из плагина?

    '_userBar' => 
      array (
        0 => 
        array (
          'selector' => '#elFullNotifications_menu > div.ipsMenu_footerBar.ipsType_center',
          'type' => 'add_inside_end',
          'content' => '{template="clearNotificationsLink" app="core" group="plugins" location="global"}',
        ),
      ),

    так не работает.

  7. Разобрался. Изменения в config.js работают, но для этого надо очистить кэш браузера. Вот и весь секрет.

    В Гугл Хром достаточно обновить страницу с помощью Ctrl + F5, а вот в Firefox почему-то не прокатывает, только через настройки очищать.

  8. У некоторых кнопок есть параметры. Например, у кнопки вставки видео с ютуб есть параметр, отвечающий за опцию Растянуть видео

    Цитата

    editor.config.youtube_responsive

    Если его прописать в конфиг со значением true, то по умолчанию опция будет включена. Так вот куда прописать это, чтобы работало?

    Я добавил запись в config.js

    a.removeButtons="Cut,Copy,Paste,Undo,Redo,Anchor,Underline,Strike,Subscript,Superscript";
    a.youtube_responsive=true;

    но это ожидаемо не помогло. Кэши очищал. Куда нужно прописать параметр? Или проще в js файле кнопки сразу захардкодить этот параметр и переустановить кнопку?

     

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

  9. 2 часа назад, Exception сказал:

    думаю проблема просто в плагине

    Сам плагин, как я понял из описания, меняет только что-то в ссылках. Так же там сказано, что реализация всего функционала жестко задана именно для API Amazona. Полагаю, что при закачке чанками API яндекса и ВК возвращает другие данные, которые отличаются от амазоновских, и движок просто не может их обработать.

  10. VK Cloud тоже не работает с мультизагрузкой. Файл полностью не загружается. Т.е. он принимает первый чанк и на этом все. Видимо, хоть API и совместимы, но работа с чанками реализована по разному. Что у ВК, что у Яндекса. Как писал ранее, проблема решается увеличением memory_limit, post_max_size и upload_max_filesize в php.ini. Со всеми вытекающими.

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