Страница 1 из 3

Хайд по постам на форуме (тег hide) для uCoz [Обновлено]

СообщениеДобавлено: 22 ноя 2008, 20:05
Draft
ОБНОВЛЕНО

Скрипт для всех тех, кто давно мечтал сделать хайд по постам как в вбюллетень или IPB. ;)

Загружаем файл распаковываем архив в корень сайта.

Заходим в Настройка дизайна -> Форум > Общий вид страниц форума
После <body> ставим:
Код: Выделить всё
<?if(!$USER_LOGGED_IN$)?><script type="text/javascript">curposts='0';</script><?endif?><script type="text/javascript" src="/forum_hide.js"></script>


Далее идем в Настройка дизайна > Пользователи > Персональная страница пользователя
Ищем там $_FORUM_ENTRIES$
Заменяем на
Код: Выделить всё
<span id="uposts">$_FORUM_ENTRIES$</span>


Далее заходим в Настройка дизайна > Форум > Вид материалов
Ищем там $MESSAGE$
Заменяем на
Код: Выделить всё
 <div id="mpost$ID$">$MESSAGE$</div><?if(strpos($MESSAGE$,'[hide=') > -1)?><script>hide_load($ID$)</script><?endif?>


Все скрипт установлен :) .

Как это работает?
Идем в свой форум и добавляем сообщение например [hide=435800]Я скрытый текст[/hide]
Где синее количество постов необходимое для просмотра сообщения.
Добавлем сообщение и смотрим.
------------------
Изображение
------------------
Вместо сообщения видим надпись, что у вас недостаточно мессагов.
Наш блок нескрытого текста при этом никуда не делся, его видно.
Если у вас достаточно постов, сообщение отобразится нормально.
------------------
Изображение
------------------

Обновленно от 27.09.2009:
- Полностью переписан код
- Загрузка теперь в 100500 раз быстрее
- Гораздо меньший объем кода
- Возможность ставить несколько хайдов в одном сообщении сразу
- Убраны тяжелые iframe
- Некоторые другие доработки

Любителям копировать отсюда скрипты к себе на сайт говорю сразу копирайты на Softers.ru обязательны!

Re: Хайд по постам на форуме

СообщениеДобавлено: 22 ноя 2008, 22:34
RoMe0
запихнул к себе на форум, вроде как работает, но сообщения не показывает, тока пишет "Подождите идет загрузка сообщения" :|.
и
Код: Выделить всё
<iframe src="http://www.softers.ru/index/8-$CUR_USER_ID$" onload="hidehiden$ID$()" name="fra1" width="0" height="0" scrolling="no" frameborder="0" name="fra1"></iframe>

на свое вроде как менять надо

Re: Хайд по постам на форуме

СообщениеДобавлено: 22 ноя 2008, 22:43
Draft
Ах да точно забыл, незабываем поменять http://www.softers.ru/index/8-$CUR_USER_ID$ на свой сайт
Код: Выделить всё
<iframe src="http://АДРЕС САЙТА/index/8-$CUR_USER_ID$" onload="hidehiden$ID$()" name="fra1" width="0" height="0" scrolling="no" frameborder="0" name="fra1"></iframe>


Upadate: для исправления проблемы с кроссбраузерностью (скрипт работал только в опере) найдите и замените
cuposts = window.fra1.uposts.innerHTML;
на
cuposts = fra1.document.all.uposts.innerHTML;

Проверял в Chrome, Opera, Firefox и IE работает отлично.

Re: Хайд по постам на форуме

СообщениеДобавлено: 24 ноя 2008, 00:11
RoMe0
все ровно почему то у меня пишет только "Подождите идет загрузка сообщения" и все

Re: Хайд по постам на форуме

СообщениеДобавлено: 24 ноя 2008, 00:50
XxMARSxX
сюда бы jQuery...

Re: Хайд по постам на форуме

СообщениеДобавлено: 24 ноя 2008, 18:08
Draft
XxMARSxX писал(а):сюда бы jQuery...

Попробую сделать на jQuery просто я в нем полный 0. :oops:

Re: Хайд по постам на форуме

СообщениеДобавлено: 25 ноя 2008, 18:53
mob_dp
Скрипт шикарный, респект автору! Давно мечтал себе такой, у меня сайт как раз такой что скрипт абсолютно необходим.

А там гед ссылку на свою менять, в гайде укажите относительную а не постоянную: /index/8

Re: Хайд по постам на форуме

СообщениеДобавлено: 25 ноя 2008, 18:56
mob_dp
И еще по теме:

глупо чтоб на странице было 20-30 скриптов для этой единой функции.
Нужно убрать в скрипте $ID$ и передавать его через параметр функции. В посте делаем только запуск функции, передавая этот $ID$

Re: Хайд по постам на форуме

СообщениеДобавлено: 25 ноя 2008, 20:56
Draft
mob_dp писал(а):А там гед ссылку на свою менять, в гайде укажите относительную а не постоянную: /index/8

Allcity и кто-нить из модеров, плс поменяйте в первом посте http://www.softers.ru/index/8-$CUR_USER_ID$ на /index/8-$CUR_USER_ID$
И cuposts = window.fra1.uposts.innerHTML; на cuposts = fra1.document.all.uposts.innerHTML;

mob_dp писал(а):Нужно убрать в скрипте $ID$ и передавать его через параметр функции. В посте делаем только запуск функции, передавая этот $ID$

Да постараюсь сделать так в следующем обновлении. :)

Re: Хайд по постам на форуме

СообщениеДобавлено: 26 ноя 2008, 08:07
Андрей
Вот ещё один хайд, если у кого этот не работает ;)
В Персональную Страницу Пользователя:
Код: Выделить всё
<div id="UserActivities" style="display: none; "><?if($_LOAD_ENTRIES$)?>$_LOAD_ENTRIES$<?else?>0<?endif?>+<?if($_COM_ENTRIES$)?>$_COM_ENTRIES$<?else?> 0<?endif?>+<?if($_FORUM_ENTRIES$)?>$_FORUM_ENTRIES$<?else?>0<?endif?>+<?if($_NEWS_ENTRIES$)?> $_NEWS_ENTRIES$<?else?>0<?endif?>+<?if($_PUBL_ENTRIES$)?>$_PUBL_ENTRIES$<?else?>0<?endif?>+<?if($_DIR_ENTRIES$)?> $_DIR_ENTRIES$<?else?>0<?endif?>+<?if($_BOARD_ENTRIES$)?>$_BOARD_ENTRIES$<?else?>0<?endif?>+<?if($_PHOTO_ENTRIES$)?> $_PHOTO_ENTRIES$<?else?>0<?endif?></div>

В Общий вид страниц форума,между <head></head>:
Код: Выделить всё
<style type="text/css">
.HiddenBlock {display: none; background: #666666; border: 1px dashed white; width: 100 %; color: black; padding: 10px 10px 10px 10px;}
</style>


После $BODY$ в общем виде страниц форума:
Код: Выделить всё
<script type="text/javascript">
 /* © Айдар aka Pain (http://free-manga.net.ru/) */
 $('.posttdMessage').each(function () { //класс может быть другим!!
    Tmp = jQuery(this).html();
    jQuery(this).html(Tmp.replace(/\[hide\=([^\[]+)]([^\[]+)\[\/hide]/ig, '<span class="NeededPoints" style="display: none; ">$1</span><div class="HiddenBlock">$2</div>'));
 });

 <?if($USER_LOGGED_IN$)?>$.get('/index/8', {}, function (Res) {
    var MyActivities = eval($('#UserActivities', Res).html());
    $('.HiddenBlock').each(function (l) {
    if (parseInt($('.NeededPoints:eq(' + l + ')').html()) <= MyActivities) {
    jQuery(this).show();
    } else {
    jQuery(this).html('Необходимо <b>' + $('.NeededPoints:eq(' + l + ')').html() + '</b> сообщений для просмотра.').show();
    }
    });
 });<?else?>
 $('.HiddenBlock').each(function (l) {
    jQuery(this).html('Скрытый текст. Для просмотра необходимо зарегистрироваться и набрать <b>' + $('.NeededPoints:eq(' + l + ')').html() + '</b> сообщений.').show();
 });
 <?endif?>
 </script>

Источник :ugeek: