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

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

  • 24 марта 2018 г.
  • Если делать дамп средствами cms, то в такой дамп попадут все таблицы cms за исключением нескольких технических. Поэтому такой дамп надо заливать либо средствами cms, либо в уже имеющуюся базу данных cms

    Цитата
    Импортирую дамп обратно - нет ветки
    Содержание дампа может быть разбито на несколько файлов (зависит о объема данных). Если хостинг поддерживает архивирование, то такие части дампа будут сжаты в один архивный файл, который и будет Вами получен при скачивании дампа. Далее, кода загружается дамп обратно, временные лимиты хостинга могут не позволить обработать все части дампа архивного файла. Поэтому можно сначала разархивировать полученный файл. Затем последовательно импортировать такие файлы (сначала первый, затем второй и т.д.). Таким образом все будет восстановлено.
  • 22 марта 2018 г.
  • Воспользуйтесь импортом/экспортом товаров. Можно выгрузить только конкретные значения, затем открыть файл csv в MS Excel и одним махом все изменить. После этого импортировать измененный файл.
  • 27 февраля 2018 г.
  • Обновите cms до актуальной версии и отключите все активные темы сайта так, чтобы работали только дефолтные файлы DIAFAN.CMS. Затем еще раз проверьте синхронизацию с 1C. Должно все получиться. Если так, то Вам нужно привести свои активные темы сайта к соответствию актуальной версии cms.
  • 27 февраля 2018 г. , редакция: 1519741544
  • Цитата
    что бы все проблемы скастомизировались
    Это не проблемы ушли в кастомизированную тему, а ранее сделанные Вами корректировки дефолтных файлов DIAFAN.CMS. Соответственно, отключив такую тему, Вы получили:
    Цитата
    и отключите все активные темы сайта так, чтобы работали только дефолтные файлы DIAFAN.CMS.
    Отсюда вывод: ошибка не в дефолтной версии, а в корректировках. Остается просмотреть Ваши изменения и исправить ошибку.
  • 27 февраля 2018 г.
  • Скорее всего, именно такое поведение не подразумевалось. А подразумевалось то, что в настройках всех страниц, к которым прикреплен модуль, должна была стоять отметка - использовать категории. Приведенная корректировка кода снимает такое ограничение. Так, что это всего лишь одна из возможных вариаций поведения cms. То есть и один, и второй вариант поведения верный.
  • 18 февраля 2018 г.
  • Валерий Викторович (Sherrlok), вновь и вновь Вы спешите с выводами. Обратите внимание чуть выше по ветке:
    Цитата
    Так мы её только что взяли Подробности сборки уже расписаны и подготовлены к оформлению, за выходные оформим в новости и выложим, на diafan.ru и в ЛК краткую.


    Цитата
    Пример , что нового появилось в cms у DLE .

    Петр (peter66), а Вы не обратили внимание, что в той же cms только первый год ее использования обновления бесплатные?
  • 27 февраля 2018 г.
  • Dmitry (weissfl), а что именно нужно комментировать?

    Начните с простого. Возьмите актуальный дистрибутив DIAFAN.CMS и установите на хостинг. Далее создайте страницу, прикрепив к ней модуль "Интернет-магазин". Затем, как Вам будет угодно. Можно в обеих модулях отключить использование категорий или только в одном модуле. Все равно. Вы по прежнему сможете через интерфейс определять к какому модулю отнести характеристику.

    В рамках собственной перепроверки я проделал это с актуальном дистрибутивом. Надеюсь тоже и у Вас получится.

    А вот теперь вопрос: а с чего вдруг у Вас не получается? Тут надо смотреть предметно. Во-первых, надо смотреть на то, чтобы используемая Вами активная тема сайта не отменяла нововведения актуальной версии DIAFAN.CMS (для этого достаточно отключить все активные темы сайта и проверить). То есть Вам необходимо привести активную тему сайта в соответствие с актуальной версией cms. Во-вторых, запустить процедуру восстановление структуры базы данных в административной части сайта. Думаю, что при таком варианте у Вас все получится.

    Успехов.
  • 27 февраля 2018 г. , редакция: 1519736766
  • Dmitry (weissfl), ну так бы сразу все и описали бы. Теперь все понятно.

    Цитата
    Для меня эта опция важна и очень востребована, особенно для модуля "Объявления", ждал её очень давно.


    Ну, так давайте исправим. Тем более, что, если очень ждали. На самом деле все очень-очень просто. Приступим.

    1. Открываем файл modules/shop/admin/shop.admin.param.php и находим там функцию:
    Код
    public function edit_variable_category() { ... }
    В указанной функции находим строчку (такая строчка там одна):
    Код
    if(! $this->diafan->configmodules("cat", "shop"))
    и меняем найденную строчку на такую:
    Код
    if(! $this->diafan->configmodules("cat", "shop", 0))
    Жирным шрифтом выделено то, что добавлено.

    2. Открываем файл modules/ab/admin/ab.admin.param.php и находим там функцию:
    Код
    public function edit_variable_category() { ... }
    В указанной функции находим строчку (такая строчка там одна):
    Код
    if(! $this->diafan->configmodules("cat", "ab"))
    и меняем найденную строчку на такую:
    Код
    if(! $this->diafan->configmodules("cat", "ab", 0))
    Жирным шрифтом выделено то, что добавлено.

    3. Открываем файл modules/shop/admin/shop.admin.config.php и добавляем вот такую функцию:
    Код

    /**
    * Сохранение поле "Использовать категории"
    * @return void
    */
    public function save_config_variable_cat()
    {
    $this->diafan->set_query("cat='%d'");
    $this->diafan->set_value(! empty($_POST["cat"]) ? 1 : 0);
    if(! empty($_POST["site_id"]) && ! empty($_POST["cat"]))
    {
    $this->diafan->configmodules("cat", $this->diafan->_admin->module, 0, 0, 1);
    }
    }


    3. Тоже делаем и в modules/ab/admin/ab.admin.config.php Открываем файл и добавляем вот такую функцию:
    Код

    /**
    * Сохранение поле "Использовать категории"
    * @return void
    */
    public function save_config_variable_cat()
    {
    $this->diafan->set_query("cat='%d'");
    $this->diafan->set_value(! empty($_POST["cat"]) ? 1 : 0);
    if(! empty($_POST["site_id"]) && ! empty($_POST["cat"]))
    {
    $this->diafan->configmodules("cat", $this->diafan->_admin->module, 0, 0, 1);
    }
    }


    Dmitry (weissfl), на этом все. То есть все, что требуется сделать для достижения Вашей цели.

    Успехов всем.
  • 18 февраля 2018 г.
  • Цитата
    Методом тыка выяснил, что после перехода на HTTPS в шаблоне, походу, нормально не выводится _SERVER[HTTP_HOST] (наверное - у меня в браузере как все выводилось нормально, так и выводится). Во всяком случае, после замены _SERVER[HTTP_HOST] в шаблоне на доменное имя проблема пропала.Ответить


    nik.nichegoneskazhu (nik.nichegoneskazhu), есть ли у Вас возможность писать сообщения в более классическом стиле? По крайней мере, лично мне иногда сложно вникнуть в Ваш вопрос и, как следствие, попытаться помочь Вам.

    Что касается Вашего вопроса, то проблема, скорее всего в настройках веб-сервера или настройках php в части массива $_SERVER.
  • 05 февраля 2018 г.
  • Вообще странное восприятие организации доступа к сайту по https.

    Поясню. HTTPS - это расширение протокола HTTP. Используется для поддержки шифрования в целях повышения безопасности. То есть протокол передачи данных и контент сайта - это разнородные понятия. Если простым языком, то, например, HTTP или HTTPS - это труба, а контент сайта - это жидкость, которая течет по трубе. Поэтому контент сайта не влияет на протокол передачи данных. Более подробно можно прочитать, если в поисковике набрать: "Сетевая модель OSI". Должно все встать на свои места.

    Единственное, что может вызвать внимание, так это то, что если используется шифрование, то и загрузка скриптов, шрифтов, картинок и т.п. должна быть по протоколу с шифрованием. Это же логично! То есть, например, если на странице:
    Код
    <script type="text/javascript" src="http://yandex.st/jquery/2.0.3/jquery.min.js" charset="UTF-8">
    то необходимо сделать так:
    Код
    <script type="text/javascript" src="https://yandex.st/jquery/2.0.3/jquery.min.js" charset="UTF-8">
    А лучше вообще так:
    Код
    <script type="text/javascript" src="//yandex.st/jquery/2.0.3/jquery.min.js" charset="UTF-8">
    Вот и все что необходимо!

    Цитата
    Перед переездом нужно почистить сайт от "говница", привести его в идеальное состояние. И только потом переезжать.
    Вообще по практике знаю, что может вылезти куча приколов.
    Еще раз, контент сайта и протокол передачи данных не влияют друг на друга.
  • 05 февраля 2018 г.
  • Удалите товар - в разделе "Каталог" административной части сайта, во вкладке "Товары" жмете по ссылке "Выбрать все", в выпадающем списке выбираете пункт "Удалить" и жмете по кнопке "Применить". Далее синхронизируете товары по 1С. Да, если делаете в первый раз, то сначала сделайте резервную копию файлов и базы данных сайта :)

    Успехов.
  • 20 января 2018 г.
  • По мотивам Пожелания - ошибки: https://user.diafan.ru/wishlist/show3053/
    Цитата
    При заполнении полей Keywords и Description в главной странице каталога эти значения распространяются на весь каталог - на категории и товары. Так же не должно быть? Или с какой целью это задумывалось?


    Вообще дискуссионное пожелание. Но вижу в этом логику. То есть склоняюсь к тому, что Keywords и Description страницы, к которой прикреплен модуль, не должны передаваться страницам элементов этого модуля.

    Если кто-то придерживается того же мнения, то решение выглядит так.
    Берем файл includes/controller.php и находим функцию
    Код
    public function get_global_variables() { ... }
    Вот ее код:
    Код
    /**
    * Определяет свойства страницы, если они заданы в модуле
    *
    * @return void
    */
    public function get_global_variables()
    {
    $this->result = $this->model->result;
    $this->diafan->_site->timeedit = ! empty($this->result["timeedit"]) && $this->diafan->_site->timeedit < $this->result["timeedit"]
    ? $this->result["timeedit"]
    : $this->diafan->_site->timeedit;
    if (! empty($this->result["breadcrumb"]))
    {
    $this->diafan->_site->breadcrumb = $this->result["breadcrumb"];
    }

    if (! empty($this->result["title_meta"]))
    {
    $this->diafan->_site->titlemodule_meta = $this->result["title_meta"];
    }
    if (! empty($this->result["titlemodule"]))
    {
    $this->diafan->_site->titlemodule = $this->result["titlemodule"];
    }
    if (! empty($this->result["edit_meta"]))
    {
    $this->diafan->_site->edit_meta = $this->result["edit_meta"];
    }

    if (! empty($this->result["keywords"]))
    {
    $this->diafan->_site->keywords = $this->result["keywords"];
    }
    if (! empty($this->result["descr"]))
    {
    $this->diafan->_site->descr = $this->result["descr"];
    }

    if (! empty($this->result["theme"]))
    {
    $this->diafan->_site->theme = $this->result["theme"];
    }
    if (! empty($this->result["canonical"]))
    {
    $this->diafan->_site->canonical = $this->result["canonical"];
    }
    if (! empty($this->result["noindex"]))
    {
    $this->diafan->_site->noindex = $this->result["noindex"];
    }
    if($this->diafan->_route->cat || $this->diafan->_route->show)
    {
    $langs = $this->diafan->_languages->all;
    foreach ($langs as &$l)
    {
    if(empty($this->result["act".$l["id"]]))
    {
    $l["page_act"] = false;
    }
    }
    $this->diafan->_languages->all = $langs;
    }
    }
    Здесь жирным шрифтом выделил то, что далее удалим (или вместо удаления можно закомментировать).

    Теперь указанный код делаем таким:
    Код
    /**
    * Определяет свойства страницы, если они заданы в модуле
    *
    * @return void
    */
    public function get_global_variables()
    {
    $this->result = $this->model->result;
    $this->diafan->_site->timeedit = ! empty($this->result["timeedit"]) && $this->diafan->_site->timeedit < $this->result["timeedit"]
    ? $this->result["timeedit"]
    : $this->diafan->_site->timeedit;
    if (! empty($this->result["breadcrumb"]))
    {
    $this->diafan->_site->breadcrumb = $this->result["breadcrumb"];
    }

    if (! empty($this->result["title_meta"]))
    {
    $this->diafan->_site->titlemodule_meta = $this->result["title_meta"];
    }
    if (! empty($this->result["titlemodule"]))
    {
    $this->diafan->_site->titlemodule = $this->result["titlemodule"];
    }
    if (! empty($this->result["edit_meta"]))
    {
    $this->diafan->_site->edit_meta = $this->result["edit_meta"];
    }

    if (! empty($this->result["theme"]))
    {
    $this->diafan->_site->theme = $this->result["theme"];
    }
    if (! empty($this->result["canonical"]))
    {
    $this->diafan->_site->canonical = $this->result["canonical"];
    }
    if (! empty($this->result["noindex"]))
    {
    $this->diafan->_site->noindex = $this->result["noindex"];
    }
    if($this->diafan->_route->cat || $this->diafan->_route->show)
    {
    $this->diafan->_site->keywords = isset($this->result["keywords"]) ? $this->result["keywords"] : '';
    $this->diafan->_site->descr = isset($this->result["descr"]) ? $this->result["descr"] : '';


    $langs = $this->diafan->_languages->all;
    foreach ($langs as &$l)
    {
    if(empty($this->result["act".$l["id"]]))
    {
    $l["page_act"] = false;
    }
    }
    $this->diafan->_languages->all = $langs;
    }
    }
    А здесь жирным шрифтом отмечено то, что добавлено.

    Успехов всем.
  • 17 января 2018 г. , редакция: 1516220224
  • Положите на хост, например, файл info.php со следующим содержанием:
    Код
    <?php phpinfo(); ?>
    и обратитесь к данному файлу напрямую. Когда откроется страница, посмотрите, каково реальное значение max_input_vars
  • 18 января 2018 г.
  • Цитата
    Со второй проблемой пока не разобрался...

    Обратите внимание на то, под какой учетной записью работает Aapache и какие права на директории сайта и все встанет на свои места.
    Возможно для Вас, пока набираетесь опыта, лучшем решение будет использование ISPConfig. То есть при таком варианте от Вас потребуется установить ось, сделать предварительные настройки и следовать, например, мануалу по установке: The Perfect Server - Debian 9 (Stretch) with Apache, BIND, Dovecot, PureFTPD and ISPConfig 3.1. Это позволит Вам стартонуть. Затем освоитесь и начнете потихоньку вникать, что и как надо делать. Да, если уж решили войти в этот мир, то наберитесь терпенья, научитесь работать с логами и документацией. И результат обязательно будет! :)
  • 17 января 2018 г.
  • Файл /modules/news/news.php
    Там есть такое содержание:
    Код
    /**
    * News
    */
    class News extends Controller
    {
    /**
    * @var array переменные, передаваемые в URL страницы
    */
    public $rewrite_variable_names = array('page', 'show', 'year', 'month', 'day');
    ...
    }

    Ну, вроде, и так все понятно без дополнительных пояснений.

    Успехов.
  • 15 января 2018 г.
  • Denis (Drachoon), нужное видео. Хорошо, что сделал.
    Только одна ремарка. Вместо распаковки нового архива поверх старой версии лучше предварительно удалить текущую версию. Иначе, если в новой версии какие-то файлы были бы удалены, то ты этого не увидишь.
  • 12 января 2018 г.
  • Во кладку "Перевод интерфейса" раздела "Языки сайта" административной части сайта заглядывали? Там надо просто добавить перевод (переименование) используемых Вами фраз.
  • 29 декабря 2017 г.
  • На демонстрационной версии такого не заметил. Как вариант, создав еще один язык сайта, запустите процедуру проверки и восстановления базы данных (административная часть сайта, раздел "Модули и БД", вкладка "Восстановление БД"). Если не поможет, то отключите активные темы сайта и обновите cms до актуального состояния (перед этим сделайте резервную копию сайта). Затем вновь инициируйте процедуру проверки и восстановления базы данных.
  • 23 декабря 2017 г.
  • Цитата
    Вывод статей на первой странице модуля

    В настройках модуля "Статьи" актуальной версии DIAFAN.CMS есть такой пункт, как "Выводить на первой странице весь список статей". По умолчанию на первой странице выводится список категорий с несколькими статьями. Поэтому просто поставьте галочку возле пункта и нажмите кнопку "Сохранить".
  • 11 декабря 2017 г. , редакция: 1512948398
  • По мотивам предложения в разделе "Пожелания".
    Описание задачи:
    Цитата
    Поиск по сайту - выхватывает данные из характеристик товара, что портит выдачу данных (хотя кому то это может и быть нужным...)

    пример (для понимания о чём я):

    - Есть товар с названием где есть артикул:
    "Душевая лейка 14.420.bronza"
    - Есть товар унитаз с названием артикулом:
    "Унитаз 11.221.zoloto"

    попробуем найти в поиске по сайту артикул: "14.420"

    и получаем в поисковой выдачи и тот и другой товар............
    - оказывается "Унитаз 11.221.zoloto" появляется в выдаче из за того, что у этого товара есть
    - характеристика с полем "Число" и задан размер 420


    И так, на текущи момент актуальная версия DIAFAN.CMS 6.0.6.2.
    Берем файл search.inc.php и находим функцию
    Код
    private function index_item($row, $config, $table_name, $site_id = 0) { ... }

    В текущей версии следующий оригинальный код функции:
    Код
    /**
    * Индексирует страницы модуля, прикрепленного к странице сайта
    *
    * @param array $row
    * @return void
    */
    private function index_item($row, $config, $table_name, $site_id = 0)
    {
    $this->current_insert++;
    if(! empty($row["search_no_show"]))
    return;

    if (isset($row["act"]) && ! $row["act"])
    return;

    // дополнительные характеристики
    if(in_array('param', $config["fields"]) && ! isset($row["param"]) && (! defined('_LANG') || ! isset($row["param"._LANG])))
    {
    $param = $this->get_param($row["id"], $table_name);
    }

    foreach ($this->langs as $l)
    {
    if (isset($row["act".$l]) && ! $row["act".$l])
    continue;

    $module_rating = 0;
    if(! empty($config["rating"]))
    {
    $module_rating = $config["rating"];
    }

    $values_for_index = array();
    foreach($config["fields"] as $field)
    {
    if($field == 'param' && isset($param))
    {
    $values_for_index[] = $param[$l];
    }
    else
    {
    $values_for_index[] = (array_key_exists($field.$l,$row) ? $row[$field.$l] : $row[$field]);
    }
    }
    $access = ! empty($row["access"]) ? 1 : 0;
    $date_start = ! empty($row["date_start"]) ? $row["date_start"] : 0;
    $date_finish = ! empty($row["date_finish"]) ? $row["date_finish"] : 0;
    $this->insert($row["id"], $table_name, $values_for_index, $module_rating, $l, $access, $date_start, $date_finish);
    }
    if($site_id)
    {
    $this->check_max($site_id, $table_name, $row["id"]);
    }
    }

    Заменяем данный код на такой:
    Код
    /**
    * Индексирует страницы модуля, прикрепленного к странице сайта
    *
    * @param array $row
    * @return void
    */
    private function index_item($row, $config, $table_name, $site_id = 0)
    {
    $this->current_insert++;
    if(! empty($row["search_no_show"]))
    return;

    if (isset($row["act"]) && ! $row["act"])
    return;

    // дополнительные характеристики
    if(in_array('param', $config["fields"]) && ! isset($row["param"]) && (! defined('_LANG') || ! isset($row["param"._LANG])))
    {
    $param = $this->get_param($row["id"], $table_name);
    }

    foreach ($this->langs as $l)
    {
    if (isset($row["act".$l]) && ! $row["act".$l])
    continue;

    $module_rating = 0;
    if(! empty($config["rating"]))
    {
    $module_rating = $config["rating"];
    }

    $values_for_index = array();
    foreach($config["fields"] as $field)
    {
    if($field == 'param' && $table_name == 'shop') continue;
    if($field == 'param' && isset($param))
    {
    $values_for_index[] = $param[$l];
    }
    else
    {
    $values_for_index[] = (array_key_exists($field.$l,$row) ? $row[$field.$l] : $row[$field]);
    }
    }
    $access = ! empty($row["access"]) ? 1 : 0;
    $date_start = ! empty($row["date_start"]) ? $row["date_start"] : 0;
    $date_finish = ! empty($row["date_finish"]) ? $row["date_finish"] : 0;
    $this->insert($row["id"], $table_name, $values_for_index, $module_rating, $l, $access, $date_start, $date_finish);
    }
    if($site_id)
    {
    $this->check_max($site_id, $table_name, $row["id"]);
    }
    }

    Жирным шрифтом выделено то, что добавлено для достяжения поставленной цели. То есть добавлена вот эта строка:
    Код
    if($field == 'param' && $table_name == 'shop') continue;


    Ну все, успехов всем :)
Показывать по:

Новости

  • 24 апреля, среда
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 
  • 15 декабря 2023 г.
  • Подводим итоги 2023 года. Выпустили новую сборку DIAFAN.CMS 7.1.1, вводим новые тарифы на аренду сайта и коммерческую поддержку и автообновления с января 2024 г., строим планы на будущий год.