Есть страница на которой через каждые 5 товаров (1 строка) выводится рекламный блок. Так как Яндекс не умеет показывать один рекламный блок несколько раз, думаю реализовать показ разных блоков путем добавления в код цикла, который в зависимости от итерации будет выводить нужный блок. Попробовал по примерам сделать сам, но ни фига не получилось с ходу. Можете такое реализовать? Это точно нужно делать на php? ))) PHP: <?php defined('_JEXEC') or die('Restricted access'); ?> <div class="jshop list_product" id="comjshop_list_product"> <?php foreach ($this->rows as $k=>$product) : ?> <?php if ($k % $this->count_product_to_row == 0) : ?> <div class = "row-fluid"> <?php endif; ?> <div class = "sblock<?php echo $this->count_product_to_row;?>"> <div class = "block_product"> <?php include(dirname(__FILE__)."/".$product->template_block_product);?> </div> </div> <?php if ($k % $this->count_product_to_row == $this->count_product_to_row - 1) : ?> <div class = "clearfix"></div> </div> МЕСТО ДЛЯ РЕКЛАМЫ <?php endif; ?> <?php endforeach; ?> <?php if ($k % $this->count_product_to_row != $this->count_product_to_row - 1) : ?> <div class = "clearfix"></div> </div> <?php endif; ?> </div>
прочему надо показывать именно один рекламный блок? почему не разные? Я, кстати, не уверен, что не умеет. Бывает, показывает. Бывает, нет; я сейчас про RTB-блоки. Но даже если предположить, что не умеет - каким образом планируется при помощи цикла (!?) заставить Яшу показать то, что он не хочет показывать, не очень понял? При чем здесь циклы и вообще php?
я не знаю как работает реклама яндекса, может там сначала подключается js в шапке и потом вставляется блок с id в котором покажется реклама лиибо через фрейм. Ну короче. Я бы сделал так собрал бы все в массив все блоки с рекламой или фреймы потом в цикле каждую пятую итерацию делал PHP: $el = rand(0,count($mas)); echo $mas[$el]; unset($mas[$el]);
Яндекс контролирует все блоки, которые будет показывать страница. Существует предельное количество блоков, например, которые способна отображать такая страничка. Кроме того, Яндекс стремится показать разные блоки; иное дело, что проводится аукцион в реальном времени (см. описание "Блоки Real Time Bidding") и результаты не всегда оптимальны, имхо, Яндекс постоянно экспериментирует. РОтировать рекламные блоки Яндекса, на мой взгляд, имеет смысл только в одном случае - если хочешь совмещать рекламу Яндекса с блоками Adsence и других. Но я не вижу этого в первом сообщении топика: - нелепая, говорящая ни о чем теза. Нафига и кому оно надо, "один рекламный блок несколько раз"?
Переформулирую, чтобы на Вас не давила эта фраза. Мне нужно вставить в одном месте сайта (обозначенном как "МЕСТО ДЛЯ РЕКЛАМЫ") 3 варианта КОДа в зависимости от итерации. Забудьте про Яндекс.
У тебя есть 3 варианта кода для вставки? Если да, то в чем проблема на каждой итерации цикла подключать файл с кодом (к примеру у тебя 1.php, 2.php, 3.php) вот ты на каждой итерации и подключаешь. Либо ты это все заносишь в массив и в зависимости от итерации так-же выводишь. Тут могут быть различные варианты. И что значит "в зависимости от итерации"? Т.е. на первой итерации нужно вывести треугольник, на второй квадрат, на третьей круг? Это я образно говорю, в том смысле что на каждой итерации будет различаться рекламный код? Я думаю непонимание именно в этом.
Проблема в том, что я не знаю PHP, начал писать цикл, так у меня x=0 после каждого товара на сайте отобразилось, а нужный код нет ))) Что нужно сделать я понимаю, но не знаю как.
судя по этой фразе, также по - PHP: <?php defined('_JEXEC') or die('Restricted access'); ?> - у тебя joomla, угадал? куда именно ты намереваешься вхерачить свой цикл, можешь внятно объяснить? какой компонент или модуль? UPD. Joomshopping что ли?
Достаточно подробно все описано на жумлафоруме. Буквально ваша же ситуация, т.е. вывод рекламного блока после каждого пятого товара. Попробуйте воспользоваться вариантом №1, рекомендованного разрабом модуля, т.е. там, где у вас "МЕСТО ДЛЯ РЕКЛАМЫ" - этот код: PHP: <?php $document = &JFactory::getDocument(); $renderer = $document->loadRenderer('modules'); $options = array('style' => 'xhtml'); $position = 'Ваша позиция'; echo $renderer->render($position, $options, null); ?>
На самом деле у меня сейчас все проще - просто стоит код объявления вместо того, что предлагает разработчик. И один и тот же код показывается после каждых 5 товаров. Я же хочу чтобы после каждых 5 товаров я мог поставить различный код (после 5 товара-рекламный блок 1, после 10-рекламный блок 2 итд ). Спасибо за ссылку на форум, может там подскажут как реализовать.
Ну и напрасно, простой путь не всегда правильный. Я бы сделал так, как рекомендует разраб жумлафорума: создал бы новую позицию, прописал бы ее в templateDetails.xml используемого шаблона, затем создал бы новый HTML модуль, в котором указал бы подобие того скрипта, который уже рекомендовали тебе выше; и опубликовал бы его в новой позиции . Что не нравится-то? если вставить php в модуль сходу не получится, используй Sourcerer RegularLabs. Если непонятно, насчет скрипта, а свой показывать не хочешь - ну, переспроси, @Dron-Boy расскажет тебе более подробно. Или другой вариант, не требующий знаний php вообще... скачай Random HTML-code module (или ему подобный), захерачь туда пяток-десяток HTML своих рекламных блоков, опубликуй в новой позиции модуля, которую указал в list_produts.php, и все сразу будет гут.
Непонятно какой из этих вариантов позволит мне выводить разный код через каждые 5 товаров. Вот разве Random HTML-code module и то, наверное, как повезет с его рандомностью
Поставил Random HTML-code, как я и боялся, он рандомно может повторять один и тот же код, который не будет отображаться второй раз, то есть реклама идет не через каждые 5 товаров, а рандомно ))) Это, конечно, лучше чем было, но не идеал. Циклом проще и гибче.
Random HTML-code всем хорош, но надо же было додуматься не сделать возможность отключения повторений (((
С джумлаводами соглашение... они по-прежнему в большинстве своем находятся в счастливом неведении, на каком же именно ЯП написан их MVC-фреймворк Joomla... а мы тут взяли на себя обязательство не торговать семечками на базаре. И вообще, у нас чуть дешевле. Но гораздо круче. Взгляни, итерируем массив PHP: ['<div><img src="images/belmondo.png"></div>', "<div>HTML2</div>", "<div>HTML3</div>", "<div>HTML4</div>"] все как ты хотел. Перебираем, выводим поэлементно и по порядку, по окончании он начинается типа сызнова. Картинку даже сюда выведу... Если что, обращайся. Это я так, просто ради контраста с жумлафорумом.