vectorserver

vectorserver

С нами с 12 декабря 2018; Место в рейтинге пользователей: #44
vectorserver
14 февраля 2022, 13:57
1
0
Я бы сделал прослушку на nodejs, и повесил бы к примеру на node.localhost:3000 и потом через плагин отправлял бы данные.

<?php

$eventName = $modx->event->name;
switch($eventName) {
    case 'OnWebLogin':
        
        // хук на вход http://node.localhost:3000/?userID=1&login=1
        break;
    case 'OnWebLogout':

        // хук на выход http://node.localhost:3000/?userID=1&logout=1
        break;
}

NodeJS
const http = require("http");
 
http.createServer(function(request, response){
     
    console.log("Url: " + request.url);
    console.log("Тип запроса: " + request.method);
    console.log("User-Agent: " + request.headers["user-agent"]);
    console.log("Все заголовки");
    console.log(request.headers);
     
    response.end();
}).listen('node.localhost',3000);
vectorserver
14 февраля 2022, 12:37
1
0
Я использовал в свое время, для синхронизации товаров, точно не помню, вот накидал на коленке.
Работает :)

Пример:
<?php
//Файл дампа времменый
$dump = __DIR__ . "/test_.sql";

//Экспорт из бд №1 таблицы modx_users, modx_user_group_roles
$export_db = exportDatabase('localhost', 'root', '', 'modx', array('modx_users', 'modx_user_group_roles'), $dump);

//Импорт в бд №2
$import_db = importDatabase('localhost', 'root', '', 'remote_modx', $dump);

function importDatabase($host, $user, $password, $database, $backupFilePath)
{

    $password = ($password) ? "-p$password" : "";
    $cmd = "mysql -u {$user} {$password} {$database} < $backupFilePath";
    return exec($cmd) === 0;
}

function exportDatabase($host, $user, $password, $database, $tables, $targetFilePath)
{

    $cmd = "mysqldump --host {$host} --user {$user} ";
    if ($password) {
        $cmd .= " --password {$password} ";
    }
    $cmd .= " {$database} ";

    if ($tables) {
        $cmd .= implode(" ", $tables);
    }

    $cmd .= " > {$targetFilePath}";

    return exec($cmd) === 0;
}
vectorserver
12 января 2022, 11:17
-3
Думаю, это бессмыслено конвертировать одно в другое, тем более код!
По мне удобнее работать с родным парсером из коробки!
vectorserver
07 сентября 2021, 21:53
0
<?php
$sth = $modx->query("SELECT * FROM reg_users");
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $data) {
    $regNum = $data['regNum'];
}
?>
<div><?php echo $regNum;?></div>
<?php return ''; ?>
vectorserver
07 сентября 2021, 21:46
0
<?php
$file = ('<div class="video-iframe yt-vme-container" style="position: relative; inset: unset; max-width: 640px; padding: unset; height: 100%; width: 100%;"><script type="text/javascript" src="https://youtube-com.cdn.vidyome.com/vidyome/builds/player.js" id="vme_player_13232258508328254" container-id="vme-yt-66035627250847576" site-id="MTcwNQ==" video-id="ytb" video-play="false" video-source="https://www.youtube.com/embed/b6aLl-W8gCk?" video-poster="https://i.ytimg.com/vi/b6aLl-W8gCk/hqdefault.jpg">...</div>');

$doc = new DOMDocument();

$doc->preserveWhiteSpace = false;

$doc->loadHTML($file);

$xpath = new DOMXpath($doc);

$video_source = $xpath->query("//@video-source");

if($video_source->length){
    
    echo "video-source: {$video_source->item(0)->value}";
}
vectorserver
11 ноября 2020, 08:31
0
Удачи! Но что-то мне подсказывает, что ты вернёшься!)
vectorserver
30 июля 2020, 09:32
+1
Вай, Баха красавчик, все по полочкам!
vectorserver
16 апреля 2020, 22:33
+1
cron console
/usr/bin/php /var/www/u1003749/data/www/site.ru/instacron.php > /var/www/u1003749/data/www/site.ru/instacron_log.html && >/dev/null 2>&1
cron wget
wget http://site.ru/instacron.php --spider
instacron.php
#!/usr/bin/php
<?php
define('MODX_API_MODE', true);
require 'index.php';

$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_FATAL);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
echo $modx->runSnippet('outputInstagram');
exit;
?>
vectorserver
14 апреля 2020, 19:23
6
+11
Так проще и быстрее, без обид друг)
Код сниппета ParseInsta:
<?php
//ParseInsta
$cacheKey = "insta_".md5($url);

$returnCache = $modx->cacheManager->get("$cacheKey");

if(!$returnCache){
    $doc = new DOMDocument();
    $doc->loadHTMLFile($url);
    $xpath = new DOMXpath($doc);
    $sharedData = $xpath->query("//html/body/script[1]")->item(0)->textContent;
    $str = $sharedData;
    $modx->cacheManager->set($cacheKey, $str, 7200*60);
    return $str;
}

return $returnCache;
И далее JSON обрабатываем через JS или конвертуть в массив и использовать в чанках
<script>
var instaphotos = [[ParseInsta? $url=`https://www.instagram.com/explore/tags/кофесос`]];
//bla bla bla
</script>
vectorserver
14 апреля 2020, 09:08
0
$c->select(array(
    'subject' => '`Document`.`pagetitle`',
    'date' => '`Document`.`publishedon`',
    'groups' => 'GROUP_CONCAT(";", CONCAT_WS(",", Group.id,Group.name,Group.color))'
));
vectorserver
14 апреля 2020, 06:51
0
Или в товаре указывай несколько вариантов артиклов и тп pn-54030||pn54030
vectorserver
14 апреля 2020, 06:45
0
держи в базе все данные без лишних знаков или разбивай слово на массив и подставляй к ним точки или тире в этом случае у тебя будет больше вариантов, но и будет больше запросов к бд с вариантами.
Я бы сделал так: в бд обрезал в поле которое ты ищешь все лишние знаки
vectorserver
13 апреля 2020, 20:17
0
Где в коде выбор? В упор не вижу, только шаблон статьи вижу
vectorserver
13 апреля 2020, 20:11
0
отсекай все знаки в запросе
Прbмер php:
<?php
$search = isset($_GET['search'])? trim($_GET['search']) : false;
if($search){
$str = mb_strtolower($search);
$findstr = str_replace(array('-','.','other'), '', $str);
//code...
}
vectorserver
09 апреля 2020, 21:32
0
Ну вот!
— Мне оригинал на сервере не нужен (лишний вес)
— при удалении оригинала phpthumbon не будет генерить, а отдаст заглушку

Зы: я понимаю, если у тебя портал картинок и или чертежей где нужно держать оригинал.
Но для этого тоже можно сделать несколько размеров (версий 1.2.3.4) при загрузке изображения
vectorserver
09 апреля 2020, 20:56
0
Не понимаю зачем кешировать, если можно пользоваться уже залитым оптимизированным изображением или ты имеешь ввиду кешированные для админки?
vectorserver
09 апреля 2020, 20:29
-1
Используй кто тебе мешает? Зачем навязывать это другим?
Мне лично очень нравится phpThumbOn в плане оптимизации, а не обработчик из коробки, предложил свою идею, а тебе и по истории твоих комменотов, ты каждую фичу считаешь (не вижу смысла в этом компоненте, т.к.… бла бла бла) если не с кем поговорить заведи попугая.
vectorserver
09 апреля 2020, 00:41
+2
[[*id:input=`<link href="путь до .css" rel="stylesheet">`:htmlToHead]]
[[*id:input=`<script src="путь до.js"></script>`:jsToBottom=`1`]]
vectorserver
07 апреля 2020, 06:31
+2
Согласен, но есть и другие обозреватели Safari, Edge и др кроме хрома (эмуляторы этих браузеров порой не правильно отрабатывают).

ЗЫ — делал чисто для своего удобства (не комерс)
vectorserver
06 апреля 2020, 15:54
0
Крутяк, для всяких вики статей самое то!