Цитата (Alexander @ 2024-04-26 07:16)
7Azimuth, в файле class_comments.php
сделал так:
в
public function Show($value,$ajax=false)
if($this->view==3 and !$ajax and !$this->moder and !$this->Mainclass->Login->IsUser())
$this->Mainclass->Cache->Put($this->u,$content,7200,false);
if(!$ajax)
$content.=/*'<div align="center"><a href="#" onclick="return '.$this->u.'.Update();" class="link-button" style="width=180px"><b>'.$this->lang['load_new_posts'].'</b></a></div>'.*/$this->Editor();
переместил перед
if($cnt==0)
в итоге получилось:
public function Show($value,$ajax=false)
{
if(!$ajax)
{
$this->u='c_'.($mid=$this->Mainclass->GetModVal('id')).'_'.$value;
$content='<a name="comments" id="comments" style="font-size: 0px; line-height: 0px"></a>'.Strings::AddJS('js/eleanor_comments.js');
}
else
{
$mid=$this->Mainclass->GetModVal('id');
$content='';
}
$this->moder|=$this->Mainclass->Permission->IsAdmin();
$status=$this->moder ? '' : ' AND `status`>0';
$this->Mainclass->Db->FQuery('SELECT COUNT(`id`) FROM {"0"} WHERE `mid`={"1"} AND `m_value`={"2"}'.$status,array($this->table,'i_'.$mid,'s_'.$value),__file__,__line__);
list($cnt)=$this->Mainclass->Db->Fetch_row();
$pages=ceil($cnt/$this->per_page);
if(isset($_GET['findcomment']))
{
$comm_id=$_GET['findcomment'];
$this->Mainclass->Db->FQuery('SELECT COUNT(`id`) FROM {"0"} WHERE `id`<={"3"} AND `mid`={"1"} AND `m_value`={"2"}'.$status.' LIMIT 1',array($this->table,'i_'.$mid,'s_'.$value,'i_'.$comm_id),__file__,__line__);
list($comm_cnt)=$this->Mainclass->Db->Fetch_row();
if($comm_cnt==0)
return ExitPrefix();
if($this->view==3)
Functions::Redirect(ELEANOR_PROTOCOL.$this->Mainclass->domain.$this->Mainclass->site_path.'/'.$this->Mainclass->Url->Prefix().'#comment'.$comm_id);
else
{
$page=$pages-floor($comm_cnt/$this->per_page);
if($page==$pages)
$page=0;
else
$page=$pages-$page;
Functions::Redirect(ELEANOR_PROTOCOL.$this->Mainclass->domain.$this->Mainclass->site_path.'/'.htmlspecialchars_decode($this->Mainclass->Url->ConstructUrl(array(array('page'=>$page)))).'#comment'.$comm_id);
}
die;
}
if($this->view==3 and !$ajax and !$this->moder and !$this->Mainclass->Login->IsUser())
$this->Mainclass->Cache->Put($this->u,$content,7200,false);
if(!$ajax)
$content.=/*'<div align="center"><a href="#" onclick="return '.$this->u.'.Update();" class="link-button" style="width=180px"><b>'.$this->lang['load_new_posts'].'</b></a></div>'.*/$this->Editor();
if($cnt==0)
$content.=($ajax ? '' : '<div id="d_'.$this->u.'">').'<div align="center"><span class="option">'.$this->lang['no_comments'].'</span></div>'.($ajax ? '' : '</div>')
.($ajax ? '' : Strings::JsVars(array($this->u=>'!_ new Comments('.$mid.',\''.$value.'\',\''.$this->u.'\',\''.$this->Mainclass->Url->Prefix(false,false).'\',\''.$this->Mainclass->Url->ending.'\',0,0,'.$this->view.',0,0)')));
else
{
if($this->view==3 and !$ajax and !$this->moder and !$this->Mainclass->Login->IsUser())
{
$cache=$this->Mainclass->Cache->Get($this->u,false);
if($cache!==false)
return $cache.$this->Editor();
}
if($this->view!=3)
{
if($this->view==1)
$page=$pages - (isset($_GET['page']) ? (int)$_GET['page'] : $pages) + 1;
else
$page=isset($_GET['page']) ? (int)$_GET['page'] : 0;
if(($this->view!=2 or $ajax) and $page==0)
$page=$pages;
if($page<=0)
$page=1;
if($page>$pages)
$page=$pages;
$offset=abs(($page-1)*$this->per_page);
$comm_n=$this->view==2 ? $offset+1 : $cnt-$offset;
}
else
{
$values=$dump=$tosort=array();
$last=true;
$page=$pages=$comm_n=1;
}
$nesting=$ids=$uids=$ips=$dates=$names=$texts=$karma=$parents=$statuses=$whspam=array();
$this->Mainclass->Db->FQuery('SELECT `id`,`date`,`name`,`uid`,`ip`,`parent`,`text`,`karma`,LOCATE(\','.$this->Mainclass->Account->GetValue('id').',\',`karma_ids`) `who`,`status`,`who_m_spam` FROM {"0"} WHERE `mid`={"1"} AND `m_value`={"2"}'.$status.' ORDER BY `id` '.($this->view%2 ? 'DESC' : 'ASC').($this->view==3 ? '' : ' LIMIT '.$offset.', '.$this->per_page),array($this->table,'i_'.$mid,'s_'.$value),__file__,__line__);
while($arr=$this->Mainclass->Db->Fetch_assoc())
{
$arr['text']='<div id="'.$this->u.'_t'.$arr['id'].'">'.$arr['text'].'</div>';
$arr['date']=substr($arr['date'],0,-3); #Убираем секунды
if($arr['name'])
$arr['name']=preg_replace('#&[^;]+$#i','',$arr['name']);
if($this->view==3)
{
$arr['karma']=$this->Karma($arr['karma'],$arr['who'],$arr['id'],$arr['uid']);
$arr['nesting']=0;
unset($arr['who']);
$values[$arr['id']]=$arr;
if($arr['parent']==0)
{
if($last)
{
$values[$arr['id']]+=array('last'=>true);
$last=false;
}
$tosort[$arr['id']]=$arr['id'];
}
else
$dump[]=array('id'=>$arr['id'],'parent'=>$arr['parent']);
}
else
{
$ids[] =$arr['id'];
$uids[] =$arr['uid'];
$ips[] =$arr['ip'];
$dates[] =$arr['date'];
$parents[] =0;
$names[] =$arr['name'];
$texts[] =$arr['text'];
$karma[] =$this->Karma($arr['karma'],$arr['who'],$arr['id'],$arr['uid']);
$statuses[] =$arr['status'];
$whspam[] =$arr['who_m_spam'];#Кто пометил пост спамным
}
}
if($this->view==3)
{
asort($tosort,SORT_NUMERIC);
$keys=array_keys($tosort);
unset($tosort);
$len=0;
$last=array();
while (count($dump)!=$len)
{
$len=count($dump);
foreach ($dump as $k=>$v)
if(false!==$id=array_search($v['parent'],$keys))
{
$values[$v['id']]['nesting']=$values[$v['parent']]['nesting']+1;
if(!in_array($v['parent'],$last))
{
$values[$v['id']]['last']=true;
$last[]=$v['parent'];
}
array_splice($keys,$id+1,0,array((int)$v['id']));
unset($dump[$k]);
}
}
foreach($keys as &$v)
{
$ids[] =$values[$v]['id'];
$uids[] =$values[$v]['uid'];
$ips[] =$values[$v]['ip'];
$dates[] =$values[$v]['date'];
$parents[] =$values[$v]['parent'];
$names[] =$values[$v]['name'];
$texts[] =$values[$v]['text'];
$karma[] =$values[$v]['karma'];
$nesting[] =$values[$v]['nesting'];
$statuses[] =$values[$v]['status'];
$whspam[] =$values[$v]['who_m_spam'];#Кто пометил пост спамным
}
$pages_list='';
}
else
{
$nesting=&$parents;
$this->Mainclass->Url->hash='comments';
$pages_list=Strings::Pages($cnt,$this->per_page,array(),false,$this->view==2 ? $page : -1*$page,$this->u.'.GoToPage(\'{page}\')');
$this->Mainclass->Url->hash='';
}
$content.=($ajax ? '' : '<div id="d_'.$this->u.'">').$this->TempHeadComment().($this->view==3 ? '<ul class="com-list">' : '').$this->FormatPosts($ids,$uids,$ips,$dates,$names,$texts,$karma,$nesting,$comm_n,$statuses,$whspam).($this->view==3 ? '</ul>' : '').$this->TempFootComment().$pages_list.($ajax ? '' : '</div>')
.($ajax ? '' : Strings::JsVars(array($this->u=>'!_ new Comments('.$mid.',\''.$value.'\',\''.$this->u.'\',\''.$this->Mainclass->Url->Prefix(false,false).'\',\''.$this->Mainclass->Url->ending.'\','.$page.','.(int)($this->view==1 ? reset($ids) : end($ids)).','.$this->view.','.(int)$pages.','.($comm_n+($this->view==1 ? 0 : count($ids)-1)).')')));
}
return ($ajax ? array('comments'=>$content,'pages'=>$pages,'last'=>(int)($this->view==1 ? reset($ids) : end($ids)),'page'=>$page,'comm_n'=>$comm_n+($this->view==1 ? 0 : count($ids)-1)) : $content);
}
Правильно ли я сделал? Вроде отображается все отлично
http://inzhenery.su/news/inzhenery-zarubezhya/virtualnyy-inzhener-opredelit-problemu-do-ee-vozniknoveniya.html