示例#1
0
 public static function registerStep($name, $class, $number, $enabled = false)
 {
     $step = new CourseWizardStepRegistry();
     $step->name = $name;
     $step->classname = $class;
     $step->number = $number;
     $step->enabled = $enabled ? 1 : 0;
     return $step->store();
 }
示例#2
0
 /**
  * Saves data for a new or existing step.
  * @param string $id ID of the step to save; if empty, create new step.
  */
 public function save_action($id = '')
 {
     CSRFProtection::verifyUnsafeRequest();
     if (Request::submitted('submit')) {
         if ($id) {
             $step = CourseWizardStepRegistry::find($id);
             $step->name = Request::get('name');
             $step->classname = Request::get('classname');
             $step->number = Request::int('number');
             $step->enabled = Request::option('enabled') ? 1 : 0;
             if ($step->store()) {
                 PageLayout::postMessage(MessageBox::success(_('Die Daten wurden gespeichert.')));
             } else {
                 PageLayout::postMessage(MessageBox::error(_('Die Daten konnten nicht gespeichert werden.')));
             }
         } else {
             $classname = Request::get('classname');
             // Check if given class name can be found in system.
             if (!class_exists($classname)) {
                 PageLayout::postMessage(MessageBox::error(sprintf(_('Die angegebene PHP-Klasse "%s" wurde nicht gefunden.'), htmlReady($classname))));
                 // Class found, now check if it implements the interface definition for wizard steps.
             } else {
                 if (!in_array('CourseWizardStep', class_implements($classname) ?: array())) {
                     PageLayout::postMessage(MessageBox::error(sprintf(_('Die angegebene PHP-Klasse "%s" implementiert nicht das Interface CourseWizardStep.'), htmlReady($classname))));
                     // All ok, create new database entry.
                 } else {
                     $step = new CourseWizardStepRegistry();
                     $step->name = Request::get('name');
                     $step->classname = $classname;
                     $step->number = Request::int('number');
                     $step->enabled = Request::option('enabled') ? 1 : 0;
                     if ($step->store()) {
                         PageLayout::postMessage(MessageBox::success(_('Die Daten wurden gespeichert.')));
                     } else {
                         PageLayout::postMessage(MessageBox::error(_('Die Daten konnten nicht gespeichert werden.')));
                     }
                 }
             }
         }
     }
     $this->redirect($this->url_for('admin/coursewizardsteps'));
 }