Мне кажется для вас быстрее - для проверки на данном хостинге развернуть дефолтный дистрибутив.
В админку тоже не заходит?
Error log гляньте тоже
Кеш чистили?
Вам нужно отредатировать файлы тем в папке themes. Там где-нибудь внизу перед закрывающем тегом body вставить java script код, который скопируете в Вашем онлайн консультанте.
К "простым" страницам которые без модуля рейтинг подключить увы нельзя (без сильно квалифицированного вмешательства).
Denis (Drachoon) правильно говорит. Скорее всего оцениваемые страницы у вас в рамках какого-то логически общего раздела сайта. Тогда можно новостями или статьями реализовать. Выпилить из шаблона все не нужное и будет норм.
Без танцев видимо не обойтись. Пилите файл feedback.action.php - и там где нужный кусочек который делает send_mail - делайте include_once plugins/class.phpmailer.php - и уже его методами формируйте письмо с аттачем
Здравствуйте коллеги! Немножно страдает матчасть на тему кеширования. Вот у нас в хтаксессе следующая конструкция
Код
<IfModule mod_expires.c>
<filesMatch ".(flv|woff|woff2|eot|svg|otf|ttf|gif|jpg|jpeg|png|ico|swf|js|css|pdf|ico)$">
ExpiresActive On
ExpiresDefault "access plus 11 month"
</filesMatch>
</IfModule>
Понимаю что звучит вопрос достаточно глупо.
Это значит, что следующие типы файлов закешируются в браузере на 11 мес у клиента? А если я CSS изменю, как веб сервер и клиентский браузер узнают что пора бы его в кеше обновить?
{SHOP_PARAM} - Хаьки
В {SHOP_PARAM_SELECT} - сами значения харьков типа "список"
В {SHOP_PARAM_ELEMENT} - строковые значения харьков а так же ID харьков типа список из {SHOP_PARAM_SELECT}
Если не очень дружите с SQL могу написать готовый запрос. Удачи!
Как вариант можно в шаблон формы захардкодить hidden поле и туда в шаблоне выводить какую то метку формы, а в обработчике проверять эту метку и делать редирект в зависимости от этой метки. Например как-то в этом роде:
Если в индексе УЖЕ страницы без закрывающего слеша - то в настройках админки отключить атоматическое добавление закрывающего слеша и в .htaccess добавить редирект со страниц с зарывающим слешом, на те-же но без закрывающего.
Вместо ORDER - идентификатор который сами сочиняете, при создании цели в метрике.
Только я файл неправильно сказал. Шаблон корзины в папке /modules/cart/views
Как добавить к шаблонному тегу show_block module="shop" аргумент, чтобы он выводил только товары, которые есть в наличии, про том, что в настройках товара не стоит галка "показывать только те товары что есть в наличии" т.е. в листинге товаров у нас будут все товары, а show_block - можно будет настроить чтобы она показывала только то, что есть в наличии?
Допустим у нас будет что-то вроде <insert name="show_block" module="shop" images="1" count="4" sort="rand" in_stock="true">
Где *in_stock="true"* - выводить только то что есть в наличии.
Правим любо используем частичную кастомизацию файла */modules/shop/shop.php*
В нем правим функцию *public function show_block* где добавляем булевый аргумент in_stock. Заменяем первый блок кода на:
теперь функция может принимать аргумент in_stock и мы идем править модельку shop.model.php Там правим public function show_block Делаем чтобы она сама могла принимать наш новый аргумент in_stock:
Код
public function show_block($count, $site_ids, $cat_ids, $brand_ids, $sort, $images, $images_variation, $param, $hits_only, $action_only, $new_only, $discount_only, $tag, $in_stock)
Далее правим коды mysql запросов:
ищем
Код
$max_count = DB::query
и правим блок кода на:
Код
$max_count = DB::query_result("SELECT COUNT(DISTINCT e.id) FROM {shop} as e"
.$inner
.($discount_only ? " INNER JOIN {shop_price} AS pr ON pr.good_id=e.id AND pr.trash='0'"
." AND pr.date_start<=".time()." AND (pr.date_start=0 OR pr.date_finish>=".time().")"
." AND pr.currency_id=0"
." AND pr.role_id".($this->diafan->_users->role_id ? " IN (0,".$this->diafan->_users->role_id.")" : "=0")
." AND (pr.person='0'".($this->person_discount_ids ? " OR pr.discount_id IN(".implode(",", $this->person_discount_ids).")" : "").")"
: '')
.($this->diafan->configmodules('where_access_element', 'shop') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='shop' AND a.element_type='element'" : "")
.($this->diafan->configmodules('hide_missing_goods', 'shop') && $this->diafan->configmodules('use_count_goods', 'shop') || $in_stock ? " INNER JOIN {shop_price} AS prh ON prh.good_id=e.id AND prh.count_goods>0" : "")
." WHERE e.[act]='1' AND e.trash='0'"
.$where
.($this->diafan->_site->module == 'shop' && $this->diafan->_route->show ? " AND e.id<>".$this->diafan->_route->show : '')
.($hits_only ? " AND e.hit='1' " : "")
.($action_only ? " AND e.action='1' " : "")
.($new_only ? " AND e.new='1' " : "")
.($discount_only ? " AND pr.discount_id>0" : "")
.($this->diafan->configmodules('where_period_element', 'shop') ? " AND e.date_start<=".$time." AND (e.date_finish=0 OR e.date_finish>=".$time.")" : '')
.($this->diafan->configmodules('where_access_element', 'shop') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
.($this->diafan->configmodules('hide_missing_goods', 'shop') ? " AND e.no_buy='0'" : ""),
$values
);
далее ищем место где начинается
Код
foreach ($rands as $rand)
{
$rows = DB::query_fetch_all..`
и правим блок кода чтобы получилось:
Код
$rows = DB::query_fetch_all("SELECT e.id, e.[name], e.[anons], e.timeedit, e.site_id, e.brand_id, e.no_buy, e.article,
e.[measure_unit], e.hit, e.new, e.action, e.is_file".($sort == "sale" ? ", COUNT(g.id) AS count_sale" : "")."
FROM {shop} AS e"
. ($sort == "sale" ? " INNER JOIN {shop_order_goods} AS g ON g.good_id=e.id AND g.trash='0'" : '')
. ($sort == "price" || $discount_only ? " INNER JOIN {shop_price} AS pr ON pr.good_id=e.id AND pr.trash='0'"
." AND pr.date_start<=".time()." AND (pr.date_start=0 OR pr.date_finish>=".time().")"
." AND pr.currency_id=0"
." AND pr.role_id".($this->diafan->_users->role_id ? " IN (0,".$this->diafan->_users->role_id.")" : "=0")
." AND (pr.person='0'".($this->person_discount_ids ? " OR pr.discount_id IN(".implode(",", $this->person_discount_ids).")" : "").")"
: '')
.$inner
.($this->diafan->configmodules('where_access_element', 'shop') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='shop' AND a.element_type='element'" : "")
.($this->diafan->configmodules('hide_missing_goods', 'shop') && $this->diafan->configmodules('use_count_goods', 'shop') || $in_stock ? " INNER JOIN {shop_price} AS prh ON prh.good_id=e.id AND prh.count_goods>0" : "")
." WHERE e.[act]='1' AND e.trash='0'"
.($this->diafan->_site->module == 'shop' && $this->diafan->_route->show ? " AND e.id<>".$this->diafan->_route->show : '')
.($hits_only ? " AND e.hit='1' " : "")
.($action_only ? " AND e.action='1' " : "")
.($new_only ? " AND e.new='1' " : "")
.($discount_only ? " AND pr.discount_id>0" : "")
.$where
.($this->diafan->configmodules('where_period_element', 'shop') ? " AND e.date_start<=".$time." AND (e.date_finish=0 OR e.date_finish>=".$time.")" : '')
.($this->diafan->configmodules('where_access_element', 'shop') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
.($this->diafan->configmodules('hide_missing_goods', 'shop') ? " AND e.no_buy='0'" : "")
." GROUP BY e.id"
.$order
.' LIMIT '
.($sort == "rand" ? $rand : 0).', '
.($sort == "rand" ? 1 : $count), $values);
$this->result["rows"] = array_merge($this->result["rows"], $rows);
В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке.