Так как я не могу выявить какой-то один сервис, то было решено запустить их в ротацию.
Для реализации ротации контекстной рекламы я не стал самостоятельно изобретать велосипед по-новой, а воспользовался советом этого блога. Данный метод заключается в размещении кода обоих контекстов в разных текстовых файлах, которые будут чередоваться. В том месте где хотите размещать рекламу, Вам нужно вставить вот этот HTML-код:<txp:php>
$fls = array(
'adsanse.txt',
'direkt.txt',
);
$fl = "путь_к_файлам/".$fls[array_rand($fls)];
$textfile = fopen($fl,"r");
fpassthru($textfile);
fclose($textfile);
</txp:php>
Так как я использую Textpattern, то приведенный выше код именно для этой CMS, но для использования где-то либо еще нужно заменить <txp:php> на <?php, а </txp:php> на ?>.
Пока говорить о достигнутых результатах не приходится, так как я поставил ротацию контекстной рекламы только на одном из сайтов, но как накоплю месячную статистику, то обязательно поделюсь ей.]]>Я, к своему стыду, очень долгое время использовал для заполнения этого блога чистый html и не понимал всей простоты и мощи textile, но все изменилось и кроме самого себя, я стараюсь привить любовь к textile и своих заказчиков.
Люди, кто хоть раз попробовалииспользовать textile для написания статей, очень редко ищут ему замены. Именно по этому я практически всегда при разговоре с заказчиками настаиваю на использовании именно textile, чем WISWIG-редактора, так как при использовании textile практически нет html-мусора, которого очень много после любого WISWIG-редактора.
При использовании textile для меня всегда были некоторые щекотливые моменты, которые мне приходилось обходить чистым HTML, так как я полагал, что с помощью textile реализовать некоторые вещи просто невозможно. Оказывается, что я ошибался.
При использовании FancyBox, позволяющего сделать красивое jquery-выезжание ваших картинок, мне приходилось каждый раз вставлять громоздкий html-код. Оказывается тот же самый html-код можно написать и средствами textile.
К примеру, html-код:
<a id="single_image" href="images/999.jpg" title="Описание" alt="Описание">
<img src="images/999t.jpg" alt="" class="images" />
</a>
можно вполне заменить вот этим:
"(#single_image)!(images)images/999t.jpg!(Описание)":images/999.jpg
Самое главное, что хотелось бы выделить в приведенном примере textile-кода, это то, что в разметке ссылки можно использовать такие параметры как title. Эта возможность почему-то не описана ни на официальном сайте Textpattern, ни на Wiki-странице textile`я.
Чтобы любой ссылке добавить title, необходимо сделать вот так:"анкор_ссылки(title_описание)":урл_ссылки
отсюда следует, что всего-то необходимо было добавить до закрывающейся кавычки – описание, обрамленное круглыми скобками. Как оказывается, все гениальное – просто!
С помощью этого я полностью смог перейти на textile и не использовать нагроможденную html-разметку хотя бы для написания статей.
P.S. Если честно, то для меня textile теперь намного удобнее и проще, чем WISWIG. Просто получается, что меньше нужно на кнопки давить и вообще можно обойтись без мышки, а это многого стоит…
]]>Средствами PHP организовать подобную передачу и последующую её обработку проще простого, но если Вы используете Textpattern, это сделать еще проще. Для облегчения работы web-разработчика приходит на помощь плагин adi_gps.
Этот плагин замечательный тем, что позволяет делать одну очень простую, но важную вещь: передавать одноименной переменной TXP значение переменной в запросе..
Скачать его можно с официального блога разработчика.
Для того чтобы доступнее объяснить, поясню: если у текущей страницы URL-адрес, к примеру, https://adminway.ru/primer?tmp=2, то плагин позволит присвоить переменной TXP с именем tmp значение, которое указано в GET-запросе, то бишь 2. С переменными TXP мы сталкивались здесь. Эти знания можно использовать в каких-нибудь условиях, пример которого я приведу чуть ниже. С POST-запросами этот плагин работает также хорошо как и с GET.
Для того, чтобы передать переменную, к примеру, из GET-запроса в переменную TXP, нужно воспользоваться всего лишь одной командой:
<txp:adi_gps name="tmp" type="get" />
Для нескольких GET-переменных это будет выглядеть так
<txp:adi_gps name="tmp,tmp1,tmp2" type="get" />
Вот простой пример использования плагина adi_gps, который лишен особого смысла и приведен только в качестве примера:
<txp:adi_gps name="tmp" quiet="1" />
<txp:if_variable name="tmp" value="2">
tmp = <txp:variable name="tmp" />
<txp:else />
Нет переменной tmp.
</txp:if_variable>
Вначале кода переменная tmp передается из GET-запроса в одноименную переменную TXP, а далее идет проверка на равенство 2.
Этот плагин, на мой взгляд, существенно расширяет возможности textpattern и позволяет полноценно обрабатывать GET- и POST- запросы не прибегая к прямому применению PHP.
]]>Вот, к примеру, в отдельных случаях необходимо сделать так, чтобы при выводе списка всех опубликованных статей в одной секции, четные были оформлены по одному способу, а нечетные по второму.
И в Textpattern сделать это достаточно просто. Нужно только немного подумать.
Я себя давно ловлю на мысли, что некоторые вещи, которые приходится реализовывать в Textpattern`е при создании сайтов, я делаю сложным способом, прибегая к PHP. Но после того, как все уже написано, смотрю на код, и понимаю, что все это можно сделать средствами самого TXP. Переписывать все конечно же не решаюсь, но каждый раз корю себя за это.
Изменить вывод каждой второй статьи в Textpattern можно несколькими способами, но я выбрал тот, который позволяет это делать внутренними средствами.
Помочь в этом могут так называемые variable (переменные), которыми редко кто пользуется в TXP. До последнего времени я даже и не задумывался о них, что могу где-то их использовать, но как оказалось – это очень удобный инструмент, которым можно решить некоторые нетривиальные задачи.
Алгоритм работы этого когда заключается в простой проверке на четность. В самом начале переменной (у меня это stat), при выводе первой статьи, присваивается значение 1. При выводе каждой последующей статьи идет проверка этой переменной и выводиться статья с противоположным оформлением. После каждого вывода переменная меняется на противоположное значение.
К примеру, нам нужно в каждой нечетной статье (1, 3, 5 и т.д.) — выводить изображение статьи с лево, а в каждой четной статье (2, 4, 6 и т.д.) — выводить изображение статьи справа. Тогда код будет иметь вид вот такой:
<txp:title />
<txp:if_variable name="stat">
<txp:if_variable name="stat" value="1">
<txp:variable name="stat" value="2" />
<txp:else />
<txp:variable name="stat" value="1" />
<txp:article_image />
</txp:if_variable>
<txp:else />
<txp:variable name="stat" value="1" />
</txp:if_variable>
<txp:body />
Благодаря умелому использованию variable в этом случае, можно добиться разного эффекта: можно менять, как в моем примере, вывод только изображений, а можно менять отображение полностью целиком всей статьи. Тут у кого на что фантазии хватит.
]]>