• UMI CMS выдает неправильный ответ сервера?

    @ilyarsoftware
    Посмотрите внимательно (убрал лишние заголовки):

    $curl -I http://comfortauto.kz/jhfuyj/
    HTTP/1.1 404 Not Found
    Status: 404 Not Found
    
    $ curl -I http://comfortauto.kz/jhfuyj
    HTTP/1.1 301 Moved Permanently
    Status: 301 Moved Permanently
    Location: /jhfuyj/

    Первая ссылка показывает правильный ответ сервера на несуществующую страницу, вторая ссылка преадресация потому что ссылка не на "папку" т.е. не заканчивается символом "/", за это поведение отвечает параметр folder-redirect = "1" секция [seo] в файле конфигурации config.ini, подробнее тут.

    Как на этом движке вообще устроен принцип ответа сервера... ответ зависит от того что надо сделать, часто требуемое поведение ответа сервера решает секция [seo] в файле конфигурации config.ini.

    За оформление страницы 404 отвечает шаблон, меняется это в зависимости от того какой в вашем проекте используется шаблонизатор:
    • TPL: content/not_found/default.tpl
      <?php
      
      $FORMS = Array();
      
      $FORMS['block'] = <<<HTML
      <p>Такой страницы на сайте не существует.</p> 
      HTML;

    • XSLT:
      <xsl:template match="udata[@module = 'content'][@method = 'sitemap']">
        <p>Такой страницы на сайте не существует.</p>
      </xsl:template>



    Подробнее тут и тут.
    Ответ написан
    1 комментарий
  • Как закрыть админку в UMI CMS?

    @ilyarsoftware
    Верный способ запретить доступ к /admin через настройки веб-сервера, например отредактировать .htaccess в корне проекта, добавить правило:

    RewriteEngine On
    RewriteRule ^admin - [R=404,L]
    ####################### UMI_CMS_HTACCESS_BEGIN ###########################


    После применения все ссылки начинающиеся с admin/ будут отдавать код 404 (страница не найдена).

    Где находится админка уже не важно, но если интересно... Реализация админки в UMI.CMS модульная и ее реализация находится в папке соответствующего модуля (classes/modules/*/__admin.php), ее можно оставить на месте.
    Ответ написан
    5 комментариев
  • Как исправить ошибку при установке BEM?

    @ilyarsoftware
    Судя по сообщению есть проблема с правами на запись, вероятно к папке C:\Users\antonowano\.config\configstore.

    Ошибка связана с попыткой проверить на актуальность пакет bower.

    Надо убедиться что bower установлен, еще попробуй почистить кеш npm и обновить глобальные пакеты:
    npm i -g bower
    npm cache clean
    npm update -g
    Ответ написан
    5 комментариев
  • Как собрать SailsJS и BEM в один проект?

    @ilyarsoftware
    Заготовка SailsJS проекта с БЭМ внутри: sails-bem-project-stub.
    Ответ написан
    2 комментария
  • Что нужно знать, чтобы запустить bem проект на реальном сервере?

    @ilyarsoftware
    БЭМ это методология и можно найти много различный реализаций задач веб-проекта с использованием этой методологии.

    Поэтому нет однозначного ответа на вопросы, вот несколько примеров:

    • bem-flashcards для сборки использует Node.js, для подготовки словаря из XLS-файла есть ruby-скрипт, результат статика для работы нужен веб-сервер и браузер;
    • bem-forum использует Node.js для сборки и работы, поэтому необходимый минимум: веб-сервер и Node.js;
    • Вот хороший пример использования проекта-заготовки project-stub https://github.com/tavriaforever/project-stub подробнее можно прочитать тут тоже использует Node.js для сборки статики, в проекте настроена команда подготовки файлов для публикации, после ее выполнения все необходимые файлы для работы результата помещаются в папку dist;
    • bh-php библиотека позволяет использовать PHP на сервере для конвертации BEMJSON в HTML;
    • Встречал реализации на ruby.


    Какие папки оставить, а какие реальному серверу вовсе не нужны это зависит от того конкретного проекта, для этого в реальном проекте может быть реализован скрипт, который соберет все необходимое в одно месте и что то еще сделает, что может быть необходимо для работы проекта.

    Стоит отметить что большинство проектов используют JavaScript и Node.js либо только для сборки, но есть и проекты которым Node.js нужен на сервере, в статье Изоморфный БЭМ об этом рассказано подробнее.
    Ответ написан
    1 комментарий
  • Как вывести все объекты в каталоге на одной странице, UMI CMS?

    @ilyarsoftware
    Для того что макрос getObjectsList показал все товары, надо передать вместо номера страницы значение all , другими словами надо добавить на страницу ссылку:
    <a href="?p=all">Показать все товары</a>
    Ответ написан
    1 комментарий
  • Как создать в bem: в блоке блок?

    @ilyarsoftware
    Для того что бы создавать файлы блоков в desktop.blocks/block1 командой:

    bem create -l desktop.blocks/block1 -b block2 -T css


    Надо создать файл описания уровня desktop.blocks/block1/.bem/level.js с содержанием:

    exports.baseLevelPath = require.resolve('../../../.bem/levels/blocks.js');


    В результате для bem-tools папка block1 будет не просто папкой блока, а еще уровнем переопределения подобно desktop.blocks. Если это может показаться удобным, посмотри тему Группировка блоков внутри уровня переопределения.

    Для полноты ответа, важно отметить, для того использовать приведенный bemjson, достаточно создать блок block2 командой:

    bem create -l desktop.blocks/ -b block2 -T css

    Блоки это самостоятельные компоненты которые не должны знать о том куда они могут быть вложены (конечно могут быть исключения). Они создаются на уровне переопределения без иерархии, а вложенность описывается в bemjson.
    Ответ написан
  • Разбор get параметров UMI?

    @ilyarsoftware
    Вероятно это ошибка, воспроизводится на версии 2.9.7-49344.
    Ответ написан
    Комментировать
  • Почему XSL не читает куки?

    @ilyarsoftware
    Возможность получить значение куки в процессе XSLT-преобразования зависит того какой XSLT-процессор используется в рабочем окружении. Также можно наблюдать, как этот вопрос по разному решается в продуктах или библиотеках.

    В частности UM.CMS (проверял на версии 2.9.7-49344) передает значение куки в одноименный параметр при выполнении трансформации шаблона.

    Беда может быть связана с более старой версией, где это поведение не поддерживается, либо каким либо внешним багом.
    Ответ написан
    Комментировать
  • Функция сравнения в UMI, через каталог?

    @ilyarsoftware
    Такое реализовать реально, через кастомный макрос, готовых решений не встречал. Помогут эти материалы Документация по API UMI.CMS, еще может быть полезно WIKI: база знаний и готовых решений/Модуль Каталог
    Ответ написан
    Комментировать
  • Как решить проблему с Roole в БЭМ?

    @ilyarsoftware
    Модуль roole это CSS-препроцессор Rool, устанавливается в проекте:

    npm install roole --save
    ...но он на текущий момент не нужен, потому что project-stub и другие основные БЭМ-проекты перешли на stylus другой CSS-препроцессор, если твоя цель изучать БЭМ по ru.bem.info/articles/start-with-project-stub, начни с начало.
    Ответ написан
    Комментировать
  • Как выделить имеющуюся часть репозитория GIT в подмодуль?

    @ilyarsoftware
    Как написал @DmitriyEntelis "удалять раздел, коммитить без него и подключать внешний репо с целью восстановления раздела." это единственный способ, но если хотим сохранить историю выделяемой части проекта можно поступить следующим образом:

    git clone <git repository A url>
    cd <git repository A directory>
    git remote rm origin
    git filter-branch --subdirectory-filter <directory 1> -- --all
    mkdir <directory 1>
    mv * <directory 1>
    git add .
    git commit


    Источник: Moving Files from one Git Repository to Another, P...
    Ответ написан
    Комментировать
  • XSLT (umi) - как сделать вывод полей в личном кабинете?

    @ilyarsoftware
    <xsl:value-of select="document(concat('uobject://', /result/user/@id, '.moe_svoictvo'))//value"/>

    или иначе, но для того что бы работало надо в stylesheet добавить xmlns:xlink="www.w3.org/TR/xlink"

    <xsl:value-of select="document(concat(/result/user/@xlink:href, '.moe_svoictvo'))//value"/>
    Ответ написан
    Комментировать
  • Подскажите систему для коллективного перевода/локализации

    @ilyarsoftware
    Weblate написан на Python, на мой взгляд, хороший инструмент имеет тесную интеграцию с Git, память перевода, словарь, интеграция с автоматической системой перевода, есть демо, поддерживает форматы Gettext, Qt, Java, Windows, Symbian и еще, есть API, но нет методов для авторизации, только Хуки уведомлений, экспорт и RSS фиды. Нахожу только один поправимый минус из доступных языков интерфейса нет русского.
    Ответ написан
  • Вопрос по Chef

    @ilyarsoftware
    Для целей миграции или восстановления — смысл есть, еще по пряному назначению Chef — контроль/управление конфигурацией.
    Ответ написан
    Комментировать