Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Хак - Блоки как вконтакте для DLE.
Скачать бесплатно Хак - Блоки как вконтакте для DLE.
Автор: MSW
ICQ: 365-888
Email: [email protected]
Функционал: работает на аяксе, если меню было отключено пользователем - то при повторной загрузке/обновлении страницы содержимое блока загружено не будет!
что решило заявленные в первом посте недостатки
Теперь данный хак подходит только для ДЛЕ версии 8.2
Так как содержимое менюшек нужно будет перенести в отдельные пхп файлы и просто инклудить в шаблон.
Создаём файл: /templates/ваш_шаблон/js/block.js
function setCookie(name, value, expiredays, path, domain, secure) {
if (expiredays) {
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
var expires = exdate.toGMTString();
}
document.cookie = name + "=" + escape(value) +
((expiredays) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
function getCookie(name) {
var cookie = " " + document.cookie;
var search = " " + name + "=";
var setStr = null;
var offset = 0;
var end = 0;
if (cookie.length > 0) {
offset = cookie.indexOf(search);
if (offset != -1) {
offset += search.length;
end = cookie.indexOf(";", offset)
if (end == -1) {
end = cookie.length;
}
setStr = unescape(cookie.substring(offset, end));
}
}
return setStr;
}
function block_ajax(id) {
if(getCookie(id) == 1) {
setCookie(id, 0, 90, "/");
} else {
setCookie(id, 1, 90, "/");
}
var ajax = new dle_ajax();
ajax.setVar("id", id);
ajax.setVar("edit", "1");
ajax.requestFile = dle_root+"engine/modules/block/"+id+".php";
ajax.method = 'POST';
ajax.element = id;
ajax.sendAJAX("");
return false;
}
Создаём файл инклуженого меню: /engine/modules/block/test.php
<?php
if($_REQUEST['edit'])
{
define('DATALIFEENGINE', true);
define('ROOT_DIR', '../../..');
define('ENGINE_DIR', '../..');
include ENGINE_DIR . '/data/config.php';
require_once ENGINE_DIR . '/classes/mysql.php';
require_once ENGINE_DIR . '/data/dbconfig.php';
require_once ENGINE_DIR . '/modules/functions.php';
@header("Content-type: text/css; charset=windows-1251");
}
$name = "test";
$cookie = $_COOKIE["{$name}"];
$content = "<div id=\"{$name}\">";
if($cookie == 1 || !isset($cookie))
{
$content .= <<<HTML
<table>
<tr onclick="block_ajax('{$name}')" style="cursor:pointer;">
<th>Заголовок блока</th>
</tr>
<tr>
<td>Содержимое блока</td>
</tr>
</table>
HTML;
}
else
{
$content .= <<<HTML
<table>
<tr onclick="block_ajax('{$name}')" style="cursor:pointer;">
<th>Заголовок блока</th>
</tr>
</table>
HTML;
}
$content .= "</div>";
echo $content;
?>
Подключаем файл в шаблон: main.tpl
Найти:
</head>
Добавить выше:
<script type="text/javascript" src="{THEME}/js/block.js"></script>
В нужном месте для вывода блока:
{include file="engine/modules/block/test.php"}
Вот и всё, установка закончена :)
Предыдущая Следующая