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

  



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

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

Теперь данный хак подходит только для ДЛЕ версии 8.2
Так как содержимое менюшек нужно будет перенести в отдельные пхп файлы и просто инклудить в шаблон.

Создаём файл: /templates/ваш_шаблон/js/block.js

Code
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

Code
<?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
Найти:

Code
</head>


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


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


Готово Хак - Блоки как вконтакте для DLE - Хаки для dle - Каталог файлов - Все для uCoz, DLE, Joomla, скрипты для uCoz

Категория: Хаки для dle Просмотров: 1003