Am
эта была закладка, походу там уже все накрылось
Am
https://forums.modx.com/thread/?thread=45020&page=
Am
тут обсуждение велось
Dmytro
да домены там все просто
Dmytro
вешаем *.domain.com. что б везде сайт отображался
Dmytro
и дальше потом через $_SERVER['host_name'] или как оно там разруливаем все
Am
global $modx;
$host_url = $modx->getTemplateVarOutput('host_url',$modx->documentIdentifier);
$host_url = $host_url['host_url'];
// delete our identification folder from output
$modx->documentOutput=preg_replace("#/?".$host_url."/#i","/", $modx->documentOutput);
// Homepage
$modx->documentOutput=preg_replace("#/?".$host_url."\.html#i","index.html", $modx->documentOutput);
Dmytro
можно даже в ядро запилить разный кеш для разного домена тогда все круто
Am
да, там через host_name
Am
там просто очень доступно был описан процесс
Михаил
Да, для кеша придется ядро править
Am
можно в сохраненке поисковика найти или на спецсайте
Dmytro
кеш поправить не проблема давно хотел вынести в параметры с учетом чего кешить :)
Алексей
Алексей
Ребят сегодня взломали сайт видимо через этот файлик
Алексей
подскажите с чего начать)
Dmytro
лечим айболитом
обновляем до фин версии
Dmytro
проверяем evogallery и ajaxsearch (обновляем их руками )
Dmytro
взломали не через файлик а добавили его уже через что то другое
Dmytro
а какая версия modx ?
Алексей
Алексей
про айболита слышал но не разу не делал, подсказки будут?))
Dmytro
google ai-bolit )
Sazanof
https://revisium.com/ai/
Михаил
мне сегодня тоже сайт давали взломаный, один в один ситуация, все удалил, обновлять не стал
Sazanof
кидаешь в корень, по ssh цепляешься и запускаешь ai-bolit.php
Михаил
1.0.15
Sazanof
Sazanof
и плагинов дубликатов
Михаил
только плагины проверял
Михаил
сейчас дамп сделаю, проверю
Михаил
но раз на разных версиях, значит что-то еще нашли, дыру какую-то
Sazanof
Sazanof
я так тянул до свежих версий обновлял, а в бд не закрыл дыру
Михаил
через index-ajax.php зашли
Sentinel
было такое
https://revisium.com/ru/blog/modx_mass_infection.html
Andrey
Лечил недавно айболитом версию 1.0.5 Айболит увидел штук 30 зараженных файлов, ручками нашел около 1000 зараженных. Ищите по дате, по странным названиям, по расширению, сравнивайте с исходниками - много чего левого найдете
Andrey
Потом ставьте правильные права на папки, а то стоят у всех 777, .htaccess открыт на запись
Andrey
Все сайты, которые я лечил были заражены много лет назад, а вирусная активность сильно проявлялась в конце 2016 и этой весной.
Алексей
Алексей
вот такой файлик выдал fq,jkbn
Алексей
айболит
Рустам
И у меня такой-же взлом.
А чем искать по сайта вместо ajaxSearch ?
Какой компонент надёжнее и безопаснее?
Andrey
им же и ищи, только в обычном режиме, а не аяксом
Dmytro
Doclister сделаю пример как то
Dmytro
Или на модхим еще есть ajaxmegasearch
Sentinel
evoSearch
DG
Баг или что я не так делаю?
есть форма в модулях
принимаю данные так
if($_POST['submit'] == true){if(isset($_FILES['filename']) && $_FILES['filename']['error'] == 0){
$dir = '/images/slider/';
$arrType = array('image/jpeg','image/gif','image/png',);
$arrExt = array('png', 'jpg', 'jpeg', 'gif');
$ext = pathinfo($_FILES['filename']['name'], PATHINFO_EXTENSION);
$finfo = new finfo(FILEINFO_MIME_TYPE);
$type = $finfo->file($_FILES['filename']['tmp_name']);
if (in_array($type, $arrType) && in_array($ext, $arrExt)){
$filepath = $dir.uniqid().'.'.$ext;
if(move_uploaded_file($_FILES['filename']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].$filepath)){
$img = $filepath;
$name = $_POST['name'];
$sort = $_POST['sort'];
$link = $_POST['link'];
$fields = array('name' => $name, 'img' => $img, 'sort' => $sort, 'link' => $link, 'status' => '1');
$result = $modx->db->insert($fields, $table);
if($result == true){
echo "<h2 class='name'>добавлено</h2>";
}
else{echo 'ошибка';}
}
else{
echo 'Хьюстон! У нас проблемы!';
}
}
}
}
DG
и почему в поле $fields добавляется цифра 1 и поэтому в БД не добавляется
DG
хотя эта форма работает более чем на 10 сайтах и лишь на одном такой глюк
DG
чуть сокрачу код
$name = $_POST['name'];
$sort = $_POST['sort'];
$link = $_POST['link'];
$fields = array('name' => $name, 'img' => $img, 'sort' => $sort, 'link' => $link, 'status' => '1');
$result = $modx->db->insert($fields, $table);
DG
Array ( [name] => name [img] => /images/slider/591de30e7db95.jpg [sort] => 100 [link] => 1 [status] => 1 )1
DG
print_r($fields)
DG
а $result выдает 0
Andrey
в таблице id записи имеет автоинкремент?
Dmytro
Менеджер с программистом проверяют работу по ТЗ:
https://youtu.be/HbPM14QfoV8
Sazanof
Ruslan
Sentinel
👍😂
DG
Народ помогите составить правильный запрос в БД
$table_user = $modx->getFullTableName('web_user_attributes');
$table_group = $modx->getFullTableName('web_groups');
Нужно сделать выборки сначала в первой БД пользователей у кого fax=1
а потом у этих людей выбрать тех кто состоит в группе 1
DG
у меня подобный запрос
$q = "SELECT COUNT(c.id) FROM {$ctable} c LEFT JOIN {$tvtable} tv ON tv.contentid = c.id WHERE tv.tmplvarid=7 AND tv.value='new' AND c.parent={$parentId}";
но ни как не могу понять что и куда подставить
DG
здесь сначало искали парент а потом у кого тв айди 7 был new
Pavlo
используй дополнительные LEFT JOIN
Pavlo
$q = "SELECT COUNT(c.id) FROM {$ctable} c
LEFT JOIN {$tvtable} as new ON ( c.id = new.contentid and new.tmplvarid = 7 )
WHERE
new = 'new'
AND
c.parent={$parentId}";
Pavlo
таким же образом добавляете еще 2 join для fax и group
Рустам
Вместо LEFT JOIN лучше использовать INNER JOIN - так будет работать быстрее. А пустые строки в результате всё равно не используются
Pavlo
можно и так
Pavlo
ну я думаю ему главно понять принцип
Pavlo
а там уже можно оптимизировать
No
INNER JOIN вернёт ошибку если не найдёт во второй таблице данные, LEFT JOIN обработается без ошибок, они немного разные
Рустам
Почему ошибку? Он просто не выдаст строк без совпадений во второй таблице. Ошибок не будет
No
Может с другим JOIN каким то путаю 🤔
No
А во, LEFT вернёт результат из первой таблице, но не вернёт данные со второй если не найдёт, INNER же вобще не вернёт данных
Антон
к вопросу о скорости сайта... https://habrahabr.ru/company/host-tracker/blog/329010/
Anton
Отдельный скрипт php по парсингу локального xml выполняется больше 60 сек. На серваке ограничение на выполнение до 60 сек. Вопрос больше по php. Как решить вопрос ограничения по времени?
Михаил
запуско через консоль
Dmytro
разделять обработку файла на шаги, и крон или в браузере через js
Сергей
аякс
Михаил
http://php.net/set-time-limit
Рустам
http://modx.im/blog/questions/2957.html#comment25771