Forum. MyNuke.ru

Forum. MyNuke.ru (http://forum.mynuke.ru/index.php)
-   Установка Блоков (http://forum.mynuke.ru/forumdisplay.php?f=9)
-   -   Background в правом блоке (http://forum.mynuke.ru/showthread.php?t=2811)

gulden 09.05.2007 01:39

Background в правом блоке
 
Всем привет!

Подскажите как изменить background в правом блоке на чтонибудь другое, дело в том что сайт левобокий и при установке блоков справа хочется просто белый фон хотябы.
Спасибо.

gulden 15.06.2007 02:20

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

lot 16.06.2007 02:12

что бы правые блоки было видно на вашем сайте =тогда когда вы хотите ,придеться периписать тему или использовать другую тему ,там где блоки видны справа (мнение субьективно сам ничегошеньки не знаю)

Astrix 16.06.2007 13:18

Цитата что бы правые блоки было видно на вашем сайте =тогда когда вы хотите ,придеться периписать тему или использовать другую тему ,там где блоки видны справа (мнение субьективно сам ничегошеньки не знаю)


Мнение верное... Хотя особо много переписывать не придется.

Цитата на сколько я понимаю идея какая, что бы когда блок правый использовать другую шкурку (тему). может кто знает как такое можно сделать?


Можно такое сделать, но придется править mainfile.php (возможно) и, естественно, тему немного исправлять (писать отдельную функцию под правые блоки, к примеру, а в mainfile соответственно прописать, какую ф-цию вызывать, в зависимости от расположения блока).

gulden 18.06.2007 00:48

Получилось с блоком 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

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);
    }



если я ничего не напутал и не пропустил, то на этом все....

gulden 18.06.2007 13:33

спасибо, все заработало


Часовой пояс GMT +4, время: 20:00.

Copyright © 2005 by Soniks