Как не выводить ничего если num=0
Скрипт выводит новые материалы за сегодня с помощью информера.
Шаблон информера: Код:
if('$DATE$'==cur_date){num++;} В шапку страницы: Код:
<script type="text/javascript"> Там где надо вывести: Код:
<script type="text/javascript"> $MYINF_X$-информер, где X = номер информера. Вопрос: Как не показывать ничего если num=0 ? |
используйте if:
http://learn.javascript.ru/ifelse var num = 0; if (num != 0) { console.log('что то делать'); } else { console.log('ничего не делать'); } |
Условные операторы являются принципиальным признаком отличия калькулятора от компьютера. if else end if - извилина искусственного разума.
|
Никак не получается, покажите пожалуйста на моем примере
|
покажи как сделал ты
|
Так делал в месте где надо вывести:
var num = 0; if (num != 0) { console.log('$MYINF_X$; document.write('<span class="badge">'+num+'</span>'); '); } else { console.log(''); } и еще много чего пробовал, знание Javascript=0 , все методом тыка |
var num = 0; if (num != 0) { document.write('<span class="badge">'+num+'</span>'); } else { console.log(''); } |
Без $MYINF_X$; , тоже не работает он ведь и выводит информацию о количестве новых материалов за сегодня
|
Просто хочу реализовать в юкоз меню с оповещением о новых материалах
![]() все получилось, но ноль показывает, а не надо |
Все получилось,спасибо огромное,
еще вопрос можно? |
как сделать, что бы при клике по ссылке меню значение обнулялось и считалось заново?
Хотя бы просто исчезало оповещение. У меня 5 категорий, а код один, и при добавлении материалов в последующих категориях меню num суммируется, может им как то id присвоить? ![]() в обеих категориях по 2 новых материала, последующая категория суммирует |
num откуда берется, ваш js как то формирует или с сервера тянется?
|
Это один и то же скрипт на всё. Ему подается 2 даты - когда дата1 минус дата2 меньше 0 он собирает сущность в коллекцию. Вот и все. Когда юзер щелкнул - дата1 стала больше дата2 и тот же самый скрипт уже ничего не соберет, а рендер, соответственно, ничего не покажет.
Надо нормализовать. Например модель собирает сущности в массив. var items=[]; // собирает А вьюха этот массив рендерит for(var i=0; i<items.length//... тут рендер и все. Если в items пустой массив, этот for закончится не начавшись и не надо никакие if else end if специально вставлять - оно само все проканает, автоматически, по нормальной логике. ЗЫ На этом как и на любом форуме есть точно такая же фича - вам показывают красным темы даты обновления которых больше даты вашего последнего посещения. Если их посчитать то можно вывести как число в заголовок рубрики. Стопицот лет так делают и до сих пор вишь проблемы :) |
Щас попробую обьяснить. Я создал 5 стандартных информера в юкоз под каждую категорию(файлы, виде, альбом), которые выводят последние добавленные материалы, на любую страницу сайта кодом:
$MYINF_X$, где X- номер информера. Удалив стандартные шаблоны информеров во все вставил код: Код:
if ('$DATE$'==cur_date){num++;} В шапку вставил код: <script type="text/javascript"> cur_date=$DATE$; num=0; </script> теперь нумерация начинается с ноля. Вывел информеры в пунктах меню кодом: <script type="text/javascript"> $MYINF_X$; document.write('<span class="badge">'+num+'</span>)</script> Т.к. код во всех шаблонах информеров одинаковый, то значение num работает не правильно. Если добавляю материал в файлы: Файлы 1 , Видео 0. Следом добавляю в видео: Файлы 1, Видео 2(вместо 1,т.е. в общем то у нас добавлено 2 материала разных категорий , а num для них один) Как то так, фуххх) |
Короче, рендер для юкоза тут не при чем - с козой вам самому придется разбираться и я верю что под ихнее АПИ у них есть свой форум.
Название темы такое что сразу и не поймешь. Потому что если нет данных - то и показывать нечего, ну или можно показат "нет данных". |
Цитата:
Цитата:
ЗЫ С трудом сообразил, поскольку такое уже не встречается. Это у него значит шаблон сам себя рендерит. Ну ясень пень тогда сколько шаблонов - столько и одинаковых кодов будет, с небольшими отличиями. |
Делается не так. Делается вот так. Имеется скрипт который собирает данные и который один только все знает - ну то есть в нем вся ваша инициатива, он знает кто как зовется, откуда что брать и все такое.
Этот скрипт куда-то, абсолютно не важно куда - валит данные в неком принятом и приятном для вас формате. В какую-нить переменную, да хоть прямо в window. Это - model. Если этот скрипт совмещает и функцию контроллера, то завалив данные он же вызывает модули рендера по обстоятельствам - по адресам, по действиям юзера и тп. Модуль рендера - view - берет данные из условленного места и тупо превращает их в элементы страницы или интерфейса юзерского. В нем минимальная логика, ну там типа если тут пусто, то вывести синим, а иначе красным то, что не пусто, или не выводить ничего. Ваши шаблоны - это вьюхи. Сами они думать не должны. Иначе вы никогда не напишите ничего. |
Нет, шаблоны информеров были разными, пока я не вставил свой получилось что при добавлении материала их количесиво плюсуется в одной категори, а не делится в каждой категоии свое количество добавленых материалов.
Пробовал разделить num, num1,num2... все работает, но при добавлении еще материалов выше 1 зна чение не поднимается. |
Еще раз. Ваша задача настолько банальна, что места нет живого. Шаблоны которые сами себя рендерят ежу понятно будут разными пока вы не захотите взять кусочек из того шаблона и вставить в этот - для красоты. И все, с этого момента пластилиновая технология даст о себе знать.
|
Ок, спасибошки, буду у козы спрашивать.
|
Стопицот лет уже нет шаблонов и шаблонизаторы поросли мохом. Но разве это касается козы? :)
|
Может я повторюсь, но для одной категории меню, этот скрипт работает идеально, копировав этот же скрипт еще в 4-е информера для других категорий меню, значение
num складывается, а не разделяется по каждой категории. В обычной ситуации, я бы присвоил каждому значению num свой id для разных категорий, как это сделать в javascript я не понимаю ,потому и обращаюсь к вам за помощью. |
Все, сделал. Разбил по категориям присвоив num:
a_num, l_num, p_num, f_num, v_num. Остался вопрос как при клике на ссылку скрыть оповещение до добавления нового материала или до завтра, так как выводит только добавленные сегодня. |
Часовой пояс GMT +3, время: 04:32. |