Jump to content
View in the app

A better way to browse. Learn more.

IPBMafia.ru - поддержка Invision Community, релизы, темы, плагины и приложения

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Вылет Sql ошибки, при переходе к последнему посту!

Featured Replies

Posted

Добрый день, столкнулся с такими ошибками 

 

 .--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
 | File                                                                       | Function                                                                      | Line No.          |
 |----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
 | applications/forums/modules_public/forums/topics.php                | [public_forums_forums_topics].returnLastPost                                  | 1065              |
 '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
 | applications/forums/modules_public/forums/topics.php                | [public_forums_forums_topics]._doViewCheck                                    | 188               |
 '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
 | sources/base/ipsController.php                                      | [public_forums_forums_topics].doExecute                                       | 302               |
 '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Date: Sat, 20 Dec 2014 00:29:26 +0000
 Error: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DESC LIMIT 0,1' at line 1
 
по порядку.. .
 строка 1065 = $this->returnLastPost();
функция 

public function returnLastPost( $topicData=false )


{
/* Init */
$topicData = ( $topicData === false ) ? $this->registry->getClass('topics')->getTopicData() : $topicData;
$forumData = $this->forumClass->getForumById( $topicData['forum_id'] );
$permissionData = $this->registry->getClass('topics')->getPermissionData();
$st = 0;
$query = ' AND ' . $this->registry->class_forums->fetchPostHiddenQuery('visible');
$_posts = $topicData['posts'];

if( $this->registry->class_forums->canQueuePosts( $topicData['forum_id'] ) )
{
$_posts += intval($topicData['topic_queuedposts']);
}

if( $permissionData['softDeleteSee'] )
{
$_posts += intval($topicData['topic_deleted_posts']);
}

/* Can we deal with hidden posts? */
if ( $this->registry->class_forums->canQueuePosts( $topicData['forum_id'] ) )
{
if ( $permissionData['softDeleteSee'] )
{
/* See queued and soft deleted */
$query = ' AND ' . $this->registry->class_forums->fetchPostHiddenQuery( array( 'approved', 'sdeleted', 'hidden' ) );
}
else
{
/* Otherwise, see queued and approved */
$query = ' AND ' . $this->registry->class_forums->fetchPostHiddenQuery( array( 'visible', 'hidden' ) );
}
}
else
{
/* We cannot see hidden posts */
if ( $permissionData['softDeleteSee'] )
{
/* See queued and soft deleted */
$query = ' AND ' . $this->registry->class_forums->fetchPostHiddenQuery( array('approved', 'sdeleted') );
}
}

if( $_posts )
{
if ( (($_posts + 1) % $this->settings['display_max_posts']) == 0 )
{
$pages = ($_posts + 1) / $this->settings['display_max_posts'];
}
else
{
$number = ( ($_posts + 1) / $this->settings['display_max_posts'] );
$pages = ceil( $number );
}

$st = ($pages - 1) * $this->settings['display_max_posts'];

if( $this->settings['post_order_sort'] == 'desc' )
{
$st = (ceil(($_posts/$this->settings['display_max_posts'])) - $pages) * $this->settings['display_max_posts'];
}
}

$this->DB->build( array( 'select' => 'pid',
'from' => 'posts',
'where' => "topic_id=".$topicData['tid'] . $query,
'ORDER' => $this->settings['post_order_column'].' DESC',
'limit' => array( 0,1 ) ) );

$this->DB->execute();

$post = $this->DB->fetch();

$this->registry->output->silentRedirect($this->settings['base_url']."showtopic=".$topicData['tid']."&pid={$post['pid']}&st={$st}&"."#entry".$post['pid'], $topicData['title_seo'] );
}

 
строка 188 = /* Specific view? */ $this->_doViewCheck();
функция

protected function _doViewCheck()


{
/* Init */
$topicData = $this->registry->getClass('topics')->getTopicData();
$forumData = $this->forumClass->getForumById( $topicData['forum_id'] );
$permissionData = $this->registry->getClass('topics')->getPermissionData();

if ( $this->request['view'] )
{
/* Determine what we can see */
$_approved = $this->registry->class_forums->fetchTopicHiddenQuery( array( 'visible' ), '' );

/* Can we deal with hidden posts? */
if ( $this->registry->class_forums->canQueuePosts( $topicData['forum_id'] ) )
{
if ( $permissionData['TopicSoftDeleteSee'] )
{
/* See queued and soft deleted */
$_approved = $this->registry->class_forums->fetchTopicHiddenQuery( array( 'approved', 'sdeleted', 'hidden' ), '' );
}
else
{
/* Otherwise, see queued and approved */
$_approved = $this->registry->class_forums->fetchTopicHiddenQuery( array( 'visible', 'hidden' ), '' );
}
}
else
{
/* We cannot see hidden posts */
if ( $permissionData['TopicSoftDeleteSee'] )
{
/* See queued and soft deleted */
$_approved = $this->registry->class_forums->fetchTopicHiddenQuery( array( 'approved', 'sdeleted' ), '' );
}
}

if ( $this->request['view'] == 'getnextunread' )
{
$tid = $this->registry->getClass('topics')->getNextUnreadTopicId();

if ( $tid )
{
$topic = $this->registry->getClass('topics')->getTopicById( $tid );

$this->returnNewPost( $topic );
}
else
{
$this->registry->output->showError( 'topics_none_newer', 10356, null, null, 404 );
}
}
else if ($this->request['view'] == 'new')
{
//-----------------------------------------
// Newer
//-----------------------------------------

$this->DB->build( array(
'select' => 'tid, title_seo',
'from' => 'topics',
'where' => "forum_id={$forumData['id']} AND {$_approved} AND state <> 'link' AND last_post > {$topicData['last_post']}",
'ORDER' => 'last_post',
'LIMIT' => array( 0,1 )
) );
$this->DB->execute();

if ( $this->DB->getTotalRows() )
{
$this->topic = $this->DB->fetch();

$this->registry->output->silentRedirect( $this->settings['base_url']."showtopic=".$topicData['tid'], $topicData['title_seo'] );
}
else
{
$this->registry->output->showError( 'topics_none_newer', 10356, null, null, 404 );
}
}
else if ($this->request['view'] == 'old')
{
//-----------------------------------------
// Older
//-----------------------------------------

$this->DB->build( array(
'select' => 'tid, title_seo',
'from' => 'topics',
'where' => "forum_id={$forumData['id']} AND {$_approved} AND state <> 'link' AND last_post < {$topicData['last_post']}",
'order' => 'last_post DESC',
'limit' => array( 0,1 )
) );

$this->DB->execute();

if ( $this->DB->getTotalRows() )
{
$this->topic = $this->DB->fetch();

$this->registry->output->silentRedirect( $this->settings['base_url']."showtopic=".$topicData['tid'], $topicData['title_seo'] );
}
else
{
$this->registry->output->showError( 'topics_none_older', 10357, null, null, 404 );
}
}
else if ($this->request['view'] == 'getlastpost')
{
//-----------------------------------------
// Last post
//-----------------------------------------

$this->returnLastPost();
}
else if ($this->request['view'] == 'getnewpost')
{
$this->returnNewPost();
}
else if ($this->request['view'] == 'findpost')
{
//-----------------------------------------
// Find a post
//-----------------------------------------

$pid = intval($this->request['p']);
$query = ' AND ' . $this->registry->class_forums->fetchPostHiddenQuery('visible');

/* Can we deal with hidden posts? */
if ( $this->registry->class_forums->canQueuePosts( $topicData['forum_id'] ) )
{
if ( $permissionData['softDeleteSee'] )
{
/* See queued and soft deleted */
$query = ' AND ' . $this->registry->class_forums->fetchPostHiddenQuery( array( 'approved', 'sdeleted', 'hidden' ) );
}
else
{
/* Otherwise, see queued and approved */
$query = ' AND ' . $this->registry->class_forums->fetchPostHiddenQuery( array( 'visible', 'hidden' ) );
}
}
else
{
/* We cannot see hidden posts */
if ( $permissionData['softDeleteSee'] )
{
/* See queued and soft deleted */
$query = ' AND ' . $this->registry->class_forums->fetchPostHiddenQuery( array('approved', 'sdeleted') );
}
}

if ( $pid > 0 )
{
$sort_value = $pid;
$sort_field = ($this->settings['post_order_column'] == 'pid') ? 'pid' : 'post_date';

if($sort_field == 'post_date')
{
$date = $this->DB->buildAndFetch( array( 'select' => 'post_date', 'from' => 'posts', 'where' => 'pid=' . $pid ) );

$sort_value = $date['post_date'];
}

$this->DB->build( array( 'select' => 'COUNT(*) as posts', 'from' => 'posts', 'where' => "topic_id={$topicData['tid']} AND {$sort_field} <=" . intval( $sort_value ) . $query ) );
$this->DB->execute();

$cposts = $this->DB->fetch();

if ( (($cposts['posts']) % $this->settings['display_max_posts']) == 0 )
{
$pages = ($cposts['posts']) / $this->settings['display_max_posts'];
}
else
{
$number = ( ($cposts['posts']) / $this->settings['display_max_posts'] );
$pages = ceil($number);
}

$st = ($pages - 1) * $this->settings['display_max_posts'];

if( $this->settings['post_order_sort'] == 'desc' )
{
$st = (ceil(($topicData['posts']/$this->settings['display_max_posts'])) - $pages) * $this->settings['display_max_posts'];
}

$search_hl = '';
if( !empty( $this->request['hl'] ) )
{
$search_hl .= "&hl={$this->request['hl']}";
}

if( !empty( $this->request['fromsearch'] ) )
{
$search_hl .= "&fromsearch={$this->request['fromsearch']}";
}

$this->registry->output->silentRedirect( $this->settings['base_url']."showtopic=".$topicData['tid']."&st={$st}&p={$pid}{$search_hl}"."&#entry".$pid, $topicData['title_seo'] );
}
else
{
$this->returnLastPost();
}
}
}
}

 
строка 302 = $this->doExecute( $registry );
функция 

protected function doExecute( ipsRegistry $registry )


{
$modules_dir = ( IPS_AREA != 'admin' ) ? 'modules_public' : 'modules_admin';
$filepath = IPSLib::getAppDir( IPS_APP_COMPONENT ) . '/' . $modules_dir . '/' . ipsRegistry::$current_module . '/' . ipsRegistry::$current_section . '.php';
$filepath = str_replace( DOC_IPS_ROOT_PATH, '', $filepath );

//-----------------------------------------
// Redirect to board index
//-----------------------------------------

if ( ! (IPS_APP_COMPONENT == 'forums' AND ipsRegistry::$current_module == 'forums' AND ipsRegistry::$current_section == 'boards') )
{
if( IPB_THIS_SCRIPT == 'admin' )
{
$registry->output->silentRedirect( ipsRegistry::$settings['_base_url'] );
}
else
{
$registry->output->silentRedirect( ipsRegistry::$settings['_original_base_url'] );
}
}

//-----------------------------------------
// Uh oh, this is a big one.. (no forums app)
//-----------------------------------------

if ( ! is_file( $filepath ) )
{
$this->registry->getClass('output')->showError( array( 'command_file_missing', $filepath ), 401100, null, null, 404 );
}
else
{
$this->registry->getClass('output')->showError( array( 'command_class_incorrect', $filepath ), 401200, null, null, 404 );
}
}

 
помогите решить проблему...
при переходе по такого ввида ссылке htp://сайт.ru/index.php?/topic/1-топик/page__view__getlastpost
получаю всем знакомый экран
a9f68348fa.png

Edited by promo

Последние посетители 0

  • No registered users viewing this page.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.