Доброго времени суток.
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}, но это, насколько понимаю просто в лоб не реализуется и работа для программера. Буду рад, если ошибаюсь и где-то есть похожее решение.
Если копать в том направлении, где ты сейчас, то запиши для отладки
print_r ($info);
так ты узнаешь какой элемент массива выводит имя файла, потом сможешь добавить уловие проверки на наличие этого элемента
if (!"имя_файла") $html .= sprintf($template, $key, $value);
Блок picinfo можно переместить, покопайся в англ. ветке, там это обсуждали.
2Alex Revo:
Спасиб - попробую решить задачку через условие.
По поводу picinfo английскую ветку просматривал, но там встречал только перенос название+описание изображения. Может и пропустил тему про то, что меня интересует - пойду поищу еще.
В английских ветках первую задачку все решают через правку напрямую 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
попробую - напишу, что получилось
 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;
}
2Makc666:
Спасибо большое за подробное описание - это помогло мне чуть лучше понять схему построения скриптов и PHP.
Для моих целей оказалось легче править напрямую displayimage.php (что не совсем правильно идеологически - но проще и хоть немного снижает нагрузку на сервер - что одно из самых критичных сейчас для сайта).
В displayimage.php достаточно просто закомментировать строчку:
$info[$lang_picinfo['Filename']] = htmlspecialchars($CURRENT_PIC_DATA['filename']);
С переносом блока picinfo пока не стал замарачиваться, так как еще много не настроено из более простых вещей.