Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Василий М. 18.04.2016 14:06
Привожу всё вокруг, весь кусок.# adrules - это таблица с правилами реклам. Забираем нужные цифры (*) ^adrules.menu{^if($adrules.type eq "journal"){$lim1($adrules.watchlimit)$lim2($adrules.clicklimit)}} # идём в базу, забираем оба подходящих варианта (**) ^connect[mysql://login:pass@localhost/base_ads?charset=cp1251]{ $jours[^table::sql{SELECT * FROM `banners` WHERE `type` like "journal" AND `moderated` > 1 AND `watched` <= $lim1 OR `type` like "journal" AND `moderated` > 1 AND `clicked` <= $lim2 OR `type` like "journal" AND `moderated` > 1 AND `end` <= "CURRENT_TIMESTAMP"}] } # тупо считаем их. $jourstotal(0) ^jours.menu{$jourstotal($jourstotal + 1)} # рандомим. $thisjour(^math:random($jourstotal)) # идём за выбранным (***). ^connect[mysql://login:pass@localhost/base_ads?charset=cp1251]{ $getajour[^hash::sql{SELECT * FROM `banners` WHERE `type` like "journal" AND `moderated` > 1 AND `watched` <= $lim1 OR `type` like "journal" AND `moderated` > 1 AND `clicked` <= $lim2 OR `type` like "journal" AND `moderated` > 1 AND `end` <= "CURRENT_TIMESTAMP" LIMIT ${thisjour},1}] # да, я задумал такие правила, либо-либо-либо, всё верно. инкрементируем просмотры выбранного $setwatched($getajour.watched) $setwatched($setwatched + 1) ^void:sql{UPDATE `base_ads`.`banners` SET `watched` = $setwatched WHERE `id` = '$getajour.id'} } # создаём индексик в обработчной директории /ads/айдибаннера/ $bwa[^^before[]^^within[]^^after[]] ^if(-f "/ads/${getajour.id}/index.html"){}{^bwa.save[/ads/${getajour.id}/index.html]} # пишем код. ссылка и картинка - из хеша. <a href="/ads/${getajour.id}/" rel="nofollow" id="journal" style="background-image: url($getajour.image)^; background-position: top left^; background-size: contain^; background-repeat: no-repeat^;"></a> # и - вау! - ни фига.В результате получаем на месте баннера фиг со ссылкой на /ads//. Не ошибку какую-нибудь там про SQL-syntax, отсутствие столбца и так далее, а просто большой русский фиг!