Ejemplo n.º 1
0
 protected function _scanForms()
 {
     $messages = array();
     $formCnt = 0;
     $addCnt = 0;
     $eDir = $this->_checkDir($this->formDir);
     if ($eDir !== false) {
         $model = $this->loader->getModels()->getOpenRosaFormModel();
         while (false !== ($filename = $eDir->read())) {
             if (substr($filename, -4) == '.xml') {
                 $formCnt++;
                 $form = new \OpenRosa_Tracker_Source_OpenRosa_Form($this->formDir . $filename);
                 $filter['gof_form_id'] = $form->getFormID();
                 $filter['gof_form_version'] = $form->getFormVersion();
                 $forms = $model->load($filter);
                 if (!$forms) {
                     $newValues = array();
                     $newValues['gof_id'] = null;
                     $newValues['gof_form_id'] = $form->getFormID();
                     $newValues['gof_form_version'] = $form->getFormVersion();
                     $newValues['gof_form_title'] = $form->getTitle();
                     $newValues['gof_form_xml'] = $filename;
                     $newValues = $model->save($newValues);
                     if (\Gems_Tracker::$verbose) {
                         \MUtil_Echo::r($newValues, 'added form');
                     }
                     $addCnt++;
                 }
             }
         }
     }
     $cache = GemsEscort::getInstance()->cache;
     $cache->clean();
     $messages[] = sprintf('Checked %s forms and added %s forms', $formCnt, $addCnt);
 }