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

Провеббер » DataLife Engine » DLE хаки » Хак - Блоки как вконтакте для DLE

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

Хак - Блоки как вконтакте для DLE

Данный материал предоставлен сайтом 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"}


Вот и всё, установка закончена :)


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


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

#1WooW

  • 29 ноября 2009 08:59
  • Регистрация: 22.10.2009
  • Был(а) онлайн: 14.08.2024
  • Комментариев: 510
  • 0
{include file="engine/modules/block/test.php"}

Я его родить должен?)

#2BR0kEN

  • 29 ноября 2009 09:21
  • Регистрация: 29.11.2009
  • Был(а) онлайн: 30.11.2013
  • Комментариев: 255
  • 0
WooW,
О чем ты?

p.S. не работает фича!

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

#3fenom

  • 29 ноября 2009 09:25
  • Регистрация: 6.07.2009
  • Был(а) онлайн: 19.03.2019
  • Комментариев: 345
  • 0
Цитата: WooW
Я его родить должен?)

а почему бы и нет ? оО

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

#4Webber

  • 29 ноября 2009 09:31
  • Регистрация: 5.07.2009
  • Был(а) онлайн: 20.11.2024
  • Комментариев: 1 797
  • 0
WooW,
Создаём файл инклуженого меню: /engine/modules/block/test.php

Там код под ним!


kep,
Что не пашет? Может ты не понял смысл хака или не так сделал? smile

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

#5BR0kEN

  • 29 ноября 2009 09:45
  • Регистрация: 29.11.2009
  • Был(а) онлайн: 30.11.2013
  • Комментариев: 255
  • 0
raz0r,
Я понял смысл так: "возьмем в пример блок с сайта вконтакте "Образование". При нажатии на серую строку блок сворачивается и разворачивается."

Короче я как ни крутил, эффекта увидел два. Свертывание\развертывание работает при стандартном html, но когда жмешь, сайт съезжает на экран вправо. Любые попытки изменить html блока на свой заканчивались просто кликабельностью блока, без каких либо действий.

Вобще чувствую что все работает, но я что-то не так делаю... yes

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

#6Webber

  • 29 ноября 2009 09:52
  • Регистрация: 5.07.2009
  • Был(а) онлайн: 20.11.2024
  • Комментариев: 1 797
  • 0
kep,
ты попробуй на Default шаблоне.

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

#7BR0kEN

  • 29 ноября 2009 10:39
  • Регистрация: 29.11.2009
  • Был(а) онлайн: 30.11.2013
  • Комментариев: 255
  • 0
raz0r,
Я разобрался, спасибо! С html не поможешь?

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

#8MSW

  • 29 ноября 2009 11:36
  • Регистрация: 28.11.2009
  • Был(а) онлайн: 2.01.2020
  • Комментариев: 153
  • 0
пример на моём сайтике: megafile.mksat.net

блоки: именниники, курс валют, наши проекты, полезные ссылки.

можно создать два стиля для менюшки.

недостатки: пока не получилось сделать чтоб обрабатывались теги, например {миничат} и т.д.
потому нужно блоки переписывать чтоб выводились не тегами.

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

#9Azat868

  • 29 ноября 2009 14:19
  • Регистрация: 8.11.2009
  • Был(а) онлайн: 10.03.2016
  • Комментариев: 15
  • 0

MSW,
когда вы сможете (хотябы примерно) сделать вывод тегов?

#10MSW

  • 29 ноября 2009 14:36
  • Регистрация: 28.11.2009
  • Был(а) онлайн: 2.01.2020
  • Комментариев: 153
  • 0
Azat868,
пробовал разные способы, пока не получилось, буду рад любой помощи и подсказке в этом направлении.

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

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

#11BR0kEN

  • 29 ноября 2009 20:00
  • Регистрация: 29.11.2009
  • Был(а) онлайн: 30.11.2013
  • Комментариев: 255
  • 0
MSW,
По-моему нужно искать проблему в js.

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

#12MSW

  • 29 ноября 2009 21:16
  • Регистрация: 28.11.2009
  • Был(а) онлайн: 2.01.2020
  • Комментариев: 153
  • 0
kep,
нет, проблеме не в яве это 100%
проблема в пхп и обработке его, вернее обработки тегов в пхп

кстати уже сделал, сейчас провожу тесты.
посмотреть можно тамже megafile.mksat.net блок Опросы.
они выводятся через тег {vote}

миничат например пока коректно не выводится.. та и для каждого блока индивидуальная настрока требуется....

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

#13BR0kEN

  • 29 ноября 2009 22:24
  • Регистрация: 29.11.2009
  • Был(а) онлайн: 30.11.2013
  • Комментариев: 255
  • 0
MSW,
Хотя да, ты прав. js же просто двигает(выполняет функцию)...
Отлично что разобрался! кстати нужно для каждого тега отдельные изменения вносить или единственное для всех? выложишь свой вариант?

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

#14MSW

  • 29 ноября 2009 22:34
  • Регистрация: 28.11.2009
  • Был(а) онлайн: 2.01.2020
  • Комментариев: 153
  • 0
kep,
ява тут даже ничего не двигает
а просто пишет и считывает с куков

планирую в новой версии избавиться от куков и перенести данные в БД

недостаток у куков в том что если зайти с другого браузера или с другого компа то опять придётся сворачивать менюшки которые не нужны.
если данные юзера будут в БД - то это будет универсально, откудаб он не зашёл настройки его всегда останутся.

нагрузки это вобше не добавит, но скорость должно увеличить значительно(особенно если у пользователей низкоскоростные каналы)

незалогеным юзерам функция свёртывания/развёртывания будет недоступна :)

вобшем теперь только время надо чтоб всё это реализовать и отточить.

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

#15DOG

  • 30 ноября 2009 19:07
  • Регистрация: 10.10.2009
  • Был(а) онлайн: 14.04.2023
  • Комментариев: 103
  • 0
MSW,
А для ДЛЕ 8,0 есть что-нибудь подобное??? Очень надо

#16MSW

  • 30 ноября 2009 19:44
  • Регистрация: 28.11.2009
  • Был(а) онлайн: 2.01.2020
  • Комментариев: 153
  • 0
DOGger,
для меньше чем 8,2 версия - придётся ставить самый первый этот хак мой, который просто скрывает от глаз инфу, но в любом случае её загружает.

потому что в версиях ниже чем 8,2 ещё небыло такой фишки как инклуд в шаблон пхп файлов.

хотя теоретически можно применить хак который разрешает выполнять пхп в шаблонах и инклудить уже файлы с блоками.... пробуйте... я такое отлаживать не буду, так как для меня в этом нет смысла, лучше потихоньку буду наполнять функционалом и оптимизировать то что есть.

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

#17DOG

  • 30 ноября 2009 20:21
  • Регистрация: 10.10.2009
  • Был(а) онлайн: 14.04.2023
  • Комментариев: 103
  • 0
Цитата: MSW
для меньше чем 8,2 версия - придётся ставить самый первый этот хак мой, который просто скрывает от глаз инфу, но в любом случае её загружает.

Сойдет, дай ссылку пожалуйста!

#181nokia

  • 1 декабря 2009 18:45
  • Регистрация: 1.12.2009
  • Был(а) онлайн: 22.11.2016
  • Комментариев: 106
  • 0
MSW, огромное спасибо за модуль! Буду ждать новой версии с поддержкой тегов..

#19bkkb

  • 19 декабря 2009 21:30
  • Регистрация: 18.12.2009
  • Был(а) онлайн: 3.05.2015
  • Комментариев: 219
  • 0
все работает проверил

#20BeSSeR

  • 22 декабря 2009 23:16
  • Регистрация: 23.11.2009
  • Был(а) онлайн: 21.01.2017
  • Комментариев: 165
  • 0
Вещь нужная, а стоит дле 7.5..
Обновится до 8.2 не вариант - облом..

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

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

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