Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Действие не выполнено

Опубликовано:

Здравствуйте!

В колонке "Изменения статуса" при ответе на статус пользователя, выходит js alert "Действие не выполнено". Если обновить страницу, то можно увидеть свой ответ. Т.е. в базу записывается ответ. Если самому написать статус, то все нормально. :(

Кто-нибудь сталкивался?

Рекомендованные сообщения

Опубликовано:

Файлы форума правили, внесли лишние пробелы/перевод каретки/BOM, как результат, ajax-ответ форума начинается с пробела, а, как известно, " ok" != "ok". Ищите лишние символы и пустые строки в файлах, что правили.

Опубликовано:
  • Автор

Файлы форума правили, внесли лишние пробелы/перевод каретки/BOM, как результат, ajax-ответ форума начинается с пробела, а, как известно, " ok" != "ok". Ищите лишние символы и пустые строки в файлах, что правили.

Спасибо буду искать!

  • 1 год спустя...
Опубликовано:
  • Автор

проблема повторяется. Если открыть в браузере файл /ipb/public/js/ipb.js и обновить его, то все приходит в порядок до определенного времени. потом все повторяется.

Опубликовано:

Попробуйте этот файл от версии 3.4.5. От версии к версии сторонние js не сильно меняются в этом продукте. Если у вас нулл, советую перейти на официальную версию.

ipb.zip

Изменено пользователем Zero108

Опубликовано:
  • Автор

Попробуйте этот файл от версии 3.4.5. От версии к версии сторонние js не сильно меняются в этом продукте. Если у вас нулл, советую перейти на официальную версию.

Спасибо, вроде помогло.Буду наблюдать. Нет у меня лицензия.

Опубликовано:
  • Автор

После вставки того файла, не работает редактор, а именно вставка медиа-файлов и т.д.

Опубликовано:

Значит, только платить за продление лицензии и вперед обновляться. Могу выслать еще 2-3 файла.

Опубликовано:
  • Автор

Значит, только платить за продление лицензии и вперед обновляться. Могу выслать еще 2-3 файла.

давайте еще файлы. может подберем.

Опубликовано:

Странный вы человек. Мне-то не жалко. А какие?

 

Кстати, у вас версия от IBR или от IPS?

  • 1 месяц спустя...
Опубликовано:
  • Автор

new Ajax.Request( ipb.vars['base_url'] + "app=members&section=status&module=ajax&do=reply&status_id=" + status_id + "&md5check=" + ipb.vars['secure_hash'],
{
method: 'post',
evalJSON: 'force',
parameters: {
	content: $('statusText-' + status_id ).value.encodeParam()
},
onSuccess: function(t)
{
if( Object.isUndefined( t.responseJSON ) )
{
   alert( ipb.lang['action_failed'] );
   return;
}

в файле public/js/ips.status.js срабатывает условие if( Object.isUndefined( t.responseJSON ) ).

Опубликовано:
  • Автор

в приложении members при post-запросе срабатывает этот метод класса

protected function _reply()
{
	/* INIT */
	$status_id = intval( $this->request['status_id'] );
	$comment   = $this->convertAndMakeSafe( $_POST['content'] );
	$id        = intval( $this->request['id'] );

	/* Quick check? */
	if ( ! $status_id OR ! $comment )
		{
		$this->returnJsonError( $this->lang->words['status_no_reply'] );
	}

	/* Set Author */
	$this->registry->getClass('memberStatus')->setAuthor( $this->memberData );

	/* Set Content */
	$this->registry->getClass('memberStatus')->setContent( $comment );

	/* Set Data */
	$this->registry->getClass('memberStatus')->setStatusData( $status_id );

	/* Can we reply? */
	if ( ! $this->registry->getClass('memberStatus')->canReply() )
		{
		$this->returnJsonError( $this->lang->words['status_no_reply'] );
	}

	/* Update */
	$this->registry->getClass('memberStatus')->reply();

	/* Now grab the reply and return it */
	$reply = $this->registry->getClass('output')->getTemplate('profile')->statusReplies( $this->registry->getClass('memberStatus')->fetchAllReplies( $status_id, array( 'sort_dir' => 'desc', 'limit' => 1 ) ) );

	/* And the number of replies */
	$statusData = $this->registry->getClass('memberStatus')->getStatusData();

	$this->returnJsonArray( array( 'status' => 'success', 'html' => $this->cleanOutput( $reply ), 'status_replies' => $statusData['status_replies'] + 1 ) );
}

  • 2 недели спустя...
Опубликовано:
  • Автор

Если никто не отвечал на статус который отвечаешь, то все проходит хорошо.

А в случае если уже кто-то ответил, то выдает сообщение "действие не выполнено".

 

Ошибка выдается после строки в файле /ipb/admin/applications/members/modules_public/ajax/status.php

$this->registry->getClass('memberStatus')->reply();

 

 

в файле /ipb/admin/sources/classes/member/status.php

класс memberStatus

метод public function reply

если за комментировать строчку

$this->_sendNotification( $author, $status, $data );

то все работает. Думаю что это класс по отсылке личных сообщений, о том что кто-то ответил на статус.

Изменено пользователем ayd-in

Опубликовано:
  • Автор

if( $_owner['member_id'] == $member['member_id'] ){
    ...
}
else{
      return TRUE;
IPSText::getTextClass('email')->subject	= sprintf( 
																			$this->lang->words['subject__other_status_reply'], 
																			$this->registry->output->buildSEOUrl( 'showuser=' . $_replier['member_id'], 'public', $_replier['members_seo_name'], 'showuser' ), 
																			$_replier['members_display_name'],
																			$this->registry->output->buildSEOUrl( 'showuser=' . $_owner['member_id'], 'public', $_owner['members_seo_name'], 'showuser' ), 
																			$_owner['members_display_name'],
																			$this->settings['base_url'] . 'app=members&module=profile&section=status&do=list&status_id=' . $status['status_id']
																		);
}

Если добавить return TRUE; то работает. Получается что не работает отправка notification :(

Изменено пользователем ayd-in

Опубликовано:
  • Автор

Аааааааааааааааааааааа :blink: :blink: :blink: :blink

сделал так, работает. $this->lang->words['subject__other_status_reply'], Вместо $this->lang->words['subject_other_status_reply']

 

но в языках с двумя черточками

 

 

проблема решилась тем что

 

в языках не правильно было слово subject__other_status_reply

<a href='%s'>%s</a> has replied to <a href='%s'>%s</a>'s <a href='%s'>status</a>

Изменено пользователем ayd-in

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.