Всего 125 962 комментария

vectorserver
31 марта 2022, 13:26
1
0
Накидал сниппет на коленке.

Вызов сниппета:
&input — Исходный ролик
&default — другое зеркало ролика
[[ytTest? &input=`https://www.youtube.com/watch?v=BCwkRcDlo2k` &default=`https://www.youtube.com/watch?v=tu-hhC_PNEg`]]
Код сниппета:
<?php
//Snippet ytTest
/**
 * @param $yt_source
 * @return false|mixed
 */
function ytTest($yt_source){

    //Парсинг YT ID
    preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=v\/)[^&\n]+|(?<=v=)[^&\n]+|(?<=youtu.be/)[^&\n]+#", $yt_source, $matches);

    $yt_id = $matches[0];

    if(!$yt_id) return false;

    $yt_image = "https://img.youtube.com/vi/{$yt_id}/default.jpg";

    file_get_contents($yt_image, false, stream_context_create(['http' => ['ignore_errors' => true]]));

    $check = $http_response_header[0];

    return ($check === "HTTP/1.0 200 OK")? $yt_source : false;
}

/** @var TYPE_NAME $input */
/** @var TYPE_NAME $default */
return ytTest($input) ? ytTest($input) : $default;
Максим Мартынюк
31 марта 2022, 12:08
0
Вы не поняли, Modx3 я уже поставил, а вот migx не устанавливается. И как его установить не понятно…
Олег
31 марта 2022, 11:34
0
Добрый день, вы правы! Спасибо! Стоял зум на экране монитора в 150%, снизил в 125% и все стало нормально. Но все же, кажется, что то на сайте не докручено, раз админка так странно реагирует на увеличение зума монитора.
И еще я замучался с проблемой: после редактуры статьи опубликованной год-два-три назад и ее пересохранении, автоматически подставляется текущая дата, как дата публикации! Причем это происходит не всегда. Так и не нашел в настойках гдже это можно поправить- чтобы дата публикации, при пересохранении отредактированной статьи, оставалась прежгней. Спасибо
Александр Быковский
31 марта 2022, 10:51
0
Добрый день. Что делал при подключении метрики и что получилось.
1. Теги {igonre} не помогли. Белая страница

2. Создал JS-файл, поместил в него код метрики. Подключал двумя способами
  • Напрямую в шаблон
    <script src="/assets/templates/js/metrika.js"></script>
  • Регистрировал скрипт
    {$_modx->regClientScript('/assets/templates/js/metrika.js') | jsToBottom : true}
Далее проверяем счетчик



Результат при проверке счетчика метрики нулевой, счетчик не найден.

3. Потом создал файловый чанк и туда поместил код метрики. Подключил в шаблоне. Белая страница. Заключил код в чанке в {ignore} — результат тот же.

4. Сунул код на страницу, проставил пробелы. Метрика счетчик увидела.



Таким образом видимо только правка кода. Или может я упустил какие-то способы, буду благодарен за советы. Спасибо.
Роман
31 марта 2022, 08:55
0
Не очень понимаю зачем вам переменные типа depNum, startDate и так далее. Когда весь код можно в 2 строчки передать.
foreach($employeeList as $data) 
    $out .= $modx->getChunk('employeeListOutput', $data);
Максим Мартынюк
31 марта 2022, 00:14
0
Олег, приветствую! Я вообще не понимаю github, вопрос простой, migx пока установить получается нельзя на modx 3?
Дмитрий
30 марта 2022, 19:14
0
СПС. js пагинация то, что надо.
Дмитрий
30 марта 2022, 19:11
0
код снипета.
<?php
/* Запрос к БД */
$results = $modx->query("SELECT * FROM employee_info");
$employeeList = $results->fetchAll(PDO::FETCH_ASSOC);
$out=' ';
foreach($employeeList as $data) {
    $depNum = $data['tirazhNum'];
    $startDate = $data['finishDate'];
    $jobTime = $data['finishTime'];
    $status = $data['status'];
    $salary = $data['salary'];
    $cardNum = $data['cardNum'];
    $varNum = $data['varNum'];
    $uniNum = $data['uniNum'];
    
    $out .= $modx->getChunk('employeeListOutput', array(
        'depNum'=>$tirazhNum,
        'startDate'=>$startDate,
        'jobTime'=>$jobTime,
        'status'=>$status,
        'salary'=>$salary,
        'cardNum'=>$cardNum,
        'varNum'=>$varNum,
        'uniNum'=>$uniNum
        ));
}
return $out;
Соответственно шаблон вывода в чанке employeeListOutput, а на ресурсе вывод сниппетом.
Получется сумашедшая портянка — более 400сот записей.
Lori
30 марта 2022, 16:43
0
Да, читал про данное дополнение и кажись ваш пост был как раз) но время поджимает и мне быстрее написать своими силами, дабы не тратить время на понимание компонента
Николай Савин
30 марта 2022, 16:39
0
Рекомендую попробовать ZoomX на сайте-доноре. Компонент отлично справляется с построением API как раз с json ответами, и умеет отдавать сразу файлы, если вдруг вы его будете формировать заранее.
Роман
30 марта 2022, 16:05
+1
Как вы выводите записи на страницу? Если все сложно, можно использовать js пагинацию
Lori
30 марта 2022, 15:59
0
Спасибо! Думаю все таки сделаю задачу в cron на вторичном сайте, чтобы он делал запрос по расписанию на какой-нибудь update.php основного сайта, а тот уже пусть выдает ответ в виде json с новыми расценками товаров
Евгений Webinmd
30 марта 2022, 11:45
0
ну так перетащите часть из верхнего меню в подпункты (Иконка шестеренки в правом углу — Меню ). Либо у вас зум стоит в браузере
Николай Савин
29 марта 2022, 20:33
+1
Обмен между двумя сайтами лучше производить в формате JSON. Это общепринятая система.
Инициатором обмена может быть как одна, так и другая сторона.
Варианты, которые вижу я.
1. Изменение цены одного продукта. В этом случае запускается событие, которое отправляет API запрос на сайт на сайт-приемник. В запросе артикул продукта и цена.
2. Изменение группы цен на сайте-доноре, в результате какой-то синхронизации со складом, например. В этом случае формируется текстовый файл json формата и посылается уведомление о готовности новых данных, со ссылкой на файл. Сайт-приемник, получив уведомление запускает скрипт обработки json файла
3. Сайт-приемник, самостоятельно, по расписанию запрашивает сайт-донор. Если товаров не много — то забирает на лету сформированный json Ответ. Если товаров много, то забирает файл, подготовленный заранее.
4. Если товаров много, то можно пойти дальше. Сайт-приемник первым запросом отправляет уведомление донору и необходимости подготовить свежие данные. Затем через несколько минут (сколько там нужно временим на подготовку файла с ценами), вторым запросом забирает подготовленный файл.

В целом все крутится вокруг json файла (или массива данных) и нескольких достаточно простых API запросов.
Николай Савин
29 марта 2022, 13:55
1
0
Если отключить — то получается не смогут. Согласен здесь проблема.
Наиболее простое решение это опираться на IP адрес клиента и срывать\показывать нужные компоненты.
Но это отдельный проект. Владельцы и разработчики далеко не дураки — я думаю в конце концов придумают решение.
Sergey (Sentinel)
29 марта 2022, 13:49
0
Также авторам компонентов modstore, связанных с этими соцсетями — требуется компоненты отключить
А если компонент захотят купить из другой страны, где не запрещены эти соцсети, то не смогут?
Lori
29 марта 2022, 12:06
0
Спасибо большое! Вариант с выгрузкой + cron мне больше нравится!
Наумов Алексей
29 марта 2022, 11:58
+1
Да нормальный вариант.
Или на основном сайте сделайте выгрузку в простейший файл (текстовый) в формате «артикул: цена», а со второго по cron раз в час считывайте его да и обновляйте цены.
Fi1osof
Fi1osof
28 марта 2022, 17:42
0
Не за что!