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

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

Страницы: [1] 2 3 ... 10
1
Макросы UMI.CMS / Re: Выгрузка позиций по складам из 1С
« Последний ответ от admin2@pomdv.com Сегодня в 07:30:36 »
штатно - никак, писать кастомный кусок шаблона, для импорта значений и кастомный метод для их отображения.
2
 Собственно копая макрос, с целью внедрения прозрачной авторизации емейл/телефон/логин, с удивлением увидел в макросе отвечающем за логин пользователя,  строчки, поставившие меня в тупик, с вопросом "это что за индусский подход?"
	if ($user instanceof iUmiObject) {
if (\UmiCms\Service::Session()->get('fake-user') == 1) {
return ($this->restoreUser(true)) ? $this->auth() : $res;
}

[b]$hashedPassword = $user->getValue('password');[/b]
$hashAlgorithm =  UmiCms\Service::PasswordHashAlgorithm();

if ($hashAlgorithm->isHashedWithMd5($hashedPassword, $rawPassword)) {
$hashedPassword = $hashAlgorithm->hash($rawPassword, $hashAlgorithm::SHA256);
[b]$user->setValue('password', $hashedPassword);
$user->commit();[/b]
}
.....

 Это что, мы проверяем хэш пароля, и если он корректен, то мы коммитим его обратно в базу ? О_о
Или тут происходит что-то другое, и я просто туплю ?
 Блин, расписав вопрос, понял и ответ. Происходит смена хэша для пароля, с мд5 на sha256. Рукалицо )
Это получается эдакая заплатка для старых юзеров, регавшихся ещё под старой версией системы.


Если кому будет нужно, задача решилась примерно таким образом:

/classes/system/subsystems/models/auth/AuthenticationRules/LoginAndPassword.php

содержит в себе public function validate()

добавляем в неё:

$phone_number = preg_replace("/[^0-9]/", '', $login);

try {
$queryBuilder = $this->getQueryBuilder();
//*тут изменения
if (strlen($phone_number) == 11){
$queryBuilder->option('or-mode')->fields('login', 'e-mail','phone');
$queryBuilder->where('phone')->equals($phone_number);
}
else{$queryBuilder->option('or-mode')->fields('login', 'e-mail');}
......
Ну или модифицируем по желанию. Я добавил проверку на дублирующийся номер телефона, и в случае совпадения перебор корректных пар логин/пароль. С уведомлением себя любимого на почту, о таком странном казусе.

Если у вас лицензия все ещё активна, или вы планируете дальнейший апгрейд юми, то функцию стоит переопределить, или вообще переписать макрос login_do в кастом.
3
Макросы UMI.CMS / Выгрузка позиций по складам из 1С
« Последний ответ от WenLeks 05 Июнь 2018, 13:28:26 »
Доброго всем дня!
в файле offers товар разбит по складам, подскажите, пожалуйста, как такой формат выгрузить правильно в поле Состояние на складе?
<Предложение>
<Ид>0bd65ee9-0553-11e7-8189-34238794c746</Ид>
<Наименование>Товар</Наименование>
<БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE"/>
<Цены>
<Цена>
<Представление>3 578 RUB за шт</Представление>
<ИдТипаЦены>4a5a1538-7968-11e5-b582-34238794c746</ИдТипаЦены>
<ЦенаЗаЕдиницу>3578</ЦенаЗаЕдиницу>
<Валюта>RUB</Валюта>
<Единица>шт</Единица>
<Коэффициент>1</Коэффициент>
</Цена>
</Цены>
<Количество>6</Количество>
<Склад ИдСклада="6bdd21d7-f403-11e5-902a-34238794c746" КоличествоНаСкладе="1"/>
<Склад ИдСклада="6bdd21d8-f403-11e5-902a-34238794c746" КоличествоНаСкладе="1"/>
<Склад ИдСклада="5a5ebb96-f419-11e5-902a-34238794c746" КоличествоНаСкладе="0"/>
<Склад ИдСклада="246f9bbf-6e4f-11e5-9fd6-0024beb4f058" КоличествоНаСкладе="1"/>
<Склад ИдСклада="246f9bc0-6e4f-11e5-9fd6-0024beb4f058" КоличествоНаСкладе="1"/>
<Склад ИдСклада="246f9bc1-6e4f-11e5-9fd6-0024beb4f058" КоличествоНаСкладе="1"/>
<Склад ИдСклада="8f0e4f17-e70c-11e5-a33c-34238794c746" КоличествоНаСкладе="1"/>
</Предложение>

общее количество и все прочее выгружается без проблем, только эти склады ни как не хотят(
4
Шаблоны TPL / Re: Вывод работы макроса вместе с версткой
« Последний ответ от umidev 30 Май 2018, 11:10:52 »
А, понятно. Он пытается использовать более правильную XSLT, так как явно думает, что на tpl уже никто не кодит )))

Это шутка конечно, но с изрядной долей правды. Завязывайте с TPL и не будете знать проблем.

Мне как бы не принципиален tpl ,  пойдет и xslt.

Я пробовал передавать данные из макроса quickTest в  xslt.
Вызывал по ссылке http://site.ru/udata/emarket/quickTest?transform=modules/product-info.xsl

Данные из макроса подставляются в xslt шаблон и выводятся вместе с шаблоном. Что я и пытался добиться.

Но задача, то у меня сложнение мне нужно вывести 2 массива через цикл.

Как передать из макроса 2 массива и в xslt вывести их в цикле вместе с версткой, я не понимаю.
5
Шаблоны TPL / Re: Вывод работы макроса вместе с версткой
« Последний ответ от aghigay 30 Май 2018, 09:47:09 »
А, понятно. Он пытается использовать более правильную XSLT, так как явно думает, что на tpl уже никто не кодит )))

Это шутка конечно, но с изрядной долей правды. Завязывайте с TPL и не будете знать проблем.
6
Шаблоны TPL / Re: Вывод работы макроса вместе с версткой
« Последний ответ от umidev 30 Май 2018, 02:03:06 »
Попробуйте явно указать шаблон default
Попробовал.
На экране написано: This XML file does not appear to have any style information associated with it. The document tree is shown below.

Больше ничего нет вообще. В исходном коде страницы теперь пусто
7
Шаблоны TPL / Re: Вывод работы макроса вместе с версткой
« Последний ответ от aghigay 29 Май 2018, 23:26:04 »
Попробуйте явно указать шаблон default
8
Шаблоны TPL / Вывод работы макроса вместе с версткой
« Последний ответ от umidev 29 Май 2018, 19:35:50 »
Здравствуйте.

Создаю функцию, которая результат своей работы отдает вместе с версткой в tpl шаблоне, на umi cms.

Вообще сайт работает на .phtml шаблонах, но как понимаю на phtml реализовать невозможно, что мне нуужно.
Поэтому решил сделать на tpl шаблоне, буду рад если кто-нибудь укажет на возможность реализации на xslt шаблоне.

Функция в модуле emarket:

public function getDeliveryAjax($template ='default'){
 
    list(
    $templateBlock,
    $templateLineItem,
    $templateMapItem,
    $templateJavascript
    )= def_module::loadTemplates('emarket/delivery/'.$template,
    'delivery_tab_block',
    'delivery_line_item',
    'delivery_map_item',
    'delivery_javascript'
    );
 
    $block_arr['delivery_line_items']       ='text1';
    $block_arr['delivery_map_items']        ='text2';
    $block_arr['delivery_javascript_items']='text3';
 
    return def_module:: parseTemplate($templateBlock, $block_arr);
}

Шаблон default.tpl, находится по пути tpls/emarket/delivery/default.tpl:

<?php
$FORMS =Array();
 
$FORMS['delivery_tab_block']=<<<END
<div>
 
<table class="b-order_delivery">
    %delivery_line_items%
</table>
 
<table class="b-order_delivery">
    %delivery_map_items%
</table>
 
  <div id="map">
      %delivery_javascript_items%
   </div>
 
</div>
END;

Запускаю по ссылке через браузер: http://site.ru/udata/emarket/getDeliveryAjax
(в ссылке emarket -модуль в котором вызываю функцию, getDeliveryAjax - это сама функция)
На выходе получаю:
	<?xml version="1.0" encoding="utf-8"?>
<udata xmlns:xlink="http://www.w3.org/TR/xlink" module="emarket" method="getDeliveryAjax" generation-time="0.020383">
<delivery_line_items>text1</delivery_line_items>
<delivery_map_items>text2</delivery_map_items>
<delivery_javascript_items>text3</delivery_javascript_items>
</udata>
<!-- This page generated in 0.038453 secs by XSLT, HTTP SCHEME MODE -->

Как вывести данные функции вместе с шаблоном?

Все делаю на примере других функций umi.

Спасибо
9
Шаблоны PHP / Вывод фотоальбомов в фотогалерее
« Последний ответ от Alisa_Mir 28 Май 2018, 20:23:08 »
Здравствуйте, уважаемые программисты.

У меня есть сайт на UMI.CMS.

Есть раздел фотогалерея http://stb.shigri.ru/fotogalereya/

Через админку сайта я могу добавлять в этот раздел Фотоальбомы. Они в админ-панели отображаются. Но как их вывести вместо изображений имеющейся фотогалереи, я не знаю. Только начала php осваивать. Сейчас смотрю всякие обучающие видео, чтобы хоть как-то понять синтаксис, примерно узнать о переменных, функциях и т.д.
В техподдержке UMI мне подсказали, что есть вот такая структура:

$hierarchy = umiHierarchy::getInstance();
$element = $hierarchy->getElement(810);

810 - это id одного фотоальбома, который я создала внутри фотогалереи.

Но фотоальбомов будет примерно 15. Вид у фотогалереи должен быть примерно как тут: http://www.plogger.org/demo/ - только тут при клике по картинке попадаешь в раздел фотоальбомов, а у меня сразу должны быть эти фотоальбомы, а в них уже фотографии.

Если бы вы мне помогли, была бы очень благодарна. А если бы еще и объяснили.... Не хочется подводить людей.
10
Cорри что пишу в старой теме.
Дебаг выключен, а все равно "Данные не формате JSON"
Страницы: [1] 2 3 ... 10