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


----

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

 Сообщение User Blog Mod phpbb3 (Дневники и Блоги) 
#1 

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

Всем доброго времени суток, это как обычно я, ваш покорный слуга, с очередным полезным анонсом. В одном из анонсов я писал, что считаю только лишь 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
          Вернуться наверх  
 

#2 

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

А на блог подписаться есть возможность, а то не заметил нигде?


_________________
Подпись:
Зри в корень
          Вернуться наверх  
 

#3 

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

Андрюх, сейчас в настройках погляжу


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

#4 

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

К сожалению в блогах нет возможности подписаться


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

#5 

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

DeaDRoMeO писал(а):

К сожалению в блогах нет возможности подписаться
когда я настраивал блог, там есть опция выбрать спосод подписки - лс или е-майл. Или это не то?


_________________
Подпись:
          Вернуться наверх  
 

#6 

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

Неа, не то, это уведомление автора записи блога о новых комментах, я сейчас шаблоны блога глядел, нету в них вывода и возможности подписаться


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

#7 

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

1. Вот эта кнопка долна называться "Новая запись".
2. Наши сообщения обсуждение возможности подписки на блог, лучше перенести в эту тему.
3. Сейчас в анонсе мода вижу:
DeaDRoMeO писал(а):

# читать RSS ленты записей

может это решение подписки?


_________________
Подпись:
          Вернуться наверх  
 

#8 

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

1) Отделил сообщения
2) Кнопку позже дорисую
3) RSS каналов всего 2 - и


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

#9 

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

DeaDRoMeO писал(а):

3) RSS каналов всего 2 - и

понятно... слабоват МОДик... маловато функционала.. но с другой стороны мы ж форум ставим а не блог...


_________________
Подпись:
          Вернуться наверх  
 


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

delitant писал(а):

понятно... слабоват МОДик

А мощней и нет, это самый функциональный мод, глядел новую версию (у меня на 1 версию старее), так и в ней нет подписок на записи


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


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

По идее блоги можно модернизировать, если разобраться с шаблоном. По крайней мере добавить похожие темы, да и с социальными закладками, профилем, теми-же ссылками: подписаться, кто смотрел тему и пр. проблем быть не должно. Движок то один... Или нет?


_________________
Подпись:
          Вернуться наверх  
 


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

Для этого надо сначала определиться чего хотим, а потом искать похожие моды и выдирать из них функционал


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


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

По мне так достаточно, чтобы блок с последними комментариями выводился на странице со статьёй


_________________
Подпись:
Зри в корень
          Вернуться наверх  
 


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

DeaDRoMeO писал(а):

потом искать похожие моды и выдирать из них функционал

а от форума не подойдет? Я хочу на свой форум ставить, но без привычных возможностей, как-то не то.
Нужно наверно поэксперементировать...


_________________
Подпись:
          Вернуться наверх  
 


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

St_roy писал(а):

По мне так достаточно, чтобы блок с последними комментариями выводился на странице со статьёй

Он как бэ и выводится
delitant писал(а):

а от форума не подойдет?

Неа, немного переписывать придется всетаки, данные то должны как то записываться и гдето храниться


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


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

DeaDRoMeO писал(а):

Он как бэ и выводится

В портале вижу, в блоге delitantа только "Автор", "Календарь" и "Поиск в дневниках"


_________________
Подпись:
Зри в корень
          Вернуться наверх  
 


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

Аааа, сегодня поколупаю эту возможность, думаю это не будет трудно


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


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

Ап теме, в конец первого сообщения добавлено небольшое дополнение


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


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

Ааааа ребята, походу намечается прорыв в плане подписок на дневник. Совершенно случайно смог установить с 80% вероятностью, что смогу реализовать подписки на чужие блоги. Сегодня мне пришло уведомление на мыло о новом комментарии к моей записи, среди прочего была ссылка чтобы отписаться, так вот она имела вид
http://hello-vitebsk.ru/blog.php?u=2&b=31&page=unsubscribe
 

Заинтересовала часть
&page=unsubscribe
 

Я вот подумал, что будет если я зайду, к примеру в эту запись блога
http://hello-vitebsk.ru/blog.php?u=310&b=46
 

и допишу в конец ссылки
&page=subscribe
 

Тобишь так
http://hello-vitebsk.ru/blog.php?u=310&b=46&page=subscribe
 

??? Каково же было мое удивление, когда перейдя по данному адресу я увидел табличку с возможностью подписаться, ведь перейдя повторно по этой ссылке я получил надпись - Вы уже подписаны, что означает, то что я успешно подписался на данную запись !!!!
Как вы думаете нужно ли дорабатывать это ??? И делать в виде дополнения к данному моду ?? Будет ли оно у вас востребовано ???
И есть одна загвоздка - данные подписки не будут отображаться в Центре пользователя, поэтому чтобы отписаться вам нужно будет перейти по ссылке из письма-уведомления


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


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

Юхууу только что проверил на левом пользователе - подписка и уведомления реально работают !!!!!!! Вообщем жду мнения общественности о том, надо ли вам оно


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


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

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

DeaDRoMeO

155

5303

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

26 дек 2014, 09:26

DeaDRoMeO

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

DeaDRoMeO

209

10734

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

10 окт 2015, 15:25

DeaDRoMeO

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

DeaDRoMeO

80

4261

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

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

542

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

20 июл 2016, 20:08

DeaDRoMeO

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

DeaDRoMeO

15

761

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

08 апр 2017, 09:20

белк

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

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

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

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


cron

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