Портал / Portal

Alex Kur

Пользователь
Ну помогите, а ... Я вам потом парсер кинопоиска кину.
Я конечно могу и ошибатья, но что за криво поставленные переменные в твоем коде?
$where в скобках - бред. Компилятор обработает сей чудесный кусочек, как "$where", а не как значение переменной $where.
Может я туплю, но исправь все кривые переменные.
Тот же веа должен выглядить, как ".$where."
 

X0E2003

Пользователь
Вот весь код:
<?php

$forum_sql = '3'; // Из каких форумов брать
$per_page = '10'; // Раздач на страницу

define('IN_PHPBB', true);
define('BB_SCRIPT', 'index');
define('BB_ROOT', './');
require(BB_ROOT ."common.php");
//require(INC_DIR .'bbcode.php');

if ($bb_cfg['show_latest_news'])
{
$datastore->enqueue('latest_news');
}
if ($bb_cfg['show_network_news'])
{
$datastore->enqueue('network_news');
}
// Start session management
$user->session_start();

//Latest news
if ($bb_cfg['show_latest_news'])
{
if (!$latest_news = $datastore->get('latest_news'))
{
$datastore->update('latest_news');
$latest_news = $datastore->get('latest_news');
}

$template->assign_vars(array(
'SHOW_LATEST_NEWS' => true,
));

foreach ($latest_news as $news)
{
$template->assign_block_vars('news', array(
'NEWS_TOPIC_ID' => $news['topic_id'],
'NEWS_TITLE' => $news['topic_title'],
'NEWS_TIME' => bb_date($news['topic_time'], 'd-M', 'false'),
'NEWS_IS_NEW' => is_unread($news['topic_time'], $news['topic_id'], $news['forum_id']),
));
}
}

// Network news
if ($bb_cfg['show_network_news'])
{
if (!$network_news = $datastore->get('network_news'))
{
$datastore->update('network_news');
$network_news = $datastore->get('network_news');
}

$template->assign_vars(array(
'SHOW_NETWORK_NEWS' => true,
));

foreach ($network_news as $net)
{
$template->assign_block_vars('net', array(
'NEWS_TOPIC_ID' => $net['topic_id'],
'NEWS_TITLE' => str_short($net['topic_title'], $bb_cfg['max_net_title']),
'NEWS_TIME' => bb_date($net['topic_time'], 'd-M', 'false'),
'NEWS_IS_NEW' => is_unread($net['topic_time'], $net['topic_id'], $net['forum_id']),
));
}
}
$start = ( isset($_GET['start']) ) ? intval($_GET['start']) : 0;

if (isset($_POST['mode']) || isset($_GET['mode']))
{
$mode = (isset($_POST['mode'])) ? $_POST['mode'] : $_GET['mode'];
}
else
{
$mode = '';
}
if (isset($_POST['search']) || isset($_GET['search']))
{
$search = (isset($_POST['search'])) ? $_POST['search'] : $_GET['search'];
}
else
{
$search = '';
}

if ($mode == 'user')
{
$where = "AND u.username LIKE '%". $search ."%'";
}
elseif ($mode == 'title')
{
$where = "AND t.topic_title LIKE '%". $search ."%'";
}
elseif ($mode == 'desc')
{
$where = "AND pt.post_html LIKE '%". $search ."%'";
}
else
{
$where = "";
}

$sql = "SELECT COUNT(t.topic_id) as topic_count
FROM " . BB_TOPICS . " AS t
WHERE t.forum_id IN ($forum_sql)";
if ( !($result = DB()->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Ошибка информации 1', '', __LINE__, __FILE__, $sql);
}
$row = DB()->sql_fetchrow($result);
$topic_count = ( $row['topic_count'] ) ? $row['topic_count'] : 0;
DB()->sql_freeresult($result);

if ($topic_count)
{
$sql = "SELECT t.*, pt.*, p.post_id, u.username, u.user_id, u.user_rank, tr.size, tr.attach_id
FROM " . BB_TOPICS . " AS t,
" . BB_USERS . " AS u,
" . BB_POSTS_HTML . " AS pt,
" . BB_POSTS . " AS p,
" . BB_BT_TORRENTS . " AS tr
WHERE t.forum_id IN ($forum_sql)
AND t.topic_poster = u.user_id
AND t.topic_first_post_id = pt.post_id
AND t.topic_first_post_id = p.post_id
AND t.topic_id= tr.topic_id
AND t.topic_status <> 2
$where
ORDER BY t.topic_time DESC
LIMIT $start, $per_page";

if ( !($result = DB()->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Ошибка информации 2', '', __LINE__, __FILE__, $sql);
}
$topics = DB()->sql_fetchrowset($result);

for ($i = 0; $i < count($topics); $i++)
{
preg_match_all('/<var class="postImg postImgAligned img-(.*?)" title="(.*?)">&#10;<\/var>/', $topics[$i]['post_html'], $poster, PREG_SET_ORDER);
preg_match_all('/<var class="postImg" title="(.*?)">&#10;<\/var>/', $topics[$i]['post_html'], $poster2, PREG_SET_ORDER);

$url = '';
if (@$poster[0][2])
{
$url = $poster[0][2];
}
elseif (@$poster2[0][1])
{
$url = $poster2[0][1];
}

$title_post = $topics[$i]['post_html'];
$pos = strpos($title_post, 'Описание');
$title_post = substr($title_post, $pos);
if ($pos = strpos($title_post, 'Качество'))
{
$pos = strpos($title_post, 'Качество');
$title_post = strip_tags(html_entity_decode(substr($title_post, 0, $pos)));
}
elseif ($pos = strpos($title_post, '<span class="post-hr">'))
{
$pos = strpos($title_post, '<span class="post-hr">');
$title_post = strip_tags(html_entity_decode(substr($title_post, 0, $pos)));
}
elseif ($pos = strpos($title_post, '<div class="sp-wrap">'))
{
$pos = strpos($title_post, '<div class="sp-wrap">');
$title_post = strip_tags(html_entity_decode(substr($title_post, 0, $pos)));
}
elseif ($pos = strpos($title_post, '<br />'))
{
$pos = strpos($title_post, '<br />');
$title_post = strip_tags(html_entity_decode(substr($title_post, 0, $pos)));
}

$template->assign_block_vars('topics', array(
'TOPIC_TITLE' => $topics[$i]['topic_title'],
'U_VIEW_TOPIC' => TOPIC_URL . $topics[$i]['topic_id'],
'POSTER' => profile_url(array('username' => $topics[$i]['username'], 'user_rank' => $topics[$i]['user_rank'])),
'SIZE' => humn_size($topics[$i]['size']),
'TOPIC_POSTER_ID' => $topics[$i]['user_id'],
'TIME' => bb_date($topics[$i]['topic_time']),
'POSTER_IMG' => '<img border="1" src="'.$url.'" align="left" style="margin-bottom:8px;margin-right:8px;max-width:200px;max-height:200px;">',
'REPLIES' => '<a href='. TOPIC_URL . $topics[$i]['topic_id'] .'>Комментариев:&nbsp;'. $topics[$i]['topic_replies'] .'</a>',
'DESCRIPTION' => $title_post,
'DOWNLOAD' => '<a href="download.php?id='. $topics[$i]['attach_id'] .'"><b>Скачать</b></a>',
));
}

$url = ($search) ? "portal.php?mode=$mode&search=$search" : "portal.php?mode=portal";
$pagination = generate_pagination($url, $topic_count, $per_page, $start);

$template->assign_vars(array(
'PAGINATION' => $pagination,
'PAGE_NUMBER' => sprintf($lang['PAGE_OF'], ( floor( $start / $per_page ) + 1 ), ceil( $topic_count / $per_page )),
'U_PER_PAGE' => $url,
'PER_PAGE' => $per_page,
));
}
else
{
$template->assign_block_vars('no_topics', array());
}

$template->assign_vars(array(
'PORTAL' => true,
'PAGE_TITLE' => 'Портал',
'L_STATISTICS' => $lang['STATISTICS'],
'L_DESCRIPTION' => $lang['DESCRIPTION'],
));

print_page('portal.tpl');

?>
 

X0E2003

Пользователь
Собственно вся проблема в том, что съедаются темы с фильмами и вместо них выводятся пустые страницы, столько часов бьюсь, никак не найду:

http://s018.*******.host/i512/1207/9a/cffbb5c40e2e.jpg
 

Alex Kur

Пользователь
Прости, ошибся. Да, глянул пхп.су - усвоил для себя ;)
Может у тебя тоже не высставлен 777 чмод на папку с кешем?
 

PheRum

Легенда
Собственно вся проблема в том, что съедаются темы с фильмами и вместо них выводятся пустые страницы, столько часов бьюсь, никак не найду:

http://s018.*******.host/i512/1207/9a/cffbb5c40e2e.jpg



именно для этого портала подсчет страниц будет вот так выглядеть правильным вариантом

Код:
$sql = "SELECT COUNT(t.topic_id) as topic_count
    FROM " . BB_TOPICS . " AS t,
    " . BB_POSTS_HTML . " AS pt,
    " . BB_POSTS . " AS p,
    " . BB_BT_TORRENTS . " AS tr
    WHERE t.forum_id IN ($forum_sql)
        AND t.topic_first_post_id = pt.post_id
        AND t.topic_first_post_id = p.post_id
        AND t.topic_id= tr.topic_id
        AND t.topic_status <> 2
        $where
    ";
if ( !($result = DB()->sql_query($sql)) )
{
    message_die(GENERAL_ERROR, 'Ошибка информации 1', '', __LINE__, __FILE__, $sql);
}
 

PheRum

Легенда
а вообще этот портал изначально написан неправильно и берет инфу не верно, это же касается и платных версий продаваемых на этом форуме там такая же бета версия как и эта, не более того))
 
Сверху