Перейти к контенту

Поп-ап при появлении нового личного сообщения


Lisa

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

Пропало поп-ап окно при получении нового сообщения. Пользователи жалуются, хотят, чтобы оно опять появилось. "Да" в профайле поставили, версия финальная. Теперь нет такой возможности или это я что-то напутала при установке?
Ссылка на комментарий
Поделиться на других сайтах

Теперь нет такой стандартной опции... Новое сообщение появляется в виде темно-розового объявления под шапкой форумов
Ссылка на комментарий
Поделиться на других сайтах

писать мод - что возможно скоро сделаем

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

Ссылка на комментарий
Поделиться на других сайтах

Меня каррэнт устраивает к примеру. Попапы всё равно я давил нещадно. Иногда по неск суток не читал ПМ ... А щя приходится :D
Ссылка на комментарий
Поделиться на других сайтах

вообщем вот :D

файл functions.php

ищем функцию function get_new_pm_notification()

внутри нее после строчки

global $DB, $ibforums, $skin_universal;

добавляем

  if ($ibforums->member['pm_pop_up']==1)
  {
  	return $ibforums->skin_global->pm_pop_up();
  }
  else
  {  

и потом в самом низу функции находим

  	return $ibforums->skin_global->msg_get_new_pm_notification( $msg );
}

и меняем на

  	return $ibforums->skin_global->msg_get_new_pm_notification( $msg );
  }
}

 

файл messenger.php

ищем

     	case '32':
       $this->del_tracked();
       break;

ниже добавляем

     	case '99':
       $this->pm_popup();
       break;

 

затем чуть ниже находим

 	/*-------------------------------------------------------------------------*/
 	// Empty PM folders:
 	//
 	// Interface for removing PM's on a folder by folder basis
 	/*-------------------------------------------------------------------------*/

и выше добавляем

 	/**********************************************************/
 	// PM Pop up:
 	//
 	// Simpy display the pop up window
 	/**********************************************************/
 	
 	function pm_popup() {
 	
  global $DB, $ibforums, $skin_universal, $std, $print;
  //-----------------------------------------
  // posty parsery
  //-----------------------------------------
  
  require_once( ROOT_PATH.'sources/lib/post_parser.php' );
  
  $parser = new post_parser();
  
  //-----------------------------------------
  // Get last PM details
  //-----------------------------------------
  
  $DB->cache_add_query( 'msg_get_new_pm_notification', array( 'mid' => $ibforums->member['id'] ) );
  $DB->simple_exec();
  
  $msg = $DB->fetch_row();
  
  if ( ! $msg['msg_id'] and ! $msg['mt_id'] and ! $msg['id'] )
  {
  	return '<!-- CANT FIND MESSAGE -->';
  }
  
  $msg['msg_post'] = $parser->strip_all_tags( $msg['msg_post'] );
  
  if ( strlen( $msg['msg_post'] ) > 120 )
  {
  	$msg['msg_post'] = substr( $msg['msg_post'], 0, 255 ) . '...';
  	$msg['msg_post'] = preg_replace( "/&(#(\d+;?)?)?\.\.\.$/", '...', $msg['msg_post'] );
  }
  
  if ( ! is_array( $ibforums->cache['badwords'] ) )
  {
  	$ibforums->cache['badwords'] = array();
  	
  	$DB->simple_construct( array( 'select' => 'type,swop,m_exact', 'from' => 'badwords' ) );
  	$bbcode = $DB->simple_exec();
  
  	while ( $r = $DB->fetch_row($bbcode) )
  	{
    $ibforums->cache['badwords'][] = $r;
  	}
  }
  
   $msg['msg_post'] = $parser->convert( array( 'TEXT'    => $msg['msg_post'],
                	'SMILIES' => 1,
                	'CODE'    => $ibforums->vars['msg_allow_code'],
                	'HTML'    => $ibforums->vars['msg_allow_html']
                 )      );
  
  $msg['msg_post'] = $parser->bad_words( $msg['msg_post'] );
  
  if ( $msg['mt_hasattach'] )
  {
  	$msg['attach_img'] = '<{ATTACH_ICON}> ';
  }
  
  $msg['avatar'] = $std->get_avatar($msg['avatar_location'], 1, $msg['avatar_size'], $msg['avatar_type']);
  
  $print->pop_up_window($ibforums->lang['pmp_title'], $ibforums->skin_global->msg_get_new_pm_notification( $msg ));  
 	
 	}

файл usercp.php

внутри функции function board_prefs()

находим

   $view_pop  = "<select name='DO_POPUP' class='forminput'>";

ниже добавляем

   $pm_pop_up = "<select name='VIEW_POPUP' class='forminput'>";

находим

   $view_pop .= $ibforums->member['view_pop'] ? "<option value='1' selected='selected'>".$ibforums->lang['yes']."</option>\n<option value='0'>".$ibforums->lang['no']."</option>"
               : "<option value='1'>".$ibforums->lang['yes']."</option>\n<option value='0' selected='selected'>".$ibforums->lang['no']."</option>";

ниже добавляем

   $pm_pop_up .= $ibforums->member['pm_pop_up'] ? "<option value='1' selected='selected'>".$ibforums->lang['yes']."</option>\n<option value='0'>".$ibforums->lang['no']."</option>"
               : "<option value='1'>".$ibforums->lang['yes']."</option>\n<option value='0' selected='selected'>".$ibforums->lang['no']."</option>";

находим

'POP'  => $view_pop."</select>",

ниже добавляем

'POP1' => $pm_pop_up."</select>",

 

файл usercp_functions.php

внутри функции function do_board_prefs()

находим

  if ( ! preg_match( "/^\d+$/", $ibforums->input['DO_POPUP'] ) )
  {
  	$std->Error( array( 'LEVEL' => 1, 'MSG' => 'poss_hack_attempt' ) );
  }

и ниже добавляем

  //-----------------------------------------
  if ( ! preg_match( "/^\d+$/", $ibforums->input['VIEW_POPUP'] ) )
  {
  	$std->Error( array( 'LEVEL' => 1, 'MSG' => 'poss_hack_attempt' ) );
  }

находим

'view_pop'     => $ibforums->input['DO_POPUP'],

ниже добавляем

'pm_pop_up'    => $ibforums->input['VIEW_POPUP'],

 

в языковый файлы lang_ucp.php

добавляем

'settings_viewpopup' =>"Pop up window when you get a new personal message",

 

файл mysql_queries.php

внутри функции function session_load_member( $a )

находим

m.view_pop, m.view_img,

меняем на

m.view_pop, m.pm_pop_up, m.view_img,

 

редактируем скины

Skin Manager Home / User Control Panel/settings_end

 

ищем

  <td>{ipb.lang['settings_dopopup']}</td>
  <td>{$data[POP]}</td>
</tr>

и после добавляем

	<tr>
  <td>{ipb.lang['settings_viewpopup']}</td>
  <td>{$data[POP1]}</td>
</tr>

в разделе All Global HTML добавляем новый кусок шаблона жмем Add Template Bit

имя функции pm_pop_up

содержимое

<script language='JavaScript' type="text/javascript">
     <!--
       window.open('{ipb.script_url}act=Msg&CODE=99','NewPM','width=500,height=160,resizable=yes,scrollbars=yes'); 
     //-->
     </script>

 

добавляем поле к базе мемберов

ALTER TABLE `ibf_members` ADD `pm_pop_up` TINYINT( 1 ) DEFAULT '0';

 

фф проде ничего не забыл;)

проверял- работает.. если не работает - спрашивайте- поможем :)

Добавлено в [mergetime]1097330821[/mergetime]

да тип извещения выбирается в настройках форума в юзерской панели настроек

Изменено пользователем winnie
Ссылка на комментарий
Поделиться на других сайтах

winnie

:D Спасибо!

Переношу в модификации

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.