Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.
Всего найдено: 156
-
01 сентября 2016 г.
-
добавить отдельный шаблон письма для админа в modules\cart\cart.action.phpКодprivate function send_mails($order_id, $params, $payment)
{
Custom::inc('includes/mail.php');
$cart = $this->diafan->_tpl->get('table_mail', 'cart', $this->diafan->_shop->order_get($order_id));
$cart_admin = $this->diafan->_tpl->get('table_admin_mail', 'cart', $this->diafan->_shop->order_get($order_id));
$payment_name = '';
if($payment)
{
$payment_name = $payment["name"];if($payment["payment"] == 'non_cash')
{
$p = DB::query_fetch_array("SELECT code, id FROM {payment_history} WHERE module_name='cart' AND element_id=%d", $order_id);
$payment_name .= ', <a href="'.BASE_PATH.'payment/get/non_cash/ul/'.$p["id"].'/'.$p["code"].'/">'.$this->diafan->_('Счет для юридических лиц', false).'</a>,
<a href="'.BASE_PATH.'payment/get/non_cash/fl/'.$p["id"].'/'.$p["code"].'/">'.$this->diafan->_('Квитанция для физических лиц', false).'</a>';
}
}
$user_email = $this->diafan->_users->mail;
$user_phone = $this->diafan->_users->phone;
$user_fio = $this->diafan->_users->fio;
foreach ($params as $param)
{
if ($param["type"] == "email" && ! empty($_POST["p".$param["id"]]))
{
$user_email = $_POST["p".$param["id"]];
}
if ($param["info"] == "phone" && ! empty($_POST["p".$param["id"]]))
{
$user_phone = $_POST["p".$param["id"]];
}
if ($param["info"] == "name" && ! empty($_POST["p".$param["id"]]))
{
$user_fio = $_POST["p".$param["id"]];
}
}
//send mail admin
$subject = str_replace(array('%title', '%url', '%id', '%message'),
array(TITLE, BASE_URL, $order_id, strip_tags($this->message_admin_param)),
$this->diafan->configmodules('subject_admin', 'shop')
);
$message = str_replace(
array('%title',
'%url',
'%id',
'%message',
'%order',
'%payment',
'%fio'
),
array(
TITLE,
BASE_URL,
$order_id,
$this->message_admin_param,
$cart_admin,
$payment_name,
$user_fio
),
$this->diafan->configmodules('message_admin', 'shop'));
send_mail(
$this->diafan->configmodules("emailconfadmin", 'shop') ? $this->diafan->configmodules("email_admin", 'shop') : EMAIL_CONFIG,
$subject,
$message,
$this->diafan->configmodules("emailconf", 'shop') ? $this->diafan->configmodules("email", 'shop') : ''
);
if(in_array("subscribtion", $this->diafan->installed_modules))
{
if(! empty($user_phone))
{
$phone = preg_replace('/[^0-9]+/', '', $user_phone);
if(! DB::query_result("SELECT id FROM {subscribtion_phones} WHERE phone='%s' AND trash='0'", $user_phone))
{
DB::query("INSERT INTO {subscribtion_phones} (phone, name, created, act) VALUES ('%s', '%h', %d, '1')", $user_phone, $user_fio, time());
}
}
}
//send mail user
if (empty($user_email))
{
return;
}
if(in_array("subscribtion", $this->diafan->installed_modules) && ! empty($_POST['subscribe_in_order']))
{
$row_subscribtion = DB::query_fetch_array("SELECT * FROM {subscribtion_emails} WHERE mail='%s' AND trash='0' LIMIT 1", $user_email);
if(empty($row_subscribtion))
{
$code = md5(rand(111, 99999));
DB::query("INSERT INTO {subscribtion_emails} (created, mail, name, code, act) VALUES (%d, '%s', '%s', '%s', '1')", time(), $user_email, $user_fio, $code);
}
elseif(! $row_subscribtion["act"])
{
DB::query("UPDATE {subscribtion_emails} SET act='1', created=%d WHERE id=%d", $row_subscribtion['id'], time());
}
}
$subject = str_replace(
array('%title', '%url', '%id'),
array(TITLE, BASE_URL, $order_id),
$this->diafan->configmodules('subject', 'shop')
);
$message = str_replace(
array('%title', '%url', '%id', '%message', '%order', '%payment', '%fio'),
array(
TITLE,
BASE_URL,
$order_id,
$this->message_param,
$cart,
$payment_name,
$user_fio
),
$this->diafan->configmodules('message', 'shop')
);
send_mail(
$user_email,
$subject,
$message,
$this->diafan->configmodules("emailconf", 'shop') ? $this->diafan->configmodules("email", 'shop') : ''
);
}
сделать копию modules\cart\views\cart.view.table_mail.php в modules\cart\views\cart.view.table_admin_mail.php
отредактировать шаблон как необходимо.
Во вложении архив с этими модификациями, устанавливать как любое дополнение через темы. Останется только исправить cart.view.table_admin_mail.php. -
-
-
-
15 марта 2016 г.
-
Найти значки соц сетей, например эти, вставить их через визуальный редактор как картинки, сделать ссылками ведущими на соответствующие сети.
-
-
-
-
12 января 2016 г.
-
Выводить в списке так:Код
public function list_variable_update_is($row, $var)
{
return '<div class="update_is">'.($row["update_is"]==1?'включено':'выключено').'</div>';
}
есть ещеКод'fast_edit' => true
Значения для type:- editor
- text
- select
- numtext
- floattext
- string
Когда подключено быстрое редактирование:- numtext
- text
- floattext
- editor
- textarea
- string
-
-
-
-
07 января 2016 г.
-
В свое время добавлял в функцию list_search файл shop.model.php
такой кодКодif(!empty($_GET['article']))// поиск по артикулу
{
$count = DB::query_result(
"SELECT COUNT(DISTINCT s.id) FROM {shop} AS s "
. ($this->diafan->_users->role_id ? " LEFT JOIN {access} AS a ON a.element_id=s.id AND a.module_name='shop' AND a.element_type='element'" : "")
. " WHERE s.[act]='1' AND s.trash='0' and s.id=%d "
." AND s.date_start<=%d AND (s.date_finish=0 OR s.date_finish>=%d)",
intval($_GET['article']), $time, $time
);if($count>0)
$this->diafan->redirect(BASE_PATH.$this->diafan->_route->link($this->diafan->_site->id, intval($_GET['article']), 'shop'), '301');
else
$this->result["error"] = $this->diafan->_('Извините, ничего не найдено.', false);
return $this->result;
}
Поиск по артикулу включен и поиск по нему заменен на редирект в случае если такой идентификатор найден. Не готовый рецепт, но для начала достаточно. -
-
-
-
10 декабря 2015 г.
-
modules/shop/inc/shop.inc.order.php 478 строка
заменить функциюКод
public function send_mail_change_status($order_id, $status)
{
return;
Custom::inc('includes/mail.php');
$email = ($this->diafan->configmodules("emailconf", 'shop')
&& $this->diafan->configmodules("email", 'shop')
? $this->diafan->configmodules("email", 'shop') : '' );
$lang_id = DB::query_result("SELECT lang_id FROM {shop_order} WHERE id=%d", $order_id);if(! $lang_id)
{
$lang_id = $this->diafan->_languages->site;
}
$user_mail = DB::query_result(
"SELECT value FROM {shop_order_param_element} AS e"
." INNER JOIN {shop_order_param} AS p ON p.id=e.param_id AND p.type='email'"
." WHERE e.element_id=%d", $order_id
);
if($user_mail)
{
$status = DB::query_result("SELECT name".$lang_id." FROM {shop_order_status} WHERE id=%d LIMIT 1", $status);
$subject = str_replace(array ( '%title', '%url' ), array ( TITLE, BASE_URL ), $this->diafan->configmodules('subject_change_status', 'shop', 0, $lang_id));
$message = str_replace(array ( '%title', '%url', '%order', '%status' ), array ( TITLE, BASE_URL, $order_id, $status), $this->diafan->configmodules('message_change_status', 'shop', 0, $lang_id));
send_mail($user_mail, $subject, $message, $email);
}
} -
-
-
-
19 октября 2015 г. , редакция: 1445272245
-
Код<?php
/**
* Файл конфигурации
*
* @package DIAFAN.CMS
* @author diafan.ru
* @version 5.4
* @license http://www.diafan.ru/license.html
* @copyright Copyright (c) 2003-2015 OOO «Диафан» (http://www.diafan.ru/)
*/
if (! defined('DIAFAN'))
{
include dirname(__FILE__).'/includes/404.php';
}
//папка, в которой лежит сайт. Для корня домена оставьте пустым
define("REVATIVE_PATH", "");
//название сайта, добавляется к тегу title в конце через дефис
define("TIT1", "site.ru");
//параметры подключения к БД
define("DB_URL", "mysqli://user:pass@localhost/name_database");
//префикс таблиц сайта в БД
define("DB_PREFIX", "diafan_");
//кодировка БД
define("DB_CHARSET", "utf8");
//название папки с визуальным редактором
define("USERFILES", "userfiles");
//версия DIAFAN.CMS
define("VERSION_CMS", "5.4");
//ЧПУ папки панели администрирования
define("ADMIN_FOLDER", "admin");
//мобильная версия true/false (да/нет)
define("MOBILE_VERSION", false);
//demo-версия true/false (да/нет)
define("IS_DEMO", false);
//включить режим разработки, когда на сайт выводятся все возможные ошибки true/false (да/нет)
define("MOD_DEVELOPER", true);
//включить режим технического обслуживания сайта, сайт станет недоступен для пользователей (шаблон оформления сообщения в themes/503.php) true/false (да/нет)
define("MOD_DEVELOPER_TECH", false);
//отключить кеширование true/false (да/нет)
define("MOD_DEVELOPER_CACHE", true);
//выводить запросы к БД на сайте true/false (да/нет)
define("MOD_DEVELOPER_PROFILING", false);
//адрес FTP текущего сайта
define("FTP_HOST", "");
//путь к DIAFAN.CMS, после входа ftp-пользователя, например, www/site.ru/docs/
define("FTP_DIR", "");
//имя FTP-пользователя
define("FTP_LOGIN", "");
//пароль FTP-пользователя
define("FTP_PASSWORD", "");
//главный ящик администратора, владельца сайта, используется по умолчанию во всех уведомлениях
define("EMAIL_CONFIG", "123@gmail.com");
//использовать SMTP-авторизацию при отправке почтовых сообщений true/false (да/нет)
define("SMTP_MAIL", false);
//url почтового сервера (например, smtp.site.ru)
define("SMTP_HOST", "");
//логин почты
define("SMTP_LOGIN", "");
//пароль к почте
define("SMTP_PASSWORD", "");
//порт (по умолчанию 25)
define("SMTP_PORT", "");
//экстремальное кэширование
define("CACHE_EXTREME", false);
//использовать Memcached сервер для кэширования
define("CACHE_MEMCACHED", false);
//хост сервера Memcached
define("CACHE_MEMCACHED_HOST", "");
//порт сервера Memcached
define("CACHE_MEMCACHED_PORT", "");
//часовой пояс сайта, в формате http://www.php.net/manual/en/timezones.php
define("TIMEZONE", "Europe/Moscow");
//конец строки ЧПУ, по умолчанию "/". Можно ввести ".htm"
define("ROUTE_END", "/");
//использовать автоматическое формирование ЧПУ для модулей true/false (да/нет)
define("ROUTE_AUTO_MODULE", true);
//подключить SMS-уведомления true/false (да/нет)
define("SMS", false);
// ключ для сервиса byteHand
define("SMS_KEY", "");
// id в системе byteHand
define("SMS_ID", "");
// подпись для уведомлений
define("SMS_SIGNATURE", "");
//дата последнего экспорта заказов в систему 1С:Предприятие
define("LAST_1C_EXPORT", "");
// разрешить вставлять во frame
define("NO_X_FRAME", false); -
-
-
-
04 октября 2015 г.
-
Шестерню в отдельное изображение и вращаеть его по этому примеру демо
-
-
-
-
20 августа 2015 г.
-
файл modules/ shop/ shop.view.show_search.php 191 строка
нужно заменитьКодcase 'select':
case 'multiple':
echo '
<span class="input-title">'.$row["name"].':</span>';
foreach ($row["select_array"] as $key => $value)
{
echo '<input type="checkbox" id="shop_search_p'.$row["id"].'_'.$key.'" name="p'.$row["id"].'[]" value="'.$key.'"'.(in_array($key, $row["value"]) ? " checked" : '').'>
<label for="shop_search_p'.$row["id"].'_'.$key.'">'.$value.'</label>
<br>';
}
на такой выводКод
case 'select':
case 'multiple':
echo '
<span class="input-title">'.$row["name"].':</span>';
echo '<select name="p'.$row["id"].'[]">';
foreach ($row["select_array"] as $key => $value)
{
echo '<option value="'.$key.'"'.(in_array($key, $row["value"]) ? " selected" : '').'>
'.$value.'</option><br>';
}
echo '</select>'; -
-
-
-
19 августа 2015 г.
-
На этой странице отображаются уже начатые диалоги. А начать можно на странице пользователя, например приходя из комментария или форума. Ссылка примерно такая http://demo.cms.diafan.ru/user/?name=michael
-
-
-
-
14 июля 2015 г.
-
Нужно изменить таблицу картинок, добавив там вариант например "some_tag"
SQL запрос в базу данныхКодALTER TABLE `diafan_images`
CHANGE `element_type` `element_type` enum('element','cat','brand','some_tag') COLLATE 'utf8_general_ci' NOT NULL DEFAULT 'element' COMMENT 'тип элемента модуля' -
-
-
-
30 июня 2015 г.
-
Заменить функцию в news.model.php
Кодpublic function show_block($count, $site_ids, $cat_ids, $sort, $images, $images_variation,$prior)
{
$time = mktime(23, 59, 0, date("m"), date("d"), date("Y"));
if($sort == 'keywords')
{
if($this->diafan->_site->titlemodule)
{
$title = $this->diafan->_site->titlemodule;
}else
{
$title = $this->diafan->_site->name;
}
}
//кеширование
$cache_meta = array(
"name" => "block",
"cat_ids" => $cat_ids,
"site_ids" => $site_ids,
"count" => $count,
"prior" => $prior,
"lang_id" => _LANG,
"time" => $time,
"sort" => $sort.($sort == 'keywords' ? $title : ''),
"images" => $images,
"images_variation" => $images_variation,
"access" => ($this->diafan->configmodules('where_access_element', 'news') || $this->diafan->configmodules('where_access_cat', 'news') ? $this->diafan->_users->role_id : 0),
);
if (! $result = $this->diafan->_cache->get($cache_meta, "news"))
{
$minus = array();
$one_cat_id = count($cat_ids) == 1 && substr($cat_ids[0], 0, 1) !== '-' ? $cat_ids[0] : false;
if(! $this->validate_attribute_site_cat('news', $site_ids, $cat_ids, $minus))
{
return false;
}
$where = "";
if($sort == 'keywords')
{
Custom::inc('includes/searchwords.php');
$searchwords = new Searchwords();
$names = $searchwords->prepare($title);
if(empty($names))
{
return false;
}
foreach ($names as $i => $name)
{
$where .= ($i ? " OR ": " AND (")."LOWER(e.[name]) LIKE '%%".$name."%%'";
}
$where .= ")";
}
if($this->diafan->_site->module == "news" && $this->diafan->_route->show)
{
$where .= " AND e.id<>".$this->diafan->_route->show;
}
$inner = "";
if($cat_ids)
{
$inner = " INNER JOIN {news_category_rel} as r ON r.element_id=e.id"
." AND r.cat_id IN (".implode(',', $cat_ids).")";
}
elseif(! empty($minus["cat_ids"]))
{
$inner = " INNER JOIN {news_category_rel} as r ON r.element_id=e.id"
." AND r.cat_id NOT IN (".implode(',', $minus["cat_ids"]).")";
}
if($site_ids)
{
$where .= " AND e.site_id IN (".implode(",", $site_ids).")";
}
elseif(! empty($minus["site_ids"]))
{
$where .= " AND e.site_id NOT IN (".implode(",", $minus["site_ids"]).")";
}
if($prior!='')
$where .= " AND e.prior = '".$prior."' ";
$result["rows"] = DB::query_range_fetch_all(
"SELECT e.id, e.[name],e.[anons], e.timeedit, e.site_id, e.created FROM {news} AS e"
.$inner
.($this->diafan->configmodules('where_access_element', 'news') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='news' AND a.element_type='element'" : "")
." WHERE e.[act]='1' AND e.trash='0' AND e.created<%d"
.($this->diafan->_site->module == 'news' && $this->diafan->_route->show ? " AND e.id<>".$this->diafan->_route->show : '')
." AND e.date_start<=%d AND (e.date_finish=0 OR e.date_finish>=%d)"
.($this->diafan->configmodules('where_access_element', 'news') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
.$where
." GROUP BY e.id ORDER BY e.prior DESC, e.created DESC, e.id DESC",
$time, $time, $time, 0, $count
);
$this->elements($result["rows"], array("count" => $images, "variation" => $images_variation));
// если категория только одна, задаем ссылку на нее
if (!empty($result["rows"]) && $one_cat_id)
{
$cat = DB::query_fetch_array("SELECT [name], site_id, id FROM {news_category} WHERE id=%d LIMIT 1", $one_cat_id);
$result["name"] = $cat["name"];
$result["link_all"] = $this->diafan->_route->link($cat["site_id"], $cat["id"], 'news', 'cat');
$result["category"] = true;
}
// если раздел сайта только один, то задаем ссылку на него
elseif (!empty($result["rows"]) && count($site_ids) == 1)
{
$result["name"] = DB::query_result("SELECT [name] FROM {site} WHERE id=%d LIMIT 1", $site_ids[0]);
$result["link_all"] = $this->diafan->_route->link($site_ids[0]);
$result["category"] = false;
}
$this->diafan->_cache->save($result, $cache_meta, "news");
}
foreach ($result["rows"] as &$row)
{
$this->prepare_data_element($row);
}
foreach ($result["rows"] as &$row)
{
$this->format_data_element($row);
}
return $result;
}
В news.php заменить функциюКодpublic function show_block($attributes)
{
$attributes = $this->get_attributes($attributes, 'count', 'site_id', 'cat_id', 'sort', 'images', 'images_variation', 'only_module', 'template','prior');
$count = $attributes["count"] ? intval($attributes["count"]) : 3;
$site_ids = explode(",", $attributes["site_id"]);
$cat_ids = explode(",", $attributes["cat_id"]);
$sort = $attributes["sort"] == "date" || $attributes["sort"] == "keywords" ? $attributes["sort"] : "";
$images = intval($attributes["images"]);
$prior = $attributes["prior"];$images_variation = $attributes["images_variation"] ? strval($attributes["images_variation"]) : 'medium';
if ($attributes["only_module"] && ($this->diafan->_site->module != "news" || in_array($this->diafan->_site->id, $site_ids)))
return;
if($attributes["cat_id"] == "current")
{
if($this->diafan->_site->module == "news" && (empty($site_ids[0]) || in_array($this->diafan->_site->id, $site_ids))
&& $this->diafan->_route->cat)
{
$cat_ids[0] = $this->diafan->_route->cat;
}
else
{
$cat_ids = array();
}
}
$result = $this->model->show_block($count, $site_ids, $cat_ids, $sort, $images, $images_variation,$prior);
$result["attributes"] = $attributes;
echo $this->diafan->_tpl->get('show_block', 'news', $result, $attributes["template"]);
}
Использовать так в шаблоне такКод<insert name="show_block" module="news" cat_id="1" prior="1">
-
-
-
-
29 июня 2015 г.
-
Давайте сделаю начало, а аяксовой форму пусть ктонить другой подскажет.
Заменятем registration.view.form.php или делаем новый шаблон с таким содержимымКод
if (!defined('DIAFAN'))
{
include dirname(dirname(dirname(__FILE__))).'/includes/404.php';
}
if (!$result["user"])
{
echo $result["error"];
echo '<div class="block">';echo '<h3><a href="#auth" rel="prettyPhoto">'.$this->diafan->_('Вход на сайт').'</a></h3>';
echo '<div id="auth" style="display:none"><form method="post" action="'.$result["action"].'" class="login">
<input type="hidden" name="action" value="auth">
<input type="text" name="name" placeholder="'.$this->diafan->_('Имя пользователя').'" autocomplete="off">
<input type="password" name="pass" placeholder="'.$this->diafan->_('Пароль').'" autocomplete="off">
<input type="checkbox" id="not_my_computer" name="not_my_computer" value="1">
<label for="not_my_computer">'.$this->diafan->_('Чужой компьютер').'</label>
<input type="submit" value="Войти"><br>';
if (! empty($result["reminding"]))
{
echo '<a href="'.$result["reminding"].'" class="arrow-link black">'.$this->diafan->_('Забыли пароль?').'</a> ';
}
if(! empty($result["registration"]))
{
echo '<a href="'.$result["registration"].'" class="arrow-link black">'.$this->diafan->_('Регистрация').'</a>';
}
echo '</form>';
if(! empty($result["use_loginza"]))
{
$this->diafan->_site->js_view[] = 'http://loginza.ru/js/widget.js';
echo '<br><a href="https://loginza.ru/api/widget?token_url='.urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']).'" class="loginza">
<img src="http://loginza.ru/img/providers/yandex.png" alt="Yandex" title="Yandex">
<img src="http://loginza.ru/img/providers/google.png" alt="Google" title="Google Accounts">
<img src="http://loginza.ru/img/providers/vkontakte.png" alt="Вконтакте" title="Вконтакте">
<img src="http://loginza.ru/img/providers/mailru.png" alt="Mail.ru" title="Mail.ru">
<img src="http://loginza.ru/img/providers/twitter.png" alt="Twitter" title="Twitter">
<img src="http://loginza.ru/img/providers/loginza.png" alt="Loginza" title="Loginza">
<img src="http://loginza.ru/img/providers/myopenid.png" alt="MyOpenID" title="MyOpenID">
<img src="http://loginza.ru/img/providers/openid.png" alt="OpenID" title="OpenID">
<img src="http://loginza.ru/img/providers/webmoney.png" alt="WebMoney" title="WebMoney">
</a><br><br>';
}
echo '</div></div>';
}
else
{
echo '<div class="block profile-block">';
echo '<h3>'.$this->diafan->_('Профиль').'</h3>';
if (!empty($result["avatar"]))
{
echo '<img src="'.BASE_PATH.USERFILES.'/avatar/'.$result["name"].'.png" width="'.$result["avatar_width"].'" height="'.$result["avatar_height"].'" alt="'.$result["fio"].' ('.$result["name"].')" class="avatar profile-hello-avatar">';
}
echo '<div class="profile-hello-text">
'.$this->diafan->_('Здравствуйте').',<br>';
echo $result["fio"];
echo '!
</div>';
echo '<ul class="menu">';
if($result['userpage'])
{
echo '<li><a href="'.$result['userpage'].'">'.$this->diafan->_('Личная страница').'</a></li>';
}
if(! empty($result["usersettings"]))
{
echo '<li><a href="'.$result["usersettings"].'">'.$this->diafan->_('Настройки').'</a></li>';
}
if (!empty($result['messages']))
{
echo '<li><a href="'.$result['messages'].'">'.$result['messages_name'];
if($result['messages_unread'])
{
echo ' (<b>'.$result['messages_unread'].'</b>)';
}
echo '</a></li>';
}
echo '</ul>';
echo '<form action="'.BASE_PATH_HREF.'logout/?'.rand(0, 99999).'" method="POST">
<input type="submit" value="'.$this->diafan->_('Выйти', false).'">
</form>';
echo '</div>';
} -
-
-
-
25 июня 2015 г.
-
Удалили по причине тормозов, вот тут было предложение И дополнение возвращющее данный функционал. Во вложение его же приложил, обновленное дополнение не прошло еще модерацию.
-
-
-
-
25 июня 2015 г.
-
УСТАНОВКА:
Создайте тему в интерфейсе «Темы и дизайн» и импортируйте туда скачанный архив. При создании отметьте опцию «Применить». Импортировать можно в уже существующую примененную тему.
В обновлении исправление тормозов.. странная ошибка кастомизации. Если использовать after при кастомизации именно этой функции жутко тормзит сайт, 6 секунд загружается. Пришлось заменять целиком функцию с помощью replace. -
-
-
-
25 июня 2015 г.
-
По основной категорииКод
INSERT INTO `diafan_shop_param_element` (`value1`, `param_id`, `element_id`, `trash`)
select '<номер значения>', <номер параметра>, id, '0' from diafan_shop where cat_id=<номер категории> and trash='0';
По дополнительным категориям и по основнойКод
INSERT INTO `diafan_shop_param_element` (`value1`, `param_id`, `element_id`, `trash`)
select '<номер значения>', <номер параметра>, element_id, '0' from diafan_shop_category_rel where cat_id=<номер категории> and trash='0';
Номер значения смотри тут diafan_shop_param_select по номеру параметра -
-
-
-
25 мая 2015 г.
-
Добавить динамический блок
1) создать динамический блок, в нем указать модуль "новости" (вкладка динамические блоки в страницах сайта)
2) вставить шаблонный тег <insert name="show_dynamic" module="site" id="000"> в шаблон site.php где 000 это номер динамического блока -
-
-
-
19 мая 2015 г. , редакция: 1432055045
-
Добавляем новую операцию в shop.admin.phpКод/**
* @var array дополнительные групповые операции
*/
public $group_action = array(
"group_no_buy" => array('name' => "Товар временно отсутствует", 'module' => 'shop'),
"group_not_no_buy" => array('name' => "Товар в наличии", 'module' => 'shop'),
"group_hit" => array('name' => "Хит", 'module' => 'shop'),
"group_not_hit" => array('name' => "Не хит", 'module' => 'shop'),
"group_action" => array('name' => "Акция", 'module' => 'shop'),
"group_not_action" => array('name' => "Не акция", 'module' => 'shop'),"group_new" => array('name' => "Новинка", 'module' => 'shop'),
"group_not_new" => array('name' => "Не новинка", 'module' => 'shop'),
"group_yandex" => array('name' => "Параметры товара для yandex market", 'module' => 'shop'),
);
Добавляем обработку в shop.admin.action.php
Код
switch ($_POST["action"])
{
case 'group_yandex':
$this->group_yandex();
break;
......
Добавляем там же метод в класс
Код
private function group_yandex()
{
if ( ! $this->diafan->configmodules("yandex"))
{
return;
}
if(! empty($_POST["ids"]))
{$ids = array();
foreach ($_POST["ids"] as $id)
{
$id = intval($id);
if($id)
{
$ids[] = $id;
}
}
$yandex='typePrefix='.str_replace("\n", '', $this->diafan->filter($_POST, "string", "yandex_typePrefix"))."\n"
.'vendor='.str_replace("\n", '', $this->diafan->filter($_POST, "string", "yandex_vendor"))."\n"
.'model='.str_replace("\n", '', $this->diafan->filter($_POST, "string", "yandex_model"))."\n"
.'vendorCode='.str_replace("\n", '', $this->diafan->filter($_POST, "string", "yandex_vendorCode"))."\n"
.'sales_notes='.str_replace("\n", '', $this->diafan->filter($_POST, "string", "yandex_sales_notes"))."\n"
.'manufacturer_warranty='.str_replace("\n", '', $this->diafan->filter($_POST, "string", "yandex_manufacturer_warranty"))."\n"
.'country_of_origin='.str_replace("\n", '', $this->diafan->filter($_POST, "string", "yandex_country_of_origin"))."\n"
.'bid='.$this->diafan->filter($_POST, "string", "yandex_bid")."\n"
.'cbid='.$this->diafan->filter($_POST, "string", "yandex_cbid");
DB::query("UPDATE {shop} SET yandex='%s' WHERE id IN (%s)",$yandex, implode(",", $ids));
$this->diafan->_cache->delete("", "shop");
}
}
В shop.admin.php добавляем перегруженную функцию group_action_panel_filter
Код/**
* Выводит фильтры для панели групповых операций
*
* @param string $value последнее выбранное значение в списке групповых операций
* @return string
*/
public function group_action_panel_filter($value)
{
// все стандартные фильтры
$dop=parent::__call('group_action_panel_filter', array($value));
$dop .= '<div class="dop_group_yandex hide">';
$dop .= $this->diafan->_('Основная ставка').':<br>
<input type="text" maxLength="70" name="yandex_bid" size="40" value=""> '.$this->diafan->help('Целое положительное значение. Например: 21, что соответствует ставке 0,21 у.е. Если параметр не задан, то задается настройками модуля.')
.'<br>'
. $this->diafan->_('Ставка для карточек').':<br>
<input type="text" maxLength="70" name="yandex_cbid" size="40" value=""> '.$this->diafan->help('Целое положительное значение. Например: 21, что соответствует ставке 0,21 у.е. Если параметр не задан, то задается настройками модуля.')
.'<br>'
. $this->diafan->_('Группа товаров / категория').':<br>
<input type="text" maxLength="70" name="yandex_typePrefix" size="40" value=""><br>'
. '<br>'.$this->diafan->_('Производитель').':<br>
<input type = "text" maxLength="70" name="yandex_vendor" size="40" value=""><br>'
. $this->diafan->_('Модель').':<br>
<input type = "text" maxLength="70" name="yandex_model" size="40" value=""><br>'
. $this->diafan->_('Код товара (указывается код производителя)').':<br>
<input type = "text" maxLength="70" name="yandex_vendorCode" size="40" value=""><br>'
. $this->diafan->_('Отличие товара от других, или акции магазина (кроме скидок)').':<br>
<input type = "text" maxLength="50" name="yandex_sales_notes" size="40" value=""><br>'
. $this->diafan->_('Официальная гарантия производителя').':
<input type = "checkbox" name="yandex_manufacturer_warranty" value="1"><br><br>'
. $this->diafan->_('Страна производства товара').':<br>
<input type = "text" maxLength="70" name="yandex_country_of_origin" size="40" value="">
';
$dop .= "</div>";
return $dop;
}
PS код не проверял, если найдете ошибки - исправлю. -
-
-
Новости
-
18 июня
-
В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
-
24 апреля
-
В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
-
12 января
-
После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке.
Блоги
-
24.04.2024
-
Выпустили новую сборку DIAFAN.CMS 7.1.4.
Блоги
-
12.01.2024
-
В данном руководстве познакомим вас с панелью управления DIAFAN.CMS