Модуль, который работает на AJAX, позволит пользователям без лишних затрат трафика и времени просматривать статические страницы сайта.
Изменения:
- Полностью переписан JS.
- Частично переписан PHP.
Установка:
1. В папке
engine/ajax/ создать
staticpage.php и добавить в него следующий код:
<?php
/*
=====================================================
http://vsaite.net/
-----------------------------------------------------
Copyright (c) 2010 Vsaite.Net
=====================================================
Данный код защищен авторскими правами
=====================================================
Файл: staticpage.php
-----------------------------------------------------
Fix: DLE 11.3 от (21.06.17)
Автор: SX2
Сайт: http://sx2.name/
-----------------------------------------------------
Назначение: Открытие статических страниц при помощи AJAX
=====================================================
*/
@error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
@ini_set('display_errors', true);
@ini_set('html_errors', false);
@ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE);
define('DATALIFEENGINE', true);
define('ROOT_DIR', substr(dirname(__FILE__), 0, -12));
define('ENGINE_DIR', ROOT_DIR . '/engine');
include ENGINE_DIR . '/data/config.php';
date_default_timezone_set($config['date_adjust']);
if ($config['http_home_url'] == "") {
$config['http_home_url'] = explode("engine/ajax/staticpage.php", $_SERVER['PHP_SELF']);
$config['http_home_url'] = reset($config['http_home_url']);
$config['http_home_url'] = "http://" . $_SERVER['HTTP_HOST'] . $config['http_home_url'];
}
require_once ENGINE_DIR . '/classes/mysql.php';
require_once ENGINE_DIR . '/data/dbconfig.php';
require_once ENGINE_DIR . '/modules/functions.php';
dle_session();
if ($config["lang_" . $config['skin']]) {
if (file_exists(ROOT_DIR . '/language/' . $config["lang_" . $config['skin']] . '/website.lng')) {
include_once ROOT_DIR . '/language/' . $config["lang_" . $config['skin']] . '/website.lng';
} else
die("Language file not found");
} else {
include_once ROOT_DIR . '/language/' . $config['langs'] . '/website.lng';
}
$config['charset'] = ($lang['charset'] != '') ? $lang['charset'] : $config['charset'];
$pages = $_REQUEST['pages'];
if (!$pages)
die("Error");
require_once ENGINE_DIR . '/modules/sitelogin.php';
@header("Content-type: text/css; charset=" . $config['charset']);
if ($_REQUEST['user_hash'] == "" OR $_REQUEST['user_hash'] != $dle_login_hash) {
die("<div id='staticpage'>{$lang['sess_error']}</div>");
}
$row = $db->super_query("SELECT descr,template FROM " . USERPREFIX . "_static WHERE name = '{$pages}'");
$text = $row['template'] ? $row['template'] : "Ошибка мля, нету такой страницы";
$text = str_replace('{ACCEPT-DECLINE}', "", stripslashes($text));
$descr = $row['descr'];
echo "<div id='staticpage' title='{$descr}'>{$text}</div>";
?>
2. В
engine/classes/js/dle_js.js в самом низу добавить:
function staticpage(a){ShowLoading(""),$("#staticpage").remove(),$.post(dle_root+"engine/ajax/staticpage.php",{user_hash:dle_login_hash,pages:a},function(a){HideLoading(""),$("body").append(a),$("#staticpage").dialog({dialogClass:"modalfixed",autoOpen:!0,show:"fade",hide:"fade",width:800,height:600,buttons:{"Закрыть":function(){$(this).dialog("close")}}}),$("#staticpage").css("overflow","auto"),$(".modalfixed.ui-dialog").css({position:"fixed"}),$("#staticpage").dialog("option","position",["0","0"])})}
3. В файл шаблона добавить код:
<a href="/dle-rules-page.html" class="bbcodes" onclick="staticpage('dle-rules-page'); return false;" >Смотреть</a>
Как вы уже догадались
href="/dle-rules-page.html" staticpage('dle-rules-page') - тут подставляете имя вашей статической страницы.
Готово!
•
Версия DLE: 11.3
•
Кодировка: win-1251 + utf-8
•
Автор: Kilya
•
Модификация: SX2
•
Источник
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.
Комментариев 2