Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.
Всего найдено: 5679
-
23 августа 2016 г.
-
А GET - это не ЧПУ?ЦитатаНе, это не в GET это именно в чпу.
Любой адрес с помощью mod_rewrite превращается в GET rewrite.
Попробуйте сами на любом сайте на DIAFAN.CMS, страница site.ru/news/ = site.ru/?rewrite=news/
Всё, что приходит в адрес после корня домена, вся текстовая строка с помощью mod_rewrite (плагина апача) передается в одну единственную переменную $_GET["rewrite"].
DIAFAN.CMS работает с этой переменной, разбирает её, ищет в БД совпадения ЧПУ и т.д.
Не надо искать подвоха на стороне CMS, это вообще не там. Механизм примитивнейший донельзя:
1. Вы запросили site.ru/adres_stranicy/bla-bla/
2. Сервер, в лице mod_rewrite превратила это в конструкцию site.ru/?rewrite=adres_stranicy/bla-bla/ и передала в DIAFAN.CMS
3. DIAFAN.CMS отбрасывает окончание "/" (согласно настройкам сайта), и идет в БД искать страницу со строкой adres_stranicy/bla-bla. Находит - выводит. Не находит - 404.
Всё!
Теперь другая ситуация:
1. Вы запрашиваете site.ru/adres+stranicy/bla+bla/
2. Сервер, в лице mod_rewrite превратила это в конструкцию site.ru/?rewrite=adresstranicy/blabla/ и передала в DIAFAN.CMS
3. DIAFAN.CMS отбрасывает окончание "/" (согласно настройкам сайта), и идет в БД искать страницу со строкой adresstranicy/blabla. И не находит, так как в БД указано adres+stranicy/bla+bla!
Вот Вам и 404!
То есть, роль DIAFAN.CMS тут минимальна: взять строку и искать её в БД. И если Апач режет плюсики, и подсовывает CMS-ке коцанную строку, извините.
Я поэтому и говорю,ЦитатаКод<?php
echo $_GET["a"];
?>
и запрашиваете site.ru/1.php?a=aaa+aaa
И смотрите, что выходит.
Если плюсик не выходит, идете в ТП хостинга, и просите сконфигурировать Апач так, чтобы выходил. Как только этот скрипт 1.php начнет выдавать строку с +, заработает и ЧПУ с плюсиками в DIAFAN.CMS -
-
-
-
18 августа 2016 г.
-
Конечно, вероятность того, что сторонний разработчик исчезнет выше, чем вероятность нашего исчезновения, но к шаблонам не нужно относиться, как к бриллиантам или недвижимости. Это же стартовый "набор" для запуска сайта. Вы купили шаблон, он должен запуститься на актуальной версии цмс, Вы получаете сайт, всё. В течение месяца можно разработчику косяки какие-то предъявить. А далее уже никаких вопросов, сайт работает, поддерживайте его сами.
Безусловно, никакой вечной пожизненной и бесплатной поддержки единовременая плата за шаблон не подразумевает.
Да, были неприятные недоразумения с одним из первых разработчиков, первый блин комом, но жизнь продолжается. Проблема была в том, что разработчик слишком сильно перерабатывал дизайн, не всегда учитывая и обеспечивая дополнительную функциональность системы, которая вылезала косяками. Мы его шаблоны сняли с продажи.
Сейчас в аддонсах есть много шаблонов других разработчиков, у которых есть продажи и нет претензий. Читайте отзывы, смотрите демы. В любом случае, страшного ничего нет, не машину же покупаете. -
-
-
-
24 августа 2016 г.
-
Конечно, нет, это не товар. Это услуга. Услуга верстки, интеграции, установки.
Как подстричься в парикмахерской, сделать укладку. Вам красоту навели, а дальше сами будьте любезны причесывайтесь. Претензии принимаются только пока Вы в кресле сидите. А бегать потом год в парикмахерскую "ой, чё-та я оброс, ну-ка подровняйте меня бесплатно, что вообще за херня?" это бред. -
-
-
-
24 августа 2016 г. , редакция: 1472023059
-
Дмитрий!!! Весь сайт addons.diafan.ru строился вокруг этой страницы: http://addons.diafan.ru/o-sayte/ !!!ЦитатаКомпания Диафан не несет ответственности за дополнения, загруженные партнерами. Техническая поддержка таких дополнений осуществляется их разработчиками. Условия поддержки своих дополнений каждый партнер определяет сам.
Сначала была эта страница и этот текст, а затем были шаблоны!
П.С. Так и не понял, о чем речь, о какой оценке и о какой позиции идет речь на скринах... -
-
-
-
24 августа 2016 г.
-
Об этом Вам все уже сказали не раз за полгода как минимум! Все это знают, понимают, и это логично! Вы один, что ли, считали, что мы должны годами поддерживать и бесплатно дорабатывать шаблоны, за которые другие люди получили деньги??? Это даже не смешно.Цитаташаблоны от сторонних разработчиков вы считаете левыми и любые вопросы с ними будут проходить мимо ушей тех.поддержки.
Более того! Такой поддержки Вы и по нашим шаблонам не получите! Сейчас получается, что наши шаблоны продаются, поэтому Вы всегда можете скачать обновленный шаблон в кабинете. Но это не поддержка именно Вашего того самого шаблона, купленного год назад! Если мы снимем его с продажи и выйдет новая сборка CMS, на которую этот шаблон не встанет, мы ничего дорабатывать не будем! -
-
-
-
24 августа 2016 г.
-
Этот вопрос тоже давным давно был разжеван.
Он вынесен в FAQЦитатаНаличие лицензии проверяется раз в сутки нашим сервером, более сайт не беспокоится. Блокировка сайта происходит только в одном случае, если наш сервер сообщает об отсутствии лицензии. Если наш сервер не доступен, работоспособность сайта не нарушается.
То есть!
Если пропадет (исчезнет, закроется) Диафан, все сайты будут освобождены от гнёта! Тотальная свобода! -
-
-
-
17 августа 2016 г.
-
Только если написать свою функцию, воткнуть её тег в шаблон, которая будет брать все блоки и выводить их согласно sort.
-
-
-
-
11 августа 2016 г. , редакция: 1470912866
-
Степан, тут важно понимать логику системы.
Есть доки, где одна из самых интересных страниц - Архитектура БД DIAFAN.CMS
(маленькое отступление: документация у нас в большинстве своем генерируется "на лету", из гита, где лежит система. ПОМНИТЕ, что когда мы выкладываем очередное обновление, и там в каком-то модуле есть изменения в БД, они сразу будут отображены на этой странице! То есть, документация анализирует инсталл-файлы всей CMS из гита и на основании их формирует документацию, например, поэтому модуль отзывов мы еще не описали в доках, т.к. полируем его еще, но на станице доков БД таблица модуля "отзывы" REVIEWS уже есть)
Так вот, нужно помнить, что все цены всех товаров у нас лежат в таблице SHOP_PRICE
Мы писали https://habrahabr.ru/company/diafan/blog/300930/ что мы все пересчеты делаем только в админке, как раз на примере цен:
Цитата7. Минимизируйте динамическое получение данных
Лучше один раз подождать администратору сайта, чем ждать будет каждый пользователь.
Например, в Diafan.CMS есть гибкая система скидок, когда у одного товара может быть несколько цен, каждая с установленной скидкой, еще и в разных валютах. Мы не высчитываем новые цены на сайте для каждого посетителя сайта. Мы делаем это при установке скидки в административной части сайта, считаем все различные варианты цены для выбранных товаров и собираем их в отдельную таблицу shop_price с признаком price_id. Исходная цена на товар определяется как id=price_id. Если id<>price_id, то это уже вариация цены либо со скидкой либо в основной валюте сайта. И в этой таблице сразу указывается для кого эта цена (если она установлена для какой-то конкретной группы пользователей).
Да, если товаров много, при добавлении или изменении скидки администратор будет ждать, глядя на крутящееся колесико. Зато посетителям сайта ждать не придется, ведь при выводе на сайте, а также при поиске, сортировке и прочих ёмких операциях система просто из всех доступных цен из одной таблицы по одному price_id выбирает самую маленькую и всё.
Таким образом делаем вывод, что когда мы меняем курс валют, все цены пересчитываются. Ведь единая цена по всему сайту у нас в основной валюте.
Значит, идем в админку, в файл валют: /modules/shop/admin/shop.admin.currency.php
Видим функцию save_variable_exchange_rate()
Там один запрос на сохранение нового курсаКодUPDATE {shop_currency} SET exchange_rate='%f'
иКод$this->diafan->_shop->price_calc(0, 0, $this->diafan->id);
судя по названию price_calc - пересчет цен.
Все такие функции лежат в /modules/shop/inc/shop.inc.price.php
(подключение $this->diafan->_shop->price_calc() означает взять из INC файла PRICE shop.inc.price.php функцию CALC)
Открываем файл и видимКод/**
* Рассчитывает все возможные вариации цен и записывает их в базу данных
*
* @param integer $good_id номер товара, если не задан, цены рассчитываются для всех товаров
* @param integer $discount_id номер скидки
* @param integer $currency_id номер валюты, если нужно изменить цены, указанные в валюте
* @return void
*/
public function calc($good_id = 0, $discount_id = 0, $currency_id = 0)
То есть, эту функцию можно дергать где угодно, чтобы пересчитать цены. Для скидок. Для валют.
Поэтому Ваша задача сделать модуль, который дернет курс валюты с сайта ЦБ, запишет его в БД shop_currency и дернет в его учетом функциюКод$this->diafan->_shop->price_calc(0, 0, $this->diafan->id);
-
-
-
-
11 августа 2016 г.
-
Идея хорошая, публичные вопросы и публичные ответы. Я буду вести топик, если что привлекать коллег. Все могут задавать уточняющие вопросы.
Степан, давайте только сразу договоримся об удобсстве. Каждый вопрос отдельным сообщением, чтобы на него можно было отдельно отвечать и обсуждать. Я разделю тему. -
-
-
-
11 августа 2016 г. , редакция: 1470911766
-
СТЕПАН (IDXDOC):
Вопрос 1:
Вчера увидел в проектах задачу сделать автообновление курса валют, что и сам уже давно хотел сделать, но руки не доходили.
Мне это важно сделать, поскольку у меня 30 сайтов, на которых все товары в валюте, и каждое утро менять руками это не очень круто.
Помимо автообновления нужно сделать поле, в котором будет записываться процент, который необходимо вычитать их курса валюты. -
-
-
-
11 августа 2016 г. , редакция: 1470911784
-
СТЕПАН (IDXDOC):
Вопрос 3:
В поиске по товарам, вывести минимальную и максимальную цену в рублях, даже если в админке цены в валюте, в зависимости в какой мы категории
Находил решение, просто поставил в нужное место и все заработало, а почему это решение работает так и не понял, но работало оно пока я не переписал цены в валюту. -
-
-
-
15 августа 2016 г.
-
1. Тут как обычно, двигаться надо от основного: от БД. Любая информация запоминается в базе, поэтому смотрим, что есть, и думаем, как это можно нарастить.
Наша любимая страница из доков: Архитектура БД таблица#bs_site_rel - видим, что в ней хранится связь баннеров и страниц сайта.
Далее уже думать, как лучше приделать категории. Можно отдельную таблицу сделать, можно в эту добавить поле category_id -
-
-
-
15 августа 2016 г.
-
2. Админка. Стандартный файл modules/bs/admin/bs.admin.php, нужно добавить там категории магазина.
Основа админки модуля - массив $variables
Если добавить туда поле, которое есть в основной таблице модуля, и его тип ('type' => 'text' поле, 'type' => 'checkbox' галка, 'type' => 'editor' визуальник, 'type' => 'date' календарик, 'type' => 'numtext' числа, и пр.) оно сразу оформится в админке и будет работать на сохранение.
Собственно, это все описано в доках http://www.diafan.ru/dokument/full-manual/examples/new-field/
Если поле требует не просто ячейки, а каких-то операций, его можно описать функцией.
Если функция системная, она подтянется из adm/includes/edit_functions.php, например, называя поле site_id и указывая его тип 'type' => 'function', выполнится функция edit_variable_site_id(), которая выведет список страниц сайта.
Если функции нет, и мы что-то совсем левое хотим, весь алгоритм работы поля можно определить прям в modules/bs/admin/bs.admin.php.
То есть, мы добавляем FFFF в $variables и хотим на это поле что-то свое повесить. Тогда мы ниже просто приделываем функцию edit_variable_FFFF() и пишем в ней что хотим, любой алгоритм.
Есть системные названия внутренних функций, для переопределения стандартного поведения системы.
edit_variable_ПЕРЕМЕННАЯ - изменение редактирования любого поля модуля
list_variable_ПЕРЕМЕННАЯ - изменение вывода любого поля в списке модуля
save_variable_ПЕРЕМЕННАЯ - поменять алгоритм сохранения любого поля.
и пр.
Тут надо внимательно прочитать http://www.diafan.ru/dokument/full-manual/developers/admin/module/ и один примерчик http://www.diafan.ru/dokument/full-manual/examples/new-admin/
Я не знаю, насколько нужно отступать в теорию, насколько Вы знаете основы. Объяснять сначала их, или сразу говорить, что нужно использовать в данном случае. Хотя лучше было бы, если бы задавались предметные вопросы, почему тут так, и почему тут эдак.
Возвращаясь к задаче, нужно добавить в $variables переменную cat_shop_id типа function и описать её в баннерах, где запрашивать категории магазина и выводить их списком. Система сама сохранит их в БД -
-
-
-
15 августа 2016 г.
-
3. Третий шаг - фильтровать вывод баннеров на сайте, согласно цифрам ID категорий из БД. Это уже не сложно.
Это modules/bs/bs.model.php
Функция show_block()
Там запрос SELECT , где сейчас отбираются только те баннеры, которые прикреплены к текущей страницеКод....
AND (r.site_id=%d OR r.site_id=0)
...
(кстати, надо объяснять, что такое %d в запросе?)
Сюда нужно только добавитьКод....
AND (r.cat_shop_id=%d OR r.cat_shop_id=0)
... -
-
-
-
11 августа 2016 г.
-
Хотелось бы обратиться по имени, а не "СОФТ", ну да ладно.
Так вот. Это все вопросы минутные, вишлист тут не причем особо, можно просто задавать вопросы в ТП, для того она и существует. "А как мне сделать так, чтобы по кнопке выбрать из ранее загруженных были все картинки из всех модулей?" и сразу получить ответ.
Мы же не дебилы, мы всё понимаем и учитываем, руководствуемся логикой. Модуль обработки изображений для всей системы один, все картинки хранятся в одной базе, но имеют признаки, из какого они модуля. Мы предусматривали возможность использовать все картинки из всех модулей, это действительно делается одной "перемычкой" в запросе в надмодуле "Изображения". /modules/images/admin/images.admin.action.php
ФункцияКод/**
* Подгружает изображения для выбора
*
* @return void
*/
private function view()
Там два запроса, на $count (для пагинатора) и $rows (для фоток),
Уберите AND i.module_name='%s', и за кавычками $module_name, и все.
Мы изначально делили картинки по модулям, так как это будет та самая свалка, открываешь товары, а там фотки из новостей, статей, файлов, форумов и пр. И наоборот, для новостей открывается 100500 фоток товаров. Зачем это надо?
Не, ну если надо, вопрос минуты. Да какой минуты, 10 секунд. -
-
-
-
11 августа 2016 г.
-
Охереть, какая железобетонная, убрать AND i.module_name='%s' в запросеКод
SELECT i.* FROM {images} AS i"
.$inner
." WHERE i.trash='0' AND i.image_id=0 AND i.module_name='%s'
/modules/images/admin/images.admin.action.php
Вы если некомпетентны, в архитектуре не разбираетесь, не острили бы.
А если разбираетесь, но просто провоцируете, то Ваши сообщения можно расценивать как разжигание бессмысленного флейма, за что я тоже буду банить. -
-
-
-
11 августа 2016 г.
-
Как раз таки высшая степень уважения к клиенту, это обращение к нему по имени. В любом банке так, агентствах элитной недвижимости, в отелях, бизнес-классе самолетов и пр.ЦитатаА не нужно фамильярничать, у Вас же серьёзная, уважающая клиентов и партнёров, организация?А мне как с Вами разговаривать? Как с секретаршей Зиночкой, или как с квалифицированным партнером разработчиком? Тогда про галочку я или соглашусь или нет.Цитатаэто когда галочка в админке и список с выбором. Мы же про CMS?
Хотя раньше я озвучивал не раз нашу идеологию: галочки мы выносим в том случае, если в ней есть потребность, то есть нужно включать/выключать. Если какой-то алгоритм работы системы не требует постоянных переключений, очевиден, логичен и им пользуются 98% пользователей, галочка не нужна точно.Цитата"Разрешить использовать изображения из галереи"
До сегодняшнего дня этот вопрос не всплывал вообще никак, ни в каком виде, ни от кого. Из чего можно сделать вывод, что всех всё устраивало.
Если Вас не устраивает алгоритм фильтрации ранее загруженных фотографий по модулям, делайте предложение в вишлисте. Поддержит Вас толпа пользователей, сделаем мыв коробку, делов-то...ЦитатаУберите AND i.module_name='%s', и за кавычками $module_name, и все. -
-
-
-
11 августа 2016 г.
-
ЦитатаИменно галочек то и не хватает. Контент менеджер, или домохозяйка, не будет править запрос и лезть в исходники. Сайты на диафане для кого делаются? для программистов или для людей?
Да нафиг это людям не надо! Чё за бред-то? Получает клиент сайт, и ему потом надо пойти в какую-то настройку, чтобы один(!!!!!!!) раз перед использованием сайта включить какую-то вонючую галку!? Фантастический бред!Да! Не будет! И не должен лезть, это работа программиста!!!ЦитатаКонтент менеджер, или домохозяйка, не будет править запрос и лезть в исходники.
Сайты на Диафане делаются программистами(!!!!!) и для людей(!!!!!)!!!
Нормальный программист узнает потребности клиента, меняет за 10 секунд нужные параметры в простом легком лаконичном коде и сдает чистый удобный настроенный сайт! Всё!!!! Какая нахрен галка???
Это Ваш первый в жизни сайт, что ли? -
-
-
Новости
-
25 марта, вторник
-
Мы обновили систему тарифов, учитывая опыт работы с клиентами и современные рыночные условия. Новая тарифная сетка разработана специально для того, чтобы лучше отвечать вашим потребностям. Резкого повышения цен не произошло. Более того, некоторые тарифы даже стали выгоднее и доступнее.
-
17 января
-
В преддверии 2025 года была выпущена сборка 7.2.5, которая не приносит радикальных изменений в функциональности, но способствует повышению стабильности работы системы и расширению возможностей облачного сервиса для создания сайтов.
-
18 июня 2024 г.
-
В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
Блоги
-
24.04.2024
-
Выпустили новую сборку DIAFAN.CMS 7.1.4.
Блоги
-
12.01.2024
-
В данном руководстве познакомим вас с панелью управления DIAFAN.CMS