Доброго времени суток! Не укажу. Я мало с мигой работаю, просто так ее ковырять не буду. Я уже сказал конкретно что смотреть. Как смотреть передаваемые POST-данные из браузера, смотрите интернеты. Как процессоры работают, смотрите здесь.
усвоил. не скажу что все прям понятно, родилось еще больше вопросов, но об этом потом… для себя была поставлена задача сделать табличку пользователей с помощью процессора процессор getusers.class.php require_once (dirname(dirname(dirname(dirname(dirname(dirname(FILE)))))).'/model/modx/processors/security/user/getlist.class.php');
class xtestGetUserListProcessor extends modUserGetListProcessor{ public function prepareQueryBeforeCount(xPDOQuery $c) { $c->leftJoin('modUserProfile','Profile'); $c->leftJoin('modUserGroupMember', 'UserGroupMembers'); $c->leftJoin('modUserGroup', 'UserGroup', 'UserGroupMembers.user_group = UserGroup.id'); return $c; }
public function prepareQueryAfterCount(xPDOQuery $c) {
$c->select($this->modx->getSelectColumns('modUser','modUser'));
$c->select($this->modx->getSelectColumns('modUserProfile','Profile','',array('fullname','email','blocked')));
$c->select($this->modx->getSelectColumns('modUserGroup','UserGroup','',array('name')));
return $c;
}
public function prepareRow(xPDOObject $object){
return array(
'id' => $object->id,
'username' => $object->username,
'fullname' => $object->fullname,
'email' => $object->email,
'group' => $object->name,
);
}
} return 'xtestGetUserListProcessor'; ну и вот такой результат уже при написании поста возник вопрос а что если у пользователя 2 группы… отложил пост полез пробовать… если у пользователя 2 группы то покажет последнюю а если сделать вот так $c->select($this->modx->getSelectColumns('modUser','modUser', '', array('id', 'username'))); то в таблице будет 2 строки с разными группами… а еще есть такая штука как права… для выполнения вышеуказанного процессора пользователь должен иметь разрешения 'view_user'. нравится «зараза».
Но, наверное, в будущем буду элементы создавать как предлагал Николай Вообщем еще раз спасибо вам обоим =)
Охохох, спасибо Сергей огромное. Я ваш должник ;)
А вообще накидал бы свой пример в jsfiddle или senchafiddle. Я бы поглядел что там у тебя не выходит.
Так возьми и погляди ману от сенчи, я тебе привел только один метод, к примеру. Там же не только по айдишнику можно поискать… Есть целый ряд способов поиска, не говоря уже о том, что можно в контексте грида типа такого сделать: this.toolbars[0].items На счет обрамляющих панелей я не согласен. Если у меня мой грид выполняет какие-то атомарные функции, то я прочим его не разбавляю. Не стоит доводит до абсолюта какое-то правило, если в данном случае тебе его нарушение даст преимущество.
Да я сейчас так и делаю на кнопке success: { fn: function () { var ccc=this.combo; var testsComboBoxTest = Ext.getCmp('testsComboBoxTest'); testsComboBoxTest.store.load(); this.refresh(); }, scope: this } getCmp или findById — получение объекта по его id Вот я и спрашиваю как мне получить combo не через его ID owner, child и прочее, т.к. следуя статье habrahabr.ru/post/132923/ Избегайте использования owneCt свойства Избегайте использования Ext.getCmp Не делайте обрамляющие панели.
Обновить что? При выборе значения в combo у тебя и так значение поменяется. Также мне не понятно зачем слать запрос из combo, если ты делаешь кнопку… Отработай событие click на кнопке, сделав fireEvent со своим кастомным событием, при этом разрешив для компонента всплывание события. Это событие сможет отловить твой grid. В этом месте ты сможешь получить значение combo (у grid будет метод findById. Через него ты сможешь достучаться до своего дочернего combo). Если значение выбрано, то уже здесь имеет смысл отправить запрос на добавление записи и на success обновить grid. P.S.: если тебе нужно получить родителя в дочернем компоненте, то в целом у каждого элемента есть свойство ownerCt. Там сидит родитель, но этим в целом лучше не злоупотреблять имо