Файл anycontent.php - пример добавления статистики под &# Файл anycontent.php - пример добавления статистики под &#
 

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

Файл anycontent.php - пример добавления статистики под &#

Started by Shaman, July 12, 2008, 11:58:10 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Shaman

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

Makc666

Quote from: Shaman on July 12, 2008, 11:58:10 PM
Скажите пожалуйста, как перенести статистику о файлах, альбомах и их просмотрах (которая отображается внизу catlist) в файл anycontent.php?
Заранее спасибо.
Обработка catlist начинается из файла index.php

Блок кода:
                    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

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


Если мы посмотрим в конец функции, то увидим интересующий нас блок:
    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

Вот этот блок:
// 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}


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


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

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


А дальше, а дальше не всё так просто, как показали опыты.
Просто так вставить код в anycontent.php с ходу не получится.
Читаем следующее сообщение...

Makc666

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

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


И превращаете вот в такой код:// 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

Перед кодом:
<?php
endtable
();


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


Всё :)

И понятное дело нужно не забить, чтобы добавить переменную anycontent в "Конфиг".

Shaman

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

Shaman

Все вроде понятно с принципом вывода статистики, но в упор не получается вывести ее в теле одного из плагинов (onlinestats) в файле codebase.php  путем вставки в него
<?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 все работает нормально.
Может быть проблема в том, что плагин не подгружает глобальные данные галереи?

Makc666

Quote from: Shaman on July 16, 2008, 01:12:36 AM
Все вроде понятно с принципом вывода статистики, но в упор не получается вывести ее в теле одного из плагинов (onlinestats) в файле codebase.php  путем вставки в него 
<?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, поэтому использует его переменный, в т.ч. глобальные в функциях.
Надеюсь полную чущь не сморозил.

Попробуйте для начала добавить строку в плугин:
require('include/init.inc.php');

Может быть поможет?

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

Только создайте для этого отдельную тему...