Advanced search  

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Pages: [1]   Go Down

Author Topic: Как изменить тему или добавить свой код?  (Read 26211 times)

0 Members and 1 Guest are viewing this topic.

banzai

  • Coppermine newbie
  • Offline Offline
  • Posts: 3

Подскажите пожалста как создать блоки с навигацией справа и слева (например для счётчиков, рекламы) в пустующих местах галереи а сама галерея была что б по центру http://fotofases.ru/displayimage.php?album=2&pos=0
« Last Edit: December 01, 2008, 02:17:09 pm by Makc666 »
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page

Подскажите пожалста как создать блоки с навигацией справа и слева (например для счётчиков, рекламы) в пустующих местах галереи а сама галерея была что б по центру 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.
Ищем нужный нам кусок кода.

В нашем случае это будет:
Code: [Select]
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.
В нашем примере, мы не должны копировать первую строку данного куска кода:
Code: [Select]
if (!function_exists('theme_display_image')) {  //{THEMES}
И последнюю строку:
Code: [Select]
}  //{THEMES}
4.
Смотрим, нет ли уже в файле:
themes/mac_ox_x/theme.php
куска кода, который начинается на:
function theme_display_image(

В нашем случае его нет.

Поэтому копируем этот кусок кода без первой и последней строки в файл:
themes/mac_ox_x/theme.php
Вставлять нужно в конец файла перед строкой:
Code: [Select]
?>Если вдруг кто не знает...

А дальше начинаете менять.

То что человек хотел, выглядит примерно так:

Code: [Select]
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
Code: [Select]
echo "<table width=100%>
<tr>
<td width=25%>PEKLAMA 1</td>
<td width=50%>";

БЛОК 2
Code: [Select]
echo "</td>
<td width=25%>PEKLAMA 2</td>
</tr>
</table>";

А дальше Вы уж сами всё подгоняете.
« Last Edit: December 01, 2008, 02:11:49 pm by Makc666 »
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page

Возможно второй более длинный но и правильный путь.

1.
Вместо блока 1 и блока 2 добавляется следующее:
БЛОК1
Code: [Select]
echo $reklama_left;БЛОК2
Code: [Select]
echo $reklama_right;
2.
Конктретно для нашего примера (в других случаях может быть другой файл или вообще не быть, что не факт),
в файл:
displayimage.php

после строки:
Code: [Select]
$nav_menu = theme_html_img_nav_menu();
добавить строчки:
Code: [Select]
$reklama_left = theme_html_reklama_left();
$reklama_right = theme_html_reklama_right();

3.
В файл:
themes/mac_ox_x/theme.php

добавить два куска:
Code: [Select]
function theme_html_reklama_left()
{
<table width=100%>
<tr>
<td width=25%>PEKLAMA 1</td>
<td width=50%>
}

Code: [Select]
function theme_html_reklama_right()
{
</td>
<td width=25%>PEKLAMA 2</td>
</tr>
</table>
}

По идее это более правильный подход.
« Last Edit: December 01, 2008, 02:12:22 pm by Makc666 »
Logged

banzai

  • Coppermine newbie
  • Offline Offline
  • Posts: 3

Спасибо! Разобрался с примером, но получается таким образом надо перетряхивать все файлы галереи, а не только displayimage.php
Задача изменить таким образом все страницы галереи.
« Last Edit: December 01, 2008, 02:13:02 pm by Makc666 »
Logged

banzai

  • Coppermine newbie
  • Offline Offline
  • Posts: 3

Кстати по второму варианту выдаётся ошибка public_html/themes/mac_ox_x/theme.php on line 181
« Last Edit: December 01, 2008, 02:17:23 pm by Makc666 »
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page

Кстати по в торому варианту выдаётся ошибка public_html/themes/mac_ox_x/theme.php on line 181
Да. Я там недописал function в начале первых строке.
Сообщение поправил.
Если хотите, попробуйте.
Сам я не пробовал, но по идее должно работать.
« Last Edit: December 01, 2008, 02:17:56 pm by Makc666 »
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: Как изменить тему или добавить свой код?
« Reply #6 on: September 20, 2007, 03:24:23 pm »

Небольшое дополнение про файл template.html

Если открыть файл /themes/classic/template.html, то можно увидет, что в нем используются якорьки, к примеру:
{GAL_DESCRIPTION}

Дальше мы топаем в файл /include/themes.inc.php (для данного конкретного случая).

И смотрим, как формируется там {GAL_DESCRIPTION}

Формируется он в строке:
'{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],

В блоке кода:
Code: [Select]
    $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. Для подобный действий нужно понимать, что Вы делаете и как Вы делаете.
« Last Edit: December 01, 2008, 02:18:40 pm by Makc666 »
Logged

Zyama

  • Coppermine newbie
  • Offline Offline
  • Posts: 9

Можно попроще объяснить?

Мне нужно вывести последние 10 сообщений из форума на странице галереи в блоке справа.
В темплэйт, в блок справа от основной галереи, добавил {FORUM}.

В themes.inc.php, в функцию pagefooter добавил
Code: [Select]
    $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(),

и в самом конце того же файла добавил
Code: [Select]
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 сообщений выводятся, но не в правом блоле, а сразу после галереи. Никак не хотят в блок. Помогите решить.
Заранее благодарен.
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону
Re: Как изменить тему или добавить свой код?
« Reply #8 on: September 27, 2007, 09:56:20 am »

Вы сделали все немного не по инструкции, но так тоже должно работать...

Теперь попробуйте добавить в template.html между якорями {CUSTOM_FOOTER}{SYS_MENU} якорь {FORUM}
« Last Edit: December 01, 2008, 02:19:16 pm by Makc666 »
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: Как изменить тему или добавить свой код?
« Reply #9 on: September 28, 2007, 11:39:34 pm »

Можно попроще объяснить?
Проще уж некуда :) Попробуйте перечитать ещё раз. А также посмотрите, как в папке themes изменялись другие темы.
Вам нужно набить руку самому, иначе вопросы будут возникать постоянно.

Я не совсем, кстати, понял, о каком блоке справа в галереи Вы говорите...
Что-то я никаких блоков справа тут не вижу -> http://coppermine-gallery.net/demo/cpg14x/index.php
« Last Edit: December 01, 2008, 02:19:58 pm by Makc666 »
Logged

RobinHoodd

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 38
Re: Как изменить тему или добавить свой код?
« Reply #10 on: February 14, 2009, 11:59:13 pm »

Правильно ли я понял, что все страницы строятся по
themes.inc, и чтобы чтото изменить нужно
там рыться?

Например на все страницы нужно
добавить один и тотже блок.

Где это прописывать?
Logged

RobinHoodd

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 38
{GALLERY}
« Reply #11 on: February 19, 2009, 04:03:56 pm »

Какой файл отвечает за вывод {GALLERY}
скажите пожалуйста. ::)

Вобщем мне это надо для того чтобы
поменять фон на котором отображаются картинки
в альбоме.

Заранее спасибо. :)
« Last Edit: February 20, 2009, 11:11:56 am by Makc666 »
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: {GALLERY}
« Reply #12 on: February 20, 2009, 11:32:06 am »

Правильно ли я понял, что все страницы строятся по
themes.inc, и чтобы чтото изменить нужно
там рыться?
То, что касается "пользовательской" части отображения галереи, то да.

Например на все страницы нужно
добавить один и тотже блок.

Где это прописывать?
В Конфиге это прописывается.
  • Путь к дополнительному файлу верхней части галереи
  • Путь к дополнительному файлу нижней части страницы галереи

Какой файл отвечает за вывод {GALLERY}
скажите пожалуйста. ::)

Вобщем мне это надо для того чтобы
поменять фон на котором отображаются картинки
в альбоме.

Заранее спасибо. :)
Никакой.
Это не изменяемая переменная.
Это собирательная переменная.
Об этом написано в пункте "2.3.6.5 Template tokens" файла "docs/index.htm".

В данной теме на вопрос, как поменять фон там или там Вам не ответят. Она не для этого создана.
Logged
Pages: [1]   Go Up
 

Page created in 0.044 seconds with 19 queries.