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

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]

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 пока не стал замарачиваться, так как еще много не настроено из более простых вещей.