info navigation

phpbb-belk.ru

темы, связанные с форумом phpbb 3.0.x



Новая тема  [ 1 сообщение ]  Просмотры: 3253

Автор Сообщение
Не в сети
(Андрей)  
Администратор
Аватара пользователя

Стаж: 8 лет 7 месяцев 6 дней
Сообщения: 1223
Откуда: здешние мы


Стиль: subsilver2


Репутация: 11


Russia

Тиц и PR

перейти на сайт пользователя
Найти темы пользователя


Smiles Categories - модификация для вывода смайликов

мод добавляет возможность создания отдельных категорий смайликов и отдельного выбора для вставки в сообщение.

сканы мода:

posting ACP ACP

наверное пригодится тем, у кого много смайликов и кто хочет выводить их группами (типа животные, знаки, аниме и так далее).

Если вас заинтересовал мод - ставим. Мод создан для версии 3.0.7, но я его протестировал на 3.0.14 - всё встало без подгонок.

1. Скачать мод из архива сайта:

Скачать из файлового архива сайта

распаковать и содержимое папки root загрузить в корень сайта (где файл config.php).
в папке root присутствует папка umil - если у вас на сервере уже есть эта папка - заново копировать не надо.

2. Редактируем файлы форума:

Открыть adm/style/acp_icons.html
Найти

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

   <!-- IF S_ADD -->
      <td>{L_ADD}</td>
   <!-- ENDIF -->


Вставить после найденного

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

   <!-- IF S_SMILIES --><td>{L_CATEGORY}</td><!-- ENDIF -->


Найти

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

      <!-- IF S_ADD -->
         <td><input type="checkbox" class="radio" name="add_img[{items.IMG}]" value="1" /></td>
      <!-- ENDIF -->


Вставить после найденного

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

      <!-- IF S_SMILIES --><td>{items.SMILIES_CATEGORIES_SELECT}</td><!-- ENDIF -->


Найти

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

   <form id="acp_icons" method="post" action="{U_ACTION}">

   <div style="text-align: right;"><a href="{U_IMPORT}">{L_IMPORT}</a> | <a href="{U_EXPORT}">{L_EXPORT}</a></div>


Вставить перед найденным

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

   <!-- IF S_SMILIES -->
   <div>
      <form method="post" id="categories" action="{U_ACTION}">
         {L_CATEGORY}: <select name="cat_id" id="cat_id" onchange="document.forms['categories'].submit()">
            {CATEGORIES_OPTIONS}
         </select>
      </form>
   </div>
   <!-- ENDIF -->   



Открыть includes/acp/acp_icons.php
Найти

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

      $this->tpl_name = 'acp_icons';


Вставить после найденного

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

      // Start Smiles Categories
      $user->add_lang('mods/smilies_categories');
      include($phpbb_root_path . 'includes/mods/smilies_categories.' . $phpEx);
      // End Smiles Categories


Найти

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

            $sql = "SELECT *
               FROM $table
               ORDER BY {$fields}_order " . (($icon_id || $action == 'add') ? 'DESC' : 'ASC');
            $result = $db->sql_query($sql);


Заменить найденное на

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

            // Start Smilies Categories   
            $default = true;
            $cat_id = request_var('cat_id', 0);

            if ($cat_id)
            {
               $cats = get_cats();
               $in_cat = get_smilies_in_cats();
               if (isset($cats[$cat_id]) && isset($in_cat[$cat_id]))
               {
                  $default = false;

                  $sql = 'SELECT *
                     FROM ' . SMILIES_TABLE . '
                     WHERE ' . $db->sql_in_set('smiley_id', $in_cat[$cat_id]) . '
                     ORDER BY smiley_order';
                  $result = $db->sql_query($sql);
               }
            }

            if ($default)
            {
               $sql = "SELECT *
                  FROM $table
                  ORDER BY {$fields}_order " . (($icon_id || $action == 'add') ? 'DESC' : 'ASC');
               $result = $db->sql_query($sql);
            }
            // End Smilies Categories


Найти

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

            $colspan = (($mode == 'smilies') ? 7 : 5);


Заменить найденное на

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

            // Start Smilies Categories
            $colspan = (($mode == 'smilies') ? '8' : '5');
            // End Smilies Categories


Найти

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

            foreach ($data as $img => $img_row)


Вставить перед найденным

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

            // Start Smilies Categories
            if ($mode == 'smilies')
            {
               $cats_in_smilies = get_cats_in_smilies();
               $row_cnt = 0;
            }
            // End Smilies Categories


Найти

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

                  'IMG'      => $img,
                  'A_IMG'      => addslashes($img),
                  'IMG_SRC'   => $phpbb_root_path . $img_path . '/' . $img,


Вставить перед найденным

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

                  // Start Smilies Categories
                  'SMILIES_CATEGORIES_SELECT'      => (($mode == 'smilies') ? smilies_categories_select('cat_id_' . ++$row_cnt, ((isset($img_row[$fields . '_id']) && isset($cats_in_smilies[$img_row[$fields . '_id']])) ? $cats_in_smilies[$img_row[$fields . '_id']] : array())) : ''),
                  // End Smilies Categories


Найти

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

            $icons_updated = 0;
            $errors = array();


Вставить после найденного

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

            // Start Smilies Categories
            $row_cnt = 0;
            // End Smilies Categories


Найти

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

               if ($mode == 'smilies' && ($image_emotion[$image] == '' || $image_code[$image] == ''))
               {
                  $errors[$image] = 'SMILIE_NO_' . (($image_emotion[$image] == '') ? 'EMOTION' : 'CODE');
               }


Вставить перед найденным

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

               // Start Smilies Categories
               $row_cnt++;
               // End Smilies Categories


Найти

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

                     $sql = "UPDATE $table
                        SET " . $db->sql_build_array('UPDATE', $img_sql) . "
                        WHERE {$fields}_id = " . $image_id[$image];
                     $db->sql_query($sql);
                     $icons_updated++;


Вставить после найденного

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

                     // Start Smilies Categories
                     if ($mode == 'smilies')
                     {
                        update_smiley_categories($image_id[$image], request_var('cat_id_' . $row_cnt, array(0)));
                     }
                     // End Smilies Categories


Найти

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

                     $sql = "INSERT INTO $table " . $db->sql_build_array('INSERT', $img_sql);
                     $db->sql_query($sql);
                     $icons_updated++;


Вставить после найденного

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

                     // Start Smilies Categories
                     if ($mode == 'smilies')
                     {
                        update_smiley_categories($db->sql_nextid(), request_var('cat_id_' . $row_cnt, array(0)));
                     }
                     // End Smilies Categories


Найти

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

            $cache->destroy('_icons');
            $cache->destroy('sql', $table);

            $level = E_USER_NOTICE;


Вставить перед найденным

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

            // Start Smilies Categories
            if ($mode == 'smilies')
            {
               resync_cats();
            }
            // End Smilies Categories


Найти

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

            $sql = "UPDATE $table
               SET {$fields}_order = $current_order
               WHERE {$fields}_order = $switch_order_id
                  AND {$fields}_id <> $icon_id";
            $db->sql_query($sql);


Вставить перед найденным

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

            // Start Smilies Categories
            $cat_id = request_var('cat_id', 0);
            if ($cat_id)
            {
               $cats = get_cats();
               $in_cat = get_smilies_in_cats();
               if (isset($cats[$cat_id]) && isset($in_cat[$cat_id]))
               {
                  $sql = 'SELECT *
                     FROM ' . SMILIES_TABLE . '
                     WHERE ' . $db->sql_in_set('smiley_id', $in_cat[$cat_id]) . '
                     ORDER BY smiley_order';
                  $result = $db->sql_query($sql);

                  while ($row = $db->sql_fetchrow($result))
                  {
                     if ($action == 'move_up' && $row['smiley_id'] == $icon_id)
                     {
                        break;
                     }
                     $switch_order_id = $row['smiley_order'];

                     if ($action == 'move_down' && $row['smiley_id'] == $icon_id)
                     {
                        $row = $db->sql_fetchrow($result);
                        $switch_order_id = $row['smiley_order'];
                        break;
                     }
                  }
               }
            }
            // End Smilies Categories


Найти

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

         'U_ACTION'         => $this->u_action,
         'U_IMPORT'         => $this->u_action . '&amp;action=import',
         'U_EXPORT'         => $this->u_action . '&amp;action=export',


Заменить найденное на

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

         // Start Smilies Categories
         'U_ACTION'         => $this->u_action . '&amp;cat_id=' . request_var('cat_id', 0),
         // End Smilies Categories
         'U_IMPORT'         => $this->u_action . '&amp;action=import',
         'U_EXPORT'         => $this->u_action . '&amp;action=export',


Найти

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

      $sql = "SELECT *
         FROM $table
         ORDER BY {$fields}_order ASC";
      $result = $db->sql_query_limit($sql, $config['smilies_per_page'], $pagination_start);


Заменить найденное на

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

      // Start Smilies Categories
      $cat_id = request_var('cat_id', 0);

      if ($cat_id > 0)
      {
         $cats = get_cats();
         $in_cat = get_smilies_in_cats();
         if (isset($cats[$cat_id]) && isset($in_cat[$cat_id]))
         {
            $sql = 'SELECT COUNT(smiley_id) AS count
               FROM ' . SMILIES_TABLE . '
               WHERE ' . $db->sql_in_set('smiley_id', $in_cat[$cat_id]) . '
               GROUP BY smiley_url';
            $result = $db->sql_query($sql, 3600);

            $item_count = 0;

            while ($row = $db->sql_fetchrow($result))
            {
               ++$item_count;
            }
            $db->sql_freeresult($result);

            $sql = 'SELECT *
               FROM ' . SMILIES_TABLE . '
               WHERE ' . $db->sql_in_set('smiley_id', $in_cat[$cat_id]) . '
               ORDER BY smiley_order';
            $result = $db->sql_query_limit($sql, $config['smilies_per_page'], $pagination_start);
         }
         $template->assign_var('PAGINATION',
            generate_pagination(($this->u_action . '&amp;cat_id=' . $cat_id), $item_count, $config['smilies_per_page'], $pagination_start, true)
         );
      }
      else
      {
         $sql = "SELECT *
            FROM $table
            ORDER BY {$fields}_order ASC";
         $result = $db->sql_query_limit($sql, $config['smilies_per_page'], $pagination_start);
         
         $template->assign_var('PAGINATION',
            generate_pagination($this->u_action, $item_count, $config['smilies_per_page'], $pagination_start, true)
         );
      }
      $template->assign_var('CATEGORIES_OPTIONS', smilies_categories_options(array($cat_id)));
      // End Smilies Categories


Найти

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

            'U_MOVE_UP'      => $this->u_action . '&amp;action=move_up&amp;id=' . $row[$fields . '_id'] . '&amp;start=' . $pagination_start,
            'U_MOVE_DOWN'   => $this->u_action . '&amp;action=move_down&amp;id=' . $row[$fields . '_id'] . '&amp;start=' . $pagination_start,


Заменить найденное на

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

            // Start Smilies Categories
            'U_MOVE_UP'      => $this->u_action . '&amp;action=move_up&amp;id=' . $row[$fields . '_id'] . '&amp;cat_id=' . request_var('cat_id', 0) . '&amp;start=' . $pagination_start,
            'U_MOVE_DOWN'   => $this->u_action . '&amp;action=move_down&amp;id=' . $row[$fields . '_id'] . '&amp;cat_id=' . request_var('cat_id', 0) . '&amp;start=' . $pagination_start
            // End Smilies Categories


Найти

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

      $template->assign_var('PAGINATION',
         generate_pagination($this->u_action, $item_count, $config['smilies_per_page'], $pagination_start, true)
      );


Заменить найденное на

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

      /* Deleted from Smilie Categories
      $template->assign_var('PAGINATION',
         generate_pagination($this->u_action, $item_count, $config['smilies_per_page'], $pagination_start, true)
      );
      */



Открыть includes/functions_posting.php
Найти

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

      $sql = 'SELECT COUNT(smiley_id) AS item_count
         FROM ' . SMILIES_TABLE . '
         GROUP BY smiley_url';
      $result = $db->sql_query($sql, 3600);

      $smiley_count = 0;
      while ($row = $db->sql_fetchrow($result))
      {
         ++$smiley_count;
      }
      $db->sql_freeresult($result);

      $template->set_filenames(array(
         'body' => 'posting_smilies.html')
      );

      $template->assign_var('PAGINATION',
         generate_pagination(append_sid("{$phpbb_root_path}posting.$phpEx", 'mode=smilies&amp;f=' . $forum_id),
            $smiley_count, $config['smilies_per_page'], $start, true)
      );


Заменить найденное на

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

      $template->set_filenames(array(
         'body' => 'posting_smilies.html')
      );


Найти

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

      $sql = 'SELECT smiley_url, MIN(emotion) as emotion, MIN(code) AS code, smiley_width, smiley_height
         FROM ' . SMILIES_TABLE . '
         GROUP BY smiley_url, smiley_width, smiley_height
         ORDER BY MIN(smiley_order)';
      $result = $db->sql_query_limit($sql, $config['smilies_per_page'], $start, 3600);


Заменить найденное на

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

      include($phpbb_root_path . 'includes/mods/smilies_categories.' . $phpEx);
      $cat_id = request_var('cat_id', 0);

      if ($cat_id > 0)
      {
         $cats = get_cats();
         $in_cat = get_smilies_in_cats();
         if (isset($cats[$cat_id]) && isset($in_cat[$cat_id]))
         {
            $sql = 'SELECT COUNT(smiley_id) AS item_count
               FROM ' . SMILIES_TABLE . '
               WHERE ' . $db->sql_in_set('smiley_id', $in_cat[$cat_id]) . '
               GROUP BY smiley_url';
            $result = $db->sql_query($sql, 3600);

            $smiley_count = 0;
            while ($row = $db->sql_fetchrow($result))
            {
               ++$smiley_count;
            }
            $db->sql_freeresult($result);

            $sql = 'SELECT *
               FROM ' . SMILIES_TABLE . '
               WHERE ' . $db->sql_in_set('smiley_id', $in_cat[$cat_id]) . '
               ORDER BY smiley_order';
            $result = $db->sql_query_limit($sql, $config['smilies_per_page'], $start, 3600);

            $template->assign_var('L_SMILIES', $user->lang['SMILIES'] . ' &bull; ' . $cats[$cat_id]['cat_name']);
         }
      }
      else
      {
         $sql = 'SELECT COUNT(smiley_id) AS item_count
            FROM ' . SMILIES_TABLE . '
            GROUP BY smiley_url';
         $result = $db->sql_query($sql, 3600);

         $smiley_count = 0;
         while ($row = $db->sql_fetchrow($result))
         {
            ++$smiley_count;
         }
         $db->sql_freeresult($result);

         $sql = 'SELECT smiley_url, MIN(emotion) as emotion, MIN(code) AS code, smiley_width, smiley_height, MIN(smiley_order) AS min_smiley_order
            FROM ' . SMILIES_TABLE . '
            GROUP BY smiley_url, smiley_width, smiley_height
            ORDER BY min_smiley_order';
         $result = $db->sql_query_limit($sql, $config['smilies_per_page'], $start, 3600);
      }

      $template->assign_vars(array(
         'PAGINATION'         => generate_pagination(append_sid("{$phpbb_root_path}posting.$phpEx", 'mode=smilies&amp;f=' . $forum_id . '&amp;cat_id=' . $cat_id), $smiley_count, $config['smilies_per_page'], $start, true),
         'S_CAT_ACTION'         => append_sid("{$phpbb_root_path}posting.$phpEx", 'mode=smilies&amp;f=' . $forum_id),
         'CATEGORIES_OPTIONS'   => smilies_categories_options(array($cat_id))
      ));



для стилей на основе prosilver
Открыть styles/prosilver/template/posting_smilies.html
Найти

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

<script type="text/javascript" src="{T_TEMPLATE_PATH}/editor.js"></script>


Вставить после найденного

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

<span style="float: right; padding-top: 5px;">
   <form method="post" id="categories" action="{S_CAT_ACTION}">
      <select name="cat_id" id="cat_id" onchange="document.forms['categories'].submit()">
         {CATEGORIES_OPTIONS}
      </select>
   </form>
</span>


для стилей на основе subsilver2
Открыть styles/subsilver2/template/posting_smilies.html
Найти

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

<script type="text/javascript" src="{T_TEMPLATE_PATH}/editor.js"></script>


Вставить после найденного

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

<form method="post" id="categories" action="{S_CAT_ACTION}">
   <select name="cat_id" id="cat_id" onchange="document.forms['categories'].submit()">
      {CATEGORIES_OPTIONS}
   </select>
</form>


3. Завершение установки:

Для завершения установки необходимо запустить файл через браузер по адресу:

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

http://ваш сайт/install_smilie_categories.php


после отработки скрипта удалите файл install_smilie_categories.php с сервера.

Очистите кэш. Всё. Теперь можно идти в админку и создавать новые категории со смайликами. :)

ссылку на автора писать не буду, так как не нашёл первоисточник и описание, мод и русификатор брал с разных мест. кому интересно ещё почитать об этом моде - наберите в поисковике Smiles Categories для phpbb3.

Успешного применения.


трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
Smiles Categories,phpbb3,mod
Показать сообщения за:  Поле сортировки  
Ответить на тему  [ 1 сообщение ] 

Кто сейчас на сайте:

Всего посетителей: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (122) здесь было 19 дек 2023, 12:10

Сейчас этот раздел просматривают: нет зарегистрированных пользователей и гости: 1

Часовой пояс: UTC + 2 часа



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Вы не можете защищать свои темы паролем

Найти:
Перейти:  




cron

Текущее время: 27 апр 2024, 19:53

Создано на основе phpBB® Forum Software © phpBB Group
Яндекс.Метрика

Полная версия Мобильный вид