Полезная информация


----

Начать новую тему Ответить на тему
АвторСообщение

 Сообщение User Blog Mod phpbb3 (Дневники и Блоги) 2012-08-01

Аватар пользователя

Всем доброго времени суток, это как обычно я, ваш покорный слуга, с очередным полезным анонсом. В одном из анонсов я писал, что считаю только лишь 3 модификации самыми крупными и удачными для наших форумов, Фотогаллерею, Портал и сегодняшний анонс - Дневники(Блоги).

Мод очень удачный и самый мощный в своем роде, приятное дополнение к форумным темам. Позволит вашим пользователям обзаводиться собственными Дневниками (Блогами), функционал вас порадует, помимо создания обычных записей пользователи смогут
  • комментировать свои и чужие записи
  • ставить оценки записям (рейтинг в Блогах)
  • создавать голосования и опросы в записях
  • читать RSS ленты записей
  • сделать свой индивидуальный стиль Блога
И многое многое другое...

Вообщем мод не так уж тяжел в установке и настройке, скачиваем и устанавливаем по инструкции

Разумеется, после установки нам надо руссифицировать мод, руссификация ниже
Вложение :
Комментарий к файлу: Руссификация модификации User Blog Mod
User_Blog_Mod_1.0.13_Ru.zip [27.94 KiB]
Скачиваний: 241

Обе папки из архива размещаем в корне форума. Собственно на этом все, сам по себе мод может быть подвергнут множеству доработок на любой вкус, если будут пожелания, то отписываемся в данной темке :bra_vo:

Дополнение. Блок с новыми комментариями и записями для Портала

Наверняка вы заметили у меня на Портале чудесный блок, в котором отображается частично текст самой последней записи в Блогах, а так же список последних записей и комментариев. Аккуратненько и удобно. Хотелось бы поделиться им с вами. Скачиваем дополнение и устанавливаем по инструкции
Вложение :
Комментарий к файлу: Дополнение к модификации User Blog Mod
User Blog Mod Addons.rar [52.16 KiB]
Скачиваний: 146

После установки данной модификации, открыть includes/functions.php и найти
function get_complete_blog_tracking($blog_id, $topic_ids, $global_announce_list = false)
{
   global $config, $user, $db;
   include($phpbb_root_path . 'blog/includes/constants.php' . $phpEx);
   $last_read = array();

   if (!is_array($topic_ids))
   {
      $topic_ids = array($topic_ids);
   }

   $sql = 'SELECT blog_reply_id, mark_time
      FROM ' . BLOGS_REPLY_TRACKS_TABLE . "
      WHERE user_id = {$user->data['user_id']}
         AND " . $db->sql_in_set('blog_reply_id', $topic_ids);
   $result = $db->sql_query($sql);

   while ($row = $db->sql_fetchrow($result))
   {
      $last_read[$row['blog_reply_id']] = $row['mark_time'];
   }
   $db->sql_freeresult($result);

   $topic_ids = array_diff($topic_ids, array_keys($last_read));

   if (sizeof($topic_ids))
      {
         $sql = 'SELECT blog_id, mark_time
            FROM ' . BLOGS_TRACKS_TABLE . "
            WHERE user_id = {$user->data['user_id']}
               AND blog_id " .
               (($global_announce_list && sizeof($global_announce_list)) ? "IN (0, $blog_id)" : "= $blog_id");
         $result = $db->sql_query($sql);

         $mark_time = array();
         while ($row = $db->sql_fetchrow($result))
         {
            $mark_time[$row['blog_id']] = $row['mark_time'];
         }
         $db->sql_freeresult($result);

         $user_lastmark = (isset($mark_time[$blog_id])) ? $mark_time[$blog_id] : $user->data['user_last_blog_mark'];

         foreach ($topic_ids as $blog_reply_id)
         {
            if ($global_announce_list && isset($global_announce_list[$blog_reply_id]))
            {
               $last_read[$blog_reply_id] = (isset($mark_time[0])) ? $mark_time[0] : $user_lastmark;
            }
            else
            {
               $last_read[$blog_reply_id] = $user_lastmark;
            }
         }
      }

   return $last_read;
}

function markread_blog_post($mode, $blog_id = false, $blog_reply_id = false, $post_time = 0, $user_id = 0)
{
   global $db, $user, $config;

   if ($blog_id === false)
   {
      return;
   }

   if ($config['load_db_lastread'] && $user->data['is_registered'])
   {
      $sql = 'UPDATE ' . BLOGS_REPLY_TRACKS_TABLE . '
         SET mark_time = ' . (($post_time) ? $post_time : time()) . "
         WHERE user_id = {$user->data['user_id']}
            AND blog_reply_id = $blog_reply_id";
      $db->sql_query($sql);

      // insert row
      if (!$db->sql_affectedrows())
      {
         $db->sql_return_on_error(true);

         $sql_ary = array(
            'user_id'      => (int) $user->data['user_id'],
            'blog_reply_id'   => (int) $blog_reply_id,
            'blog_id'      => (int) $blog_id,
            'mark_time'      => ($post_time) ? (int) $post_time : time(),
         );

         $db->sql_query('INSERT INTO ' . BLOGS_REPLY_TRACKS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));
         $sql = 'INSERT INTO ' . BLOGS_REPLY_TRACKS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
                    $db->sql_return_on_error(false);
      }
   }
   return;
}
 

Заменить на
function get_complete_blog_tracking($blog_id, $topic_ids, $global_announce_list = false)
{
   global $config, $user, $db, $phpbb_root_path, $phpEx;
   include($phpbb_root_path . 'blog/includes/constants.' . $phpEx);
   $last_read = array();

   if (!is_array($topic_ids))
   {
      $topic_ids = array($topic_ids);
   }

   $sql = 'SELECT blog_reply_id, mark_time
      FROM ' . BLOGS_REPLY_TRACKS_TABLE . "
      WHERE user_id = {$user->data['user_id']}
         AND " . $db->sql_in_set('blog_reply_id', $topic_ids);
   $result = $db->sql_query($sql);

   while ($row = $db->sql_fetchrow($result))
   {
      $last_read[$row['blog_reply_id']] = $row['mark_time'];
   }
   $db->sql_freeresult($result);

   $topic_ids = array_diff($topic_ids, array_keys($last_read));

   if (sizeof($topic_ids))
      {
         $sql = 'SELECT blog_id, mark_time
            FROM ' . BLOGS_TRACKS_TABLE . "
            WHERE user_id = {$user->data['user_id']}
               AND blog_id " .
               (($global_announce_list && sizeof($global_announce_list)) ? "IN (0, $blog_id)" : "= $blog_id");
         $result = $db->sql_query($sql);

         $mark_time = array();
         while ($row = $db->sql_fetchrow($result))
         {
            $mark_time[$row['blog_id']] = $row['mark_time'];
         }
         $db->sql_freeresult($result);

         $user_lastmark = (isset($mark_time[$blog_id])) ? $mark_time[$blog_id] : $user->data['user_last_blog_mark'];

         foreach ($topic_ids as $blog_reply_id)
         {
            if ($global_announce_list && isset($global_announce_list[$blog_reply_id]))
            {
               $last_read[$blog_reply_id] = (isset($mark_time[0])) ? $mark_time[0] : $user_lastmark;
            }
            else
            {
               $last_read[$blog_reply_id] = $user_lastmark;
            }
         }
      }

   return $last_read;
}

function markread_blog_post($mode, $blog_id = false, $blog_reply_id = false, $post_time = 0, $user_id = 0)
{
   global $db, $user, $config;

   if ($blog_id === false)
   {
      return;
   }

   if ($config['load_db_lastread'] && $user->data['is_registered'])
   {
      $sql = 'UPDATE ' . BLOGS_REPLY_TRACKS_TABLE . '
         SET mark_time = ' . (($post_time) ? $post_time : time()) . "
         WHERE user_id = {$user->data['user_id']}
            AND blog_reply_id = $blog_reply_id";
      $db->sql_query($sql);

      // insert row
      if (!$db->sql_affectedrows())
      {
         $db->sql_return_on_error(true);

         $sql_ary = array(
            'user_id'      => (int) $user->data['user_id'],
            'blog_reply_id'   => (int) $blog_reply_id,
            'blog_id'      => (int) $blog_id,
            'mark_time'      => ($post_time) ? (int) $post_time : time(),
         );

         $db->sql_query('INSERT INTO ' . BLOGS_REPLY_TRACKS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));
         $sql = 'INSERT INTO ' . BLOGS_REPLY_TRACKS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
                    $db->sql_return_on_error(false);
      }
   }
   return;
}
 

Это уберет некоторые ошибки. Хочу отметить то, что данный блок можно встроить в любую страницу форума, добавив
include($phpbb_root_path . 'portal/block/top10_blogs.'.$phpEx);
 

В нужную php страницу и
   <!-- IF S_DISPLAY_BLOGS -->
      <!-- INCLUDE portal/block/top10_blog.html -->
   <!-- ENDIF -->
 

В нужный шаблон стиля

--------------------- По поводу подписок на дневники --------------------

После долгих мучений и поисков, оказалось, что подписки все же есть в дневниках, притом 2 типа - подписка на весь дневник и подписка на отдельную запись. Странно но эти пункты у меня не отображались в стиле и в шаблоне не было этого прописано. Скорее всего это касается всех шаблонов на основе сабсильвер2. Вообщем чтобы решить это недоразумение нужно открыть шаблон блога left_menu.html и прописать в удобное для себя место код
<!-- IF S_WATCH_FORUM_LINK --> &bull; <a href="{S_WATCH_FORUM_LINK}" title="{S_WATCH_FORUM_TITLE}">{S_WATCH_FORUM_TITLE}</a><!-- ENDIF -->
 

Теперь при просмотре списка записей будет возможность подписаться на весь дневник автора, а если зайти в просмотр конкретной записи - можно подписаться только на нее, вернее на ее комментарии

A ВНИМАНИЕ !!!Может быть так только у меня, а может и нет, но нашел такой баг - после подписки на весь дневник вцелом, нельзя потом от него отписаться.

Решение !!! Не знаю какая логика была у автора мода, но все проблемы решаются следущим образом.
1) Нужно зайти в Блоги и кликнуть в левом меню Настройки дневника
2) Найти пункт Подписка по умолчанию и убрать галочки из чекбоксов
3) Нажать Отправить и вы отписаны от всех блогов

Решение данной проблемы должно быть еще одно, я буду заниматься его поисками



От себя добавлю что в блогах на нашем Форуме активирована возможность подписок, гляньте в левое меню при просмотре чьего либо блога. А так же есть возможность читать RSS ленту блогов отдельных авторов :ya_hoo_oo:

----------- Дополнение. Облаго тегов для блога -----------

Накопал недавно хороший плагин для блогов - Облако тегов. Суть в том, что при создании новой записи пользователю будет предложено ввести список тегов, наиболее подходящих к данной записи. После установки плагина и ввода первых тегов, в левом меню будет отображаться эдакое облако тегов, притом активных (по нажатии на тег будут показываться записи, ассоциированные с ним). Протестировать данный плагин вы можете у нас на Форуме, первые тестовые теги вбиты. Если кого заинтересовало, то скачиваем архив с плагином
Вложение :
Комментарий к файлу: Плагин облака тегов для модификации User Blog Mod
Blog Tags.rar [13.33 KiB]
Скачиваний: 65

Как устанавливать плагины ???
Установка очень проста, в архиве обычно лежит инструкция по установке, в данном случае вам нужно из папки Blog Tags/root/ скопировать все файлы в корень форума, а потом зайти в админку в настройки Блогов, в пункт Плагины и активировать данный плагин. Руссификация уже лежит в нужной папке. Надеюсь вам пригодится

--------------------Дополнение. Быстрая цитата в Блогах и обращение по нику --------------------

Давненько обещал выложить сию доработку для Блогов, потестировать ее вы можете в Блогах нашего Форума.

A Внимание !!!Данную доработку ставить лишь в том случае, если у вас установлена !!!


Вообщем открываем styles/prosilver/template/blog/quick_reply.html и в самый верх кода добавляем
<script type="text/javascript">
// <![CDATA[
   var form_name = 'postform';
   var text_name = 'message';
// ]]>
</script>
<script type="text/javascript" src="{T_TEMPLATE_PATH}/editor.js"></script>
 

Открываем styles/prosilver/template/blog/view_blog.html и находим
   <strong>{blogrow.USER_FULL}</strong>
 

Заменяем найденное на
   <!-- IF S_QUICK_REPLY --><a href="#postform" title="{L_QUOTE_USERNAME}" onclick="insert_text('[b]{blogrow.USER_QUOTE}[/b]'); return false;"<!-- IF blogrow.USER_COLOUR --> style="color: {blogrow.USER_COLOUR}"<!-- ENDIF -->><strong>{blogrow.USERNAME}</strong></a><!-- ELSE --><strong>{blogrow.USER_FULL}</strong><!-- ENDIF -->
 

Дважды находим
   <strong>{replyrow.USER_FULL}</strong>
 

И заменяем найденное на
<!-- IF S_QUICK_REPLY --><strong><a href="#postform" title="{L_QUOTE_USERNAME}" onclick="insert_text('[b]{replyrow.USER_QUOTE}[/b]'); return false;"<!-- IF replyrow.USER_COLOUR --> style="color: {replyrow.USER_COLOUR}"<!-- ENDIF -->>{replyrow.USERNAME}</a></strong><!-- ELSE --><strong>{replyrow.USER_FULL}</strong><!-- ENDIF --> 
 

Открываем styles/prosilver/template/blog/view_blog.html и находим
<!-- IF replyrow.U_EDIT --><li class="edit-icon"><a href="{replyrow.U_EDIT}" title="{L_EDIT_POST}"><span>{L_EDIT_POST}</span></a></li><!-- ENDIF -->
 

Добавляем перед
   <!-- IF S_QUICK_REPLY --><li class="quickquote-icon"><a href="#postform" onclick="if((window.getSelection && window.getSelection().toString() == '') || (document.getSelection && document.getSelection() == '') || (document.selection && document.selection.createRange().text == '')){ alert('{L_NO_SELECTION}'); return false; }else{addquote({replyrow.ID},'{replyrow.USER_QUOTE}'); insert_text('\r\n'); return false; }" title="{L_QUICKQUOTE_TEXT}"><span>{L_QUICKQUOTE_TEXT}</span></a></li><!-- ENDIF -->
 

Находим
<!-- IF blogrow.U_EDIT --><li class="edit-icon"><a href="{blogrow.U_EDIT}" title="{L_EDIT_POST}"><span>{L_EDIT_POST}</span></a></li><!-- ENDIF -->
 

Добавляем перед
<!-- IF S_QUICK_REPLY --><li class="quickquote-icon"><a href="#postform" onclick="if((window.getSelection && window.getSelection().toString() == '') || (document.getSelection && document.getSelection() == '') || (document.selection && document.selection.createRange().text == '')){ alert('{L_NO_SELECTION}'); return false; }else{addquote({blogrow.ID},'{blogrow.USER_QUOTE}'); insert_text('\r\n'); return false; }" title="{L_QUICKQUOTE_TEXT}"><span>{L_QUICKQUOTE_TEXT}</span></a></li><!-- ENDIF --> 
 

Открываем blog/includes/blog_data.php и находим (Находим только второе вхождение, приблизительно 1180 строка)
'USER_FULL'         => self::$user[$user_id]['username_full'],
 

Добавляем после
'USER_QUOTE'      => addslashes(self::$user[$user_id]['username']), 
 

Чистим кеш и радуемся результатам :ya_hoo_oo:


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!

Теги темы
User Blog Mod, User Blog Mod phpbb3 (Дневники и Блоги), блоги phpbb3, дневники phpbb3, мод дневников phpbb3, мод блогов phpbb3
          Вернуться наверх  
 


Аватар пользователя

Как-то закручено с rss.... Тем более я их отключил... Нужно так... Ссылки стали отображаться, спасибо. А вот фото не отображается, пишет просто вложение.


          Вернуться наверх  
 


Аватар пользователя

Цитата:
Ссылки стали отображаться, спасибо. А вот фото не отображается, пишет просто вложение.

У меня вложения вообще отключены. Изо добавляется через код [img]. Попробуй, должно отображаться.

Цитата:
Как-то закручено с rss...

Понимаю :-00):
Но это такой движок. На нём всё закручено. На нём всё непросто. Скажем так, админы, которые его выбрали и остались с ним, не ищут лёгких путей. Так что тебе либо бросать его пока не поздно, либо просто принять его плюсы и минусы как данность. Я сама бросить хотела, но не смогла. Влюбилась, что ли.


          Вернуться наверх  
 


Аватар пользователя

движок шикарный, лепи из него все, что хочешь! Главное 3.2 не врубать, как понял там и дизайн не поменять. Блин). Хотя функции там шикарные, в плане уведомлений.


          Вернуться наверх  
 


Аватар пользователя

Здравствуйте, и еще один вопрос по блогам, последний. Решили вывести теги на главную форума, но никак не могу разобраться. Помогите пожалуйста. Нужно, чтобы все теги созданные в дневниках стали отображаться на главной страничке форума. Если создают новый дневник и новый тег, то он обязательно обновлялся бы и на форуме. Спасибо


          Вернуться наверх  
 


Аватар пользователя

Жаль, но я в командировке, там по сути проще некуда, нужно поглядеть в php и html файлах блога как идет получение и вывод тегов, а потом по аналогии вписать в index.php и index_body.html соответственно


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Ребяты, ребяты! :is_te_ri_ka:

Как отключить комменты в этих блогах? В функционале нет такого :ne_vi_del:
Это ж тогда надо где-то код какой-то удалять, а я не умею. Потому что не знаю какой, да и боюся :ny_tik:


          Вернуться наверх  
 


Аватар пользователя

у меня он на текущий момент не установлен, но я что-то очень сильно сомневаюсь, что нет запрета оставлять комментарии. должно быть. это же основная функция. скорее всего она не глобальная, то есть не в админке, а где-нибудь в личных настройках владельца блога/дневника.

поищите...


_________________
Подпись:
три головы - это хорошо. но как же трудно придти к согласию...
* белк может помочь, но ставить за кого-то моды не будет... ни платно, ни бесплатно. *
          Вернуться наверх  
 


Аватар пользователя

искала. нету. и кнопка эта ещё комментирования зачем-то над постом висит :-(--

Сообщение добавлено... спустя 5 минут 25 секунд:
и на главной блок с коментами. Их хоть и нету, а он всё равно так мешается с надписью "нет коммнтов"


          Вернуться наверх  
 


Аватар пользователя

очень странно... на вскидку ткнуть пальцем что необходимо вырезать - я не могу. а у меня модификация не установлена...


_________________
Подпись:
три головы - это хорошо. но как же трудно придти к согласию...
* белк может помочь, но ставить за кого-то моды не будет... ни платно, ни бесплатно. *
          Вернуться наверх  
 


Аватар пользователя

Глобальные права доступа для групп - Для каждой группы на вкладке Дневники запретить право Может комментировать записи в дневниках

Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Сработало, кнопка комментов исчезла :bra_vo:

Только вот ещё что: в статистеке моячит инфа, что, мол, ноль комментов. А можно ли вообще этот блок статистики удалить?

Сообщение добавлено... спустя 4 минуты 40 секунд:
И у вас в дневниках нет титульной страницы, то есть сразу после входа в дневник видны последние записи. Как вы это сделали? А у меня титульная страница из трёх блоков "случайная запись" (в самом верху), потом "последние записи" (колонка слева) и "последние комментарии" (колонка рядом - справа). Следовательно, как её убрать, чтоб сразу как у вас было - без всех этих блоков? Лазила и в настройках в админке и в самом дневнике - ни черта не нашла :-(--


Вложения:

          Вернуться наверх  
 


Аватар пользователя

Милена писал(а):

Лазила и в настройках в админке и в самом дневнике - ни черта не нашла

Это дополнение Userlist называется, поищите на просторах интернета ибо у меня он не сохранился в виде архива, а по файлам я не знаю что собирать для вас


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

я в своё время долго его искал на просторах интернета. вот:
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку


_________________
Подпись:
три головы - это хорошо. но как же трудно придти к согласию...
* белк может помочь, но ставить за кого-то моды не будет... ни платно, ни бесплатно. *
          Вернуться наверх  
 


Аватар пользователя

Спасибо, парни! :p_a-r_t_y:

Белк, у тебя наверно в архиве всё есть, как у ФСБ :hi_hi_hi:


          Вернуться наверх  
 
 
Начать новую тему Ответить на тему


Дополнительные возможности

  Похожие темы  Автор  Ответов  Просмотров  Последнее сообщение 
Аватар пользователя User Rank Progression Bar phpbb3
User Rank Progression Bar phpbb3 - модификация для форума phpbb3, показывающая в процентном соотношении прогресс до получения нового звания на форуме

DeaDRoMeO

155

5285

Аватар пользователя

26 дек 2014, 09:26

DeaDRoMeO

Аватар пользователя User reputation points phpbb3 (Репутация)
User reputation points - модификация для phpbb3, организующая на форуме систему репутации пользователя, как графическую так и текстовую

DeaDRoMeO

209

10703

Аватар пользователя

10 окт 2015, 15:25

DeaDRoMeO

Аватар пользователя User reminder phpbb3 (напоминания неактивным)
User reminder - модификация для phpbb3, организующее очень удобную напоминалку неактивным пользователям форума. Массовая отправка напоминаний.

DeaDRoMeO

80

4246

Аватар пользователя

21 сен 2015, 11:38

DeaDRoMeO

Аватар пользователя Email To User On Group Status Change phpbb3
Email To User On Group Status Change - модификация для phpbb3, добавляющая на форум e-mail уведомления пользователям при их добавлении, перемещении, удалении из группы

DeaDRoMeO

0

538

Аватар пользователя

20 июл 2016, 20:08

DeaDRoMeO

Аватар пользователя mChat phpbb3
mChat - модификация для phpbb3, добавляющая на ваш форум удобный чат с расширенным функционалом

DeaDRoMeO

15

748

Аватар пользователя

08 апр 2017, 09:20

белк

Оставить свой комментарий

Поделиться темой с помощью

Ссылки на тему

Прямая ссылка:
BB-код для форумов, сайтов, блогов:
HTML ссылка:
 


Самая неформальная поддержка phpBB :P