Форум -> Система оформления -> отображение свободного блока, как ограничить? |
отображение свободного блока, как ограничить? |
---|
G-nom | Дата: 02.03.2008, в 22:36 | Сообщение №1 |
  Активный участникПользователь №: 174 Сообщений: 227
 | ну вот собсно создал я в шаблоне свободный блок
{%BLOCKS standart,block-myblock.php%}
в админпанели активировал и выставил "свободный блок" ...
но вот понять не могу как сделать так чтоб он отображался только на главной? |
|
|
Serg_pnz | Дата: 03.03.2008, в 09:34 | Сообщение №2 |
  АдминистраторПользователь №: 1 Сообщений: 2243
 | |
|
G-nom | Дата: 03.03.2008, в 22:39 | Сообщение №3 |
  Активный участникПользователь №: 174 Сообщений: 227
 | Serg_pnz, а для какой это версии?
в 2.5 при добавлении в sources.php вылетает ошбкапри обращении к сайту
Цитата | Parse error: syntax error, unexpected $end in C:\www\function\sources.php on line 1331 |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно G-nom 03.03.2008 г. в 22:39:48 |
|
|
Serg_pnz | Дата: 04.03.2008, в 08:17 | Сообщение №4 |
  АдминистраторПользователь №: 1 Сообщений: 2243
 | В принципе для любой 2.х, может что-то не так вставил? | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
G-nom | Дата: 04.03.2008, в 22:28 | Сообщение №5 |
  Активный участникПользователь №: 174 Сообщений: 227
 | Serg_pnz, да как бы даже не знаю что ответить ...
открываю сорцы ... в самом конце перед
вставляю хак, т.е. получается
Цитата | // Format captcha check
function captcha_check($id="") {
global $conf, $user;
if (($id == 1 && !is_user($user)) || ($_POST['posttype'] == "save" && !is_user($user))) {
session_start();
$code = substr(hexdec(md5("".date("F j")."".$_SESSION['captcha']."".$conf['sitekey']."")), 2, 6);
unset($_SESSION['captcha']);
if (extension_loaded("gd") && $code != intval($_POST['check'])) {
return 1;
} else {
return 0;
}
} else {
return 0;
}
}
// Format add block
function addblocks($str) {
global $blocks, $blocks_c, $home, $showbanners, $foot, $db, $total_time, $start_time, $time_db, $foot, $time_db_query, $variables;
//начало вставки
global $name, $home;
//описываем правила отображения
if ($name != "Files") {$ish[] = "{%BLOCKS, block-Login.php%}"; $rep[] = "";}
if ($home!="1") {$ish[] = "{%BLOCKS, block-Files.php%}"; $rep[] = "";}
//конец правил
//производим замену, если правила есть для текущего модуля
if (count($ish)) $str = str_replace($ish, $rep, $str);
//конец вставки
preg_match_all('#{%BLOCKS([^%]+)%}#iUs',$str,$blk);
?> |
а нада как-то иначе? |
|
|
Serg_pnz | Дата: 05.03.2008, в 09:54 | Сообщение №6 |
  АдминистраторПользователь №: 1 Сообщений: 2243
 | 1. У тебя в конце файла два раза идет ?> ? //в принципе к делу даже и не относится, но если два раза, то так неправильно!
2. Зачем в конец? Нужно в function addblocks($str) сразу после их перечисления глобальных (в статье дан же кусок кода...) вставить фрагмент Код | 1
| //начало вставки
global $name, $home;
//описываем правила отображения
if ($name != "Files") {$ish[] = "{%BLOCKS, block-Login.php%}"; $rep[] = "";}
if ($home!="1") {$ish[] = "{%BLOCKS, block-Files.php%}"; $rep[] = "";}
//конец правил
//производим замену, если правила есть для текущего модуля
if (count($ish)) $str = str_replace($ish, $rep, $str);
//конец вставки |
и настроить правила отображения
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Serg_pnz 05.03.2008 г. в 09:55:29 | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
G-nom | Дата: 05.03.2008, в 13:30 | Сообщение №7 |
  Активный участникПользователь №: 174 Сообщений: 227
 | Serg_pnz, хм ... исправил, все равно не получается ...
мои действия:
1. вношу хак в сорцы
Цитата | // Format add block
function addblocks($str) {
global $blocks, $blocks_c, $home, $showbanners, $foot, $db, $total_time, $start_time, $time_db, $foot, $time_db_query, $variables;
//начало вставки
global $name, $home;
//описываем правила отображения
if ($name != "Files") {$ish[] = "{%BLOCKS, block-Login.php%}"; $rep[] = "";}
if ($home!="1") {$ish[] = "{%BLOCKS, block-Files.php%}"; $rep[] = "";}
//конец правил
//производим замену, если правила есть для текущего модуля
if (count($ish)) $str = str_replace($ish, $rep, $str);
//конец вставки
preg_match_all('#{%BLOCKS([^%]+)%}#iUs',$str,$blk);
$ci = sizeof($blk[1]); |
2. добавляю новый блок через админку
3. ставлю отображение: *свободный блок *только главная
при сохранение правило *свободный блок сбрасывается, при этом блок отображается во всех модулях ... распиши плз по шагам как чего делать нада .) |
|
|
Serg_pnz | Дата: 07.03.2008, в 16:47 | Сообщение №8 |
  АдминистраторПользователь №: 1 Сообщений: 2243
 | Протестил на 2.5 на локалке - работает. На примере block-Files.php
1. Создаем файл блока по адресу blocks/block-Files.php
2. Создаем блок в админке, сказав ему "Свободный"
3. В шаблон (в индекс темы) внедряем код {%BLOCKS, block-Files.php%}
По условию нашего хака блок отобразится везде, кроме главной if ($home!="1") ...
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Serg_pnz 07.03.2008 г. в 16:47:29 | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
G-nom | Дата: 07.03.2008, в 21:49 | Сообщение №9 |
  Активный участникПользователь №: 174 Сообщений: 227
 | Serg_pnz, а не мог бы ты написать правило для свободного блока SSDForums чтоб он отображался только на главной .?) |
|
|
|
Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|