/** * Maps attribute model informations to a DOMDocument. * * @param Opus_Model_Abstract $model Model informations for attribute mapping. * @param DOMDocument $dom General DOM document. * @param DOMNode $rootNode Node where to add created structure. * @param boolean $unTunneled Should only current (true) or all (false, default) fields shown. * @return void */ protected function _mapAttributes(Opus_Model_Abstract $model, DOMDocument $dom, DOMNode $rootNode, $unTunneled = false) { if (true === $unTunneled and $model instanceof Opus_Model_Dependent_Link_Abstract) { $fields = $model->describeUntunneled(); } else { if (true === $unTunneled and $model instanceof Opus_Model_Dependent_Abstract) { return; // short-circuit } else { $fields = $model->describe(); } } $excludeFields = $this->_config->_excludeFields; if (count($excludeFields) > 0) { $fields_diff = array_diff($fields, $excludeFields); } else { $fields_diff = $fields; } foreach ($fields_diff as $fieldname) { $field = $model->getField($fieldname); $this->_mapField($field, $dom, $rootNode); } }