RAPCorp 07 апреля 2014 0 10
Здравствуйте гуру модиксеры. Вынужден обратиться за помощью в силу того, что не очень разбираюсь в ExtJS.

Делаю сейчас Компонент «Афиша». Там есть 2 вкладки Афиши и Компании:





Возникли следующие сложности. Распишу по пунктам:

1. Как видно на скриншоте при нажатии на поле Скрытое меню появляются варианты «Да» и «Нет». В базу сохраняется 1 или 2. Но можно ли как-нибудь в поле сохранять Да или Нет? А то после сохранения вот что появляется:



А после обновления страницы эти поля пустые становятся.

2. Как сделать, чтобы в поле Изображение, создавалась маленькая превьюшка, скажем 50 на 50:



А при нажатии на неё раскрывалось большое, но обрезанное изображение.

3. Как на второй вкладке вывести таблицу из базы с компаниями и убрать вторую форму с поиском?



4. И как сделать у Афиш выпадающее меню со списком скажем клубов, чтобы привязка была и афиши выводились в карточке компании например?

10 комментариев
Fi1osof1
Fi1osof 07 апреля 2014г в 22:09 #
В базу сохраняется 1 или 2. Но можно ли как-нибудь в поле сохранять Да или Нет? А то после сохранения вот что появляется:
В базу сохраняется как раз то, что нужно. Просто на колонку надо навешать renderer, типа так:
renderer: function(value){
    return value == 1 ? "Да" : "Нет";
}
Fi1osof1
Fi1osof 07 апреля 2014г в 22:11 #
2. Как сделать, чтобы в поле Изображение, создавалась маленькая превьюшка, скажем 50 на 50:
То же самое и с картинками, renderer рулит.

В общем, это не MODX надо изучать, а ExtJS. newpg.ru/documentation/extjs.html
R
RAPCorp 07 апреля 2014г в 23:40 #
Вроде разобрался:


,renderer: function(value){
				return '<a href="/' + value + '"><img width="50" src="/' + value + '"></a>';
			}


А как мне большое изображение во всплывающем окне вывести? Есть какие-нибудь классы уникальные для этого?
Fi1osof1
Fi1osof 08 апреля 2014г в 07:52 #
Не знаю универсального класса, но никто не запрещает свое что-то прикрутить.
R
RAPCorp 08 апреля 2014г в 11:05 #
Даже Fancybox? Мне кажется и в ExtJS есть какие-нибудь всплывающие окна, но по примерам не разберусь какой мне нужен.
Fi1osof1
Fi1osof 08 апреля 2014г в 11:44 #
Точный рецепт не дам, так как я больше бэк-энд программист, но все делается.
R
RAPCorp 07 апреля 2014г в 23:44 #


Лепота какая)))
j
jokemaker 13 апреля 2014г в 21:53 #
Не знаю где спросить… Не подскажите как сделать поиск по товарам чтобы выводилось через fetch, может где готовый компонент есть =)?
Fi1osof1
Fi1osof 14 апреля 2014г в 10:23 #
Вообще проще всего использовать процессор web/resources/getdata.
Но если у вас задача перебрать большое количество товаров, то да, надо запрос делать на чистом xPDO. Но надо для этого четко понимать что есть что.
ShopmodxResourceProduct — производный от modResource класс документа товара.
ShopmodxProduct — дополнительный класс товара.
По сути, чтобы получить только товары, надо в запросе таблицы этих объектов объединить джоином. Вот пример выборки:
$q = $modx->newQuery('modResource');
$q->innerJoin('ShopmodxProduct', 'Product');
$q->where(array(
    "deleted" => 0,
    "published" => 1,
));
$q->select(array(
    "modResource.*",
));
$s = $q->prepare();
$s->execute();
while($row = $s->fetch(PDO::FETCH_ASSOC)){
    // Ваш код
}
Fi1osof1
Fi1osof 14 апреля 2014г в 10:26 #
А там уже можете добавить условия поиска. К примеру, хотите в условие добавить товары в ценовой вилке 100 — 5000 рублей. Добавляете условие:
$q->where(array(
    "Product.sm_price between 100 and 5000",
));

или
$q->where(array(
    "sm_price:>=" => 100,
    "sm_price:<" => 5000,
));
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.