/var/www/albero/application/models/NewsModel.php
<?php
namespace App\Model;
use App\Model;
use Own\EnvLoader;
class NewsModel extends Model
{
public function getNewsByCategory(int $category_id, int $limit = 0, int $currentNewsId = 0): array
{
if ($this->lang === 'ru') {
$filtersIsTranslated = ' AND sn.isTranslated = 1';
} else {
$filtersIsTranslated = '';
}
if ($currentNewsId > 0) {
$filterByCurrentNews = ' AND sn.id <> ' . $currentNewsId;
} else {
$filterByCurrentNews = '';
}
// For promo
if ($category_id == 1) {
$sortingNews = " ORDER BY IF(DATE(sn.disable) < CURRENT_DATE(), 0, 1) DESC, sn.priority ASC, sn.created DESC";
$additionalFieldsForPromo = ", DATEDIFF(sn.disable,CURRENT_DATE()) AS days_to_left,
(
CASE
WHEN DATE(sn.disable) < CURRENT_DATE() THEN 'completed'
WHEN DATEDIFF(sn.disable, sn.created) >= 200 THEN 'unlimited'
ELSE 'new'
END
) AS promo_status";
} else {
$sortingNews = " ORDER BY sn.created DESC";
$additionalFieldsForPromo = '';
}
Arguments
"App\Model\NewsModel::getNewsByCategory(): Argument #1 ($category_id) must be of type int, null given, called in /var/www/albero/application/models/NewsModel.php on line 82"
/var/www/albero/application/models/NewsModel.php
$n['path_to_logo'] = EnvLoader::getEnv('IMAGES_URL') . '/images/news/' . $n['logo'];
} else {
$n['path_to_logo'] = EnvLoader::getEnv('IMAGES_URL') . '/900x225/images/news/' . $n['logo'];
}
}
return $news;
}
public function getNewsById(int $newsId): array
{
$SQL_TEXT = <<<sql
SELECT *
FROM shop_news sn
WHERE id = $newsId;
sql;
$news = $this->mcs->getRowSQL($SQL_TEXT, 'getNewsById');
$news['path_to_logo'] = EnvLoader::getEnv('IMAGES_URL') . '/images/news/' . $news['logo'];
$news['additional_news'] = $this->getNewsByCategory($news['category'], 4, $newsId);
foreach ($news['additional_news'] as $k => $nad) {
if ($nad['id'] == $newsId) {
unset($news['additional_news'][$k]);
break;
}
}
return $news;
}
public function getNewsByIds(string $newsIds): array
{
if (empty($newsIds)) {
return [];
}
$newsIds = $this->db->escape_str($newsIds);
$SQL_TEXT = <<<sql
SELECT *
/var/www/albero/application/controllers/News.php
private newsModel $nm;
public function __construct()
{
parent::__construct();
$this->nm = new newsModel();
$this->pageType = 'news';
}
public function index()
{
$categoryNewsId = 2;
$this->data['news'] = $this->nm->getNewsByCategory($categoryNewsId);
$this->page = 'pageNews/news';
$this->render();
}
public function story(string $newsUrl, int $newsId)
{
$news = $this->nm->getNewsById($newsId);
$this->translater->translate($news);
$this->data['news'] = $news;
if ($this->data['news']['url'] !== $newsUrl) {
redirect(base_url('/news/story/' . $this->data['news']['url'] . '_' . $newsId), 'auto', 301);
}
$this->meta($news);
$this->data['promotions'] = $this->nm->getNewsByCategory(1);
$this->page = 'pageNews/news_one';
$this->render();
}
private function meta(array $news)
{
$enc = 'UTF-8';
$title = mb_strtoupper(mb_substr($news['name'], 0, 1, $enc), $enc) . mb_substr($news['name'], 1, mb_strlen($news['name'], $enc), $enc);
$this->data['h1'] = $title;
if(!empty($news['meta_title'])) $this->data['title'] = $this->data['meta_title'] = $news['meta_title'];
else $this->data['title'] = $this->data['meta_title'] = $title . ' ' . l('news_title');
/var/www/albero/system/core/CodeIgniter.php
$scalarTypes = ['int', 'bool', 'string'];
try {
$newParams = [];
$refMEthod = new ReflectionMethod($CI, $method);
foreach ($refMEthod->getParameters() as $i=>$parameter) {
$type = $parameter->getType()->getName();
if(!in_array($type, $scalarTypes)) {
$newParams[$parameter->getPosition()] = $containerBuilder->get($type);
} else {
$newParams[] = array_shift($params);
}
}
if(!empty($params)) foreach ($params as $param) $newParams[] = $param;
$params = $newParams;
} catch (ReflectionException $e) {
show_error($e->getMessage());
}
call_user_func_array(array(&$CI, $method), $params);
// Mark a benchmark end point
$BM->mark('controller_execution_time_( ' . $class . ' / ' . $method . ' )_end');
/*
* ------------------------------------------------------
* Is there a "post_controller" hook?
* ------------------------------------------------------
*/
$EXT->call_hook('post_controller');
/*
* ------------------------------------------------------
* Send the final rendered output to the browser
* ------------------------------------------------------
*/
if ($EXT->call_hook('display_override') === FALSE) {
$OUT->_display();
}
/var/www/albero/public/index.php
);
}
else
{
header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
echo 'Your view folder path does not appear to be set correctly. Please open the following file and correct this: '.SELF;
exit(3); // EXIT_CONFIG
}
define('VIEWPATH', $view_folder.DIRECTORY_SEPARATOR);
/*
* --------------------------------------------------------------------
* LOAD THE BOOTSTRAP FILE
* --------------------------------------------------------------------
*
* And away we go...
*/
require_once BASEPATH.'core/CodeIgniter.php';
Arguments
"/var/www/albero/system/core/CodeIgniter.php"