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

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


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 Спасибо!

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

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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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