vectorserver

vectorserver

С нами с 12 декабря 2018; Место в рейтинге пользователей: #45
vectorserver
22 сентября 2022, 12:21
0
Для динамического обновления цены доставки в корзине можно использовать такой скрипт:

<select name="shk_delivery">
    <option value=""></option>
    <option id="otherTransport" value="700">Деловые линии</option>
</select>
<script type="text/javascript">
$(document).bind('ready',function(){
    
    let otherTransport =  $('#otherTransport');
    //Запишем цену отданную API сервисом
    otherTransport.val('Тут пишем цену');
    
    $('select[name="shk_delivery"]','#shopOrderForm').bind('change',function(){
        SHK.selectDelivery( $(this).val() );
    });
});
</script>
vectorserver
25 августа 2022, 09:59
+1
Быстрее на CURL, я так думаю конечно)
<?php

/**
 * @param $url
 * @return array
 */

function curlGet($url)
{

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

    curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');

    $headers = array();
    $headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9';
    $headers[] = 'Accept-Language: ru,en;q=0.9,ru-RU;q=0.8,en-US;q=0.7';
    $headers[] = 'Cache-Control: no-cache';
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    $result = array('st' => 'OK', 'data' => curl_exec($ch));
    if (curl_errno($ch)) {
        $result['st'] = 'Error';
        $result['ErrorMsg'] = curl_error($ch);
    }
    curl_close($ch);
    return $result;
}

$xmlData = curlGet('http://www.cbr.ru/scripts/XML_daily.asp?date_req=25.08.2022');
var_dump($xmlData);
vectorserver
19 августа 2022, 11:25
0
Нужно писать плагин, для события 'OnSHKcalcTotalPrice'
Вот пример плагина заготовки:
<?php

/** @var modX $modx */
$eventName = $modx->event->name;


switch ($eventName) {
    /* Рассчет полной цены товаров в корзине. $_SESSION['shk_order'], $price_total. */
    case 'OnSHKcalcTotalPrice':

        /** @var $scriptProperties */
        $price_total = (float)str_replace(array(' ', ','), array('', '.'), $modx->getOption('price_total', $scriptProperties, 0));
        $oldPrice = $price_total;


        /* @todo  тут всякие условия для $_SESSION['shk_order']*/


        $modx->event->output($price_total);

        break;
}
vectorserver
19 августа 2022, 08:37
0
Пути к картинке должны быть не относительными, а полными, пример от ЯД:
<item turbo="true">
  <title>Заголовок страницы</title>
  <link>https://tagil300.ru</link>
  <turbo:content>
    <![CDATA[
      <header>
        <h1>Ресторан «Полезный завтрак»</h1>
        <h2>Вкусно и полезно</h2>
        <figure>
          <img src="https://avatars.mds.yandex.net/get-sbs-sd/403988/e6f459c3-8ada-44bf-a6c9-dbceb60f3757/orig">
        </figure>
        <menu>
          <a href="http://example.com/page1.html">Пункт меню 1</a>
          <a href="http://example.com/page2.html">Пункт меню 2</a>
        </menu>
      </header>
      <p>Как хорошо начать день? Вкусно и полезно позавтракать!</p>
      <p>Приходите к нам на завтрак. Фотографии наших блюд ищите <a href="#">на нашем сайте</a>.</p>
      <h2>Меню</h2>
      <figure>
        <img src="https://avatars.mds.yandex.net/get-sbs-sd/369181/49e3683c-ef58-4067-91f9-786222aa0e65/orig">
        <figcaption>Омлет с травами</figcaption>
      </figure>
      <p>В нашем меню всегда есть свежие, вкусные и полезные блюда.</p>
      <p>Убедитесь в этом сами.</p>
      <button formaction="tel:+7(123)456-78-90"
              data-background-color="#5B97B0"
              data-color="white"
              data-primary="true">Заказать столик</button>
      <div data-block="widget-feedback" data-stick="false">
        <div data-block="chat" data-type="whatsapp" data-url="https://whatsapp.com"></div>
        <div data-block="chat" data-type="telegram" data-url="http://telegram.com/"></div>
        <div data-block="chat" data-type="vkontakte" data-url="https://vk.com/"></div>
        <div data-block="chat" data-type="viber" data-url="https://viber.com"></div>
      </div>
      <p>Наш адрес: <a href="#">Nullam dolor massa, porta a nulla in, ultricies vehicula arcu.</a></p>
      <p>Фотографии — http://unsplash.com</p>
    ]]>
    </turbo:content>
</item>
vectorserver
19 августа 2022, 08:28
0
Задумка неплохая, но я быстрее стырю шаблон и раскидаю его по чанкам)
Увидел одно удобство (как у Joomla, там Чанки называют Модулями), это привязка блока к определенной странице или категории.

По идее нужно задать стандарт позиций (header,sidebar,top-position,bootom-position,footer) и обзывать чанки такими именами, так будет быстрее настраивать шаблоны, а каждого чанка есть настройки (где и как показать его).

К примеру вот так:
vectorserver
25 июля 2022, 11:40
0
Тебе же дали XML, за тебя уже все сделали (https://www.php.net/manual/ru/function.xml-parse.php), разбирай массив и воводи данные.

Или сюда: modx.pro/work
vectorserver
21 июля 2022, 09:07
1
0
<?php
/* @var modX $modx*/
$getChildIds= $modx->getChildIds(211,6,array('context' => 'web'));
foreach ($getChildIds as $chId){
    /** @var modResource $res */
    $res = $modx->getObject('modResource',$chId);
    $res->setTVValue('seotitle',$res->get('pagetitle')." - ".$res->get('description'));
    $res->set('isfolder', 1);
    $res->save();
}
vectorserver
21 июля 2022, 08:18
1
0
<?php
/* @var modX $modx*/
$getChildIds= $modx->getChildIds(211,6,array('context' => 'web'));
foreach ($getChildIds as $chId){
    /** @var modResource $res */
    $res = $modx->getObject('modResource',$chId);
    $res->setTVValue('seotitle',$res->get('pagetitle'));
    $res->set('isfolder', 1);
    $res->save();
}
vectorserver
15 июля 2022, 12:02
+1
Написать @Евгений Шеронов, это его компонент!
vectorserver
15 июля 2022, 11:57
0
<?php
/** @var modX $modx */
/** @var modResource $resources */
$resources = $modx->getCollection('modResource',array('parent' => 211));
foreach ($resources as $res) {
    $res->setTVValue('seotitle',$res->get('pagetitle'));
    $res->set('isfolder', 1);
    $res->save();
}
vectorserver
14 июля 2022, 14:10
0
Может быть! А что не так, я не понял!?
vectorserver
14 июля 2022, 11:47
0
Зачем ORM xPDO для MODX, если можно на прямую запросы писать!?
vectorserver
14 июля 2022, 10:28
0
Выложил обновленный пак:
Исправлено несколько багов фич







vectorserver
14 июля 2022, 10:25
+1
Не плохо, я писал компонент для своих нужд, решил поделиться! Не коммерс!