Вывод случайного модуля

+17
1.4K
Привет!
Когда-то делал да позабыл, на форуме напомнили.
Надеюсь, пригодится.
Всего парочка простых шагов:

1.стиль:
  1. <style>
  2. #first, #second, #third { display:none; }
  3. </style>
2.скрипт:
  1. <script>
  2. window.onload = function () {
  3. var lol = Math.floor(Math.random() * 3) + 1;
  4. var first=document.getElementById('first');
  5. var second=document.getElementById('second');
  6. var third=document.getElementById('third');
  7.  
  8. switch (lol)
  9. {
  10. case 1: first.style.display = 'block';break;
  11. case 2: second.style.display = 'block';break;
  12. case 3: third.style.display = 'block';break;
  13. default: first.style.display = 'block';break;
  14. }
  15. }
  16. </script>
3.новая позиция в в positions.txt, например, "random"
4.выводим позицию в нужном месте template.php
5.создаем три новых шаблона для модулей, назовем их, например, module_first.tpl, module_second.tpl, module_third.tpl, содержание каждого "заворачиваем" в соответствующую облочку:
(<div id="first">, <div id="second">, <div id="third">
6.топаем в админку, назначаем три модуля на позицию "random", указываем для каждого шаблон модуля из тех что мы создали.
7.обновляем страницу, переходим по ссылкам и любуемся случайным выводом модулей…
+1
picaboo picaboo 9 лет назад #
это не случайны вывод, это случайно скрытие выведенного модуля. нагрузка будет как от трех, а не от одного
0
Олег Васильевич я Олег Васильевич я 9 лет назад #
А если просто вывести те же три модуля на страницу, нагрузка меньше будет?
Не сомневаюсь, что можно сделать и иначе и лучше.
Спасибо!
0
picaboo picaboo 9 лет назад #
я без наезда, просто уточнил :)

я думал у вас хитрое условие для смарти чтоб выводить одну из позиций рандомом. но тогда бы пришлось три позиции содать.
+3
Сергей Петрович Сергей Петрович 9 лет назад #
В каждом деле, в том числе и программировании, есть никем не писаные "правила хорошего тона", за нарушение которых никто не будет ругать, но придерживаться которых всё-таки стоит!!
Здесь как раз тот случай. Не правильно производить вычислений в ТРИ раза больше, чем в результате понадобится.
+2
Олег Васильевич я Олег Васильевич я 9 лет назад #
Да я вообще не программист!!!
+6
Fuze Fuze 9 лет назад #
Да я вообще не программист!!!
Гэниально) 5 балов!
+1
Олег Васильевич я Олег Васильевич я 9 лет назад #
... это правда, столь ни грустная для меня
+1
Олег Васильевич я Олег Васильевич я 9 лет назад #
Ленивый, не в обиду.
Мне всё таки кажется, что придеоживаясь хорошего тона, вы могли б или не писать ничего или показать как произвести вычислений столько сколько нужно.
Спасибо!
0
tokarev tokarev 9 лет назад #
Олегу Васильичу плюс)))) а по поводу нагрузки, так вроде инстант я не замечал, чтоб сервер слишком грузил...
в общем, спасибо, пригодится!

Еще от автора

Pioneer - скин для шаблона modern
Бред сумасшедшего на тему "Как бы выглядела InstantCMS 1-х сегодня".
Одна ёлка, немного снега и два Деда, играющихся в прятки
Ещё один вариант новогоднего украшения. Пока не замылено в сети (на эту минуту стоит только на 2-х сайтах)
Новогодние скидки
Всё платное за 50%
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.