как показывать ссылки только пользователям?

Автор per25, 12 октября 2012, 17:44:23

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

per25

как показывать ссылки только пользователям?

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

Kroose


kak2z

Цитата: per25 от 12 октября 2012, 17:44:23
как показывать ссылки только пользователям?

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

Если Вы беспокоитесь про то что люди будут грузить большие картинки с других сайтов - то http://dragomano.ru/page/fancybox-4-smf там есть функция экономии трафика... как это работает можно глянуть на моем форуме.. под гостем..

Если Вы беспокоитесь что ссылки на внешние изображения это заспамленость ресурса тогда вот http://custom.simplemachines.org/mods/index.php?mod=1942
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

per25

Цитата: kak2z от 12 октября 2012, 19:04:53Если Вы беспокоитесь про то что люди будут грузить большие картинки с других сайтов - то http://dragomano.ru/page/fancybox-4-smf там есть функция экономии трафика... как это работает можно глянуть на моем форуме.. под гостем..

Если Вы беспокоитесь что ссылки на внешние изображения это заспамленость ресурса тогда вот http://custom.simplemachines.org/mods/index.php?mod=1942

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

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

kak2z

Цитата: per25 от 12 октября 2012, 19:26:32
я не беспокоюсь о картинках, мне необходимо чтобы определенные группы, например только пользователи, могли видеть внешние ссылки на файлообменники, а ссылки на картинки должны видеть все.

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


Может Вам спойлер подойдет?  http://dragomano.ru/page/quick-spoiler запретите гостям видеть то что под спойлером да и всех то делов)

или это http://dragomano.ru/page/hide-tag-special
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

per25

Цитата: kak2z от 12 октября 2012, 19:34:33Может Вам спойлер подойдет?  http://dragomano.ru/page/quick-spoiler запретите гостям видеть то что под спойлером да и всех то делов)

или это http://dragomano.ru/page/hide-tag-special

наверное это немножко не то
подскажите какой файл отвечает за добавление вложения?

GeorG

Не совсем понятно что вам именно надо. Спрятать ссылки на вложения, или все же на внешние ссылки? Если последнее, то вам надо править этот код в файле ../Sources/Subs.php. Т.е., отлавливать нужные вам домены, и блокировать для избранных групп.

array(
'tag' => 'url',
'type' => 'unparsed_content',
'content' => '<a href="$1" class="bbc_link" target="_blank">$1</a>',
'validate' => create_function('&$tag, &$data, $disabled', '
$data = strtr($data, array(\'<br />\' => \'\'));
if (strpos($data, \'http://\') !== 0 && strpos($data, \'https://\') !== 0)
$data = \'http://\' . $data;
'),
),
array(
'tag' => 'url',
'type' => 'unparsed_equals',
'before' => '<a href="$1" class="bbc_link" target="_blank">',
'after' => '</a>',
'validate' => create_function('&$tag, &$data, $disabled', '
if (strpos($data, \'http://\') !== 0 && strpos($data, \'https://\') !== 0)
$data = \'http://\' . $data;
'),
'disallow_children' => array('email', 'ftp', 'url', 'iurl'),
'disabled_after' => ' ($1)',
),


Если для вложений, то это в правах групп настраивается.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

alex-ergeev

#7
Поставил себе аналогичную задачу, и таки решил ее. Не кодер, просто когда нужно - приходится думать и разбираться, так что не судите строго.

Соединил два мода в один. Двиг 2.09

Мод №1 Registered Links - http://custom.simplemachines.org/mods/?mod=342
Мод №2 Переделка редерикта отсюда - http://readonly.name/others/links-redirect-in-smf.html

===

Задачи данной моей переделки совпадают с задачей мода Registered Links - с тем отличием, что Registered Links прячет от гостей все ссылки подряд. А данная доработка позволяет прятать только ссылки ведущие на внешние ресурсы. Включая ссылки в подписи. Но зато не затрагиваются ни картинки, ни внутренние ссылки форума, включая ссылки на собственный домен, или технические ссылки (например в цитатах).


файл
./Themes/default/languages/Modifications.russian-utf8.php

Добавить перед:

?>

Код:

//Begin Reg Links
$txt['no_view_links'] = 'Ссылка только для зарегистрированных пользователей';
$txt['txt_reg_links_register'] = 'Регистрация';
$txt['txt_reg_links_login'] = 'Вход';
$txt['txt_reg_links_or'] = 'или';
//END Reg Links Text Strings


Файл
./Sources/Subs.php

Добавить перед:

// Cache the output if it took some time...

Код:

// Registered Links
if ($user_info['is_guest'])
{
$message = preg_replace('#<a class="ваше название класса" href="(.*?)</a>#i', $txt['no_view_links'] . "\n" . ' <a href="' . $scripturl . '?action=register">' . $txt['txt_reg_links_register'] . '</a>&nbsp;' . $txt['txt_reg_links_or'] . '&nbsp;<a href="' . $scripturl . '?action=login">' . $txt['txt_reg_links_login'] . '</a>', $message);
}

// End Registered Links


Это переделка поможет скрыть от гостей любые ссылки - в которой указан класс: "ваше название класса"

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

Далее используем следующую переделку файла  ./Sources/Subs.php
отсюда http://readonly.name/others/links-redirect-in-smf.html

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

Файл
./Sources/Subs.php

Заменить:

array(
'tag' => 'url',
'type' => 'unparsed_content',
'content' => '<a href="$1" class="bbc_link" target="_blank">$1</a>',
'validate' => create_function('&$tag, &$data, $disabled', '
$data = strtr($data, array(\'<br />\' => \'\'));
if (strpos($data, \'http://\') !== 0 && strpos($data, \'https://\') !== 0)
$data = \'http://\' . $data;
'),
),
array(
'tag' => 'url',
'type' => 'unparsed_equals',
'before' => '<a href="$1" class="bbc_link" target="_blank">',
'after' => '</a>',
'validate' => create_function('&$tag, &$data, $disabled', '
if (strpos($data, \'http://\') !== 0 && strpos($data, \'https://\') !== 0)
$data = \'http://\' . $data;
'),
'disallow_children' => array('email', 'ftp', 'url', 'iurl'),
'disabled_after' => ' ($1)',
),


На это:

array(
'tag' => 'url',
'type' => 'unparsed_content',
'validate' => create_function('&$tag, &$data, $disabled', '
$data = strtr($data, array(\'<br />\' => \'\'));
if (stristr($data, "ваш-сайт.ру") === false) $tag[\'content\'] = \'<a class="ваше название класса" href="$1" target="_blank">$1</a>\';
else $tag[\'content\'] = \'<a href="$1" class="bbc_link" target="_blank">$1</a>\';
'),
),

array(
'tag' => 'url',
'type' => 'unparsed_equals',
'after' => '</a>',
'disallow_children' => array('email', 'ftp', 'url', 'iurl'),
'disabled_after' => ' ($1)',
'validate' => create_function('&$tag, &$data, $disabled', '
    if (stristr($data, "ваш-сайт.ру") === false) $tag[\'before\'] = \'<a class="ваше название класса" href="$1" target="_blank">\';
    else $tag[\'before\'] = \'<a href="$1" class="bbc_link" target="_blank">\';
  '),
),


Просто убрал из исходного кода редерикта, непосредственно сам редерикт, и добавил класс. Пользуйтесь!

Естественно, если исходный код от версии к версии слегка меняется, надо пошаманить немного, по указанному выше принципу. Кто в теме, жду чтобы поругали, если где-то косяк. Но код работает.

Лично я добавил в него еще css, чтобы ссылка выглядела как цитата:



Т.е. у меня вот так первая замена выглядит:

// Registered Links

if ($user_info['is_guest'])
{
$message = preg_replace('#<a class="ваше название класса" href="(.*?)</a>#i', '<span class="ваше название класса CSS">&nbsp;' . $txt['no_view_links'] . "\n" . '&nbsp;<img src="Themes/default/images/admin/subsection.gif">&nbsp;<a style="color: blue;" href="' . $scripturl . '?action=register">' . $txt['txt_reg_links_register'] . '</a>&nbsp;&nbsp;<img src="Themes/default/images/admin/subsection.gif">&nbsp;<a style="color: blue;" href="' . $scripturl . '?action=login">' . $txt['txt_reg_links_login'] . '</a>&nbsp;</span>', $message);
}

// End Registered Links


А класс CSS Так:

.ваше название класса CSS {
    color: blue;
line-height: 125%;
background-color: #FAFAFA;
border: #d1d7dc;
border-style: solid;
border-left-width: 1px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px
}

kak2z

есть мод Show BBCode to guests
там можно указать какие bb коды доступны для гостей, а какие для авторизированых форумчан)))
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

alex-ergeev

Спасибо!

Я так понял вот этот Hide/Show BBCode content to guests: http://custom.simplemachines.org/mods/index.php?mod=2861

Не нашел раньше, пришлось шаманить. Щас гляну на этот. Может его и поставлю.

alex-ergeev

Нет. Мой мне больше подходит. Этот мод Hide/Show BBCode content to guests во-первых с ошибкой.

Ошибка в installScript.php

Найти

install.php?action=install

заменить на

installScript.php?action=install

Во-вторых прячет абсолютно все ссылки юзеров под тегом [url] - включая те, что ведут на собственный форум или на собственный домен или поддомены.

Не прячет лишь технические внутренние ссылки.

GeorG

Цитата: alex-ergeev от 12 января 2015, 12:03:29Этот мод Hide/Show BBCode content to guests во-первых с ошибкой.

Ошибка в installScript.php
Как понял ошибка установки, она не значит что ошибка в моде.

Цитата: alex-ergeev от 12 января 2015, 12:03:29Во-вторых прячет абсолютно все ссылки юзеров под тегом [url] - включая те, что ведут на собственный форум или на собственный домен или поддомены.
Так прячет от гостей, какие у гостя могут быть свои домены?
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

alex-ergeev

Цитата: GeorG от 12 января 2015, 14:48:13Как понял ошибка установки, она не значит что ошибка в моде

Согласен. Но без исправления невозможно этот мод установить. Т.к. файл с ошибкой входит в необходимый пакет установки. Без него не вставятся нужные таблицы.

Цитата: GeorG от 12 января 2015, 14:48:13Так прячет от гостей, какие у гостя могут быть свои домены?

Извините, неточно выразился. Читать так:

Во-вторых прячет абсолютно все ссылки юзеров под тегом [url] - включая те, что ведут на МОЙ собственный форум или на МОЙ собственный домен или поддомены. Т.е. внешние ссылки не отделяются от внутренних.

Мод Registered Links, который я переделывал, вообще косячный, т.к. прятал вообще все ссылки под хайд, включая технические внутренние ссылки (из шапки цитаты), тоже под хайд. Но после переделки, он "научился" отличать ссылки поставленные юзерами на МОЙ сайт, или на любой внешний сайт. Первые показываются гостям. А вторые нет.