dle.in.ua » Модули » Бесплатные » Сворачивающиеся блоки 2.1 (AJAX)

Сворачивающиеся блоки 2.1 (AJAX)

Автор: MSW от 26-01-2010, 15:53
Сворачивающиеся блоки 2.1 (AJAX)


Автор: MSW
ICQ: 365-888
Версия DLE: 8.3
Пример: http://megafile.mksat.net/

Продолжение серии модуля: "Блоки как вконтакте"
Данный модуль позволяет создать на сайте сворачивающиеся и разворачивающиеся блоки. Каждый посетитель сайта может по собственному желанию свернуть/развернуть тот или иной блок для себя. После перезагрузки страницы блоки останутся в установленом положении.
Сворачивающиеся блоки 2.1 (AJAX)


Автор: MSW
ICQ: 365-888
Версия DLE: 8.3
Пример: http://megafile.mksat.net/

Продолжение серии модуля: "Блоки как вконтакте"
Данный модуль позволяет создать на сайте сворачивающиеся и разворачивающиеся блоки. Каждый посетитель сайта может по собственному желанию свернуть/развернуть тот или иной блок для себя. После перезагрузки страницы блоки останутся в установленом положении.

Изменения относительно старых версий:
- динамическая подгрузка, после изменения, содержимого блока средствами AJAX
- возможность сворачивать/разворачивать содержимое тегов, по типу календарь, голосование, архив и т.д.

Установка:
Создать/отредактировать файл: /templates/ваш_шаблон/js/block.js

function block_ajax(id,z) {
    var ajax = new dle_ajax();
    ajax.setVar("action", z);
    ajax.setVar("edit", 1);
    ajax.requestFile = dle_root+"engine/modules/block/"+id+".php";
    ajax.method = 'POST';
    ajax.element = id;
    ajax.sendAJAX("");
    return false;
}

Файл: main.tpl
Найти:
</head>

Добавить выше:
<script type="text/javascript" src="{THEME}/js/block.js"></script>


Создать файл: /engine/modules/block/test.php

<?php
/*
================================
Сворачивающиеся блоки 2.1
================================
Автор: MSW
================================
ICQ: 365-888
================================
*/
//***** Настройка *** начало *****//
/*Внимание!
переменная $name_block - должна совпадать с названием файла, а также, в случае для тегов календарь, голосование и т.д. с именем этого тега!
*/
$name_block = "test";
//***** Настройка *** конец *****//
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';
    include_once ENGINE_DIR . '/classes/templates.class.php';
    include_once ENGINE_DIR . '/init.php';
    @header("Content-type: text/css; charset=windows-1251");
    if($_REQUEST["action"] == "off") {
        setcookie($name_block, 1, time()+32140800, "/");
        $cookie = 1;
    } else {
        setcookie($name_block, "", time()-60, "/");
        $cookie = 0;
    }
} else {
    $cookie = $_COOKIE["{$name_block}"];
}

$content = "<div id=\"{$name_block}\">";

if($cookie == 1) {
///свёрнутый блок
$content .= <<<HTML
       <table>
        <tr onclick="block_ajax('{$name_block}','on')" style="cursor:pointer;">
            <th&
#62;Заголовок блока</th>
        </tr>
       </table>
HTML;
} else {
//развёрнутый блок
/* Особенности:
- В случае для архива:
$block = ($_REQUEST['edit'] == 1) ? $tpl->result["archive"] : $this->data['{archives}'];

- Для других тегов:
$n = "{".$name_block."}";
$block = ($_REQUEST['edit'] == 1) ? $tpl->result[$name_block] : $this->data[$n];

в содержимое блока выводить переменную: $block
*/
$content .= <<<HTML
       <table>
        <tr onclick="block_ajax('{$name_block}','off')"
style="cursor:pointer;">
            <th&
#62;Заголовок блока</th>
        </tr>
        <tr>
            <td&
#62;Содержимое блока</td>
        </tr>
       </table>
HTML;
}
$content .="</div>";

echo $content;
?>


В нужном месте для вывода блока:
{include file="engine/modules/block/test.php"}
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Кто пробовал поставить?? я чет и так и эдак ничего не выходит.. :(
    • Bezyan
    • Регистрация: --
    • Репутация: (||)
    • 30 января 2010 16:22
    • 1
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • было бы красивее если бы сворачивались и разворачивались плавно. как на l2.ru
    • fghfgh
    • Регистрация: --
    • Репутация: (||)
    • 4 февраля 2010 08:04
    • 2
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 96
  • Публикаций: 0
  • для 7.5 кто-то прикрутил?
    что править нужно (названия файлов)? smile
    • VAT
    • Регистрация: 3.07.2008
    • Репутация: (0|0|0)
    • 6 февраля 2010 02:03
    • 3
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • все сделал по инструкции и нечего sad
    • vovanchuc
    • Регистрация: --
    • Репутация: (||)
    • 15 марта 2010 00:55
    • 4
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • всё работает, надо на 8.3 ставить!!!
    • king-music.ru
    • Регистрация: --
    • Репутация: (||)
    • 10 апреля 2010 19:11
    • 5
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • 8.5 работает, спасибо =)
    • Lenson
    • Регистрация: --
    • Репутация: (||)
    • 11 апреля 2010 10:19
    • 6
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • а как сделать чтобы сама кнопка была по правую сторону блока???
    • shokk
    • Регистрация: --
    • Репутация: (||)
    • 20 апреля 2010 13:28
    • 7
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • неработает
    • nightly_wolf
    • Регистрация: --
    • Репутация: (||)
    • 28 июля 2010 12:36
    • 8
    ^
  • Группа: User
  • Icq: 356883036
  • Комментариев: 18
  • Публикаций: 2
  • на 9,0 пойдёт?
    ^
    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.