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

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

  • 19 июня 2018 г.
  • Цитата
    Такое бывает, когда скрипт пытается отправить письмо и не может.

    Чуть-чуть уточню. В cms возможны два варианта отправки писем. Первый вариант - отправка с помощью php-скрипта. Это быстрый вариант, но, так как спамеры злоупотребляют этим, большинство авторитетных почтовых серверов либо отправляют такие письма в спам, либо вообще блокируют их доставку. Второй вариант - отправка с помощью SMTP. В данном случае при отправке письма идет взаимодействие с внешним почтовым сервером. И здесь скорость отправки зависит от множества факторов. Например, от настроек почтового сервера (могут быть выставлены задержки и иные финты). Также может влиять и текущая загруженность почтового сервера. В общем много факторов и в каждом случае они индивидуальны (поэтому время задержки может варьироваться). В свою очередь cms вынуждена дожидаться ответа от почтового сервера. Как только получен ответ, cms завершает заложенные в нее процессы.

    Цитата
    А ещё крутилку-спиннер планируем же мы поставить? ;)

    Индикатор процесса поставить не проблема. Важна заинтересованность в этом. А индикатор заинтересованности - это раздел "Пожеланий": https://user.diafan.ru/wishlist/
  • 28 мая 2018 г.
  • Скорее всего у Вас в настройках активирован пункт - авторизация по e-mail адресу, а не по логину. Проверить легко: при авторизации первое поле у Вас звучит как "Логин:" или "E-mail:"? Как говориться надо вводить то, что необходимо при текущих настройках.
  • 30 ноября 2018 г.
  • Цитата
    А мне делать будет не красиво наверное

    У меня другое мнение. Делать можно. И не надо смотреть, что кто-то уже сделал. Это нормальная здоровая конкуренция. Вот плагиат - плохо, а вложить свою реализацию - хорошо.
  • 26 апреля 2018 г.
  • Проверил, установив актуальную DIAFAN.CMS и залив в кастомную тему дефолтную папку themes. То есть воспроизвел кастомизацию темы. Все работает.

    Сама крутяжка подключается с помощью css. Файл css/style.css:
    Код
    /* defer */
    form[loading="true"] {
    display: inline-block;
    background: url(../img/loader.gif) no-repeat left center;
    min-width: 50px;
    min-height: 50px;
    padding: 8px 0px 0px 50px;
    margin: 0px;
    cursor: progress;
    }

    Вам необходимо проверить правильный ли у Вас указан путь к анимации.
  • 24 апреля 2018 г. , редакция: 1524529301
  • Цитата
    Как в этом случае подключать новый шаблон оформления?
    Все так же. В моделе модуля идет определение переменной $result["view_rows"]

    Попробую пояснить на примере. Возьмем файл shop.model.php. В этом файле возьмем функцию вывода списка товаров
    Код
    public function list_()
    . В указанной функции определяется представление списка, например,
    Код
    $this->result["view"] = 'list';
    . То есть представление в данном случае определено в файле shop.view.list.php. Далее представление уже элементов в списке, как было ранее, жестко определялось в shop.view.list.php. Теперь же этой жесткости нет. В той же функции
    Код
    public function list_()
    можно изменить как основное представление, так и представление списков исходя из каких-либо условий (т.е. не трогая основное представление). Для этого нужно лишь изменить значение, например,
    Код
    $this->result["view_rows"] = 'rows';
    То есть представление элементов списка определено в shop.view.rows.php.

    Цитата
    Это понятно, но ведь не зря новую конструкцию ввели, для скорости или еще для чего
    Все верно. Такой подход позволяет легко решить множество вопросов. Например, во время отработки ajax в action можно изменить не только основное представление, но и представление списка элементов не плодя полукопии основного представления.

    Как практический пример, то такой подход используется в реализации кнопки "Показать еще". Для этого в настройках модуля активируем соответствующий пункт и на странице списка элементов появиться кнопка "Показать еще". Нажав такую кнопку список элементов на странице дополниться еще одной партией списка, сменив пагинацию и url-адрес без перезагрузки самой страницы.
  • 27 апреля 2018 г. , редакция: 1524815107
  • Цитата
    Виталий позже даст комментарии на этот счёт.

    Попробую разъяснить некоторые моменты, по которым возникают вопросы.

    Возьмем в качестве примера модуль "Интернет-магазин", а именно вывод списка товаров. И так, сами данные для списка товаров генерирует public function list_() (modules/shop/shop.model.php). В указанной функции задается значение
    Код
    $this->result["view_rows"] = 'rows';
    Такое значение в последующем будет использовано в представлении (modules/shop/views/shop.view.list.php) следующим образом:
    Код
    //вывод списка товаров
    if(! empty($result["rows"]))
    {
    //вывод сортировки товаров
    if(! empty($result["link_sort"]))
    {
    echo $this->get('sort_block', 'shop', $result);
    }

    echo '<div class="shop-pane">';
    echo $this->get($result["view_rows"], 'shop', $result);
    echo '</div>';
    }
    Так как в моделе модуля было определено, что $this->result["view_rows"] = 'rows';, то выражение $this->get($result["view_rows"], 'shop', $result); будет равно следующему:
    Код
    echo $this->get('rows', 'shop', $result);
    Таким образом обеспечена обратная совместимость с ранее сделанными наработками. И если в своих шаблонах Вы оставите примерно вот такое (как было ранее):
    Код
    //вывод списка товаров
    if(! empty($result["rows"]))
    {
    //вывод сортировки товаров
    if(! empty($result["link_sort"]))
    {
    echo $this->get('sort_block', 'shop', $result);
    }

    echo '<div class="shop-pane">';
    echo $this->get('rows', 'shop', $result);
    echo '</div>';
    }
    То ничего страшного не произойдет. Все будет работать так, как и задумывалось Вами ранее.

    Если же в представлении Вы используете, например, другое указание для вывода элементов в списке:
    Код
    echo $this->get('rows_xxx', 'shop', $result);
    То так же ничего страшного не произойдет за исключением. Например, при отработке нажатия кнопки "Показать еще" будет использован шаблон, указанный в $this->result["view_rows"] = 'rows';, что вызовет расхождения в логике отображения элементов списка.

    Если Вам не требуется функционал кнопки "Показать еще" или иной функционал, завязанный на $this->result["view_rows"], то можно ничего не менять и действовать по старому. Если же требуется, то правильным будет определение такого значения в модели. Например, выдержка из кастомизированного файла shop.model.custom.php:
    Код
    /**
    * Генерирует данные для списка товаров
    *
    * @return void
    */
    after public function list_()
    {
    $this->result["view_rows"] = 'rows_xxx';
    }
    Таким образом можно легко переопределить значение, не переопределяя весь код функции.

    Возможно в последующем, если это будет нужным, данное направление будет усовершенствовано и определение такого значения будет выведено в административную часть сайта. Тогда в моделе не потребуется, что либо дописывать.
  • 27 апреля 2018 г. , редакция: 1524818778
  • Цитата
    использовать не один вариант изменённого вывода списка - "rows_one", "rows_two" и т. д. ?

    То есть Вы в одном представлении списка элементов (shop.view.list.php) задействуете разные варианты представлений вывода элементов в списке? Если так, то важно понимать, что те значения, которые Вы присвоите $this->result["view_rows"] в представлении, модель модуля об этом не узнает. Поэтому, например, та же кнопка "Показать еще" будет использовать значение $this->result["view_rows"], которое было определено в модели.

    В самом представлении вывода списка товаров Вы можете использовать как вариант
    Код
    echo $this->get('rows_xxx', 'shop', $result);
    так и вариант
    Код
    $this->result["view_rows"] = 'rows_xxx';
    echo $this->get($this->result["view_rows"], 'shop', $result);
    Разница в таких вариантах в том, что при втором варианте в представление элементов списка придет измененное значение $this->result["view_rows"].

    Если Вы переопределили $this->result["view_rows"] в представлении, то, например, для того, чтобы задействовать функционал кнопки "Показать еще" Вам будет необходимо внести изменения в логику ее action, что тоже очень легко. Или не изменять логику, если не нужен такой функционал.
  • 27 апреля 2018 г. , редакция: 1524820231
  • Дополню. Чтобы переопределить action для кнопки "Показать еще", достаточно взглянуть на html-код этой кнопки (скриншот прилагается). В поле action будет указано название функции
    Код
    <input type="hidden" name="action" value="list_">
    То есть в данном случае необходимо изменить или добавить, если ее нет, функцию list_. Cms автоматически поймет, что action для кнопки был переопределен.

    Еще в дополнение. В том же html-коде можно обратить внимание на строчку
    Код
    <input type="hidden" name="mode" value="model">
    В поле mode значение model говорит, что будет задействовано поведение, которое определено в моделе модуля. Если Вы добавите ту же функцию в action, то значение mode автоматически измениться на action. Соответственно cms задействует именно Вашу функцию в action.
  • 27 апреля 2018 г.
  • Цитата
    А так по-моему делать нельзя.

    Сергей (universe), это уж сильная фраза. Не буду переубеждать. Но посыл Ваш понял. Донесу до разработчиков cms, может они примут решение, что данное значение также будет определяться в административной части сайта, как и шаблон list

    PS: различные вариации отображения можно реализовать в одной вьюшки list и одной rows, используя лишь условия вывода.
  • 23 апреля 2018 г.
  • На самом деле решений множество.

    В public function list_search() приходит $_POST с параметрами запроса. Как вариант, можно сформировать не один запрос для всех задействованных характеристик, как в дефолте, и получить INNER JOIN между ними, а сформировать запрос для каждой характеристики в отдельности. То есть получите несколько запросов к базе данных. Далее остается просто объединить полученные результирующие ряды, исключая повторения элементов. На выходе получите тот же FULL JOIN. Таким образом все это можно прокрутить в public function list_search(), не внося каких-либо серьезных изменений в код, что позволит в дальнейшем спокойно обновлять cms без каких либо усилий.
  • 12 апреля 2018 г. , редакция: 1523537974
  • Кровля Плюс (krovlyaplus2014), возьмите актуальный дистрибутив DIAFAN.CMS и поставьте с нуля на тот же хостинг. В ходе установки cms подскажет, что у Вас не так. Если все пройдет успешно, но в админку заново установленной cms Вы не сможете попасть, то сообщите, какие записи в логе ошибок.
  • 10 апреля 2018 г.
  • И так. Вы говорите:
    Цитата
    Сейчас занимаюсь этим, много недочетов.
    И далее уточняете:
    Цитата
    Суть завязана на id, но id в 1с другого формата.
    Попробую пояснить. То, что Вы указали как недочет, не является таковым. В cms могут находится как собственные товары, так и товары загруженные из 1С:Предприятие. Поэтому идентификаторы хранятся не в одном поле.

    Цитата
    Нельзя просто стереть, и выгрузить из 1с.
    Почему же нельзя. Можно выгрузить имеющийся товар используя функцию импорта/экспорта товара. Удалить весь товар. Далее синхронизировать товары с 1С. Затем загрузить ранее выгруженный товар с помощью функции импорт/экспорт, но ориентируясь уже на артикул товара (определяется в настройках описания импорта/экспорта товаров). Конечно, так как синхронизируются в таком случае данные с двух источников, то необходим ориентир. Вот в данном случае ориентиром, например, может быть артикул товара. То есть артикулы товаров у Вас в 1С и на сайте должны сходится, если Вы говорите что такие товары являются дубликатом.

    Цитата
    Ну ладно, это победил.
    Вы уверены, что "победили"? А то далее Вы говорите, что синхронизация после этого у Вас идет не так, как ожидаете.

    Дополнительно добавлю, что пока Вы осваиваете cms, то перед такими манипуляциями, как синхронизация или импорт/экспорт товаров обязательно создавайте резервные копии файлов и базы данных.
  • 03 апреля 2018 г.
  • Обработка изображений настраивается в административной части сайта, в разделе "Обработка изображений". Непосредственное применение настроек определяется в настройках модуля. Например, в настройках модуля "Интернет-магазин", во кладке "Изображения". Также по аналогии в других модулях. Подробнее написано в документации к DIAFAN.CMS: https://www.diafan.ru/dokument/full-manual/upmodules/images/#Nastroyki
  • 30 марта 2018 г.
  • Думаю, что проще объяснить как это сделать через шаблон сайта. Создайте файл, например, с названием test.php в директории custom/название_активной_темы_сайта/themes/
    Далее внесите следующее, как пример, содержание в созданный файл:
    Код
    <?php
    /**
    * Шаблон страницы test.php
    *
    */

    if(! defined("DIAFAN"))
    {
    $path = __FILE__;
    while(! file_exists($path.'/includes/404.php'))
    {
    $parent = dirname($path);
    if($parent == $path) exit;
    $path = $parent;
    }
    include $path.'/includes/404.php';
    }

    echo 'Мой файл test.php';
    ?>
    Далее в административной части сайта создайте новую страницу. Нажмите кнопку "Дополнительные параметры" и в открывшейся панели найдите поле "Псевдоссылка". В указанном поле напишите слово "test". В той же панели найдите поле "Дизайн страницы" и в выпадающем списке выберите пункт: "Шаблон страницы test.php [test.php]". Далее сохраните изменения. На этом все. Перейдя по адресу site.ru/test/ у Вас откроется страница с содержанием: "Мой файл test.php".
  • 31 марта 2018 г.
  • О том, что такое тема сайта можно подробнее прочитать в документации: https://www.diafan.ru/dokument/full-manual/sysmodules/themes/

    Если Вы используете активную тему, то вместо слова "название_активной_темы_сайта" должно быть именно название активной темы. Открыв на хостинге сайта папку "custom" (находится в корне сайта) Вы увидите подпапки или одну подпапку (зависит от количества установленных тем сайта), название которых совпадает с названием ранее созданных тем сайта.

    Если Вы не используете кастомизацию (не используете темы сайта), то Вам необходимо создать указанный ранее файл в директории: themes (находится в корне сайта).
  • 24 марта 2018 г.
  • В качестве идентификатора можно использовать, например:
    - собственное значение (это то значение, которое Вы сами придумываете и следите, чтобы оно не повторялось в других товарах);
    - идентификатор на сайте (это значение берется из поля под названием id в таблице базы данных сайта);
    - название (идентификатором выступает само название элемента, при этом такие названия должны быть уникальны);
    - артикул (идентификатором выступает сам артикул элемента, при этом такие значения должны быть уникальны);

    С более подробной информацией можно ознакомиться, посмотрев документацию к DIAFAN.CMS: https://www.diafan.ru/dokument/full-manual/modules/shop/#Import/eksport-YA.Market
  • 24 марта 2018 г.
  • Если делать дамп средствами cms, то в такой дамп попадут все таблицы cms за исключением нескольких технических. Поэтому такой дамп надо заливать либо средствами cms, либо в уже имеющуюся базу данных cms

    Цитата
    Импортирую дамп обратно - нет ветки
    Содержание дампа может быть разбито на несколько файлов (зависит о объема данных). Если хостинг поддерживает архивирование, то такие части дампа будут сжаты в один архивный файл, который и будет Вами получен при скачивании дампа. Далее, кода загружается дамп обратно, временные лимиты хостинга могут не позволить обработать все части дампа архивного файла. Поэтому можно сначала разархивировать полученный файл. Затем последовательно импортировать такие файлы (сначала первый, затем второй и т.д.). Таким образом все будет восстановлено.
Показывать по:

Новости

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