Страница 19 из 19

Topic SEO description and keywords

Добавлено: 25 фев 2016, 19:06
АлЁхА
Вопрос решился установкой Index SEO. Всем спасибо. Форум очень полезен!!!

Topic SEO description and keywords

Добавлено: 26 фев 2016, 07:36
DeaDRoMeO
Так этот мод только темы цепляет, на прочих страницах все пусто и будет

Topic SEO description and keywords

Добавлено: 11 фев 2017, 18:37
mela
Подскажите. пожалуйста, как прописать description для файлов http://форум.ru/rules.php и http://форум.ru/rules/ (если такое возможно)?

Topic SEO description and keywords

Добавлено: 11 фев 2017, 19:25
белк
могу посоветовать прописать только так (в шапке, overall_header.html):

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

<meta name="description" content="<!-- IF SCRIPT_NAME == "rules" -->здесь пропишите описание<!-- ENDIF -->" />
если у вас (а так оно скорее всего и есть) уже что-то там прописано - просто добавьте эту строку к тому, что уже есть.

это описание должно выводиться только в теме rules.php

попробуйте.

Topic SEO description and keywords

Добавлено: 11 фев 2017, 21:01
mela
белк, спасибо. Сделала.)

Сообщение добавлено... спустя 45 минут 58 секунд:
белк, сейчас проверила: само описание отображается только в теме rules.php, но на других тег тоже отображается, но только пустой. То есть получается их в коде 2.

Topic SEO description and keywords

Добавлено: 11 фев 2017, 21:11
белк
вы неправильно сделали. я сказал "добавить в строку к тому, что у вас уже есть". то есть не надо прописывать второй <meta...

вот, посмотрите, как на моём сайте отдельно для разных отделов прописано описание:

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

<meta name="description" content="<!-- IF SEO_DESC -->{SEO_DESC}<!-- ENDIF --><!-- IF SCRIPT_NAME == "viewforum" -->{FORUM_SEO_DESC}<!-- ENDIF -->" />
то есть надо добавлять дальше в строчку....

Topic SEO description and keywords

Добавлено: 11 фев 2017, 22:33
mela
Да, невнимательно читала. Спасибо )

Topic SEO description and keywords

Добавлено: 23 ноя 2017, 01:01
madam-ka
Сережа, а что будет в описании, если поле дискрипшина в теме не заполненно? Что выведет поисковик?
И чем отличается заголовок от заголовка для поисковика? Если вы говорите, что тайтлом поисковик увидит стандартный залоговок, то какую функцию играет вторая строячка ориентированная на поисковик? Они не должны дублировать друг друга?

Topic SEO description and keywords

Добавлено: 25 ноя 2017, 14:17
DeaDRoMeO
madam-ka писал(а):если поле дискрипшина в теме не заполненно? Что выведет поисковик?
Ничего, но можно условием выкрутиться + доработка в php коде
madam-ka писал(а):И чем отличается заголовок от заголовка для поисковика?
Заголовок можно сделать кратким для пользователей, а для поисковиков вбить длинное информативное название темы

Topic SEO description and keywords

Добавлено: 10 июн 2018, 09:11
белк
заклинило. хотел вывести на портал описание тем, как в доработках к похожим темам и новым. не получается. где-то туплю...

есть какое-нибудь решение? в сети ничего не нашёл.

Topic SEO description and keywords

Добавлено: 12 июн 2018, 06:50
DeaDRoMeO
А портал какой? Обычно правки вносятся в php файл отвечающий за блок тем на портале, там в запрос к бд добавляется еще вытяжка сео описания, вы как делали?

Topic SEO description and keywords

Добавлено: 12 июн 2018, 10:18
белк
портал Board3 Portal 2.0.2 (у меня портал на трекере стоит, но ведь модули те же самые)

php-файл portal/modules/portal_news.php

прописка

после

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

'TITLE'					=> $fetch_news[$i]['topic_title'],
вставил

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

'SEO_DESC_TOPIC'    => $row['seo_desc'],

шаблон template/portal/modules/news_compact_center.html

прописка

после

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

<a title="" href="{news_row.U_VIEW_COMMENTS}" class="topictitle">{news_row.TITLE}</a>
вставил

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

<!-- IF news_row.SEO_DESC_TOPIC --><br />{news_row.SEO_DESC_TOPIC}<!-- ENDIF -->
вроде правильно... нет? :du_ma_et:

Topic SEO description and keywords

Добавлено: 14 июн 2018, 15:46
DeaDRoMeO
Почти, дайте полный код portal/modules/portal_news.php, скорее всего там же нужно немножко запрос к бд подредактировать, чтоб он нужное поле вытягивал

Topic SEO description and keywords

Добавлено: 14 июн 2018, 23:50
белк
Спасибо. вот код:

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

<?php
/**
*
* @package Board3 Portal v2 - News
* @copyright (c) Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
	exit;
}

/**
* @package News
*/
class portal_news_module
{
	/**
	* Allowed columns: Just sum up your options (Exp: left + right = 10)
	* top		1
	* left		2
	* center	4
	* right		8
	* bottom	16
	*/
	public $columns = 21;

	/**
	* Default modulename
	*/
	public $name = 'LATEST_NEWS';

	/**
	* Default module-image:
	* file must be in "{T_THEME_PATH}/images/portal/"
	*/
	public $image_src = '';

	/**
	* module-language file
	* file must be in "language/{$user->lang}/mods/portal/"
	*/
	public $language = 'portal_news_module';

	public function get_template_center($module_id)
	{
		global $config, $template, $db, $user, $auth, $cache, $phpEx, $phpbb_root_path;

		$news = request_var('news', -1);
		$news = ($news > $config['board3_number_of_news_' . $module_id] -1) ? -1 : $news;
		$user->add_lang('viewforum');
		$start = request_var('np', 0);
		$start = ($start < 0) ? 0 : $start;

		// Fetch news from portal/includes/functions.php with check if "read full" is requested.
		$portal_news_length = ($news < 0) ? $config['board3_news_length_' . $module_id] : 0;
		$fetch_news = phpbb_fetch_posts($module_id, $config['board3_news_forum_' . $module_id], $config['board3_news_permissions_' . $module_id], $config['board3_number_of_news_' . $module_id], $portal_news_length, 0, ($config['board3_show_all_news_' . $module_id]) ? 'news_all' : 'news', $start, $config['board3_news_exclude_' . $module_id]);


		// Any news present? If not terminate it here.
		if (sizeof($fetch_news) == 0)
		{
			$template->assign_block_vars('news_row', array(
				'S_NO_TOPICS'	=> true,
				'S_NOT_LAST'	=> false,
			));
		}
		else
		{
			// Count number of posts for news archive, considering if permission check is dis- or enabled.
			if ($config['board3_news_archive_' . $module_id])
			{
				$permissions = $config['board3_news_permissions_' . $module_id];
				$forum_from = $config['board3_news_forum_' . $module_id];

				$forum_from = (strpos($forum_from, ',') !== false) ? explode(',', $forum_from) : (($forum_from != '') ? array($forum_from) : array());

				$str_where = '';

				if($permissions == true)
				{
					$disallow_access = array_unique(array_keys($auth->acl_getf('!f_read', true)));
				}
				else
				{
					$disallow_access = array();
				}

				if($config['board3_news_exclude_' . $module_id] == true)
				{
					$disallow_access = array_merge($disallow_access, $forum_from);
					$forum_from = array();
				}

				if(sizeof($forum_from))
				{
					$disallow_access = array_diff($forum_from, $disallow_access);
					if(!sizeof($disallow_access))
					{
						return array();
					}

					foreach($disallow_access as $acc_id)
					{
						$acc_id = (int) $acc_id;
						$str_where .= "forum_id = $acc_id OR ";
					}
				}
				else
				{
					foreach($disallow_access as $acc_id)
					{
						$acc_id = (int) $acc_id;
						$str_where .= "forum_id <> $acc_id AND ";
					}
				}

				$str_where = (strlen($str_where) > 0) ? 'AND (' . trim(substr($str_where, 0, -4)) . ')' : '';

				$topic_type = ($config['board3_show_all_news_' . $module_id]) ? '(topic_type <> ' . POST_ANNOUNCE . ') AND (topic_type <> ' . POST_GLOBAL . ')' : 'topic_type = ' . POST_NORMAL;

				$sql = 'SELECT COUNT(topic_id) AS num_topics
					FROM ' . TOPICS_TABLE . '
					WHERE ' . $topic_type . '
						AND topic_approved = 1
						AND topic_moved_id = 0
						' . $str_where;
					$result = $db->sql_query($sql);
					$total_news = (int) $db->sql_fetchfield('num_topics');
					$db->sql_freeresult($result);
			}

			$topic_tracking_info = get_portal_tracking_info($fetch_news);

			if($news < 0)
			// Show the news overview
			{
				$count = $fetch_news['topic_count'];
				for ($i = 0; $i < $count; $i++)
				{
					if(isset($fetch_news[$i]['striped']) && $fetch_news[$i]['striped'] == true)
					{
						$open_bracket = '[ ';
						$close_bracket = ' ]';
						$read_full = $user->lang['READ_FULL'];
					}
					else
					{
						$open_bracket = '';
						$close_bracket = '';
						$read_full = '';
					}
					// unread?
					$forum_id = $fetch_news[$i]['forum_id'];
					$topic_id = $fetch_news[$i]['topic_id'];
					$unread_topic = (isset($topic_tracking_info[$topic_id]) && $fetch_news[$i]['topic_last_post_time'] > $topic_tracking_info[$topic_id]) ? true : false;

					$read_full_url = (isset($_GET['np'])) ? 'np='. $start . '&news=' . $i . '#n' . $i : 'news=' . $i . '#n' . $i;
					$view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . (($fetch_news[$i]['forum_id']) ? $fetch_news[$i]['forum_id'] : $forum_id) . '&t=' . $topic_id);
					if ($config['board3_news_archive_' . $module_id])
					{
						$pagination = generate_portal_pagination(append_sid("{$phpbb_root_path}portal.$phpEx"), $total_news, $config['board3_number_of_news_' . $module_id], $start, ($config['board3_show_all_news_' . $module_id]) ? 'news_all' : 'news');
					}

					$replies = ($auth->acl_get('m_approve', $forum_id)) ? $fetch_news[$i]['topic_replies_real'] : $fetch_news[$i]['topic_replies'];
					$folder_img = $folder_alt = $topic_type = $folder = $folder_new = '';
					switch ($fetch_news[$i]['topic_type'])
					{
						case POST_STICKY:
							$folder = 'sticky_read';
							$folder_new = 'sticky_unread';
						break;
						case POST_ANNOUNCE:
							$folder = 'announce_read';
							$folder_new = 'announce_unread';
						break;
						default:
							$folder = 'topic_read';
							$folder_new = 'topic_unread';
							if ($config['hot_threshold'] && $replies >= $config['hot_threshold'] && $fetch_news[$i]['topic_status'] != ITEM_LOCKED)
							{
								$folder .= '_hot';
								$folder_new .= '_hot';
							}
						break;
					}

					if ($fetch_news[$i]['topic_status'] == ITEM_LOCKED)
					{
						$folder .= '_locked';
						$folder_new .= '_locked';
					}
					if ($fetch_news[$i]['topic_posted'])
					{
						$folder .= '_mine';
						$folder_new .= '_mine';
					}

					$folder_img = ($unread_topic) ? $folder_new : $folder;
					$folder_alt = ($unread_topic) ? 'NEW_POSTS' : (($fetch_news[$i]['topic_status'] == ITEM_LOCKED) ? 'TOPIC_LOCKED' : 'NO_NEW_POSTS');

					// Grab icons
					$icons = $cache->obtain_icons();

					$template->assign_block_vars('news_row', array(
						'ATTACH_ICON_IMG'		=> ($fetch_news[$i]['attachment'] && $config['allow_attachments']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',
						'FORUM_NAME'			=> ($forum_id) ? $fetch_news[$i]['forum_name'] : '',
						'TITLE'					=> $fetch_news[$i]['topic_title'],
						'POSTER'				=> $fetch_news[$i]['username'],
						'POSTER_FULL'			=> $fetch_news[$i]['username_full'],
						'USERNAME_FULL_LAST'	=> $fetch_news[$i]['username_full_last'],
						'U_USER_PROFILE'		=> (($fetch_news[$i]['user_type'] == USER_NORMAL || $fetch_news[$i]['user_type'] == USER_FOUNDER) && $fetch_news[$i]['user_id'] != ANONYMOUS) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $fetch_news[$i]['user_id']) : '',
						'TIME'					=> $fetch_news[$i]['topic_time'],
						'LAST_POST_TIME'		=> $user->format_date($fetch_news[$i]['topic_last_post_time']),
						'TEXT'					=> $fetch_news[$i]['post_text'],
						'REPLIES'				=> $fetch_news[$i]['topic_replies'],
						'TOPIC_VIEWS'			=> $fetch_news[$i]['topic_views'],
						'N_ID'					=> $i,
						'TOPIC_FOLDER_IMG'		=> $user->img($folder_img, $folder_alt),
						'TOPIC_FOLDER_IMG_SRC'  => $user->img($folder_img, $folder_alt, false, '', 'src'),
						'TOPIC_FOLDER_IMG_ALT'  => $user->lang[$folder_alt],
						'TOPIC_ICON_IMG'		=> (!empty($icons[$fetch_news[$i]['icon_id']])) ? $icons[$fetch_news[$i]['icon_id']]['img'] : '',
						'TOPIC_ICON_IMG_WIDTH'	=> (!empty($icons[$fetch_news[$i]['icon_id']])) ? $icons[$fetch_news[$i]['icon_id']]['width'] : '',
						'TOPIC_ICON_IMG_HEIGHT'	=> (!empty($icons[$fetch_news[$i]['icon_id']])) ? $icons[$fetch_news[$i]['icon_id']]['height'] : '',
						'FOLDER_IMG'			=> $user->img('topic_read', 'NO_NEW_POSTS'),
						'U_VIEWFORUM'			=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $fetch_news[$i]['forum_id']),
						'U_LAST_COMMENTS'		=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $fetch_news[$i]['forum_id'] . '&t=' . $fetch_news[$i]['topic_id'] . '&p=' . $fetch_news[$i]['topic_last_post_id'] . '#p' . $fetch_news[$i]['topic_last_post_id']),
						'U_VIEW_COMMENTS'		=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $fetch_news[$i]['forum_id'] . '&t=' . $fetch_news[$i]['topic_id']),
						'U_VIEW_UNREAD'			=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $fetch_news[$i]['forum_id'] . '&t=' . $fetch_news[$i]['topic_id'] . '&view=unread#unread'),
						'U_POST_COMMENT'		=> append_sid("{$phpbb_root_path}posting.$phpEx", 'mode=reply&f=' . $fetch_news[$i]['forum_id'] . '&t=' . $fetch_news[$i]['topic_id']),
						'U_READ_FULL'			=> append_sid("{$phpbb_root_path}portal.$phpEx", $read_full_url),
						'L_READ_FULL'			=> $read_full,
						'OPEN'					=> $open_bracket,
						'CLOSE'					=> $close_bracket,
						'S_NOT_LAST'			=> ($i < sizeof($fetch_news) - 1) ? true : false,
						'S_POLL'				=> $fetch_news[$i]['poll'],
						'S_UNREAD_INFO'			=> $unread_topic,
						'PAGINATION'			=> topic_generate_pagination($fetch_news[$i]['topic_replies'], $view_topic_url),
						'S_HAS_ATTACHMENTS'		=> (!empty($fetch_news[$i]['attachments'])) ? true : false,
					));

					if(!empty($fetch_news[$i]['attachments']))
					{
						foreach ($fetch_news[$i]['attachments'] as $attachment)
						{
							$template->assign_block_vars('news_row.attachment', array(
								'DISPLAY_ATTACHMENT'	=> $attachment)
							);
						}
					}

					if ($config['board3_number_of_news_' . $module_id] <> 0 && $config['board3_news_archive_' . $module_id])
					{
						$template->assign_vars(array(
							'NP_PAGINATION'		=> $pagination,
							'TOTAL_NEWS'		=> ($total_news == 1) ? $user->lang['VIEW_FORUM_TOPIC'] : sprintf($user->lang['VIEW_FORUM_TOPICS'], $total_news),
							'NP_PAGE_NUMBER'	=> on_page($total_news, $config['board3_number_of_news_' . $module_id], $start))
						);
					}
				}
			}
			else
			// Show "read full" page
			{
				$i = $news;
				$forum_id = $fetch_news[$i]['forum_id'];
				$topic_id = $fetch_news[$i]['topic_id'];
				$unread_topic = (isset($topic_tracking_info[$topic_id]) && $fetch_news[$i]['topic_last_post_time'] > $topic_tracking_info[$topic_id]) ? true : false;
				$open_bracket = '[ ';
				$close_bracket = ' ]';
				$read_full = $user->lang['BACK'];

				$read_full_url = (isset($_GET['np'])) ? append_sid("{$phpbb_root_path}portal.$phpEx", "np=$start#n$i") : append_sid("{$phpbb_root_path}portal.$phpEx#n$i");
				$view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . (($fetch_news[$i]['forum_id']) ? $fetch_news[$i]['forum_id'] : $forum_id) . '&t=' . $topic_id);
				if ($config['board3_news_archive_' . $module_id])
				{
					$pagination = generate_portal_pagination(append_sid("{$phpbb_root_path}portal.$phpEx"), $total_news, $config['board3_number_of_news_' . $module_id], $start, ($config['board3_show_all_news_' . $module_id]) ? 'news_all' : 'news');
				}

				$template->assign_block_vars('news_row', array(
					'ATTACH_ICON_IMG'	=> ($fetch_news[$i]['attachment'] && $config['allow_attachments']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',
					'FORUM_NAME'		=> ($forum_id) ? $fetch_news[$i]['forum_name'] : '',
					'TITLE'				=> $fetch_news[$i]['topic_title'],
					'POSTER'			=> $fetch_news[$i]['username'],
					'POSTER_FULL'		=> $fetch_news[$i]['username_full'],
					'TIME'				=> $fetch_news[$i]['topic_time'],
					'TEXT'				=> $fetch_news[$i]['post_text'],
					'REPLIES'			=> $fetch_news[$i]['topic_replies'],
					'TOPIC_VIEWS'		=> $fetch_news[$i]['topic_views'],
					'N_ID'				=> $i,
					'U_VIEWFORUM'		=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $fetch_news[$i]['forum_id']),
					'U_LAST_COMMENTS'	=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'p=' . $fetch_news[$i]['topic_last_post_id'] . '#p' . $fetch_news[$i]['topic_last_post_id']),
					'U_VIEW_COMMENTS'	=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $fetch_news[$i]['forum_id'] . '&t=' . $fetch_news[$i]['topic_id']),
					'U_POST_COMMENT'	=> append_sid("{$phpbb_root_path}posting.$phpEx", 'mode=reply&f=' . $fetch_news[$i]['forum_id'] . '&t=' . $fetch_news[$i]['topic_id']),
					'S_POLL'			=> $fetch_news[$i]['poll'],
					'S_UNREAD_INFO'		=> $unread_topic,
					'U_READ_FULL'		=> $read_full_url,
					'L_READ_FULL'		=> $read_full,
					'OPEN'				=> $open_bracket,
					'CLOSE'				=> $close_bracket,
					'PAGINATION'		=> topic_generate_pagination($fetch_news[$i]['topic_replies'], $view_topic_url),
					'S_HAS_ATTACHMENTS'	=> (!empty($fetch_news[$i]['attachments'])) ? true : false,

				));

				if(!empty($fetch_news[$i]['attachments']))
				{
					foreach ($fetch_news[$i]['attachments'] as $attachment)
					{
						$template->assign_block_vars('news_row.attachment', array(
							'DISPLAY_ATTACHMENT'	=> $attachment)
						);
					}
				}

				if ($config['board3_number_of_news_' . $module_id] <> 0 && $config['board3_news_archive_' . $module_id])
				{
					$template->assign_vars(array(
						'NP_PAGINATION'		=> $pagination,
						'TOTAL_NEWS'		=> ($total_news == 1) ? $user->lang['VIEW_FORUM_TOPIC'] : sprintf($user->lang['VIEW_FORUM_TOPICS'], $total_news),
						'NP_PAGE_NUMBER'	=> on_page($total_news, $config['board3_number_of_news_' . $module_id], $start))
					);
				}
			}
		}

		$topic_icons = false;
		if(!empty($fetch_news['topic_icons']))
		{
			$topic_icons = true;
		}

		$template->assign_vars(array(
			'NEWEST_POST_IMG'			=> $user->img('icon_topic_newest', 'VIEW_NEWEST_POST'),
			'READ_POST_IMG'				=> $user->img('icon_topic_latest', 'VIEW_LATEST_POST'),
			'GOTO_PAGE_IMG'				=> $user->img('icon_post_target', 'GOTO_PAGE'),
			'S_NEWEST_OR_FIRST'			=> ($config['board3_news_show_last_' . $module_id]) ? $user->lang['JUMP_NEWEST'] : $user->lang['JUMP_FIRST'],
			'POSTED_BY_TEXT'			=> ($config['board3_news_show_last_' . $module_id]) ? $user->lang['LAST_POST'] : $user->lang['POSTED'],
			'S_DISPLAY_NEWS_RVS'		=> ($config['board3_show_news_replies_views_' . $module_id]) ? true : false,
			'S_TOPIC_ICONS'				=> $topic_icons,

			'NMODULE_ID' => $module_id,
			'B3P_IN_AJAX' => true,
			'S_AJAX'				=> defined('B3P_IN_AJAX') ? true : false,
			'NU_ACTION'				=> str_replace('&', '&',  append_sid("{$phpbb_root_path}portal.{$phpEx}")),

		));

		if($config['board3_news_style_' . $module_id])
		{
			return 'news_compact_center.html';
		}
		else
		{
			return 'news_center.html';
		}
	}

	public function get_template_acp($module_id)
	{
		return array(
			'title'	=> 'ACP_PORTAL_NEWS_SETTINGS',
			'vars'	=> array(
				'legend1'							=> 'ACP_PORTAL_NEWS_SETTINGS',
				'board3_news_style_' . $module_id					=> array('lang' => 'PORTAL_NEWS_STYLE',	'validate' => 'bool',		'type' => 'radio:yes_no',	'explain' => true),
				'board3_show_all_news_' . $module_id				=> array('lang' => 'PORTAL_SHOW_ALL_NEWS',	'validate' => 'bool',		'type' => 'radio:yes_no',	'explain' => true),
				'board3_number_of_news_' . $module_id				=> array('lang' => 'PORTAL_NUMBER_OF_NEWS',	'validate' => 'int',		'type' => 'text:3:3',		 'explain' => true),
				'board3_news_length_' . $module_id				=> array('lang' => 'PORTAL_NEWS_LENGTH',	'validate' => 'int',		'type' => 'text:3:3',		 'explain' => true),
				'board3_news_forum_' . $module_id					=> array('lang' => 'PORTAL_NEWS_FORUM',		'validate' => 'string',		'type' => 'custom',	 		'explain' => true,	'method' => 'select_forums', 'submit' => 'store_selected_forums'),
				'board3_news_exclude_' . $module_id				=> array('lang' => 'PORTAL_NEWS_EXCLUDE',	'validate' => 'bool',		'type' => 'radio:yes_no',	'explain' => true),
				'board3_news_show_last_' . $module_id             => array('lang' => 'PORTAL_NEWS_SHOW_LAST',		'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
				'board3_news_archive_' . $module_id               => array('lang' => 'PORTAL_NEWS_ARCHIVE',		'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
				'board3_news_permissions_' . $module_id			=> array('lang' => 'PORTAL_NEWS_PERMISSIONS',	'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
				'board3_show_news_replies_views_' . $module_id	=> array('lang' => 'PORTAL_SHOW_REPLIES_VIEWS',	'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
			)
		);
	}

	/**
	* API functions
	*/
	public function install($module_id)
	{
		set_config('board3_news_length_' . $module_id, 250);
		set_config('board3_news_forum_' . $module_id, '');
		set_config('board3_news_permissions_' . $module_id, 1);
		set_config('board3_number_of_news_' . $module_id, 5);
		set_config('board3_show_all_news_' . $module_id, 1);
		set_config('board3_news_exclude_' . $module_id, 0);
		set_config('board3_news_archive_' . $module_id, 1);
		set_config('board3_news_show_last_' . $module_id, 0);
		set_config('board3_show_news_replies_views_' . $module_id, 1);
		set_config('board3_news_style_' . $module_id, 1);
		return true;
	}

	public function uninstall($module_id)
	{
		global $db;

		$del_config = array(
			'board3_news_length_' . $module_id,
			'board3_news_forum_' . $module_id,
			'board3_news_permissions_' . $module_id,
			'board3_number_of_news_' . $module_id,
			'board3_show_all_news_' . $module_id,
			'board3_news_exclude_' . $module_id,
			'board3_news_archive_' . $module_id,
			'board3_news_show_last_' . $module_id,
			'board3_show_news_replies_views_' . $module_id,
			'board3_news_style_' . $module_id,
		);
		$sql = 'DELETE FROM ' . CONFIG_TABLE . '
			WHERE ' . $db->sql_in_set('config_name', $del_config);
		return $db->sql_query($sql);
	}

	// Create forum select box
	public function select_forums($value, $key, $module_id)
	{
		global $user, $config;

		$forum_list = make_forum_select(false, false, true, true, true, false, true);

		$selected = array();
		if(isset($config[$key]) && strlen($config[$key]) > 0)
		{
			$selected = explode(',', $config[$key]);
		}
		// Build forum options
		$s_forum_options = '<select id="' . $key . '" name="' . $key . '[]" multiple="multiple">';
		foreach ($forum_list as $f_id => $f_row)
		{
			$s_forum_options .= '<option value="' . $f_id . '"' . ((in_array($f_id, $selected)) ? ' selected="selected"' : '') . (($f_row['disabled']) ? ' disabled="disabled" class="disabled-option"' : '') . '>' . $f_row['padding'] . $f_row['forum_name'] . '</option>';
		}
		$s_forum_options .= '</select>';

		return $s_forum_options;

	}

	// Store selected forums
	public function store_selected_forums($key, $module_id)
	{
		global $db, $cache;

		// Get selected extensions
		$values = request_var($key, array(0 => ''));

		$news = implode(',', $values);

		set_config($key, $news);

	}
}

Topic SEO description and keywords

Добавлено: 15 июн 2018, 19:33
DeaDRoMeO
А если вместо $row['seo_desc'] прописать $fetch_news[$i]['seo_desc'] ?? Видимо идет выборка из массива, поэтому ваш вариант не работает

Topic SEO description and keywords

Добавлено: 15 июн 2018, 20:08
белк
хорошая идея... но не выводит. :du_ma_et:

печально.

Topic SEO description and keywords

Добавлено: 18 июн 2018, 08:11
DeaDRoMeO
А вы дважды делали правку в php файле? Там 2 одинаковых места. И дайте ссылку на портал, на сам мод, гляну остальные файлы

Topic SEO description and keywords

Добавлено: 18 июн 2018, 12:51
белк
Спасибо. да, добавлял в оба блока. Ссылка на портал (последние новости): портал

portal/modules/

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

<?php
/**
*
* @package Board3 Portal v2 - News
* @copyright (c) Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
	exit;
}

/**
* @package News
*/
class portal_news_module
{
	/**
	* Allowed columns: Just sum up your options (Exp: left + right = 10)
	* top		1
	* left		2
	* center	4
	* right		8
	* bottom	16
	*/
	public $columns = 21;

	/**
	* Default modulename
	*/
	public $name = 'LATEST_NEWS';

	/**
	* Default module-image:
	* file must be in "{T_THEME_PATH}/images/portal/"
	*/
	public $image_src = '';

	/**
	* module-language file
	* file must be in "language/{$user->lang}/mods/portal/"
	*/
	public $language = 'portal_news_module';

	public function get_template_center($module_id)
	{
		global $config, $template, $db, $user, $auth, $cache, $phpEx, $phpbb_root_path;

		$news = request_var('news', -1);
		$news = ($news > $config['board3_number_of_news_' . $module_id] -1) ? -1 : $news;
		$user->add_lang('viewforum');
		$start = request_var('np', 0);
		$start = ($start < 0) ? 0 : $start;

		// Fetch news from portal/includes/functions.php with check if "read full" is requested.
		$portal_news_length = ($news < 0) ? $config['board3_news_length_' . $module_id] : 0;
		$fetch_news = phpbb_fetch_posts($module_id, $config['board3_news_forum_' . $module_id], $config['board3_news_permissions_' . $module_id], $config['board3_number_of_news_' . $module_id], $portal_news_length, 0, ($config['board3_show_all_news_' . $module_id]) ? 'news_all' : 'news', $start, $config['board3_news_exclude_' . $module_id]);


		// Any news present? If not terminate it here.
		if (sizeof($fetch_news) == 0)
		{
			$template->assign_block_vars('news_row', array(
				'S_NO_TOPICS'	=> true,
				'S_NOT_LAST'	=> false,
			));
		}
		else
		{
			// Count number of posts for news archive, considering if permission check is dis- or enabled.
			if ($config['board3_news_archive_' . $module_id])
			{
				$permissions = $config['board3_news_permissions_' . $module_id];
				$forum_from = $config['board3_news_forum_' . $module_id];

				$forum_from = (strpos($forum_from, ',') !== false) ? explode(',', $forum_from) : (($forum_from != '') ? array($forum_from) : array());

				$str_where = '';

				if($permissions == true)
				{
					$disallow_access = array_unique(array_keys($auth->acl_getf('!f_read', true)));
				}
				else
				{
					$disallow_access = array();
				}

				if($config['board3_news_exclude_' . $module_id] == true)
				{
					$disallow_access = array_merge($disallow_access, $forum_from);
					$forum_from = array();
				}

				if(sizeof($forum_from))
				{
					$disallow_access = array_diff($forum_from, $disallow_access);
					if(!sizeof($disallow_access))
					{
						return array();
					}

					foreach($disallow_access as $acc_id)
					{
						$acc_id = (int) $acc_id;
						$str_where .= "forum_id = $acc_id OR ";
					}
				}
				else
				{
					foreach($disallow_access as $acc_id)
					{
						$acc_id = (int) $acc_id;
						$str_where .= "forum_id <> $acc_id AND ";
					}
				}

				$str_where = (strlen($str_where) > 0) ? 'AND (' . trim(substr($str_where, 0, -4)) . ')' : '';

				$topic_type = ($config['board3_show_all_news_' . $module_id]) ? '(topic_type <> ' . POST_ANNOUNCE . ') AND (topic_type <> ' . POST_GLOBAL . ')' : 'topic_type = ' . POST_NORMAL;

				$sql = 'SELECT COUNT(topic_id) AS num_topics
					FROM ' . TOPICS_TABLE . '
					WHERE ' . $topic_type . '
						AND topic_approved = 1
						AND topic_moved_id = 0
						' . $str_where;
					$result = $db->sql_query($sql);
					$total_news = (int) $db->sql_fetchfield('num_topics');
					$db->sql_freeresult($result);
			}

			$topic_tracking_info = get_portal_tracking_info($fetch_news);

			if($news < 0)
			// Show the news overview
			{
				$count = $fetch_news['topic_count'];
				for ($i = 0; $i < $count; $i++)
				{
					if(isset($fetch_news[$i]['striped']) && $fetch_news[$i]['striped'] == true)
					{
						$open_bracket = '[ ';
						$close_bracket = ' ]';
						$read_full = $user->lang['READ_FULL'];
					}
					else
					{
						$open_bracket = '';
						$close_bracket = '';
						$read_full = '';
					}
					// unread?
					$forum_id = $fetch_news[$i]['forum_id'];
					$topic_id = $fetch_news[$i]['topic_id'];
					$unread_topic = (isset($topic_tracking_info[$topic_id]) && $fetch_news[$i]['topic_last_post_time'] > $topic_tracking_info[$topic_id]) ? true : false;

					$read_full_url = (isset($_GET['np'])) ? 'np='. $start . '&news=' . $i . '#n' . $i : 'news=' . $i . '#n' . $i;
					$view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . (($fetch_news[$i]['forum_id']) ? $fetch_news[$i]['forum_id'] : $forum_id) . '&t=' . $topic_id);
					if ($config['board3_news_archive_' . $module_id])
					{
						$pagination = generate_portal_pagination(append_sid("{$phpbb_root_path}portal.$phpEx"), $total_news, $config['board3_number_of_news_' . $module_id], $start, ($config['board3_show_all_news_' . $module_id]) ? 'news_all' : 'news');
					}

					$replies = ($auth->acl_get('m_approve', $forum_id)) ? $fetch_news[$i]['topic_replies_real'] : $fetch_news[$i]['topic_replies'];
					$folder_img = $folder_alt = $topic_type = $folder = $folder_new = '';
					switch ($fetch_news[$i]['topic_type'])
					{
						case POST_STICKY:
							$folder = 'sticky_read';
							$folder_new = 'sticky_unread';
						break;
						case POST_ANNOUNCE:
							$folder = 'announce_read';
							$folder_new = 'announce_unread';
						break;
						default:
							$folder = 'topic_read';
							$folder_new = 'topic_unread';
							if ($config['hot_threshold'] && $replies >= $config['hot_threshold'] && $fetch_news[$i]['topic_status'] != ITEM_LOCKED)
							{
								$folder .= '_hot';
								$folder_new .= '_hot';
							}
						break;
					}

					if ($fetch_news[$i]['topic_status'] == ITEM_LOCKED)
					{
						$folder .= '_locked';
						$folder_new .= '_locked';
					}
					if ($fetch_news[$i]['topic_posted'])
					{
						$folder .= '_mine';
						$folder_new .= '_mine';
					}

					$folder_img = ($unread_topic) ? $folder_new : $folder;
					$folder_alt = ($unread_topic) ? 'NEW_POSTS' : (($fetch_news[$i]['topic_status'] == ITEM_LOCKED) ? 'TOPIC_LOCKED' : 'NO_NEW_POSTS');

					// Grab icons
					$icons = $cache->obtain_icons();

					$template->assign_block_vars('news_row', array(
						'ATTACH_ICON_IMG'		=> ($fetch_news[$i]['attachment'] && $config['allow_attachments']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',
						'FORUM_NAME'			=> ($forum_id) ? $fetch_news[$i]['forum_name'] : '',
						'TITLE'					=> $fetch_news[$i]['topic_title'],
                                                'SEO_DESC_TOPIC'    => $fetch_news[$i]['seo_desc'],
						'POSTER'				=> $fetch_news[$i]['username'],
						'POSTER_FULL'			=> $fetch_news[$i]['username_full'],
						'USERNAME_FULL_LAST'	=> $fetch_news[$i]['username_full_last'],
						'U_USER_PROFILE'		=> (($fetch_news[$i]['user_type'] == USER_NORMAL || $fetch_news[$i]['user_type'] == USER_FOUNDER) && $fetch_news[$i]['user_id'] != ANONYMOUS) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $fetch_news[$i]['user_id']) : '',
						'TIME'					=> $fetch_news[$i]['topic_time'],
						'LAST_POST_TIME'		=> $user->format_date($fetch_news[$i]['topic_last_post_time']),
						'TEXT'					=> $fetch_news[$i]['post_text'],
						'REPLIES'				=> $fetch_news[$i]['topic_replies'],
						'TOPIC_VIEWS'			=> $fetch_news[$i]['topic_views'],
						'N_ID'					=> $i,
						'TOPIC_FOLDER_IMG'		=> $user->img($folder_img, $folder_alt),
						'TOPIC_FOLDER_IMG_SRC'  => $user->img($folder_img, $folder_alt, false, '', 'src'),
						'TOPIC_FOLDER_IMG_ALT'  => $user->lang[$folder_alt],
						'TOPIC_ICON_IMG'		=> (!empty($icons[$fetch_news[$i]['icon_id']])) ? $icons[$fetch_news[$i]['icon_id']]['img'] : '',
						'TOPIC_ICON_IMG_WIDTH'	=> (!empty($icons[$fetch_news[$i]['icon_id']])) ? $icons[$fetch_news[$i]['icon_id']]['width'] : '',
						'TOPIC_ICON_IMG_HEIGHT'	=> (!empty($icons[$fetch_news[$i]['icon_id']])) ? $icons[$fetch_news[$i]['icon_id']]['height'] : '',
						'FOLDER_IMG'			=> $user->img('topic_read', 'NO_NEW_POSTS'),
						'U_VIEWFORUM'			=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $fetch_news[$i]['forum_id']),
						'U_LAST_COMMENTS'		=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $fetch_news[$i]['forum_id'] . '&t=' . $fetch_news[$i]['topic_id'] . '&p=' . $fetch_news[$i]['topic_last_post_id'] . '#p' . $fetch_news[$i]['topic_last_post_id']),
						'U_VIEW_COMMENTS'		=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $fetch_news[$i]['forum_id'] . '&t=' . $fetch_news[$i]['topic_id']),
						'U_VIEW_UNREAD'			=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $fetch_news[$i]['forum_id'] . '&t=' . $fetch_news[$i]['topic_id'] . '&view=unread#unread'),
						'U_POST_COMMENT'		=> append_sid("{$phpbb_root_path}posting.$phpEx", 'mode=reply&f=' . $fetch_news[$i]['forum_id'] . '&t=' . $fetch_news[$i]['topic_id']),
						'U_READ_FULL'			=> append_sid("{$phpbb_root_path}portal.$phpEx", $read_full_url),
						'L_READ_FULL'			=> $read_full,
						'OPEN'					=> $open_bracket,
						'CLOSE'					=> $close_bracket,
						'S_NOT_LAST'			=> ($i < sizeof($fetch_news) - 1) ? true : false,
						'S_POLL'				=> $fetch_news[$i]['poll'],
						'S_UNREAD_INFO'			=> $unread_topic,
						'PAGINATION'			=> topic_generate_pagination($fetch_news[$i]['topic_replies'], $view_topic_url),
						'S_HAS_ATTACHMENTS'		=> (!empty($fetch_news[$i]['attachments'])) ? true : false,
					));

					if(!empty($fetch_news[$i]['attachments']))
					{
						foreach ($fetch_news[$i]['attachments'] as $attachment)
						{
							$template->assign_block_vars('news_row.attachment', array(
								'DISPLAY_ATTACHMENT'	=> $attachment)
							);
						}
					}

					if ($config['board3_number_of_news_' . $module_id] <> 0 && $config['board3_news_archive_' . $module_id])
					{
						$template->assign_vars(array(
							'NP_PAGINATION'		=> $pagination,
							'TOTAL_NEWS'		=> ($total_news == 1) ? $user->lang['VIEW_FORUM_TOPIC'] : sprintf($user->lang['VIEW_FORUM_TOPICS'], $total_news),
							'NP_PAGE_NUMBER'	=> on_page($total_news, $config['board3_number_of_news_' . $module_id], $start))
						);
					}
				}
			}
			else
			// Show "read full" page
			{
				$i = $news;
				$forum_id = $fetch_news[$i]['forum_id'];
				$topic_id = $fetch_news[$i]['topic_id'];
				$unread_topic = (isset($topic_tracking_info[$topic_id]) && $fetch_news[$i]['topic_last_post_time'] > $topic_tracking_info[$topic_id]) ? true : false;
				$open_bracket = '[ ';
				$close_bracket = ' ]';
				$read_full = $user->lang['BACK'];

				$read_full_url = (isset($_GET['np'])) ? append_sid("{$phpbb_root_path}portal.$phpEx", "np=$start#n$i") : append_sid("{$phpbb_root_path}portal.$phpEx#n$i");
				$view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . (($fetch_news[$i]['forum_id']) ? $fetch_news[$i]['forum_id'] : $forum_id) . '&t=' . $topic_id);
				if ($config['board3_news_archive_' . $module_id])
				{
					$pagination = generate_portal_pagination(append_sid("{$phpbb_root_path}portal.$phpEx"), $total_news, $config['board3_number_of_news_' . $module_id], $start, ($config['board3_show_all_news_' . $module_id]) ? 'news_all' : 'news');
				}

				$template->assign_block_vars('news_row', array(
					'ATTACH_ICON_IMG'	=> ($fetch_news[$i]['attachment'] && $config['allow_attachments']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',
					'FORUM_NAME'		=> ($forum_id) ? $fetch_news[$i]['forum_name'] : '',
					'TITLE'				=> $fetch_news[$i]['topic_title'],
                                        'SEO_DESC_TOPIC'    => $fetch_news[$i]['seo_desc'], 
					'POSTER'			=> $fetch_news[$i]['username'],
					'POSTER_FULL'		=> $fetch_news[$i]['username_full'],
					'TIME'				=> $fetch_news[$i]['topic_time'],
					'TEXT'				=> $fetch_news[$i]['post_text'],
					'REPLIES'			=> $fetch_news[$i]['topic_replies'],
					'TOPIC_VIEWS'		=> $fetch_news[$i]['topic_views'],
					'N_ID'				=> $i,
					'U_VIEWFORUM'		=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $fetch_news[$i]['forum_id']),
					'U_LAST_COMMENTS'	=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'p=' . $fetch_news[$i]['topic_last_post_id'] . '#p' . $fetch_news[$i]['topic_last_post_id']),
					'U_VIEW_COMMENTS'	=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $fetch_news[$i]['forum_id'] . '&t=' . $fetch_news[$i]['topic_id']),
					'U_POST_COMMENT'	=> append_sid("{$phpbb_root_path}posting.$phpEx", 'mode=reply&f=' . $fetch_news[$i]['forum_id'] . '&t=' . $fetch_news[$i]['topic_id']),
					'S_POLL'			=> $fetch_news[$i]['poll'],
					'S_UNREAD_INFO'		=> $unread_topic,
					'U_READ_FULL'		=> $read_full_url,
					'L_READ_FULL'		=> $read_full,
					'OPEN'				=> $open_bracket,
					'CLOSE'				=> $close_bracket,
					'PAGINATION'		=> topic_generate_pagination($fetch_news[$i]['topic_replies'], $view_topic_url),
					'S_HAS_ATTACHMENTS'	=> (!empty($fetch_news[$i]['attachments'])) ? true : false,

				));

				if(!empty($fetch_news[$i]['attachments']))
				{
					foreach ($fetch_news[$i]['attachments'] as $attachment)
					{
						$template->assign_block_vars('news_row.attachment', array(
							'DISPLAY_ATTACHMENT'	=> $attachment)
						);
					}
				}

				if ($config['board3_number_of_news_' . $module_id] <> 0 && $config['board3_news_archive_' . $module_id])
				{
					$template->assign_vars(array(
						'NP_PAGINATION'		=> $pagination,
						'TOTAL_NEWS'		=> ($total_news == 1) ? $user->lang['VIEW_FORUM_TOPIC'] : sprintf($user->lang['VIEW_FORUM_TOPICS'], $total_news),
						'NP_PAGE_NUMBER'	=> on_page($total_news, $config['board3_number_of_news_' . $module_id], $start))
					);
				}
			}
		}

		$topic_icons = false;
		if(!empty($fetch_news['topic_icons']))
		{
			$topic_icons = true;
		}

		$template->assign_vars(array(
			'NEWEST_POST_IMG'			=> $user->img('icon_topic_newest', 'VIEW_NEWEST_POST'),
			'READ_POST_IMG'				=> $user->img('icon_topic_latest', 'VIEW_LATEST_POST'),
			'GOTO_PAGE_IMG'				=> $user->img('icon_post_target', 'GOTO_PAGE'),
			'S_NEWEST_OR_FIRST'			=> ($config['board3_news_show_last_' . $module_id]) ? $user->lang['JUMP_NEWEST'] : $user->lang['JUMP_FIRST'],
			'POSTED_BY_TEXT'			=> ($config['board3_news_show_last_' . $module_id]) ? $user->lang['LAST_POST'] : $user->lang['POSTED'],
			'S_DISPLAY_NEWS_RVS'		=> ($config['board3_show_news_replies_views_' . $module_id]) ? true : false,
			'S_TOPIC_ICONS'				=> $topic_icons,

			'NMODULE_ID' => $module_id,
			'B3P_IN_AJAX' => true,
			'S_AJAX'				=> defined('B3P_IN_AJAX') ? true : false,
			'NU_ACTION'				=> str_replace('&', '&',  append_sid("{$phpbb_root_path}portal.{$phpEx}")),

		));

		if($config['board3_news_style_' . $module_id])
		{
			return 'news_compact_center.html';
		}
		else
		{
			return 'news_center.html';
		}
	}

	public function get_template_acp($module_id)
	{
		return array(
			'title'	=> 'ACP_PORTAL_NEWS_SETTINGS',
			'vars'	=> array(
				'legend1'							=> 'ACP_PORTAL_NEWS_SETTINGS',
				'board3_news_style_' . $module_id					=> array('lang' => 'PORTAL_NEWS_STYLE',	'validate' => 'bool',		'type' => 'radio:yes_no',	'explain' => true),
				'board3_show_all_news_' . $module_id				=> array('lang' => 'PORTAL_SHOW_ALL_NEWS',	'validate' => 'bool',		'type' => 'radio:yes_no',	'explain' => true),
				'board3_number_of_news_' . $module_id				=> array('lang' => 'PORTAL_NUMBER_OF_NEWS',	'validate' => 'int',		'type' => 'text:3:3',		 'explain' => true),
				'board3_news_length_' . $module_id				=> array('lang' => 'PORTAL_NEWS_LENGTH',	'validate' => 'int',		'type' => 'text:3:3',		 'explain' => true),
				'board3_news_forum_' . $module_id					=> array('lang' => 'PORTAL_NEWS_FORUM',		'validate' => 'string',		'type' => 'custom',	 		'explain' => true,	'method' => 'select_forums', 'submit' => 'store_selected_forums'),
				'board3_news_exclude_' . $module_id				=> array('lang' => 'PORTAL_NEWS_EXCLUDE',	'validate' => 'bool',		'type' => 'radio:yes_no',	'explain' => true),
				'board3_news_show_last_' . $module_id             => array('lang' => 'PORTAL_NEWS_SHOW_LAST',		'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
				'board3_news_archive_' . $module_id               => array('lang' => 'PORTAL_NEWS_ARCHIVE',		'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
				'board3_news_permissions_' . $module_id			=> array('lang' => 'PORTAL_NEWS_PERMISSIONS',	'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
				'board3_show_news_replies_views_' . $module_id	=> array('lang' => 'PORTAL_SHOW_REPLIES_VIEWS',	'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
			)
		);
	}

	/**
	* API functions
	*/
	public function install($module_id)
	{
		set_config('board3_news_length_' . $module_id, 250);
		set_config('board3_news_forum_' . $module_id, '');
		set_config('board3_news_permissions_' . $module_id, 1);
		set_config('board3_number_of_news_' . $module_id, 5);
		set_config('board3_show_all_news_' . $module_id, 1);
		set_config('board3_news_exclude_' . $module_id, 0);
		set_config('board3_news_archive_' . $module_id, 1);
		set_config('board3_news_show_last_' . $module_id, 0);
		set_config('board3_show_news_replies_views_' . $module_id, 1);
		set_config('board3_news_style_' . $module_id, 1);
		return true;
	}

	public function uninstall($module_id)
	{
		global $db;

		$del_config = array(
			'board3_news_length_' . $module_id,
			'board3_news_forum_' . $module_id,
			'board3_news_permissions_' . $module_id,
			'board3_number_of_news_' . $module_id,
			'board3_show_all_news_' . $module_id,
			'board3_news_exclude_' . $module_id,
			'board3_news_archive_' . $module_id,
			'board3_news_show_last_' . $module_id,
			'board3_show_news_replies_views_' . $module_id,
			'board3_news_style_' . $module_id,
		);
		$sql = 'DELETE FROM ' . CONFIG_TABLE . '
			WHERE ' . $db->sql_in_set('config_name', $del_config);
		return $db->sql_query($sql);
	}

	// Create forum select box
	public function select_forums($value, $key, $module_id)
	{
		global $user, $config;

		$forum_list = make_forum_select(false, false, true, true, true, false, true);

		$selected = array();
		if(isset($config[$key]) && strlen($config[$key]) > 0)
		{
			$selected = explode(',', $config[$key]);
		}
		// Build forum options
		$s_forum_options = '<select id="' . $key . '" name="' . $key . '[]" multiple="multiple">';
		foreach ($forum_list as $f_id => $f_row)
		{
			$s_forum_options .= '<option value="' . $f_id . '"' . ((in_array($f_id, $selected)) ? ' selected="selected"' : '') . (($f_row['disabled']) ? ' disabled="disabled" class="disabled-option"' : '') . '>' . $f_row['padding'] . $f_row['forum_name'] . '</option>';
		}
		$s_forum_options .= '</select>';

		return $s_forum_options;

	}

	// Store selected forums
	public function store_selected_forums($key, $module_id)
	{
		global $db, $cache;

		// Get selected extensions
		$values = request_var($key, array(0 => ''));

		$news = implode(',', $values);

		set_config($key, $news);

	}
}
template/portal/modules/

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

<script type="text/javascript">
// <![CDATA[
jblockgets(function($) {
	<!-- IF S_AJAX -->$.getScript('{TRACKER_ADDIT_JS}');<!-- ENDIF -->

	var noptions = {
		id      : '{NMODULE_ID}',
		action   : '{NU_ACTION}',
	};
	$('#generate_news_pagination-{NMODULE_ID}').blg_generate_news_pagination(noptions);

	<!-- IF S_AJAX -->window.location='#n';<!-- ENDIF -->
});
// ]]>
</script>

<div id="pagecontent">
<!-- BEGIN news_row -->
<!-- IF news_row.S_FIRST_ROW -->
<!--{$C_BLOCK_H_L}<!-- IF not S_AJAX -->{$TITLE}<!-- ENDIF --> <a name="n"></a>{$C_BLOCK_H_R}-->
<!-- IF not S_AJAX --><div id="generate_news_pagination-{NMODULE_ID}"><!-- ENDIF -->
<table class="tablebg" cellspacing="1" width="100%">
	<!-- IF not news_row.S_NO_TOPICS  -->
		<tr class="nav">
			<!-- IF S_TOPIC_ICONS -->
				<td class="cat" align="center" colspan="3">&nbsp;Последние новости<!--{L_TOPICS}-->&nbsp;</td>
			<!-- ELSE -->
				<td class="cat" align="center" colspan="2">&nbsp;Последние новости<!--{L_TOPICS}-->&nbsp;</td>
			<!-- ENDIF -->
			<!-- IF S_DISPLAY_NEWS_RVS -->
			<td class="cat" align="center">&nbsp;{L_REPLIES}&nbsp;</td>
			<td class="cat" align="center">&nbsp;{L_VIEWS}&nbsp;</td>
			<!-- ENDIF -->
			<td class="cat" align="center">&nbsp;{L_LAST_POST}&nbsp;</td>
		</tr>
	<!-- ENDIF -->
<!-- ENDIF -->
	<!-- IF news_row.S_NO_TOPICS  -->
	<tr class="row1">
		<td align="center">
			<span class="gensmall"><strong>{L_NO_NEWS}</strong></span>
		</td>
	</tr>
	<!-- ELSE -->
			<tr>
				<td class="row1" width="0" align="center"><!--{news_row.TOPIC_FOLDER_IMG}--></td>
					<!-- IF S_TOPIC_ICONS --><td class="row1" width="25" align="center"><!-- IF news_row.TOPIC_ICON_IMG --><img src="{T_ICONS_PATH}{news_row.TOPIC_ICON_IMG}" width="{news_row.TOPIC_ICON_IMG_WIDTH}" height="{news_row.TOPIC_ICON_IMG_HEIGHT}" alt="" title="" /><!-- ENDIF --></td><!-- ENDIF -->
				<td class="row1">
				<!-- IF news_row.PAGINATION --><span style="float: right; font-size:0.9em;"> [ {GOTO_PAGE_IMG}{L_GOTO_PAGE}: {news_row.PAGINATION} ] </span><!-- ENDIF -->
					<!--{news_row.ATTACH_ICON_IMG}--> <!-- IF news_row.S_POLL --> <strong style="font-size:1.1em;">{L_VIEW_TOPIC_POLL}: </strong><!-- ENDIF --><a title="" href="{news_row.U_VIEW_COMMENTS}" class="topictitle">*{news_row.TITLE}</a>
                                        <!-- IF news_row.SEO_DESC_TOPIC --><br />{news_row.SEO_DESC_TOPIC}<!-- ENDIF -->
					<p class="gensmall">{L_POSTED} {L_POST_BY_AUTHOR} {news_row.POSTER_FULL} &raquo; {news_row.TIME}
					<!-- IF news_row.FORUM_NAME -->
						<br />{L_FORUM}: <a href="{news_row.U_VIEWFORUM}" style="font-weight: bold;">{news_row.FORUM_NAME}</a>
					<!-- ENDIF -->
					<!-- IF not S_DISPLAY_NEWS_RVS --><!-- IF news_row.FORUM_NAME -->&bull; <!-- ENDIF -->{L_REPLIES}: <strong>{news_row.REPLIES}</strong>  &bull; {L_VIEWS}: <strong>{news_row.TOPIC_VIEWS}</strong><!-- ENDIF -->
					</p>
				</td>
				<!-- IF S_DISPLAY_NEWS_RVS -->
				<td class="row1" width="50" align="center"><p class="topicdetails">{news_row.REPLIES}</p></td>
				<td class="row2" width="50" align="center"><p class="topicdetails">{news_row.TOPIC_VIEWS}</p></td>
				<!-- ENDIF -->
				<td class="row1" width="140" align="center">
					<p class="topicdetails" style="white-space: nowrap;"> {news_row.LAST_POST_TIME}</p>
					<p class="topicdetails">{news_row.USERNAME_FULL_LAST}
						<!-- IF not S_IS_BOT --><!-- IF news_row.S_UNREAD_INFO --><a href="{news_row.U_VIEW_UNREAD}">{NEWEST_POST_IMG}</a><!-- ELSE --><a href="{news_row.U_LAST_COMMENTS}">{READ_POST_IMG}</a><!-- ENDIF --><!-- ENDIF -->
					</p>
				</td>
			</tr>
	<!-- ENDIF -->
<!-- IF news_row.S_LAST_ROW -->
	<!-- IF NP_PAGINATION or TOTAL_NEWS -->
	<tr class="row<!-- IF news_row.S_ROW_COUNT is even -->2<!-- ELSE -->1<!-- ENDIF -->">
		<td class="gensmall pagination" valign="middle" align="right" nowrap="nowrap" colspan="<!-- IF S_TOPIC_ICONS and S_DISPLAY_NEWS_RVS -->6<!-- ELSEIF not S_TOPIC_ICONS and S_DISPLAY_NEWS_RVS -->5<!-- ELSEIF S_TOPIC_ICONS and not S_DISPLAY_NEWS_RVS -->4<!-- ELSE -->3<!-- ENDIF -->">{TOTAL_NEWS}
		<!-- IF NP_PAGE_NUMBER --><!-- IF NP_PAGINATION --> &bull; {NP_PAGE_NUMBER} &bull; <span>{NP_PAGINATION}</span><!-- ELSE --> &bull; {NP_PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF --></td>
	</tr>
	<!-- ENDIF -->
</table>
<!-- IF not S_AJAX --></div><!-- ENDIF -->
<!--{$C_BLOCK_F_L}{$C_BLOCK_F_R}-->
<!-- ENDIF -->
<!-- END news_row -->
</div>
<br />
Сам мод работает. Вывод описания на viewforum.php: описание в списке тем

к сожалению подхватывать описание для портала - не хочет.

что-то ещё надо?

// наверное проблема глубже. только сейчас дошло. у меня портал стоит на трекере и вывод описаний тем проводились в других шаблонах.
в search_tracker_body.html и viewforum_tracker_body.html.

думаю, что, скорее всего, там другие таблицы для вывода...

сейчас попробовал создать тему с описанием на простом форуме, там же. (без торрентов).
описание на простой странице списка тем есть - на портале сама тема появилась, но описания нет...

:wo_ol:

Topic SEO description and keywords

Добавлено: 26 июн 2018, 06:55
DeaDRoMeO
Погляжу на досуге

Topic SEO description and keywords

Добавлено: 26 июн 2018, 10:45
белк
спасибо...