Забыли пароль?
Запросите новый здесь.

Автор темы: Alex
ID темы: 2613
Информация:
Тема содержит 10 сообщения, была просмотрена 7841 раз.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Моды
 Распечатать тему
Цитирование на форуме
Alex
если юзер жмет кнопку цитировать то захватывается весь пост предыдущего оратора вместе с предыдущим цитированием, и юзер либо вручную стирает не нужное либо оставляет лестницу из цитат.

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

есть ли какое то решение чтобы цитировался только один пост а предыдущию цитаты не входили в него либо чтобы юзер выделял текст после нажимал цитировать и в цитате был только этот текст?

Пример нежелательной "лестницы" из цитат:
linkme.ufanet.ru/images/589066081fc9137ef0f507ed2ab2e690.png
Изменил(а) Alex, 08.12.2015 12:32
 
Web
Deorchik
это пока что первое мне пришло на ум, ... я на работе и пока не могу это дело привязать к fusion'ну

удаляет все посты кроме того который ты хочешь цитировать

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

вот второй вариант http://jsfiddle.net/v2omra6r/2/

Объединено 08.12.2015 12:58:
Alex, по ссылочке пробегись =)
Изменил(а) Deorchik, 08.12.2015 12:58
 
Web
Alex
да смотрел по ссылкам, в первом варианте убирается цитата а во втором цитаты при нажатии делается 2 штуки

или я не так понял, во втором при нажатии цитировать пост без прежней цитаты переносится в поле ввода
 
Web
Polarfox
а чем не нравится как у меня в коментах, тупо скриптом выцеплять слова в цитатку нужные.

здесь вот на форуме токо ник вставить можно.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме

PolarLab - вход для подопытных
 
Web
Alex
PolarFox, Ну да прикольно у тебя,

на форум не внедрял такое?
 
Web
Polarfox
форум захардкожен, а коменты я полностью заменил - вот вся разница.

что мешяает вставить такую штуку самостоятельно - код есть, мое благославление тоже ab
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме

PolarLab - вход для подопытных
 
Web
Alex
Deorchik написал:

вот второй вариант http://jsfiddle.net/v2omra6r/2/


я так понимаю из твоей ссылочки достаточно скопировать скрипт и подключить его на сайте?

подключил его но ничего не изменилось
 
Web
Deorchik
Alex, нет это всего лишь пример, который ты бы мог реализовать на сайте =)))
 
Web
Alex
Решение проблемы

файл: /forum/postreply.php примерно 149 строка
ищем
Скачать исходники  Код
if (isset($_GET['quote']) && isnum($_GET['quote'])) {
      $result = dbquery(
         "SELECT post_message, user_name FROM ".DB_POSTS."
         INNER JOIN ".DB_USERS." ON ".DB_POSTS.".post_author=".DB_USERS.".user_id
         WHERE thread_id='".$_GET['thread_id']."' and post_id='".$_GET['quote']."'"
      );
      if (dbrows($result)) {
         $data = dbarray($result);
         $message = "[ quote ][ url=".$settings['siteurl' ]."forum/viewthread.php?thread_id=".$_GET['thread_id']."&pid=".$_GET['quote']."#post_".$_GET['quote']."][ b]".$data['user_name'].$locale['429']."[/b ][ /url]\n\n".strip_bbcodes($data['post_message'])."[ /quote]";
      }
   }




заменяем на
Скачать исходники  Код
if (isset($_GET['quote' ]) && isnum($_GET[ 'quote' ])) {
    $result = dbquery(
        "SELECT post_message, user_name FROM ".DB_POSTS."
        INNER JOIN ".DB_USERS." ON ".DB_POSTS.".post_author=".DB_USERS.".user_id
        WHERE thread_id='".$_GET['thread_id']."' and post_id='".$_GET[ 'quote' ]."'"
    );
    if (dbrows($result)) {
        $data = dbarray($result);
        // определяем первое вхождение открытия цитирования
        $s = strpos($data['post_message'], '[ quote ]'); // убрать пробелы в '[ quote ]'
        // определяем последнее вхождение окончания цитирования
        $e = strrpos($data['post_message'], '[/ quote ]'); // убрать пробелы в '[/ quote ]'
        // были найдены правильные теги начала и окончания цитирования
        if (false !== $s && false !== $e) {
            // берем текст до первого открытия цитирования и после последнего окончания цитирования
           $data['post_message'] = trim(substr($data['post_message'], 0, $s)) . trim(substr($data['post_message'], $e + strlen('[ /quote ]'))); 
         }
        $message = "[ quote ][ url=".$settings['siteurl' ]."forum/viewthread.php?thread_id=".$_GET['thread_id']."&pid=".$_GET[ 'quote' ]."#post_".$_GET[ 'quote' ]."]".$data['user_name'].$locale['429']."[/url]\n\n".strip_bbcodes($data['post_message'])."[ /quote ]";
    }
}





пробелы в квадратных скобках убрать!

Объединено 27.12.2015 18:33:
PolarFox написал:

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

что мешяает вставить такую штуку самостоятельно - код есть, мое благославление тоже :)


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

думаю это всем будет интересно у кого раскрученный форум
Изменил(а) Alex, 27.12.2015 13:33
x1
 
Web
mpflash
Alex, http://rusfusion.ru/forum/viewthread.php?thread_id=2429&highlight=%F6%E8%F2%E0%F2%E0+%E2%FB%E4%E5%EB%E5%ED%ED%EE%E3%EE+%F2%E5%EA%F1%F2%E0&pid=26267 это как раз про цитирование, делал рип с рубоарда, только убрал пару функций
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Топ 5 пользователей форума
Alex Alex (1,211)   Zaxap Zaxap (1,089)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)