Показать сообщение отдельно
Astrix вне форума      Старый #6  
Аватара для Astrix
Astrix
Бывалый
Регистрация: 09.01.2007
Сообщения: 309


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Astrix Посетить домашнюю страницу Astrix Найти все сообщения от Astrix Добавить Astrix в список друзей  
18.06.2007, 02:23

Цитата: Сообщение от gulden
Получилось с блоком News такое проделать. Для этого периписал функцию
function themesidebox($title, $content, $siteposition) {
$tmpl_file = "themes/coastline/blocks.html";
$thefile = implode("", file($tmpl_file));
$thefile = addslashes($thefile);
$thefile = "\$r_file=\"".$thefile."\";";
eval($thefile);
print $r_file;
}

в файле theme.php

Просто добавил еще одну функцию

function themesidebox_1($title, $content, $siteposition) {
$tmpl_file = "themes/coastline/blocks_1.html";
/* Изменил имя файла блока и добавил копию файла blocks_1.html с другим background */
$thefile = implode("", file($tmpl_file));
$thefile = addslashes($thefile);
$thefile = "\$r_file=\"".$thefile."\";";
eval($thefile);
print $r_file;
}

В блоке News изменил в файле article.php все themesidebox на themesidebox_1
News заработало она стала использовать другой background, такой же фокус с опросом не прокатил, похоже там все более серьезно подвязано через mainfile.php



да. там для этого спец функция есть
PHP код:
 function render_blocks($side$blockfile$title$content$bid$url) {
    if(!
defined('BLOCK_FILE')) {
      
define('BLOCK_FILE'true);
    }
    if (empty(
$url)) {
        if (empty(
$blockfile)) {
            if (
$side == "c") {
                
themecenterbox($title$content);
            } elseif (
$side == "d") {
                
themecenterbox($title$content);
            } else {
                
themesidebox($title$content);
            }
        } else {
            if (
$side == "c") {
                
blockfileinc($title$blockfile1);
            } elseif (
$side == "d") {
                
blockfileinc($title$blockfile1);
            } else {
                
blockfileinc($title$blockfile);
            }
        }
    } else {
        if (
$side == "c" OR $side == "d") {
            
headlines($bid,1);
        } else {
            
headlines($bid);
        }
    }



чтобы сделать, как вам нужно, замените в СВОЕЙ (не в этой - она только для примера!) функции render_blocks вызов themesidebox. например, так:

все изменения находятся между символами #########

PHP код:
 function render_blocks($side$blockfile$title$content$bid$url) {
    if(!
defined('BLOCK_FILE')) {
      
define('BLOCK_FILE'true);
    }
    if (empty(
$url)) {
        if (empty(
$blockfile)) {
            if (
$side == "c") {
                
themecenterbox($title$content);
            } elseif (
$side == "d") {
                
themecenterbox($title$content); 
            
############
            
} elseif ($side == "r") {
                
themesidebox_1($title$content);//Вставляем нашу новую функцию для правых блоков
            
}
            
############ Все
            
} else {
                
themesidebox($title$content);
            }
        } else {
            if (
$side == "c") {
                
blockfileinc($title$blockfile1);
            } elseif (
$side == "d") {
                
blockfileinc($title$blockfile1);//Исправляем тут. И никакой самодеятельности ;)
            #############
            
} elseif ($side == "r") {
                
blockfileinc($title$blockfile3);
            }
            
#############
            
} else {
                
blockfileinc($title$blockfile);
            }
        }
    } else {
        if (
$side == "c" OR $side == "d") {
            
headlines($bid,1); //Если есть желание, можно и тут подкрутить
        
} else {
            
headlines($bid);
        }
    }
}
//Желательно еще и тут подправить:
function blockfileinc($title$blockfile$side=0) {
    
$blockfiletitle $title;
    
$file file_exists("blocks/".$blockfile."");
    if (!
$file) {
        
$content _BLOCKPROBLEM;
    } else {
        include(
"blocks/".$blockfile."");
    }
    if (empty(
$content)) {
        
$content _BLOCKPROBLEM2;
    }
    if (
$side == 1) {
        
themecenterbox($blockfiletitle$content);
    } elseif (
$side == 2) {
        
themecenterbox($blockfiletitle$content); //Правим тут:
    ###############
    
} elseif ($side == 3) {
        
themesidebox_1($blockfiletitle$content); //Это тож новая функция для правых блоков
    ###############
    
} else {
        
themesidebox($blockfiletitle$content);
    }



если я ничего не напутал и не пропустил, то на этом все....
 
Хочешь обнять весь мир? - Купи глобус!