1) Как сделать, чтобы все внешние ссылки скрывались автоматом от гостей? Если невозможно скрыть только внешние, то можно все ссылки в сообщениях. По-моему видел этот вопрос уже здесь, но не смог найти.
Где: $('a[href^="http"]:not([href*="likbezz"]),a[href^="/go?"],a[href^="http"]:not(:has(img)")') - все ссылки со станицы. Лучше ограничить только ссылками в самих постах. Типа:
likbezz, спасибо, всё работает! Кстати, можно ещё одним способом для форума. Так как пользователи дают ссылки ВВ-кодом [ url ], всем ссылкам данным таким способом назначается class="link", который ещё проще скрыть. Но после прочтения о jQuery у тебя, решил не скрыть ссылку, а заменить вот таким способом:
Code
<?if(!$USER_LOGGED_IN$)?> <script type="text/javascript"> $('a.link').after('<a href="/index/3">Доступно только для пользователей</a>').remove(); </script> <?endif?>
в общем-то это нормально работает. А только для внешних, например, так:
Code
$('td.posttdMessage a[href^="/go?"]').after('<a href="/index/3">Ссылка после регистрации</a>').remove();
Я правильно всё сделал?
Сообщение отредактировал Komoff - Понедельник, 25.07.2011, 04:16
всем ссылкам данным таким способом назначается class="link", который ещё проще скрыть. Но после прочтения о jQuery у тебя, решил не скрыть ссылку, а заменить вот таким способом
Тогда уж:
Code
$('a.link').replaceWith('<a href="/index/3">Доступно только для пользователей</a>');
... Но можно и так ... просто два разных действия выполняется: .after() и .remove() ...
Quote (Komoff)
А только для внешних, например, так:
Code
$('td.posttdMessage a[href^="/go?"]') ....
- Это если включена функция проксирования ...а она появилась не так давно ... Многие посты на форуме (у меня) появились ещё до включения данной фукнкции ... )
$('td.posttdMessage a[href^="/go?"]:not(:has(img)")').replaceWith('<a href="/index/3">Ссылка после регистрации</a>');
всё получилось.
Quote (likbezz)
Это если включена функция проксирования ...а она появилась не так давно
Да, я просто только с проксированием рассматриваю, потому что форум новый, там оно изначально было включено. Надо будет почитать обо всех командах jQuery, простые функции я и сам смогу писать.
Сообщение отредактировал Komoff - Понедельник, 25.07.2011, 14:43
Меня интересует вопрос как можно полностью скрыть ссылки для гостей.
Нашёл такой скрипт:
Code
%IF($USER_LOGGED_IN$)% %ELSE% <script> e=document.getElementsByTagName('A'); for(k=0; k<e.length;k++) { if(e[k].className=="link"){ e[k].innerHTML = "<b>[Ссылки могут видеть только пользователи]</b>"; e[k].href="$REGISTER_LINK$"; } } </script> %ENDIF%
В примере на форуме тема. Итог получается что скрываеш только прямую ссылку, но её можно выделить и потом скопировать с помощью кода страницы, либо же ввести в ручную.
Он изначально смотрится нормально, но появляется следующая проблема в скритпе данном при наведение мышкой на ссылку: видно что когда выделяеш ссылку появляется титул ссылки, мне же нужно чтобы заменить название ссылки к примеру на любое слово. Искал в интернете около часа, но так и не нашёл подобного. Заранее спасибо, если такое возможно
Меня интересует вопрос как можно полностью скрыть ссылки для гостей.
На хостинге от юкоз, никак.
Quote (SoundVan)
Нашёл такой скрипт:
- То же самое. Любой скрытый/вырезанный/удалённый/заменённый/т.д, т.п. скриптом (клиентским - JavaScript и VBScript) элемент, элементарно взять из исходника. (исходного кода страницы)
Такое возможно сделать только при помощи PHP скрипта выполняемого на стороне сервера. Полновесного, а не «php от юкоз». ...
Любой скрытый/вырезанный/удалённый/заменённый/т.д, т.п. скриптом (клиентским - JavaScript и VBScript) элемент, элементарно взять из исходника. (исходного кода страницы)
вот-вот, я кстати, когда придумывал как скрыть, узнал что и с помощью [ hide ] в исходнике выводиться ссылка, просто ожидал, что можно использовать системные средства чтобы надежно скрыть. По-моему не доработана эта функция на uCoz. Зато твой вариант, мне больше всего понравился, в общем-то сейчас нет смысла смотреть сайты с отключенным JS, т.к. отпадает большинство функций, да и я нечего секретного не скрываю, для обычных пользователей и этого достаточно. Хотя, я бы пользователей с отключенным JS куда-нить пересылал, как и они с аргументом "ибо нефиг", только вот как.:) SoundVan, а чем тебе варианты выше не подходят? Там полностью вырезается/заменяется ссылка. Хотя, как уже было сказано, при отключенном JS это работать не будет.
в общем-то сейчас нет смысла смотреть сайты с отключенным JS
) - Это здесь не при чём. Имеется в виду, что если ссылка скрыта на юкозовском форуме, её элементарно получить отключив JS или из исходника страницы. И то и другое - два клика мышкой. - Отключить, взять ссылку и опять включить - у меня заняло это от силы две секунды. С исходником то же самое - копируешь слово/выражение, например «ссылки для скачивания» открываешь исходник, нажимаешь [CTRL] + [F] находишь выражение - вот тебе ссылки. Чуть подольше - секунд пять. ...
<?if(!$USER_LOGGED_IN$)?> <script type="text/javascript"> $('a.link').after('<a href="/index/3">Доступно только для пользователей</a>').remove(); </script> <?endif?>
Етот код работает так как мне нужно, спасибо.
Сообщение отредактировал SoundVan - Суббота, 30.07.2011, 11:39