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

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

  • 21 октября 2013 г.
  • http://cms.diafan.ru/dokument/full-manual/upmodules/images/#images_variations
    Создаете нужное количество обработок исходной фотографии. "Превью список (prew_spisok)", "Превью в полное (prew_polnoe)" и "Большая картинка (large)". Будете загружать фотку, она превратится в три разные соответствующие фотографии. Затем на получении их используете имена размеров
    Код
    $images = $this->diafan->_images->get("prew_spisok", $id, "news", $site_id, "Название");
  • 14 октября 2013 г.
  • Открываете страницу, НА которую надо сделать редирект, раскрываете "Дополнительные параметры" и там в поле "Редирект со страницы на текущую" вписываете
    Цитата
    /katalog.html?catid=117&module_ajax=&action=search&p11[]=103
  • 15 октября 2013 г.
  • Брр. Не понял, да. Т.е. Вы ищете товары поиском, получаете список товаров и ссылку. Берете эту ссылку и хотите ее куда-то редиректить на другую страницу сайта? На какую? С каким адресом? Зачем?
    Через .htaccess можно, просто условия будут немного другие, чем обычно
  • 15 октября 2013 г.
  • Ха! Каша у Вас в голове
    301 редирект - это когда по одному адресу запрашивается страница, но у страницы теперь другой адрес, и система об этом знает, что страница была по старому адресу, но теперь адрес у нее новый. Соответственно, делается редирект. В Вашем случае для системы есть страница с поиском товаров, с адресом /katalog.html?catid=117&module_ajax=&action=search&p11[]=103. Система эту страницу знает именно по этому адресу. Если Вы делаете редирект на страницу /katalog/117/search/103/ - система думает "Что это??? Я понятия не имею, что это за адрес" - и ничего не работает. То есть, вывод: чтобы работал 301 редирект, конечный адрес должен быть известен системе, она должна открывать эту страницу.
    Путь решения проблемы для небольшого количества страниц (ручная работа):
    1. Вы создаете страницу сайта, обычную. Делаете ей ЧПУ /katalog/117/search/103/. В визуальный редактор вставляете шаблонный тег поиска по товарам show_block module=shop param=*** с Вашим catid и p11=103
    2. Кормите Яндексу существующие страницы /katalog/117/search/103/, которые известны системе и работают

    Путь решения проблемы для большого количества страниц (автоматический режим) теоретический
    Я точно не помню, но мне кажется пару лет назад я делал что-то подобное, через регулярку в htaccess. Особенность была в том, что мы запрашиваем УРЛ1, правило подгружает содержимое УРЛ2, но в адресной строке остается УРЛ1. Т.е. система знает УРЛ2. И при запросе УРЛ1, система думает, что просят УРЛ2 и его отдает. Как раз можно сделать при запросе /katalog/117/search/103/ адрес остается в строке именно этот, но цмс отдает содержимое /katalog.html?catid=117&module_ajax=&action=search&p11[]=103.
    И через регулярку пишется, чтобы 117 из katalog/ подставлялось в catid и т.д.
    Но еще раз говорю, точно я не помню, ни правило, но регулярку. Это надо погуглить. Вроде можно.
  • 14 октября 2013 г.
  • Топик такой, с вызовом.
    Данил, Вы чего ждете здесь? Ответов "Да, диафан будет лучше"? Или извинений за "несоблюдение сроков"? Или жаркую дискуссию по каждому пункту, что все не так, как Вы говорите?
    Цитата
    Почему нельзя в документации навести порядок?
    Порядок - понятие относительное. Сильно зависящее от привычек конкретного человека. Кто-то видит в разбросанных по столу документах хаос, а для кого-то все по рукой. И ровные стопки не удобны и не привычны. Мы делаем документация так, как нам кажется будет удобно и понятно пользователям. Мы вообще все делаем так, как нам кажется, будет удобно людям, и интерфейс цмс и функции, и шаблонные теги. Они не похожи на другие цмс, но людям нравится. Все нравиться нельзя, поэтому те, кому нравится - работают с нами. Кому не нравится, делают сайты на других цмс. Нет проблем.
    Цитата
    5.3. версия рабочая, можно ли на ней делать дорогой проект-портал, чтобы стыдно потом перед заказчиками не было?
    Это вообще странный вопрос. Откуда кто-то может знать, будет ли Вам стыдно?
    Цитата
    Где гарантии, что данный проект не закроется через энное время.
    Гарантий нет. Ничто не вечно. Где гарантии, что Apple не закроется завтра?
    Цитата
    Самое главное, что не нравится, это несоблюдение сроков событий. Цмс 5.3. - документация старая, непонятно к какой версии имеет отношение. 1 октября демо старое, новости о релизе потом выходят. Как-то так...
    Мы обещаем выпустить релиз 1-го октября, мы это сделали. Написать новость о выходе релиза ровно 1-го октября мы не обещали. А дема обычно после выхода релиза обновляется.
  • 14 октября 2013 г.
  • Цитата
    Например, я с ним полностью согласен, и мне, как клиенту было бы удобно, если бы в документации было бы указано к какой версии относится тот или иной функционал, если есть различия . Хотя бы для последних релизов. В данном случае 5.2 и 5.3
    Я представляю как это сложно вести такую документацию, но тем не менее.

    Документация, вопрос очень больной. И большой. Те, кто занимался разработкой мало-мальски крупного продукта, знают, что задокументировать программу часто даже сложнее и дольше, чем ее саму написать. У нас все распылено пока, документацию пишут программисты, под контролем ведущего программиста, после самой разработки. Вот и получается, что есть заминки и задержки. Но мы уже решили, буквально на прошлой неделе, что будем объявлять вакансию технического писателя, который будет заниматься только документацией. Так что этот вопрос мы скоро решим, надеюсь, полностью и навсегда.
  • 15 октября 2013 г.
  • Это потому, что в menu.view.show_level_2.php рекурсия в самого себя menu.view.show_level_2.php.
    menu.view.show_level_1.php при углублении ссылается на menu.view.show_level_2.php, а menu.view.show_level_2.php сам на себя.

    Пожалуйста, нет проблем. Скопируйте menu.view.show_level_2.php в menu.view.show_level_3.php, измените там шаблон вывода - будет уровень 3 показываться отдельно. Конечно, не забудьте из menu.view.show_level_2.php сослаться на 3

    Сделайте menu.view.show_level_4.php menu.view.show_level_5.php и menu.view.show_level_6.php - будет у вас 6 внешних видов всех 6 уровней
  • 14 октября 2013 г.
  • В модельке получаете, /modules/photo/photo.model.php в функции id()
    Для верности находите присвоение текста-анонса
    Код
    $this->result["anons"] = $this->diafan->_useradmin->get($this->result["anons"], 'anons', $this->diafan->show, 'photo', _LANG);
    и ниже приписываете
    Код
    $this->result["nastra"] = $this->diafan->configmodules("nastr");

    Затем во вьюхе photo.view.id.php где надо выводите
    Код
    echo $result["nastra"];


    Я только не понял, зачем на отдельной странице одной фотографии выводить количество фоток на странице
  • 14 октября 2013 г.
  • Вам надо копаться в настройках обработчика картинок для магазина, это во-первых. Ставьте качество 80-90, не надо 100. Разницы не заметно особой, а размер меньше заметно. Задавайте нужный размер для картинок. Затем можете нажать "Применить настройки ко всем ранее загруженным" - скрипт перегенерит все картинки согласно настройкам. Автоматически и всё сразу.
    Мы недавно переносили магазин, фоток было тысяч под 10. Все перегенерились под новые размеры успешно.
    А затем же можно смотреть на сайте, как их оформить.
  • 15 октября 2013 г.
  • Сергей, как это "не смогли помочь"? Пишите тогда как есть, что "помочь техподдержке я не разрешил"
    Этот участок проверяет, является ли выводимый пункт меню категорией, которая впоследствии была отключена, чтобы пункты меню не вели на 404. Этот участок успешно работает на стандартных сборках. Однако, как Вы признались в техподдержке, Вы много чего кастомизировали в движке. Проблем нет, техподдержка готова выяснить, что конфликтует, но тестовый доступ к ftp Вы не дали.
  • 11 октября 2013 г.
  • Документацию обновляем.
    В целом, все таблицы _rel - таблицы связей, вложенностей. Какая запись какой принадлежит. Это для снижения нагрузки на sql. Чем выуживать многоэтажным запросом структуру категорий, например, проще иметь небольшую лишнюю табличку. Зато выполнение запросов в несколько раз быстрее.
  • 11 октября 2013 г.
  • Это системный список мультивыбора, работает всегда и везде одинаково, от нас не зависит. Удерживаете ctrl и ставите несколько пунктов. Или кликаете на единственный выделенный пункт, удерживая ctrl, и снимаете его
  • 08 октября 2013 г.
  • Денис, Вы определитесь сначала, где именно нужно вывести это количество. В карточке товара, в списке товаров, в блоке?
    Соответственно, этот запрос надо совать в ту функцию, list, id или show_block, там же, где получаются название товара, описание и пр. И присваиваются в $row[], для передачи во view. Вот там же прилепляете $row["comments"]
    Затем выводите в view
  • 11 октября 2013 г.
  • 1. Включаете режим разработчика и отключаете кеширование.
    2. В модельке берете функцию, например, id() для карточки.
    3. Разбираете структуру функции, видите там запрос в БД, формирование массива result для передачи во вьюху. И вот рядом с формированием названия, текста товара и пр., и перед передачей result суете этот код.
  • 15 октября 2013 г. , редакция: 1381826589
  • Ох, Денис, Денис.
    Вы говорите, что выводите товары на главную, значит через show_block.
    Следите за мыслью:
    1. В параметрах сайта отрубаем кеширование и включаем режим разработки.
    2. Идем в /modules/shop/shop.model.php и находим там public function show_block. Видим, что функция собирает параметры в сборный запрос, формирует большой сложный SELECT и затем вызывает
    Код
    $rows = $this->get_elements(...);

    Понимаем, что массив $rows с товарами формирует функция get_elements, которая находится здесь же, в этом файле.
    3. Находим ниже функцию public function get_elements, видим, что значения товаров для списка набиваются в массив $row, где как раз и сидят имена товаров, картинки, всякие прочие параметры и все это в цикле. В конце цикла формируется массив $rows, который каждым своим значением имеет массив отдельного товара. Ну не суть. В общем, это строка
    Код
    $rows[$i] = $row;
    То есть, поля каждого отдельного товара заполнились и засунулись в массив $rows.
    А в самом конце функции массив $rows возвращается.
    Код
    return $rows;

    Так вот! Перед тем, как переменные массива $row (а это отдельные поля отдельного товара) добавляются в массив $rows, нам надо добавить туда еще одну переменную $row, в которой будет сидеть количество комментариев к этому отдельному товару! Понимаете?
    То есть, перед
    Код
    $rows[$i] = $row;

    Добавляем наш код!
    Код
    $row["comments"] = DB::query_result("SELECT COUNT(*) FROM {comments} WHERE module_name='shop' AND element_id=%d AND trash='0'", $row["id"]);
    $rows[$i] = $row;

    Все! Переменная в количеством комментариев сидит у нас в модельке у каждого товара в массиве row с ключем comments.
    4. На всякий случай убеждаемся, что не только show_block, но и show_block_rel и прочие функции также используют get_elements для получения списка товаров, так что comment теперь будет сидеть у нас везде!
    5. Осталась мелочь! Идем в /modules/shop/views/shop.view.show_block.php и выводим количество комментариев где нам надо. Например, так:
    Код
    //название и ссылка товара
    echo '<div class="shop_name"><a href="' . BASE_PATH_HREF . $row["link"] . '">' . $row["name"] . '</a> (комментариев: '.$row["comments"].')</div>';

    6. В каждой остальной вьюхе так же.
  • 21 октября 2013 г.
  • Цитата
    строка 1022
    Строка тут не особо важна.
    Принцип тот же, что я описывал.
    Идем в /modules/shop/shop.model.php ищем там функцию id()
    И там где-нибудь среди прочих формируемых переменных $this->result[] прибавляем свою любую, названную как угодно, например $this->result["comments_cnt"].
    Затем ловим ее во вьюхе /modules/shop/shop.id.php как $result["comments_cnt"]

Новости

  • 19 сентября
  • Мы внесли изменения в лицензию и объявляем, что прекращаем техническую консультационную поддержку сайтов на DIAFAN.CMS версий старше 7.0. А это все минорные версии платформы, предшествующие актуальной линейке, а именно: версии серии 4.x, 5.x, 6.x.
  • 15 сентября
  • У нас отличные новости! Мы выпустили новую сборку DIAFAN.CMS 7.3, которая включает встроенные нейросети непосредственно в административной панели. Это значит, что создание контента для вашего сайта больше не будет проблемой — искусственный интеллект возьмет эту задачу на себя, избавляя вас от необходимости привлекать копирайтеров или тратить время на написание текстов самостоятельно.
  • 25 марта
  • Мы обновили систему тарифов, учитывая опыт работы с клиентами и современные рыночные условия. Новая тарифная сетка разработана специально для того, чтобы лучше отвечать вашим потребностям. Резкого повышения цен не произошло. Более того, некоторые тарифы даже стали выгоднее и доступнее. 

Блоги

  • 10.09.2025
  • DIAFAN.CMS славится нагрузоустойчивостью и безопасностью, про инциденты со взломом сайта на нашей системе давненько не слышали, но недавно получили мы письмо от fstec.ru такого характера:

    Обнаружена уязвимость в CMS-системе DIAFAN, позволяющая нарушителю, действующему удалённо, красть сессионные куки через XSS-атаку.

Форум