Mokkey Опубликовано 23 Июля 2006 Жалоба Поделиться Опубликовано 23 Июля 2006 Мод для создания скрытого текста на форуме есть (например, в зависимости от кол-ва сообщений или при авторизации), НО было бы здорого, если бы все ссылки (которые при "активном" написании форум отлично распознает) автоматически бы скрывались от незарегистрированных пользователей. Текущий принцип действия: Пользователь постит ссылку, форум ее распознает и автоматически "срабатывает" тэг . Тоже самое при "ручном" вводе ссылки (тэги расставляются Пользователем). Желательный принцип действия: При размещении ссылки форум автоматически ее распознает и кроме тэгов делает ее скрытой от незарегистрированных пользователей. В иделе - тоже самое умеет делать с неактивными ссылками (обычно начинаются с _http:// ). Наверное это можно реализовать установив мод скрытого текста и изменив систему обработки ссылок (как автоматическую, так и для ручного ввода тэгов) - т.е. чтобы хотя бы механически вставлялись не просто [url]...[/url] , а сразу с тэгами скрытия - [HIDE][url]...[/url][/HIDE] Но как это реализовать на практике - не знаю... Буду благодарен за помощь и содействие. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DANMASTER Опубликовано 23 Июля 2006 Жалоба Поделиться Опубликовано 23 Июля 2006 post_parser.php. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Mokkey Опубликовано 23 Июля 2006 Автор Жалоба Поделиться Опубликовано 23 Июля 2006 post_parser.php. А конкретнее? Тот, с позволения сказать, "алгоритм", который я предположил использовать возник на основе простоты. Может есть более граммотные способы реализации... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DANMASTER Опубликовано 24 Июля 2006 Жалоба Поделиться Опубликовано 24 Июля 2006 Значит ставь для начала HIDE_MOD, настраивай его как тебе нужно, затем открываем post_parser.php, ищем // url tags, а дальше пишешь рег.выр. чтобы заменить конструкцию [uгl=*link*]*text*[/uгl] на [hide][uгl=*link*]*text*[/uгl][/hide] Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Mokkey Опубликовано 24 Июля 2006 Автор Жалоба Поделиться Опубликовано 24 Июля 2006 Алгоритм понятен. И точка исправления очевидна, НО - не очень получается править. Что-то не то пишу, видимо. Необходим совет... Имеем исходную: $txt = preg_replace( "#\[url\](\S+?)\[/url\]#ie" , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\1'))", $txt ); $txt = preg_replace( "#\[url\s*=\s*\"\;\s*(\S+?)\s*\"\;\s*\](.*?)\[\/url\]#ie" , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $txt ); $txt = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#ie" , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $txt ); А еще есть PARSE POLL TAGS . Видимо как-то не так тэг [HIDE] в эту конструкцию прописываю, потому что не работает... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DANMASTER Опубликовано 24 Июля 2006 Жалоба Поделиться Опубликовано 24 Июля 2006 Ты смотри где заменяется на конструкцию <a href='*link*'>..., там и подставляй. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Mokkey Опубликовано 24 Июля 2006 Автор Жалоба Поделиться Опубликовано 24 Июля 2006 Повторюсь немного... Алгоритм, что и где искать я представляю. Хромает практическая реализация. Помогите пожалуйста... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 25 Июля 2006 Жалоба Поделиться Опубликовано 25 Июля 2006 ну чего тебе сложно дописать[hide] перед по аналогии? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Jax Опубликовано 25 Июля 2006 Жалоба Поделиться Опубликовано 25 Июля 2006 я вообще хз какая у тебя версия, вот для 1.3 function unconvert()находим (болдом выделено то, что у тебя может быть другое )$txt = preg_replace( "#<a href=[\"'](http://|https://|ftp://|news://)?(\S+?)['\"].+?".">(.+?)</a>#" , "\\\3\[/url\]" , $txt );меняем на:$txt = preg_replace( "#<a href=[\"'](http://|https://|ftp://|news://)?(\S+?)['\"].+?".">(.+?)</a>#" , "\[hide]\\3\[/url\][/hide]" , $txt );в function convert() делаем тоже самое Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DANMASTER Опубликовано 25 Июля 2006 Жалоба Поделиться Опубликовано 25 Июля 2006 И напоминаю, не забудь установить HIDE_MOD. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Mokkey Опубликовано 26 Июля 2006 Автор Жалоба Поделиться Опубликовано 26 Июля 2006 Song | Jax Естественно я прописывал все по аналогии. Не просто так же помощи прошу При наличии в сообщении ссылки она вставляет тэги [HIDE] как надо, НО при этом как бы не распознает их как вызов "скрытого текста". Т.е. например если я создаю сообщение: [HIDE]http://www.Link1.ru[/HIDE] и... http://www.Link2.ru Т.е. когда в первой строке сам изначально прописываю тэги [hide], а вторую ссылку отдаю на обработку форуму, то в итоге получается, что первая ссылка НЕ активная, но зато скрыта, а вторая ссылка хоть формально и находится в тэгах [HIDE] (что видно при редактировании), активна, НО не скрыта. Т.е. при банальной подставе в результат выдачи тэгов, они не обрабатываются как надо, а воспринимаются просто как код. Можно исправить значение кнопки URL , то бы она автоматом добавляла и HIDE, но во-первых мало кто вообще этой кнопкой пользуется (практически все руками вводят тэги), а во-вторых это не решает проблемы скрытия ссылок при автоматическом их распознавании. Вот для решения это проблемы я и прошу помощи... Версия форума: 2.0.4 P.S. HIDE-MOD естественно установлен и сам по себе работает отлично Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Jax Опубликовано 26 Июля 2006 Жалоба Поделиться Опубликовано 26 Июля 2006 А надо писать с пробелами[hide] URL [/hide]тогда в первом случае у тебя будет обрабатываться ссылка, надеюсь... Не понял про второй случай, ссылки сделал свои? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Mokkey Опубликовано 26 Июля 2006 Автор Жалоба Поделиться Опубликовано 26 Июля 2006 Jax И с пробелами пробывал, и по разному. Не обрабатываются внутри конструкции выдачи ссылок другие тэги. Вот строка из post_parser.php : $txt = preg_replace( "#<a href=[\"'](http://|https://|ftp://|news://)?(\S+?)['\"].+?".">(.+?)</a>#" , "\[HIDE] [url=\\1\\2\]\\3\[/url\] [/HIDE]" , $txt );Один из случаев обработки ссылок (как я понимаю, там несколько "обработок" есть). В данном случае это с пробелами. Хотя роли они не играют. При создании нового сообщения просто пишем ссылку с http (как обычно). В итоговом сообщении внешне это выглядитт просто как активная ссылка (как она обычно и выгляжит при распознавании). Если начнем редактировать сообщение, то код действительно содержит все [hide] как надо, но форум их просто не воспринимает (вернее воспринимает, что это тэги и не показывает их, но необходимые действия по скрытию не проводит). Как это еще описать, даже не знаю.. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Jax Опубликовано 27 Июля 2006 Жалоба Поделиться Опубликовано 27 Июля 2006 Я же написал, что в function convert() надо сделать тоже самое, что и в unconvert Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Mokkey Опубликовано 27 Июля 2006 Автор Жалоба Поделиться Опубликовано 27 Июля 2006 Я и прописывал это в unconvert: // unconvert: // Parses the HTML back into plain text А где аналогичное в convert - не вижу, хоть глаз выколи... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Jax Опубликовано 27 Июля 2006 Жалоба Поделиться Опубликовано 27 Июля 2006 // url tags // [url]http://www.index.com[/url] [url=http://www.index.com]ibforums![/url] $txt = preg_replace( "#\[url\](\S+?)\[/url\]#ie" , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\1'))", $txt ); $txt = preg_replace( "#\[url\s*=\s*\"\;\s*(\S+?)\s*\"\;\s*\](.*?)\[\/url\]#ie" , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $txt ); $txt = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#ie" , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $txt );если не ошибаюсь... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Mokkey Опубликовано 27 Июля 2006 Автор Жалоба Поделиться Опубликовано 27 Июля 2006 А по-моему нет... По крайней мере прописывание по аналогии ничего не дает кроме предупреждений... // url tags // [url]http://www.index.com[/url] [url=http://www.index.com]ibforums![/url] $txt = preg_replace( "#\[hide] [url\](\S+?)\[/url\] [/hide\]#ie" , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\1'))", $txt ); $txt = preg_replace( "#\[hide] [url\s*=\s*\"\;\s*(\S+?)\s*\"\;\s*\](.*?)\[\/url\] [/hide\]#ie" , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $txt ); $txt = preg_replace( "#\[hide] [url\s*=\s*(\S+?)\s*\](.*?)\[\/url\] [/hide\]#ie" , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $txt ); Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Mokkey Опубликовано 31 Июля 2006 Автор Жалоба Поделиться Опубликовано 31 Июля 2006 ?? Никаких иных идей нет у Общественности. Я уже по-моему все самые извращенные способы перепробывал - не получается... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Wilddancer Опубликовано 31 Июля 2006 Жалоба Поделиться Опубликовано 31 Июля 2006 Есть одна...возможно глупая, поскольку сам не проверялпростая, как 2 пальца !!!устанавливаешь HIDE мод...заходишь в фильтры цензуры и соответственно меняешь на [/HIDE] Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Jax Опубликовано 31 Июля 2006 Жалоба Поделиться Опубликовано 31 Июля 2006 И при повторном редактирование или цитирование будет еще один [HIDE][url =) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Mokkey Опубликовано 31 Июля 2006 Автор Жалоба Поделиться Опубликовано 31 Июля 2006 Jax А оно уже сейчас так... При замене через post_parser Суть-то одна и таже. Но учитываются только "крайние" тэги и как раз после редактирования скрытый текст действительно работает Т.е. еще один извращенный способ реализовать распознавание тэгов - это в post_parser после проверки отправлять все на еще одну проверку, как при редактировании.. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Mokkey Опубликовано 8 Августа 2006 Автор Жалоба Поделиться Опубликовано 8 Августа 2006 Есть одна...возможно глупая, поскольку сам не проверялпростая, как 2 пальца !!!устанавливаешь HIDE мод...заходишь в фильтры цензуры и соответственно меняешь на [/HIDE]Не получится. Потому что фильтр цензуры идет или ДО проверки ссылок, или вообще их не затрагивает. Одним словом - там он не работает Господа уважаемые, никто не может предложить действующих идей? Может кто за деньги возмется реализовать то, что мне надо? Если желающие есть - милости прошу, обсудим детали: - ЛС на данном форуме;- ICQ# 129152112- mokkey(гав-гав-гав)ftp85.ru Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
czech Опубликовано 11 Ноября 2006 Жалоба Поделиться Опубликовано 11 Ноября 2006 реально может есть такой мод чтоб автоматом скрывал ссылки Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Mokkey Опубликовано 23 Ноября 2006 Автор Жалоба Поделиться Опубликовано 23 Ноября 2006 ОффТоп: Мне казалось, что совсем недавно (11 ноября) тут появлялся ответ о еще одном варианте. А теперь пропал куда-то. Странно. Даже испробывать не успел.. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
whatever Опубликовано 27 Ноября 2006 Жалоба Поделиться Опубликовано 27 Ноября 2006 господа! умел бы - написал бы! а так надежда вся на вас!можетдействительно за $? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.