Магазин
Правила Ответы на вопросы Конфиденциальность
Магазин
Правила Ответы на вопросы Конфиденциальность
  • Быстрые действия Ярлыки
    Общие действия
    Связаться с администрацией
    • Бот

       

Готовые моды для трекера

  • Список форумов
  • Форумы по phpBB 3.0
  • Мод трекера ppkBB3cker
  • Моды и стили для трекера
  • Готовые моды для трекера

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

16 сообщений
  • Пред.
  • 1
  • 2
Просмотры: 3769 • 
  • Аватара пользователя
    PPK Сообщение 08.02.2013
    т.е.?
PPK
  • vulkan3 Сообщение 08.02.2013
    вот в форумах
vulkan3
  • Аватара пользователя
    PPK Сообщение 10.02.2013
    Seo URL для Топа скачиваемых торрентов
PPK
  • gisher Сообщение 19.06.2013
    Уважаемый PPK, есть маленький недочёт. Если ссылка топика прописана в ручную (у сео мода есть такая возможность), то правки для блока их не учитывают и выдают всё равно полный url.
gisher
  • Аватара пользователя
    PPK Сообщение 21.06.2013
    /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,
PPK
  • gisher Сообщение 21.06.2013
    Спасибо большое, исправлено.

    Вот файл для блока 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);
       
       }
    }
    
    Может кому пригодится

    Осталось подумать как исправить ссылки для блока объявлений. Есть решения?
gisher
16 сообщений
  • Пред.
  • 1
  • 2

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

Time: 0.000s | Queries: 0 | Peak Memory Usage: 0.00 МБ | GZIP: Unknown | SQL Explain
  • Список форумов
2018, made with by ThemeKita Создано на основе phpBB® Forum Software © phpBB Limited Русская поддержка phpBB (C) 2009-2026 @ PPK
  • Часовой пояс: UTC+04:00
Участники темы
Список форумов Участники темы
Перейти
Сайт ↳   Новости по сайту ↳   Новости обновлений ↳   Вопросы по сайту ↳   Non-russian speakers forum Форумы по phpBB 3.1-3.3 ↳   Расширения для phpBB 3.1-3.3 ↳   Бета-версии и расширения в разработке ↳   База расширений ↳   Поиск и запросы расширений ↳   Расширения для phpBB 3.1-3.3 для донаторов ↳   Условно-бесплатные расширения ↳   Платные расширения ↳   Расширения для подписчиков ↳   Запросы расширений, функционала и переводов для подписчиков ↳   Переводы расширений для phpBB3.1-3.3 ↳   Стили для phpBB 3.1-3.3 ↳   Вопросы по phpBB 3.1-3.3 Форумы по phpBB 3.0 ↳   Мод трекера ppkBB3cker ↳   Новости по трекеру и обновлениям ↳   Ошибки, проблемы, недочёты ↳   Предложения по новым функциям и возможностям ↳   Вопросы, ответы и примеры решений ↳   Моды и стили для трекера ↳   Готовые стили для трекера ↳   Запросы стилей для трекера ↳   Стили в разработке ↳   Готовые моды для трекера ↳   Запросы модов для трекера ↳   Моды в разработке ↳   Остальное ↳   Часто задаваемые вопросы ↳   Ваши трекеры ↳   Мод трекера xbtBB3cker ↳   Новости по трекеру и обновлениям ↳   Вопросы, ответы, ошибки и обсуждение ↳   Другие моды для phpBB 3.0 ↳   Минимоды и хаки для phpBB3 ↳   phpBB 3.0 ppkBB3cker Edition ↳   Платные услуги, моды, стили для phpBB 3.0 ↳   BB2Spoiler/BB3Spoiler ↳   BB3Topics ↳   BB3Sape ↳   BB3UserAgentInfo ↳   Вопросы по phpBB 3.0 ↳   Вне тематики форума