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

WaNted

Пользователи
  • Постов

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

  • Посещение

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

    17

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

  1. Дело в том, что там не учитывается возможное отсутствие у пользователей некоторых данных (фамилии, юзернейма, фото профиля). При формировании хэша для проверки авторизации туда попадают пустые переменные (last_name и/или username и/или photo_url), из-за чего в конечном итоге хэши не сходятся. Чтобы это исправить, нужно добавить проверку и исключить пустые переменные для формирования хэша.

    Отсюда получается, что у тех, у кого все это есть - спокойной могут авторизоваться, а те, у кого хоть что-то отсутствует (фамилия, юзернейм или фото) - получают ошибку.

    @HooLIGUN мыслил в правильную сторону, но не до конца решил проблему.

    Прикрепляю исправленную версию.

     

    telegramlogin.tar

  2. Еще момент по вашему хуку шаблона. Нежелательно переопределять целый участок кода, т.к. это делает невозможным дальнейшее изменение шаблона. Предлагаю использовать вместо replace способ add attributes и добавить там plugins.blackline в data-controller.

  3. 1 час назад, bsnet сказал:

    Версия 4.7.0 при обновлении требует php не менее 8.0

    Не требует, а рекомендует для следующих релизов. Минимальная версия PHP 7.4. Используйте её, чтобы не отваливались приложения и плагины, пока авторы не адаптируют под 8 версию.

  4. 20 часов назад, WaNted сказал:

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

    Я думаю стоит попробовать это. Пример:

    this.around('addToCommentFeed', function (origFn, e, data) {
    	this.scope.find('[data-role="commentFeed"]').attr('data-role', 'oldCommentFeed');
    	this.scope.find('#yourElement').attr('data-role', 'commentFeed');
    	origFn(e, data);
    	this.scope.find('#yourElement').removeAttr('data-role');
    	this.scope.find('[data-role="oldCommentFeed"]').attr('data-role', 'commentFeed');
    });

    В теории комментарий будет добавлен в нужный элемент #yourElement.

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

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

    Цитата

    Finally, you can create new methods in your mixin, or completely replace methods from the parent controller by redefining them.

     

    Цитата

    Of course, if you replace an existing method, be sure it plays nicely with any calls to it!

     

  6. Скрытые поля можно добавить в методе _commentForm.

    /**
     * Return the comment form object
     *
     * @return	\IPS\Helpers\Form
     */
    protected function _commentForm()
    {
    	$form = parent::_commentForm();
    	$form->hiddenValues['key'] = 'value';
    
    	return $form;
    }

    Обрабатывать форму в методе processCommentForm.

    /**
     * Process the comment form
     *
     * @param	array	$values		Array of $form values
     * @return  \IPS\Content\Comment
     */
    public function processCommentForm( $values )
    {
    	$comment = parent::processCommentForm( $values );
    	$comment->key = $values['key'];
    	$comment->save();
    
    	return $comment;
    }

     

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