vectorserver

vectorserver

С нами с 12 декабря 2018; Место в рейтинге пользователей: #58
vectorserver
22 июня 2022, 20:53
+1
Тогда только так
<?php
function ruDate($format, $date = false) {
    setlocale(LC_ALL, 'ru_RU.cp1251');
    if ($date === false) {
        $date = time();
    }
    if ($format === '') {
        $format = '%e %bg %Y г.';
    }
    $months = explode("|", '|января|февраля|марта|апреля|мая|июня|июля|августа|сентября|октября|ноября|декабря');
    $format = preg_replace(/** @lang text */ "~\%bg~", $months[date('n', $date)], $format);
    $res = strftime($format, $date);
    return $res;
}

echo ruDate('%e %bg %Y г.', strtotime('+1 day'));
Выведет:
23 июня 2022 г.
vectorserver
22 июня 2022, 20:46
1
+1
<?php
setlocale(LC_ALL, 'ru_RU.utf8');
$offset = strtotime('+1 day');
echo strftime("%A %e %B %Y", $offset);
vectorserver
22 июня 2022, 13:29
+2
Функция strtotime учитывает часовой пояс, а time — нет, возвращает unix-timestamp.
vectorserver
22 июня 2022, 12:30
0
Там нет лимитов изначально из коробки!
vectorserver
14 июня 2022, 12:44
0
Вместо "MIGX_TV" укажи свой TV.
<?php
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest' || empty($_REQUEST['action'])) {exit();}

$action = $_REQUEST['action'];

/* @global $modx*/
define('MODX_API_MODE', true);
require_once dirname(dirname(__FILE__)).'/index.php';
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_FATAL);

$output = array();

switch ($action) {
    case 'getContent':
        $id = isset($_POST['id']) ? (int) $_POST['id'] : 0;
        if (empty($id)) {
            exit();
        };
        $object = $modx->getObject('modResource',$id);
        $output['content'] = $object->get('content');
        $output['pagetitle'] = $object->get('pagetitle');

        $output['MIGX_TV'] = json_encode($object->getTVValue('MIGX_TV'),true);

        $output = json_encode($output);
        break;
    default:
        $output = array("st"=>"error");
}

header('Content-Type: application/json; charset=utf-8');
echo json_encode($output);
vectorserver
09 июня 2022, 09:04
0
— Создал форму с параметрами выбора суммы и тп
— При нажатии кнопки «В корзину» сохраняю куки с новой ценой, ловлю событие «OnSHKgetProductPrice»
<?php 
 /* Выбор цены товара при добавлении в корзину. $price, $id, $purchaseArray */
    case "OnSHKgetProductPrice":
        // Конструктор 
        $price = $myprice;/// тут принимаем новое значение

        $modx->event->output($price);
        break;
vectorserver
07 июня 2022, 21:27
0
Сама база в какой кодировке «Режим сопоставления» !?
Попробуй выполнить SQL-запрос
ALTER DATABASE `имя_базы` COLLATE utf8mb3_general_ci
vectorserver
07 июня 2022, 20:10
0
тут EXT JS не нужен, достаточно стилей!
vectorserver
06 июня 2022, 20:16
0
Не заходит он мне, проще на чистом js
vectorserver
06 июня 2022, 08:22
0
Задача была искать дубли в других контекстах, не зависимо от WEB).
vectorserver
19 мая 2022, 14:48
0
Допилил редирект если он нужен:
Параметры:
  • &id: Уникальный ID, если есть конфликты форм
  • &snippet:Login,ForgotPassword,UpdateProfile,Register
  • &redirect:[[~1]]
  • &chunkForm: имя чанка или html код (Для ForgotPassword,UpdateProfile,Register не используются в параметрах tpl, для этого сделан параметр)

//Login
[[!AjaxLogin_vectorserver? &snippet=`Login`]]

//ForgotPassword
[[!AjaxLogin_vectorserver? 
&snippet=`ForgotPassword` 
&id=`q`
&redirect=`[[~1]]`
]]


<h2>UpdateProfile</h2>
[[!AjaxLogin_vectorserver?
    &snippet=`UpdateProfile` 
    &useExtended=`0`
    &chunkForm=`[[$UProfile]]`
]]
Код сниппета:
<?php
/* @global $modx*/
/** @var TYPE_NAME $scriptproperties */
/** @var TYPE_NAME $snippet */

/** @var TYPE_NAME $id */
$chunkForm = $chunkForm??'';
//Уникальный ID
$id = $id??$modx->resource->id;
$uniqid = "form_".md5($snippet.$id);

//Если нужен редирект 
$redirect = $redirect??false;

//JS TMP
$js = "<script>
    let $uniqid = document.getElementById('{$uniqid}').getElementsByTagName('form')[0];
    
    if($uniqid){
        $uniqid.addEventListener('submit', (e) => {
            
            let redirectTo = '{$redirect}';
        
            fetch($uniqid.action, {
               method: 'POST',
               body: new FormData($uniqid)
            }).then(function (response) {
                // The API call was successful!
                return response.text();
            }).then(function (data) {
                // This is the HTML from our response
                var parser = new DOMParser();
                var doc = parser.parseFromString(data, \"text/html\");
                $uniqid.innerHTML = doc.getElementById('{$uniqid}').innerHTML;
                if(redirectTo){
                    window.location = '{$redirect}';
                }
            }).catch(function (err) {
                // There was an error
                console.warn('Something went wrong.', err);
            });
        
         // on form submission, prevent default
        e.preventDefault();
      });
    }
  
</script>";

$runSnippet = "<div id='{$uniqid}' class='AjaxLogin_vectorserver'>{$modx->runSnippet($snippet)}{$chunkForm}</div>\n{$js}";
return $runSnippet;
vectorserver
19 мая 2022, 12:51
-2
Слишком много гемора!
Вот пример, JS + LOGIN (https://vectorserver.ru/test/ajaxform-login.html )
Вызов:
[[!AjaxLogin_vectorserver? &snippet=`Login`]]

[[!AjaxLogin_vectorserver? &snippet=`Login` &id=`q`]]

[[!AjaxLogin_vectorserver? &snippet=`Register` &id=`123`]]
Код сниппета AjaxLogin_vectorserver:
<?php
/* @global $modx*/
/** @var TYPE_NAME $scriptproperties */
/** @var TYPE_NAME $snippet */

/** @var TYPE_NAME $id */
$id = $id??$modx->resource-id;
$uniqid = "form_".md5($snippet.$id);
$url = $modx->resource->uri;


$js = "<script>
    let $uniqid = document.getElementById('{$uniqid}').getElementsByTagName('form')[0];
    if($uniqid){
        $uniqid.addEventListener('submit', (e) => {
            
        
            fetch($uniqid.action, {
               method: 'POST',
               body: new FormData($uniqid)
            }).then(function (response) {
                // The API call was successful!
                return response.text();
            }).then(function (data) {
                // This is the HTML from our response
                var parser = new DOMParser();
                var doc = parser.parseFromString(data, \"text/html\");
                $uniqid.innerHTML = doc.getElementById('{$uniqid}').innerHTML;
            }).catch(function (err) {
                // There was an error
                console.warn('Something went wrong.', err);
            });;
        
         // on form submission, prevent default
        e.preventDefault();
      });
    }
  
</script>";

$runSnippet = "<div id='{$uniqid}' class='AjaxLogin_vectorserver'>{$modx->runSnippet($snippet)}</div>\n{$js}";
return $runSnippet;
vectorserver
19 мая 2022, 07:28
0
Вот за что минусить!?
За то что я высказался не так как тебе удобно!?
Все что ты описал есть в MagicThemes!
vectorserver
13 мая 2022, 13:25
-1
Ерунда какая-то, это мое мнение! Я быстрее страницу заверстаю!
vectorserver
21 апреля 2022, 20:46
0
Не плохо.

Я на migx такое меню делаю обычно плюс статичную ссылку с красивым адресом.
vectorserver
19 апреля 2022, 15:26
0
Вы просили параметры отключения, я скинул! Что не так!?
Прочитайте нормально документацию по Pdotools!