/** * Merge attributes and parameters * * Also sets up requires * * @param array $attribs * @param array $params * @param string $type * @param string $dijit Dijit type to use (otherwise, pull from $_dijit) * @return array */ protected function _prepareDijit(array $attribs, array $params, $type, $dijit = null) { $this->dojo->requireModule($this->_module); switch ($type) { case 'layout': $stripParams = array('id'); break; case 'element': $stripParams = array('id', 'name', 'value', 'type'); foreach (array('checked', 'disabled', 'readonly') as $attrib) { if (array_key_exists($attrib, $attribs)) { if ($attribs[$attrib]) { $attribs[$attrib] = $attrib; } else { unset($attribs[$attrib]); } } } break; case 'textarea': $stripParams = array('id', 'name', 'type'); break; default: } foreach ($stripParams as $param) { if (array_key_exists($param, $params)) { unset($params[$param]); } } // Normalize constraints, if present if (array_key_exists('constraints', $params) && is_array($params['constraints'])) { require_once 'Zend/Json.php'; $params['constraints'] = Zend_Json::encode($params['constraints']); } if (array_key_exists('constraints', $params) && $this->_useDeclarative()) { $params['constraints'] = str_replace('"', "'", $params['constraints']); } $dijit = (null === $dijit) ? $this->_dijit : $dijit; if ($this->_useDeclarative()) { $attribs = array_merge($attribs, $params); $attribs['dojoType'] = $dijit; } elseif (!$this->_useProgrammaticNoScript()) { $this->_createDijit($dijit, $attribs['id'], $params); } return $attribs; }
/** * Merge attributes and parameters * * Also sets up requires * * @param array $attribs * @param array $params * @param mixed $type * @return void */ protected function _prepareDijit(array $attribs, array $params, $type) { $this->dojo->requireModule($this->_module); switch ($type) { case 'layout': $stripParams = array('id'); break; case 'element': $stripParams = array('id', 'name', 'value', 'type'); foreach (array('checked', 'disabled', 'readonly') as $attrib) { if (array_key_exists($attrib, $attribs)) { if ($attribs[$attrib]) { $attribs[$attrib] = $attrib; } else { unset($attribs[$attrib]); } } } break; case 'textarea': $stripParams = array('id', 'name', 'type'); break; default: } foreach ($stripParams as $param) { if (array_key_exists($param, $params)) { unset($params[$param]); } } if ($this->_useDeclarative()) { $attribs = array_merge($attribs, $params); $attribs['dojoType'] = $this->_dijit; } elseif (!$this->_useProgrammaticNoScript()) { $this->_createDijit($this->_dijit, $id, $params); } return $attribs; }
/** * Merge attributes and parameters * * Also sets up requires * * @param array $attribs * @param array $params * @param string $type * @param string $dijit Dijit type to use (otherwise, pull from $_dijit) * @return array */ protected function _prepareDijit(array $attribs, array $params, $type, $dijit = null) { $this->dojo->requireModule($this->_module); switch ($type) { case 'layout': $stripParams = array('id'); break; case 'element': $stripParams = array('id', 'name', 'value', 'type'); foreach (array('checked', 'disabled', 'readonly') as $attrib) { if (array_key_exists($attrib, $attribs)) { if ($attribs[$attrib]) { $attribs[$attrib] = $attrib; } else { unset($attribs[$attrib]); } } } break; case 'textarea': $stripParams = array('id', 'name', 'type', 'degrade'); break; default: } foreach ($stripParams as $param) { if (array_key_exists($param, $params)) { unset($params[$param]); } } // Normalize constraints, if present foreach ($this->_jsonParams as $param) { if (array_key_exists($param, $params)) { require_once 'Zend/Json.php'; if (is_array($params[$param])) { $values = array(); foreach ($params[$param] as $key => $value) { if (!is_scalar($value)) { continue; } $values[$key] = $value; } } elseif (is_string($params[$param])) { $values = (array) $params[$param]; } else { $values = array(); } $values = Zend_Json::encode($values); if ($this->_useDeclarative()) { $values = str_replace('"', "'", $values); } $params[$param] = $values; } } $dijit = null === $dijit ? $this->_dijit : $dijit; if ($this->_useDeclarative()) { $attribs = array_merge($attribs, $params); if (isset($attribs['required'])) { $attribs['required'] = $attribs['required'] ? 'true' : 'false'; } $attribs['dojoType'] = $dijit; } elseif (!$this->_useProgrammaticNoScript()) { $this->_createDijit($dijit, $attribs['id'], $params); } return $attribs; }
public function setupDojo() { $this->helper->requireModule('dijit.layout.ContentPane')->registerModulePath('custom', '../custom')->requireModule('custom.foo')->setCdnVersion('1.1')->setDjConfig(array('parseOnLoad' => 'true'))->addStylesheetModule('dijit.themes.tundra')->addStylesheet('/css/custom.css')->addOnLoad('foo'); }