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

Exception

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

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

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

    82

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

  1. 13 часов назад, Desti сказал:

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

    invisioncommunity.com/forums/topic/455654-plugin-code-hooks/

    Иногда проще сделать свой JS файл, а не модифицировать оригинал. Ограничение по копированию кода относится только к "When overriding a method...".

    Но в любом случае команда, проверяющая код перед публикацией укажет вам на нарушения и предложит их исправить, так что всё можно решить. 

    в конечном итоге вы смогли реализовать плагин для продажи?

    13 часов назад, Desti сказал:

    Иногда проще сделать свой JS файл, а не модифицировать оригинал

    ну у меня ситуация идентичная я так полагаю, только у вас там переопределение для php функции, у меня тут для js и так же нужно переопределение всего метода, ибо this.around, this.before, this.after это не сделать. Хотя я тоже могу не трогать метод в js, а затронуть функцию обработчик в php, НО мне опять же придется вырезать или изменять код родителя для переопределения функции php, так как он в любом случае выполнится если использовать code hook

  2. 18 минут назад, Desti сказал:

    Эти ограничения касаются только приложений и плагинов, которые вы хотите выставить в маркет инвижына для других людей. В рамках своего форума вы можете делать с кодом что угодно. 

    это понятно, у меня вопрос по this.parentMethod = function () и возник если я вдруг захочу распространять плагины\приложения как мне лучше использовать их функции.

    2 минуты назад, Desti сказал:

    Да, именно так. Вы не можете залезть в функции и переменные родителя и что-то изменить, но вы можете дополнить базовый класс своими функциями или полностью заменить функции родителя своими. 

     

    Вот по поводу замещения функции
    Мне нужно немного изменить например один из методов под свой плагин, допустим одну переменную внутри функции parentMethod, т.е. мне придется как ни крути скопировать код родителя, немного подправить и переопределить this.parentMethod = function () { //весь код оригинала + мои правки }; получается такой плагин уже нельзя будет распространять? Если нет то как тогда другие разработчики переписывают функции, не писать же идентичную функцию которая выполняет все тоже самое что и родительская, только ради работы одной переменной.

  3. 14 минут назад, WaNted сказал:

    Интересно, а если попробовать убрать атрибут data-role="commentFeed" с оригинального элемента и поставить на нужный до выполнения метода, а после вернуть на место, убрав со своего. 😂

    Ну а если серьёзно, переопределять полностью методы можно. Если верить этому:

     

     

    Я просто подумал что это запрещено условиями лицензии IPS, так как я все же копирую ИХ код js в свой но с правками

  4. 6 минут назад, WaNted сказал:

    Какой конкретно контроллер и метод?

    в принципе любой где объявляются переменные, например тот же контроллер core.front.core.commentFeed, метод addToCommentFeed
    там есть такой участок кода:

    var commentFeed = this.scope.find('[data-role="commentFeed"]');
    if( commentFeed.find('[data-role="moderationTools"]').length ){
    	commentFeed = commentFeed.find('[data-role="moderationTools"]');
    }

    мне нужно чтобы этот метод выполнился не с тем значением который объявляется в методе родителя, а с моим, например:

    var commentFeed = this.scope.find('#my_element');

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

  5. или проще скопировать родительский метод (оригинал) и внести в него правки?:

    this.parentMethod = function () {
    	//весь код оригинала + мои правки
    };

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

    Цитата

    When overriding a method, you MUST NOT copy code from the original method into your hook. This is necessary to ensure that your hook does not interfere with any bug fixes or changes made to the original class in future versions. Also, it is against the terms of the IPS Community Suite license to distribute any code within it.

    Цитата

    При переопределении метода вы НЕ ДОЛЖНЫ копировать код из исходного метода в свой хук. Это необходимо для того, чтобы ваша ловушка не мешала исправлению ошибок или изменениям, внесенным в исходный класс в будущих версиях. Кроме того, распространение любого кода внутри нее противоречит условиям лицензии IPS Community Suite.

     

  6. Есть такая штука называется примеси или mixins. Очень мало инфы в инете которую я так и не смог применить
    Нашел такое https://invisioncommunity.com/4guides/themes-and-customizations/javascript-framework/introduction-to-the-framework/mixins-r285/
    Там приводится пример, дополнить возвращаемые данные:

    this.around('parentMethod', function (origFn) {
    	var returned = origFn();
    	
    	return _.extend( returned, {
    		key1: true,
    		key2: false
    	});
    });

    а есть ли возможность, например в методе parentMethod есть переменная var bruh; как мне её переопределить на мою переменную с нужным мне значением, чтобы код в parentMethod выполнился с значением из моей переменной? Нужно расширить родительский метод чтобы он уже выполнялся с частью моего кода. Или это вообще работает не так как я думаю?

  7. обычно делают так: перед циклом foreach задают переменную например $id=0; далее в теле цикла увеличивают её $id++
    вижу это код в шаблоне post? Там есть id для каждого поста, попробуй заменить в своем коде "01" на {$comment->$idField}

  8. Пока вот что удалось реализовать
    Плагин при включении в выбранных приложениях существенно изменяет логику комментариев
    - Возможность отдельно ответить на комментарий (с возможностью отмены ответа)
    - Ответы выводятся под комментарием
    - Все ответы выделяются настраиваемым таймлайном
    - Подгрузка комментариев\ответов на AJAX
    - Ограничение комментариев\ответов на страницу и при AJAX
    - Возможность сохранения структуры ответов, если комментарий "родитель" был удален или скрыт
    - Возможность детальной настройки плагина
    - Все системные и визуальные функции комментирования сохранены. Все новые комментарии\ответы моментально добавляются средствами IPS AJAX в ленту.

    осталось сделать пару правок для работы авто поллинга

     

    Спойлер

    treecomments_1.jpg

     

     

    Спойлер

    treecomments_2.jpg

     

    Спойлер

     

    treecomments_3.jpg

    treecomments_4.jpg

     

     

  9. Цитата

    Яндекс индексирует картинки только стандартных графических форматов (JPEG, GIF и PNG)

    с картинками webp про яндекс можно будет скорее всего забыть

  10. del.thumb.png.16976cefbd6f7090acdb3403001477d1.png

    При нажатии на кнопку (1) запускается код из \IPS\Content функция logDelete( $member=NULL )
    А какая функция запускается и откуда при нажатии на кнопку (2) ? Все классы перелопатил, так и не нашел. Действие вроде как одно и тоже, но вызов разный ...
    сначала думал что из \IPS\Content\Controller так как там есть функция _delete( $commentClass, $comment, $item ), но на мои хуки не реагирует.

  11. 27 минут назад, bsnet сказал:

    Одно дело - сжимать фото для сайта, другое дело сжимать фото для личных архивов и работы. Надо мне отличное качество, без потерь, буду сохранять в png, psd или вообще в bmp, места то террабайты на HDD. 
    Превьюшки картинок у меня размером 110x150  пикселей, получаются в .webp весом по 3-5 килобайт.
    jpg, png, gif в большинстве случаев проигрывают .webp по качеству, если надо получить картинку минимального веса, я как бы постоянно сохраняю сразу в разных форматах и смотрю где меньше результат.
    Все современные Android смартфоны поддерживают .webp, да и топовые сайты на него перешли, например самая популярная в мире стриминговая платформа Netflix, можно зайти и глянуть, в каком у них формате постеры 😃
    На pikabu вижу, что в последнее время в .webp тоже стали размещать некоторые фотки.

    в jpg формате все картинки у netflix
    у пикабу есть картинки в webp но там логика которая проверяет поддержку, соответственно картинки в несколько копий. Использовать формат webp это дурачество, никакой "топовый" сайт не перешел на формат webp, он лишь используется для выдачи если имеется поддержка такого формата, и уж точно это не делается в целях ОПТИМИЗИРОВАТЬ САЙТ ЧТОБЫ СЖАТЬ КАРТИНКИ ИБО ВЫДАЕТСЯ СРАЗУ НЕСКОЛЬКО КОПИЙ КАРТИНКИ ПОТОМУ ЧТО У ТОГО ЖЕ ПИКАБУ ОГРОМНОЕ КОЛИЧЕСТВО РЕСУРСОВ ЧТОБЫ ЭТО ДЕЛАТЬ

  12. 8 часов назад, bsnet сказал:

    Это формат от Google, от jpg устаревшего надо постепенно отказываться

    я тоже так когда-то думал, к сожалению webp не заменит привычные форматы и в скором времени скорее всего просто вымрет и останется как один из форматов для разнообразия
    Да и на сегодня не все новые устройства поддерживают этот формат, что уж говорить о старых, сам гугл этому подтверждение, который не перешел на свой же формат до сих пор.
    Т.е. придется писать дополнительную логику, чтобы устройствам без поддержки отдавать старый формат, а с поддержкой webp - а это удар по дисковому пространству, так как нужно иметь целых 2 копии картинки.

    Цитата

    чтобы фото было в разы меньше - всего лишь достаточно научиться их правильно оптимизировать.

    https://habr.com/ru/company/yandex/blog/493616/

    Спойлер

    589201159__2021-04-25_164139.thumb.png.d58afdb4c2f7478c7afc597531b9120c.png

     

  13. 15 минут назад, мвмвмм сказал:

    можешь скрин

    ради сатаны изучите хотя бы базово CSS
    в дефолте нету фона для футера

    ты можешь растянуть весь форум на 100%:

    body {
        background: linear-gradient(to bottom, #5d85a8, #0c849f);
    }
    #ipsLayout_body {
        background: #ebeff3;
    }
    .ipsLayout_container {
        max-width: 100% !important;
    }

    а можно и футеру сделать еще один абсолютный слой с градиентом

    #ipsLayout_footer:before {
        content: '';
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        height: 10%;
        background: linear-gradient(0deg, #d7aaf9, transparent);
        z-index: -1;
    }

     

    915241853__2021-04-23_075910.thumb.png.df0d94f4ce9e5f8949c6151373d99ea3.png

  14. 9 минут назад, mistudioru сказал:

    Нашел, туплю, 105125 у меня! Вопрос с запуском upgrade остался открытым! Нужно его запускать или просто перезалить файлы и все?

     

    10 минут назад, ZIKURIK сказал:

    у тебя установлена версия 100027 = 4.0.4, последняя доступная версия нуля тут 105125 = 4.5.4.2

    ой, последняя доступная версия нуля тут 105129 = 4.5.4.2

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

    У меня вот такая хрень, где этот номер можно посмотреть? Еще upgrade нужно запускать или просто перезалить файлы (я про то что версии то одинаковые)?

    261740104_2021-04-2222_05_29.thumb.png.7695b10c16da310b3753b0482eb140bd.png

    у тебя установлена версия 100027 = 4.0.4, последняя доступная версия нуля тут 105125 = 4.5.4.2

  16. 1 час назад, Artemka сказал:

    Не видел , но специально для этой функции снова вернусь к Invision. Выглядит как всегда шикарно

    Видимо отключили, вчера у них это работало. Это давно можно было сделать при помощи Automation Rules. Но я сам уже скоро полностью откажусь от Automation Rules написав свои плагины.

  17. 12 часов назад, WaNted сказал:
    
    
    $сommentIds = array( 1, 2, 3 );
    foreach ( $this->comments( NULL, NULL, 'date', 'asc', NULL, NULL, NULL, array( array( \IPS\Db::i()->in( 'comment_id', $сommentIds, TRUE ) ) ), FALSE, isset( \IPS\Request::i()->showDeleted ) ) as $LoadComment )

     

    сидел думал чтобы такое вставить в where, видимо проглядел про \IPS\Db::i()->in . Спасибо

  18. есть такая итерация:

    foreach ( $this->comments( NULL, NULL, 'date', 'asc', NULL, NULL, NULL, NULL, FALSE, isset( \IPS\Request::i()->showDeleted ) ) as $LoadComment )

    и у меня есть массив с определенными id, нужно во время итерации собирать только те comments id которых нету в моем массиве, как такое организовать ?
    Я могу сравнить их после функцией !\in_array(), но мне нужно сделать это внутри $this->comments() чтобы сразу отсечь ненужные comments

  19. 8 часов назад, alastar сказал:

    Вот почитал тему и задумался,  так как сайт у меня на шаред находится,  на грузки даже и близко к половине не доходит.  Правда сайт новый но посещаемость есть. Я знаю какая нагрузка у WP и XF, и у меня вопрос,  у IPS выше нагрузка тех двух движков или ниже? Так как те движки для меня более знакомы.

    чем больше кода, тем выше нагрузка, alastar !

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