-
Постов
153 -
Зарегистрирован
-
Посещение
-
Победитель дней
17
Тип контента
Профили
Загрузки
База знаний IPS Community Suite 4
База знаний IP.Board 3.x
Форумы
События
Магазин
Совместные покупки
Сообщения, опубликованные WaNted
-
-
Скорее всего автор не предусмотрел это.
-
В данном случае версии не имеют никакого значения. Я под основу брал оригинальную версию 1.0.2, а не исправленную, которую выкладывал HooLIGUN.
-
-
Дело в том, что там не учитывается возможное отсутствие у пользователей некоторых данных (фамилии, юзернейма, фото профиля). При формировании хэша для проверки авторизации туда попадают пустые переменные (last_name и/или username и/или photo_url), из-за чего в конечном итоге хэши не сходятся. Чтобы это исправить, нужно добавить проверку и исключить пустые переменные для формирования хэша.
Отсюда получается, что у тех, у кого все это есть - спокойной могут авторизоваться, а те, у кого хоть что-то отсутствует (фамилия, юзернейм или фото) - получают ошибку.@HooLIGUN мыслил в правильную сторону, но не до конца решил проблему.
Прикрепляю исправленную версию.
-
-
-
-
-
-
if ( $this->member->member_id == \IPS\Member::loggedIn()->member_id ) { }
-
Глянь \IPS\Content\Search\Result::preDisplay
-
Метод нужно добавлять в контролер а не в класс. Добавьте его в \IPS\core\modules\front\members\profile.
И как указываете ссылку на форму эту?
-
Цитата
Notice that the parent method is passed in as a parameter (if the method has any other parameters, these will appear first, and the parent method will be the last parameter).
function (e, data, origFn)
-
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.
-
Интересно, а если попробовать убрать атрибут 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!
-
Какой конкретно контроллер и метод?
-
-
Нет никакой проблемы, может просто в обработчике формы не предусмотрено изменение скрытых полей на фронте. Сейчас не у компа, можете сами посмотреть это в \IPS\Helpers\Form метод values.
-
-
Скрытые поля можно добавить в методе _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; }
-
2 минуты назад, bsnet сказал:
а удалять по времени вроде нет
а речь идёт как раз про удаление
-
Ограничения по времени там нет вроде.
И у ТС версия ниже.
-
-
{{$days = \IPS\DateTime::ts( time() )->diff( $comment->author()->joined )->format( '%a' );}}
Выводить так:
Дней с нами: {$days}
URL
в Техническая поддержка Invision Community
Опубликовано
До цифры 5 и после неё используется неразрывной пробел вместо обычного.
Просто переименуйте запись блога, заменив неразрывной на обычный пробел.