public function getRowsByParentRow(Kwf_Model_Row_Interface $parentRow, $select = array())
 {
     if (!isset($this->_data[$parentRow->getInternalId()])) {
         $this->_data[$parentRow->getInternalId()] = array();
         $fields = $parentRow->getModel()->getDb()->fetchAssoc("SHOW FIELDS FROM {$parentRow->table}");
         foreach ($fields as $i) {
             $this->_data[$parentRow->getInternalId()][] = array('field' => $i['Field'], 'type' => $i['Type'], 'null' => $i['Null'] == 'YES' ? 1 : 0, 'key' => $i['Key'], 'default' => $i['Default'], 'extra' => $i['Extra']);
         }
     }
     if (!is_object($select)) {
         $select = $this->select($select);
     }
     return new $this->_rowsetClass(array('model' => $this, 'dataKeys' => $this->_selectDataKeys($select, $this->_data[$parentRow->getInternalId()]), 'parentRow' => $parentRow));
 }
 public function getRowsByParentRow(Kwf_Model_Row_Interface $parentRow, $select = array())
 {
     $this->_data[$parentRow->getInternalId()] = array();
     $v = $parentRow->{$this->_fieldName};
     if ($v) {
         if (!is_array($v)) {
             throw new Kwf_Exception("value is not an array but a " . gettype($v));
         }
         //TODO: _data nicht duplizieren, sondern in getRowByDataKey erst machen (performance)
         $i = 0;
         foreach (array_keys($v) as $k) {
             $v[$k]['intern_id'] = ++$i;
             //TODO ist das eindeutig genug (ist nur eindeutig PRO parentRow)
             // aber nachdem man hierher eh nur per getRowsByParentRow kommt müsste es passen
         }
         $this->_data[$parentRow->getInternalId()] = $v;
     } else {
         $this->_data[$parentRow->getInternalId()] = array();
     }
     if (!is_object($select)) {
         $select = $this->select($select);
     }
     return new $this->_rowsetClass(array('model' => $this, 'dataKeys' => $this->_selectDataKeys($select, $this->_data[$parentRow->getInternalId()]), 'parentRow' => $parentRow));
 }
 public function getRowsByParentRow(Kwf_Model_Row_Interface $parentRow, $select = array())
 {
     if (!is_object($select)) {
         $select = $this->select($select);
     }
     if ($select->getParts()) {
         throw new Kwf_Exception_NotYetImplemented('Custom select is not yet implemented');
     }
     if (!$parentRow instanceof Kwf_Util_Model_Amazon_Products_Row) {
         throw new Kwf_Exception('Only possible with amazon product row');
     }
     $pId = $parentRow->getInternalId();
     $item = $parentRow->getItem();
     $this->_data[$pId] = array();
     foreach ($item->BrowseNodes as $n) {
         $this->_data[$pId][] = array('node_id' => $n);
     }
     return new $this->_rowsetClass(array('model' => $this, 'dataKeys' => array_keys($this->_data[$pId]), 'parentRow' => $parentRow));
 }
 public function getRowsByParentRow(Kwf_Model_Row_Interface $parentRow, $select = array())
 {
     $this->_data[$parentRow->getInternalId()] = array();
     $v = $parentRow->{$this->_fieldName};
     if (substr($v, 0, 13) == 'kwfSerialized') {
         $v = substr($v, 13);
     }
     $v = unserialize($v);
     if ($v) {
         $this->_autoId[$parentRow->getInternalId()] = $v['autoId'];
         foreach ($v['data'] as $i) {
             $this->_data[$parentRow->getInternalId()][] = $i;
         }
     } else {
         $this->_autoId[$parentRow->getInternalId()] = 0;
     }
     if (!is_object($select)) {
         $select = $this->select($select);
     }
     return new $this->_rowsetClass(array('model' => $this, 'dataKeys' => $this->_selectDataKeys($select, $this->_data[$parentRow->getInternalId()]), 'parentRow' => $parentRow));
 }