PCP - вставить свою функцию

Ответы на вопросы, связанные с модами для phpBB 2.0.x, кроме относящихся к форуму Для авторов (phpBB 2.0.x).
Аватара пользователя
teg
phpBB 1.4.2
Сообщения: 64
Стаж: 19 лет 7 месяцев
Откуда: С.-Петербург

PCP - вставить свою функцию

Сообщение teg »

Пробую скрестить PCP 2.0.0 и Blog Mod version 0.2.x by Hyperion
Легко получилосб просто добавить кнопочку в панель кнопок в постингах и в панель профиля.
Захотелось большего. :)
Захотелось в профиле сделать не просто кнопочку, но текстовую ссылочку с названием дневника и количеством записей.
Навроде того как сделано с фотоальбомом:

Код: Выделить всё

function pcp_output_gallery($field_name, $view_userdata, $map_name='') 
{ 
	global $board_config, $phpbb_root_path, $phpEx, $lang, $images, $userdata; 
	global $values_list, $tables_linked, $classes_fields, $user_maps, $user_fields; 
	global $db, $album_config;
	
	include_once($phpbb_root_path . 'album_mod/album_functions.'.$phpEx);
   
   $txt = ''; 
   $img = ''; 
   $res = ''; 
	if ( $view_userdata['user_id'] != ANONYMOUS ) 
	{
		//fill Album_config
			$sql = "SELECT *
				FROM ". ALBUM_CONFIG_TABLE;
			if(!$result = $db->sql_query($sql))
			{
				message_die(GENERAL_ERROR, "Could not query Album config information", "", __LINE__, __FILE__, $sql);
			}
			while( $row = $db->sql_fetchrow($result) )
			{
				$album_config_name = $row['config_name'];
				$album_config_value = $row['config_value'];
				$album_config[$album_config_name] = $album_config_value;
			}
	
	// end fill album_config
	// check if the user is allowed to see personal gallerys	
			$personal_gallery_access = personal_gallery_access(1,0);

			if( $personal_gallery_access['view'] == 0 )
			{
				if (!$userdata['session_logged_in'])
				{
					return $res;
				}
			}
			else
			{	 
				$sql = 'SELECT * FROM ' . ALBUM_CAT_TABLE . ' AS c, ' . ALBUM_TABLE . ' AS p WHERE c.cat_user_id = ' . $view_userdata['user_id'] .' AND p.pic_cat_id = c.cat_id';

				if ( !$result = $db->sql_query($sql) )
				{ 
					message_die(GENERAL_ERROR, 'Could not read album table', '', __LINE__, __FILE__, $sql); 
				} 

				$number_gals = 0;
				$number_gals = ($db->sql_numrows($result));
				$is_gallery = ( $row = $db->sql_fetchrow($result) );
				if ( $is_gallery ) 
				{ 
					$name_gal = $row['cat_title'];
					$temp_url = append_sid("./album.$phpEx?user_id=" . $view_userdata['user_id']);
	   	   			$txt = '<b><a href="' . $temp_url . '" title="' . $number_gals . $lang['gal_pic_in'] . $lang['gallery'] . '">' . $name_gal . '</a></b>'; 
					$txt = $txt . '<br />[ ' . $number_gals . $lang['gal_pic'] . ']';
				    $img = '<a href="' . $temp_url . '"><img src="' . $images['icon_gallery'] . '" alt="' . $number_gals . $lang['gal_pic'] . '" title="' . $number_gals . $lang['gal_pic_in']. $lang['gallery'] . '" border="0" style="filter:alpha(opacity=65)" onMouseOver="this.filters.alpha.opacity=100" onMouseOut="this.filters.alpha.opacity=65"/></a>'; 
					$res = pcp_output_format($field_name, $txt, $img, $map_name);
				}
			}
		
	}
   return $res; 
}
Делаю так:

Код: Выделить всё

function pcp_output_weblog($field_name, $view_userdata, $map_name='')
{
        global $board_config, $phpbb_root_path, $phpEx, $lang, $images, $userdata;
        global $values_list, $tables_linked, $classes_fields, $user_maps, $user_fields;

        $txt = '';
        $img = '';
        $res = '';
		

		if ( $view_userdata['user_id'] != ANONYMOUS ) 
		{
			$sql = 'SELECT * FROM ' . WEBLOGS_TABLE . ' WHERE weblog_id = ' . $view_userdata['user_weblog'];
			if ( !$result = $db->sql_query($sql) )
			{
					message_die(GENERAL_ERROR, 'Could not query blog information', '', __LINE__, __FILE__, $sql);
			}
			$is_weblog = ( $row = $db->sql_fetchrow($result) );
			if ( $is_weblog )
			{
					$temp_url = append_sid("./weblog.$phpEx?w=" . $view_userdata['user_weblog']);
					$img = '<a href="' . $temp_url . '" title="' . $row['weblog_desc'] . '"><img src="' . $images['icon_weblog'] . 'border="0" style="filter:alpha(opacity=65)" onMouseOver="this.filters.alpha.opacity=100" onMouseOut="this.filters.alpha.opacity=65" /></a>';
					$txt = '<a href="' . $temp_url . ' title="' . $row['weblog_desc'] . '">' . $row['weblog_name'] . '</a>';
					$res = pcp_output_format($field_name, $txt, $img, $map_name);
			}
		}
		return $res;
В результате плдавляется вся панель профиля - просто пустая и всё :(
Если коментарю код sql-запроса - панелька выводится, но естественно без данных о дневнике...
Кто-нибудь занимался с PCP, может мне подсказать что я делаю не так?

Добавлено спустя 22 минуты 26 секунд:

Всё!! Сама нашла!
Оказывается я после

Код: Выделить всё

        global $values_list, $tables_linked, $classes_fields, $user_maps, $user_fields; 
Забыла поставить

Код: Выделить всё

        global $db; 
Блондинка, блин.... :oops:
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 20 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

ух ты =) я думал, я один тут в пцп добалял функции =)
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
teg
phpBB 1.4.2
Сообщения: 64
Стаж: 19 лет 7 месяцев
Откуда: С.-Петербург

Сообщение teg »

[R: R@m$e$ :U] писал(а):я один тут в пцп добалял функции
:) Форум мне достался по наследству - там уже стоял PCP - сначала хотела от него избавится - тяжело устанавливать другие моды, особенно те что затрагивают viewtopic.php... А сейчас, немного разобравшись, вижу - хорошая штука! :wink:

Вернуться в «Поддержка модов для phpBB 2.0.x»