forum.coppermine-gallery.net
Support => Русский (Russian) => Language Specific Support => cpg1.4.x FAQ (Russian) => Topic started by: banzai on May 09, 2007, 06:52:48 pm
-
Подскажите пожалста как создать блоки с навигацией справа и слева (например для счётчиков, рекламы) в пустующих местах галереи а сама галерея была что б по центру http://fotofases.ru/displayimage.php?album=2&pos=0
-
Подскажите пожалста как создать блоки с навигацией справа и слева (например для счётчиков, рекламы) в пустующих местах галереи а сама галерея была что б по центру http://fotofases.ru/displayimage.php?album=2&pos=0
Рассказываю первый и последний раз как всё устроено в общих чертах.
Есть главный файл для всех тем:
include/themes.inc.php
В нём описаны все составляющие переменные.
1.
Если Вы хотите какую-то часть отображения изменить, нужно пойти в файл:
include/themes.inc.php
2.
Найти там эту часть кода.
3.
Этот кусок кода нужно без "управляющих" строк скопировать в файл:
themes/ИМЯ_ТЕМЫ/theme.php
Но! Важно! Чтобы этого куска кода без "управляющих" строк там уже НЕ БЫЛО!!!
Т.е. это не значит что кусок кода без "управляющих" строк из файла themes/ИМЯ_ТЕМЫ/theme.php будет на 100% похож на тот кусок кода из include/themes.inc.php.
На примере ниже объясню.
4.
Уже скопированный или найденый кусок кода в файл(е) themes/ИМЯ_ТЕМЫ/theme.php Вы и изменяете.
ПРИМЕР
Попросили нас вставить рекламу в тему Mac ox x.
01.
Открываем файл:
include/themes.inc.php
2.
Ищем нужный нам кусок кода.
В нашем случае это будет:
if (!function_exists('theme_display_image')) { //{THEMES}
function theme_display_image($nav_menu, $picture, $votes, $pic_info, $comments, $film_strip)
{
global $CONFIG;
$width = $CONFIG['picture_table_width'];
starttable();
echo $nav_menu;
endtable();
starttable();
echo $picture;
endtable();
if ($CONFIG['display_film_strip'] == 1) {
echo $film_strip;
}
echo $votes;
$picinfo = isset($_COOKIE['picinfo']) ? $_COOKIE['picinfo'] : ($CONFIG['display_pic_info'] ? 'block' : 'none');
echo "<div id=\"picinfo\" style=\"display: $picinfo;\">\n";
starttable();
echo $pic_info;
endtable();
echo "</div>\n";
echo "<div id=\"comments\">\n";
echo $comments;
echo "</div>\n";
}
} //{THEMES}
3.
В нашем примере, мы не должны копировать первую строку данного куска кода:
if (!function_exists('theme_display_image')) { //{THEMES}
И последнюю строку:
} //{THEMES}
4.
Смотрим, нет ли уже в файле:
themes/mac_ox_x/theme.php
куска кода, который начинается на:
function theme_display_image(
В нашем случае его нет.
Поэтому копируем этот кусок кода без первой и последней строки в файл:
themes/mac_ox_x/theme.php
Вставлять нужно в конец файла перед строкой:
?>
Если вдруг кто не знает...
А дальше начинаете менять.
То что человек хотел, выглядит примерно так:
function theme_display_image($nav_menu, $picture, $votes, $pic_info, $comments, $film_strip)
{
global $CONFIG;
$width = $CONFIG['picture_table_width'];
echo "<table width=100%>
<tr>
<td width=25%>PEKLAMA 1</td>
<td width=50%>";
starttable();
echo $nav_menu;
endtable();
starttable();
echo $picture;
endtable();
if ($CONFIG['display_film_strip'] == 1) {
echo $film_strip;
}
echo $votes;
$picinfo = isset($_COOKIE['picinfo']) ? $_COOKIE['picinfo'] : ($CONFIG['display_pic_info'] ? 'block' : 'none');
echo "<div id=\"picinfo\" style=\"display: $picinfo;\">\n";
starttable();
echo $pic_info;
endtable();
echo "</div>\n";
echo "<div id=\"comments\">\n";
echo $comments;
echo "</div>\n";
echo "</td>
<td width=25%>PEKLAMA 2</td>
</tr>
</table>";
}
Т.е. были добавлены два блока кода в нужные места и немного ширину подогнал:
БЛОК 1
echo "<table width=100%>
<tr>
<td width=25%>PEKLAMA 1</td>
<td width=50%>";
БЛОК 2
echo "</td>
<td width=25%>PEKLAMA 2</td>
</tr>
</table>";
А дальше Вы уж сами всё подгоняете.
-
Возможно второй более длинный но и правильный путь.
1.
Вместо блока 1 и блока 2 добавляется следующее:
БЛОК1
echo $reklama_left;
БЛОК2
echo $reklama_right;
2.
Конктретно для нашего примера (в других случаях может быть другой файл или вообще не быть, что не факт),
в файл:
displayimage.php
после строки:
$nav_menu = theme_html_img_nav_menu();
добавить строчки:
$reklama_left = theme_html_reklama_left();
$reklama_right = theme_html_reklama_right();
3.
В файл:
themes/mac_ox_x/theme.php
добавить два куска:
function theme_html_reklama_left()
{
<table width=100%>
<tr>
<td width=25%>PEKLAMA 1</td>
<td width=50%>
}
function theme_html_reklama_right()
{
</td>
<td width=25%>PEKLAMA 2</td>
</tr>
</table>
}
По идее это более правильный подход.
-
Спасибо! Разобрался с примером, но получается таким образом надо перетряхивать все файлы галереи, а не только displayimage.php
Задача изменить таким образом все страницы галереи.
-
Кстати по второму варианту выдаётся ошибка public_html/themes/mac_ox_x/theme.php on line 181
-
Кстати по в торому варианту выдаётся ошибка public_html/themes/mac_ox_x/theme.php on line 181
Да. Я там недописал function в начале первых строке.
Сообщение поправил.
Если хотите, попробуйте.
Сам я не пробовал, но по идее должно работать.
-
Небольшое дополнение про файл template.html
Если открыть файл /themes/classic/template.html, то можно увидет, что в нем используются якорьки, к примеру:
{GAL_DESCRIPTION}
Дальше мы топаем в файл /include/themes.inc.php (для данного конкретного случая).
И смотрим, как формируется там {GAL_DESCRIPTION}
Формируется он в строке:
'{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],
В блоке кода:
$template_vars = array('{LANG_DIR}' => $lang_text_dir,
'{TITLE}' => $CONFIG['gallery_name'] . ' - ' . strip_tags(bb_decode($section)),
'{CHARSET}' => $charset,
'{META}' => $meta,
'{GAL_NAME}' => $CONFIG['gallery_name'],
'{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],
'{SYS_MENU}' => theme_main_menu('sys_menu'),
'{SUB_MENU}' => theme_main_menu('sub_menu'),
'{ADMIN_MENU}' => theme_admin_mode_menu(),
'{CUSTOM_HEADER}' => $custom_header,
);
ВАЖНО!
Теперь Вы хотите добавить какой-то код в файле template.html, для чего Вам нужно создать для него якорёк.
Если Вы внимательно прочитали сообщения выше, то уже должны понимать, что...
Вам нужно взять нужный кусок кода из /include/themes.inc.php (кусок кода, в который Вы будите добавлять якорёк).
Поместить данный кусок кода в файл /themes/classic/theme.php
И в этот кусок кода добавить этот якорёк.
P.S. Для подобный действий нужно понимать, что Вы делаете и как Вы делаете.
-
Можно попроще объяснить?
Мне нужно вывести последние 10 сообщений из форума на странице галереи в блоке справа.
В темплэйт, в блок справа от основной галереи, добавил {FORUM}.
В themes.inc.php, в функцию pagefooter добавил
$template_vars = array(
'{CUSTOM_FOOTER}' => $custom_footer,
[b]'{FORUM}' => cpg_get_custom_include_3(),[/b]
'{SYS_MENU}' => theme_main_menu('sys_menu'),
'{SUB_MENU}' => theme_main_menu('sub_menu'),
'{ADMIN_MENU}' => theme_admin_mode_menu(),
и в самом конце того же файла добавил
function cpg_get_custom_include_3()
{
echo "<ul>";
include("http://www.mysite.com/forum/extern.php?action=active&show=10");
echo "$cpg_get_custom_include_3";
echo "</ul>";
}
В результате последние 10 сообщений выводятся, но не в правом блоле, а сразу после галереи. Никак не хотят в блок. Помогите решить.
Заранее благодарен.
-
Вы сделали все немного не по инструкции, но так тоже должно работать...
Теперь попробуйте добавить в template.html между якорями {CUSTOM_FOOTER}{SYS_MENU} якорь {FORUM}
-
Можно попроще объяснить?
Проще уж некуда :) Попробуйте перечитать ещё раз. А также посмотрите, как в папке themes изменялись другие темы.
Вам нужно набить руку самому, иначе вопросы будут возникать постоянно.
Я не совсем, кстати, понял, о каком блоке справа в галереи Вы говорите...
Что-то я никаких блоков справа тут не вижу -> http://coppermine-gallery.net/demo/cpg14x/index.php
-
Правильно ли я понял, что все страницы строятся по
themes.inc, и чтобы чтото изменить нужно
там рыться?
Например на все страницы нужно
добавить один и тотже блок.
Где это прописывать?
-
Какой файл отвечает за вывод {GALLERY}
скажите пожалуйста. ::)
Вобщем мне это надо для того чтобы
поменять фон на котором отображаются картинки
в альбоме.
Заранее спасибо. :)
-
Правильно ли я понял, что все страницы строятся по
themes.inc, и чтобы чтото изменить нужно
там рыться?
То, что касается "пользовательской" части отображения галереи, то да.
Например на все страницы нужно
добавить один и тотже блок.
Где это прописывать?
В Конфиге это прописывается.
- Путь к дополнительному файлу верхней части галереи
- Путь к дополнительному файлу нижней части страницы галереи
Какой файл отвечает за вывод {GALLERY}
скажите пожалуйста. ::)
Вобщем мне это надо для того чтобы
поменять фон на котором отображаются картинки
в альбоме.
Заранее спасибо. :)
Никакой.
Это не изменяемая переменная.
Это собирательная переменная.
Об этом написано в пункте "2.3.6.5 Template tokens" файла "docs/index.htm".
В данной теме на вопрос, как поменять фон там или там Вам не ответят. Она не для этого создана.