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: Файл anycontent.php - пример добавления статистики под &#  (Read 8036 times)

0 Members and 5 Guests 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.025 seconds with 21 queries.