Advanced search  

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Pages: [1]   Go Down

Author Topic: Как изменить тему или добавить свой код?  (Read 26305 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.039 seconds with 21 queries.