У меня есть функция, и моя функция работает хорошо, только я этого не понимаю:
<?php // $category output is 23 when I echo $category; and there is no records ->where('d.category_id = ' . (int) $category) // also this method not work ->where('d.category_id = ' . $category) // but this method works ->where('d.category_id = 23') ?>
это полный код:
$category = $params->get('title'); //echo $category; public static function getSuggested($category) { $db = JFactory::getDBO(); $query = $db->getQuery(true); //$now = $jdate->toSql(); //$nullDate = $db->quote($db->getNullDate()); $query->select('d.*'); $query->from('#__deals_deals AS d'); $query->select('c.title AS category_title'); $query->join('LEFT', '#__deals_categories AS c ON c.id = d.category_id') ->where('(d.is_market = 0 AND d.state = 1)','AND') ->where('d.category_id = 23') ->order('id DESC'); //$query->where('(d.publish_up = ' . $nullDate . ' OR d.publish_up <= ' . $query->quote($now) . ')'); //$query->where('(d.publish_down = ' . $nullDate . ' OR d.publish_down >= ' . $query->quote($now) . ')'); $db->setQuery($query,0,10); $results = $db->loadObjectList(); return $results; }
эта функция работает только для получения данных категории. это модуль joomla, и эта функция находится в файле helper.php в файле default.php. Я получаю некоторые данные из этой функции.
Я нашел решение:
Добавить в mod_spected_deals.php
$category = (int) $params->get('fieldvalue');
тогда:
$results = modsuggested_dealsHelper::getSuggested($category);
Я нашел soluton для этого вопроса:
в моей функции I Добавить параметр $ category
public static function getSuggested($category) {...}
в mod_spected_deals.php Я добавляю код:
$category = $params->get('title');
то это код (он уже был здесь).
$results = modsuggested_dealsHelper::getSuggested($category);
Ошибка, которую вы делаете, заключается в том, что вы определяете значение переменной вне функции, но вызываете переменную внутри нее. Если ваш класс не является абстрактным классом, вы можете использовать категорию $this->category
или если ваш класс является абстрактным классом, то используйте переменную $ category внутри функции, подобной этой
public static function getSuggested() { $module = JModuleHelper::getModule('mod_yourmodulename'); $catid = new JRegistry($module->params); $category = (int) $catid['title']; $db = JFactory::getDBO(); $query = $db->getQuery(true); //$now = $jdate->toSql(); //$nullDate = $db->quote($db->getNullDate()); $query->select('d.*'); $query->from('#__deals_deals AS d'); $query->select('c.title AS category_title'); $query->join('LEFT', '#__deals_categories AS c ON c.id = d.category_id') ->where('(d.is_market = 0 AND d.state = 1)','AND') ->where('d.category_id = '.$category) ->order('id DESC'); //$query->where('(d.publish_up = ' . $nullDate . ' OR d.publish_up <= ' . $query->quote($now) . ')'); //$query->where('(d.publish_down = ' . $nullDate . ' OR d.publish_down >= ' . $query->quote($now) . ')'); $db->setQuery($query,0,10); $results = $db->loadObjectList(); return $results; }