PDA

View Full Version : модуль из блоков


BFG
14.01.2011, 01:46
помогите пож-та, каким образом можно сделать модуль, состоящий из содержания блоков???
например просто таблица 2х2:

1 2
3 4

где 1 - последние новости
2 - новое на форуме
3 - блок навигации
4 - опрос

ну или любые другие блоки...

Soniks
16.01.2011, 01:16
BFG а какая версия системы стоит?

BFG
16.01.2011, 16:51
php-nuke 7.6

Soniks
18.01.2011, 19:49
Можно создать пустой модуль, выполнить там необходимую вставку html тегов (например талицы) для нудного расположения блоков. И там где необходимо осуществить вывод содердимого блока использовать функцию:
blockfileinc("Заголовок блока", "имя_файла_блока.php", 1);

BFG
20.01.2011, 22:02
Soniks спасибо, получилось...

BFG
11.02.2011, 02:55
а можно не выводить весь блок (с оформлением и заголовком), а только его содержание?

Soniks
13.02.2011, 18:16
Третий параметр в функции отвечает за формат вывода (использовании функции)
1 = 2 = используется themecenterbox() функция, переопределить формат этой функции можно непосредственно в файле theme.php темы.
3 = используется функция темы themesidebox()

BFG
22.07.2011, 04:29
Soniks, а можно задать 4-й параметр, что-бы оформление блока отличалось от боковых и центральных? например ещё одну функцию прописать?

Soniks
22.07.2011, 10:30
Да, можно. Необходимо только внести соответствующие изменения в файл mainfile.php в работу функции blockfileinc()

BFG
22.07.2011, 12:33
т.е. если функция будет иметь примерно такой вид:
function blockfileinc($title, $blockfile, $side=0) {
$blockfiletitle = $title;
$file = @file("blocks/".$blockfile."");
if (!$file) { $content = _BLOCKPROBLEM;
} else {
include("blocks/".$blockfile."");
}
if ($content == "") {
$content = _BLOCKPROBLEM2;
}
if ($side == 1) {
themecenterbox($blockfiletitle, $content);
} elseif ($side == 2) {
themecenterbox($blockfiletitle, $content);
} elseif ($side == 3) {
themedownbox($blockfiletitle, $content);
} else {
themesidebox($blockfiletitle, $content);
}
}

параметр 3 будет являться форматом оформлением функции themedownbox()
а тогда уже 4 станет отвечать за themesidebox()

Вроде получается, и работает ))

Soniks
26.07.2011, 16:57
правильно.