Seo URL для блока Новинки трекера на портале

 • Просмотры: 3652
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1621 раз
Сообщения: 10284
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Seo URL для блока Новинки трекера на портале

08 фев 2013, 14:12

т.е.?
vu
vulkan3
Благодарил (а): 45 раз
Поблагодарили: 36 раз
Сообщения: 1801
Зарегистрирован: 28 сен 2009, 03:36
Сообщение

Seo URL для блока Новинки трекера на портале

08 фев 2013, 23:51

вот в форумах
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1621 раз
Сообщения: 10284
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Seo URL для блока Новинки трекера на портале

10 фев 2013, 16:46

gi
gisher
Благодарил (а): 2 раза
Поблагодарили: 2 раза
Сообщения: 23
Зарегистрирован: 22 авг 2009, 20:15
Сообщение

Seo URL для блока Новинки трекера на портале

19 июн 2013, 10:50

Уважаемый PPK, есть маленький недочёт. Если ссылка топика прописана в ручную (у сео мода есть такая возможность), то правки для блока их не учитывают и выдают всё равно полный url.
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1621 раз
Сообщения: 10284
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Seo URL для блока Новинки трекера на портале

21 июн 2013, 10:03

/portal/modules/portal_ppkbb3cker_ltorrents.php после

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

			$posts[$i]['topic_title'] = $row['topic_title'];
добавить

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

			$posts[$i]['topic_url'] = $row['topic_url'];		
после

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

				t.topic_last_post_time,
добавить

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

				t.topic_url,
gi
gisher
Благодарил (а): 2 раза
Поблагодарили: 2 раза
Сообщения: 23
Зарегистрирован: 22 авг 2009, 20:15
Сообщение

Seo URL для блока Новинки трекера на портале

21 июн 2013, 12:08

Спасибо большое, исправлено.

Вот файл для блока portal_recent.php

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

<?php
/**
*
* @package Board3 Portal v2 - Recent
* @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 Recent
*/
class portal_recent_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 = 'PORTAL_RECENT';

   /**
   * 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_recent_module';
   
   /**
   * custom acp template
   * file must be in "adm/style/portal/"
   */
   public $custom_acp_tpl = '';

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

      //
      // Exclude forums
      //
      $sql_where = '';
      if ($config['board3_recent_forum_' . $module_id] > 0)
      {
         $exclude_forums = explode(',', $config['board3_recent_forum_' . $module_id]);
         
			$sql_where = ' AND ' . $db->sql_in_set('forum_id', array_map('intval', $exclude_forums), ($config['board3_recent_exclude_forums_' . $module_id]) ? true : false);
      }

      // Get a list of forums the user cannot read
      $forum_ary = array_unique(array_keys($auth->acl_getf('!f_read', true)));

      // Determine first forum the user is able to read (must not be a category)
      $sql = 'SELECT forum_id
         FROM ' . FORUMS_TABLE . '
         WHERE forum_type = ' . FORUM_POST;

      $forum_sql = '';
      if (sizeof($forum_ary))
      {
         $sql .= ' AND ' . $db->sql_in_set('forum_id', $forum_ary, true);
         $forum_sql = ' AND ' . $db->sql_in_set('t.forum_id', $forum_ary, true);
      }

      $result = $db->sql_query_limit($sql, 1);
      $g_forum_id = (int) $db->sql_fetchfield('forum_id');
      $db->sql_freeresult($result);

      //
      // Recent announcements
      //
      $sql = 'SELECT *
         FROM ' . TOPICS_TABLE . ' t
         WHERE topic_status <> ' . FORUM_LINK . '
            AND topic_approved = 1 
            AND (topic_type = ' . POST_ANNOUNCE . ' OR topic_type = ' . POST_GLOBAL . ')
            AND topic_moved_id = 0
            ' . $sql_where . '' .  $forum_sql . '
         ORDER BY topic_time DESC';
      $result = $db->sql_query_limit($sql, $config['board3_max_topics_' . $module_id]);

      while(($row = $db->sql_fetchrow($result)) && ($row['topic_title']))
      {
         // auto auth
         if (($auth->acl_get('f_read', $row['forum_id'])) || ($row['forum_id'] == '0'))
         {
             $row['topic_title'] = censor_text($row['topic_title']);
             $phpbb_seo->prepare_iurl($row, 'topic', $phpbb_seo->seo_static['global_announce']);
            $template->assign_block_vars('latest_announcements', array(
               'TITLE'         => character_limit($row['topic_title'], $config['board3_recent_title_limit_' . $module_id]),
               'FULL_TITLE'   => censor_text($row['topic_title']),
               'U_VIEW_TOPIC'   => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . (($row['forum_id'] == 0) ? $g_forum_id : $row['forum_id']) . '&t=' . $row['topic_id'])
            ));
         }
      }
      $db->sql_freeresult($result);

      //
      // Recent hot topics
      //
      $sql = 'SELECT *
         FROM ' . TOPICS_TABLE . ' t
         WHERE topic_approved = 1 
            AND topic_replies >=' . $config['hot_threshold'] . '
            AND topic_moved_id = 0
            ' . $sql_where . '' .  $forum_sql . '
         ORDER BY topic_time DESC';
      $result = $db->sql_query_limit($sql, $config['board3_max_topics_' . $module_id]);

      while(($row = $db->sql_fetchrow($result)) && ($row['topic_title']))
      {
         // auto auth
         if (($auth->acl_get('f_read', $row['forum_id'])) || ($row['forum_id'] == '0'))
         {
            // www.phpBB-SEO.com SEO TOOLKIT BEGIN
               $row['topic_title'] = censor_text($row['topic_title']);
               // Since we don't have the forum_name available here, we need to make sure that we can rewrite
               if (!empty($row['topic_url']) || $row['topic_type'] == POST_GLOBAL || !empty($phpbb_seo->seo_url['forum'][$row['forum_id']])) {
                  $phpbb_seo->prepare_iurl($row, 'topic', $row['topic_type'] == POST_GLOBAL ? $phpbb_seo->seo_static['global_announce'] : $phpbb_seo->seo_url['forum'][$row['forum_id']]);
               }
               // www.phpBB-SEO.com SEO TOOLKIT END
            $template->assign_block_vars('latest_hot_topics', array(
               'TITLE'         => character_limit($row['topic_title'], $config['board3_recent_title_limit_' . $module_id]),
               'FULL_TITLE'   => censor_text($row['topic_title']),
               'U_VIEW_TOPIC'   => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . (($row['forum_id'] == 0) ? $g_forum_id : $row['forum_id']) . '&t=' . $row['topic_id'])
            ));
         }
      }
      $db->sql_freeresult($result);

      //
      // Recent topic (only show normal topic)
      //
      $sql = 'SELECT *
         FROM ' . TOPICS_TABLE . ' t
         WHERE topic_status <> ' . ITEM_MOVED . '
            AND topic_approved = 1 
            AND topic_type = ' . POST_NORMAL . '
            AND topic_moved_id = 0
            ' . $sql_where . '' .  $forum_sql . '
         ORDER BY topic_time DESC';
      $result = $db->sql_query_limit($sql, $config['board3_max_topics_' . $module_id]);

      while(($row = $db->sql_fetchrow($result)) && ($row['topic_title']))
      {
         // auto auth
         if (($auth->acl_get('f_read', $row['forum_id'])) || ($row['forum_id'] == '0'))
         {
            // www.phpBB-SEO.com SEO TOOLKIT BEGIN
               $row['topic_title'] = censor_text($row['topic_title']);
               // Since we don't have the forum_name available here, we need to make sure that we can rewrite
               if (!empty($row['topic_url']) || !empty($phpbb_seo->seo_url['forum'][$row['forum_id']])) {
                  $phpbb_seo->prepare_iurl($row, 'topic', $phpbb_seo->seo_url['forum'][$row['forum_id']]);
               }
               // www.phpBB-SEO.com SEO TOOLKIT END
            $template->assign_block_vars('latest_topics', array(
               'TITLE'         => character_limit($row['topic_title'], $config['board3_recent_title_limit_' . $module_id]),
               'FULL_TITLE'   => censor_text($row['topic_title']),
               'U_VIEW_TOPIC'   => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $row['forum_id'] . '&t=' . $row['topic_id'])
            ));
         }
      }
      $db->sql_freeresult($result);

      return 'recent_center.html';
   }

   public function get_template_acp($module_id)
   {
      return array(
         'title'   => 'ACP_PORTAL_RECENT_SETTINGS',
         'vars'   => array(
            'legend1'                     => 'ACP_PORTAL_RECENT_SETTINGS',
            'board3_max_topics_' . $module_id            => array('lang' => 'PORTAL_MAX_TOPIC',         'validate' => 'int',      'type' => 'text:3:3',      'explain' => true),
            'board3_recent_title_limit_' . $module_id      => array('lang' => 'PORTAL_RECENT_TITLE_LIMIT',   'validate' => 'int',      'type' => 'text:3:3',      'explain' => true),
            'board3_recent_forum_' . $module_id            => array('lang' => 'PORTAL_RECENT_FORUM',      'validate' => 'string',      'type' => 'custom',         'explain' => true, 'method' => 'select_forums', 'submit' => 'store_selected_forums'),
            'board3_recent_exclude_forums_' . $module_id   => array('lang' => 'PORTAL_EXCLUDE_FORUM',      'validate' => 'bool',      'type' => 'radio:yes_no',   'explain' => true),
         )
      );
   }

   /**
   * API functions
   */
   public function install($module_id)
   {
      set_config('board3_max_topics_' . $module_id, 10);
      set_config('board3_recent_title_limit_' . $module_id, 100);
      set_config('board3_recent_forum_' . $module_id, '');
      set_config('board3_recent_exclude_forums_' . $module_id, 1);
      return true;
   }

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

      $del_config = array(
         'board3_max_topics_' . $module_id,
         'board3_recent_title_limit_' . $module_id,
         'board3_recent_forum_' . $module_id,
         'board3_recent_exclude_forums_' . $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);
   
   }
}
Может кому пригодится

Осталось подумать как исправить ссылки для блока объявлений. Есть решения?

Вернуться в «Готовые моды для трекера»