Народ, спасайте. Есть 1 таблица компонента с полями city и pokaz. Где city это множественный селект, где значения поле, например, 1 или 1,2. (Неправильно в 1 табл, знаю, но переписывать компонент времени нет) и поле pokaz оно может быть либо, например, segodnya или zavtra. Это из-за того, что товар может быть в разных городах и может быть сегодня или завтра, грубо говоря.
Запрос на простом php паолучается $result=mysql_query('SELECT * FROM `skb01_cin_films` WHERE city REGEXP "(^|[[:space:][:punct:]])1([[:space:][:punct:]]|$)" AND pokaz=1');
Попробовал написать модуль с полями. Сделал 2 поля cityfilm текстовое и pokazfilm список с 2 значениями. Но ничего не выводит.
файл XML
<files>
<filename>mod_films.xml</filename>
<filename module="mod_films">mod_films.php</filename>
<filename>helper.php</filename>
<filename>index.html</filename>
<folder>tmpl</folder>
<folder>assets</folder>
<folder>language</folder>
</files>
<languages folder="language">
<language tag="ru-RU">ru-RU.mod_films.ini</language>
<language tag="ru-RU">ru-RU.mod_films.sys.ini</language>
</languages>
<config>
<fields name="params">
<fieldset name="basic">
<field name="cityfilm" type="text" default="" label="MOD_FILMS_FIELD_CITY_LABEL" description="MOD_FILMS_FIELD_CITY_DESC" filter="raw" />
<field name="pokazfilm" type="list" label="MOD_FILMS_FIELD_POKAZ_LABEL" description="MOD_FILMS_FIELD_POKAZ_DESC">
<option value="nowfi">MOD_FILMS_FIELD_POKAZ_TODAY</option>
<option value="soonfi">MOD_FILMS_FIELD_POKAZ_SOON</option>
</field>
</fieldset>
<fieldset
name="advanced">
<field
name="layout"
type="modulelayout"
label="JFIELD_ALT_LAYOUT_LABEL"
description="JFIELD_ALT_MODULE_LAYOUT_DESC" />
<field
name="moduleclass_sfx"
type="textarea" rows="3"
label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL"
description="COM_MODULES_FIELD_MODULECLASS_SFX_DESC" />
<field
name="cache"
type="list"
default="1"
label="COM_MODULES_FIELD_CACHING_LABEL"
description="COM_MODULES_FIELD_CACHING_DESC">
<option
value="1">JGLOBAL_USE_GLOBAL</option>
<option
value="0">COM_MODULES_FIELD_VALUE_NOCACHING</option>
</field>
<field
name="cache_time"
type="text"
default="900"
label="COM_MODULES_FIELD_CACHE_TIME_LABEL"
description="COM_MODULES_FIELD_CACHE_TIME_DESC" />
<field
name="cachemode"
type="hidden"
default="static">
<option
value="static"></option>
</field>
</fieldset>
</fields>
</config>
</extension>
файл default
<?php
defined('_JEXEC') or die;
?>
<?php if (!empty($name)) : ?>
<ul class="films><?php echo $moduleclass_sfx ?>">
<?php foreach ($names as $name) : ?>
<li>
<?php echo $name->name; ?>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
файл helper
<?php
defined('_JEXEC') or die;
class ModFilmsHelper
{
public static function getFilms($params)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('*')
->order('id DESC')
->from('#__cin_films')
->where('city REGEXP "(^|[[:space:][:punct:]])$cityfilm([[:space:][:punct:]]|$)" AND pokaz=$pokazfilm');
$films = JFactory::getFilms();
$db->setQuery($query, 0, $params->get('cityfilm'));
$db->setQuery($query, 0, $params->get('pokazfilm'));
$result = $db->loadObjectList();
return (array) $result;
}
}
файл модуль php
<?php
defined('_JEXEC') or die;
require_once __DIR__ . '/helper.php';
$cityfilm = $params->get('cityfilm');
$pokazfilm = $params->get('pokazfilm');
$moduleclass_sfx = htmlspecialchars($params->get('moduleclass_sfx'));
require JModuleHelper::getLayoutPath('mod_films', $params->get('layout', 'default'));