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 6369 times)

0 Members and 1 Guest are viewing this topic.

ARTni

  • Coppermine newbie
  • Offline Offline
  • Posts: 11
    • ARTni орг - графика и живопись

Доброго времени суток.

Coppermine     1.4.18 (stable)

Задачка: на странице отображения изображения (displayimage) в блоке "информация о файле" отображать только те строки, которые нужны.
(сейчас наиболее актуально _не_ отображать строку "Имя файла:   ***.jpg")

Дошел до функции function theme_html_picinfo(&$info) в themes.inc.php.
И вывода инфы через foreach ($info as $key => $value) $html .= sprintf($template, $key, $value);
На этом и остановился. Куда бы копать дальше?

Буду благодарен за подсказку решения вопроса.

Спасибо уделенное время и удачного дня.

P.S. на самом деле, более широкая версия этой задачки - это вывод блока picinfo в отдельное место в шаблоне template.html при помощи конструкции типа {PIC_INFO}, но это, насколько понимаю просто в лоб не реализуется и работа для программера. Буду рад, если ошибаюсь и где-то есть похожее решение.
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону

Если копать в том направлении, где ты сейчас, то запиши для отладки
Code: [Select]
print_r ($info);так ты узнаешь какой элемент массива выводит имя файла, потом сможешь добавить уловие проверки на наличие этого элемента
Code: [Select]
if (!"имя_файла") $html .= sprintf($template, $key, $value);
Блок picinfo можно переместить, покопайся в англ. ветке, там это обсуждали.
Logged

ARTni

  • Coppermine newbie
  • Offline Offline
  • Posts: 11
    • ARTni орг - графика и живопись

2Alex Revo:

Спасиб - попробую решить задачку через условие.

По поводу picinfo английскую ветку просматривал, но там встречал только перенос название+описание изображения. Может и пропустил тему про то, что меня интересует - пойду поищу еще.
Logged

ARTni

  • Coppermine newbie
  • Offline Offline
  • Posts: 11
    • ARTni орг - графика и живопись

В английских ветках первую задачку все решают через правку напрямую displayimage.php (а не через свою тему).
примеры:
http://forum.coppermine-gallery.net/index.php/topic,23700.0.html
http://forum.coppermine-gallery.net/index.php/topic,3411.html

хм. по поводу picinfo действительно есть похожие темы (наверно по другим ключевым словам искал)
пример:
http://forum.coppermine-gallery.net/index.php/topic,39523.0.html

попробую - напишу, что получилось
Logged

Makc666

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

В displayimage.php есть такая строка:
Code: [Select]
$info[$lang_picinfo['Filename']] = htmlspecialchars($CURRENT_PIC_DATA['filename']);
Она из функции:
Code: [Select]
// Display picture information
function html_picinfo()

Используется она в файле:
./include/themes.inc.php

Вот в этом блоке:
Code: [Select]
if (!function_exists('theme_html_picinfo')) {  //{THEMES}
function theme_html_picinfo(&$info)

Для изображений нужен блок:
Code: [Select]
if (!function_exists('theme_html_picinfo')) {  //{THEMES}
function theme_html_picinfo(&$info)
{
    global $lang_picinfo;

    $html = '';

    $html .= "        <tr><td colspan=\"2\" class=\"tableh2_compact\"><b>{$lang_picinfo['title']}</b></td></tr>\n";
    $template = "        <tr><td class=\"tableb_compact\" valign=\"top\" >%s:</td><td class=\"tableb_compact\">%s</td></tr>\n";
    foreach ($info as $key => $value) $html .= sprintf($template, $key, $value);

    return $html;
}
}  //{THEMES}

Как уже говорил Alex Revo, имя файла приходит в массиве $info.
Далее в шаблон $template подставляются переменны $key и $value , где:
$key = $lang_picinfo['Filename']
$value = $CURRENT_PIC_DATA['filename']

Соответственно, Вам нужно в вашу тему переносить данную функцию:
Code: [Select]
function theme_html_picinfo(&$info)
{
    global $lang_picinfo;

    $html = '';

    $html .= "        <tr><td colspan=\"2\" class=\"tableh2_compact\"><b>{$lang_picinfo['title']}</b></td></tr>\n";
    $template = "        <tr><td class=\"tableb_compact\" valign=\"top\" >%s:</td><td class=\"tableb_compact\">%s</td></tr>\n";
    foreach ($info as $key => $value) $html .= sprintf($template, $key, $value);

    return $html;
}

И уже с ней работать.

Работа будет заключаться в том, чтобы исключить из обработки нужный $key
Вот тут я без практики Вам не подскажу.

Попробуйте написать вот так в вашей теме:
Code: [Select]
function theme_html_picinfo(&$info)
{
    global $lang_picinfo;

    $html = '';

    $html .= "        <tr><td colspan=\"2\" class=\"tableh2_compact\"><b>{$lang_picinfo['title']}</b></td></tr>\n";
    $template = "        <tr><td class=\"tableb_compact\" valign=\"top\" >%s:</td><td class=\"tableb_compact\">%s</td></tr>\n";
    foreach ($info as $key => $value){
        if ($key == $lang_picinfo['Filename'])
            //do nothing
        }else{
            $html .= sprintf($template, $key, $value);
        }
    }
    return $html;
}
Logged

ARTni

  • Coppermine newbie
  • Offline Offline
  • Posts: 11
    • ARTni орг - графика и живопись

2Makc666:

Спасибо большое за подробное описание - это помогло мне чуть лучше понять схему построения скриптов и PHP.

Для моих целей оказалось легче править напрямую displayimage.php (что не совсем правильно идеологически - но проще и хоть немного снижает нагрузку на сервер - что одно из самых критичных сейчас для сайта).

В displayimage.php достаточно просто закомментировать строчку:
Code: [Select]
$info[$lang_picinfo['Filename']] = htmlspecialchars($CURRENT_PIC_DATA['filename']);
С переносом блока picinfo пока не стал замарачиваться, так как еще много не настроено из более простых вещей.
Logged
Pages: [1]   Go Up
 

Page created in 0.021 seconds with 16 queries.