Alex Zhuravlev

Alex Zhuravlev

Был в сети 05 августа 2021, 19:48
Заказы принимаю
— Авто определение языковой версии сайта при первом его посещении
Работает, определяет, но есть нюансы.
Когда первый раз заходишь на сайт по ссылке site.ru ( язык браузера на eng ) то редирект на EN версию сайта, потом ничего не меняя заходишь второй раз и попадаешь на уже версию RU (или тот язык который по дефолту без контекста)
Но правильнее запоминать язык который определился первый раз или же тот который выбрал пользователь после, то есть если пользователя устроил язык авто определения и он его далее не менял, то все гуд, его и подпихиваем ему в дальнейшем, ну и если он его сам изменил то дальше используем уже измененный.
Автор, есть ли возможность допилить?
Что то я затупил.
В шаблоне User проверяю и вывожу есть ли id юзера и если есть то вывожу поля профиля а если нет то pdousers… Так правильно делаю?

{if 'user.id'|placeholder?}
    {'user.username'|placeholder}
    {'user.fullname'|placeholder}
    {'user.email'|placeholder}
    {'user.mobilephone'|placeholder}
{else}
    {'!pdoPage' | snippet : [
        'element' => 'pdoUsers',
        'tpl' => 'user_list_tpl',
        'sortdir' => 'asc',
    ]}
{/if}
Это понятно и поля изера на странице site.com/user выводятся, вопрос в том как оформить страницу самого пользователя (на виртуальной странице), ведь при схеме которую я реализовал (см выше) я на виртуальной странице вижу вызов pdousers с списком всех пользователей, но не понял как мне указать чанк именно для пользователя…
Может не верно выражаюсь
Добрый вечер. Подскажите пожалуйста как вывести на странице пользователя его поля.

На странице site.com/user вижу всех юзеров и при клике перехожу на страницу site.com/user/testuser где вижу тот же список всех юзеров, а как вывести на этой странице поля выбранного?

Делал так
Вывел список пользователей на страницу site.com/user

[[!pdoPage?
    &element=`pdoUsers`
    &tpl=`user_list_tpl`
    &sortdir=`asc`
]]

в чанке user_list_tpl

Пользователь: <a href="[[~52]]/[[+username]]" class="">[[+username]]</a>

Повесил плагин «Виртуальная страница пользователя» по вашей ссылке
Володя добрый вечер, спасибо за плагин.
У меня пару вопросов:
1. сейчас можно сделать бронь на время только один раз а как сделать что бы одно время могло забронировать 5 человек, а лучше что бы это указывал менеджер при создании эвента.
2. Можно ли вывести на страницу календарь с информацией о брони при наведении на дату? (информация для тренеров и администраторов)
У меня вот так сделано.

<?php
$output = "";
$resources = $modx->runSnippet('pdoResources', [
	'parents' => 0,
	'limit' => 0,
	'showHidden' => 0,
	'return' => 'json',
]);

if($resources) {
	$resources = json_decode($resources);
	foreach($resources as $resource) {
        
        if ($modx->localizator_key == ru) {
            $url = $modx->config['site_url'] . $resource->uri;
        } else {
            $url = $modx->config['site_url'] . $modx->localizator_key . '/' . $resource->uri;
        }

		$changefreq = 'weekly';
		$priority = '0.5';

		// дата изменения
		$lastmod = date('Y-m-d', $resource->editedon ?: $resource->createdon);

		/* if($row['last_review_date']){
		$date = new DateTime($row['last_review_date']);
		$lastmod = $date->format('Y-m-d');
		} */


		// пометка ежечастного обновления, id категорий
		if(in_array($resource->parent, [10, 11, 12,])) $changefreq = 'hourly';

		// приоретитет
		if(in_array($resource->id, [10, 11, 12])) $priority = '1.0';

		$output .= "
		<url>
		    <loc>{$url}</loc>
		    <lastmod>{$lastmod}</lastmod>
		    <changefreq>{$changefreq}</changefreq>
		    <priority>{$priority}</priority>
		</url>
		";
	}
}

return $output;

Вызов тот же

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{'!getSiteMap' | snippet}
</urlset>
В логах еще
[2018-03-24 16:14:50] (ERROR @ /home/admin/web/site.ru/public_shtml/core/components/sync/model/sync/sync.class.php: 386) Неправильное имя пользователя или пароль. Пожалуйста, проверьте введённые данные и попытайтесь снова.

а в sync_user_password и sync_user_username нужно указывать данные пользователя в ИМ или МС?
Владимир, что не так делаю.

1. В console выполняю код что бы посмотреть wh как вы написали. А почему ошибки?
[2018-03-24 15:48:25] (ERROR @ /home/admin/web/tirinipul.ru/public_shtml/core/model/modx/modx.class.php : 1612)
[syncOnInit]
[2018-03-24 15:48:25] (WARN @ /home/admin/web/tirinipul.ru/public_shtml/core/xpdo/xpdo.class.php : 543)
Could not load package metadata for package sync.


[2018-03-24 15:48:25] (INFO @ /home/admin/web/tirinipul.ru/public_shtml/core/model/modx/registry/moddbregister.class.php : 147)
Message was null or expired: stdClass Object

(
    [topic] => 4
    [id] => moysklad
    [created] => 2018-03-24 15:47:23
    [valid] => 2018-03-24 15:47:23
    [accessed] => 2018-03-24 18:47:23
    [accesses] => 0
    [expires] => 1521906503
    [payload] => if (time() > 1521906503) return null;
return 'vqvsg75uatba9ho0k310e727s7';

    [kill] => 0
)

Array
(
    [0] => Array
        (
            [meta] => Array
                (
                    [href] => https://online.moysklad.ru/api/remap/1.1/entity/webhook/39710f10-2f78-11e8-9ff4-34e80003c18b
                    [metadataHref] => https://online.moysklad.ru/api/remap/1.1/entity/webhook/metadata
                    [type] => webhook
                    [mediaType] => application/json
                )

            [id] => 39720f10-2f78-11e8-9ff4-34e80001c18b
            [accountId] => 47278ea8-2d2b-11e8-9109-f8fc000014f6
            [entityType] => product
            [url] => https://site.ru/assets/components/syncmoysklad/hook.php?auth=YWRtaW5AZnJ3MTpkMsRlNzFiNzI2
            [method] => POST
            [enabled] => 1
            [action] => DELETE
        )

)

2. в sync_moysklad_web_hook_url нужно это прописывать?
https://site.ru/assets/components/syncmoysklad/hook.php?auth=YWRtaW5AZnJ3MTpkMsRlNzFiNzI2

3. Повесил ваш пример для удаления на syncOnSyncObjectProcess и сейчас при синхронизации, экспорте или импорте вылезает ошибка
Синхронизация…
Пустой ответ. Попробуйте еще раз
prntscr.com/ivs44y
Владимир добрый день
1. Можете подробнее описать про WebHook'и (может еще примеров)
2. Что указывать в sync_moysklad_web_hook_url?
3. Где задавать WebHook'и? (прочитал ваш пример и не понял)
4. Как я понял если задать webhook (пример на удаление) то при удалении товара из МС он автоматом и без дополнительных действий со стороны ИМ поставит продукт на удаление?

Написал не в ТП, может еще кому то пригодится.
Спасибо
Работает но криво, mfilter2 только без параметра &ajaxHistory (в документации)
а по факту если в default.js убрать delete(tmp['page']) то при ajax пагинации ссылка меняется на ?page=2 но при обновлении страницы она убирается, но при этом остается на той же странице.
Всем привет. Подскажите как правильно вывести текущий CultureKey в чанке товара minishop (tpl.msProducts.row) и что бы при выборе фильтра в mFilter2 он оставался.

На сайте один контекст и два языка (en и ru) через localizator в системной настройке cultureKey стоит «ru»
Если вывожу в чанке {$_modx->config['cultureKey']} или {'localizator_key' | option} то вижу текущий язык, но при отработке фильтра ajax'ом язык {$_modx->config['cultureKey']} слетает на установленный в системных настройках а {'localizator_key' | option} вовсе не отображает.