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

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

  • 17 ноября 2015 г.
  • Нее. Вот Вы
    Цитата
    Установил последний диафан, добавил необходимые характеристики, импортировал товар. Товар создался, все ок. Импортирую тот же файл заново, все ок, дублей не создается.

    Затем Вы делаете Бекап, а после
    Цитата
    заливаю бекап через импорт

    Если именно так, то возможно надо проверить алгоритм импортирования бекапа, т.е. возможно он не удаляет старые данные из таблицы, а лишь добавляет. Т.е. в таблицы {shop} товар старый с id (например, с диапазоном от 1 до 2000) и импорт_id (например, с диапазоном от 1 до 2000). После импорта бекапа, скорее всего в таблицы {shop} товар с id (например, с диапазоном от 1 до 4000) и импорт_id (например, с диапазоном от 1 до 2000 дважды). Так?
  • 17 ноября 2015 г. , редакция: 1447774468
  • Скорее всего, Вы берете бекап базы с основного сайт, в котором изначально нарушена целостность базы данных. Возможно из-за этого и ошибка. Для исправления таблиц базы данных MySQL воспользуйтесь средствами phpmyadmin или непосредственно утилитой mysqlcheck. Дополнительно обратите внимание на кодировку баз данных. Там и там должна быть одинаковая utf-8
  • 06 ноября 2015 г. , редакция: 1446808781
  • третья строчка снизу
    Код
    echo '</span></div><div class="parametr_blok">';

    должна быть
    Код
    echo '</span>';


    Это только одна ошибка, а у Вас тут в коде изобилие открытых и незакрытых тегов, например 7 строчка сверху
    Код
    echo ': </span><span class="znach">';

    и так далее, это не сложно, потратьте 10 минут на предмет корректности тегов
  • 05 ноября 2015 г. , редакция: 1446752673
  • Проверил Ваш вариант на демо версии http://demo.cms.diafan.ru, то что Вы описали не происходит. Скорее всего вы сменили форму представления цен (не выпадающим, а просто списком), т.е. вместо дефолтного shop.view.buy_form.php, Вы, наверно, стали использовать shop.view.buy_form_list.php.
    Или
    Цитата
    в итоге тупо выводятся цены списком без возможности выбрать
    Вам нужно проверить работу javascript
    Или, как вариант, надо сбросить кеш
  • 05 ноября 2015 г.
  • Если я правильно понимаю приватный просмотр firefox, то в таком режиме идет блокировка cookies, JavaScript, запрет на создание временных и кешированных файлов и т.п. Поэтому надо отлавливать данный режим и выдавать код страницы на основе html + css.
    Цитата
    Я думаю, они этот режим сами допилят.
    не думаю, не будут, смысл относительной приватности будет утерен.
  • 06 ноября 2015 г. , редакция: 1446761547
  • Цитата
    Но у Хрома есть аналогичный режим "Инкогнито" и там всё ок.
    Цель у браузеров одна, но подходы к реализации цели разные как и их движки:
    Trident, Edge – Internet Explorer;
    Gecko – Mozilla Firefox и сотоварищи;
    WebKit – Apple Safari, Google Chrome, Yandex, Opera
    В общем не суть. Разработчики chrome приняли во внимание, что пользоваться данной функцией будут, но абракадабру смотреть не захотят, вот и есть некие отступления от идеала (отмечу, технология Firefox в данном случае не идеал)
    Если говорить о моем мнении, то режим "Инкогнито" - это самообман, какой бы Вы браузер не использовали. Если уж идти по данному направлению, то нужен комплекс мер (т.е. смотреть на комп можно, а вот включать его нельзя).
    P.S. Что касается адаптации кода под различные браузеры - есть некая особенность, которая заключается в следующем: если веб-разработчики умышлено перестанут заниматься адаптацией, а писать, например под chrome, то разработчики браузеров будут вынуждены прийти к единому пониманию в отображении веб-страниц, режимам Инкогнито и т.п.
  • 06 ноября 2015 г. , редакция: 1446795852
  • Цитата
    Тогда почему все другие сайты открываются корректно?

    Чудес не бывает. Всему есть объяснение. Если возможно сообщите два адреса: один, где все плохо, и один, где все хорошо (можно и через личку). Постараюсь ответить на вопрос почему (опять же, если Вам это интересно).
  • 06 ноября 2015 г. , редакция: 1446825044
  • Цитата
    Тогда почему все другие сайты открываются корректно?

    Вариантов много, например режим "Инкогнито" в Firefox может использовать настройки хранения истории (т.е. использовать ранее разрешенный кеш и cookies - да, да в режиме "Инкогнито"). Тогда будет все ОК.
    Для того, чтобы не гадать и не слышать в ответ, а у меня не так, я и попросил адреса сайтов для моделирования ситуаций. Без этого будет лишь бесконечная переписка, т.к. пользователи чаще всего не обращают внимание на мелочи, поэтому легче один раз посмотреть и сразу ответить.

    Цитата
    При этом провайдер видит 100% посещений и хранит все у себя в логах, видит и ip и все остальное, так что в случае чего профита 0. Используйте VPN лучше

    В настоящее время провайдер это мелочь (часть айсберга). Надо не забывать о транспортном уровне и их узлах

    Цитата
    Используйте VPN лучше

    В принципе да, если ключ в момент работы канала меняется раз в две минуты не прерывая связь (интересно обычный пользователь сможет это сделать). Потом с помощью vpn можно, например, поднять корпоративную сеть, а дальше в интернет выйдет, опять же например, прокси. Поэтому смотрим активность узлов ... Не забудем и такую ситуацию, когда все вроде шифруется, все хорошо, а какой-нибудь "гном" подключит свой iphone (чтобы подзарядить его) к компу, который в свою очередь подключен к такой сети. Ну и ...
    В общем анонимность сохранится до того момента, пока это не станет кому-то ОЧЕНЬ интересно.
  • 05 ноября 2015 г.
  • Цитата
    Причем нижние так интересно: перечисляется все, что вообще существует, через запятую.

    В админке, далее Каталог, далее Характеристики, заходим на страницу характеристики и снимаем галочку с пункта "Показывать на странице товара"
  • 06 ноября 2015 г. , редакция: 1446807501
  • Цитата
    При скрытии характеристик через админку скрытие происходит во всех товарах, а это неправильно.

    Тогда, другой вариант. Откройте редактором show.view.param.php и в самом начале, после строчек
    Код
    foreach ($result["rows"] as $param)
    {

    вставьте эту
    Код
    if (($param["value"])&&(is_array($param["value"]))) continue;


    Или третий вариант, возьмите в свой штат программиста ...
  • 05 ноября 2015 г. , редакция: 1446727846
  • Под логами Вы подразумеваете то, что отображается в аминке cms, в разделе "Обновление CMS". Так там отображается время, когда Вы скачали это обновление. Я например скачал последнее обновление вчера, вот и дата у меня 05.11.2015. Но это время не говорит, когда данное обновление выложили.
    Цитата
    DIAFAN.CMS 5.4.12.6
    ZIP, 4.45 Mb
    Сегодня, 01:04
    это время, когда выложили на сайте cms в виде дистрибутива (причем время - это время их сервера, если Вы понимаете о чем я)
  • 04 ноября 2015 г.
  • Если я правильно понял Александру, то речь идет о корректировки админки под собственные нужды. Александра, то что Вы сказали сделать можно (много времени не займет), но я не представляю каким образом Вам показать код исправлений и километр комментариев о том, что и где изменить. Вот ссылка http://www.diafan.ru/dokument/full-manual/examples/, возможно поможет.
  • 04 ноября 2015 г. , редакция: 1446644188
  • Dmitry, у Вас правильное решение, но возможно Александра (когда привела в качестве примера "Скрин заказа"), то наверно хотела, чтобы в админке отображалось именно то и так. Тогда корректировка админки.
    Еще раз подчеркну, Dmitry, у Вас оптимальное решение.
  • 04 ноября 2015 г. , редакция: 1446629153
  • Это не ошибка, а особенности современных браузеров (точнее их стремление грузить страницы быстрее, вот и получаются баги кеша).
    Александра, используйте в таких случаях комбинацию клавиш Ctrl + R
  • 04 ноября 2015 г. , редакция: 1446628659
  • Здравствуйте, Александра.
    Цитата
    Интересует, можно ли осуществлять загрузку-выгрузку не всех товаров, а только определенной категории?

    Можно. В административной части сайта выбираем раздел "Каталог", далее закладка "импорт/экспорт", далее выбираем нужное Вам описание файла импорта/экспорта (в Вашем случае он, скорее всего будет называться "Импорт товаров"), далее в появившейся странице вверху, рядом с название файла импорта/экспорта ("Импорт товаров") буде ссылка с название "изменить". Жмем ссылку "изменить", тем самым перейдем на страницу "Редактировать" файл импорта/экспорта. Теперь в пункте "Категория товаров" выбираем вместо "Все" нужную категорию.
    Цитата
    Объясню смысл: когда товаров 50 штук - это не критично, а если 1000, 2000 и т.д., то это уже проблема. Нагрузка на хост огромна (уже роняла весь хост не раз), найти в тысяче товаров те, которые необходимы, затруднительно.

    Интересный Вы хост используете, поражён наповал
  • 04 ноября 2015 г. , редакция: 1446636486
  • Цитата
    Проще было бы, если б в первой строке указывались названия характеристик, которые я выгружаю

    Можно и так, только слегка пару файлов cms надо подправить (shop.export.php, shop.admin.import.php) - пару файлов потому, чтобы была обратная совместимость (выгрузил и затем выгруженный файл импортировал - ошибок нет)
    Цитата
    Можно экспорт/импорт подпилить?

    Можно, Ваше предложение можете сообщить через личные сообщения.
  • 04 ноября 2015 г. , редакция: 1446645354
  • Экспорт товара с названием полей.
    1. Файл shop.export.php
    перед функцией
    Код
    private function start(){ ... }

    добавляем следующий код
    Код

    /**
    * Старт вывода названий полей, участвующих в экспорте
    *
    * @return string
    */
    private function start_field_names()
    {
    $text = ''; $list_cation = array();
    foreach ($this->fields as $val)
    {
    $list_cation[] = $val["name"];
    }
    return $this->putcsv($list_cation);
    }

    2. В код самой функции
    Код
    private function start(){ ... }

    В самом ее начале в место строчки
    Код
    $text = '';

    пишем следующее
    Код
    $text = $this->start_field_names();

    Вот теперь экспорт такой, какой Вы хотели (первая строка содержит название полей экспорта)
    3. Соответственно если сразу импортировать файл экспорта, то будет ошибка, т.к. у нас в первой строке названия полей. Поэтому в shop.admin.import.php при чтении файла импорта игнорируем первую строчку, т.е. импорт начинаем со второй. Код не привожу, т.к. полагаю что в нем ничего сложного нет. Или не правим shop.admin.import.php, но тогда при импроте такого файла НЕ ЗАБЫВАЕМ удалять эту самую первую строчку.
    4. Можно и в админке вывести галочку (выводить название полей или нет).
  • 13 ноября 2016 г. , редакция: 1478992710
  • Цитата
    ВИТАЛИЙ (NVGPRO) соскочил...
    Вопрос цены. Все это мной давно уже сделано и соответствующие дополнения работают у клиентов. Сейчас компоную сборник дополнений к diafan.cms, в который войдут и другие "примочки". После модерации он возможно будет доступен для желающих.
  • 05 ноября 2015 г. , редакция: 1446675621
  • Цитата
    Виталий, на Вас)) надежда. Никто так и не подсказал, как вывести суммарное количество по характеристикам товара.Если это действительно сложно, то черт с ним - буду руками править available.
    Но мне кажется, что нужно просто больше знать, чем я - у опытного пользователя есть подсказка ))) Заранее - Спасибо.

    Эдуард (admin@gravity), я конечно не Виталий (DIAFAN.CMS), но все же:
    откройте редактором файл shop.yandex.php и в функцию
    Код
    private function get_offers() { ... }
    после строчки
    Код
    $cbid = ! empty($yandex["cbid"]) ? $yandex["cbid"] : $this->diafan->configmodules('cbid', 'shop', $site_id);
    просто вставьте эту
    Код
    if ($price <= 0) continue;

    Фуууф, устал. Больше кодить не надо, все задачи решились сами собой.
    Теперь поясняю:
    1. Товаров с ценой === 0 не будет.
    2. По правилам yandex.market в yml-файле больше одного товара с одинаковым названием не должно быть. Поэтому shop.yandex.php, когда генерит товары, то не выдает кресло (цвет - розовый) 10 руб., кресло (цвет - малиновый) 11 руб., а выдает только один раз - кресло 10 руб. При этом выбирается наилучшая цена. За то ответит функция
    Код
    $prices = $this->diafan->_shop->price_get_all($row["id"], 0);

    Вывод: Вам не требуется
    Цитата
    подсчитать в ней суммарное количество по каждому выводимому товару (что бы запретить присваивать цену 0 , если товар есть в одной из характеристик)
    , т.к. если он есть, то он обязательно будет ЕСТЬ.

    Александр Биг Эпл (ba5), Ваш вариант хорош, но не для shop.yandex.php,
    т.к. shop.yandex.php не включает в себя ни shop.php, ни shop.model.php, ни shop.view.buy_form.php (и вообще он не подвержен кастомизации, хотя это уточнение я привел только для информации). Поэтому Эдуард (admin@gravity) Вас и не понял, т.к. Вы (я полагаю) предлагали ему действовать по аналогии.
  • 07 ноября 2015 г. , редакция: 1446901054
  • Цитата
    Может Вы предложите более изящный код))))))))))))

    Учитывая, что здесь очень редко, но все же встречаются люди которые любят копи-пастить и не задумываться, то приведу полный вариант изменений.
    Отмечу, Эдуард (admin@gravity) это я не о Вас.
    И так, берем и открываем редактором файл /modules/shop/inc/shop.inc.price.php и с функцией
    Код
    public function get_all($good_id, $current_user = true) { ... }

    тварим следующее: в место строчки
    Код
    $this->cache["all"][$g_id] = array_merge($r_not_null, $r_null);

    пишем следующее:
    Код

    $c_not_null = array();
    $c_null = array();
    foreach ($r_not_null as $val)
    {
    if ($val["count_goods"])
    {
    $c_not_null[] = $val;
    }
    else
    {
    $c_null[] = $val;
    }
    }
    $this->cache["all"][$g_id] = array_merge($c_not_null, $c_null, $r_null);

    Далее как я ранее говорил, открываем редактором файл /modules/shop/shop.yandex.php и в функцию
    Код
    private function get_offers() { ... }

    после строчки
    Код
    $cbid = ! empty($yandex["cbid"]) ? $yandex["cbid"] : $this->diafan->configmodules('cbid', 'shop', $site_id);

    вставляем эту
    Код
    if ($price <= 0) continue;

    Вот и все, теперь самое главное: СБРОСТИ КЕШ
    А теперь лирика. Этими изменениями мы добились следующего:
    теперь в yandex.market не будут попадать товары равные нулю, а будут попадать товары с минимальной ценой. При этом будет учитываться количество товара. Т.е. раньше мог попасть товар с меньшей ценой, но с количеством равном нулю, то теперь этого не будет. Важно, если у товара вообще нет количества ни при одной из зависимых характеристик, то выбран будет товар с наименьшей ценой.
    Цитата
    Решил свою проблемму - сложил все количества характеристик

    $jkk=$prices[0]["count_goods"]+$prices[1]["count_goods"]+$prices[2]["count_goods"]+$prices[3]["count_goods"]+$prices[4]["count_goods"]+$prices[5]["count_goods"]+$prices[6]["count_goods"];

    Цитата
    $total=0;
    for($n=0; $jn<20; $jj++)
    {$total=$total+$prices[$n]["count_goods"];
    }

    Для меня это слишком круто. Эдуард (admin@gravity), я не в коем случае не говорю Вам делать так, как я написал (у всех свой подход). Но Ваш подход на мой взгляд ошибочен (если Вам будет интересно, то могу доказать)

Новости

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

Форум