| Server IP : 54.36.91.62 / Your IP : 216.73.217.117 Web Server : Apache System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : coopiak ( 151928) PHP Version : 8.3.23 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/coopiak/amisdesseniors-fr/administrator/components/com_jlexreview/models/ |
Upload File : |
<?php
/**
* @package JLex Review
* @version 4.2.3
* @copyright Copyright (c) 2013-2018 JLexArt. All rights reserved
* @license GNU General Public License version 2 or later;
* @author www.jlexart.com
*/
defined('_JEXEC') or die;
class JLexReviewModelReviewsAdmin extends JModelLegacy
{
public $limitstart = 0;
public $limit = 20;
public $total = 0;
public $filters = [];
public $sort = "r.created DESC";
public function getReviews()
{
$config = JLexReviewHelperAdmin::getConfig();
$query = $this->_db->getQuery(true);
$query->select("SQL_CALC_FOUND_ROWS r.*")
->select("IF(r.created_by,u.name,r.author_name) author,u.username")
->from("#__jlexreview r")
->select("entry.object_name, entry.url entry_url, entry.object, entry.object_id")
->leftJoin("#__jlexreview_entry AS entry ON entry.id=r.entry_id")
->leftJoin("#__users u ON u.id=r.created_by");
// where clauses
$wClauses = array("entry.id IS NOT NULL");
if(array_key_exists("uid", $this->filters))
{
$wClauses[]="r.created_by=".$this->_db->quote($this->filters["uid"]);
} elseif(array_key_exists("author", $this->filters)) {
$wClauses[]=$this->filters["author"]==1?"r.created_by>0":"r.created_by=0";
}
if(array_key_exists("state", $this->filters))
{
$wClauses[]="r.published=".$this->_db->quote($this->filters["state"]);
}
if(array_key_exists("q", $this->filters))
{
$wClauses="r.title LIKE ".$this->_db->quote( "%".$this->filters["q"]."%" );
}
if(array_key_exists("entry_id", $this->filters))
{
$wClauses[]="r.entry_id=".$this->_db->quote($this->filters["entry_id"]);
}
$query->where($wClauses)
->order($this->sort);
$reviews = $this->_db->setQuery($query, $this->limitstart, $this->limit)->loadObjectList();
$this->total = (int) $this->_db->setQuery("SELECT FOUND_ROWS()")->loadResult();
if(!$reviews) return null;
foreach($reviews as $k=>&$review)
{
$reviews[$k]->url2edit = JUri::base(true)."/index.php?option=com_jlexreview&view=rating&id=" . $review->id;
$reviews[$k]->url2entry = JUri::base(true)."/index.php?option=com_jlexreview&view=items&hl=".$review->entry_id;
if($config->get("link_type",0)=="1")
{
$up = JLexReviewHelperAdmin::getItemDetail($review->object, $review->object_id, $review->object_name, $review->entry_url);
$entry_url = $up->url;
$reviews[$k]->object_name = $up->title;
} else {
$entry_url = trim(urldecode($review->entry_url), "/");
$entry_url = preg_match("/^https?:\/\//", $entry_url) ? $entry_url : JUri::root(true) . "/" . $entry_url;
}
$reviews[$k]->url2item = $entry_url . (preg_match("/\?/", $entry_url)?"&":"?") . "review_id=" . $review->id;
$reviews[$k]->created = JHtml::date($review->created, $this->_db->getDateFormat());
$reviews[$k]->seeComment = JUri::base(true) . "/index.php?option=com_jlexreview&view=cm&review_id=" . $review->id;
$reviews[$k]->jprofile = JUri::base(true) . "/index.php?option=com_users&task=user.edit&id=" . $review->created_by;
$reviews[$k]->quick_edit = ($review->voting && $this->nofield($review->id));
}
return $reviews;
}
protected function nofield($reviewId)
{
$query = $this->_db->getQuery(true);
$query->select('COUNT(*)')
->from('#__jlexreview_fields')
->where('review_id='.$this->_db->quote($reviewId));
return empty($this->_db->setQuery($query)->loadResult())?true:false;
}
public function getPagination()
{
jimport("joomla.html.pagination");
return new JPagination($this->total, $this->limitstart, $this->limit);
}
public function reviewCmd($cmd)
{
$app = JFactory::getApplication ();
$now = JFactory::getDate ()->toSql ();
$cid = $app->getInput()->get("cid", null, "array");
if ( is_null($cid) || !count($cid))
{
$this->setError( JText::_("JR_SELECT_ROW_TO_TASK") );
return false;
}
$query = null;
switch ($cmd)
{
case "publish" :
case "unpublish" :
case "delete" :
$row = $this->getTable("review", "TableJR");
foreach ($cid as $id)
{
$row->load($id);
if ($cmd=="delete")
{
$row->do_remove();
} else {
$row->do_publish($cmd=="publish"?1:0);
}
}
if ($cmd=='publish')
{
$resetTime = $app->getInput()->getBool("resettime",false);
if ($resetTime)
{
$query = "UPDATE #__jlexreview SET created_time=" .$this->_db->quote($now). " WHERE id IN(" . implode ( ',', $cid ) . ")";
$this->_db->setQuery( $query )->execute();
}
}
return true;
case "feature":
case "unfeature":
$query = "UPDATE #__jlexreview SET featured=".($cmd=="feature"?1:0)." WHERE id IN(" . implode ( ',', $cid ) . ")";
break;
case "resetHelpfulCount":
$query = $this->_db->getQuery(true);
$query->update('#__jlexreview')
->set(['count_help=0', 'count_unhelp=0'])
->where('id IN('.implode( ',', $cid).')');
$this->_db->setQuery($query)->execute();
$query->clear()
->delete('#__jlexreview_helpful')
->where([
'type_ob=1',
'type_id IN('.implode( ',', $cid).')'
]);
$this->_db->setQuery($query)->execute();
return true;
break;
}
$this->_db->setQuery($query)->execute();
$affect = $this->_db->getAffectedRows();
return $affect == 0 ? false : true;
}
}