Advanced search  

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]

Pages: [1]   Go Down

Author Topic: Файл anycontent.php - пример добавления статистики под &#  (Read 7957 times)

0 Members and 1 Guest are viewing this topic.

Shaman

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 37

Скажите пожалуйста, как перенести статистику о файлах, альбомах и их просмотрах (которая отображается внизу catlist) в файл anycontent.php?
Заранее спасибо.
« Last Edit: February 01, 2009, 11:53:34 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 #1 on: July 13, 2008, 01:14:19 pm »

Скажите пожалуйста, как перенести статистику о файлах, альбомах и их просмотрах (которая отображается внизу catlist) в файл anycontent.php?
Заранее спасибо.
Обработка catlist начинается из файла index.php

Блок кода:
Code: [Select]
                    case 'catlist':
                        if ($breadcrumb != '' || count($cat_data) > 0) theme_display_cat_list($breadcrumb, $cat_data, $statistics);
                        if (isset($cat) && $cat == USER_GAL_CAT) {
                            list_users();
                        }
                        flush();
                        break;

Как видно, идёт обращение к фукнции:
theme_display_cat_list

Данная функция находится в файле:
./include/themes.inc.php

Начинается блок функции со строк:
Code: [Select]
if (!function_exists('theme_display_cat_list')) {  //{THEMES}
function theme_display_cat_list($breadcrumb, &$cat_data, $statistics)
{

Если мы посмотрим в конец функции, то увидим интересующий нас блок:
Code: [Select]
    if ($statistics && count($cat_data) > 0) {
        $template = template_extract_block($template_cat_list, 'footer');
        $params = array('{STATISTICS}' => $statistics);
        echo template_eval($template, $params);
    }

В нём определяется переменная:
{STATISTICS}

Данная переменную используется в формировании шаблона вывода данного блока catlist.

Находится данный блок тоже в файле:
./include/themes.inc.php

Вот этот блок:
Code: [Select]
// HTML template for the category list
if (!isset($template_cat_list)) { //{THEMES}
$template_cat_list = <<<EOT
<!-- BEGIN header -->
        <tr>
                <td class="tableh1" width="80%" align="left"><b>{CATEGORY}</b></td>
                <td class="tableh1" width="10%" align="center"><b>{ALBUMS}</b></td>
                <td class="tableh1" width="10%" align="center"><b>{PICTURES}</b></td>
        </tr>
<!-- END header -->
<!-- BEGIN catrow_noalb -->
        <tr>
                <td class="catrow_noalb" colspan="3"><table border="0"><tr><td align="left">{CAT_THUMB}</td><td align="left"><span class="catlink"><b>{CAT_TITLE}</b></span>{CAT_DESC}</td></tr></table></td>
        </tr>
<!-- END catrow_noalb -->
<!-- BEGIN catrow -->
        <tr>
                <td class="catrow" align="left"><table border="0"><tr><td>{CAT_THUMB}</td><td><span class="catlink"><b>{CAT_TITLE}</b></span>{CAT_DESC}</td></tr></table></td>
                <td class="catrow" align="center">{ALB_COUNT}</td>
                <td class="catrow" align="center">{PIC_COUNT}</td>
        </tr>
        <tr>
            <td class="tableb" colspan="3">{CAT_ALBUMS}</td>
        </tr>
<!-- END catrow -->
<!-- BEGIN footer -->
        <tr>
                <td colspan="3" class="tableh1" align="center"><span class="statlink">{STATISTICS}</span></td>
        </tr>
<!-- END footer -->
<!-- BEGIN spacer -->
        <img src="images/spacer.gif" width="1" height="7" border="" alt="" /><br />
<!-- END spacer -->

EOT;
}  //{THEMES}

Интересующий нас блок вот:
Code: [Select]
<!-- BEGIN footer -->
        <tr>
                <td colspan="3" class="tableh1" align="center"><span class="statlink">{STATISTICS}</span></td>
        </tr>
<!-- END footer -->

Соответственно, для переноса его нужно заменить (лучше не удалять).

Заменить можно вот так:
Code: [Select]
<!-- BEGIN footer -->
        <tr>
                <td colspan="3" class="tableh1" align="center">&nbsp;</td>
        </tr>
<!-- END footer -->

А дальше, а дальше не всё так просто, как показали опыты.
Просто так вставить код в anycontent.php с ходу не получится.
Читаем следующее сообщение...
« Last Edit: February 01, 2009, 11:53:18 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 #2 on: July 13, 2008, 01:31:54 pm »

Дальше вот так...

Берёте блок кода:
Code: [Select]
// HTML template for the category list
if (!isset($template_cat_list)) { //{THEMES}
$template_cat_list = <<<EOT

И превращаете вот в такой код:
Code: [Select]
// HTML template for STATISTICS
$template_statistics = <<<EOT
<!-- BEGIN footer -->
        <tr>
                <td colspan="3" class="tableh1" align="center"><span class="statlink">{STATISTICS}</span></td>
        </tr>
<!-- END footer -->

EOT;
//{THEMES}

Данный код копируете в файл theme.php вашего стиля, а лучше во все используемые вами стили:
./themes/classic/theme.php

Открываете файл:
anycontent.php

Перед кодом:
Code: [Select]
<?php
endtable
();

Вставляете код:
Code: [Select]
<?php
    
if ($statistics && count($cat_data) > 0) {
        
$template template_extract_block($template_statistics'footer');
        
$params = array('{STATISTICS}' => $statistics);
        echo 
template_eval($template$params);
    }
?>

Всё :)

И понятное дело нужно не забить, чтобы добавить переменную anycontent в "Конфиг".
« Last Edit: February 01, 2009, 11:53:08 pm by Makc666 »
Logged

Shaman

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 37

Спасибо большое за подробное обьяснение!Все получилось!
Думаю тему можно в F.A.Q. перенести.
Logged

Shaman

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 37

Все вроде понятно с принципом вывода статистики, но в упор не получается вывести ее в теле одного из плагинов (onlinestats) в файле codebase.php  путем вставки в него
Code: [Select]
<?php
    
if ($statistics && count($cat_data) > 0) {
        
$template template_extract_block($template_statistics'footer');
        
$params = array('{STATISTICS}' => $statistics);
        echo 
template_eval($template$params);
    }
?>

В теле anycontent.php все работает нормально.
Может быть проблема в том, что плагин не подгружает глобальные данные галереи?
Logged

Makc666

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

Все вроде понятно с принципом вывода статистики, но в упор не получается вывести ее в теле одного из плагинов (onlinestats) в файле codebase.php  путем вставки в него 
Code: [Select]
<?php
    
if ($statistics && count($cat_data) > 0) {  
        
$template template_extract_block($template_statistics'footer');
        
$params = array('{STATISTICS}' => $statistics);
        echo 
template_eval($template$params);
    }
?>

В теле anycontent.php все работает нормально.
Может быть проблема в том, что плагин не подгружает глобальные данные галереи?

Мне казалось, что это понятно, что файл anycontent.php вызывается из файла index.php, поэтому использует его переменный, в т.ч. глобальные в функциях.
Надеюсь полную чущь не сморозил.

Попробуйте для начала добавить строку в плугин:
Code: [Select]
require('include/init.inc.php');
Может быть поможет?

А вообще нужно смотреть на плугин :)

Только создайте для этого отдельную тему...
« Last Edit: February 01, 2009, 11:53:53 pm by Makc666 »
Logged
Pages: [1]   Go Up
 

Page created in 0.049 seconds with 18 queries.