[Ликбез]

Форма входа
Логин:
Пароль:

Меню сайта


Скрипты и коды для юкоз - Форум аццкого кодера » Если вы пришли за помощью, то Вам сюда... » Hide по постам. Новая версия с поддержкой базового API

Hide по постам. Новая версия с поддержкой базового API
[1] DesBR [15.05.2011, 10:03]
На некоторых сайта юкоза я заметил возможность устанавливать значимость хайда: [hidе=30]text[/hide] - Текст могут видеть лишь те кто имеет 30 сообщений и более.. Подскажите пожалуйста как это возможно сделать? Пример сайта: ссылка.
[2] likbezz [15.05.2011, 13:14]
DesBR,
Quote (DesBR)
На некоторых сайта юкоза я заметил возможность устанавливать значимость хайда: [hidе=30]text[/hide] - Текст могут видеть лишь те кто имеет 30 сообщений и более.. Подскажите пожалуйста как это возможно сделать?

В шаблон: Пользователи » Персональная страница пользователя вставляем вот такой код:

Code
<span style="display:none;"><noindex id="usForumPosts"><?if($_FORUM_ENTRIES$)?>$_FORUM_ENTRIES$<?else?>0<?endif?></noindex></span>


...

В шаблон Форум » Общий вид страниц форума, сразу после $BОDY$ добавляем вот этот скрипт:

Code
<?if($PAGE_ID$='threadpage' or $PAGE_ID$='usermess')?>
<script type="text/javascript">
$('.posttdMessage').each(function(){var tmp=$(this).html();
$(this).html(tmp.replace(/\[hide\=([^\[]+)]([^\[]+)\[\/hide]/ig,'<span class="mustPosts" style="display:none;">$1</span><div class="HiddenBlock">$2</div>'));});
<?if($USER_LOGGED_IN$)?>$.get('/index/8',{},function(d){var usposts=eval($('#usForumPosts',d).html());
$('.HiddenBlock').each(function(i){
if (parseInt($('.mustPosts:eq('+i+')').html())<=usposts){$(this).show();}else{
$(this).html('<div style="border:1px solid #F00;padding:3px;color:#F00;">Необходимо <b>' + $('.mustPosts:eq('+i+')').html()+'</b> сообщений для просмотра.</div>').show();}});
});<?else?>
$('.HiddenBlock').each(function(i){$(this).html('<div  style="border:1px solid #F00;padding:3px;color:#F00;">Скрытый текст. Для просмотра необходимо зарегистрироваться и набрать <b>' + $('.mustPosts:eq('+i+')').html()+'</b> сообщений.</div>').show();});
<?endif?>
</script>
<?endif?>


...

Наблюдаем результат:


...

...

Прикрепления: 2740525.png (9.9 Kb) · 6351561.png (8.5 Kb) · 3459147.png (14.2 Kb) · 8457501.png (4.7 Kb)
[3] DesBR [16.05.2011, 08:53]

кол-во имеющихся сообщений многим больше требуемого кол-ва от хайда

Добавлено (16.05.2011, 08:53)
---------------------------------------------
А так же как можно сделать хайд зависящий от сообщений И репутации пользователя?

[4] likbezz [16.05.2011, 11:44]
DesBR,
Quote (DesBR)
кол-во имеющихся сообщений многим больше требуемого кол-ва от хайда

Да, мой косяк, не проверил)
Исправлено - в персональную страницу пользователя добавлять вот такой код:
Code
<span style="display:none;"><noindex id="usForumPosts"><?if($_FORUM_ENTRIES$)?>$_FORUM_ENTRIES$<?else?>0<?endif?></noindex></span>
- добавлен внешний контейнер.

Протестировать можно вот тут:
http://test.likbezz.ru/forum/2-1-1#11
Log: Tester
Pass: BYa-v-a2TRzk1qA
...

Quote (DesBR)
А так же как можно сделать хайд зависящий от сообщений И репутации пользователя?

Точно также, проверять наличие репутации, и сравнивать количество баллов с числом.

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

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

Как вытащить репутацию текущего пользователя, и запретить выполнять какие-то действия, написано вот тут «Как запретить измененять репутацию при маленькой репутации?» ...
...

[5] DesBR [16.05.2011, 11:51]
Огромное спасибо!
[6] likbezz [16.05.2011, 12:06]
Если у вас включена поддержка базового API, то скрипт можно ускорить, и не требуется дополнительные коды в шаблоне персональной страницы пользователя.

Вот скрипт для работы с API:

Используется точно также.

В шаблон Форум » Общий вид страниц форума, сразу после $BОDY$ добавляем вот этот скрипт:

Code
<?if($PAGE_ID$='threadpage' or $PAGE_ID$='usermess')?>
<script type="text/javascript">
$('.posttdMessage').each(function(){var tmp=$(this).html();
$(this).html(tmp.replace(/\[hide\=([^\[]+)]([^\[]+)\[\/hide]/ig,'<span class="mustPosts" style="display:none;">$1</span><div class="HiddenBlock">$2</div>'));});
<?if($USER_LOGGED_IN$)?>
$.get('/api/index/46',{},function(d){
var usposts=(/USERFORUMENTRIES_NUM/ig.test($('member',d).text()))?$('member',d).text().split('USERFORUMENTRIES_NUM')[1].split('USERFORUMENTRIES_')[0]:0;
$('.HiddenBlock').each(function(i){
if (parseInt($('.mustPosts:eq('+i+')').html())<=usposts){$(this).show();}else{
$(this).html('<div style="border:1px solid #F00;padding:3px;color:#F00;">Необходимо <b>' + $('.mustPosts:eq('+i+')').html()+'</b> сообщений для просмотра.</div>').show();}});
});<?else?>
$('.HiddenBlock').each(function(i){$(this).html('<div  style="border:1px solid #F00;padding:3px;color:#F00;">Скрытый текст. Для просмотра необходимо зарегистрироваться и набрать <b>'+$('.mustPosts:eq('+i+')').html()+'</b> сообщений.</div>').show();});
<?endif?>
</script>
<?endif?>

... Всё ... Больше ничего.

Вид алерт-блока настраивается в скрипте ...

[7] likbezz [16.05.2011, 12:52]
[hide=10000]Test[/hide]
[8] likbezz [16.05.2011, 13:33]
[hide=2000]Всё написанное выше - моё личное мнение и за абсолютную истину восприниматься не должно.[/hide]
[9] DesBR [16.05.2011, 15:00]
Интересно, что же за ними скрывается?) wink 12345 или qwerty)

Добавлено (16.05.2011, 15:00)
---------------------------------------------
likbezz, что нужно дописать что бы появлялось А у вас только 5?

[10] likbezz [16.05.2011, 15:18]
DesBR,
Quote (DesBR)
likbezz, что нужно дописать что бы появлялось А у вас только 5?

Вот в это место:
Quote (Code)
<div style="border:1px solid #F00;padding:3px;color:#F00;">Необходимо <b>' + $('.mustPosts:eq('+i+')').html()+'</b> сообщений для просмотра. А у вас только <b>'+usposts+'</b>.</div>

то, что выделено синим.
[11] DesBR [18.05.2011, 14:24]
Идеально! Спасибо wink

Добавлено (18.05.2011, 13:41)
---------------------------------------------
likbezz, Хайд успешно работает, но только в том случае если меду открывающимся и закрывающимся ВВ кодом нет подобных скобок: [ ]. Как понимаю - особенность юкоза?

Добавлено (18.05.2011, 14:24)
---------------------------------------------
Возмжно ли создать или использовать какой либо ВВ код что бы он отдельно от хайда имел функцию просмотра по репутации?

[12] likbezz [18.05.2011, 15:52]
DesBR,
Quote (DesBR)
Как понимаю - особенность юкоза?

Нет, это особенность поиска количества баллов для просмотра скрытого текста.

Quote (DesBR)
Возмжно ли создать или использовать какой либо ВВ код что бы он отдельно от хайда имел функцию просмотра по репутации?

Да, возможно, как и вообще создать любы другие свои BB-коды.

По теме:
«Как сделать свои BB-коды для сайта / форума» Статья
«Как сделать свои BB-коды для сайта / форума» Тема на форуме

[13] DesBR [18.05.2011, 16:10]
Почитаю;)
[14] VadimW [09.04.2014, 06:44]
likbezz, Здравствуйте! Помогите пожалуйста с API... Есть вот такой код:

Код
<div id="otvet"></div>  
<script type="text/javascript">    
    $.get(    
        'http://rockcrysoul.ucoz.ru/api/load/him/1',    
   function(data){   
var mydata = new Array();    
var i = 0;    
$('name', data).each(function(){    
if($(this).text()=='ENTRY_URL'){    
if(mydata[$(this).text()] == undefined) mydata[$(this).text()] = new Array();    
mydata[$(this).text()][i] = $(this).next().text();    
i++;    
}    
});  

        $('#otvet').html('<a href='+mydata['ENTRY_URL'][0]+'>'+mydata['CATEGORY_NAME']+' - '+mydata['TITLE']+'</a>'+'<a href='+mydata['ENTRY_URL'][1]+'>'+mydata['CATEGORY_NAME']+' - '+mydata['TITLE']+'</a>'+'<a href='+mydata['ENTRY_URL'][3]+'>'+mydata['CATEGORY_NAME']+' - '+mydata['TITLE']+'</a>');
      
    },    
    'xml'    
    );    
</script>


Мне нужно вывести 10 материалов из определённой категории load. http://rockcrysoul.ucoz.ru/api/load/him/1
И что бы "him/1" менялось в зависимости от того, на которой странице ты находишься в модуле "publ", то есть...
У меня есть биография группы HIM (http://rockcrysoul.ucoz.ru/publ/zarubezhnye/him/29-1-0-1)
И есть соответствующая категория(там находится музыка) http://rockcrysoul.ucoz.ru/api/load/him/1
И так как название категории и название биографии совпадает, то можно сделать импорт из категории в биографию. Но вопрос как?
И ещё, когда выводится, то почему то пишет "undefined - undefined"

Думаю Вы ответите, на что и спасибо smile
[15] likbezz [09.04.2014, 20:33]
Цитата VadimW, Ср, 09.04.2014, 06:44:10
Здравствуйте! Помогите пожалуйста с API... Есть вот такой код:

Добрый.
Я не понял что вы хотите, если честно. и .. наверное бесплатно вникать в это не буду.


Полная версия сайта