Николай

Николай

С нами с 06 марта 2013; Место в рейтинге пользователей: #94
Николай
18 апреля 2020, 12:21
0
И кстати templates отсутствует в документации как в pdoResources так и в pdoPage и в msproducts. Спасибо, буду знатью
Николай
18 апреля 2020, 12:20
0
Я на самом деле теряюсь в этой документации. Я, работающий с MODX с 2013 года помню всякие разные тонкости, а вот новеньким в этой теме очень сложно.
Банально, docs.modx.pro/komponentyi/minishop2/snippetyi/msproducts
Тут ни слова не сказано про tvFilters. А он есть в pdoResources. А в pdoPage его нет.
А оказывается, можно вызвать через pdoPage элемент msproducts и в нем будет работать tvFilters который указан в pdoResources :)
Николай
17 апреля 2020, 14:17
0
Очень просто:

require_once '/var/www/site.ru/config.core.php';
require_once MODX_CORE_PATH.'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
$modx->getService('error','error.modError', '', '');
echo $modx->runSnippet('outputInstagram');
crontab -e

*/15 * * * * /usr/bin/php -q /var/www/site.ru/core/zones.php
Мой каждые 15 минут выполняется.
Николай
17 апреля 2020, 13:44
0
Спасибо! Заработало. Я бы и не догадался.
Николай
15 апреля 2020, 16:14
+1
в классе корзины:
/core/components/minishop2/model/minishop2/mscarthandler.class.php
Сниппет ничего не формирует. Он только выводит.
Николай
15 апреля 2020, 14:35
0
Спасибо!
Николай
15 апреля 2020, 14:30
0
Ну тут возникает вопрос, что именно ты хочешь сделать. Если цели отслеживать нахождение товара в корзине нет (добавили товар, кнопка добавления поменялась на «удалить») то тебе хватит какого то файла\ресурса на который ты будешь стучаться ajax. Передавать туда ид товара, а в этом файле \ сниппете что вызывается на ресурсе ты можешь либо пройтись по массиву $_SESSION['minishop2']['cart'] и сделать unset подходящего товара, либо по шаблону выше сгенерировать id товара, и так же сделать его unset();
Если нужно отслеживание есть ли товар в корзине то чуточку больше логики добавится. Нужно создать сниппет которым проверять товар в корзине.
Николай
15 апреля 2020, 14:27
0
Ключ формируется так:
$key = md5($id . $price . $weight . (json_encode($options)));
Николай
17 марта 2020, 12:17
0
Вот буквально ничего. В контейнере с результатами пустота.
Что еще интересно, 'showlog' => 1 ничего не дал. Может все потому-что сниппет стоит запускать сниппетом, а не через fenom…
Николай
17 марта 2020, 11:08
0
Пробовал и так. В результате ничего не выводится. В вызове сниппета вроде не ошибся…
Без шаблона вывожу, idx там отсутствует.

{'!mFilter2' | snippet : [
	'paginator' => 'pdoPage@filters'
	'element' => 'msProducts'
	'sort' => 'ms|idx:asc'
	'parents' => $_modx->resource.id
	'limit'   => 12
	'tpl' 	  => 'item'
	'class'   => 'msProduct'
	'tplOuter'=> 'filters'
	'filters' => 'ms|price:number,
				  msoption|strana,
				  ms|vendor:vendors,
				  msoption|iznos,
				  msoption|depth,
				  msoption|fasks,
				  msoption|vid,
				  msoption|gamma,
				  msoption|shir,
				  msoption|obrabotka,
				  msoption|derevo,
				  msoption|vors,
				  msoption|safe_layer_depth,
				  msoption|tip_r,
				  msoption|klass_pb,
				  msfiles|name
				  
	'
	'aliases' => 'ms|price==price,msfiles|name==colors'
    'tplFilter.outer.default' => 'filter-wrapper'
	'tplFilter.row.default'  => 'filter'
	'tplFilter.outer.price' => 'filter-price'
    'tplFilter.row.price' =>'filter-price-row'
    'tplFilter.outer.colors' => 'filter-colors'
    'tplFilter.row.colors' => 'filter-colors.row'
]}
Николай
26 июня 2019, 11:20
0
Пошел дальше, пошел смотреть логи. Насмотрел что

print_r($socket->request->headers);

содержит куку.

Array
(
[connection] => upgrade
[host] => site.com
[x-real-ip] => 5.189.120.126
[x-forwarded-for] => 5.189.120.126
[accept] => */*
[user-agent] => Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
[referer] => site.com/page.html
[accept-encoding] => gzip, deflate
[accept-language] => ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
[cookie] => _ga=GA1.2.63840410.1551895697; _ym_uid=1551895697718358359; _ym_d=1551895697; PHPSESSID=h6k94gg7gbu1b7317maq4loon7
)
Николай
26 июня 2019, 10:11
0
Теряется кукауже на сокет сервере.

Т.е, рендерится страница MODX, где я залогинен. С этой страницы я подключаюсь к /api/, При всех XHR запросах (всех четырех) Cookie: PHPSESSID=7iur19vftnprl05jt4m97kvs13 передается. А до сервера не доходит. Создается WS соединение, на сервере в консоле куки пустые…
Николай
25 июня 2019, 20:15
0
У меня сокет сервер крутится на 4000 порту:
pastebin.com/pJW87fkd
На JS части я подключаюсь к /api/

const socket = io('http://site.ru/ws/', {
path: '/api'
});

А конфиг nginx с проксей на этот сокет сервер: pastebin.com/rQi0drjw

Вроде бы все должно работать, но что-то не то…
Николай
25 июня 2019, 20:11
0
Там реальный домен. Просто стараюсь не светить лишний раз домены.
Николай
25 июня 2019, 16:14
0
Я домен туда вписал от безысходности, т.к. не работало.Вернул proxy_pass localhost:4000, все то же самое
Николай
25 июня 2019, 16:12
0
Вот, у меня почему-то нет многих директив… Конфиг nginx простейший:

pastebin.com/rQi0drjw
Николай
25 июня 2019, 16:09
0
«FILE» — это путь до файла? Если флаг, то вот что в логах для:

$modx->log(1, print_r($_SERVER, 1), «FILE»);
$modx->log(1, print_r($_COOKIE, 1), «FILE»);

[2019-06-25 13:07:54] (ERROR @ /var/www/site.com/core/socket/server.php: 27) Array
(
[TERM] => xterm
[LS_COLORS] => rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
[PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
[LANG] => en_US.UTF-8
[HOME] => /root
[LANGUAGE] => en_US:en
[SHELL] => /bin/bash
[MAIL] => /var/mail/www-data
[LOGNAME] => www-data
[USER] => www-data
[USERNAME] => www-data
[SUDO_COMMAND] => /usr/bin/php server.php start
[SUDO_USER] => root
[SUDO_UID] => 0
[SUDO_GID] => 0
[PHP_SELF] => server.php
[SCRIPT_NAME] => server.php
[SCRIPT_FILENAME] => server.php
[PATH_TRANSLATED] => server.php
[DOCUMENT_ROOT] =>
[REQUEST_TIME_FLOAT] => 1561468072.7351
[REQUEST_TIME] => 1561468072
[argv] => Array
(
[0] => server.php
[1] => start
)

[argc] => 2
[HTTP_USER_AGENT] =>
[HTTP_REFERER] =>
[QUERY_STRING] =>
)

[2019-06-25 13:07:54] (ERROR @ /var/www/site.com/core/socket/server.php: 28) Array
(
)

Николай
25 июня 2019, 15:53
0
Все что в $_SERVER:
Array
(
    [TERM] => xterm
    [LS_COLORS] => rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
    [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
    [LANG] => en_US.UTF-8
    [HOME] => /root
    [LANGUAGE] => en_US:en
    [SHELL] => /bin/bash
    [MAIL] => /var/mail/www-data
    [LOGNAME] => www-data
    [USER] => www-data
    [USERNAME] => www-data
    [SUDO_COMMAND] => /usr/bin/php server.php start
    [SUDO_USER] => root
    [SUDO_UID] => 0
    [SUDO_GID] => 0
    [PHP_SELF] => server.php
    [SCRIPT_NAME] => server.php
    [SCRIPT_FILENAME] => server.php
    [PATH_TRANSLATED] => server.php
    [DOCUMENT_ROOT] => 
    [REQUEST_TIME_FLOAT] => 1561467048.3697
    [REQUEST_TIME] => 1561467048
    [argv] => Array
        (
            [0] => server.php
            [1] => start
        )

    [argc] => 2
    [HTTP_USER_AGENT] => 
    [HTTP_REFERER] => 
    [QUERY_STRING] => 
)
Николай
25 июня 2019, 15:52
0
Да, nginx:

location /api/ {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 36000;

        rewrite ^/api/(.*) /$1 break;
        proxy_pass http://site.com:4000;
        proxy_redirect     off;
        proxy_set_header   Host $host;

        proxy_set_header X-Real-IP $remote_addr ;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }
Ваш пример взял.
Николай
25 июня 2019, 15:21
0
Может я куда-то не туда смотрю… На первый запрос куки уходят точно:

А вот на сокет сервере $_SESSION $_COOKIE пустые…