Отображение строк в "информации о файле". Отображение строк в "информации о файле".
 

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

Main Menu

Отображение строк в "информации о файле".

Started by ARTni, April 21, 2008, 08:39:37 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

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}, но это, насколько понимаю просто в лоб не реализуется и работа для программера. Буду рад, если ошибаюсь и где-то есть похожее решение.

Alex Revo

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

Блок picinfo можно переместить, покопайся в англ. ветке, там это обсуждали.

ARTni

2Alex Revo:

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

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

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

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

Makc666

 displayimage.php åñòü òàêàÿ ñòðîêà:
$info[$lang_picinfo['Filename']] = htmlspecialchars($CURRENT_PIC_DATA['filename']);

Îíà èç ôóíêöèè:
// Display picture information
function html_picinfo()


Èñïîëüçóåòñÿ îíà â ôàéëå:
./include/themes.inc.php

Âîò â ýòîì áëîêå:
if (!function_exists('theme_html_picinfo')) {  //{THEMES}
function theme_html_picinfo(&$info)


Äëÿ èçîáðàæåíèé íóæåí áëîê:
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']

Ñîîòâåòñòâåííî, Âàì íóæíî â âàøó òåìó ïåðåíîñèòü äàííóþ ôóíêöèþ:
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
Âîò òóò ÿ áåç ïðàêòèêè Âàì íå ïîäñêàæó.

Ïîïðîáóéòå íàïèñàòü âîò òàê â âàøåé òåìå:
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;
}


ARTni

2Makc666:

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

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

В displayimage.php достаточно просто закомментировать строчку:
$info[$lang_picinfo['Filename']] = htmlspecialchars($CURRENT_PIC_DATA['filename']);

С переносом блока picinfo пока не стал замарачиваться, так как еще много не настроено из более простых вещей.