Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Простой ротатор данных (https://javascript.ru/forum/project/75261-prostojj-rotator-dannykh.html)

dr.zoom 19.09.2018 11:18

Nexus и laimas - ребята, спасибо большое за то что откликнулись на мою просьбу о помощи! Nexus-у отдельная благодарность на написание скрипта!

сегодня вечером буду его тестить, по результатам обязательно тут сообщу!

готов отблагодарить материально, на ваш wmr или Яденьги.

вопрос:

Цитата:

В директории, в которую положите файл "getBanner.php" создайте еще одну директорию с именем "banners", в нее накидайте файлов, контент которых - код вставляемых на страницу баннеров.
1 файл - 1 баннер.

нее накидайте файлов - файлы с каким расширением (формата) должны быть? .html .txt .php или .. ??

Nexus 19.09.2018 11:26

dr.zoom,
Цитата:

Сообщение от dr.zoom
файлы с каким расширением (формата) должны быть?

Без разницы, однако исполняемые файлы заливать смысла нет, т.к. исполнены они не будут.

dr.zoom 19.09.2018 11:39

Цитата:

Сообщение от Nexus (Сообщение 495091)
dr.zoom,
Без разницы, однако исполняемые файлы заливать смысла нет, т.к. исполнены они не будут.


не удержался затестил сейчас прямо на работе.

файлы в каталоге banners создал 1.txt и 2.txt

прописал все пути, вроде даже правильно (скрипты правильно по урл открываются), но ничего не выводиться на index.html

dr.zoom 19.09.2018 11:56

еще вопрос, точнее хотелка, если позволите.

страницы сайта сами по себе динамические - php (wordpress). буду использовать плагин кеширования, странички будут статичными.

вопрос - можно ли сделать ротацию баннеров, чтобы не кешировалось ?

Nexus 19.09.2018 12:03

dr.zoom, если использовать первый вариант (где 1 файл php и 1 файл js), то кешироваться не будет.
Во втором варианте (где баннер рисуется сервером) кешироваться, скорее всего, будет.
Я не работаю с WP.

dr.zoom 20.09.2018 12:16

Цитата:

Во втором варианте (где баннер рисуется сервером)
я не совсем догнал, где второй вариант (

а насчет работоспособности, что скажите? работает у вас код ?

<?php
//getBanner.php
$visit=isset($_COOKIE['visit'])?(int)$_COOKIE['visit']:0;
$directory=__DIR__.'/banners/';
if(!is_dir($directory))
throw new \Exсeption("Directory [$directory] not found");

$banners=array_diff(scandir($directory),['.','..']);
$response=$directory.$banners[$visit%count($banners)];
$response=file_get_contents($response);
setcookie('visit',++$visit,time()+365*24*3600,'/');

echo $response;


//banners.js
[].filter.call(document.scripts,function(script){
return !!script.src && script.src.indexOf('banners.js')>0;
}).forEach(function(script,index){
if(index)
return;

var xhr=new XMLHttpRequest();
xhr.open('GET','/path/to/getBanner.php?'+Math.random(),true);
xhr.onload=function(){
script.insertAdjacentHTML('beforebegin',this.respo nseText);
};
xhr.send();
});


у мня вот не работает (

Nexus 24.09.2018 14:32

Цитата:

Сообщение от dr.zoom
у мня вот не работает

Я не тестировал.
Открыв в браузере консоль можно, что возвращает сервер и не падает ли где на пол пути скрипт, который вставляет на страницу баннер.
Если сервер возвращает 500 http code, то смотрите error log.


Часовой пояс GMT +3, время: 22:54.