- Можеш ли да слагаш icon папки във форума?
WT форуми -> Всичко за phpBB -> Можеш ли да слагаш icon папки във форума?
Създайте нова тема Напишете отговор 
Автор Съобщение
qnkovweb
Нов
Нов

Регистриран на: 06/11/2013 8:04 pm

Support: 0
Bonus: 0
Мнения: 88
Мнение 31/12/2013 6:55 pm     Можеш ли да слагаш icon папки във форума? Отговорете с цитат


Как мога да си правя темите с някви снимки. Виждал съм разни форуми с разни картинки върху темите и някви такива. Къде точно от контрол панела мога да прикачвам такива работи.
Можеш ли да слагаш icon папки във ф
Ето там дето съм нарисувал да се сменят с някви икони.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
plamen_003
Турист
Турист

Регистриран на: 26/11/2007 10:16 pm

Support: 13
Bonus: 24
Мнения: 494
Мнение 31/12/2013 8:14 pm      Отговорете с цитат


От главната ти директория на форума влизаш в styles/името-на-темплейта/imageset и от там сменяш картинките.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Msecurity
Потребител
Потребител

Регистриран на: 18/09/2010 8:12 am

Support: 19
Bonus: 37
Мнения: 753
Мнение 01/01/2014 1:30 pm      Отговорете с цитат


Ето готов модул за PHPBB3 - на всеки форум можеш да си слагаш произволна икона Smile

Forum Icons Enhancement
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
qnkovweb
Нов
Нов

Регистриран на: 06/11/2013 8:04 pm

Support: 0
Bonus: 0
Мнения: 88
Мнение 01/01/2014 10:15 pm      Отговорете с цитат


Благодарим аз. Свеждаме проблемите до по-малко. Само сега ако мога и да разбера как да го инсталирам. Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Msecurity
Потребител
Потребител

Регистриран на: 18/09/2010 8:12 am

Support: 19
Bonus: 37
Мнения: 753
Мнение 01/01/2014 11:56 pm      Отговорете с цитат


qnkovweb написа:
Благодарим аз. Свеждаме проблемите до по-малко. Само сега ако мога и да разбера как да го инсталирам. Smile


Хоп свеждаме проблемите до 0 Very Happy
Ето инструкция как се инсталира

Кои файлове добавяш, кой редактираш , какво им редактираш Razz
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
qnkovweb
Нов
Нов

Регистриран на: 06/11/2013 8:04 pm

Support: 0
Bonus: 0
Мнения: 88
Мнение 03/01/2014 4:11 pm      Отговорете с цитат


Наистина проблемите се решиха, като че ли. Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
qnkovweb
Нов
Нов

Регистриран на: 06/11/2013 8:04 pm

Support: 0
Bonus: 0
Мнения: 88
Мнение 03/01/2014 6:47 pm      Отговорете с цитат


Parse error: syntax error, unexpected T_DOUBLE_ARROW in /home/anisubs/public_html/forum/includes/acp/acp_forums.php on line 613

Дотук стигнах!
<?php
/**
*
* @package acp
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

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

/**
* @package acp
*/
class acp_forums
{
   var $u_action;
   var $parent_id = 0;

   function main($id, $mode)
   {
      global $db, $user, $auth, $template, $cache;
      global $config, $phpbb_admin_path, $phpbb_root_path, $phpEx;

      $user->add_lang('acp/forums');
      $this->tpl_name = 'acp_forums';
      $this->page_title = 'ACP_MANAGE_FORUMS';

      $form_key = 'acp_forums';
      add_form_key($form_key);

      $action      = request_var('action', '');
      $update      = (isset($_POST['update'])) ? true : false;
      $forum_id   = request_var('f', 0);

      $this->parent_id   = request_var('parent_id', 0);
      $forum_data = $errors = array();
      if ($update && !check_form_key($form_key))
      {
         $update = false;
         $errors[] = $user->lang['FORM_INVALID'];
      }

      // Check additional permissions
      switch ($action)
      {
         case 'progress_bar':
            $start = request_var('start', 0);
            $total = request_var('total', 0);

            $this->display_progress_bar($start, $total);
            exit;
         break;

         case 'delete':

            if (!$auth->acl_get('a_forumdel'))
            {
               trigger_error($user->lang['NO_PERMISSION_FORUM_DELETE'] . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id), E_USER_WARNING);
            }

         break;

         case 'add':

            if (!$auth->acl_get('a_forumadd'))
            {
               trigger_error($user->lang['NO_PERMISSION_FORUM_ADD'] . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id), E_USER_WARNING);
            }

         break;
      }

      // Major routines
      if ($update)
      {
         switch ($action)
         {
            case 'delete':
               $action_subforums   = request_var('action_subforums', '');
               $subforums_to_id   = request_var('subforums_to_id', 0);
               $action_posts      = request_var('action_posts', '');
               $posts_to_id      = request_var('posts_to_id', 0);

               $errors = $this->delete_forum($forum_id, $action_posts, $action_subforums, $posts_to_id, $subforums_to_id);

               if (sizeof($errors))
               {
                  break;
               }

               $auth->acl_clear_prefetch();
               $cache->destroy('sql', FORUMS_TABLE);

               trigger_error($user->lang['FORUM_DELETED'] . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id));

            break;

            case 'edit':
               $forum_data = array(
                  'forum_id'      =>   $forum_id
               );

            // No break here

            case 'add':

               $forum_data += array(
                  'parent_id'            => request_var('forum_parent_id', $this->parent_id),
                  'forum_type'         => request_var('forum_type', FORUM_POST),
                  'type_action'         => request_var('type_action', ''),
                  'forum_status'         => request_var('forum_status', ITEM_UNLOCKED),
                  'forum_parents'         => '',
                  'forum_name'         => utf8_normalize_nfc(request_var('forum_name', '', true)),
                  'forum_link'         => request_var('forum_link', ''),
                  'forum_link_track'      => request_var('forum_link_track', false),
                  'forum_desc'         => utf8_normalize_nfc(request_var('forum_desc', '', true)),
                  'forum_desc_uid'      => '',
                  'forum_desc_options'   => 7,
                  'forum_desc_bitfield'   => '',
                  'forum_rules'         => utf8_normalize_nfc(request_var('forum_rules', '', true)),
                  'forum_rules_uid'      => '',
                  'forum_rules_options'   => 7,
                  'forum_rules_bitfield'   => '',
                  'forum_rules_link'      => request_var('forum_rules_link', ''),
                  'forum_image'         => request_var('forum_image', ''),
                  'forum_style'         => request_var('forum_style', 0),
                  'display_subforum_list'   => request_var('display_subforum_list', false),
                  'display_on_index'      => request_var('display_on_index', false),
                  'forum_topics_per_page'   => request_var('topics_per_page', 0),
                  'enable_indexing'      => request_var('enable_indexing', true),
                  'enable_icons'         => request_var('enable_icons', false),
                  'enable_prune'         => request_var('enable_prune', false),
                  'enable_post_review'   => request_var('enable_post_review', true),
                  'enable_quick_reply'   => request_var('enable_quick_reply', false),
                  'prune_days'         => request_var('prune_days', 7),
                  'prune_viewed'         => request_var('prune_viewed', 7),
                  'prune_freq'         => request_var('prune_freq', 1),
                  'prune_old_polls'      => request_var('prune_old_polls', false),
                  'prune_announce'      => request_var('prune_announce', false),
                  'prune_sticky'         => request_var('prune_sticky', false),
                  'forum_password'      => request_var('forum_password', '', true),
                  'forum_password_confirm'=> request_var('forum_password_confirm', '', true),
                  'forum_password_unset'   => request_var('forum_password_unset', false),
               );

               // On add, add empty forum_options... else do not consider it (not updating it)
               if ($action == 'add')
               {
                  $forum_data['forum_options'] = 0;
               }

               // Use link_display_on_index setting if forum type is link
               if ($forum_data['forum_type'] == FORUM_LINK)
               {
                  $forum_data['display_on_index'] = request_var('link_display_on_index', false);
               }

               // Linked forums and categories are not able to be locked...
               if ($forum_data['forum_type'] == FORUM_LINK || $forum_data['forum_type'] == FORUM_CAT)
               {
                  $forum_data['forum_status'] = ITEM_UNLOCKED;
               }

               $forum_data['show_active'] = ($forum_data['forum_type'] == FORUM_POST) ? request_var('display_recent', true) : request_var('display_active', false);

               // Get data for forum rules if specified...
               if ($forum_data['forum_rules'])
               {
                  generate_text_for_storage($forum_data['forum_rules'], $forum_data['forum_rules_uid'], $forum_data['forum_rules_bitfield'], $forum_data['forum_rules_options'], request_var('rules_parse_bbcode', false), request_var('rules_parse_urls', false), request_var('rules_parse_smilies', false));
               }

               // Get data for forum description if specified
               if ($forum_data['forum_desc'])
               {
                  generate_text_for_storage($forum_data['forum_desc'], $forum_data['forum_desc_uid'], $forum_data['forum_desc_bitfield'], $forum_data['forum_desc_options'], request_var('desc_parse_bbcode', false), request_var('desc_parse_urls', false), request_var('desc_parse_smilies', false));
               }

               $errors = $this->update_forum_data($forum_data);

               if (!sizeof($errors))
               {
                  $forum_perm_from = request_var('forum_perm_from', 0);
                  $cache->destroy('sql', FORUMS_TABLE);

                  $copied_permissions = false;
                  // Copy permissions?
                  if ($forum_perm_from && $forum_perm_from != $forum_data['forum_id'] &&
                     ($action != 'edit' || empty($forum_id) || ($auth->acl_get('a_fauth') && $auth->acl_get('a_authusers') && $auth->acl_get('a_authgroups') && $auth->acl_get('a_mauth'))))
                  {
                     copy_forum_permissions($forum_perm_from, $forum_data['forum_id'], ($action == 'edit') ? true : false);
                     cache_moderators();
                     $copied_permissions = true;
                  }
/* Commented out because of questionable UI workflow - re-visit for 3.0.7
                  else if (!$this->parent_id && $action != 'edit' && $auth->acl_get('a_fauth') && $auth->acl_get('a_authusers') && $auth->acl_get('a_authgroups') && $auth->acl_get('a_mauth'))
                  {
                     $this->copy_permission_page($forum_data);
                     return;
                  }
*/
                  $auth->acl_clear_prefetch();

                  $acl_url = '&amp;mode=setting_forum_local&amp;forum_id[]=' . $forum_data['forum_id'];

                  $message = ($action == 'add') ? $user->lang['FORUM_CREATED'] : $user->lang['FORUM_UPDATED'];

                  // Redirect to permissions
                  if ($auth->acl_get('a_fauth') && !$copied_permissions)
                  {
                     $message .= '<br /><br />' . sprintf($user->lang['REDIRECT_ACL'], '<a href="' . append_sid("{$phpbb_admin_path}index.$phpEx", 'i=permissions' . $acl_url) . '">', '</a>');
                  }

                  // redirect directly to permission settings screen if authed
                  if ($action == 'add' && !$copied_permissions && $auth->acl_get('a_fauth'))
                  {
                     meta_refresh(4, append_sid("{$phpbb_admin_path}index.$phpEx", 'i=permissions' . $acl_url));
                  }

                  trigger_error($message . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id));
               }

            break;
         }
      }

      switch ($action)
      {
         case 'move_up':
         case 'move_down':

            if (!$forum_id)
            {
               trigger_error($user->lang['NO_FORUM'] . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id), E_USER_WARNING);
            }

            $sql = 'SELECT *
               FROM ' . FORUMS_TABLE . "
               WHERE forum_id = $forum_id";
            $result = $db->sql_query($sql);
            $row = $db->sql_fetchrow($result);
            $db->sql_freeresult($result);

            if (!$row)
            {
               trigger_error($user->lang['NO_FORUM'] . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id), E_USER_WARNING);
            }

            $move_forum_name = $this->move_forum_by($row, $action, 1);

            if ($move_forum_name !== false)
            {
               add_log('admin', 'LOG_FORUM_' . strtoupper($action), $row['forum_name'], $move_forum_name);
               $cache->destroy('sql', FORUMS_TABLE);
            }

         break;

         case 'sync':
            if (!$forum_id)
            {
               trigger_error($user->lang['NO_FORUM'] . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id), E_USER_WARNING);
            }

            @set_time_limit(0);

            $sql = 'SELECT forum_name, forum_topics_real
               FROM ' . FORUMS_TABLE . "
               WHERE forum_id = $forum_id";
            $result = $db->sql_query($sql);
            $row = $db->sql_fetchrow($result);
            $db->sql_freeresult($result);

            if (!$row)
            {
               trigger_error($user->lang['NO_FORUM'] . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id), E_USER_WARNING);
            }

            if ($row['forum_topics_real'])
            {
               $sql = 'SELECT MIN(topic_id) as min_topic_id, MAX(topic_id) as max_topic_id
                  FROM ' . TOPICS_TABLE . '
                  WHERE forum_id = ' . $forum_id;
               $result = $db->sql_query($sql);
               $row2 = $db->sql_fetchrow($result);
               $db->sql_freeresult($result);

               // Typecast to int if there is no data available
               $row2['min_topic_id'] = (int) $row2['min_topic_id'];
               $row2['max_topic_id'] = (int) $row2['max_topic_id'];

               $start = request_var('start', $row2['min_topic_id']);

               $batch_size = 2000;
               $end = $start + $batch_size;

               // Sync all topics in batch mode...
               sync('topic_approved', 'range', 'topic_id BETWEEN ' . $start . ' AND ' . $end, true, false);
               sync('topic', 'range', 'topic_id BETWEEN ' . $start . ' AND ' . $end, true, true);

               if ($end < $row2['max_topic_id'])
               {
                  // We really need to find a way of showing statistics... no progress here
                  $sql = 'SELECT COUNT(topic_id) as num_topics
                     FROM ' . TOPICS_TABLE . '
                     WHERE forum_id = ' . $forum_id . '
                        AND topic_id BETWEEN ' . $start . ' AND ' . $end;
                  $result = $db->sql_query($sql);
                  $topics_done = request_var('topics_done', 0) + (int) $db->sql_fetchfield('num_topics');
                  $db->sql_freeresult($result);

                  $start += $batch_size;

                  $url = $this->u_action . "&amp;parent_id={$this->parent_id}&amp;f=$forum_id&amp;action=sync&amp;start=$start&amp;topics_done=$topics_done&amp;total={$row['forum_topics_real']}";

                  meta_refresh(0, $url);

                  $template->assign_vars(array(
                     'U_PROGRESS_BAR'      => $this->u_action . "&amp;action=progress_bar&amp;start=$topics_done&amp;total={$row['forum_topics_real']}",
                     'UA_PROGRESS_BAR'      => addslashes($this->u_action . "&amp;action=progress_bar&amp;start=$topics_done&amp;total={$row['forum_topics_real']}"),
                     'S_CONTINUE_SYNC'      => true,
                     'L_PROGRESS_EXPLAIN'   => sprintf($user->lang['SYNC_IN_PROGRESS_EXPLAIN'], $topics_done, $row['forum_topics_real']))
                  );

                  return;
               }
            }

            $url = $this->u_action . "&amp;parent_id={$this->parent_id}&amp;f=$forum_id&amp;action=sync_forum";
            meta_refresh(0, $url);

            $template->assign_vars(array(
               'U_PROGRESS_BAR'      => $this->u_action . '&amp;action=progress_bar',
               'UA_PROGRESS_BAR'      => addslashes($this->u_action . '&amp;action=progress_bar'),
               'S_CONTINUE_SYNC'      => true,
               'L_PROGRESS_EXPLAIN'   => sprintf($user->lang['SYNC_IN_PROGRESS_EXPLAIN'], 0, $row['forum_topics_real']))
            );

            return;

         break;

         case 'sync_forum':

            $sql = 'SELECT forum_name, forum_type
               FROM ' . FORUMS_TABLE . "
               WHERE forum_id = $forum_id";
            $result = $db->sql_query($sql);
            $row = $db->sql_fetchrow($result);
            $db->sql_freeresult($result);

            if (!$row)
            {
               trigger_error($user->lang['NO_FORUM'] . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id), E_USER_WARNING);
            }

            sync('forum', 'forum_id', $forum_id, false, true);

            add_log('admin', 'LOG_FORUM_SYNC', $row['forum_name']);
            $cache->destroy('sql', FORUMS_TABLE);

            $template->assign_var('L_FORUM_RESYNCED', sprintf($user->lang['FORUM_RESYNCED'], $row['forum_name']));

         break;

         case 'add':
         case 'edit':

            if ($update)
            {
               $forum_data['forum_flags'] = 0;
               $forum_data['forum_flags'] += (request_var('forum_link_track', false)) ? FORUM_FLAG_LINK_TRACK : 0;
               $forum_data['forum_flags'] += (request_var('prune_old_polls', false)) ? FORUM_FLAG_PRUNE_POLL : 0;
               $forum_data['forum_flags'] += (request_var('prune_announce', false)) ? FORUM_FLAG_PRUNE_ANNOUNCE : 0;
               $forum_data['forum_flags'] += (request_var('prune_sticky', false)) ? FORUM_FLAG_PRUNE_STICKY : 0;
               $forum_data['forum_flags'] += ($forum_data['show_active']) ? FORUM_FLAG_ACTIVE_TOPICS : 0;
               $forum_data['forum_flags'] += (request_var('enable_post_review', true)) ? FORUM_FLAG_POST_REVIEW : 0;
               $forum_data['forum_flags'] += (request_var('enable_quick_reply', false)) ? FORUM_FLAG_QUICK_REPLY : 0;
            }

            // Show form to create/modify a forum
            if ($action == 'edit')
            {
               $this->page_title = 'EDIT_FORUM';
               $row = $this->get_forum_info($forum_id);
               $old_forum_type = $row['forum_type'];

               if (!$update)
               {
                  $forum_data = $row;
               }
               else
               {
                  $forum_data['left_id'] = $row['left_id'];
                  $forum_data['right_id'] = $row['right_id'];
               }

               // Make sure no direct child forums are able to be selected as parents.
               $exclude_forums = array();
               foreach (get_forum_branch($forum_id, 'children') as $row)
               {
                  $exclude_forums[] = $row['forum_id'];
               }

               $parents_list = make_forum_select($forum_data['parent_id'], $exclude_forums, false, false, false);

               $forum_data['forum_password_confirm'] = $forum_data['forum_password'];
            }
            else
            {
               $this->page_title = 'CREATE_FORUM';

               $forum_id = $this->parent_id;
               $parents_list = make_forum_select($this->parent_id, false, false, false, false);

               // Fill forum data with default values
               if (!$update)
               {
                  $forum_data = array(
                     'parent_id'            => $this->parent_id,
                     'forum_type'         => FORUM_POST,
                     'forum_status'         => ITEM_UNLOCKED,
                     'forum_name'         => utf8_normalize_nfc(request_var('forum_name', '', true)),
                     'forum_link'         => '',
                     'forum_link_track'      => false,
                     'forum_desc'         => '',
                     'forum_rules'         => '',
                     'forum_rules_link'      => '',
                     'forum_image'         => '',
                     'forum_style'         => 0,
                     'display_subforum_list'   => true,
                     'display_on_index'      => false,
                     'forum_topics_per_page'   => 0,
                     'enable_indexing'      => true,
                     'enable_icons'         => false,
                     'enable_prune'         => false,
                     'prune_days'         => 7,
                     'prune_viewed'         => 7,
                     'prune_freq'         => 1,
                     'forum_flags'         => FORUM_FLAG_POST_REVIEW + FORUM_FLAG_ACTIVE_TOPICS,
                     'forum_options'         => 0,
                     'forum_password'      => '',
                     'forum_password_confirm'=> '',
                  );
               }
            }

            $forum_rules_data = array(
               'text'         => $forum_data['forum_rules'],
               'allow_bbcode'   => true,
               'allow_smilies'   => true,
               'allow_urls'   => true
            );

            $forum_desc_data = array(
               'text'         => $forum_data['forum_desc'],
               'allow_bbcode'   => true,
               'allow_smilies'   => true,
               'allow_urls'   => true
            );

            $forum_rules_preview = '';

            // Parse rules if specified
            if ($forum_data['forum_rules'])
            {
               if (!isset($forum_data['forum_rules_uid']))
               {
                  // Before we are able to display the preview and plane text, we need to parse our request_var()'d value...
                  $forum_data['forum_rules_uid'] = '';
                  $forum_data['forum_rules_bitfield'] = '';
                  $forum_data['forum_rules_options'] = 0;

                  generate_text_for_storage($forum_data['forum_rules'], $forum_data['forum_rules_uid'], $forum_data['forum_rules_bitfield'], $forum_data['forum_rules_options'], request_var('rules_allow_bbcode', false), request_var('rules_allow_urls', false), request_var('rules_allow_smilies', false));
               }

               // Generate preview content
               $forum_rules_preview = generate_text_for_display($forum_data['forum_rules'], $forum_data['forum_rules_uid'], $forum_data['forum_rules_bitfield'], $forum_data['forum_rules_options']);

               // decode...
               $forum_rules_data = generate_text_for_edit($forum_data['forum_rules'], $forum_data['forum_rules_uid'], $forum_data['forum_rules_options']);
            }

            // Parse desciption if specified
            if ($forum_data['forum_desc'])
            {
               if (!isset($forum_data['forum_desc_uid']))
               {
                  // Before we are able to display the preview and plane text, we need to parse our request_var()'d value...
                  $forum_data['forum_desc_uid'] = '';
                  $forum_data['forum_desc_bitfield'] = '';
                  $forum_data['forum_desc_options'] = 0;

                  generate_text_for_storage($forum_data['forum_desc'], $forum_data['forum_desc_uid'], $forum_data['forum_desc_bitfield'], $forum_data['forum_desc_options'], request_var('desc_allow_bbcode', false), request_var('desc_allow_urls', false), request_var('desc_allow_smilies', false));
               }

               // decode...
               $forum_desc_data = generate_text_for_edit($forum_data['forum_desc'], $forum_data['forum_desc_uid'], $forum_data['forum_desc_options']);
            }

            $forum_type_options = '';
            $forum_type_ary = array(FORUM_CAT => 'CAT', FORUM_POST => 'FORUM', FORUM_LINK => 'LINK');

            foreach ($forum_type_ary as $value => $lang)
            {
               $forum_type_options .= '<option value="' . $value . '"' . (($value == $forum_data['forum_type']) ? ' selected="selected"' : '') . '>' . $user->lang['TYPE_' . $lang] . '</option>';
            }

            $styles_list = style_select($forum_data['forum_style'], true);

            $statuslist = '<option value="' . ITEM_UNLOCKED . '"' . (($forum_data['forum_status'] == ITEM_UNLOCKED) ? ' selected="selected"' : '') . '>' . $user->lang['UNLOCKED'] . '</option><option value="' . ITEM_LOCKED . '"' . (($forum_data['forum_status'] == ITEM_LOCKED) ? ' selected="selected"' : '') . '>' . $user->lang['LOCKED'] . '</option>';

            $sql = 'SELECT forum_id
               FROM ' . FORUMS_TABLE . '
               WHERE forum_type = ' . FORUM_POST . "
                  AND forum_id <> $forum_id";
            $result = $db->sql_query_limit($sql, 1);

            $postable_forum_exists = false;
            if ($db->sql_fetchrow($result))
            {
               $postable_forum_exists = true;
            }
            $db->sql_freeresult($result);

            // Subforum move options
            if ($action == 'edit' && $forum_data['forum_type'] == FORUM_CAT)
            {
               $subforums_id = array();
               $subforums = get_forum_branch($forum_id, 'children');

               foreach ($subforums as $row)
               {
                  $subforums_id[] = $row['forum_id'];
               }

               $forums_list = make_forum_select($forum_data['parent_id'], $subforums_id);

               if ($postable_forum_exists)
               {
                  $template->assign_vars(array(
                     'S_MOVE_FORUM_OPTIONS'      => make_forum_select($forum_data['parent_id'], $subforums_id)) // , false, true, false???
                  );
               }

               $template->assign_vars(array(
                  'S_HAS_SUBFORUMS'      => ($forum_data['right_id'] - $forum_data['left_id'] > 1) ? true : false,
                  'S_FORUMS_LIST'         => $forums_list)
               );
            }
            else if ($postable_forum_exists)
            {
               $template->assign_vars(array(
                  'S_MOVE_FORUM_OPTIONS'      => make_forum_select($forum_data['parent_id'], $forum_id, false, true, false))
               );
            }

            $s_show_display_on_index = false;

            if ($forum_data['parent_id'] > 0)
            {
               // if this forum is a subforum put the "display on index" checkbox
               if ($parent_info = $this->get_forum_info($forum_data['parent_id']))
               {
                  if ($parent_info['parent_id'] > 0 || $parent_info['forum_type'] == FORUM_CAT)
                  {
                     $s_show_display_on_index = true;
                  }
               }
            }

            if (strlen($forum_data['forum_password']) == 32)
            {
               $errors[] = $user->lang['FORUM_PASSWORD_OLD'];
            }

      // Start mod list forum_images from kiss engine copyright 2007 phpbbireland.com //
            $dirslist = ' ';

            if (!file_exists($phpbb_root_path . 'images/forum_icons'))
            {
               trigger_error(sprintf($user->lang['MISSING_FILE_OR_FOLDER'], $file));
            }

            $dirs = dir($phpbb_root_path . 'images/forum_icons');
            while ($file = $dirs->read())
            {
               if (stripos($file, ".gif") ||  stripos($file, ".png"))
               {
                  $dirslist .= "$file ";
               }
            }
            closedir($dirs->handle);
            $dirslist = explode(" ", $dirslist);
            sort($dirslist);

            for ($i = 0; $i < sizeof($dirslist); $i++)
            {
               if ($dirslist[$i] != '')
               {
                  $template->assign_block_vars('forum_img_file_name', array('FORUM_IMAGE_OPT' => $dirslist[$i]));
               }
            }
            $dirslist = '';
            // End mod list forum_images from kiss engine code //      $template->assign_vars(array(
               'S_EDIT_FORUM'      => true,
               'S_ERROR'         => (sizeof($errors)) ? true : false,
               'S_PARENT_ID'      => $this->parent_id,
               'S_FORUM_PARENT_ID'   => $forum_data['parent_id'],
               'S_ADD_ACTION'      => ($action == 'add') ? true : false,

               'U_BACK'      => $this->u_action . '&amp;parent_id=' . $this->parent_id,
               'U_EDIT_ACTION'   => $this->u_action . "&amp;parent_id={$this->parent_id}&amp;action=$action&amp;f=$forum_id",

               'L_COPY_PERMISSIONS_EXPLAIN'   => $user->lang['COPY_PERMISSIONS_' . strtoupper($action) . '_EXPLAIN'],
               'L_TITLE'                  => $user->lang[$this->page_title],
               'ERROR_MSG'                  => (sizeof($errors)) ? implode('<br />', $errors) : '',

               'FORUM_NAME'            => $forum_data['forum_name'],
               'FORUM_DATA_LINK'         => $forum_data['forum_link'],
               'FORUM_IMAGE'            => $forum_data['forum_image'],
               'FORUM_IMAGE_SRC'         => ($forum_data['forum_image']) ? $phpbb_root_path . $forum_data['forum_image'] : '',
      'FORUM_IMAGE_SRC_PATH'         => $phpbb_root_path . 'images/forum_icons/',
               'FORUM_IMAGE_PATH'         => 'images/forum_icons/',         'FORUM_POST'            => FORUM_POST,
               'FORUM_LINK'            => FORUM_LINK,
               'FORUM_CAT'               => FORUM_CAT,
               'PRUNE_FREQ'            => $forum_data['prune_freq'],
               'PRUNE_DAYS'            => $forum_data['prune_days'],
               'PRUNE_VIEWED'            => $forum_data['prune_viewed'],
               'TOPICS_PER_PAGE'         => $forum_data['forum_topics_per_page'],
               'FORUM_RULES_LINK'         => $forum_data['forum_rules_link'],
               'FORUM_RULES'            => $forum_data['forum_rules'],
               'FORUM_RULES_PREVIEW'      => $forum_rules_preview,
               'FORUM_RULES_PLAIN'         => $forum_rules_data['text'],
               'S_BBCODE_CHECKED'         => ($forum_rules_data['allow_bbcode']) ? true : false,
               'S_SMILIES_CHECKED'         => ($forum_rules_data['allow_smilies']) ? true : false,
               'S_URLS_CHECKED'         => ($forum_rules_data['allow_urls']) ? true : false,
               'S_FORUM_PASSWORD_SET'      => (empty($forum_data['forum_password'])) ? false : true,

               'FORUM_DESC'            => $forum_desc_data['text'],
               'S_DESC_BBCODE_CHECKED'      => ($forum_desc_data['allow_bbcode']) ? true : false,
               'S_DESC_SMILIES_CHECKED'   => ($forum_desc_data['allow_smilies']) ? true : false,
               'S_DESC_URLS_CHECKED'      => ($forum_desc_data['allow_urls']) ? true : false,

               'S_FORUM_TYPE_OPTIONS'      => $forum_type_options,
               'S_STATUS_OPTIONS'         => $statuslist,
               'S_PARENT_OPTIONS'         => $parents_list,
               'S_STYLES_OPTIONS'         => $styles_list,
               'S_FORUM_OPTIONS'         => make_forum_select(($action == 'add') ? $forum_data['parent_id'] : false, ($action == 'edit') ? $forum_data['forum_id'] : false, false, false, false),
               'S_SHOW_DISPLAY_ON_INDEX'   => $s_show_display_on_index,
               'S_FORUM_POST'            => ($forum_data['forum_type'] == FORUM_POST) ? true : false,
               'S_FORUM_ORIG_POST'         => (isset($old_forum_type) && $old_forum_type == FORUM_POST) ? true : false,
               'S_FORUM_ORIG_CAT'         => (isset($old_forum_type) && $old_forum_type == FORUM_CAT) ? true : false,
               'S_FORUM_ORIG_LINK'         => (isset($old_forum_type) && $old_forum_type == FORUM_LINK) ? true : false,
               'S_FORUM_LINK'            => ($forum_data['forum_type'] == FORUM_LINK) ? true : false,
               'S_FORUM_CAT'            => ($forum_data['forum_type'] == FORUM_CAT) ? true : false,
               'S_ENABLE_INDEXING'         => ($forum_data['enable_indexing']) ? true : false,
               'S_TOPIC_ICONS'            => ($forum_data['enable_icons']) ? true : false,
               'S_DISPLAY_SUBFORUM_LIST'   => ($forum_data['display_subforum_list']) ? true : false,
               'S_DISPLAY_ON_INDEX'      => ($forum_data['display_on_index']) ? true : false,
               'S_PRUNE_ENABLE'         => ($forum_data['enable_prune']) ? true : false,
               'S_FORUM_LINK_TRACK'      => ($forum_data['forum_flags'] & FORUM_FLAG_LINK_TRACK) ? true : false,
               'S_PRUNE_OLD_POLLS'         => ($forum_data['forum_flags'] & FORUM_FLAG_PRUNE_POLL) ? true : false,
               'S_PRUNE_ANNOUNCE'         => ($forum_data['forum_flags'] & FORUM_FLAG_PRUNE_ANNOUNCE) ? true : false,
               'S_PRUNE_STICKY'         => ($forum_data['forum_flags'] & FORUM_FLAG_PRUNE_STICKY) ? true : false,
               'S_DISPLAY_ACTIVE_TOPICS'   => ($forum_data['forum_type'] == FORUM_POST) ? ($forum_data['forum_flags'] & FORUM_FLAG_ACTIVE_TOPICS) : true,
               'S_ENABLE_ACTIVE_TOPICS'   => ($forum_data['forum_type'] == FORUM_CAT) ? ($forum_data['forum_flags'] & FORUM_FLAG_ACTIVE_TOPICS) : false,
               'S_ENABLE_POST_REVIEW'      => ($forum_data['forum_flags'] & FORUM_FLAG_POST_REVIEW) ? true : false,
               'S_ENABLE_QUICK_REPLY'      => ($forum_data['forum_flags'] & FORUM_FLAG_QUICK_REPLY) ? true : false,
               'S_CAN_COPY_PERMISSIONS'   => ($action != 'edit' || empty($forum_id) || ($auth->acl_get('a_fauth') && $auth->acl_get('a_authusers') && $auth->acl_get('a_authgroups') && $auth->acl_get('a_mauth'))) ? true : false,
            ));

            return;

         break;

         case 'delete':

            if (!$forum_id)
            {
               trigger_error($user->lang['NO_FORUM'] . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id), E_USER_WARNING);
            }

            $forum_data = $this->get_forum_info($forum_id);

            $subforums_id = array();
            $subforums = get_forum_branch($forum_id, 'children');

            foreach ($subforums as $row)
            {
               $subforums_id[] = $row['forum_id'];
            }

            $forums_list = make_forum_select($forum_data['parent_id'], $subforums_id);

            $sql = 'SELECT forum_id
               FROM ' . FORUMS_TABLE . '
               WHERE forum_type = ' . FORUM_POST . "
                  AND forum_id <> $forum_id";
            $result = $db->sql_query_limit($sql, 1);

            if ($db->sql_fetchrow($result))
            {
               $template->assign_vars(array(
                  'S_MOVE_FORUM_OPTIONS'      => make_forum_select($forum_data['parent_id'], $subforums_id, false, true)) // , false, true, false???
               );
            }
            $db->sql_freeresult($result);

            $parent_id = ($this->parent_id == $forum_id) ? 0 : $this->parent_id;

            $template->assign_vars(array(
               'S_DELETE_FORUM'      => true,
               'U_ACTION'            => $this->u_action . "&amp;parent_id={$parent_id}&amp;action=delete&amp;f=$forum_id",
               'U_BACK'            => $this->u_action . '&amp;parent_id=' . $this->parent_id,

               'FORUM_NAME'         => $forum_data['forum_name'],
               'S_FORUM_POST'         => ($forum_data['forum_type'] == FORUM_POST) ? true : false,
               'S_FORUM_LINK'         => ($forum_data['forum_type'] == FORUM_LINK) ? true : false,
               'S_HAS_SUBFORUMS'      => ($forum_data['right_id'] - $forum_data['left_id'] > 1) ? true : false,
               'S_FORUMS_LIST'         => $forums_list,
               'S_ERROR'            => (sizeof($errors)) ? true : false,
               'ERROR_MSG'            => (sizeof($errors)) ? implode('<br />', $errors) : '')
            );

            return;
         break;

         case 'copy_perm':
            $forum_perm_from = request_var('forum_perm_from', 0);

            // Copy permissions?
            if (!empty($forum_perm_from) && $forum_perm_from != $forum_id)
            {
               copy_forum_permissions($forum_perm_from, $forum_id, true);
               cache_moderators();
               $auth->acl_clear_prefetch();
               $cache->destroy('sql', FORUMS_TABLE);

               $acl_url = '&amp;mode=setting_forum_local&amp;forum_id[]=' . $forum_id;

               $message = $user->lang['FORUM_UPDATED'];

               // Redirect to permissions
               if ($auth->acl_get('a_fauth'))
               {
                  $message .= '<br /><br />' . sprintf($user->lang['REDIRECT_ACL'], '<a href="' . append_sid("{$phpbb_admin_path}index.$phpEx", 'i=permissions' . $acl_url) . '">', '</a>');
               }

               trigger_error($message . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id));
            }

         break;
      }

      // Default management page
      if (!$this->parent_id)
      {
         $navigation = $user->lang['FORUM_INDEX'];
      }
      else
      {
         $navigation = '<a href="' . $this->u_action . '">' . $user->lang['FORUM_INDEX'] . '</a>';

         $forums_nav = get_forum_branch($this->parent_id, 'parents', 'descending');
         foreach ($forums_nav as $row)
         {
            if ($row['forum_id'] == $this->parent_id)
            {
               $navigation .= ' -&gt; ' . $row['forum_name'];
            }
            else
            {
               $navigation .= ' -&gt; <a href="' . $this->u_action . '&amp;parent_id=' . $row['forum_id'] . '">' . $row['forum_name'] . '</a>';
            }
         }
      }

      // Jumpbox
      $forum_box = make_forum_select($this->parent_id, false, false, false, false); //make_forum_select($this->parent_id);

      if ($action == 'sync' || $action == 'sync_forum')
      {
         $template->assign_var('S_RESYNCED', true);
      }

      $sql = 'SELECT *
         FROM ' . FORUMS_TABLE . "
         WHERE parent_id = $this->parent_id
         ORDER BY left_id";
      $result = $db->sql_query($sql);

      if ($row = $db->sql_fetchrow($result))
      {
         do
         {
            $forum_type = $row['forum_type'];

            if ($row['forum_status'] == ITEM_LOCKED)
            {
               $folder_image = '<img src="images/icon_folder_lock.gif" alt="' . $user->lang['LOCKED'] . '" />';
            }
            else
            {
               switch ($forum_type)
               {
                  case FORUM_LINK:
                     $folder_image = '<img src="images/icon_folder_link.gif" alt="' . $user->lang['LINK'] . '" />';
                  break;

                  default:
                     $folder_image = ($row['left_id'] + 1 != $row['right_id']) ? '<img src="images/icon_subfolder.gif" alt="' . $user->lang['SUBFORUM'] . '" />' : '<img src="images/icon_folder.gif" alt="' . $user->lang['FOLDER'] . '" />';
                  break;
               }
            }

            $url = $this->u_action . "&amp;parent_id=$this->parent_id&amp;f={$row['forum_id']}";

            $template->assign_block_vars('forums', array(
               'FOLDER_IMAGE'      => $folder_image,
               'FORUM_IMAGE'      => ($row['forum_image']) ? '<img src="' . $phpbb_root_path . $row['forum_image'] . '" alt="" />' : '',
               'FORUM_IMAGE_SRC'   => ($row['forum_image']) ? $phpbb_root_path . $row['forum_image'] : '',
               'FORUM_NAME'      => $row['forum_name'],
               'FORUM_DESCRIPTION'   => generate_text_for_display($row['forum_desc'], $row['forum_desc_uid'], $row['forum_desc_bitfield'], $row['forum_desc_options']),
               'FORUM_TOPICS'      => $row['forum_topics'],
               'FORUM_POSTS'      => $row['forum_posts'],

               'S_FORUM_LINK'      => ($forum_type == FORUM_LINK) ? true : false,
               'S_FORUM_POST'      => ($forum_type == FORUM_POST) ? true : false,

               'U_FORUM'         => $this->u_action . '&amp;parent_id=' . $row['forum_id'],
               'U_MOVE_UP'         => $url . '&amp;action=move_up',
               'U_MOVE_DOWN'      => $url . '&amp;action=move_down',
               'U_EDIT'         => $url . '&amp;action=edit',
               'U_DELETE'         => $url . '&amp;action=delete',
               'U_SYNC'         => $url . '&amp;action=sync')
            );
         }
         while ($row = $db->sql_fetchrow($result));
      }
      else if ($this->parent_id)
      {
         $row = $this->get_forum_info($this->parent_id);

         $url = $this->u_action . '&amp;parent_id=' . $this->parent_id . '&amp;f=' . $row['forum_id'];

         $template->assign_vars(array(
            'S_NO_FORUMS'      => true,

            'U_EDIT'         => $url . '&amp;action=edit',
            'U_DELETE'         => $url . '&amp;action=delete',
            'U_SYNC'         => $url . '&amp;action=sync')
         );
      }
      $db->sql_freeresult($result);

      $template->assign_vars(array(
         'ERROR_MSG'      => (sizeof($errors)) ? implode('<br />', $errors) : '',
         'NAVIGATION'   => $navigation,
         'FORUM_BOX'      => $forum_box,
         'U_SEL_ACTION'   => $this->u_action,
         'U_ACTION'      => $this->u_action . '&amp;parent_id=' . $this->parent_id,

         'U_PROGRESS_BAR'   => $this->u_action . '&amp;action=progress_bar',
         'UA_PROGRESS_BAR'   => addslashes($this->u_action . '&amp;action=progress_bar'),
      ));
   }

   /**
   * Get forum details
   */
   function get_forum_info($forum_id)
   {
      global $db;

      $sql = 'SELECT *
         FROM ' . FORUMS_TABLE . "
         WHERE forum_id = $forum_id";
      $result = $db->sql_query($sql);
      $row = $db->sql_fetchrow($result);
      $db->sql_freeresult($result);

      if (!$row)
      {
         trigger_error("Forum #$forum_id does not exist", E_USER_ERROR);
      }

      return $row;
   }

   /**
   * Update forum data
   */
   function update_forum_data(&$forum_data)
   {
      global $db, $user, $cache, $phpbb_root_path;

      $errors = array();

      if (!$forum_data['forum_name'])
      {
         $errors[] = $user->lang['FORUM_NAME_EMPTY'];
      }

      if (utf8_strlen($forum_data['forum_desc']) > 4000)
      {
         $errors[] = $user->lang['FORUM_DESC_TOO_LONG'];
      }

      if (utf8_strlen($forum_data['forum_rules']) > 4000)
      {
         $errors[] = $user->lang['FORUM_RULES_TOO_LONG'];
      }

      if ($forum_data['forum_password'] || $forum_data['forum_password_confirm'])
      {
         if ($forum_data['forum_password'] != $forum_data['forum_password_confirm'])
         {
            $forum_data['forum_password'] = $forum_data['forum_password_confirm'] = '';
            $errors[] = $user->lang['FORUM_PASSWORD_MISMATCH'];
         }
      }

      if ($forum_data['prune_days'] < 0 || $forum_data['prune_viewed'] < 0 || $forum_data['prune_freq'] < 0)
      {
         $forum_data['prune_days'] = $forum_data['prune_viewed'] = $forum_data['prune_freq'] = 0;
         $errors[] = $user->lang['FORUM_DATA_NEGATIVE'];
      }

      $range_test_ary = array(
         array('lang' => 'FORUM_TOPICS_PAGE', 'value' => $forum_data['forum_topics_per_page'], 'column_type' => 'TINT:0'),
      );

      if (!empty($forum_data['forum_image']) && !file_exists($phpbb_root_path . $forum_data['forum_image']))
      {
         $errors[] = $user->lang['FORUM_IMAGE_NO_EXIST'];
      }

      validate_range($range_test_ary, $errors);

      // Set forum flags
      // 1 = link tracking
      // 2 = prune old polls
      // 4 = prune announcements
      // 8 = prune stickies
      // 16 = show active topics
      // 32 = enable post review
      $forum_data['forum_flags'] = 0;
      $forum_data['forum_flags'] += ($forum_data['forum_link_track']) ? FORUM_FLAG_LINK_TRACK : 0;
      $forum_data['forum_flags'] += ($forum_data['prune_old_polls']) ? FORUM_FLAG_PRUNE_POLL : 0;
      $forum_data['forum_flags'] += ($forum_data['prune_announce']) ? FORUM_FLAG_PRUNE_ANNOUNCE : 0;
      $forum_data['forum_flags'] += ($forum_data['prune_sticky']) ? FORUM_FLAG_PRUNE_STICKY : 0;
      $forum_data['forum_flags'] += ($forum_data['show_active']) ? FORUM_FLAG_ACTIVE_TOPICS : 0;
      $forum_data['forum_flags'] += ($forum_data['enable_post_review']) ? FORUM_FLAG_POST_REVIEW : 0;
      $forum_data['forum_flags'] += ($forum_data['enable_quick_reply']) ? FORUM_FLAG_QUICK_REPLY : 0;

      // Unset data that are not database fields
      $forum_data_sql = $forum_data;

      unset($forum_data_sql['forum_link_track']);
      unset($forum_data_sql['prune_old_polls']);
      unset($forum_data_sql['prune_announce']);
      unset($forum_data_sql['prune_sticky']);
      unset($forum_data_sql['show_active']);
      unset($forum_data_sql['enable_post_review']);
      unset($forum_data_sql['enable_quick_reply']);
      unset($forum_data_sql['forum_password_confirm']);

      // What are we going to do tonight Brain? The same thing we do everynight,
      // try to take over the world ... or decide whether to continue update
      // and if so, whether it's a new forum/cat/link or an existing one
      if (sizeof($errors))
      {
         return $errors;
      }

      // As we don't know the old password, it's kinda tricky to detect changes
      if ($forum_data_sql['forum_password_unset'])
      {
         $forum_data_sql['forum_password'] = '';
      }
      else if (empty($forum_data_sql['forum_password']))
      {
         unset($forum_data_sql['forum_password']);
      }
      else
      {
         $forum_data_sql['forum_password'] = phpbb_hash($forum_data_sql['forum_password']);
      }
      unset($forum_data_sql['forum_password_unset']);

      if (!isset($forum_data_sql['forum_id']))
      {
         // no forum_id means we're creating a new forum
         unset($forum_data_sql['type_action']);

         if ($forum_data_sql['parent_id'])
         {
            $sql = 'SELECT left_id, right_id, forum_type
               FROM ' . FORUMS_TABLE . '
               WHERE forum_id = ' . $forum_data_sql['parent_id'];
            $result = $db->sql_query($sql);
            $row = $db->sql_fetchrow($result);
            $db->sql_freeresult($result);

            if (!$row)
            {
               trigger_error($user->lang['PARENT_NOT_EXIST'] . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id), E_USER_WARNING);
            }

            if ($row['forum_type'] == FORUM_LINK)
            {
               $errors[] = $user->lang['PARENT_IS_LINK_FORUM'];
               return $errors;
            }

            $sql = 'UPDATE ' . FORUMS_TABLE . '
               SET left_id = left_id + 2, right_id = right_id + 2
               WHERE left_id > ' . $row['right_id'];
            $db->sql_query($sql);

            $sql = 'UPDATE ' . FORUMS_TABLE . '
               SET right_id = right_id + 2
               WHERE ' . $row['left_id'] . ' BETWEEN left_id AND right_id';
            $db->sql_query($sql);

            $forum_data_sql['left_id'] = $row['right_id'];
            $forum_data_sql['right_id'] = $row['right_id'] + 1;
         }
         else
         {
            $sql = 'SELECT MAX(right_id) AS right_id
               FROM ' . FORUMS_TABLE;
            $result = $db->sql_query($sql);
            $row = $db->sql_fetchrow($result);
            $db->sql_freeresult($result);

            $forum_data_sql['left_id'] = $row['right_id'] + 1;
            $forum_data_sql['right_id'] = $row['right_id'] + 2;
         }

         $sql = 'INSERT INTO ' . FORUMS_TABLE . ' ' . $db->sql_build_array('INSERT', $forum_data_sql);
         $db->sql_query($sql);

         $forum_data['forum_id'] = $db->sql_nextid();

         add_log('admin', 'LOG_FORUM_ADD', $forum_data['forum_name']);
      }
      else
      {
         $row = $this->get_forum_info($forum_data_sql['forum_id']);

         if ($row['forum_type'] == FORUM_POST && $row['forum_type'] != $forum_data_sql['forum_type'])
         {
            // Has subforums and want to change into a link?
            if ($row['right_id'] - $row['left_id'] > 1 && $forum_data_sql['forum_type'] == FORUM_LINK)
            {
               $errors[] = $user->lang['FORUM_WITH_SUBFORUMS_NOT_TO_LINK'];
               return $errors;
            }

            // we're turning a postable forum into a non-postable forum
            if ($forum_data_sql['type_action'] == 'move')
            {
               $to_forum_id = request_var('to_forum_id', 0);

               if ($to_forum_id)
               {
                  $errors = $this->move_forum_content($forum_data_sql['forum_id'], $to_forum_id);
               }
               else
               {
                  return array($user->lang['NO_DESTINATION_FORUM']);
               }
            }
            else if ($forum_data_sql['type_action'] == 'delete')
            {
               $errors = $this->delete_forum_content($forum_data_sql['forum_id']);
            }
            else
            {
               return array($user->lang['NO_FORUM_ACTION']);
            }

            $forum_data_sql['forum_posts'] = $forum_data_sql['forum_topics'] = $forum_data_sql['forum_topics_real'] = $forum_data_sql['forum_last_post_id'] = $forum_data_sql['forum_last_poster_id'] = $forum_data_sql['forum_last_post_time'] = 0;
            $forum_data_sql['forum_last_poster_name'] = $forum_data_sql['forum_last_poster_colour'] = '';
         }
         else if ($row['forum_type'] == FORUM_CAT && $forum_data_sql['forum_type'] == FORUM_LINK)
         {
            // Has subforums?
            if ($row['right_id'] - $row['left_id'] > 1)
            {
               // We are turning a category into a link - but need to decide what to do with the subforums.
               $action_subforums = request_var('action_subforums', '');
               $subforums_to_id = request_var('subforums_to_id', 0);

               if ($action_subforums == 'delete')
               {
                  $rows = get_forum_branch($row['forum_id'], 'children', 'descending', false);

                  foreach ($rows as $_row)
                  {
                     // Do not remove the forum id we are about to change. ;)
                     if ($_row['forum_id'] == $row['forum_id'])
                     {
                        continue;
                     }

                     $forum_ids[] = $_row['forum_id'];
                     $errors = array_merge($errors, $this->delete_forum_content($_row['forum_id']));
                  }

                  if (sizeof($errors))
                  {
                     return $errors;
                  }

                  if (sizeof($forum_ids))
                  {
                     $sql = 'DELETE FROM ' . FORUMS_TABLE . '
                        WHERE ' . $db->sql_in_set('forum_id', $forum_ids);
                     $db->sql_query($sql);

                     $sql = 'DELETE FROM ' . ACL_GROUPS_TABLE . '
                        WHERE ' . $db->sql_in_set('forum_id', $forum_ids);
                     $db->sql_query($sql);

                     $sql = 'DELETE FROM ' . ACL_USERS_TABLE . '
                        WHERE ' . $db->sql_in_set('forum_id', $forum_ids);
                     $db->sql_query($sql);

                     // Delete forum ids from extension groups table
                     $sql = 'SELECT group_id, allowed_forums
                        FROM ' . EXTENSION_GROUPS_TABLE;
                     $result = $db->sql_query($sql);

                     while ($_row = $db->sql_fetchrow($result))
                     {
                        if (!$_row['allowed_forums'])
                        {
                           continue;
                        }

                        $allowed_forums = unserialize(trim($_row['allowed_forums']));
                        $allowed_forums = array_diff($allowed_forums, $forum_ids);

                        $sql = 'UPDATE ' . EXTENSION_GROUPS_TABLE . "
                           SET allowed_forums = '" . ((sizeof($allowed_forums)) ? serialize($allowed_forums) : '') . "'
                           WHERE group_id = {$_row['group_id']}";
                        $db->sql_query($sql);
                     }
                     $db->sql_freeresult($result);

                     $cache->destroy('_extensions');
                  }
               }
               else if ($action_subforums == 'move')
               {
                  if (!$subforums_to_id)
                  {
                     return array($user->lang['NO_DESTINATION_FORUM']);
                  }

                  $sql = 'SELECT forum_name
                     FROM ' . FORUMS_TABLE . '
                     WHERE forum_id = ' . $subforums_to_id;
                  $result = $db->sql_query($sql);
                  $_row = $db->sql_fetchrow($result);
                  $db->sql_freeresult($result);

                  if (!$_row)
                  {
                     return array($user->lang['NO_FORUM']);
                  }

                  $subforums_to_name = $_row['forum_name'];

                  $sql = 'SELECT forum_id
                     FROM ' . FORUMS_TABLE . "
                     WHERE parent_id = {$row['forum_id']}";
                  $result = $db->sql_query($sql);

                  while ($_row = $db->sql_fetchrow($result))
                  {
                     $this->move_forum($_row['forum_id'], $subforums_to_id);
                  }
                  $db->sql_freeresult($result);

                  $sql = 'UPDATE ' . FORUMS_TABLE . "
                     SET parent_id = $subforums_to_id
                     WHERE parent_id = {$row['forum_id']}";
                  $db->sql_query($sql);
               }

               // Adjust the left/right id
               $sql = 'UPDATE ' . FORUMS_TABLE . '
                  SET right_id = left_id + 1
                  WHERE forum_id = ' . $row['forum_id'];
               $db->sql_query($sql);
            }
         }
         else if ($row['forum_type'] == FORUM_CAT && $forum_data_sql['forum_type'] == FORUM_POST)
         {
            // Changing a category to a forum? Reset the data (you can't post directly in a cat, you must use a forum)
            $forum_data_sql['forum_posts'] = 0;
            $forum_data_sql['forum_topics'] = 0;
            $forum_data_sql['forum_topics_real'] = 0;
            $forum_data_sql['forum_last_post_id'] = 0;
            $forum_data_sql['forum_last_post_subject'] = '';
            $forum_data_sql['forum_last_post_time'] = 0;
            $forum_data_sql['forum_last_poster_id'] = 0;
            $forum_data_sql['forum_last_poster_name'] = '';
            $forum_data_sql['forum_last_poster_colour'] = '';
         }

         if (sizeof($errors))
         {
            return $errors;
         }

         if ($row['parent_id'] != $forum_data_sql['parent_id'])
         {
            if ($row['forum_id'] != $forum_data_sql['parent_id'])
            {
               $errors = $this->move_forum($forum_data_sql['forum_id'], $forum_data_sql['parent_id']);
            }
            else
            {
               $forum_data_sql['parent_id'] = $row['parent_id'];
            }
         }

         if (sizeof($errors))
         {
            return $errors;
         }

         unset($forum_data_sql['type_action']);

         if ($row['forum_name'] != $forum_data_sql['forum_name'])
         {
            // the forum name has changed, clear the parents list of all forums (for safety)
            $sql = 'UPDATE ' . FORUMS_TABLE . "
               SET forum_parents = ''";
            $db->sql_query($sql);
         }

         // Setting the forum id to the forum id is not really received well by some dbs. ;)
         $forum_id = $forum_data_sql['forum_id'];
         unset($forum_data_sql['forum_id']);

         $sql = 'UPDATE ' . FORUMS_TABLE . '
            SET ' . $db->sql_build_array('UPDATE', $forum_data_sql) . '
            WHERE forum_id = ' . $forum_id;
         $db->sql_query($sql);

         // Add it back
         $forum_data['forum_id'] = $forum_id;

         add_log('admin', 'LOG_FORUM_EDIT', $forum_data['forum_name']);
      }

      return $errors;
   }

   /**
   * Move forum
   */
   function move_forum($from_id, $to_id)
   {
      global $db, $user;

      $to_data = $moved_ids = $errors = array();

      // Check if we want to move to a parent with link type
      if ($to_id > 0)
      {
         $to_data = $this->get_forum_info($to_id);

         if ($to_data['forum_type'] == FORUM_LINK)
         {
            $errors[] = $user->lang['PARENT_IS_LINK_FORUM'];
            return $errors;
         }
      }

      $moved_forums = get_forum_branch($from_id, 'children', 'descending');
      $from_data = $moved_forums[0];
      $diff = sizeof($moved_forums) * 2;

      $moved_ids = array();
      for ($i = 0; $i < sizeof($moved_forums); ++$i)
      {
         $moved_ids[] = $moved_forums[$i]['forum_id'];
      }

      // Resync parents
      $sql = 'UPDATE ' . FORUMS_TABLE . "
         SET right_id = right_id - $diff, forum_parents = ''
         WHERE left_id < " . $from_data['right_id'] . "
            AND right_id > " . $from_data['right_id'];
      $db->sql_query($sql);

      // Resync righthand side of tree
      $sql = 'UPDATE ' . FORUMS_TABLE . "
         SET left_id = left_id - $diff, right_id = right_id - $diff, forum_parents = ''
         WHERE left_id > " . $from_data['right_id'];
      $db->sql_query($sql);

      if ($to_id > 0)
      {
         // Retrieve $to_data again, it may have been changed...
         $to_data = $this->get_forum_info($to_id);

         // Resync new parents
         $sql = 'UPDATE ' . FORUMS_TABLE . "
            SET right_id = right_id + $diff, forum_parents = ''
            WHERE " . $to_data['right_id'] . ' BETWEEN left_id AND right_id
               AND ' . $db->sql_in_set('forum_id', $moved_ids, true);
         $db->sql_query($sql);

         // Resync the righthand side of the tree
         $sql = 'UPDATE ' . FORUMS_TABLE . "
            SET left_id = left_id + $diff, right_id = right_id + $diff, forum_parents = ''
            WHERE left_id > " . $to_data['right_id'] . '
               AND ' . $db->sql_in_set('forum_id', $moved_ids, true);
         $db->sql_query($sql);

         // Resync moved branch
         $to_data['right_id'] += $diff;

         if ($to_data['right_id'] > $from_data['right_id'])
         {
            $diff = '+ ' . ($to_data['right_id'] - $from_data['right_id'] - 1);
         }
         else
         {
            $diff = '- ' . abs($to_data['right_id'] - $from_data['right_id'] - 1);
         }
      }
      else
      {
         $sql = 'SELECT MAX(right_id) AS right_id
            FROM ' . FORUMS_TABLE . '
            WHERE ' . $db->sql_in_set('forum_id', $moved_ids, true);
         $result = $db->sql_query($sql);
         $row = $db->sql_fetchrow($result);
         $db->sql_freeresult($result);

         $diff = '+ ' . ($row['right_id'] - $from_data['left_id'] + 1);
      }

      $sql = 'UPDATE ' . FORUMS_TABLE . "
         SET left_id = left_id $diff, right_id = right_id $diff, forum_parents = ''
         WHERE " . $db->sql_in_set('forum_id', $moved_ids);
      $db->sql_query($sql);

      return $errors;
   }

   /**
   * Move forum content from one to another forum
   */
   function move_forum_content($from_id, $to_id, $sync = true)
   {
      global $db;

      $table_ary = array(LOG_TABLE, POSTS_TABLE, TOPICS_TABLE, DRAFTS_TABLE, TOPICS_TRACK_TABLE);

      foreach ($table_ary as $table)
      {
         $sql = "UPDATE $table
            SET forum_id = $to_id
            WHERE forum_id = $from_id";
         $db->sql_query($sql);
      }
      unset($table_ary);

      $table_ary = array(FORUMS_ACCESS_TABLE, FORUMS_TRACK_TABLE, FORUMS_WATCH_TABLE, MODERATOR_CACHE_TABLE);

      foreach ($table_ary as $table)
      {
         $sql = "DELETE FROM $table
            WHERE forum_id = $from_id";
         $db->sql_query($sql);
      }

      if ($sync)
      {
         // Delete ghost topics that link back to the same forum then resync counters
         sync('topic_moved');
         sync('forum', 'forum_id', $to_id, false, true);
      }

      return array();
   }

   /**
   * Remove complete forum
   */
   function delete_forum($forum_id, $action_posts = 'delete', $action_subforums = 'delete', $posts_to_id = 0, $subforums_to_id = 0)
   {
      global $db, $user, $cache;

      $forum_data = $this->get_forum_info($forum_id);

      $errors = array();
      $log_action_posts = $log_action_forums = $posts_to_name = $subforums_to_name = '';
      $forum_ids = array($forum_id);

      if ($action_posts == 'delete')
      {
         $log_action_posts = 'POSTS';
         $errors = array_merge($errors, $this->delete_forum_content($forum_id));
      }
      else if ($action_posts == 'move')
      {
         if (!$posts_to_id)
         {
            $errors[] = $user->lang['NO_DESTINATION_FORUM'];
         }
         else
         {
            $log_action_posts = 'MOVE_POSTS';

            $sql = 'SELECT forum_name
               FROM ' . FORUMS_TABLE . '
               WHERE forum_id = ' . $posts_to_id;
            $result = $db->sql_query($sql);
            $row = $db->sql_fetchrow($result);
            $db->sql_freeresult($result);

            if (!$row)
            {
               $errors[] = $user->lang['NO_FORUM'];
            }
            else
            {
               $posts_to_name = $row['forum_name'];
               $errors = array_merge($errors, $this->move_forum_content($forum_id, $posts_to_id));
            }
         }
      }

      if (sizeof($errors))
      {
         return $errors;
      }

      if ($action_subforums == 'delete')
      {
         $log_action_forums = 'FORUMS';
         $rows = get_forum_branch($forum_id, 'children', 'descending', false);

         foreach ($rows as $row)
         {
            $forum_ids[] = $row['forum_id'];
            $errors = array_merge($errors, $this->delete_forum_content($row['forum_id']));
         }

         if (sizeof($errors))
         {
            return $errors;
         }

         $diff = sizeof($forum_ids) * 2;

         $sql = 'DELETE FROM ' . FORUMS_TABLE . '
            WHERE ' . $db->sql_in_set('forum_id', $forum_ids);
         $db->sql_query($sql);

         $sql = 'DELETE FROM ' . ACL_GROUPS_TABLE . '
            WHERE ' . $db->sql_in_set('forum_id', $forum_ids);
         $db->sql_query($sql);

         $sql = 'DELETE FROM ' . ACL_USERS_TABLE . '
            WHERE ' . $db->sql_in_set('forum_id', $forum_ids);
         $db->sql_query($sql);
      }
      else if ($action_subforums == 'move')
      {
         if (!$subforums_to_id)
         {
            $errors[] = $user->lang['NO_DESTINATION_FORUM'];
         }
         else
         {
            $log_action_forums = 'MOVE_FORUMS';

            $sql = 'SELECT forum_name
               FROM ' . FORUMS_TABLE . '
               WHERE forum_id = ' . $subforums_to_id;
            $result = $db->sql_query($sql);
            $row = $db->sql_fetchrow($result);
            $db->sql_freeresult($result);

            if (!$row)
            {
               $errors[] = $user->lang['NO_FORUM'];
            }
            else
            {
               $subforums_to_name = $row['forum_name'];

               $sql = 'SELECT forum_id
                  FROM ' . FORUMS_TABLE . "
                  WHERE parent_id = $forum_id";
               $result = $db->sql_query($sql);

               while ($row = $db->sql_fetchrow($result))
               {
                  $this->move_forum($row['forum_id'], $subforums_to_id);
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Msecurity
Потребител
Потребител

Регистриран на: 18/09/2010 8:12 am

Support: 19
Bonus: 37
Мнения: 753
Мнение 03/01/2014 9:57 pm      Отговорете с цитат


Ако дадеш само между 610 и 615 ред мисля че ще стане по лесно от колкото да гледаме целият файл Very Happy
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
qnkovweb
Нов
Нов

Регистриран на: 06/11/2013 8:04 pm

Support: 0
Bonus: 0
Мнения: 88
Мнение 04/01/2014 2:02 am      Отговорете с цитат


Не знам как, при положени, че ползвам notepad само. Smile
Това е чистият файл: http://dox.bg/files/dw?a=f96f95c2ef
А това е кода, който трябва да се сложи у него. При мен нещо не се получи:

Open: includes/acp/acp_forums.php
Find

Tip: This may be a partial find and not the whole line.
Code:Select all

            if (strlen($forum_data['forum_password']) == 32)
               {
                  $errors[] = $user->lang['FORUM_PASSWORD_OLD'];
               }


Add after

Tip: Add these lines on a new blank line after the preceding line(s) to find.
Code:Select all


            // Start mod list forum_images from kiss engine copyright 2007 phpbbireland.com //
            $dirslist = ' ';

            if (!file_exists($phpbb_root_path . 'images/forum_icons'))
            {
               trigger_error(sprintf($user->lang['MISSING_FILE_OR_FOLDER'], $file));
            }

            $dirs = dir($phpbb_root_path . 'images/forum_icons');
            while ($file = $dirs->read())
            {
               if (stripos($file, ".gif") ||  stripos($file, ".png"))
               {
                  $dirslist .= "$file ";
               }
            }
            closedir($dirs->handle);
            $dirslist = explode(" ", $dirslist);
            sort($dirslist);

            for ($i = 0; $i < sizeof($dirslist); $i++)
            {
               if ($dirslist[$i] != '')
               {
                  $template->assign_block_vars('forum_img_file_name', array('FORUM_IMAGE_OPT' => $dirslist[$i]));
               }
            }
            $dirslist = '';
            // End mod list forum_images from kiss engine code //
   

<< Hide
Find

Tip: This may be a partial find and not the whole line.
Code:Select all

               'FORUM_IMAGE_SRC'         => ($forum_data['forum_image']) ? $phpbb_root_path . $forum_data['forum_image'] : '',

Add after

Tip: Add these lines on a new blank line after the preceding line(s) to find.
Code:Select all

               'FORUM_IMAGE_SRC_PATH'         => $phpbb_root_path . 'images/forum_icons/',
               'FORUM_IMAGE_PATH'         => 'images/forum_icons/',
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> Всичко за phpBB Часовете са според зоната GMT + 2 Часа
Страница 1 от 1


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети