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


----

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

 Сообщение 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
          Вернуться наверх  
 


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

Ап теме, владельцам блогов и юзерам читать конец первого сообщения темы, пункт По поводу подписок на дневники


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


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

О!
Попробуем :-00):


_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
          Вернуться наверх  
 


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

Конечно нужно. Все что делает форум и его составные части удобнее, просто необходимо. Интересно, больше никто не догадался о такой возможности?


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


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

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


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


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

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


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


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

DeaDRoMeO писал(а):

А так же есть возможность читать RSS ленту блогов отдельных авторов

Подписался на RSS коментарии блога, такой баг - кликаю на ссылке в RSS но на блог не переходит, потому что у всех ссылок один url - blog.php?mode=recent_comments&feed=ATOM Заголовки правильные (разные), а url - один.


_________________
Подпись:

Информация о редактировании
Последний раз редактировалось delitant 01 сен 2012, 09:28, всего редактировалось 1 раз.
          Вернуться наверх  
 


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

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


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


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

Ап теме, в первое сообщение добавлена инструкция по вживлению быстрой цитаты в Блоги))


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


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

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

Как это вылечить?
Спасибо.


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


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

Кхмммм шаблон какой в блогах используется ??


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


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

Просильвер и Сабсильвер2
Но шаблоны тут не причём, я проверял...


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


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

Тобишь ошибка во всех шаблонах ?? Версия мода какая стоит?


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


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

Можно ли сделать несколько обязательных полей (шаблон) отправки записей в дневник? Что-бы записи были похожи друг на друга. Например:
для блога (дневника) о фильмах стандартные поля: изображение, дата выхода, продолжительность, описание;
для дневника похудения: вес за сегодня, меню за день, калорийность и пр.
Т.е. запись должна состоять из названия, формы ввода записи, теги, описание, дополнительные поля.
Может быть встречал инфу (моды) или подскажешь как сделать (где копать, что искать)?


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


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

Кхммм надо поискать будет, пока не встречал такого, такая вещь требует наверняка новых полей в БД


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


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

DeaDRoMeO писал(а):

Вот что вам нужно))

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


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


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

Что то вроде шаблона запроса, как на гуру?
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку

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


_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
          Вернуться наверх  
 


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

Lorem Ipsum писал(а):

Что то вроде шаблона запроса, как на гуру?

Да


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


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

В темке трекера я дал ссылку на нужный мод)


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


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

А можно вкратце, желательно с небольшим примером - как стиль блога редактируется? Просто, поле для ввода css там пустое.


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


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

Поставил дополнение Облаго тегов для блога, штука класская в плане оптимизации форума, а вот дополнение к порталу блок топ10 я так понял подходит только для портала версии 1.6, для 2.0.1 он не установится. Если так, то надо в шапке подправить для какой именно версии портала.


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


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

  Похожие темы  Автор  Ответов  Просмотров  Последнее сообщение 
Аватар пользователя 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

10735

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

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

762

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

08 апр 2017, 09:20

белк

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

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

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

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


cron

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