Re: [TopFirstPost] - Мод закрепления сообщения

Автор Loac, 21 марта 2007, 01:22:53

« назад - далее »

0 Пользователи и 5 гостей просматривают эту тему.

Loac

Ссылка: https://custom.simplemachines.org/mods/index.php?mod=4144
GitHub: https://github.com/realdigger/SMF-Top-First-Post

Для чего мод:

Мод позволяет закрепить первое сообщение на всех страницах любой темы.

История:

v2.0.4
- Незначительные улучшения.
   
v2.0.3
- Исправлена ошибка установщика.

v2.0.2
- Изменена структура пакета.
- Исправлена совместимость с PHP7 и mysqli.
- Исходный код размещен на Github. Новые версии версии будут публиковаться там.

v2.0.1
- Добавлена поддержка SMF2.0
- Добавлен сброс кеша при закреплении/откреплении сообщений.

v2.0
- Добавлена поддержка SMF2 RC2.
- Установщик мода приведен в соответствие с требованиями SMF.

v1.1.1
- Исправлен баг с Uninstall.
- Исправлен баг с прикреплением сообщения.
- Исправлен баг с аттачами в прикрепленных сообщениях на дополнительных страницах.

v1.1.0
- Добавлена возможность прикреплять сообщения только в выбранных темах. Права на возможность привязаны к правам "Прикрепление тем".
- Стиль разделителя вынесен в style.css.

v1.0.2
- Исправлен баг. Иногда, неправильно отображался автор прикрепленного сообщения.

v1.0.1
- Исправлен баг. Теперь, если в профиле пользователя выставлена галочка "Показывать новые сообщения сверху", первое сообщение будет корректно прикрепленным.

v1.0.0
- Немного изменен оригинальный мод.
- Первое сообщение прикрепляется во всех темах.
- Если находимся на первой странице топика, первое сообщение не отделяется от общего потока.

Спасибо:

- deadbead, за помощь с фичей выборочного прикрепления сообщений.
- группе товарищей с simplemachines.ru за различные фиксы.

Основан на:

extended Sticky Topic: sticky first post (1.3.0) by Ivan Manida

Патч для мода SayThanks для совместной работы с TopFirstPost
===================================================================
--- Sources/SayThanks.php (date 1539351438000)
+++ Sources/SayThanks.php (date 1539353162000)
@@ -281,11 +281,18 @@
  global $messages_request, $smcFunc, $user_info, $context, $txt, $scripturl;
  loadTemplate('SayThanks', 'saythanks');
  $postIds = array();
- while($message = $smcFunc['db_fetch_assoc']($messages_request))
+
+        if (!empty($context['TopFirstPost_isSticky'])) {
+            $messages = $context['TopFirstPost_tmp'];
+            $postIds[] = $context['TopFirstPost_ID'];
+        }
+        else $messages = $messages_request;
+
+ while($message = $smcFunc['db_fetch_assoc']($messages))
  {
  if (!$message)
  {
- $smcFunc['db_free_result']($messages_request);
+ $smcFunc['db_free_result']($messages);
  }
  $postIds[] = $message['id_msg'];
  }
@@ -323,7 +330,7 @@
  }
  $context['message_thanks'][$thank['id_msg']]['users'][] = $thank['id_member'];
  }
- @$smcFunc['db_data_seek']($messages_request, 0); // go back to beginning
+ @$smcFunc['db_data_seek']($messages, 0); // go back to beginning
  }
 
  public static function setManagement(&$subActions) {


Dominex

Цитата: Loac от 21 марта 2007, 01:22:53
Вот, модифицировал творение Sticky Topic: sticky first post (1.3.0) by Ivan Manida

Основные отличия от оригинала:
Первое сообщение всегда наверху в любом топике, а не только в прилепленных.
Первое сообщение не отделяется от общего потока, если вы на первой странице топика.

Не работает, насколько я успел ознакомиться.

SAS

работает, насколько йа успел азнакомиццо :)

Dominex

Цитата: SAS от 22 марта 2007, 14:59:27
работает, насколько йа успел азнакомиццо :)

На старые темы тоже распространяется? У меня как было так и осталось. Первое сообщение в самом конце, последне в начале.

Loac

#4
Ммм, да. Мод криво работает, если в профиле стоит галочка "Показывать новые сообщения сверху"

Поколдую на досуге, постараюсь поправить багу.

зы. в оригинале та же проблема.

Dominex

Цитата: Loac от 22 марта 2007, 20:36:17
Ммм, да. Мод криво работает, если в профиле стоит галочка "Показывать новые сообщения сверху"

Поколдую на досуге, постараюсь поправить багу.

зы. в оригинале та же проблема.

Подскажите пожалуйста, в чём может быть проблема: уставновил ваш мод на форум (версия 1.1.2, кодировка win-1251), и никаких изменений, да и настроек нигде невидно (хотя может их и не должно быть). Но вот изменений в выводе сообщений в топике - НЕТ, к сожалению.

Loac

Странно, а при установке ошибок не было?
В настройках профиля на форуме галочка "Показывать новые сообщения сверху." убрана?
В топике больше одной страницы?

У меня ставится на форум той же версии и кодировки, все нормально.

SAS

у кого не работает, тему то вы дефолтную используете ?

Loac

На не дефолтовой теме тоже должно работать.
Мод не сделает разделителя после первого сообщения, но наверху оно висеть будет.

SAS

где фишку можно прикрутить, штоп делил первое сообщение от остальных, в смысле в каком файле правицца и где ?

Loac

в файле Display.template.php

после:
// Show the member's signature?
if (!empty($message['member']['signature']) && empty($options['show_no_signatures']))
echo '
<hr width="100%" size="1" class="hrcolor" />
<div class="signature">', $message['member']['signature'], '</div>';

echo '
</td>
</tr>
</table>
</td></tr>
</table>
</td></tr>';


добавить:
if(($message['id'] == $context['topic_first_message']) && ($_REQUEST['start'] <> 0)) {
echo '<tr><td style="background-color: #e5e5e8; border-top: 1px solid #adadad; padding: 0px 0px 7px 7px;">
<span class="smalltext">'. $txt['TopFirstPost_continue']. '&nbsp;</span></td></tr>';
}

Loac

Подправил баг с галочкой в профиле "Показывать новые сообщения сверху."
Теперь, первое сообщение прилепляется в любом случае.

Перед установкой, предыдущую версию обязательно удалить.

deadbead

Спасибо замод! (+1)
Еще было бы сафсем замечательно если бы на первом посте бала бы опция прикрепить / открепить
Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

Dominex

Переустановил, обновил до новой версии - всё работает как часики. Спасибо большое за столь полезный мод.

deadbead

На третьей и последующих страницах Юзер на приклееном посте становится Гостем... :(
Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

Loac


deadbead

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

(на первой и второй странице все ОК)
Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

Fizmatik

На какой версии? Просто я думаю...ставить или нет...сори.
Создание сайтов под-ключ, программирование.
Срок, цена, качество - выберите 2 из 3х.

deadbead

На версии 1.1.2. Но выяснилось, что это какой-то конкретный случай.... Так что ставь. Если будет так же.... решай сам.
Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

Fizmatik

Работает! А никак нельзя откреплять  прикреплять?
Создание сайтов под-ключ, программирование.
Срок, цена, качество - выберите 2 из 3х.


Fizmatik

Это точно, а так - это слишком кардинальная перемена имхо)
Создание сайтов под-ключ, программирование.
Срок, цена, качество - выберите 2 из 3х.

sveneld

Баг с тем что пользователь превращается в гостя есть :( Версия форума 1,1,2 В чём проблема как решить?

Loac

#23
Какие моды еще стоят?

у меня этой ошибки нету, поэтому мне сложно ее испарвить.

sveneld

Никаких других модов не установлено.
Вот ссылка http://anime-market.kiev.ua/forum/
при этом в некоторых ветках нормально отображается на всех страницах в других нет, как заметил зависит от того сколько страниц исписано, и кто написал первое сообщение.

Loac

Если не трудно, постучись мне в icq (инвиз)
попробуем побороть

sveneld

Решение:
правим файл Display.php

ищем строку
// Get ID_MSG first post

добавлем после неё
$messages = array();
$posters = array();

ищем строку
$context['TopFirstPost_ID'] = $row['ID_MSG'];

добавляем
  if (!empty($row['ID_MEMBER']))
   $posters[] = $row['ID_MEMBER'];

чуть ниже должны быть две строки
$messages = array();
$posters = array();

их удаляем

И всё работает.

Огромное спасибо Loac +1 ;)

Loac

Обновил мод.
Исправилена ошибка. Иногда, не правильно отображался автор прикрепленного сообщения.

deadbead

Итак сегодня отправил Loac'у материал для добавления функционала в мод закрепления сообщений.

В результате на сообщении появляется кнопка опционального выбора прикреплять или нет первое сообщение в этой теме. (см. вложение)

Ждем когда Loac прикрутит это к моду :)

Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

Fizmatik

Создание сайтов под-ключ, программирование.
Срок, цена, качество - выберите 2 из 3х.

deadbead

Да... что-то Лок задерживается.....
Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

Loac

#31
Обновление.
Основная фича, как уже понятно, выборочное прикрепление сообщений.

Перед установкой старую версию обязательно удалить

Fizmatik

Создание сайтов под-ключ, программирование.
Срок, цена, качество - выберите 2 из 3х.

Fizmatik

Супер, спасибо!!!! +1)
Всё работает.
Создание сайтов под-ключ, программирование.
Срок, цена, качество - выберите 2 из 3х.

deadbead

Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

Fizmatik

#35
Mavn, мод хорошо бы повесить на сайт, в скачивание, реально - классный и нужный мод.
Создание сайтов под-ключ, программирование.
Срок, цена, качество - выберите 2 из 3х.

Loac

#36
Заметил досадный глюк. Бавает, первое сообщение коряво крепится.

Только сильно ногами не пинайте, я еще немножко перемудрил с uninstall'om
Мод при следующей переустановке убьет свои настройки. чтобы не дать ему этого сделать
замените архив на сервере Packages\TopFirstPost_1.1.0.zip на
этот без uninstall'a

на всякий, прилепил единичку к версии. тут норм версия.

Извиняюсь за неудобства.  :(

Fizmatik

#37
Блин, что-то не получается его удалить....ошибка в diplay.template.php при удалении.
Опиши плз, как его почикать? Дай пожалуйстя деинсталятор, ввиде правильного package-info, ну или целого архива))))
Создание сайтов под-ключ, программирование.
Срок, цена, качество - выберите 2 из 3х.

Loac

странно что в diplay.template.php, там все нормально должно быть.
стукнись мне в асю вечером (инвиз), помогу

Shvonder

#39
у меня почемуто не качаются аттачи что с ие что с оперы что с лисы...
подскажите как скачать?

у меня вылетает вот такая фигня

Explanation: There is a problem with the page you are trying to reach and it cannot be displayed.

Try the following:

    * Refresh page: Search for the page again by clicking the Refresh button. The timeout may have occurred due to Internet congestion.
    * Check spelling: Check that you typed the Web page address correctly. The address may have been mistyped.
    * Access from a link: If there is a link to the page you are looking for, try accessing the page from that link.

If you are still not able to view the requested page, try contacting your administrator or Helpdesk.

   Technical Information (for support personnel)

    * Error Code: 502 Proxy Error. Not implemented (-2147467263)
    * IP Address: 84.252.148.127
    * Date: 19/07/2007 08:32:11
    * Server: server1.nalivkin.local
    * Source: web filter


Shvonder

пришлите плиз мод на мыло
ShvonderSiN@bk.ru
спасибо


Mavn

Прямую ссылку на файл дай на фтп выложу
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Shvonder



Fizmatik

Shvonder, сюда, на этот сайт.
Mavn, мод нужен или лучше пусть Loac пришлёт?
Создание сайтов под-ключ, программирование.
Срок, цена, качество - выберите 2 из 3х.

Shvonder

откуда прямая ссылка то у меня? вот тут в аттач
http://www.simplemachines.ru/index.php?action=dlattach;topic=1915.0;attach=777

а я скачать его не могу... пришлите плиз на мыло


Mavn

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Shvonder

#46
спасибо большое! поставил...
но столкнулся вот с такой проблемой (см. аттач)
так должно быть или это можно подправить?


Mavn

Точно не уверен потому как не тестировал style.css

.TopFirstPost_spacer {
font-size: x-small;
font-family: verdana, sans-serif;
background-color: #e5e5e8;
border-top: 1px solid #adadad;
padding: 0px 0px 7px 7px;
}
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Fizmatik

Мод у тебя похоже работает, выполняет свои функции, ну а со стилем здесь и ручками без проблем ;)
Создание сайтов под-ключ, программирование.
Срок, цена, качество - выберите 2 из 3х.

Shvonder

#49
вообще не шарю что и как там...
манипуляции проводил с .TopFirstPost_spacer { но ничего не добился ничего не меняется ни цвета ни шрифты... как будто вообще не влияет на стиль ((((
на всякий случай если посмотрите выкладываю шаблон свой