Модуль для DLE, последние апдейты
Здравствуйте уважаемые читатели, в сегодняшней статье речь пойдет о создании модуля для DLE «Последние апдейты». Модуль будет нас информировать о последних апдейтах ТИЦ, PR и ЯВ. Все значения мы будем грабить с популярного ресурса pr-cy.ru.
Модуль будет простой, без админки и состоит из 3 файлов: up.php , cronup.php , updates. Итак, подробнее о каждом файле.
Скрипт up.php будет выводить значения последних апдейтов в сайдбаре. Он парсит файл updates в котором заранее записаны даты последних апов и выводит данные.
Исходники up.php
<?php
/*
=====================================================
Мод
=====================================================
Данный код защищен авторскими правами
=====================================================
Файл: up.php
----------------------------------------------------------
Назначение: Updates
=====================================================
*/
if(!defined('DATALIFEENGINE'))
{
die("Hacking attempt!");
}
if (!$up) {
$ups = @file(ROOT_DIR."/engine/modules/updates");
$ups = array_map("trim",$ups);
if ($ups[0]==date("d.m.Y")){
$cy = "<b>$ups[0]</b>";
}else{
$cy = $ups[0];
}
if ($ups[1]==date("d.m.Y")){
$pr = "<b>$ups[1]</b>";
}else{
$pr = $ups[1];
}
if ($ups[2]==date("d.m.Y")){
$yav = "<b>$ups[2]</b>";
}else{
$yav = $ups[2];
}
$up .= <<<HTML
<table>
<tr><td><span class="blue">G</span><span class="red">o</span><span class="yellow">o</span><span class="blue">g</span><span class="red">le</span> <span class="lar">PR</span></td><td><span class="date"><acronym>$pr</acronym></span></td></tr>
<tr><td><span class="red">Я</span><b>ндекс</b> <span class="ar">тИЦ</span></td><td><span class="date"><acronym>$cy</acronym></span></td></tr>
<tr><td><span class="ar"> выдача</span></td><td><span class="date"><acronym>$yav</acronym></span></td></tr>
</table>
HTML;
}
?>
Файл cronup.php является граббером, он грабит результаты последних апов с http://pr-cy.ru/updates.xml и записывает результат в файл updates
<?php
$body = file_get_contents("http://pr-cy.ru/updates.xml");
preg_match("#<cy>(.*)</cy>#is",$body,$cy_match);
preg_match("#<pr>(.*)</pr>#is",$body,$pr_match);
preg_match("#<yav>(.*)</yav>#is",$body,$yav_match);
$cy = trim($cy_match[1]);
$pr = trim($pr_match[1]);
$yav = trim($yav_match[1]);
$fp = fopen ("updates", "w+");
fwrite ($fp, "$cy\r\n$pr\r\n$yav");
fclose ($fp);
?>
Для установки модуля, нужно залить файлы up.php, cronup.php и updates (установить права 777) в директорию engine/modules/. Затем открываем файл index.php .
Находим строку
require_once ROOT_DIR.'/engine/init.php';
и ниже дописываем строку
require_once ROOT_DIR.'/engine/modules/up.php';
Находим строку
$tpl->set('{calendar}', $tpl->result['calendar']);
Ниже дописываем строку
$tpl->set('{up}',$up);
Для корректной работы модуля нужно выставить крон (1-2 часа) на файл engine/modules/cronup.php. Через каждые 2 часа граббер будет копировать информацию о последних апдейтах и записывать её в файл updates вот в таком виде:
xx.xx.xxxx - первая строка (дата последнего апа ТИЦ) xx.xx.xxxx - вторая строка (дата последнего апа PR) xx.xx.xxxx - третья строка ( дата последней ЯВ)
Затем скрипт engine/modules/up.php обрабатывает содержимое файла updates и заменяет макрос {up} (этот макрос нужно предварительно вписать в шаблон сайта main.tpl) на результат.
С помощью такого блогоинформера я и узнал о последнем апе ТИЦ, который состоялся 31 мая и ничего положительно для меня не принес(. Надо больше работать над продвижением и наращивать ссылочную массу.
Постовые: Вы знаете хоть какие нибудь известные слоганы?



Авторегер Narod.ru
[FAQ] Как грамотно писать скрипты под Human Emulator.
Автоматическая аддурилка Yandex
Test Maker v 1.0 — бесплатная CMS для создания online тестов
Здравствуйте! Меня зовут Михаил.Раньше я называл себя Новороссийским бомжем, но решил немного отойти от этого. Теперь мой блог - это Блог PHP программиста. Я уже 3 года занимаюсь PHP программированием. С недавнего времени создаю и продвигаю web сайты. Среди собственных разработок — самописная CMS, работающая на файлах, CMS для создания online тестов и т.д.