Уважаемые пользователи, по техническим причинам загрузка файлов временно недоступна. Приносим извинения за временные неудобства.

Последние темы на главной странице

Темы из форумов поддержки phpBB 3.2.x (доступны только для чтения)
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
RiGo
phpBB 1.4.3
Сообщения: 84
Стаж: 15 лет 8 месяцев
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Последние темы на главной странице

Сообщение RiGo »

Здравствуйте! Мучаюсь уже 4 ий день и в этой стадии мне нужна ваша помощь.

Практический урон с Вики phpbb3 - Practical.Displaying posts and topics on external pages

Сделал вроде все как в уроке но получаю ошибку при открытии файла http://domensite.ru/home.php ( где по идее должны были быть темы с форума )
Изображение

А вот содержимое файла home.php

Код: Выделить всё

<?php

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
page_header('External page');

$search_limit = 5;

 $forum_id = array(2);
    $forum_id_where = create_where_clauses($forum_id, 'forum');

    $topic_id = array(20, 50);
    $topic_id_where = create_where_clauses($topic_id, 'topic');
/* create_where_clauses( int[] gen_id, String type )
* This function outputs an SQL WHERE statement for use when grabbing 
* posts and topics */

function create_where_clauses($gen_id, $type)
{
global $db, $auth;

    $size_gen_id = sizeof($gen_id);

        switch($type)
        {
            case 'forum':
                $type = 'forum_id';
                break;
            case 'topic':
                $type = 'topic_id';
                break;
            default:
                trigger_error('No type defined');
        }

    // Set $out_where to nothing, this will be used of the gen_id
    // size is empty, in other words "grab from anywhere" with
    // no restrictions
    $out_where = '';

    if( $size_gen_id > 0 )
    {
    // Get a list of all forums the user has permissions to read
    $auth_f_read = array_keys($auth->acl_getf('f_read', true));

        if( $type == 'topic_id' )
        {
            $sql     = 'SELECT topic_id FROM ' . TOPICS_TABLE . '
                        WHERE ' .  $db->sql_in_set('topic_id', $gen_id) . '
                        AND ' .  $db->sql_in_set('forum_id', $auth_f_read);

            $result     = $db->sql_query($sql);

                while( $row = $db->sql_fetchrow($result) )
                {
                        // Create an array with all acceptable topic ids
                        $topic_id_list[] = $row['topic_id'];
                }

            unset($gen_id);

            $gen_id = $topic_id_list;
            $size_gen_id = sizeof($gen_id);
        }

    $j = 0;    

        for( $i = 0; $i < $size_gen_id; $i++ )
        {
        $id_check = (int) $gen_id[$i];

            // If the type is topic, all checks have been made and the query can start to be built
            if( $type == 'topic_id' )
            {
                $out_where .= ($j == 0) ? 'WHERE ' . $type . ' = ' . $id_check . ' ' : 'OR ' . $type . ' = ' . $id_check . ' ';
            }

            // If the type is forum, do the check to make sure the user has read permissions
            else if( $type == 'forum_id' && $auth->acl_get('f_read', $id_check) )
            {
                $out_where .= ($j == 0) ? 'WHERE ' . $type . ' = ' . $id_check . ' ' : 'OR ' . $type . ' = ' . $id_check . ' ';
            }    

        $j++;
        }
    }

    if( $out_where == '' && $size_gen_id > 0 )
    {
        trigger_error('A list of topics/forums has not been created');
    }

    return $out_where;
}

$topics = 'SELECT * FROM ' . TOPICS_TABLE . '
            ' . $forum_id_where . '
              AND topic_status <> ' . ITEM_MOVED . '
              AND topic_approved = 1
            ORDER BY topic_id DESC';

   $topics_result = $db->sql_query_limit($topics, $search_limit);

      while( $topics_row = $db->sql_fetchrow($topics_result) )
      {
         $topic_title       = $topics_row['topic_title'];
         $topic_author       = get_username_string('full', $topics_row['topic_poster'], $topics_row['topic_first_poster_name'], $topics_row['topic_first_poster_colour']);
         $topic_date       = $user->format_date($topics_row['topic_time']);
         $topic_last_post    = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $topics_row['forum_id'] . '&amp;t=' . $topics_row['topic_id'] . '&amp;p=' . $topics_row['topic_last_post_id']) . '#p' . $topics_row['topic_last_post_id'];
         $topic_last_author    = get_username_string('full', $topics_row['topic_last_poster_id'], $topics_row['topic_last_poster_name'], $topics_row['topic_last_poster_colour']);
         $topic_link       = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $topics_row['forum_id'] . '&amp;t=' . $topics_row['topic_id']);

         $template->assign_block_vars('announcements', array(
         'TOPIC_TITLE'       => censor_text($topic_title),
         'TOPIC_AUTHOR'       => $topic_author,
         'TOPIC_DATE'       => $topic_date,
         'TOPIC_LAST_POST'    => $topic_last_post,
         'TOPIC_LAST_AUTHOR' => $topic_last_author,
         'TOPIC_LINK'       => $topic_link,
         ));
      }


page_header('External page');

    $template->set_filenames(array(
        'body' => 'external_body.html'
    ));

    page_footer();
?> 
;
?> 
Помогите пожалуйста решить проблему... в чем я допустил ошибку? Заранее премного благодарен.
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2229
Стаж: 18 лет 10 месяцев
Откуда: Астана
Благодарил (а): 7 раз
Поблагодарили: 344 раза

Re: Последние темы на главной странице

Сообщение nissin »

RiGo,
там урок для phpBB версии 3.0
используйте topic_visibility вместо topic_approved.
RiGo
phpBB 1.4.3
Сообщения: 84
Стаж: 15 лет 8 месяцев
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: Последние темы на главной странице

Сообщение RiGo »

nissin писал(а): 04.03.2019 2:35 там урок для phpBB версии 3.0
используйте topic_visibility вместо topic_approved.
Сделал получил совсем другую ошибку...
Изображение

Поможете решить проблему? :shock: очень нужно реализовать эту функцию
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 11 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: Последние темы на главной странице

Сообщение Pazh »

RiGo, в ошибке же черным по белому написано - отсутствует шаблон external_body.html в папке со стилями. В ссылке в уроке в последнем абзаце есть ссылка по синтаксису шаблонов
Помощь в ЛС/email только за WM или ЮMoney
RiGo
phpBB 1.4.3
Сообщения: 84
Стаж: 15 лет 8 месяцев
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: Последние темы на главной странице

Сообщение RiGo »

Изображение

Создал файл external_page

Код: Выделить всё

<!-- BEGIN announcements -->
Title: {announcements.TOPIC_TITLE}<br />
Post author: {announcements.POST_AUTHOR}<br />
Post date: {announcements.POST_DATE}<br />
Last post text: {announcements.POST_TEXT}<br />
Post link: {announcements.POST_LINK}
<!-- END announcements -->
Почему то работает криво как вы можете посмотреть на скрине.. в чем проблема? Отображаются только загаловки тем и то не кликабельные... Дата итд не работает...
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 8 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Последние темы на главной странице

Сообщение Sheer »

Чему тут удивляться. POST_AUTHOR где-то определен? Нет. Вместо него

Код: Выделить всё

'TOPIC_AUTHOR'	=> $topic_author,
ну и так далее в том же духе.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
static77
phpBB 2.0.0
Сообщения: 233
Стаж: 10 лет 8 месяцев
Благодарил (а): 117 раз
Поблагодарили: 7 раз

Re: Последние темы на главной странице

Сообщение static77 »

Последние темы на главной странице
не хотите попробовать готовое расширение Recent Topics
Версия phpBB: 3.3.16

Вернуться в «phpBB 3.2.x (архив)»