Вопросы
Дубли страниц с заглавными буквами в url
Добрый вечер.
Я понял, что вопросы не касающиеся напрямую MODX задавать не стоит )
Кэширование данных в браузере — включить
исправляюсь.
Сегодня SEO специалисты написали мне что на всех проектах на MODX все страницы дублируются, если задать их url заглавными буквами или еще того хуже — любой комбинацией заглавных и прописных букв.
И да, это так.
modx.pro/BLOGS
Такое же наблюдается и на wordpress и на joomla но вернемся к modx.
Кто-то решал подобную задачу?
Или подскажите пожалуйста, какой класс занимается обработкой url, я попробую либо делать редирект на принудительно переведенный в нижний регистр либо отдавать 404.
Спасибо.
Я понял, что вопросы не касающиеся напрямую MODX задавать не стоит )
Кэширование данных в браузере — включить
исправляюсь.
Сегодня SEO специалисты написали мне что на всех проектах на MODX все страницы дублируются, если задать их url заглавными буквами или еще того хуже — любой комбинацией заглавных и прописных букв.
И да, это так.
modx.pro/BLOGS
Такое же наблюдается и на wordpress и на joomla но вернемся к modx.
Кто-то решал подобную задачу?
Или подскажите пожалуйста, какой класс занимается обработкой url, я попробую либо делать редирект на принудительно переведенный в нижний регистр либо отдавать 404.
Спасибо.
Плагин — вырезать из урл
как можно вырезать из урл «katalog»?
пробовал так, но не работает и на какое событие вешать?
пробовал так, но не работает и на какое событие вешать?
if (!isset($_REQUEST[$alias])) {return false;}
$request = $_REQUEST[$alias];
$tmp = explode('/', $request);
// Ссылка подходит под заданный формат: katalog/product
if ($tmp[0] == 'katalog' && count($tmp) >= 2) {
$name = str_replace('katalog/', '', $request);
$modx->sendForward($name)ж
} Несколько Pdopage на странице
Добрый день, возникла проблема с удваиванием кнопки подгрузки на странице. Собственно выглядит вот так prnt.sc/nrz6m2, причем для обоих галерей.
Вызов сниппетов выглядит так:
Вызов сниппетов выглядит так:
<div id="pdopage">
[[!+page.nav]]
<div class="rows">
[[!pdoPage?
&element=`getImageList`
&tvname=`resourcealbum`
&tpl=`effects-img`
&limit=`15`
&ajaxMode=`button`
&wrapperTpl = `effects_wrapper`
&docid=`[[*id]]`
&processTVs=`1`
]]
</div>
</div>
<div id="pdopage">
[[!+nav.pagevar]]
<div class="rows">
[[!pdoPage?
&element=`getImageList`
&tvname=`resourcealbum1`
&tpl=`effects-img`
&limit=`15`
&ajaxMode=`button`
&wrapperTpl = `colors_wrapper`
&docid=`[[*id]]`
&processTVs=`1`
&pageNavVar= `nav.pagevar`
&pageVarKey=`page1`
]]
</div>
</div> Не работает вывод изображений в ajax пагинации
Не работает вывод изображений в подгруженных записях через ajax.
вывожу записи через pdoPage с включенной ajax пагинацией, изображения минифицирую плагином phpthumbon.
pdopage сами картинки выводит, после нажатия на кнопку подгрузки, изображения на подгруженных записях не выводятся.
вывожу через код:
вывожу записи через pdoPage с включенной ajax пагинацией, изображения минифицирую плагином phpthumbon.
pdopage сами картинки выводит, после нажатия на кнопку подгрузки, изображения на подгруженных записях не выводятся.
вывожу через код:
<div id="pdopage">
<div class="rows">
[[!pdoPage?
&parents=`9`
&depth=2
&ajaxMode=`button`
&limit=`4`
&where=`{"isfolder:=":0}`
&tpl=`case_list`
&includeTVs=`news_img`
] ]
</div>
[[!+page.nav?]]
</div>Содержимое чанка «case_list»[[+parent]]
<img class="img-responsive" src="[[phpThumbOn? &input=`[[+tv.news_img]]` &options=`h=308&w=480&zc=1`]]" alt="[[+pagetitle]]"
[[~[[+id]]]]
[[+pagetitle]]
[[~[[+parent]]]] [[#[[+parent]].pagetitle]] Сортировка по дате рождения pdoresources?
Подскажите как сделать сортировку по дате рождения:
Например, есть TV дата, дата стоит:
1) 1997-05-21
2) 1998-05-15
3) 1996-05-15
Должно вывестись в таком порядке:
1) 1996-05-15
2) 1998-05-15
3) 1997-05-21
Т.е. должно сортироваться только по Дню, остальное можно отмести.
Например, есть TV дата, дата стоит:
1) 1997-05-21
2) 1998-05-15
3) 1996-05-15
Должно вывестись в таком порядке:
1) 1996-05-15
2) 1998-05-15
3) 1997-05-21
Т.е. должно сортироваться только по Дню, остальное можно отмести.
miniShop2 Очистка Корзины - редирект
Доброе время суток.
Очистка Корзины — в JavaScript указал редирект, по документации через Callbacks:
Указывал Order, тот же результат.
В чем ошибка?
Спасибо
Очистка Корзины — в JavaScript указал редирект, по документации через Callbacks:
miniShop2.Callbacks.add('Cart.clean.response.success', 'clean_cart_redirect', function() {
console.log('Редирект');
document.location = '/';
});Не работает, даже console.log не выводит.Указывал Order, тот же результат.
В чем ошибка?
Спасибо
Дробное количество товара Minishop2
Всем привет.
Подскажите пожалуйста, на правильном ли я пути, и правильная ли логика?
Есть интернет-магазин на minishop2.
Цена за товар указывается в метрах.
Минимальное количество товара для покупки 0.1 метра.
Дефолтное поле «Количество» завязано на целых числах, для его изменения нужно вносить правки в ядро: (Подробнее modx.pro/help/3991).
От этого варианта я решил отказаться.
Решил через плагины.
Создаем своё поле и выводим его вместо в форме карточки товара.
Перед добавлением товара — msOnBeforeAddToCart
Перед формированием заказа — msOnBeforeCreateOrder
Пока в голове только такое решение:
Через ajax на форме записывать значение в сессию. В плагине читать эту сессию.
На странице корзины
Из сессии берем значение метража, если сессии нет, то выставляем значение 1.
На какое событие лучше повесить изменение цены на странице корзины?
Верна ли моя логика? Буду рад любой подсказке, спасибо.
Подскажите пожалуйста, на правильном ли я пути, и правильная ли логика?
Есть интернет-магазин на minishop2.
Цена за товар указывается в метрах.
Минимальное количество товара для покупки 0.1 метра.
Дефолтное поле «Количество» завязано на целых числах, для его изменения нужно вносить правки в ядро: (Подробнее modx.pro/help/3991).
От этого варианта я решил отказаться.
Решил через плагины.
Создаем своё поле и выводим его вместо в форме карточки товара.
<input class="input" type="number" value="0.1" step="0.1" min="0" max="100">Создаем плагин на 2 события:Перед добавлением товара — msOnBeforeAddToCart
Перед формированием заказа — msOnBeforeCreateOrder
<?php
switch ($modx->event->name) {
case 'msOnBeforeAddToCart':
$areaProduct = "значение метража"
$new_price = $product->get('price') * $areaProduct;
$product->set('price', $new_price);
break;
}как получать значение поля метраж из формы$areaProduct?Пока в голове только такое решение:
Через ajax на форме записывать значение в сессию. В плагине читать эту сессию.
На странице корзины
Из сессии берем значение метража, если сессии нет, то выставляем значение 1.
На какое событие лучше повесить изменение цены на странице корзины?
Верна ли моя логика? Буду рад любой подсказке, спасибо.
Посоветуйте текстовый редактор для Frontend/
Приветствую
Пытался найти готовый редактор для внешнего интерфейса (прямо на странице редактировать), перепробовал несколько найденных, но все из них по тем или иным причинам нерабочие или мне так повезло. Нужно что-то очень простое типа imperavi — админ открывает страницу на сайте, тут же может ее там же отредактировать и сохранить без заморочек. Есть такое что-то рабочее или надо что-то брать и допиливать?
P.S.
Вообще как-то туговато с нормальными редакторами для MODX давным давно…
Пытался найти готовый редактор для внешнего интерфейса (прямо на странице редактировать), перепробовал несколько найденных, но все из них по тем или иным причинам нерабочие или мне так повезло. Нужно что-то очень простое типа imperavi — админ открывает страницу на сайте, тут же может ее там же отредактировать и сохранить без заморочек. Есть такое что-то рабочее или надо что-то брать и допиливать?
P.S.
Вообще как-то туговато с нормальными редакторами для MODX давным давно…
создание документа программно не msproduct обычный ресурс
Всем привет.
Опытные разработчики на modx revo нетолько shopов подскажите пожалуйста
как создать документ программно обычный resource
нашёл примеры в инете создаётся с pagetitle всё ок
но при повтороном создании создаётся заново
тоесть как бы простой отзыв из личного кабинет
простая форма, shop нравится всё ок submit
создаётся ресурс программно от usera c pagetitle от usera
ресурс pagetitle с username отзыв 1
ресурс pagetitle с username отзыв 2
ресурс pagetitle с username отзыв 3
ресурс pagetitle с username отзыв 4
ресурс pagetitle с username отзыв 5
как реализовать проверку чтобы ресурсы постоянно несоздавались а был один ресурс и постоянно обновлялся,
несоздавая новые
создаётся ресур (доэтого проверяется есть ли данный ресур и несоздаётся с новым id )
snippet
formit2resource
chunk form
сделал так
буду очень признателен кто поможет дополнить проверку
Если нужен в помошь человек по созданию интернет магазинов, с удовольствием поучавствую с лояльной занятостью.
В прогрраммной части несилён (создание кастомных сниппетов сложная кастомная фильтрация и тд), пишите в личку если нежун в помошь человек и есть надобность
(сроки поджимают, устаём наполянть своим тимом, просто сам делаю нужна помошь неуспеваю отдать shop заказчику).
Опытные разработчики на modx revo нетолько shopов подскажите пожалуйста
как создать документ программно обычный resource
нашёл примеры в инете создаётся с pagetitle всё ок
но при повтороном создании создаётся заново
тоесть как бы простой отзыв из личного кабинет
простая форма, shop нравится всё ок submit
создаётся ресурс программно от usera c pagetitle от usera
ресурс pagetitle с username отзыв 1
ресурс pagetitle с username отзыв 2
ресурс pagetitle с username отзыв 3
ресурс pagetitle с username отзыв 4
ресурс pagetitle с username отзыв 5
как реализовать проверку чтобы ресурсы постоянно несоздавались а был один ресурс и постоянно обновлялся,
несоздавая новые
создаётся ресур (доэтого проверяется есть ли данный ресур и несоздаётся с новым id )
[[!FormIt?
&hooks=`formit2file,formit2resource`
&template=``]]
</div>snippet
formit2resource
<?php
$doc = $modx->getObject('modResource',array('id'=>$hook->getValue('username')));
if (empty($doc)){
$doc = $modx->newObject('modResource');
$doc->set('createdby', $modx->user->get('id'));
}
else{
$doc->set('editedby', $modx->user->get('id'));
}
$allFormFields = $hook->getValues();
foreach ($allFormFields as $field=>$value)
{
if ($field !== 'spam' && $field !== 'resource_id'){
$doc->set($field, $value);
}
}
$alias = $doc->cleanAlias($fields['pagetitle']);
if($modx->getCount(modResource, array('alias'=>$alias))!= 0) {
$count = 1;
$newAlias = $alias;
while($modx->getCount(modResource, array('alias'=>$newAlias))!= 0) {
$newAlias = $alias;
$newAlias .= '-' . $count;
$count++;
}
$alias = $newAlias;
}
$doc->set('alias',$alias);
$doc->set('template', $template);
$doc->set('published', 0);
$doc->set('hidemenu', 1);
$doc->save();
foreach ($allFormFields as $field=>$value)
{
if (!empty($value) && $tv = $modx->getObject('modTemplateVar', array ('name'=>$field)))
{
/* handles checkboxes & multiple selects elements */
if (is_array($value)) {
$featureInsert = array();
while (list($featureValue, $featureItem) = each($value)) {
$featureInsert[count($featureInsert)] = $featureItem;
}
$value = implode('||',$featureInsert);
}
$tv->setValue($doc->get('id'), $value);
$tv->save();
}
}
$modx->cacheManager->refresh();
return true;chunk form
сделал так
<input class="field" type="text" name="pagetitle"
value="[[+fi.pagetitle]]отзыв [[*createdon:strtotime:date=`%c`]]
от пользователя [[!+modx.user.id:userinfo=`username`]]" />буду очень признателен кто поможет дополнить проверку
Если нужен в помошь человек по созданию интернет магазинов, с удовольствием поучавствую с лояльной занятостью.
В прогрраммной части несилён (создание кастомных сниппетов сложная кастомная фильтрация и тд), пишите в личку если нежун в помошь человек и есть надобность
(сроки поджимают, устаём наполянть своим тимом, просто сам делаю нужна помошь неуспеваю отдать shop заказчику).
(РЕШЕНО) Проблема с соединением через SSL
Неожиданно возникла проблема с соединением через SSL у заказчика. У меня сайт доступен, все прекрасно. Проверил по ping-admin.ru/index.sema на некоторых серверах (в том числе Москва, центр-1) есть такое сообщение:
«Проблема с соединением через SSL. Скорее всего на сервере отключены ряд шифров для SSL, из-за чего некоторые клиенты не смогут подключиться. Обращение производилось к IP...»
По http сайт прекрасно открывается.
Кто-нибудь сталкивался? Как это вылечить? Или это какое-то локальные проблемы провайдеров?
UPD: перевыпустил сертификат Let's Encrypt — все стало ок!
«Проблема с соединением через SSL. Скорее всего на сервере отключены ряд шифров для SSL, из-за чего некоторые клиенты не смогут подключиться. Обращение производилось к IP...»
По http сайт прекрасно открывается.
Кто-нибудь сталкивался? Как это вылечить? Или это какое-то локальные проблемы провайдеров?
UPD: перевыпустил сертификат Let's Encrypt — все стало ок!