Вход • Регистрация

Всего найдено: 1417

  • 05 февраля 2016 г.
  • Полагаю это не полный текст ошибки. Если есть сложности с программированием, то перезалейте файл cart.action.php (возьмите его из оригинального пакета cms.diafan). Сбрости кэш и проверьте, повторится ли ошибка.
  • 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 г. , редакция: 1455124397
  • Цитата
    мда... сарказм пошёл теперь

    Не сарказм! Я привел подробное описание, включая вывод списка с категориями, без категории, вывод на первой странице. То есть три примера, а мог ограничится лишь одним примером - вывод в списке без категорий (который Вы изначально хотели). Если Вам нужно вывести в блоке - это аналогично этим примерам. Учитывая, что Вы разрабатываете сайты, получая за это деньги, то сложность такой задачи после приведенных примеров для Вас равна нулю. Отсюда сделал вывод, что Вам лень подумать и вникнуть, а проще заниматься копированием. Если Вы хотя бы попытались написать вывод в блоке, но у Вас не вышло и привели свой пример с ошибкой, то не вопрос, многие Вам бы помогли. А так, вывод: Вам лень. Но раз лень, пусть так и будет.
    Попробуйте сделать самостоятельно, не получится - пишите. Помогут.
  • 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
  • Цитата
    Но существуют участки, на которых воспользоваться print_r() или var_dump() ну никак не получиться.
    Например, ajax? А если так
    Код
    $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-импорта и еще много важного и интересного.