protected function generateFile($module) { // get javascript by calling the mmwExtjs action $browser = new sfBrowser(); $browser->get('/' . $module . '/mmwExtjs/'); $javascript = $browser->getResponse()->getContent(); $file = sfMmwExtjsUtil::getJavascriptPath($module, 'base', true); file_put_contents($file, $javascript); chmod($file, 0666); $this->showMessage($module); }
protected function getBibMatFinsList() { $bibMateriauxFinsList = Doctrine::getTable('BibMateriauxFins')->findAll(); $bibMateriauxFinsValuesList = array(); $i = 0; foreach ($bibMateriauxFinsList as $bibMateriauFin) { $bibMateriauxFinsValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_materiaux_fins', 'codematfins')] = $bibMateriauFin->getCodematfins(); $bibMateriauxFinsValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_materiaux_fins', 'matfins')] = $bibMateriauFin->getMatfins(); $i++; } $json = array(); $json = $bibMateriauxFinsValuesList; return $json; }
public function executeEdit(sfWebRequest $request) { $this->structures = $this->getRoute()->getObject(); $this->form = $this->configuration->getForm($this->structures); $this->json['success'] = true; $this->prepareJsonValues($this->form); $this->json['data'] = array_merge($this->json['data'], $this->FormJsonEncode()); $this->json['data'] = array_merge($this->json['data'], sfMmwExtjsUtil::getExtjsParamsfromArray('structures', $this->structures->getMatFinsAndFinitions())); if ($request->hasParameter('loadStores') && $request->getParameter('loadStores') == true) { $this->json['list'] = $this->FormRelationsJsonEncode(); } $this->setRequestParameter('json', $this->json); $this->forward($this->getModuleName(), 'jsonResponse'); }
protected function processForm(sfWebRequest $request, sfForm $form) { $formValues = array(); $requestParameters = $request->getParameterHolder()->getAll(); $formValues = sfMmwExtjsUtil::getSfParamsFromExtjs('identification', $requestParameters); $formValues = $this->prepareFormValues($formValues, $form); $files = $this->getSfFilesParamsFromExtjs($_FILES, 'identification'); //$form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); $fieldsToPost = isset($requestParameters['fields']) ? json_decode($requestParameters['fields']) : null; foreach ($this->form->getWidgetSchema()->getFields() as $fieldname => $widget) { if (get_class($widget) != 'sfWidgetFormSchemaDecorator' && $fieldsToPost != null && !in_array(sfMmwExtjsUtil::getSfExtjsNameFromField('identification', $fieldname), $fieldsToPost)) { unset($form[$fieldname]); } } $form->bind($formValues, $files); if ($form->isValid()) { //$this->getUser()->setFlash('notice', $form->getObject()->isNew() ? 'The item was created successfully.' : 'The item was updated successfully.'); $this->json['success'] = true; $this->json['data'] = false; $identification = $form->save(); $this->prepareJsonValues($form); if (is_array($this->json['data'])) { $this->json['data'] = array_merge($this->json['data'], sfMmwExtjsUtil::getExtjsParamsfromArray('identification', $identification->toArray())); } else { $this->json['data'] = sfMmwExtjsUtil::getExtjsParamsfromArray('identification', $identification->toArray()); } $this->dispatcher->notify(new sfEvent($this, 'admin.save_object', array('object' => $identification))); } else { //$this->getUser()->setFlash('error', 'The item has not been saved due to some errors.'); $this->json['success'] = false; $this->json['data'] = false; if ($form->hasErrors()) { $this->json['errormsg'] = 'Data has not been saved'; // set individual error field foreach ($form->getErrorSchema() as $field => $error) { $this->json['errors'][sfMmwExtjsUtil::getSfExtjsNameFromField('identification', $field)] = $error->getMessage(); } } } // SURCHARGE $secteurCommune = $identification->getSecteurCommune(); if (!empty($secteurCommune)) { $this->json['data']['identification__secteur'] = $secteurCommune; } $this->json['list'] = $this->FormRelationsJsonEncode(); // FIN SURCHARGE $this->setRequestParameter('json', $this->json); $this->forward($this->getModuleName(), 'jsonResponse'); }
protected function getBibEquipementsList() { $bibEquipementsList = Doctrine::getTable('BibEquipement')->findAll(); $bibEquipementsValuesList = array(); $i = 0; foreach ($bibEquipementsList as $bibEquipement) { $bibEquipementsValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_equipement', 'codeequipement')] = $bibEquipement->getCodeequipement(); $bibEquipementsValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_equipement', 'equipement')] = $bibEquipement->getEquipement(); $bibEquipementsValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_equipement', 'codetypeequip')] = $bibEquipement->getCodetypeequip(); $i++; } $json = array(); $json = $bibEquipementsValuesList; return $json; }
public function executeIndex(sfWebRequest $request) { $bibMeoeuvresList = Doctrine::getTable('BibMeoeuvre')->findAll(); $bibMeoeuvresValuesList = array(); $i = 0; foreach ($bibMeoeuvresList as $bibMeoeuvre) { $bibMeoeuvresValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_meoeuvre', 'codemeo')] = $bibMeoeuvre->getCodemeo(); $bibMeoeuvresValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_meoeuvre', 'meoeuvre')] = $bibMeoeuvre->getMeoeuvre(); $bibMeoeuvresValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_meoeuvre', 'codematgelist')] = $bibMeoeuvre->getLinkedCodematges(); $i++; } $this->json['success'] = true; $this->json['count'] = count($bibMeoeuvresValuesList); $this->json['data'] = $bibMeoeuvresValuesList; $this->setRequestParameter('json', $this->json); $this->forward($this->getModuleName(), 'jsonResponse'); }
public function executeIndex(sfWebRequest $request) { $bibEquipementsList = Doctrine::getTable('BibEquipement')->createQuery('e')->innerJoin('e.BibTypeEquipement bte')->orderBy('e.equipement')->execute(); $bibEquipementsValuesList = array(); $i = 0; foreach ($bibEquipementsList as $bibEquipement) { $bibEquipementsValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_equipement', 'codeequipement')] = $bibEquipement->getCodeequipement(); $bibEquipementsValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_equipement', 'equipement')] = $bibEquipement->getEquipement(); $bibEquipementsValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_equipement', 'codetypeequip')] = $bibEquipement->getCodetypeequip(); $bibEquipementsValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_equipement', 'typeequip')] = $bibEquipement->getBibTypeEquipement()->getTypeEquip(); $i++; } $this->json['success'] = true; $this->json['count'] = count($bibEquipementsValuesList); $this->json['data'] = $bibEquipementsValuesList; $this->setRequestParameter('json', $this->json); $this->forward($this->getModuleName(), 'jsonResponse'); }
public function executeIndex(sfWebRequest $request) { $bibSosList = Doctrine::getTable('BibSo')->createQuery('so')->innerJoin('so.BibTypeSo bts')->execute(); $bibSosValuesList = array(); $i = 0; foreach ($bibSosList as $bibSo) { $bibSosValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_so', 'codeso')] = $bibSo->getCodeso(); $bibSosValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_so', 'second_oeuvre')] = $bibSo->getSecondOeuvre(); $bibSosValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_so', 'codetypeso')] = $bibSo->getCodetypeso(); $bibSosValuesList[$i][sfMmwExtjsUtil::getSfExtjsNameFromField('bib_so', 'typeso')] = $bibSo->getBibTypeSo()->getTypeSo(); $i++; } $this->json['success'] = true; $this->json['count'] = count($bibSosValuesList); $this->json['data'] = $bibSosValuesList; $this->setRequestParameter('json', $this->json); $this->forward($this->getModuleName(), 'jsonResponse'); }
public function getExtjsField($widget, $validator, $name, $label, $extjsParams = array()) { $widgetOptions = $widget->getOptions(); $result = array(); $result['name'] = sfMmwExtjsUtil::getSfExtjsNameFromField($this->getSingularName(), $name, true); $result['itemId'] = $result['name']; $result['fieldLabel'] = sfMmwExtjsUtil::addQuote($label); $result['width'] = 250; if (!$validator->hasOption('required') || $validator->hasOption('required') && $validator->getOption('required') == true) { $result['allowBlank'] = 'false'; } else { $result['allowBlank'] = 'true'; } if ($validator->hasOption('max_length')) { $result['maxLength'] = $validator->getOption('max_length'); } if ($validator->hasOption('min_length')) { $result['minLength'] = $validator->getOption('max_length'); } // we get all parameters from the field, but for specific parameter, we may add it to extjs_params //$params = $field->getConfig('extjs_params', array()); switch (get_class($widget)) { case 'sfWidgetFormInputHidden': $result['xtype'] = sfMmwExtjsUtil::addQuote('hidden'); break; case 'sfWidgetFormInput': $result['xtype'] = sfMmwExtjsUtil::addQuote('textfield'); break; case 'sfWidgetFormTextarea': $result['xtype'] = sfMmwExtjsUtil::addQuote('textarea'); $result['width'] = isset($extjsParams['width']) ? $extjsParams['width'] : 230; $result['height'] = isset($extjsParams['height']) ? $extjsParams['height'] : 40; break; // single select // single select case 'sfWidgetFormDoctrineChoice': $model = sfMmwExtjsUtil::addQuote($widgetOptions['model']); $result['hiddenName'] = $result['name']; $result['name'] = sfMmwExtjsUtil::getSfExtjsNameFromField($this->getSingularName(), $name . '--name', true); $result['xtype'] = sfMmwExtjsUtil::addQuote('combo'); $result['emptyText'] = sfMmwExtjsUtil::addQuote('Enter a value'); $result['triggerAction'] = sfMmwExtjsUtil::addQuote('all'); $result['mode'] = sfMmwExtjsUtil::addQuote('local'); // $result['store'] = 'new mmw.'.sfInflector::underscore($widgetOptions['model']).'Store'; $result['store'] = 'new Ext.data.ArrayStore()'; $result['displayField'] = 'mmw.baseSf' . ucfirst(sfInflector::underscore($widgetOptions['model'])) . 'Object.displayField'; $result['valueField'] = 'mmw.baseSf' . ucfirst(sfInflector::underscore($widgetOptions['model'])) . 'Object.keyField'; break; case 'sfWidgetFormInputCheckbox': $result['xtype'] = sfMmwExtjsUtil::addQuote('checkbox'); break; // double select // double select case 'sfWidgetFormDoctrineChoiceMany': $model = sfMmwExtjsUtil::addQuote($widgetOptions['model']); $result['xtype'] = sfMmwExtjsUtil::addQuote('mmwItemSelector'); $result['store'] = 'new mmw.' . sfInflector::underscore($widgetOptions['model']) . 'Store'; $result['width'] = 450; break; /* case 'sfWidgetFormInputCheckbox': $result['xtype'] = ''; break; */ /* case 'sfWidgetFormInputCheckbox': $result['xtype'] = ''; break; */ case 'sfWidgetFormDateTime': case 'sfWidgetFormDate': $result['xtype'] = sfMmwExtjsUtil::addQuote('datefield'); break; case 'sfWidgetFormInputFileEditable': $result['xtype'] = sfMmwExtjsUtil::addQuote('mmwFileUploadField'); $result['emptyText'] = sfMmwExtjsUtil::addQuote('Select a file'); $result['buttonText'] = sfMmwExtjsUtil::addQuote(''); $result['buttonCfg'] = '{iconCls: \'upload-icon\'}'; break; default: break; } switch (get_class($validator)) { case 'sfValidatorEmail': $result['vtype'] = sfMmwExtjsUtil::addQuote('email'); break; // case 'sfValidatorString': // $result['vtype'] = sfMmwExtjsUtil::addQuote('alphanum'); // break; // case 'sfValidatorString': // $result['vtype'] = sfMmwExtjsUtil::addQuote('alphanum'); // break; case 'sfValidatorUrl': $result['vtype'] = sfMmwExtjsUtil::addQuote('url'); break; case 'sfValidatorInteger': $result['vtype'] = sfMmwExtjsUtil::addQuote('num'); break; } return $result; }
protected function toArray($array) { $result = "[\n\t\t" . sfMmwExtjsUtil::recursiveImplode(",\n\t\t", $array) . "\n\t]"; return $result; }
Object; Ext.apply(this, this.initialConfig, { title: this.getLl('Title', new Array(this.sfObject.pluralHumanName, this.sfObject.pluralUpHumanName)<?php echo ($gridTitle = $this->configuration->getListTitle()) != null ? ', ' . sfMmwExtjsUtil::addQuote(addslashes($gridTitle)) : ''; ?> ), line: Ext.data.Record.create([{}]), store: store, bbar: new Ext.PagingToolbar({ pageSize: 15, store: store, displayInfo: true, displayMsg: this.getLl('PagerDisplayMsg', new Array(scope.sfObject.pluralHumanName, scope.sfObject.pluralUpHumanName, '{0}', '{1}', '{2}')<?php echo ($pagerCaption = $this->configuration->getListPagerCaption()) != null ? ', ' . sfMmwExtjsUtil::addQuote(addslashes($pagerCaption . ' {0} to {1} of {2}')) : ''; ?> ), emptyMsg: this.getLl('PagerEmptyMsg', new Array(scope.sfObject.humanName, scope.sfObject.upHumanName, '{0}', '{1}', '{2}')<?php echo ($pagerEmptyCaption = $this->configuration->getListPagerEmptyCaption()) != null ? ', ' . sfMmwExtjsUtil::addQuote(addslashes($pagerEmptyCaption)) : ''; ?> ) }), columns: <?php echo $this->getGridColumns(true); ?> }); mmw.<?php echo $this->getSingularName(); ?> EditorGridPanel.superclass.initComponent.call(this); } });
protected function processMmwExtJSFilters(array $requestParams, $q) { if (isset($requestParams['mmwExtJSFilters']) && ($filters = json_decode($requestParams['mmwExtJSFilters']))) { foreach ($filters as $filter) { // The obtained filter is a stdClass object. get_object_vars transforms it into an array. $filter = get_object_vars($filter); $fieldName = sfMmwExtjsUtil::getSfFieldNameFromExtjs($filter['field']); // Value validation switch ($filter['type']) { case 'numeric': $validator = new sfValidatorNumber(); break; case 'boolean': $validator = new sfValidatorBoolean(); break; case 'date': $validator = new sfValidatorDate(); break; case 'string': $validator = new sfValidatorString(); break; case 'list': $validator = new sfValidatorPass(); if (!is_array($filter['value']) || count($filter['value']) == 0) { break 2; } break; default: $validator = new sfValidatorPass(); break; } try { $value = $validator->clean($filter['value']); } catch (sfValidatorError $e) { break; } $rootAlias = $q->getRootAlias(); $query = $rootAlias . '.' . $fieldName; // Filter applying switch ($filter['type']) { case 'numeric': case 'date': switch ($filter['comparison']) { case 'lt': $query .= ' < "' . $value . '"'; break; case 'gt': $query .= ' > "' . $value . '"'; break; case 'eq': $query .= ' = "' . $value . '"'; break; default: break 2; } break; case 'boolean': $query .= ' = ' . $value; break; case 'string': $query .= ' LIKE "' . $value . '%"'; break; case 'list': $query .= ' IN ('; foreach ($value as $v) { $query .= '"' . $v . '"'; } $query .= ')'; break; default: $query .= ' = ' . $value; break; } $q->addWhere($query); } } }