Hide по постам. Новая версия с поддержкой базового API
2011-05-15 Дата: Воскресенье, 15.05.2011, 10:03 | Сообщение # 1
Подполковник
Группа: Проверенные
Статус: Offline
На некоторых сайта юкоза я заметил возможность устанавливать значимость хайда: [hidе=30]text[/hide] - Текст могут видеть лишь те кто имеет 30 сообщений и более.. Подскажите пожалуйста как это возможно сделать? Пример сайта: ссылка.
2011-05-15 Дата: Воскресенье, 15.05.2011, 13:14 | Сообщение # 2
Аццкий кодер
Группа: Администраторы
Статус: Unknown
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?>
... Наблюдаем результат:
...
...
2011-05-16 Дата: Понедельник, 16.05.2011, 08:53 | Сообщение # 3
Подполковник
Группа: Проверенные
Статус: Offline
кол-во имеющихся сообщений многим больше требуемого кол-ва от хайдаДобавлено (16.05.2011, 08:53) --------------------------------------------- А так же как можно сделать хайд зависящий от сообщений И репутации пользователя?
2011-05-16 Дата: Понедельник, 16.05.2011, 11:44 | Сообщение # 4
Аццкий кодер
Группа: Администраторы
Статус: Unknown
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 )
А так же как можно сделать хайд зависящий от сообщений И репутации пользователя?
Точно также, проверять наличие репутации, и сравнивать количество баллов с числом. Но тут одна проблема: как передать в скрипт необходимое кол-во репутации для просмотре. Либо и количество сообщений и количество репутации для просмотра делать равным и тогда передавать, как и в скрипте выше, одну цифру, либо установить общее для всех значение.
Другие варианты, как например передавать две цифры - ведут к усложнению скрипта и написанию хайда - не все врубяться как именно и что писать.
Как вытащить репутацию текущего пользователя, и запретить выполнять какие-то действия, написано вот тут «Как запретить измененять репутацию при маленькой репутации?» ... ...
2011-05-16 Дата: Понедельник, 16.05.2011, 11:51 | Сообщение # 5
Подполковник
Группа: Проверенные
Статус: Offline
Огромное спасибо!
2011-05-16 Дата: Понедельник, 16.05.2011, 12:06 | Сообщение # 6
Аццкий кодер
Группа: Администраторы
Статус: Unknown
Если у вас включена поддержка базового API, то скрипт можно ускорить, и не требуется дополнительные коды в шаблоне персональной страницы пользователя. Вот скрипт для работы с API:
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?>
Используется точно также.
В шаблон Форум » Общий вид страниц форума , сразу после $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?>
... Всё ... Больше ничего. Вид алерт-блока настраивается в скрипте ...
2011-05-16 Дата: Понедельник, 16.05.2011, 12:52 | Сообщение # 7
Аццкий кодер
Группа: Администраторы
Статус: Unknown
[hide=10000]Test[/hide]
2011-05-16 Дата: Понедельник, 16.05.2011, 13:33 | Сообщение # 8
Аццкий кодер
Группа: Администраторы
Статус: Unknown
[hide=2000]Всё написанное выше - моё личное мнение и за абсолютную истину восприниматься не должно.[/hide]
2011-05-16 Дата: Понедельник, 16.05.2011, 15:00 | Сообщение # 9
Подполковник
Группа: Проверенные
Статус: Offline
Интересно, что же за ними скрывается?) 12345 или qwerty)Добавлено (16.05.2011, 15:00) ---------------------------------------------likbezz , что нужно дописать что бы появлялось А у вас только 5 ?
2011-05-16 Дата: Понедельник, 16.05.2011, 15:18 | Сообщение # 10
Аццкий кодер
Группа: Администраторы
Статус: Unknown
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>
то, что выделено синим.
2011-05-18 Дата: Среда, 18.05.2011, 14:24 | Сообщение # 11
Подполковник
Группа: Проверенные
Статус: Offline
Идеально! Спасибо Добавлено (18.05.2011, 13:41) ---------------------------------------------likbezz , Хайд успешно работает, но только в том случае если меду открывающимся и закрывающимся ВВ кодом нет подобных скобок: [ ]. Как понимаю - особенность юкоза?
Добавлено (18.05.2011, 14:24) --------------------------------------------- Возмжно ли создать или использовать какой либо ВВ код что бы он отдельно от хайда имел функцию просмотра по репутации?
2011-05-18 Дата: Среда, 18.05.2011, 15:52 | Сообщение # 12
Аццкий кодер
Группа: Администраторы
Статус: Unknown
DesBR , Quote (DesBR )
Как понимаю - особенность юкоза?
Нет, это особенность поиска количества баллов для просмотра скрытого текста.
Quote (DesBR )
Возмжно ли создать или использовать какой либо ВВ код что бы он отдельно от хайда имел функцию просмотра по репутации?
Да, возможно, как и вообще создать любы другие свои BB-коды. По теме: «Как сделать свои BB-коды для сайта / форума» Статья «Как сделать свои BB-коды для сайта / форума» Тема на форуме
2011-05-18 Дата: Среда, 18.05.2011, 16:10 | Сообщение # 13
Подполковник
Группа: Проверенные
Статус: Offline
Почитаю;)
2014-04-09 Дата: Среда, 09.04.2014, 06:44 | Сообщение # 14
Рядовой
Группа: Проверенные
Статус: Offline
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" Думаю Вы ответите, на что и спасибо
2014-04-09 Дата: Среда, 09.04.2014, 20:33 | Сообщение # 15
Аццкий кодер
Группа: Администраторы
Статус: Unknown
Здравствуйте! Помогите пожалуйста с API... Есть вот такой код:
Добрый. Я не понял что вы хотите, если честно. и .. наверное бесплатно вникать в это не буду.