Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.
Всего найдено: 1417
-
13 октября 2016 г. , редакция: 1476345591
-
Эхх. Что с Вами будешь делать. Думал Максим (web-prosto) отпишется, что решил.Наверно забыл.ЦитатаЛадно, а то уже от темы отошли тут... пойду дальше пытаться разбираться... когда решится задача, то отпишусь и тут...
Продолжаю. Берем файл clauses.model.php, ищем функциюи излагаем ее вот такКодpublic function show_block($count, $site_ids, $cat_ids, $sort, $images, $images_variation, $tag){ ... }
Кодpublic function show_block($count, $site_ids, $cat_ids, $sort, $images, $images_variation, $tag)
{
$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;
}
}
$where = '';
//кеширование
$cache_meta = array(
"name" => "block",
"cat_ids" => $cat_ids,
"site_ids" => $site_ids,
"count" => $count,
"lang_id" => _LANG,
"time" => $time,
"sort" => $sort.($sort == 'keywords' ? $title : ''),
"current" => ($this->diafan->_site->module == 'clauses' && $this->diafan->_route->show ? $this->diafan->_route->show : ''),
"images" => $images,
"images_variation" => $images_variation,
"access" => ($this->diafan->configmodules('where_access_element', 'clauses') || $this->diafan->configmodules('where_access_cat', 'clauses') ? $this->diafan->_users->role_id : 0),
"tag" => $tag,
);
if ($sort == "rand" || ! $result = $this->diafan->_cache->get($cache_meta, "clauses"))
{
$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('clauses', $site_ids, $cat_ids, $minus))
{
return false;
}
$inner = "";
if($cat_ids)
{
$inner = " INNER JOIN {clauses_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 {clauses_category_rel} as r ON r.element_id=e.id"
." AND r.cat_id NOT IN (".implode(',', $minus["cat_ids"]).")";
}
$where = '';
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($sort == 'keywords')
{
Custom::inc('includes/searchwords.php');
$searchwords = new Searchwords();
$searchwords->max_length = $this->diafan->configmodules("max_length", "search");
$names = $searchwords->prepare($title);
if(empty($names))
{
return false;
}
$keys = DB::query_fetch_key_value("SELECT id, keyword FROM {search_keywords} WHERE keyword IN ('".implode("', '", $names)."')", "keyword", "id");
if(count($keys) < count($names))
{
return;
}
$inner .= " INNER JOIN {search_results} AS sr ON sr.element_id=e.id AND sr.table_name='clauses'";
$inner .= " INNER JOIN {search_index} AS i ON sr.id=i.result_id AND i.keyword_id IN ('".implode("', '", $keys)."') AND i.rating=0";
}
if($this->diafan->_site->module == 'clauses' && $this->diafan->_route->show)
{
$where .= $where.' AND e.id<>'.$this->diafan->_route->show;
}
if($tag)
{
$t = DB::query_fetch_array("SELECT id, [name] FROM {tags_name} WHERE [name]='%s' AND trash='0'", $tag);
if(! $tag)
{
return false;
}
$inner .= " INNER JOIN {tags} AS t ON t.element_id=e.id AND t.element_type='element' AND t.module_name='clauses' AND t.tags_name_id=".$t["id"];
}
if ($sort == "rand")
{
$max_count = DB::query_result(
"SELECT COUNT(DISTINCT e.id) FROM {clauses} as e"
.$inner
.($this->diafan->configmodules('where_access_element', 'clauses') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='clauses' AND a.element_type='element'" : "")
." WHERE e.[act]='1' AND e.trash='0' AND e.created<%d"
.($this->diafan->_site->module == 'clauses' && $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)"
.$where
.($this->diafan->configmodules('where_access_element', 'clauses') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : ''),
$time, $time, $time
);
$rands = array();
for ($i = 1; $i <= min($max_count, $count); $i++)
{
do
{
$rand = mt_rand(0, $max_count - 1);
}
while (in_array($rand, $rands));
$rands[] = $rand;
}
}
else
{
$rands[0] = 1;
}
$result["rows"] = array();
foreach ($rands as $rand)
{
switch($sort)
{
case "date":
$order = ' ORDER BY e.created DESC, e.id DESC';
break;
case "rand":
$order = '';
break;
default:
$order = ' ORDER BY e.sort DESC, e.id DESC';
break;
}
$rows = DB::query_range_fetch_all(
"SELECT e.id, e.[name],e.[anons], e.timeedit, e.site_id, e.created FROM {clauses} AS e"
.$inner
.($this->diafan->configmodules('where_access_element', 'clauses') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='clauses' AND a.element_type='element'" : "")
." WHERE e.[act]='1' AND e.trash='0' AND e.created<%d"
.($this->diafan->_site->module == 'clauses' && $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)"
.$where
.($this->diafan->configmodules('where_access_element', 'clauses') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
." GROUP BY e.id"
.$order,
$time, $time, $time,
$sort == "rand" ? $rand : 0,
$sort == "rand" ? 1 : $count
);
$result["rows"] = array_merge($result["rows"], $rows);
}
$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 {clauses_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"], 'clauses', '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;
}
if(! empty($result["rows"]) && $tag)
{
$result["name"] .= ': '.$t["name"];
}
//сохранение кеша
if ($sort != "rand")
{
$this->diafan->_cache->save($result, $cache_meta, "clauses");
}
}
foreach ($result["rows"] as &$row)
{
$this->prepare_data_element($row);
}
foreach ($result["rows"] as &$row)
{
$this->format_data_element($row);
}
// это то, что добавили
foreach ($result["rows"] as $key => $r_w)
$result["rows"][$key]["counter"] = $this->get_counter_view($r_w["id"]);
return $result;
}
Можно продолжить теперь не только для шаблонного тега статей, но и для вывода похожих статей. Находим функциюи излагаем ее вот такКодpublic function show_block_rel($count, $images, $images_variation){ ... }
Кодpublic function show_block_rel($count, $images, $images_variation)
{
$time = mktime(23, 59, 0, date("m"), date("d"), date("Y"));
//кеширование
$cache_meta = array(
"name" => "block_rel",
"count" => $count,
"lang_id" => _LANG,
"element_id" => $this->diafan->_route->show,"images" => $images,
"images_variation" => $images_variation,
"access" => ($this->diafan->configmodules('where_access_element', 'clauses') || $this->diafan->configmodules('where_access_cat', 'clauses') ? $this->diafan->_users->role_id : 0),
"time" => $time
);
if (! $result = $this->diafan->_cache->get($cache_meta, "clauses"))
{
$result["rows"] = DB::query_range_fetch_all(
"SELECT e.id, e.[name], e.[anons], e.created, e.timeedit, e.site_id FROM {clauses} AS e"
." INNER JOIN {clauses_rel} AS r ON e.id=r.rel_element_id AND r.element_id=%d"
.($this->diafan->configmodules("rel_two_sided") ? " OR e.id=r.element_id AND r.rel_element_id=".$this->diafan->_route->show : '')
.($this->diafan->configmodules('where_access_element', 'clauses') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='clauses' AND a.element_type='element'" : "")
." WHERE e.[act]='1' AND e.trash='0' AND e.created<%d"
." AND e.date_start<=%d AND (e.date_finish=0 OR e.date_finish>=%d)"
.($this->diafan->configmodules('where_access_element', 'clauses') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
." GROUP BY e.id"
." ORDER BY e.sort DESC",
$this->diafan->_route->show, $time, $time, $time, 0, $count
);
$this->elements($result["rows"], array("count" => $images, "variation" => $images_variation));
$this->diafan->_cache->save($result, $cache_meta, "clauses");
}
foreach ($result["rows"] as &$row)
{
$this->prepare_data_element($row);
}
foreach ($result["rows"] as &$row)
{
$this->format_data_element($row);
}
// это то, что добавили
foreach ($result["rows"] as $key => $r_w)
$result["rows"][$key]["counter"] = $this->get_counter_view($r_w["id"]);
return $result;
}
М-да. Если у кого-нибудь не получилось (а данный код я проверил - работает), то не забудьте в настройках модуля отметить следующие пункты, а то наверняка будите думать, что приведенный код - ошибочный. См. картинку.
Ну, как-то так. Надеюсь принцип понятен. Успехов, коллеги. -
-
-
-
08 февраля 2016 г. , редакция: 1454963070
-
Для страницы статьи и для страницы списка статей в model формируются значения. Соответственно у Вас не выводится значение на страницы списка статей, т.к. это значение в model не было передано. Вам нужно по аналогии с функцией подготовки значений для страницы статьи скорректировать функцию подготовки значений для страницы списка статей. Дело минутное, но у меня сейчас в распоряжении только телефон. А на нем сложно вывести сюда нужное Вам решения. В принципе я уверен, что у Вас получится сделать это самостоятельно. Если нет, пишите постараюсь помочь или кто-то еще поможет.
-
-
-
-
10 февраля 2016 г. , редакция: 1455088987
-
В файл clauses.model.php добавте следующую функциюКодfunction get_counter_view($element_id)
{
if (! $element_id)
{
return 0;
}
if($this->diafan->configmodules('counter'))
{
$counter = DB::query_fetch_array("SELECT id, count_view FROM {%s_counter} WHERE element_id=%d LIMIT 1", $this->diafan->_site->module, $element_id);
if($counter){
if(empty($_SESSION[$this->diafan->_site->module."_view"][$element_id]))
{
$_SESSION[$this->diafan->_site->module."_view"][$element_id] = 1;
DB::query("UPDATE {%s_counter} SET count_view=%d WHERE id=%d LIMIT 1", $this->diafan->_site->module, ++$counter["count_view"], $counter["id"]);
}
}
else
{
DB::query("INSERT INTO {%s_counter} (count_view, element_id) VALUES (1, %d)", $this->diafan->_site->module, $element_id);
$counter["count_view"] = 1;
$_SESSION[$this->diafan->_site->module."_view"][$element_id] = 1;
}
if($this->diafan->configmodules('counter_site'))
{
return $counter["count_view"];
}
}
else return 0;
}
Теперь ей можно воспользоваться так, как Вам угодно. Т.е. в параметр функции $element_id записываем id конкретной статьи и получаем на выходе количество просмотров. При этомЦитатаКоличество просмотров на сайте текущей статьи. Статистика ведется и параметр выводится, если в настройках модуля отмечена опция «Подключить счетчик просмотров».
Пример:
ПЕРЕМЕННАЯ_ДЛЯ_КОЛИЧЕСТВА_ПРОСМОТРОВ = get_counter_view(ЗДЕСЬ_id_СТАТЬИ); -
-
-
-
13 октября 2016 г. , редакция: 1476345416
-
ЦитатаВставил функцию в model... затем во вьюхе списка указал:
Нее. Все сначало.
Берем файл clauses.model.php и вставляем кодКод// это то, что добавили
function get_counter_view($element_id)
{
if (! $element_id)
{
return 0;
}
$counter = DB::query_fetch_array("SELECT id, count_view FROM {%s_counter} WHERE element_id=%d LIMIT 1", "clauses", $element_id);
return intval(! $counter || ! $counter["count_view"] ? 1 : $counter["count_view"]);
}
Далее в том же файле ищем функциюКодprivate function list_category_elements_query($time, $cat_ids){ ... }
и излогаем ее такКодprivate function list_category_elements_query($time, $cat_ids)
{
$rows = DB::query_range_fetch_all(
"SELECT e.id, e.[name], e.timeedit, e.[anons], e.site_id, e.created FROM {clauses} AS e"
.($this->diafan->configmodules('where_access_element') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='clauses' AND a.element_type='element'" : "")
." INNER JOIN {clauses_category_rel} AS r ON e.id=r.element_id AND r.cat_id IN (%s)"
." WHERE e.[act]='1' AND e.trash='0' AND e.created<%d"
." AND e.date_start<=%d AND (e.date_finish=0 OR e.date_finish>=%d)"
.($this->diafan->configmodules('where_access_element') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
." GROUP BY e.id ORDER BY e.sort DESC, e.id DESC",implode(',', $cat_ids), $time, $time, $time,
$this->diafan->_paginator->polog, $this->diafan->_paginator->nastr
);
// это то, что добавили
foreach ($rows as $key => $r_w)
$rows[$key]["counter"] = $this->get_counter_view($r_w["id"]);
return $rows;
}
Затем в том же файле ищем функциюКодprivate function list_query($time){ ... }
и излагаем ее такКодprivate function list_query($time)
{
$rows = DB::query_range_fetch_all(
"SELECT e.id, e.created, e.[name], e.[anons], e.timeedit, e.site_id FROM {clauses} AS e"
.($this->diafan->configmodules('where_access_element') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='clauses' AND a.element_type='element'" : "")
." WHERE e.[act]='1' AND e.trash='0' AND e.site_id=%d AND e.created<%d"
." AND e.date_start<=%d AND (e.date_finish=0 OR e.date_finish>=%d)"
.($this->diafan->configmodules('where_access_element') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
." GROUP BY e.id ORDER BY e.sort DESC, e.id DESC",
$this->diafan->_site->id, $time, $time, $time,$this->diafan->_paginator->polog, $this->diafan->_paginator->nastr
);
// это то, что добавили
foreach ($rows as $key => $r_w)
$rows[$key]["counter"] = $this->get_counter_view($r_w["id"]);
return $rows;
}
Затем в том же файле ищем функциюКодfirst_page_elements_query($time, $cat_ids){ ... }
и излагаем ее такКодprivate function first_page_elements_query($time, $cat_ids)
{
$rows = DB::query_range_fetch_all(
"SELECT e.id, e.[name], e.timeedit, e.[anons], e.site_id, e.created FROM {clauses} AS e"
." INNER JOIN {clauses_category_rel} AS r ON e.id=r.element_id"
.($this->diafan->configmodules('where_access_element') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='clauses' AND a.element_type='element'" : "")
." WHERE r.cat_id IN (%s) AND e.[act]='1' AND e.trash='0' AND e.created<%d"
." AND e.date_start<=%d AND (e.date_finish=0 OR e.date_finish>=%d)"
.($this->diafan->configmodules('where_access_element') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
." GROUP BY e.id ORDER BY e.sort DESC, e.id DESC",implode(',', $cat_ids), $time, $time, $time, 0, $this->diafan->configmodules("count_list")
);
// это то, что добавили
foreach ($rows as $key => $r_w)
$rows[$key]["counter"] = $this->get_counter_view($r_w["id"]);
return $rows;
}
Теперь во вьюхах вывода первой страницы статей, страницы списка статей стало доступено, как и во вьюхе страницы конкретной статьи, значение ["counter"]
Пример, берем вьюху страницы списка статей clauses.view.list.php и в определенные строчки вносим такие измененияКод//статьи подкатегории
if (! empty($child["rows"]))
{
foreach ($child["rows"] as $row)
{
echo '<div class="block">';
...
// это то, что добавляем в конец данного цикла перед последним закрывающим тегом div
echo '<div>Количество просмотров: '.$row["counter"].'</div>';
echo '</div>';}
}
Тоже в циклеКод//статьи
if (! empty($result["rows"]))
{
foreach ($result["rows"] as $row)
{
echo '<div class="block">';
...
// это то, что добавляем в конец данного цикла перед последним закрывающим тегом div
echo '<div>Количество просмотров: '.$row["counter"].'</div>';
echo '</div>';}
}
Успехов. -
-
-
-
10 февраля 2016 г. , редакция: 1455101753
-
Максим (web-prosto), я уверен, что для Вас web - это prosto. Имейте меру в своих желаниях. Может быть Вам сюда http://pro.user.diafan.ru/ или сюда http://www.prosto-web.pro/uslugiЦитата... а вот в блоке нет :/
-
-
-
-
10 февраля 2016 г. , редакция: 1455124397
-
Цитатамда... сарказм пошёл теперь
Не сарказм! Я привел подробное описание, включая вывод списка с категориями, без категории, вывод на первой странице. То есть три примера, а мог ограничится лишь одним примером - вывод в списке без категорий (который Вы изначально хотели). Если Вам нужно вывести в блоке - это аналогично этим примерам. Учитывая, что Вы разрабатываете сайты, получая за это деньги, то сложность такой задачи после приведенных примеров для Вас равна нулю. Отсюда сделал вывод, что Вам лень подумать и вникнуть, а проще заниматься копированием. Если Вы хотя бы попытались написать вывод в блоке, но у Вас не вышло и привели свой пример с ошибкой, то не вопрос, многие Вам бы помогли. А так, вывод: Вам лень. Но раз лень, пусть так и будет.
Попробуйте сделать самостоятельно, не получится - пишите. Помогут. -
-
-
-
03 февраля 2016 г.
-
http://www.diafan.ru/dokument/full-manual/templates-functions/#show_breadcrumbЦитатаВ шаблоне тега можно получить значение любого атрибута через переменную $result["attributes"]["название атрибута"].
-
-
-
-
03 февраля 2016 г. , редакция: 1454492996
-
Достаточно изменить немного внешний вид отображения, которое используется шаблонным тегомЦитата<insert name="show_search" module="shop" site_id="1">
и внести дополнение в javascript или shop.action.php.
Т.е. дополняете два пунктаЦитатабез ценыЦитатас ценой
Далее, если shop.action.php, проверка условия в $POST.
Если отмечен пунктЦитатабез цены
Прописываем для поиска цену = 0, если отмечен пункт
Практически тоже при варианте javascript -
-
-
-
05 февраля 2016 г.
-
ЦитатаТо есть, цена != 0, если чекбокс НЕ отмечен. Если чекбокс отмечен (по умолчанию), выводятся все товары.
Если все товары, то значения ОТ и ДО либо не заполнены, либо равны 0.
Если нужны товары с ценой, то передайте значение ОТ равное 1
Если товары без цены, то используйте значение 0 при запросе к бд -
-
-
-
05 февраля 2016 г.
-
Значения, которые передаются через POST, затем участвуют в запросе к бд.ЦитатаТо есть два поля, цена от и цена до. Когда поля пустые выводятся все товары. Можно заполнить либо оба поля либо только одно из полей. Как такое реализовать?
Уже реализовано в cms. Если указать ДО, то это значения отсекает цены товара, которые превышают значение. Тоже в части поля ОТ. Эти значения работают вместе и по отдельности. -
-
-
-
09 марта 2016 г. , редакция: 1457536854
-
Важен ни сколько шаг diafan (этот шаг лишь логичная кульминация данной эпопеи), сколько отброшенная тень на остальных сторонних разработчиков. Теперь прейдется восстанавливать доверие. Как не крути - коллективная ответственность. Только сейчас понял, что надо было предложить свои услуги и исправить косяки бесплатно до наступления такого "happy end".
-
-
-
-
12 января 2020 г. , редакция: 1578849259
-
В cms также предусмотрен вывод переменных. Далее в качестве примера три варианта.Код
$variable1 = date("H:i:s");
vd($variable1);
В данном случае содержание переменной будет выведено в контенте страницы.
Код
$variable1 = date("H:i:s");
$variable2 = date("d.m.Y");
Dev::var_dump($variable1, $variable2);
В данном случае содержание переменных будет выведено после формирования страницы. Также будет выведена трассировка кода вызова (содержание стека) - удобно для понимания, логики вызовов в cms. Дополнительно будет отображена информация, сколько памяти и времени было израсходовано от инициализации кода или от предыдущего аналогичного вызова функции Dev::var_dump(). Так можно отследить, на что больше всего требуется времени и памяти.
Код
$variable1 = date("H:i:s");
$variable2 = date("d.m.Y");
File:var_dump($variable1, $variable2, 'tmp/log.tmp');
В таком случае вывод содержания переменных пойдет в файл tmp/log.tmp. Путь к файлу в данной функции указывается последним аргументом.
Код
$variable1 = date("H:i:s");
$variable2 = date("d.m.Y");
File:var_dump($variable1, $variable2, 'tmp/log.tmp', true);
$variable3 = time();
File:var_dump($variable3, 'tmp/log.tmp', true);
Если нужно вывести множество переменных в файл, то после указания файла вывода поставьте значение true.
Да, забыл. Для использования функции Dev::var_dump() нужно в разделе "Параметры сайта" активировать пункт "Включить профилирование PHP-скриптов".
Будут вопросы, задавайте.
Всем приятной работы с DIAFAN.CMS -
-
-
-
06 ноября 2016 г. , редакция: 1478380481
-
Например, ajax? А если такЦитатаНо существуют участки, на которых воспользоваться print_r() или var_dump() ну никак не получиться.Можно и в конструкцияхКод
$result = '<pre>'.print_r($var, true).'</pre>';
Кодtry {
...
} catch (Exception $ept) {
...
} finally {
...
}
Вариантов много. Все получится. Успехов. -
-
-
-
29 января 2016 г. , редакция: 1454059801
-
Cms дружит с php 5.5, а со специфичными настройками может и не дружить. От чего имени исполняются скрипты? От чего имени работает веб-сервер? Какие права на хост у этих пользователей? Есть ли у них права на создание директорий? Если есть, то какие права они могут выставить, т.к. могут быть организованы ограничения? Есть ли ограничения на директивы htaccess? Смотрите настройки или поручите это дело специалистам. Реально этот вопрос на 15 минут.
-
-
-
-
02 февраля 2016 г. , редакция: 1454403322
-
ЦитатаА нафиг он тогда вообще нужен?
Нужен, нужен. В diafan.cms тоже есть кэширование, экстремальное кэширование, index.html и т.д. Все это в cms для определенных целей. Так и сервер: можно просто установить ПО, можно установить не думая по мануалу, а можно настроить с умом под конкретные задачи. В итоге получим разное время отклика.
Лично я использую кеширование, но выкладывать здесь мануал по настройкам сервака считаю лишним. -
-
-
-
02 февраля 2016 г.
-
Все получится!Цитатав файле еще есть sql запросы
Это простой запрос к базе данных. Все что в фигурных скобках - это название таблиц без префикса. Т.е. все тоже, только убирайте фигурные скобки и добавляйте свой префикс. Если хотите, то выложите содержимое файла сюда и сообщите свой префикс таблиц. -
-
-
-
26 января 2016 г.
-
Сначала создайте описание импорта/экспорта товара в cms (включите туда поля со значением Бренд), затем выгрузите в файл csv. Затем откройте его в excel и проставьте разом бренды товару. После импортируйте все обратно. Перед этим не забудьте сохранить резервную копию, на случай своей ошибки.
Подробнее здесь http://www.diafan.ru/dokument/full-manual/modules/shop/#Import/eksport-YA.Market -
-
-
Новости
-
25 марта
-
Мы обновили систему тарифов, учитывая опыт работы с клиентами и современные рыночные условия. Новая тарифная сетка разработана специально для того, чтобы лучше отвечать вашим потребностям. Резкого повышения цен не произошло. Более того, некоторые тарифы даже стали выгоднее и доступнее.
-
17 января
-
В преддверии 2025 года была выпущена сборка 7.2.5, которая не приносит радикальных изменений в функциональности, но способствует повышению стабильности работы системы и расширению возможностей облачного сервиса для создания сайтов.
-
18 июня 2024 г.
-
В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
Блоги
-
24.04.2024
-
Выпустили новую сборку DIAFAN.CMS 7.1.4.
Блоги
-
12.01.2024
-
В данном руководстве познакомим вас с панелью управления DIAFAN.CMS