prowebber.ru - Тут есть все для настоящих вебмастеров

Чтение RSS Мы в твиттере
«    Декабрь 2016    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 

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

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


Данный материал предоставлен сайтом ProWebber.ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
У нас вы можете скачать бесплатно Хак - Блоки как вконтакте для DLE.


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


Автор: MSW
ICQ: 365-888
Email: msw@mail.ru

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

Теперь данный хак подходит только для ДЛЕ версии 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"}


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


0
Просмотры: 15459 VIP ProWebber | Комментарии (30)
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

#1WooW

  • 29 ноября 2009 08:59
  • Регистрация: 22.10.2009
  • ICQ: --
  • Комментариев: 504
{include file="engine/modules/block/test.php"}

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

0

#2BR0kEN

  • 29 ноября 2009 09:21
  • Регистрация: 29.11.2009
  • ICQ: --
  • Комментариев: 255
WooW,
О чем ты?

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

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

0

#3fenom

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

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

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

0

#4raz0r

  • 29 ноября 2009 09:31
  • Регистрация: 5.07.2009
  • ICQ: 442485
  • Комментариев: 596
WooW,
Создаём файл инклуженого меню: /engine/modules/block/test.php

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


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

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

0

#5BR0kEN

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

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

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

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

0

#6raz0r

  • 29 ноября 2009 09:52
  • Регистрация: 5.07.2009
  • ICQ: 442485
  • Комментариев: 596
kep,
ты попробуй на Default шаблоне.

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

0

#7BR0kEN

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

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

0

#8MSW

  • 29 ноября 2009 11:36
  • Регистрация: 28.11.2009
  • ICQ: --
  • Комментариев: 153
пример на моём сайтике: megafile.mksat.net

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

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

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

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

0

#9Azat868

  • 29 ноября 2009 14:19
  • Регистрация: 8.11.2009
  • ICQ: --
  • Комментариев: 15

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

0

#10MSW

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

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

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

0

#11BR0kEN

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

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

0

#12MSW

  • 29 ноября 2009 21:16
  • Регистрация: 28.11.2009
  • ICQ: --
  • Комментариев: 153
kep,
нет, проблеме не в яве это 100%
проблема в пхп и обработке его, вернее обработки тегов в пхп

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

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

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

0

#13BR0kEN

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

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

0

#14MSW

  • 29 ноября 2009 22:34
  • Регистрация: 28.11.2009
  • ICQ: --
  • Комментариев: 153
kep,
ява тут даже ничего не двигает
а просто пишет и считывает с куков

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

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

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

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

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

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

0

#15DOG

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

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

0

#16MSW

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

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

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

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

0

#17DOG

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

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

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

0

#181nokia

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

0

#19bkkb

  • 19 декабря 2009 21:30
  • Регистрация: 18.12.2009
  • ICQ: --
  • Комментариев: 219
все работает проверил

0

#20BeSSeR

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

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

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

Max-energy.top - Заработок на электросчетчиках;)

Skripters.info - все для вебмастера. Только эксклюзивный контент.

Создание шаблонов DLE, быстро и недорого! 3wave.com.ua

Бро лей на лучшую партнёрку

Почти бесплатный VDS хостинг!

Создание медицинских сайтов

Медицинский портал. Официальный сайт приложения Российской газеты

dmt.ru


Поддержи сайт
Скрипты, cms, шаблоны, статьи по раскрутке

Опросы

Как часто вы бываете на сайте?

Захожу 1-2 раза в день
1-2 часа в сутки
Более 2 часов
Почти целый день тут smile

Архив новостей
Ноябрь 2016 (7)
Октябрь 2016 (10)
Сентябрь 2016 (8)
Август 2016 (11)
Июль 2016 (14)
Июнь 2016 (17)

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

Искать людей

Ваши переписки