Blog by Fi1osof

Всем привет!

Хочу поделиться своей новой находкой — библиотека Vis.JS. Блин, я просто в восторге!:) Заморочился тут себе одну систему написать для планирования деятельности (а точнее комплексный мониторинг бизнес-процессов, я бы так сказал). В общем, суть идеи в том, чтобы визуализировать все составляющие деятельности, чтобы видеть какие цепочки какие ресурсы генерируют, какие потребляют, какой выхлоп и т.п. Само собой все это требует визуализации большого объема данных. То, что вы увидите на картинке — лишь малая их часть.

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

Вопросы специалистов

Всем доброго дня.
Достался сайт на стареньком Revo 2.2.10
Нужно было реализовать английскую версию. Сделал с помощью контекстов. Все хорошо, за исключением формы обратной связи. Она никак не работает.
На русской версии все ок, на английской версии не отрабатывает. Не выкидывает сообщений о незаполнености обязательных полей, а если все заполнено верно, то не редиректит на страницу с сообщением об успешной отправке письма, и не отсылает письмо на почту.
В логах никаких ошибок при этом нет. Читать дальше...

Сборки и пакеты

Четыре месяца прошло с момента публикации прошлой сборки. За это время ее скачали 940 раз… Лично для меня она уже настолько стабильная, что обновления вот не часто выпускаются. Но сегодня выходит свеженькая версия с небольшими, но приятными обновлениями. Главная фишка новой версии, как многие догадались после прочтения заголовка — это подсчет минимальной и максимальной цены в выбранных товарах. Реализовано это новым процессором modWebCatalogProductsPricesMinmaxGetdataProcessor. Зачем это надо? К примеру, вы захотели реализовать фильтр по товарам с бегунком выбора цен. Для него вам надо знать минимальную и максимальную цены из доступных товаров. Вот этим процессором вы и получите эти значения. Причем здесь есть пара сопутствующих моментов и улучшений:

1. Логика процессора modWebCatalogCategoryProductsGetdataProcessor, получающего товары из указанной категории перенесена в сам процессор получения данных товаров modWebCatalogProductsGetdataProcessor. Раньше эта логика была разнесена на два отдельных процессора, что не есть хорошо. Дело в том, что эти цены берутся из найденных товаров, и если бы так и было два отдельных процессора, то нам сложно было бы получать цены товаров из какого-нибудь раздела. А так сейчас можно просто передать в вызов процессора параметр category_id, и процессор сделает выборку товаров из этой категории (и из дочерних подкатегорий) и получит их цены. Читать дальше...

Документация для специалистов

Столкнулся с тем, что клиент попросил удалять из URL алиасы промежуточных родителей (выборочно). Документов достаточно много, и заморозка URL — не самый удобный вариант.
Уверен, не я один столкнулся с подобной проблемой.
Поиск привел в github. Да, требуется внести изменения в ядро, но, думаю, оно того стоит. Читать дальше...

Безопасность

Доброго времени суток всем.
Нужна помощь. Столкнулся с проблемой. На литовском хостинге balticservers.com закрыли сайт armplast.eu за рассылку спама. Литовская техподдержка ничем помочь не захотела. Сам не являюсь большим специалистом. Товарищи помогли, в логах нашли вот такой запрос:

190.144.43.236 — - [24/Jun/2015:05:02:26 +0300] «GET /?x=()?x=() { :; }; echo Content-type:text/plain;echo;echo;echo M`expr 1330 + 7`H;/bin/uname -a;echo @ HTTP/1.0» 301 239 "() { :; }; echo Content-type:text/plain;echo;echo;echo M`expr 1330 + 7`H;/bin/uname -a;echo @" "() { :; }; echo Content-type:text/plain;echo;echo;echo M`expr 1330 + 7`H;/bin/uname -a;echo @"
190.144.43.236 — - [24/Jun/2015:05:02:27 +0300] «GET /?x=()%3fx=()?x=() { :; }; echo Content-type:text/plain;echo;echo;echo M`expr 1330 + 7`H;/bin/uname -a;echo @ HTTP/1.0» 200 15227 "() { :; }; echo Content-type:text/plain;echo;echo;echo M`expr 1330 + 7`H;/bin/uname -a;echo @" "() { :; }; echo Content-type:text/plain;echo;echo;echo M`expr 1330 + 7`H;/bin/uname -a;echo @"

Это, видимо, эксплойт.
Похоже, это и есть взлом.

HELP! Куда дальше копать? Эта проблема и уязвимость MODX (стоит версия MODX REVO 2.3.2) или вопросы к хостингу? Читать дальше...

Вопросы клиентов

Добрый день. Пытаюсь реализовать ajax отправку писем через FormIt, но что-то, где-то пропустил. При нажатии на submit нас перекидывает на страницу формы(index.php?id=2), хотя поидее мы должны оставаться на первой странице где открыта ajax форма…
Код вызова
<a href="[[~2]]" class="ajax-form call" >Заказать звонок</a>

JS код Читать дальше...

Вопросы специалистов

Здравствуйте.

Возникла потребность создать универсальный запрощик для пользователя (можно сказать фильтр) но такой что бы все запросы пользователь создавал сам.

Долго придумывал как это будет выглядеть и наконец то сплагиатил. В моем распоряжении есть узкоспециализированное ПО. Суть приложение сохранение неких объектов в БД и соответственно работа с ними. Так вот, это ПО имеет достаточно интересный конструктор запросов который в моем понимании идеален для моей задачи.
http://joxi.ru/l2Z6lwLh530o2J Читать дальше...

Вопросы клиентов

Добрый вечер. при переносе сайта столкнулся с проблемой. Изначально заархивировал фалы сайта и скачал их, сделал копию бд и скачал. Залил на новый хост файлы и бд. После переноса была 500 ошибка, посмотрел логи — допустил ошибку при указании базы.

После чего 500 пропала и в логах начала появляться вот такая информация

[2015-06-25 21:14:25] (ERROR @ /index.php) Error 42S22 executing statement: 
Array
(
    [0] => 42S22
    [1] => 1054
    [2] => Unknown column 'modContext.name' in 'field list'
)

[2015-06-25 21:14:25] (ERROR @ /index.php) Could not prepare context: web

Сам сайт, админка и прочье недоступно, везде сплошной белый экран. Читать дальше...

Вопросы клиентов

Добрый день!

Перестала отображаться информация в разделах Профиль, Настройки, Сообщения, Галерея и многие другие, не можем теперь не фото добавить не отзывы ( не могу понять что произошло( Нажимаешь например на альбом из галереи и на экране просто пусто становится… Читать дальше...

Песочница

Написал нехитрый сниппет, созданный с целью подсчета просмотров страницы

if($tv = $modx->getObject('modTemplateVarResource',array('tmplvarid'=>21, 'contentid'=>$modx->resource->id))){
    $value = (int) $tv->get('value');
    $tv->set('value',$value + 1);
    $tv->save();
    return $value;
}

а он после каждой перезагрузки вызывается два раза. Ну, т.е. вместо 1 показывает два, вместо 2 — показывает 4 и вообще по таким результатам получается посещаемость в два раза больше. При каждом обновлении странички со сниппетом число увеличивается на два, а не на 1, как задумано. Не, я конешн могу заменить на плагин и я поменял int на флоэт (типа покопаюсь потом как-нить, решу проблему — верну) и вместо единички добавляю 0.5, но интересно, почему страница дважды отрабатывается. При замене смарти-шаблона на стандартный модихсовский все нормально и логично.
UPD Я решил, что нефиг считать тех, кто залогин в админке, подправил сниппет и пошел смотреть, как обновляется в другом браузере, где не открыта админка. Два раза страница вызывается, если пользователь авторизован в админке. Если нет — то все ок. Ну, поменял .5 на единицу, залогинился во с фронта, посмотрел, как все считается — ок. Значит, страничка дважды для админко-залогененых обрабатывается. Читать дальше...