Мы в твиттере Мы в телеграме!

Провеббер » DataLife Engine » DLE модули » Сворачивающиеся блоки 2.1 (AJAX)

Набор в команду! Ведется набор в команду, для наполнения сайта новым, интересным контентом. Если у тебя есть предложения, свободное время, ты обладаешь интересным контентом, и хочешь поделиться с другими?
Обращайся к нам в ЛС группы Вконтакте.

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

Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Сворачивающиеся блоки 2.1 (AJAX).

Сворачивающиеся блоки 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}\"><table>";

if($cookie == 1) {
///свёрнутый блок
$content .= <<<HTML
        <tr onclick="block_ajax('{$name_block}','on')" style="cursor:pointer;">
            <th>Заголовок блока</th>
        </tr>
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
        <tr onclick="block_ajax('{$name_block}','off')" style="cursor:pointer;">
            <th>Заголовок блока</th>
        </tr>
        <tr>
            <td>Содержимое блока</td>
        </tr>
HTML;
}
$content .="</table></div>";

echo $content;
?>


В нужном месте для вывода блока:
{include file="engine/modules/block/test.php"}


Дополнительные ссылки на скачивание ТОЛЬКО для зарегистрированных


0
Просмотры: 19 167 :: Комментарии (25) :: :: Нужна помощь? Задайте вопрос на форуме ::
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

#1MSW

  • 26 января 2010 15:02
  • Регистрация: 28.11.2009
  • Был(а) онлайн: 2.01.2020
  • Комментариев: 153
  • 0
P.S.: ещё пару работ своих выложу как тут кликандер уберут)))

--------------------

#2nsdss

  • 26 января 2010 15:47
  • Регистрация: 10.01.2010
  • Был(а) онлайн: 13.03.2015
  • Комментариев: 457
  • 0
Молодца. Надеюсь этот заработает на 8.3 версии, предыдущий неработал, и ты не ответил в той теме мне(
Неработает. Тоже самое, что и в предыдущей версии((( Я к тебе в аську стукну, поможешь?
Урааа, Реальный чел. В аське помог. Теперь все летает)

--------------------

#3GrOzNy

  • 26 января 2010 17:18
  • Регистрация: 13.10.2009
  • Был(а) онлайн: 3.02.2014
  • Комментариев: 125
  • 0
что-то похожое уже где-то видел

#4MysterIoes

  • 26 января 2010 17:59
  • Регистрация: 22.11.2009
  • Был(а) онлайн: 15.02.2014
  • Комментариев: 356
  • 0
MSW,
отредактировал новость

#51nokia

  • 26 января 2010 18:21
  • Регистрация: 1.12.2009
  • Был(а) онлайн: 22.11.2016
  • Комментариев: 106
  • 0
ilja, зачем делать такую подлянку - удалять комментарий MSW, в котором было сказано, что нужно поменять. Обматерить за это готов...
Я уже почти до конца отредактировал старые блоки на новый лад, думал посмотреть, что нужно подправить, а тут на тебе.
Придётся заново переделывать chok

#6MSW

  • 26 января 2010 18:31
  • Регистрация: 28.11.2009
  • Был(а) онлайн: 2.01.2020
  • Комментариев: 153
  • 0
1nokia,
не придётся, правка была только в местах
$content = "<div id=\"{$name_block}\"><table>";

и закрывающий тег таблицы и дива

--------------------

#71nokia

  • 26 января 2010 19:04
  • Регистрация: 1.12.2009
  • Был(а) онлайн: 22.11.2016
  • Комментариев: 106
  • 0
Кстати, инструкция не совсем полная. Если нужно выводить в блоке всё время один и тот же тест, то в содержание блока вместо $block нужно вводить сам текст, а если тег, то $block.
Сейчас буду смотреть, как будет работать с инклюдами (флеш-облако тегов хочу попробовать, будет сворачиваться или нет) и куда вообще прописывать инклюд.
И ещё: как быть, если нужно, кроме тега, вывести в блоке текст?
Например,
<div ....>{тег}</div>
текст

#8MysterIoes

  • 26 января 2010 19:05
  • Регистрация: 22.11.2009
  • Был(а) онлайн: 15.02.2014
  • Комментариев: 356
  • 0
1nokia,
1. Я знаю что я делаю
2. Все что надо было исправить теперь в новости оформлено
3. Думайте перед тем как писать.

#9ProStyle

  • 26 января 2010 19:23
  • Регистрация: 26.01.2010
  • Был(а) онлайн: 15.02.2010
  • Комментариев: 1
  • 0
круто ммм а чё такпафыафывавфыа

#101nokia

  • 26 января 2010 19:38
  • Регистрация: 1.12.2009
  • Был(а) онлайн: 22.11.2016
  • Комментариев: 106
  • 0
Заметил небольшой косяк - если тег не стандартный, например, {ххх}, то при разворачивании блока ничего не подгружается, но при перезагрузке страницы содержимое блока отображается.

#11MSW

  • 26 января 2010 19:43
  • Регистрация: 28.11.2009
  • Был(а) онлайн: 2.01.2020
  • Комментариев: 153
  • 0
1nokia,
теги работают те что прописаны в index.php
по типу:
$tpl->set ( '{тег}', $tpl->result['тег'] );

а это из стандартных: calendar, archives, tags, vote, info

с остальным - экспериментируйте, пробуйте.
я за вас делать это не буду))) итак работы нашару выкладываю)))

консультации по аське, как вставить тот или иной тег, платные))

--------------------

#12d0z

  • 26 января 2010 19:47
  • Регистрация: 29.12.2009
  • Был(а) онлайн: 22.12.2019
  • Комментариев: 461
  • -1
хмм... На любых шаблонах работает?

--------------------

#13MSW

  • 26 января 2010 20:13
  • Регистрация: 28.11.2009
  • Был(а) онлайн: 2.01.2020
  • Комментариев: 153
  • 0
d0z,
всё в ваших руках, правьте в коде там де
///свёрнутый блок
и
///развёрнутый блок
изменяя под свой шаблон.

Ещё раз повторю - это заготовка, базовая версия, конструктор (называйте как хотите) на основе которой каждый под себя делает свои блоки.

Включаем мозг, достаём руки и делаем именно то что вам нужно. Хоть тут уже постарайтесь подумать, это уже не сложно, самое основное и сложное за вас уже сделано. каждому индивидуально делать не буду, если нет желания думать/нет времени/нет опыта/и т.д. и т.п. - обращаемся в аську, договоримся за цену и я всё сделаю за вас)))

--------------------

#14pilot233

  • 26 января 2010 20:39
  • Регистрация: 17.11.2009
  • Был(а) онлайн: 10.05.2023
  • Комментариев: 202
  • 0
Вот что-то бодобное я искал!

#15DarkneZ

  • 26 января 2010 20:48
  • Регистрация: 13.10.2009
  • Был(а) онлайн: 18.10.2021
  • Комментариев: 120
  • 0
я думаю этот сайт пойдёт только там где много блоков!

--------------------

#16jeff

  • 26 января 2010 21:09
  • Регистрация: 9.10.2009
  • Был(а) онлайн: 21.07.2012
  • Комментариев: 24
  • 0
попробую потом отпишусь...

#17d0z

  • 27 января 2010 04:49
  • Регистрация: 29.12.2009
  • Был(а) онлайн: 22.12.2019
  • Комментариев: 461
  • -1
MSW, получается самому под свой шаблон нужно настроить?

--------------------

#18abatsk

  • 27 января 2010 07:10
  • Регистрация: 10.01.2010
  • Был(а) онлайн: 6.11.2018
  • Комментариев: 42
  • 0
Цитата: d0z
MSW, получается самому под свой шаблон нужно настроить?

ну конечно нужно подстраивать под свой дизайн. Он же не один у всех. шаблоны разные и разная верства шаблонов. У кого то таблица у кого-то на дивах.
ProStyle, спамер мать твою diablo

#19DOG

  • 27 января 2010 20:07
  • Регистрация: 10.10.2009
  • Был(а) онлайн: 14.04.2023
  • Комментариев: 103
  • 0
Никто не пробовал баннеры таким способом скрывать? Если да -то подскажите как.

#200904

  • 28 января 2010 21:14
  • Регистрация: 24.01.2010
  • Был(а) онлайн: 15.06.2013
  • Комментариев: 18
  • 0
Интересный модуль, но, блин, запарился править под шаблон :)

1 2
Предыдущая    Следующая
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Архив новостей
Ноябрь 2024 (9)
Октябрь 2024 (169)
Сентябрь 2024 (13)
Август 2024 (60)
Июль 2024 (12)
Июнь 2024 (30)

Последние комментарии: