Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[3.2][3.3] Thanks for posts

Все расширения, созданные нашим сообществом для phpBB, как находящиеся в разработке, так и прошедшие валидацию на официальном сайте phpbb.com, будут анонсированы тут. Вся техническая поддержка по этим расширениям оказывается в этом форуме.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

[3.2][3.3] Thanks for posts

Сообщение rxu »

Обсуждаем портирование мода Thanks for post (Rating edition) Палыча в расширение для phpBB 3.1/3.2.
Копировать в папку: /ext/gfksx/ThanksForPosts/, начиная с версии 2.0.4 - в папку ext/gfksx/thanksforposts (все символы имени папки в нижнем регистре) Версия для phpBB 3.2/3.3: https://github.com/rxu/thanks_for_posts ... elop-3.2.x


Внимание: начиная с версии 2.0.4, имя расширения изменено на gfksx/thanksforposts (ранее - gfksx/ThanksForPosts).
Для обновления с расширения gfksx/ThanksForPosts необходимо:
  • Отключить расширение gfksx/ThanksForPosts
  • Создать резервную копию таблицы базы данных phpbb_thanks (префикс phpbb_ дан для примера)
  • Удалить данные расширения gfksx/ThanksForPosts
  • Удалить папку ext/gfksx/ThanksForPosts с сервера
  • Восстановить таблицу базы данных phpbb_thanks из резервной копии (префикс phpbb_ дан для примера)
  • Загрузить файлы нового расширения версии 2.0.4+ в папку ext/gfksx/thanksforposts (все символы имени папки в нижнем регистре)
  • Включить расширение в администраторском разделе
Внимание: нижеследующее дополнение может не работать с основным расширением версии 2.0.4 без следующих правок: Re: [dev] Thanks for posts
Для совместимости с версией 2.0.7 требуются следующие правки:
https://github.com/alg5/addonforthanksf ... l/19/files

AJAX дополнение к данному расширению которое позволяет выдавать благодарности без перезагрузки страницы: Addon for thanks for posts by Алг.
Исходный код: https://github.com/alg5/addonforthanksforposts
Копировать в папку: /ext/alg/addonforthanksforposts/
------------------------
Вопрос-ответ;
Q. Как сделать так чтобы гости видели список поблагодаривших за сообщение при просмотре темы?
W. Разрешить в форумных правах доступа(Или роль "Доступ только для чтения") гостям благодарить за сообщение. Благодарить не смогут, а видеть список поблагодаривших будут.
Вложения
thanks_for_posts-develop-3.2.x.zip
(194.96 КБ) 120 скачиваний
Последний раз редактировалось rxu 28.02.2022 13:11, всего редактировалось 2 раза.
Изображение
Перенесено из форума Бета-версии расширений для phpBB 3.1.x в форум Анонсы и поддержка расширений для phpBB 3.1.x 11.07.2015 12:49 модератором LavIgor

Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: [3.1][3.2] [dev] Thanks for posts

Сообщение Sheer »

Он подключен уже. В коробке, начиная с phpBB 3.1
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Пафнутий K
phpBB 1.4.2
Сообщения: 55
Стаж: 5 лет 1 месяц
Благодарил (а): 5 раз
Поблагодарили: 7 раз

Re: [3.1][3.2] [dev] Thanks for posts

Сообщение Пафнутий K »

Sheer писал(а): 29.04.2019 21:03 Он подключен уже. В коробке, начиная с phpBB 3.1
Ну вот такая конструкция (в файле viewtopic_body_avatar_before.html) у меня не работает :cry: :

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

<script>
    var p = jQuery('#wrap').prop('id');
    document.write('Debug: ' + p);
</script>
Не выводит ничего, даже 'Debug:'
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: [3.1][3.2] [dev] Thanks for posts

Сообщение Татьяна5 »

Пафнутий K, не считаю, знаю что не будет работать. Любые изменения DOM из подгружаемой области будут мешать аяксу. Чтобы работало надо переносить код в подвал и переписывать
Пафнутий K писал(а): 29.04.2019 21:26 Не выводит ничего
Логично. Вы вызываете jQuery до его подключения. Плюс не задали саму функцию jQuery (её в библиотеке нет)
Аватара пользователя
Пафнутий K
phpBB 1.4.2
Сообщения: 55
Стаж: 5 лет 1 месяц
Благодарил (а): 5 раз
Поблагодарили: 7 раз

Re: [3.1][3.2] [dev] Thanks for posts

Сообщение Пафнутий K »

Татьяна5 писал(а): 29.04.2019 21:54 Пафнутий K, не считаю, знаю что не будет работать. Любые изменения DOM из подгружаемой области будут мешать аяксу. Чтобы работало надо переносить код в подвал и переписывать

Логично. Вы вызываете jQuery до его подключения. Плюс не задали саму функцию jQuery (её в библиотеке нет)
Ну вот я вынес основной код в функцию:

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

<script>

function thanksUserRating(thanks, postid) {
      var MAXVAL = 500;
      
      var v = parseInt(thanks, 10);
      
      v = Math.min(v / MAXVAL, 1.0);
      v = Math.ceil((1.0 - Math.pow(1.0 - v, 4))*5) * 15;
      
      if(!isNaN(v) && v) {
        var d = document.querySelector('#profile'+ postid + ' .avatar-container');
        d.insertAdjacentHTML('afterBegin', '<div style="margin-bottom: 5px; width: '+ v + 'px; height: 15px; background: url(http://idcommunity.ru/forum/ext/gfksx/thanksforposts/images/rating/reput_star_back.gif); background-repeat: repeat-x;"> <div style="height: 15px; width: 100%; background: url(http://idcommunity.ru/forum/ext/gfksx/thanksforposts/images/rating/reput_star_gold.gif); background-repeat: repeat-x;"></div></div>');
      }
}

</script>
Если помещаем этот код в шапку - overall_header_head_append.html, то все работает нормально.

А если подгружаем в подвал - overall_footer_after.html, то не работает :cry:

Саму функцию вызываем из viewtopic_body_avatar_before.html:

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

<script>

    thanksUserRating('{{ postrow.POSTER_RECEIVE_COUNT }}', '{{ postrow.POST_ID }}');

</script>
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: [3.1][3.2] [dev] Thanks for posts

Сообщение Татьяна5 »

Порядок подключения очень важен. На момент вызова фунции из сообщений она не объявлена
Плюс при аякс-запросе функция окажется не объявлена, т.к. в подгружаемом куске её нет, а поместить её туда в то же время нельзя. Это сломает практичести все js-функции на странице

Вывод: надо ещё переписывать для вызова функции полностью из подвала (плюс продублировать вызов для аякс-запросов, но то уже будет мелочь)
К примеру, нужные параметры можно записать в атрибутах data-* в html, а при загрузке страницы собрать их все и обработать циклом

По js, аяксу и прочему могу посоветовать учебники/справочники learn.javascript.ru и jquery.page2page.ru
Аватара пользователя
Пафнутий K
phpBB 1.4.2
Сообщения: 55
Стаж: 5 лет 1 месяц
Благодарил (а): 5 раз
Поблагодарили: 7 раз

Re: [3.1][3.2] [dev] Thanks for posts

Сообщение Пафнутий K »

Татьяна5 писал(а): 30.04.2019 2:52 Вывод: надо ещё переписывать для вызова функции полностью из подвала (плюс продублировать вызов для аякс-запросов, но то уже будет мелочь)
Ну вообще-то меня устраивал и первый вариант с document.write :lol: . У меня визуальный редактор установлен и QuickReply мне не нужен. Так что никаких проблем с аяксом.

Это я исключительно из человеколюбия стал дописывать, - вдруг кому понадобится, чтобы у него мое расширение не конфликтовало с QuickReply.

В общем если кто захочет "допилить" - пусть тогда уже сам доводит, у меня и без этого всё отлично работает. Направление обозначено.
Татьяна5 писал(а): 30.04.2019 2:52 К примеру, нужные параметры можно записать в атрибутах data-* в html, а при загрузке страницы собрать их все и обработать циклом
А при записи атрибутов разве аякс не будет глючить? Их же (атрибуты), я так понимаю, из того же файла придется писать - viewtopic_body_avatar_before.html, и примерно теми же самыми методами, при помощи javascript.

То есть вы предлагаете создать атрибуты data-*, скажем, на контейнерах с аватарками <div class="avatar-container"> и потом их кучей обработать в подвале? Это хорошая идея. Но как записать эти атрибуты, чтобы ваш аякс не глючило? В этом же вроде была вся проблема?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: [3.1][3.2] [dev] Thanks for posts

Сообщение Татьяна5 »

Пафнутий K писал(а): 30.04.2019 4:15 при помощи javascript
Не, я про создание своего тега с нужными атрибутами в html
Через js их добавлять смысла нет никакого, т.к. они будут для удобства получения чисел в js
Аватара пользователя
Пафнутий K
phpBB 1.4.2
Сообщения: 55
Стаж: 5 лет 1 месяц
Благодарил (а): 5 раз
Поблагодарили: 7 раз

Re: [3.1][3.2] [dev] Thanks for posts

Сообщение Пафнутий K »

Татьяна5 писал(а): 30.04.2019 4:24 Не, я про создание своего тега с нужными атрибутами в html
Через js их добавлять смысла нет никакого, т.к. они будут для удобства получения чисел в js
Да, точно :facepalm: . Я уже и сам понял :)
static77
phpBB 2.0.0
Сообщения: 232
Стаж: 8 лет 2 месяца
Благодарил (а): 112 раз
Поблагодарили: 7 раз

Re: [3.1][3.2] [dev] Thanks for posts

Сообщение static77 »

Siava писал(а): 25.04.2019 13:05 Разберитесь в своём robots.txt. Всё отлично блокируется с его помощью.
еще раз об индексации.
Файл robots.txt не предназначен для блокировки показа веб-страниц в результатах поиска Google. Если на других сайтах есть ссылки на вашу страницу, содержащие ее описание, то она все равно может быть проиндексирована, даже если роботу Googlebot запрещено ее посещать. Чтобы исключить страницу из результатов поиска, следует использовать другой метод, например защиту паролем или директиву noindex.
Если файл robots.txt запрещает роботу Googlebot обрабатывать веб-страницу, она все равно может демонстрироваться в Google, но связанный с ней результат поиска может не содержать описания
источник: https://support.google.com/webmasters/a ... 2608?hl=ru
Помогите, пожалуйста, избавиться от треклятой проблемы. Хотя бы подскажите в каком файле расширения прописывать noindex на ссылки.
Версия phpBB: 3.3.11
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5270
Стаж: 19 лет 2 месяца
Откуда: Питер
Благодарил (а): 188 раз
Поблагодарили: 800 раз
Контактная информация:

Re: [3.1][3.2] [dev] Thanks for posts

Сообщение Siava »

static77, откройте файл ext/gfksx/thanksforposts/styles/prosilver/template/event/overall_header_head_append.html
и добавьте в него

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

{% if S_THANKS %}
<meta name="robots" content="noindex" />
{% endif %}
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
Пафнутий K
phpBB 1.4.2
Сообщения: 55
Стаж: 5 лет 1 месяц
Благодарил (а): 5 раз
Поблагодарили: 7 раз

Re: [3.1][3.2] [dev] Thanks for posts

Сообщение Пафнутий K »

Татьяна5 писал(а): 30.04.2019 2:52 Вывод: надо ещё переписывать для вызова функции полностью из подвала (плюс продублировать вызов для аякс-запросов, но то уже будет мелочь)
Из подвала звездочки срабатывают с сильным опозданием. Это некрасиво. И такое ощущение, что страница загружается намного медленней обычного. В общем, я отказался от этого варианта (хоть он в целом и рабочий).

Переписал расширение с помощью хук-события core.viewtopic_modify_post_row.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Расширение "Рейтинг пользователя" от Пафнутия (см. вложение) при расчете количества звезд учитывает два показателя:
  • Количество сообщений пользователя
  • Количество поблагодаривших пользователя
Шкала логарифмическая - чем больше рейтинг, тем труднее получить очередную звезду. В коде можно прописать предельные значения, при которых пользователь получает 5 звезд. По умолчанию: 1000 благодарностей и 10000 сообщений. Всего можно заработать 5+5=10 звезд.

Изображение

Расширение может работать как аддон к "Thanks for posts", так и самостоятельно. В последнем случае количество благодарностей принимается равным нулю.


Основные файлы:
  1. listener.php

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

    //...
    	static public function getSubscribedEvents()
    	{
    		return array(
    			'core.viewtopic_modify_post_row'		=> 'modify_post_row',
    		);
    	}
    
    	
    	public function modify_post_row($event)
    	{
    	    $MAX_T = 1000;
            $MAX_P = 10000;
            
            //thanks - string to int conversion
    	    $t = (int)$event['post_row']['POSTER_RECEIVE_COUNT'];
    	    //posts
    	    $p = (int)$event['post_row']['POSTER_POSTS'];
    	    //bonusstars
    	    $b = (int)0;
    	    
    	    //rating - output
    	    $r = 0;
    
            if($p>0) {
                if($t===0) {
                    $t = 0.5;
                } else {
                    $t = min($t * 9.0 / $MAX_T + 1, 10.0);
                    $t = 1 + log10($t) * 4;
                }
    
                $p = min($p * 9.0 / $MAX_P + 1, 10.0);
                $p = log10($p) * 5;
                
                //stars to width
                $r = min($t + $p + $b, 10) * 15; 
            }
    	   
    	    $event['post_row'] = array_merge($event['post_row'], array(
    			'POSTER_USER_RATING'	=> $r,
    		));
    	}
    //...
    
  2. viewtopic_body_avatar_before.html

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

    {% if not postrow.S_POST_ANONYMOUS %}
          <div style="margin-bottom: 5px; width: {{ postrow.POSTER_USER_RATING }}px; height: 15px; background: url(./ext/pafnuty/userRating/images/rating/reput_star_back.gif); background-repeat: repeat-x;"> <div style="height: 15px; width: 100%; background: url(./ext/pafnuty/userRating/images/rating/reput_star_gold.gif); background-repeat: repeat-x;"></div></div>
    {% endif %}
    
Вложения
pafnutyUserRating1.0.1.zip
Расширение "Рейтинг пользователя"
(14.91 КБ) 108 скачиваний
Аватара пользователя
megaaxel
phpBB 1.2.1
Сообщения: 29
Стаж: 6 лет 10 месяцев
Благодарил (а): 11 раз

Re: [3.1][3.2] [dev] Thanks for posts

Сообщение megaaxel »

Здравствуйте.
В своё время стояло Thanks for posts 2.0.3-dev, всё работало.
Потом однажды обновил на Thanks for posts 2.0.7-dev.
Всё работает, но в админке в разделе настройки расширений нет вкладок настройки данного расширения.
Если обратно включить 2.0.3-dev, вкладки появляются.
Где чинить?

phpBB 3.2.6, то же самое было на 3.2.2.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: [3.1][3.2] [dev] Thanks for posts

Сообщение Sheer »

Смотрите модули в ACP -> СИСТЕМА -> УПРАВЛЕНИЕ МОДУЛЯМИ -> Администраторский раздел --> Настройка расширений
Может модули отключены или скрыты, или вообще в другом месте.
Может нарушилась древовидная структура значений ID - Проверьте [3.1][3.2] [dev] STK for phpBB 3.2.x & 3.1.x --> Исправление границ значений ID всей конференции - Восстановление древовидной структуры форумов и модулей
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

Re: [3.1][3.2] [dev] Thanks for posts

Сообщение rxu »

megaaxel, а как обновлялись? Первый пост внимательно читали?
rxu писал(а): 09.01.2015 15:04 Внимание: начиная с версии 2.0.4, имя расширения изменено
и далее.
Изображение
Аватара пользователя
megaaxel
phpBB 1.2.1
Сообщения: 29
Стаж: 6 лет 10 месяцев
Благодарил (а): 11 раз

Re: [3.1][3.2] [dev] Thanks for posts

Сообщение megaaxel »

rxu писал(а): 03.05.2019 18:44 а как обновлялись? Первый пост внимательно читали?
по этой инструкции и обновлялся.
причём сейчас эти обе версии лежат рядом (т.к. в *nix ФС регистр букв имеет значение), переключаю по очереди.

Отправлено спустя 17 минут 50 секунд:
Sheer писал(а): 03.05.2019 18:39 Смотрите модули в ACP -> СИСТЕМА -> УПРАВЛЕНИЕ МОДУЛЯМИ -> Администраторский раздел --> Настройка расширений
Может модули отключены или скрыты, или вообще в другом месте.
там расширение есть и включено.
Sheer писал(а): 03.05.2019 18:39 Может нарушилась древовидная структура значений ID - Проверьте [3.1][3.2] [dev] STK for phpBB 3.2.x & 3.1.x --> Исправление границ значений ID всей конференции - Восстановление древовидной структуры форумов и модулей
это не помогло.

Отправлено спустя 1 минуту 55 секунд:
пробовал переключаться на другой язык (английский) - не помогает.
Ответить

Вернуться в «Анонсы и поддержка расширений для phpBB»