Всего 123 786 комментариев

Жуковский Антон
18 января 2013, 19:41
0
Скорее всего поиск жертв с открытым 22 портом эффективнее, чем полное сканирование портов. Для эксперимента я поменял сегодня порт ssh на домашнем роутере на 22. Через 3 часа пришел и полна жопа огурцов в логе куча записей о неудачной авторизации.
Василий Наумкин
18 января 2013, 15:41
0
Какие-то ленивые боты у тебя =)
Жуковский Антон
18 января 2013, 14:55
0
0 попыток после того, как три года назад поменял порт. Сервер, правда, не для веба, но, тем не менее, до смены порта были тысячи попыток в день.
Alex Vakhitov
18 января 2013, 14:47
0
Вообще кстати советую www.keepassx.org, очень удобная штука для хранения паролей
Василий Наумкин
18 января 2013, 14:37
0
Уболтал, чертяка языкастый!
Alex Vakhitov
18 января 2013, 14:18
0
Ну тут тоже опасность не велика, у меня мак следовательно вирусы отпадают. А пароли в шифрованой базе и контакта с ними кроме как через буфер обмена системы я не имею.
Василий Наумкин
18 января 2013, 14:13
0
Тут уже другая опасность — 42 символа никто не запоминает, а хранит где-то.

Пару раз разбирался со взломанным хостингом, когда утекали пароли из-за вирусни на компе.
Alex Vakhitov
18 января 2013, 13:52
0
Да тылы это самое главное (:

Сам посмотрел и удивился числу попыток авторизации на серваке где вход по паролю

35 Jan 6
604 Jan 7
496 Jan 8
279 Jan 9
925 Jan 10
456 Jan 11
643 Jan 12
19 Jan 13
139 Jan 15
458 Jan 16
176 Jan 17
357 Jan 18

Но думаю случайно генерированное имя и пароль в 42 случайных символа займут слишком много времени на подбор
Andrei Kilin
18 января 2013, 11:41
0
У меня такие же цифры, т.к. пользую твои настройки сервера =)
Іван Клімчук
18 января 2013, 10:01
0
В комментах уже ответили, как решить проблему, только зачем дату пихать в TV, если в таблице с ресурсами хватает полей для дат? Опишите ваш кейс (частный случай), пожалуйста.
Denys Butenko
18 января 2013, 08:32
0
Верно, немного сам додумал
Василий Наумкин
18 января 2013, 08:30
0
По задаче нужно сегодня, а не за один день месяца по всем годам и месяцам.
Denys Butenko
18 января 2013, 07:33
0
Как вариант еще можно:
$q->where(DAY(TV.value) = DAY(CURDATE()));
Василий Наумкин
18 января 2013, 07:08
0
1. Более-менее нормальный вариант, при условии, что на всех страницах фильтр одинаковый (а тогда и mFilter не особо нужен), это сгенерировать фильтр, скопировать его html и рассовать руками по шаблону внутри формы.

У него будут определённые классы и id на которые будет реагировать родной js. По другому — только свой фильтр делать.

2. Там указывается чанк для вывода, используются сниппеты getPage + getResources. В чанке, соответственно, нужные плейсхолдеры прописать, а ненужные — удалить.

3. Сбросить фильтр можно на js — пройтись по всем переключателям и выстваить в дефолтное положение, или проще, при клике по специальной ссылке:
document.location = document.location;
Но тут будет перезагрузка страницы.
Василий Наумкин
18 января 2013, 07:00
1
0
Вот тебе сниппет getTodayIds, который присоединяет таблицу с ТВ и выбирает по ней подходящие id.
Нужно указать id ТВ с датой
<?php
$tvid = 1; // id ТВ с датой
$date = date('Y-m-d'); // Сегодня

$q = $modx->newQuery('modResource');
$q->leftJoin('modTemplateVarResource', 'TV', 'modResource.id = TV.contentid AND TV.tmplvarid = '.$tvid);
$q->select('modResource.id');
$q->where('DATE(TV.value) = "'.$date.'"');

if ($q->prepare() && $q->stmt->execute()) {
	$ids = $q->stmt->fetchAll(PDO::FETCH_COLUMN);
	return implode(',', $ids);
}

Вызываем в getPage:
[[!getPage?
	&element=`getResources`
	&resources=`[[!getTodayIds]]`
]]
Prizrak Pro
18 января 2013, 06:59
0
Влезу со своим вопросом. Так как он продолжает тему.

С подсказками Василия я дошел до примера, который вы привели. И у меня все возвращается.

Проблема у тебя теперь в другом.

1. Я хочу фильтры расположить в разных местах страницы. Но фильтровать они должны все вместе. Я понимаю, все элемент формы должны быть внутри формы. Понятно можно объявить форму в начале и конце body. Но тогда необходимо будет элементы формы фильтра расставлять самостоятельно и ручками писать js под каждый, что бы заполнялся.

Есть альтернатива. Расставить элементы без формы. А наступление событий отслеживать js и когда оно наступает, получать данные со всех элементов, которые предварительно указать ручками в js, и отправлять на сервер ajax.

В обоих пример придется руками расставлять элементы. А во втором, заранее в js указать все элементы из которых брать данные.

А есть ли какой либо ещё вариант. И правильно ли я мыслю.

2. Вопрос это по выводу. Во первых как вижу фильтр возвращает данные в плейсходер [+rows], не пойму а как настроить нужный вид отображения. Указать какие поля отображать.

И как сбросить фильтр, что бы снова вывести все элементы.

Вопросов много. Уже неделю разбираюсь с фильтром, и пока конца я не вижу. Очень буду благодарен за любую подсказку.
Denys Butenko
18 января 2013, 04:40
0
&where=`{"[[*TV_DATE]]:=":"[[!today]]"}`
Примерно, вот так.
Nixon
18 января 2013, 04:25
0
Ок, я могу через substr забрать первые 10 символов из tv date, но как правильно всё это совместить?..
Denys Butenko
18 января 2013, 04:22
0
Распарсить данные из tv date, чтобы осталось только Y-m-d
Denys Butenko
17 января 2013, 23:27
0
Ну так, вы или &resources передавайте или &query. В данном случае вам необходимо убрать input name=query.
Вот так выглядит мой вызов mFilter
<form action="[[~[[*id]]]]" method="post" id="mFilter">
[[!mFilter?
&includeMS=`1`
&includeMSList=`price,add1`
&tpl=`tpl.msGoods.row`
&resources=`[[!getCatIds]]`
&limit=`9`
]]
<input type="hidden" name="page" value="1">
<input type="hidden" name="sort" value="ms_price,desc">
<input type="hidden" name="limit" value="9">
<input type="hidden" name="action" value="filter">
</form>