Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Адаптировать хук Pinposts для IPB 3.3

Опубликовано:

Есть такой замечательный хук http://community.invisionpower.com/files/file/5160-pinposts/ - закрепление любых постов в теме форума.

На версии 3.2 все прекрасно работает, а для IPB 3.3 к сожалению нет.

Написал автору хука, на что он ответил что делал хук для себя, а для версии 3.3 адаптировать нет времени. На сколько я понимаю в версии 3.3 изменили вывод панели модератора, поэтому пункты Pinpost, Unpin при установки хука не вставляются.

Готов заплатить за адаптацию данного хука. Жду предложений.

Рекомендованные сообщения

Опубликовано:

Цена вопроса?

Опубликовано:
  • Автор

Озвучьте вашу цену исходя из количества затраченных часов.

Опубликовано:
  • Автор

Цена вопроса?

Готовы выделить 1000 рублей.

Опубликовано:

Как автор этого хука для 3.2 говорю, что под IPB 3.3 я JS-часть уже переписал, но там есть еще запарка с тем, что посложнее.

Опубликовано:
  • Автор

Так что лучше пользоваться стандартным функционалом.

 

Спасибо за разъяснение.

Мне очень надо закреплять сообщения в темах. Других вариантов нет?

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

Опубликовано:

Я обновил своё предыдущее сообщения, сейчас просто думаю над тем, как сделать вывод закрепленных сообщений на всех страницах темы в IPB 3.3.

Опубликовано:

В общем чтобы закрепленные сообщения выводились на всех страницах, а не на одной, надо переопределить запрос в методе _getPosts, убрав оттуда строку из запроса:

'limit'    => array( $first, $this->settings['display_max_posts'] ),

А как это сделать не знаю, я не PHP-программист, просто немного шарю. Клиентскую же часть я полностью адаптировал. Хук здесь пока выложу, он будет нормально работать с костылем: надо закомментировать вышеуказанную строку в файле /admin/applications/forums/modules_public/forums/topics.php (строка 1696, добавить перед ней //).

Скачать: https://github.com/nDmitry/Pinposts

Только учитывайте, что нагрузка возрастет примерно до уровня версии 3.2, т. к. запрашиваться будут сообщения не текущей страницы, а всей темы.

Если кто-то возьмется дописать хук, я могу помочь разобраться что там и где.

Опубликовано:
  • Автор

В общем чтобы закрепленные сообщения выводились на всех страницах, а не на одной, надо переопределить запрос в методе _getPosts, убрав оттуда строку из запроса:

'limit'    => array( $first, $this->settings['display_max_posts'] ),

А как это сделать не знаю, я не PHP-программист, просто немного шарю. Клиентскую же часть я полностью адаптировал. Хук здесь пока выложу, он будет нормально работать с костылем: надо закомментировать вышеуказанную строку в файле /admin/applications/forums/modules_public/forums/topics.php (строка 1696, добавить перед ней //).

Скачать: http://ndmitry.ru/ip...posts-1.2.0.zip

Только учитывайте, что нагрузка возрастет примерно до уровня версии 3.2, т. к. запрашиваться будут сообщения не текущей страницы, а всей темы.

Если кто-то возьмется дописать хук, я могу помочь разобраться что там и где.

 

Попробовал установить хук, все работает норм, когда комментируешь указанную строку, но мой VPS ложится с 4 Гб ОЗУ от создающейся нагрузки, пришлось отключить.

Значит будем искать программиста.

Опубликовано:

@r0n, странно, чего б ему ложиться от этого? По top смотрели, что с mysqld?

Опубликовано:
странно, чего б ему ложиться от этого

Вы просто на больших темах не смотрели. Не надо там limit убирать, иначе на больших незакешированных топиках за раз 1000 и больше постов парсится из BBCode будут.

 

Вечером выложу правильную версию.

Опубликовано:

@weiss, а для чего используете перегрузку метода _getPosts()?

Опубликовано:

Вы просто на больших темах не смотрели. Не надо там limit убирать, иначе на больших незакешированных топиках за раз 1000 и больше постов парсится из BBCode будут.

Вы правы. Проверил. Если в теме, например, 5 страниц с сообщениями, то, если закомментировать/удалить указанную строку, на каждой странице будут отображаться все сообщения темы.

Опубликовано:

Ну вообще просто надо совершенно отдельно выбирать, парсить и выводить до основного списка постов "приклепленные" посты, и делать это прямо в методе скина. Тогда ничего в классе "постов" перегружать не потребуется.

 

Ну и опционально можно свернуть с возможностью разворачивания посты, что встречаются в топике, но уже закреплены в его шапке, тоже проверкой условия в скине, или вообще через js.

Опубликовано:

weiss, а для чего используете перегрузку метода _getPosts()?

Она уже была, от предыдущего автора, фактически же там запрашиваются закрепленные сообщения.

 

@Ritsuka, вчера это понял, но не знаю, как воплотить, точнее особо и не пытался еще. Там выше ссылку на гитхаб оставил, неплохо было бы вам там внести правки для удобства, войдете в список авторов (я вас добавил уже в Collaborators).

Опубликовано:

Ну вообще просто надо совершенно отдельно выбирать, парсить и выводить до основного списка постов "приклепленные" посты, и делать это прямо в методе скина.

 

А как парсить в методе скина, там же нет parsePostRow()? Выбрать не проблема, а вот все остальные данные получить.

Гость
Эта тема закрыта для дальнейших сообщений.

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.