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

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

Был в сети Вчера в 18:06
Заказы принимаю
Думаю такого нет. Задача сделать просто тупо экспорт не практичная :-). Просто так же файл с данными никому не нужен. Если делают экспорт, то подразумевается и импорт в 1с или в Яндекс маркет или на другой сайт. Наверно вам стоит определиться куда импорт нужен и от этого уже искать.
С mFilter2 вот эти параметры должны быть так:
&element=`mFilter2` &cacheKey=`mFilter2`
В assets/components/msearch2/action.php есть такая строка:
$config = @$_SESSION['mSearch2'][$_REQUEST['key']];
То есть mFilter2 свой конфиг в сессию пишет. Чтоб getCacheSensitive мог mFilter2 кешировать надо будет в него добавить перехват сессии еще.
А в текущей версии не будет работать. Могу его доработать под mFilter2, но платно :-). И мне надо будет доступы к сайту с mFilter2, чтоб тестировать как будет работать.
Думаю подойдет. Если не используются &toPlaceholders или &toSeparatePlaceholders. В getCache только &toPlaceholder обрабатывается. Можно так же как скрипты перехватывать изменения $modx->placeholders, но пока не требовалось.
Словил подарок от Ростелекома.

Ищу в поиске «баннер в браузере
r.analytic.host»
и первая же ссылка https://forum.kasperskyclub.ru/index.php?showtopic=62477&p=928487
Я в шоке. Когда владелец сайта ставит рекламу — это понятно. А вот когда провайдер так внезначай свои баннеры пихает это что-то за гранью. Однозначно суд. Пошел искать адвоката :-). По факту нарушение прав пользователя. А де юре может сложно будет доказать :-(.
И нафига мне эти методы?
Мне 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
1. Нет не знакомо. Это что такое?
2. Так контент и в tv и msProductData например. Все импортировать заколебешься.
3. Ну я против того чтобы стаскивать. У самого есть платные компоненты.
4. Хм… Абы какой контент не подойдет. Так что не уверен что найду.
4.1. Компонент, думаю, мне особо не нужен, но, вообще, оптимизацию сайта у меня спрашивают и понимать насколько с этим PageSpeed справляется вообще нужно.
То есть, попадется задача на оптимизацию и мне придется, либо покупать кота в мешке на не малые деньги, либо тырить. Вообще не айс :-(.
1 А что весь контент в базе что-ли? :-) картинки, ява-скрипты, компоненты
2 импорт базы сломает тестируемый компонент
3 А если заморачиватся, чтоб не сломало, то тогда уж проще стащить компонент с тестового сайта и спокойно протестить у себя.
4 Хотя рабочий контент и нужен для теста, но вообще-то не думаю, что владельцы сайта одобрят, чтоб их контент перетаскивался на какой-то левый сайт.
Ну наверное взять и поставить, не?
Ручками скопировать что-ли? Или вы хотите контент от балды напихать?
Ну 1 контент разбросан по tv и шаблонам. То есть даже 1 страницу можно долго копировать.
И 2 под контентом имел в виду контент всего сайта.
Интересно как можно запихать рабочий сайт на тестовый, чтоб протестить компонент.
Таким образом сниппет «snippetName» с примера выше, просто выполняет чтение и возврат этого файла «echo file_get_contents($file);», что существенно ускоряет время загрузки страницы если я очистил кэш вручную или время кэша закончилось
1 а сниппет с
echo file_get_contents($file);
Выполняется не быстрей, чем
!$snippet = $_modx->cacheManager->get('snippetName_cache');
И у тебя в файле $file уже типо кеш. Зачем его кешировать еще раз на странице. Наверно, можно было 2 ресурс, который показывается, сделать статическим и прикрепить к нему $file.
Мда… понимания что происходит 0.
И getCollection и getObject по $criteria готовят запрос в mysql. Для такого критерия он будет примерно таким для getCollection и $getted_id=2:
select * from modx_site_content where parent = 2 sort by createdon DESC
А getObject просто добавит limit=1
select * from modx_site_content where parent = 2 sort by createdon DESC limit=1
веть он все равно получить данные и будет их сортировать
Данные обрабатывает сортирует mysql сервер. Он это делает эффективнее, чем мы можем сделать в php. И в getObject они точно не сортируются.
Так вот, отличие getCollection и getObject ДЛЯ ДАННОГО ПРИМЕРА то, что getCollection заберет все записи с базы и займет кучу памяти, а getObject только одну и памяти понадобиться гораздо меньше.
И getCollection и getObject кроме запроса в mySQL делают, что-то еще, например проверяют есть ли доступ у юзера к объекту, но что конкректно я не разбирался и разбираться, в общем-то, не собираюсь :-). Только если что-то не так пойдет смотрю код функций. Важно только то, что getCollection и getObject выгружают данные с базы в виде xpdo объекта. Делать mySQL запросы напрямую не слишком удобно. Но если скрипт тупит или по памяти вылетает, то использую вместо getCollection getIterator или $modx->query($sql).
матан и sql отсутствует!
sql вам знать надо! учите.
На сколько %% реально повышает скорость сайта и индекс PageSpeed?
Эффективно ли это приложение, имеет ли смысл его купить?
Как обычно автор о том как работает, что внутри его компонента происходит ничего не написал. На тестовом модхост тестить бессмыслено. Так как надо с каким-то рабочим контентом тестить. А платить 4950р, чтоб потестить не вариант. То есть, по итогу, это кот в мешке, что купишь не известно.
Придумать бы, для подобный компонентов, какой-нибудь вариант покупки типа триала.
1. Отключить 0 (Нет) из выборки
Можно параметры фильтра на mFilter2 передавать с этим фильтрами и без них.
{if true}
    {set $filter = 'parent:grandparents,ms|new,ms|favorite'}
{else}
    {set $filter = 'parent:grandparents'}
{/if}
{'!mFilter2' | snippet : [ 'filters'=>$filter]}
2. Как сгругипировать несколько параметров и обернуть единой оберткой (присвоить единый заголовок оберткой)
&toSeparatePlaceholders Работает так же как и &toPlaceholders, только в раздельные плейсхолдеры попадает еще и filters. Например, если вы укажете &toSeparatePlaceholders=`my.` и &filters=`tv|test,resource|pagetitle` то получите плейсхолдеры [[+my.results]], [[+my.total]], [[+my.tv|test]] и [[+my.resource|pagetitle]].
Выводим в плейсхолдеры и
{if 'my.ms|new' placeholder || 'my.ms|favorite' placeholder}
    <div>
        <h3>You own title</h3>
        {'my.ms|new' placeholder}
        {'my.ms|favorite' placeholder}
    </div>
{/if}
Может конечно решение получше, но мне только такое пришло в голову.