Alex Zhuravlev

Alex Zhuravlev

С нами с 31 мая 2014; Место в рейтинге пользователей: #97
Alex Zhuravlev
06 июля 2021, 06:18
0
— Авто определение языковой версии сайта при первом его посещении
Работает, определяет, но есть нюансы.
Когда первый раз заходишь на сайт по ссылке site.ru ( язык браузера на eng ) то редирект на EN версию сайта, потом ничего не меняя заходишь второй раз и попадаешь на уже версию RU (или тот язык который по дефолту без контекста)
Но правильнее запоминать язык который определился первый раз или же тот который выбрал пользователь после, то есть если пользователя устроил язык авто определения и он его далее не менял, то все гуд, его и подпихиваем ему в дальнейшем, ну и если он его сам изменил то дальше используем уже измененный.
Автор, есть ли возможность допилить?
Alex Zhuravlev
06 июля 2021, 03:57
0
Очень не хватает удобного интерфейса локализации пользовательского текста как это реализовано в Localizator
Переводить а главное создавать переменные в словаре через стандартные функции modx очень не удобно.
Планируется ли такой функционал в PolyLang?

Alex Zhuravlev
06 июля 2021, 00:42
0
Привет. Спасибо за большую проделанную работу.
А когда документация с примерами и разными готовыми решениями на PolyLang планируется и будет ли вообще?
Alex Zhuravlev
12 июля 2018, 15:50
+1
Что то я затупил.
В шаблоне 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}
Alex Zhuravlev
12 июля 2018, 15:18
0
Это понятно и поля изера на странице site.com/user выводятся, вопрос в том как оформить страницу самого пользователя (на виртуальной странице), ведь при схеме которую я реализовал (см выше) я на виртуальной странице вижу вызов pdousers с списком всех пользователей, но не понял как мне указать чанк именно для пользователя…
Может не верно выражаюсь
Alex Zhuravlev
11 июля 2018, 23:26
0
Добрый вечер. Подскажите пожалуйста как вывести на странице пользователя его поля.

На странице 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>

Повесил плагин «Виртуальная страница пользователя» по вашей ссылке
Alex Zhuravlev
10 июля 2018, 21:26
0
* по второму вопросу: сделать вывод календаря на фронтенде как в бекенде
Alex Zhuravlev
10 июля 2018, 21:11
0
Володя добрый вечер, спасибо за плагин.
У меня пару вопросов:
1. сейчас можно сделать бронь на время только один раз а как сделать что бы одно время могло забронировать 5 человек, а лучше что бы это указывал менеджер при создании эвента.
2. Можно ли вывести на страницу календарь с информацией о брони при наведении на дату? (информация для тренеров и администраторов)
Alex Zhuravlev
09 июля 2018, 17:42
0
У меня вот так сделано.

<?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>
Alex Zhuravlev
26 марта 2018, 00:53
0
А как в field указать свое кастомное поле из minishop?

У меня в товаре есть кастомное поле где я прописываю параметры товара и нужно выводить похожие по этому полю, указываю его в field но ничего не выводит.
Alex Zhuravlev
24 марта 2018, 19:17
0
В логах еще
[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 нужно указывать данные пользователя в ИМ или МС?
Alex Zhuravlev
24 марта 2018, 19:05
0
Владимир, что не так делаю.

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
Alex Zhuravlev
24 марта 2018, 15:53
0
Владимир добрый день
1. Можете подробнее описать про WebHook'и (может еще примеров)
2. Что указывать в sync_moysklad_web_hook_url?
3. Где задавать WebHook'и? (прочитал ваш пример и не понял)
4. Как я понял если задать webhook (пример на удаление) то при удалении товара из МС он автоматом и без дополнительных действий со стороны ИМ поставит продукт на удаление?

Написал не в ТП, может еще кому то пригодится.
Спасибо
Alex Zhuravlev
18 марта 2018, 19:09
0
Работает но криво, mfilter2 только без параметра &ajaxHistory (в документации)
а по факту если в default.js убрать delete(tmp['page']) то при ajax пагинации ссылка меняется на ?page=2 но при обновлении страницы она убирается, но при этом остается на той же странице.
Alex Zhuravlev
11 марта 2018, 00:21
0
Поставил SEO TAB что бы делать 301 редиректы битых ссылок, и при добавлении я указываю id ресурса на который должна вести ссылка, и столкнулся с проблемой что в компоненте линк генерируется исходя из контекста и в итоге получается что site.ru/test я могу указать а вот site.ru/EN/test не могу так как localizator же на псевдо контекстах. prntscr.com/ipggei
Может сделать второй контекст пустой?
Подскажите куда копать, может сталкивался.
Alex Zhuravlev
19 февраля 2018, 23:19
0
Дима, большое спасибо, все заработало.
Нужно было еще сессии и кеш прибить.
Alex Zhuravlev
19 февраля 2018, 17:21
0
Не получилось, не вижу языки после ajax
Вот демка localizator.tirinipul.ru/catalog/
Я уже перепробовал все что мог, не понимаю куда копать дальше.
Alex Zhuravlev
19 февраля 2018, 12:05
0
Всем привет. Подскажите как правильно вывести текущий CultureKey в чанке товара minishop (tpl.msProducts.row) и что бы при выборе фильтра в mFilter2 он оставался.

На сайте один контекст и два языка (en и ru) через localizator в системной настройке cultureKey стоит «ru»
Если вывожу в чанке {$_modx->config['cultureKey']} или {'localizator_key' | option} то вижу текущий язык, но при отработке фильтра ajax'ом язык {$_modx->config['cultureKey']} слетает на установленный в системных настройках а {'localizator_key' | option} вовсе не отображает.
Alex Zhuravlev
16 февраля 2018, 19:40
0
Еще не забыть добавить события на плагин
OnWebPageInit
OnParseDocument
OnLoadWebDocument
msOnBeforeAddToCart
msOnBeforeRemoveFromCart
msOnBeforeChangeInCart
msOnSubmitOrder
msOnChangeOrderStatus