[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: личные сообщения на форуме
bodja
Привет форумчанам!
Есть такой больше теоретический вопрос.
Хочу организовать у себя на минифоруме систему личных сообщений,но организовать не как отправку письма в личный кабинет,а сделать как на этом форуме сделан скрытый текст,
но чтобы его мог читать только тот, кому это написано.

То есть реализация примерно такая ,типа на вв-тегах

Цитата
текст для всех
[вася] текст персонально для Васи [/вася]
текст для всех


потом эту часть поста кроме Васи не видит никто.

Я думаю это очень удобно,иногда при обсуждении темы необходимо перебросится пару предложениями,чтобы другие не видели,например послать подальше biggrin.gif

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

1 перехватываем в скрипте тег [вася],выбираем текст между тегами и преобразуем в JS типа onclick="fun('вася','текст персонально для Васи')" ,потом при клике проверяем кук,и если это Вася,показываем.
Но мне кажется это не очень надежное решение.

2 при отдаче скриптом постов ,проверять в базе постов регуляркой тег [вася] и выдавать содержание,остальное если в других тегах не выдавать.
Здесь слишком думаю будут мутные проверки,и непонятно как конкретно так реализовать.

3 Перехватываем в скрипте тег [вася],записываем в отдельную таблицу это сообщение и назначаем ему идентификатор,преобразуем в посте в JS типа onclick="fun('id111')" и потом при просмотре запрашиваем через аякс это сообщение указывая ее идентификатор.
Уже неплохо,но слишком лихо smile.gif,плюс держать отдельную таблицу.

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




Спустя 9 минут, 45 секунд (10.10.2011 - 21:43) caballero написал(а):
Не совсем понятно зачем надо что то перехватывать в каких то тэгах - этот ж твой скрипт. Проверяешь сообщения для залогиненого юзера и вставляешь в страницу

Спустя 8 минут, 53 секунды (10.10.2011 - 21:52) bodja написал(а):
Не ,немного не так,
я хочу сделать в реализации ,точно так как допустим вставить смайлик в пост,
тоесть не писать отдельное писмо в отдельной форме,а потом гдето выводить под шапкой ,когда этот залогиненый юзер войдет,а вставить именно в посте другого юзера который написал ему,так можно сохранить саму хронологию переписки ,как публичной так и приватной части.

Понятнее говоря,вот как цитату делаем при ответе,точно так ,но допустим эту цитату может прочитать только тот кому это предназначено.
Я надеюсь уже как то понятне,как я хочу сделать.

Спустя 35 минут, 38 секунд (10.10.2011 - 22:28) caballero написал(а):
какая разница что вы вставляете.
есть залогиненый юзер который имеет право но некий контент
есть контент в базе в хронолигическом порядке

берете и выводите что ему можно видеть - свои посты чудме предназначенные ему и т.д.

Спустя 24 минуты, 28 секунд (10.10.2011 - 22:52) bodja написал(а):
тоесть смотреть в какую тему и на какую страницу он зашел,потом шуршать по базе,если таковые посты для него в этой теме и странице,потом искать на этой странице тех кто написал и туда вставлять ? или как ? biggrin.gif biggrin.gif biggrin.gif

Спустя 3 часа, 37 минут, 35 секунд (11.10.2011 - 02:30) alive написал(а):
Представьте, если в настройках отображение скрытого текста даже модератору убрать, а только адресату, ну и админ наверно в базе сможет посмотреть: двое в топике сообщаются – привет – как дела – хорошо. А по сути, кроют друг-дружке пятиэтажным матом biggrin.gif

Спустя 58 минут, 40 секунд (11.10.2011 - 03:28) imbalance_hero написал(а):
bodja
БД, отправитель и получатель. Взял данные из БД, вывел ему по id_получателю сообщения.

Спустя 14 часов, 4 минуты, 1 секунда (11.10.2011 - 17:32) bodja написал(а):
Цитата
А по сути, кроют друг-дружке пятиэтажным матом

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

Цитата
БД, отправитель и получатель. Взял данные из БД, вывел ему по id_получателю сообщения.

А еще короче нельзя было сказать? До меня еле дошло. biggrin.gif
Чуть чуть сделаю в своей вариации,но все равно плюса заслужили.

Спустя 11 часов, 26 минут, 43 секунды (12.10.2011 - 04:59) ancient mariner написал(а):
Если вы хотите написать один большой общий текст, доступный для всех, и лишь часть этого текста - для Васи, тот тут только джаваскрипт, да и то, при отключённом джаваскрипте всё будет видно. Так что подобная затея вряд ли вообще имеет смысл (если я её понял правильно).

Спустя 21 минута, 37 секунд (12.10.2011 - 05:21) imbalance_hero написал(а):
ancient mariner
Раздел, тема, кто отправил, кому (id,id_list,all)

Спустя 6 часов, 10 минут, 50 секунд (12.10.2011 - 11:31) bodja написал(а):
Цитата
тот тут только джаваскрипт,

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

Спустя 44 минуты (12.10.2011 - 12:15) Draftpad написал(а):
Если хотите реализовать такую фишку на форуме под управлением phpBB, то будет проще, ибо там все bbcodes обрабатываются при генерации странички, а не при заносе в базу, как напимер, в том же DLE.

В phpBB, я бы сделал это так:
Цитата
[pto=Вася]Вася с волосатой попой[/pto]


$source = preg_replace( "#\[pto=(.+?)\](.+?)\[/pto\]#ie", build_personal_tag('\\1', '\\2'), $source );


Потом при обработке тега функцией build_personal_tag(), сравниваете имя "Вася" с базой пользователей, извлекаете id этого Васи. Сравниваете этот id, с id пользователя, который загружает страницу, с id пользователя, который оставил сообщение и проверяете, является ли пользователь модератором или администратором. Вписываете эти условия и выводите либо текст в спойлере с подписью "персональное сообщение", либо ничего.

Спустя 1 час, 31 минута, 36 секунд (12.10.2011 - 13:47) caballero написал(а):
Цитата
В целом можно обойтись и без джаваскрипта на пхп или использовать аякс ,что бы искать только тогда когда это нужно ,в таком случае с конфиденциальностью проблем не будет.

При чем тут скрипт вообще

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

Спустя 2 часа, 23 минуты, 36 секунд (12.10.2011 - 16:11) bodja написал(а):
Draftpad
Цитата
В phpBB, я бы сделал это так:


blink.gif Да...
,недаром меня не покидало чуство,что я в этом этом вопросе перемудрил.
у меня велосипедный форум,и я действительно делаю обработку вв-тегов перед записью ,а не перед выводом,из за этого меня и заклинило.
Но мне ничего не мешает ,именно эту проверку делать на выводе,
в таком случае ,дополнительных полей ,таблиц ,баз не имеем,а пользуемся тем что есть.
Провереный логин юзера при выводе постов я уже имею,так как по нему даю права на редактирование своих постов и закрытию,поднятию своей темы,так что мне тут еще проще. smile.gif
ЗЫ Регулярка просто супер,плюс однозначно biggrin.gif

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

Спустя 1 час, 27 минут, 24 секунды (12.10.2011 - 17:38) caballero написал(а):
Цитата
Вопрос стоял в технической реализации.


Цитата
Как ,где,когда и каким боком,сколько полей ,таблиц и нужны ли они
вообще.Как сделать проще и эфектней.


не путай бизнес логику и техническую реализацию

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

Спустя 3 часа, 42 минуты, 8 секунд (12.10.2011 - 21:20) bodja написал(а):
Цитата
не путай бизнес логику и техническую реализацию

Мне без разницы ,какими определениями вы для себя пользуетесь.

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

Прежде чем это писать ,нужно было просто внимательнее прочитать мой первый пост и вникнуть в третий пункт.Там же вы ,ответ на свой вопрос и найдете.А потом уже свои умняки кидать.

Спустя 1 час, 7 минут, 2 секунды (12.10.2011 - 22:27) caballero написал(а):
Цитата
Мне без разницы ,какими определениями вы для себя пользуетесь.

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

а посему:

Цитата
Прежде чем это писать ,нужно было просто внимательнее прочитать мой первый пост и вникнуть в третий пункт.


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

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.