Seditio Source
Root |
./othercms/elxis_5.3_atlas_rev2452/modules/mod_adminarticles/req.php
<?php
/**
* @version        $Id$
* @package        Elxis
* @subpackage    Module Administration Articles
* @copyright    Copyright (c) 2006-2019 Elxis CMS (http://www.elxis.org). All rights reserved.
* @license        Elxis Public License ( http://www.elxis.org/elxis-public-license.html )
* @author        Elxis Team ( http://www.elxis.org )
* @description     Elxis CMS is free software. Read the license for copyright notices and details
*/

defined('_ELXIS_') or die ('Direct access to this location is not allowed');


$popular = isset($_POST['popular']) ? (int)$_POST['popular'] : 0;
if (
$popular != 1) { $popular = 0; }
$months = isset($_POST['months']) ? (int)$_POST['months'] : 0;
if ((
$months < 0) || ($months > 36)) { $months = 0; }//actually only up to "12" is used

$db = eFactory::getDB();
$elxis = eFactory::getElxis();
$eDate = eFactory::getDate();
$eLang = eFactory::getLang();

$eLang->load('mod_adminarticles', 'module');

$binds = array();
$sql = "SELECT a.id, a.catid, a.title, a.created, a.created_by, a.created_by_name, a.published, a.hits, c.title AS cattitle"
."\n FROM ".$db->quoteId('#__content')." a"
."\n LEFT JOIN ".$db->quoteId('#__categories')." c ON c.catid=a.catid";
if (
$popular == 1) {
    if (
$months > 0) {
       
$ts = gmmktime(0, 0, 0, gmdate('m') - $months, gmdate('d'), gmdate('Y'));
       
$date = gmdate('Y-m-d H:i:s', $ts);
       
$binds[] = array(':crdate', $date, PDO::PARAM_STR);
       
$sql .= " WHERE a.created > :crdate ORDER BY a.hits DESC";
    } else {
       
$sql .= "\n ORDER BY a.hits DESC";
    }
} else {
   
$sql .= "\n ORDER BY a.created DESC";
}
$stmt = $db->prepareLimit($sql, 0, 10);
if (
count($binds) > 0) {
    foreach (
$binds as $bind) {
       
$stmt->bindParam($bind[0], $bind[1], $bind[2]);
    }
}
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_OBJ);

$response = array('success' => 1, 'message' => '', 'articles' => array(), 'listtitle' => '', 'listdesc' => '');


if (
$popular == 1) {
   
$response['listtitle'] = $eLang->get('POPULAR_ARTICLES');
    if (
$months > 1) {
       
$response['listdesc'] = sprintf($eLang->get('POPULAR_LAST_MONTHS'), $months);
    } else if (
$months == 1) {
       
$response['listdesc'] = $eLang->get('POPULAR_LAST_MONTH');
    } else {
       
$response['listdesc'] = $eLang->get('POPULAR_ALL_TIME');
    }
} else {
   
$response['listtitle'] = $eLang->get('LATEST_ARTICLES');
   
$response['listdesc'] = $eLang->get('LATEST_ARTS_SITE');
}

if (
$rows) {
    foreach (
$rows as $row) {
       
$iconclass = ($row->published == 0) ? 'fas fa-ban elx5_red' : 'fas fa-check elx5_green';
       
$title = $row->title;
        if (
eUTF::strlen($row->title) > 30) { $title = eUTF::substr($row->title, 0, 27).'...'; }

       
$article = array(
           
'artid' => $row->id,
           
'iconclass' => $iconclass,
           
'fulltitle' => $row->title,
           
'title' => $title,
           
'catid' => $row->catid,
           
'cattitle' => $row->cattitle,
           
'fdate' => $eDate->formatDate($row->created, $eLang->get('DATE_FORMAT_4')),
           
'hits' => $row->hits,
           
'created_by_name' => $row->created_by_name
       
);

       
$response['articles'][] = $article;
    }
}

$this->ajaxHeaders('application/json');
echo
json_encode($response);
exit;

?>