Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

Последние сообщения

Страницы: [1] 2 3 ... 10
1
Шаблоны PHP / Re: Как сделать языковые версии сайта
« Последний ответ от Faiffer 29 Апреля 2020, 12:31:03 »
Лес рук ))) Короче сделал вот так! Все работает, код прилагаю

<?php

$data = $this->macros('system', 'getLangsList');
$items = $data['items'];
$lang = $variables['lang'];
?>

<?php if (umiCount($items) > 0): ?>
   <div>
      <div class="lang_list">
         <?php foreach ($items as $item): ?>
            <?php if ($item->getIsDefault() && $lang=='ru'): ?>
               <a class="default active" href="/">
                  <span><?= $this->escape($item->getPrefix()) ?></span>
               </a>
            <?php elseif ($item->getIsDefault()): ?>
               <a class="default" href="/">
                  <span><?= $this->escape($item->getPrefix()) ?></span>
               </a>
            <?php elseif (isset($lang) && $item->getPrefix() == $lang): ?>
               <a class="<?= 'lang_'.$lang ?> active" href="javascript:void(0)">
                  <span><?= $this->escape($item->getPrefix()) ?></span>
               </a>
            <?php else: ?>
               <a href="<?= '/'.$item->getPrefix() ?>">
                  <span><?= $this->escape($item->getPrefix()) ?></span>
               </a>
            <?php endif; ?>
         <?php endforeach; ?>
      </div>
   </div>
<?php endif; ?>
2
Шаблоны PHP / Как сделать языковые версии сайта
« Последний ответ от Faiffer 15 Апреля 2020, 13:30:55 »
$data = $this->macros('system', 'getLangsList');
$items = $data['items'];
?>

<?php if (umiCount($items) > 0): ?>
   <div>
      <ul class="lang_list">
         <?php foreach ($items as $item): ?>
            <?php if ($item['is-current'] == 1 || $item['is-default'] == 1): ?>
               <li class="active">
                  <a href="<?= $variables['domain'] ?>"
                     <?= $this->escape($item['prefix']) ?>
                  </a>
               </li>
            <?php elseif ($item['is-current'] == 1): ?>
               <li class="active">
                  <a href="<?= $variables['domain'] ?>/<?= $variables['lang'] ?>">
                     <?= $this->escape($item['prefix']) ?>
                  </a>
               </li>
            <?php else: ?>
               <li>
                  <a href="<?= $variables['domain'] ?>/<?= $variables['lang'] ?>">
                     <?= $this->escape($item['prefix']) ?>
                  </a>
               </li>
            <?php endif; ?>
         <?php endforeach; ?>
      </ul>
   </div>
<?php endif; ?>

Но в результате получаю ошибку - Ошибка (Error): Cannot use object of type lang as array

http://prntscr.com/rzqc5x  по сути на выходе я получаю массив с 3мя объектами внутри.
3
Новости / Перезагрузка
« Последний ответ от Vladimir 01 Марта 2020, 11:39:38 »
Хорошо, что все обошлось и сайт заработал. А то после нескольких дней оффлайна сайта я взгрустнул. Админу спасибо за поддержку и удачи!
4
Как я понял Вам нужно было получить список новостей отфильртованных по определённому значению выподающего списка, если так, то можно воспользоваться сортировкой usel?
Вот кусок из документации http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/#sel=131:1,131:36 :
<!-- Найти все страницы, либо объекты, 
у которых свойство "recommend" равно странице с адресом "/market/akse.../",
либо странице с id равным "23025" -->
<property name="recommend">
  <page>/market/aksessuary_dlya_homyachkov/povodki/povodok_leopardovyj/</page>
  <page>23025</page>
</property>


5
Custom макросы / Кастомизация Catalog
« Последний ответ от pandus 25 Сентября 2019, 19:05:11 »
Привет, помогите если знаете в чём может быть проблема. Все этапы описал досконально чтобы при желании Вы могли воспроизвести ошибку.
В системе UMI есть Catalog у него есть основные методы category и object как добавить ещё один свой метод manufacturer? Чтобы он работал похожим образом как category.

Чтобы это сделать делал следующее:
1. В Шаблоны данных->Настройки модуля добавил:
Название: Производитель
Модуль   : catalog
Метод     : manufacturer

2. В Шаблоны данных->Типы данных в Раздел сайта добавил тип Производитель с методом manufacturer

3. В styles/skins/modern/data/modules/catalog создал list.view.custom.xsl

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet SYSTEM "ulang://common/catalog" [
<!ENTITY sys-module        'catalog'>
<!ENTITY sys-method-add    'add'>
<!ENTITY sys-method-edit    'edit'>
<!ENTITY sys-method-del    'del'>
<!ENTITY sys-method-list    'tree'>

<!ENTITY sys-type-list    'category'>
<!ENTITY sys-type-item    'object'>
    <!ENTITY sys-type-manufacturer  'manufacturer'>
<!ENTITY sys-method-acivity    'activity'>
]>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- Шаблон вкладки "Разделы и товары" -->
<xsl:template match="data" priority="1">
<div class="location" xmlns:umi="http://www.umi-cms.ru/TR/umi">
<div class="imgButtonWrapper" xmlns:umi="http://www.umi-cms.ru/TR/umi">
<a umi:type="catalog::category" class="btn color-blue loc-left" href="{$lang-prefix}/admin/&sys-module;/&sys-method-add;/{$param0}/&sys-type-list;/" id="addCategory">
<xsl:text>&label-add-list;</xsl:text>
</a>
<a umi:type="catalog::object" class="btn color-blue loc-left" href="{$lang-prefix}/admin/&sys-module;/&sys-method-add;/{$param0}/&sys-type-item;/" id="addObject">
<xsl:text>&label-add-item;</xsl:text>
</a>
                <a umi:type="catalog::manufacturer" class="btn color-blue loc-left" href="{$lang-prefix}/admin/&sys-module;/add_manufacturer/{$param0}/manufacturer/" id="addmanufacturer">
<xsl:text>manufacturer</xsl:text>
</a>
</div>
<xsl:call-template name="entities.help.button" />
</div>

<div class="layout">
<div class="column">
<xsl:call-template name="ui-smc-table">
<xsl:with-param name="allow-drag">1</xsl:with-param>
<xsl:with-param name="js-add-buttons">
createAddButton(
$('#addCategory')[0], oTable,
'<xsl:value-of select="$lang-prefix" />/admin/&sys-module;/&sys-method-add;/{id}/&sys-type-list;/', ['category', true]
);

createAddButton(
$('#addObject')[0], oTable,
'<xsl:value-of select="$lang-prefix" />/admin/&sys-module;/&sys-method-add;/{id}/&sys-type-item;/', ['category']
);
                       
                        createAddButton(
$('#addmanufacturer')[0], oTable,
'<xsl:value-of select="$lang-prefix" />/admin/&sys-module;/add_manufacturer/{id}/&sys-type-manufacturer;/', ['manufacturer', true]
);
</xsl:with-param>
</xsl:call-template>
</div>
<div class="column">
<xsl:call-template name="entities.help.content" />
</div>
</div>
</xsl:template>

<!-- Шаблон вкладки "Индексация" -->
<xsl:template match="result[@method = 'filters']">
<div class="location" xmlns:umi="http://www.umi-cms.ru/TR/umi">
<xsl:call-template name="entities.help.button" />
</div>

<div class="layout">
<div class="column indexing_content">
<h2>&indexing-header;</h2>
<xsl:call-template name="ui-smc-table">
<xsl:with-param name="flat-mode" select="1" />
<xsl:with-param name="search-show" select="0" />
<xsl:with-param name="ignore-hierarchy" select="1" />
<xsl:with-param name="control-type-id" select="85" />
<xsl:with-param name="disable-csv-buttons" select="1" />
<xsl:with-param name="control-params" select="'filters'" />
<xsl:with-param name="show-toolbar" select="1"/>
<xsl:with-param name="js-has-checkboxes" select="'true'"/>
<xsl:with-param name="toolbarmenu">
<![CDATA[
toolbarMenu = ['delIndex'];
]]>
</xsl:with-param>
<xsl:with-param name="on-render-complete">
<xsl:text><![CDATA[
AdminIndexing.Controller.onRenderComplete
]]></xsl:text>
</xsl:with-param>
<xsl:with-param name="data-set-init-end-requests">
<xsl:text><![CDATA[
[{
url: AdminIndexing.Settings.buttons.indexIt.resource.fullPath,
callback: AdminIndexing.Settings.buttons.indexIt.template.onLoad

},
{
url: AdminIndexing.Settings.module.server.path,
callback: AdminIndexing.Settings.module.server.onLoad
}]
]]></xsl:text>
</xsl:with-param>
<xsl:with-param name="enable-edit">false</xsl:with-param>
<xsl:with-param name="menu">
<xsl:text>var menu = </xsl:text>
<xsl:text>AdminIndexing.Settings.table.rows.menu</xsl:text>
</xsl:with-param>

<xsl:with-param name="js-value-callback">
<xsl:text><![CDATA[
AdminIndexing.Controller.onLoadPropValue
]]></xsl:text>
</xsl:with-param>

</xsl:call-template>

<div class="buttons">
<div style="pull-left">
<a class="btn color-blue loc-left" id="add_to_index">&indexing-add-category;</a>
</div>
</div>
</div>
<div class="column">
<xsl:call-template name="entities.help.content" />
</div>
</div>

<script type="text/javascript" src="/styles/skins/modern/data/modules/catalog/filters/admin.indexing.js?{$system-build}"/>
<script type="text/javascript" src="/styles/skins/modern/data/modules/catalog/filters/loadingoverlay/js/loadingoverlay.min.js?{$system-build}"/>
</xsl:template>

<!-- Шаблон вкладки настроек "Типы цен торговых предложений" -->
<xsl:template match="result[@method = 'tradeOfferPriceTypes']">
<xsl:call-template name="ui-new-table">
<xsl:with-param name="configUrl">/admin/catalog/flushTradeOfferPriceTypeListConfig/.json</xsl:with-param>
<xsl:with-param name="toolbarFunction">CatalogModule.getTradeOfferPriceTypeListToolBarFunction()</xsl:with-param>
<xsl:with-param name="toolbarMenu">CatalogModule.getTradeOfferPriceTypeListToolBarMenu()</xsl:with-param>
<xsl:with-param name="perPageLimit">20</xsl:with-param>
</xsl:call-template>
</xsl:template>

</xsl:stylesheet>
в нём добавил кнопку с ссылкой добавления производителя /admin/catalog/add_manufacturer/0/manufacturer/ по аналогии с category

4. Метод add_manufacturer вынес в customAdmin.php

	class CatalogCustomAdmin {
/**
* @var catalog $module
*/
use baseModuleAdmin;

public $module;
public function add_manufacturer() {
$parent = $this->expectElement('param0');
$type = (string) getRequest('param1');
$this->setHeaderLabel('header-catalog-add-' . $type);

$inputData = [
'type' => $type,
'parent' => $parent,
'type-id' => getRequest('type-id'),
'allowed-element-types' => [
'manufacturer'
]
];

if ($this->isSaveMode('param2')) {
$element_id = $this->saveAddedElementData($inputData);
$element = umiHierarchy::getInstance()->getElement($element_id);

if ($element instanceof iUmiHierarchyElement) {
$element->setValue('date_create_object', time());
$element->commit();
}

$this->chooseRedirect("{$this->module->pre_lang}/admin/catalog/edit/{$element_id}/");
}

$this->setDataType('form');
$this->setActionType('create');
$data = $this->prepareData($inputData, 'page');
$this->setData($data);
$this->doData();
}
}

При попытке создать производителя выводится ошибка:

Произошли следующие ошибки:
Запрашиваемый ресурс не существует


Подскажите в чём может быть проблема?

Дата последнего обновления UMI CMS - 2019-04-06 Версия системы 20


6
Настройка системы и модулей / Re: Можно ли очистить cms3_data_cache
« Последний ответ от pandus 10 Сентября 2019, 09:59:59 »
Точно  :) ! Зашёл в админку посмотрел, а кэш то включен, туплю  ??? , можно было догадаться. Спасибо за подсказку!
Очистил таблицу в БД, всё норм.

Попутно очистил и таблицу cms_ua_cache оно без надобности как и вся статистика.
7
Настройка системы и модулей / Re: Можно ли очистить cms3_data_cache
« Последний ответ от admin2@pomdv.com 10 Сентября 2019, 02:34:28 »
День добрый всем  :) !
В БД есть таблица cms3_data_cache можно ли её очистить, кто нибудь пробовал это сделать?
А то она уже занимает 34 мб в бд

На всякий случай:
Дата последнего обновления 2017-08-08 14:56:14
Версия системы 16
Ревизия 82907

Учитывая, что у меня эта таблица занимает 4кб, т.е. пустая, подозреваю - что у вас в ней хранятся данные одного из кэширующих механизмов.
Т.е. очистить оную - можно наверняка, с вероятнстью в 99% ни к чему это не приведет. Но ещё вероятно - что у вас не работает штатный механизм очистки мусора в системе.
8
Настройка системы и модулей / Re: UMI CSS – полный бред
« Последний ответ от admin2@pomdv.com 10 Сентября 2019, 02:29:42 »
Дальше обычно начинаются холивары какая система лучше...

 Извините, но никаких холиваров, мне не с чем сравнивать. Да и вообще - апологеты холиваров без глубоких знаний обсуждаемых тем - вызывают отвращение.
А аргументированно... так юзеров юми так мало, что даже общаться не с кем.
9
Макросы UMI.CMS / Re: Как вывести изображение для заголовка?
« Последний ответ от pandus 09 Сентября 2019, 12:15:34 »
А еще может подскажете, как сделать так, чтобы этот код выводился только в том случае, если картинка загружена?
Проверку через xsl:if сделай
10
Настройка системы и модулей / Re: UMI CSS – полный бред
« Последний ответ от pandus 09 Сентября 2019, 12:10:29 »
Дальше обычно начинаются холивары какая система лучше...
Страницы: [1] 2 3 ... 10