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

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>
Andrei Kilin
17 января 2013, 16:06
0
Задан пустой поисковый запрос
а в query через GET передаете запрос?
Светлана Закревская
17 января 2013, 14:38
0
К сожалению, у меня такой вариант не работает, пробовала до того как здесь задать вопрос, пишет: Задан пустой поисковый запрос
P.S. А по поводу чего не могу сделать — написать свой сниппет, о котором сказал Василий.
Добряков Алексей
17 января 2013, 13:10
0
Будут вопросы по TimeWeb обращайся
Василий Наумкин
17 января 2013, 13:00
0
На здоровье!
Александр
17 января 2013, 10:31
0
Всем спасибо, развернул сайт на TimeWeb и все хорошо заработало (по крайней мере, пока что)
Denys Butenko
17 января 2013, 00:17
0
Чего вы не можете сделать?
В этой теме: mSearch
Вот сниппет этот сниппет:
if (!empty($_REQUEST['query'])) {return;}
$parent = $modx->resource->id;

$tmp = $modx->getChildIds($parent);
if (empty($tmp)) {return 0;}
$tpls = explode(',', $modx->getOption('minishop.goods_tpl'));
$q = $modx->newQuery('modResource', array('id:IN' => $tmp, 'template:IN' => $tpls, 'deleted:!=' => 1, 'published' => 1));
$q->select('id');
if ($q->prepare() && $q->stmt->execute()) {
    $ids = $q->stmt->fetchAll(PDO::FETCH_COLUMN, 0);
    return implode(',', $ids);
}
Сохраните его, и поле &resource=`[[!snippet]]` сделайте.
Андрей Свистунов
16 января 2013, 23:34
0
1gb вообще не вариант, это самый худший хостинг на сегодняшний день! Все сайты от них перевел на timeweb. Еще рекомендую присмотреться к зарубежным хостингам, там уже давно в норме то, что у нас ноу-хау )