Александр Туниеков

Александр Туниеков

С нами с 19 декабря 2015; Место в рейтинге пользователей: #15
Александр Туниеков
03 марта 2020, 20:54
0
Напишите с pdoFetch запрос
SELECT tSkladDetNSLink.id, Smena.id, (SELECT NextDNL.smena_id
FROM `modx_tsklad_detail_naryad_smena_link` AS `NextDNL`
LEFT JOIN `modx_tsklad_smena` `NextS` ON NextS.id=NextDNL.smena_id
WHERE NextS.date > Smena.date
ORDER BY NextS.date ASC, NextS.number ASC
LIMIT 1) AS on_next_smena_id
FROM `modx_tsklad_detail_naryad_smena_link` AS `tSkladDetNSLink`
LEFT JOIN `modx_tsklad_smena` `Smena` ON Smena.id=tSkladDetNSLink.smena_id
WHERE Smena.id > 0
ORDER BY tSkladDetNSLink.id DESC
LIMIT 10
так, чтоб в конфиге запроса не было названий таблиц с префиксом базы modx_tsklad_detail_naryad_smena_link, modx_tsklad_smena и не надо лишних сниппетов(Я уже заманался вспоминать какой сниппет для чего нужен). Я проверю у себя :-).
Александр Туниеков
03 марта 2020, 20:38
0
Потом сложно обновлять сайты, и нужно все файлы сверять.
Надеюсь Василий пул реквест примет и будет стандарт. Подзапросы нужны, хотя и не часто.
Александр Туниеков
03 марта 2020, 20:34
0
Подзапросы pdoTools не умеет делать!!! Точнее pdoFetch не умеет.
Александр Туниеков
03 марта 2020, 20:12
0
Можно этот релиз юзать и никаких пробелов ставить не надо :-).
Александр Туниеков
29 февраля 2020, 18:30
0
В качестве финального решения возможно стоит использовать alias. В одном и том же контексте двух элементов с одним alias быть не может, а следовательно его можно использовать как ключ.
Может быть :-). У папки может быть включено использовать псевдоним в uri. То есть уникальный, по идее, только uri, но gitify uri использует и все равно какие-то проблемы. И, если id ресурсов меняются, надо в шаблонах и чанках id ресурса переписывать в конструкциях типа
{123 | url}
{$_modx->makeUrl(21)}
и т.д.
Александр Туниеков
23 февраля 2020, 12:51
0
Как сложно все. И просто компонент синхронизации для MODX не сделаешь.
У меня такая задача. На модкс частично перенесена система управления производством (Первоначально сделанная на Excel директором. Но excel тупит на больших объемах данных и синхронизация разных книг еще тот геморой). Регулярно на сайте что-то меняется. Сейчас, чтобы не мешать рабочему процессу фирмы, сделали тестовую копию сайта. Теперь желательно сделать так чтобы ее можно было быстро синхронизировать с рабочим сайтом.
Нужно чтоб с тестового сайта переносились изменения всех ресурсов, копировались все измененные файлы компонентов и переносилась структура таблиц компонентов без изменения данных. Еще таблицы с настройками желательно настроить чтоб копировались, но это можно и ручками.
Если тут спецы по Gitify есть, подскажите пожалуйста, это можно сделать? И где смотреть как такое организовать?
Александр Туниеков
23 февраля 2020, 12:09
0
ААА… блин. Вот я прокосячил. На меню то слева не посмотрел :-(. Простите плиз.
Александр Туниеков
23 февраля 2020, 11:38
0
Ну блин. Я же справку хочу. Как установить, как синхронизировать гит какой устанавливать. На виндоус запуститься ли? и т.д. А про то что Gitify есть я давно в курсе. Только инфу по разным сайтам собирать и тестить как что работает не охота. И времени особо на это нет.
Александр Туниеков
23 февраля 2020, 07:57
0
Часто возникает ситуация, что тестовая версия сайта начинает плотно отставать по контенту от продакшена и необходимо как-то синхронизировать изменения.
Актуальная тема :-). Как-то давно написал ChangePack, но сейчас даже сам им не пользуюсь :-(. В чем в ChangePack косяки уже забыл. Наверно, что изменения в файлах не ловит и что поменялось в сниппетах и чанках нельзя посмотреть. Но счас тестовый и рабочий сайт надо будет полгода, пока активно разработка идет, синхронизировать. А в ручную это полчаса-час.
Про Gitify есть где-нибудь хорошее описание? На русском, текстовое и актуальное :-)?
Александр Туниеков
08 февраля 2020, 16:31
0
А вот это не знал :-) лови плюс. Блин почему-то не ставиться плюс :-(
Александр Туниеков
04 февраля 2020, 18:34
0
Думаю такого нет. Задача сделать просто тупо экспорт не практичная :-). Просто так же файл с данными никому не нужен. Если делают экспорт, то подразумевается и импорт в 1с или в Яндекс маркет или на другой сайт. Наверно вам стоит определиться куда импорт нужен и от этого уже искать.
Александр Туниеков
10 декабря 2019, 07:58
0
А блин еще надо добавить &elementClass=`modSnippet`. Я же сниппет у себя скопировал в MODX и elementClass в параметрах по умолчанию шел.
Обновил getCacheSensitive
Добавил if(empty($elementClass)) $elementClass = 'modSnippet';
Александр Туниеков
10 декабря 2019, 07:06
0
С mFilter2 вот эти параметры должны быть так:
&element=`mFilter2` &cacheKey=`mFilter2`
В assets/components/msearch2/action.php есть такая строка:
$config = @$_SESSION['mSearch2'][$_REQUEST['key']];
То есть mFilter2 свой конфиг в сессию пишет. Чтоб getCacheSensitive мог mFilter2 кешировать надо будет в него добавить перехват сессии еще.
А в текущей версии не будет работать. Могу его доработать под mFilter2, но платно :-). И мне надо будет доступы к сайту с mFilter2, чтоб тестировать как будет работать.
Александр Туниеков
08 декабря 2019, 20:50
0
Думаю подойдет. Если не используются &toPlaceholders или &toSeparatePlaceholders. В getCache только &toPlaceholder обрабатывается. Можно так же как скрипты перехватывать изменения $modx->placeholders, но пока не требовалось.
Александр Туниеков
20 ноября 2019, 18:41
+1
Словил подарок от Ростелекома.

Ищу в поиске «баннер в браузере r.analytic.host»
и первая же ссылка https://forum.kasperskyclub.ru/index.php?showtopic=62477&p=928487
Я в шоке. Когда владелец сайта ставит рекламу — это понятно. А вот когда провайдер так внезначай свои баннеры пихает это что-то за гранью. Однозначно суд. Пошел искать адвоката :-). По факту нарушение прав пользователя. А де юре может сложно будет доказать :-(.
Александр Туниеков
20 ноября 2019, 14:15
0
И нафига мне эти методы?
Мне getObject нужен. Чтоб проверки доступа, все обработанные поля были. И чтоб не писать простыню кода каждый раз когда какое-то значение из базы нужно.
$pdo->getArray limit добавляет, но писать ['pagetitle'] раздражает. ->pagetitle короче. И создавать $pdo каждый раз надо.
Ваш modHelpers object limit ставит. И код писать короче. Но ради 1 функции грузить кучу кода явно не стоит. Загрузки 516. Не слишком популярная библиотека. Код написанный другим человеком и так бывает сложно разобрать и, чтоб добавить еще не популярный синтаксис должна быть веская причина. Ну и с первого раза библиотека просто не понравилась.

Так почему в getObject limit=1 не добавили? Кто-нибудь знает?
вот добавить $criteria->limit(1) после этой строки github.com/modxcms/revolution/blob/932472d65793a305bd8c971f21032f24068258ad/core/xpdo/om/xpdoobject.class.php#L423
и этой github.com/modxcms/revolution/blob/932472d65793a305bd8c971f21032f24068258ad/core/model/modx/modaccessibleobject.class.php#L96
Александр Туниеков
20 ноября 2019, 10:10
0
Мда… сюрприз однако.
<?php
if($res=$modx->getObject("modResource",array("parent"=>1))){
    echo $res->pagetitle;
}
лог запросов mysql
SELECT… FROM `modx_site_content` AS `modResource` WHERE `modResource`.`parent` = 1
То есть, getObject получает все, а потом грузит первую запись :-(.
@Сергей Шлоков А зачем так сделано?? Память же все отстальное занимает.
И как теперь жить-то :-(. И limit через $query = $modx->newQuery долго добавлять.
Александр Туниеков
20 ноября 2019, 04:44
0
1. Нет не знакомо. Это что такое?
2. Так контент и в tv и msProductData например. Все импортировать заколебешься.
3. Ну я против того чтобы стаскивать. У самого есть платные компоненты.
4. Хм… Абы какой контент не подойдет. Так что не уверен что найду.
4.1. Компонент, думаю, мне особо не нужен, но, вообще, оптимизацию сайта у меня спрашивают и понимать насколько с этим PageSpeed справляется вообще нужно.
То есть, попадется задача на оптимизацию и мне придется, либо покупать кота в мешке на не малые деньги, либо тырить. Вообще не айс :-(.