コード例 #1
0
 /**
  * wird ausgeführt, wenn Cache über "Cache leeren" Button geleert wird
  * @param array $data
  * @return mixed
  */
 public function run($data = null)
 {
     $functionData = explode('_', $data['name'], 3);
     if (!isset($functionData[0]) || !isset($functionData[1]) || !isset($functionData[2])) {
         trigger_error('Malformed function name data given: "' . $data['name'] . '"');
         return false;
     }
     $vendorKey = $functionData[0];
     $moduleKey = $functionData[1];
     $functionName = $functionData[2];
     $classFile = \fpcm\classes\baseconfig::$moduleDir . $vendorKey . '/' . $moduleKey . '/events/apiCallFunction.php';
     if (!file_exists($classFile)) {
         trigger_error('Event class "apiCallFunction" not found in ' . \fpcm\model\files\ops::removeBaseDir($classFile, true));
         return false;
     }
     $classkey = $vendorKey . '/' . $moduleKey;
     $eventClass = \fpcm\model\abstracts\module::getModuleEventNamespace($classkey, 'apiCallFunction');
     /**
      * @var \fpcm\model\abstracts\event
      */
     $module = new $eventClass();
     if (!$this->is_a($module)) {
         return false;
     }
     $data['name'] = $functionName;
     return $module->run($data);
 }
コード例 #2
0
 /**
  * wird ausgeführt, wenn im Artikel-Editor die Liste vorhandener Upload geladen wird
  * @param array $data
  * @return array
  */
 public function run($data = null)
 {
     $eventClasses = $this->getEventClasses();
     if (!count($eventClasses)) {
         return $data;
     }
     $mdata = $data;
     foreach ($eventClasses as $eventClass) {
         $classkey = $this->getModuleKeyByEvent($eventClass);
         $eventClass = \fpcm\model\abstracts\module::getModuleEventNamespace($classkey, 'editorGetFileList');
         /**
          * @var \fpcm\model\abstracts\event
          */
         $module = new $eventClass();
         if (!$this->is_a($module)) {
             continue;
         }
         $mdata = $module->run($mdata);
     }
     array_shift($mdata);
     if (!isset($mdata['files'])) {
         return $data;
     }
     return $mdata;
 }
コード例 #3
0
 /**
  * wird ausgeführt, wenn Spam-Captcha in Kommentar-Formular initialisiert werden soll
  * @param void $data
  * @return \model\abstracts\spamCaptcha
  */
 public function run($data = null)
 {
     $eventClasses = $this->getEventClasses();
     if (!count($eventClasses)) {
         return false;
     }
     $eventClass = array_shift($eventClasses);
     $classkey = $this->getModuleKeyByEvent($eventClass);
     if (!in_array($classkey, $this->activeModules)) {
         return false;
     }
     $eventClass = \fpcm\model\abstracts\module::getModuleEventNamespace($classkey, 'publicReplaceSpamCaptcha');
     /**
      * @var \fpcm\model\abstracts\event
      */
     $module = new $eventClass();
     if (!$this->is_a($module)) {
         return false;
     }
     $data = $module->run();
     if (!is_object($data)) {
         return false;
     }
     return $data;
 }
コード例 #4
0
ファイル: clearCache.php プロジェクト: sea75300/fanpresscm3
 /**
  * wird ausgeführt, wenn Cache über "Cache leeren" Button geleert wird
  * @param void $data
  * @return void
  */
 public function run($data = null)
 {
     $eventClasses = $this->getEventClasses();
     if (!count($eventClasses)) {
         return;
     }
     foreach ($eventClasses as $eventClass) {
         $classkey = $this->getModuleKeyByEvent($eventClass);
         $eventClass = \fpcm\model\abstracts\module::getModuleEventNamespace($classkey, 'clearCache');
         /**
          * @var \fpcm\model\abstracts\event
          */
         $module = new $eventClass();
         if (!$this->is_a($module)) {
             continue;
         }
         $module->run();
     }
 }
コード例 #5
0
ファイル: acpConfig.php プロジェクト: sea75300/fanpresscm3
 /**
  * wird ausgeführt, wenn wenn Benutzer in Modulmanager auf "Modul konfigurieren" klickt
  * @param string $module
  * @return boolean
  */
 public function run($module = null)
 {
     if (!in_array($module, $this->activeModules)) {
         trigger_error("Request for acpConfig event of disabled module '{$module}'!");
         $view = new \fpcm\model\view\error();
         $view->setMessage("The module '{$module}' is not enabled for execution!");
         $view->render();
         die;
     }
     $className = \fpcm\model\abstracts\module::getModuleEventNamespace($module, 'acpConfig');
     /**
      * @var \fpcm\model\abstracts\event
      */
     $module = new $className();
     if ($this->is_a($module)) {
         $module->run(null);
         return true;
     }
     return false;
 }
コード例 #6
0
 /**
  * wird ausgeführt, wenn in publicController-View die Liste mit Javascript-Dateien geladen wird
  * @param array $data
  * @return array
  */
 public function run($data = null)
 {
     $eventClasses = $this->getEventClasses();
     if (!count($eventClasses)) {
         return array();
     }
     $mdata = array();
     foreach ($eventClasses as $eventClass) {
         $classkey = $this->getModuleKeyByEvent($eventClass);
         $eventClass = \fpcm\model\abstracts\module::getModuleEventNamespace($classkey, 'publicAddJsFiles');
         /**
          * @var \fpcm\model\abstracts\event
          */
         $module = new $eventClass();
         if (!$this->is_a($module)) {
             continue;
         }
         $mdata = $module->run($mdata);
     }
     return $mdata;
 }
コード例 #7
0
 /**
  * wird ausgeführt, wenn Spam-Captcha in Kommentar-Formular initialisiert werden soll
  * @param void $data
  * @return \model\abstracts\spamCaptcha
  */
 public function run($data = null)
 {
     $eventClasses = $this->getEventClasses();
     if (!count($eventClasses)) {
         return false;
     }
     $eventClass = array_shift($eventClasses);
     $classkey = $this->getModuleKeyByEvent($eventClass);
     $eventClass = \fpcm\model\abstracts\module::getModuleEventNamespace($classkey, 'articleReplaceEditorPlugin');
     /**
      * @var \fpcm\model\abstracts\articleEditor
      */
     $module = new $eventClass();
     if (!$this->is_a($module)) {
         return false;
     }
     $data = $module->run();
     if (!is_object($data)) {
         return false;
     }
     return $data;
 }
コード例 #8
0
 /**
  * wird ausgeführt, wenn im Artikel-Editor die Link-Liste für den "Link einfügen"-Dialog geladen wird
  * @param void $data
  * @return array
  */
 public function run($data = null)
 {
     $eventClasses = $this->getEventClasses();
     if (!count($eventClasses)) {
         return array();
     }
     $mdata = array(array('label' => '', 'value' => ''));
     foreach ($eventClasses as $eventClass) {
         $classkey = $this->getModuleKeyByEvent($eventClass);
         $eventClass = \fpcm\model\abstracts\module::getModuleEventNamespace($classkey, 'editorAddLinks');
         /**
          * @var \fpcm\model\abstracts\event
          */
         $module = new $eventClass();
         if (!$this->is_a($module)) {
             continue;
         }
         $mdata = $module->run($mdata);
     }
     array_shift($mdata);
     return $mdata;
 }
コード例 #9
0
 /**
  * wird ausgeführt, wenn Artikel gespeichert wird
  * @param array $data
  * @return array
  */
 public function run($data = null)
 {
     $eventClasses = $this->getEventClasses();
     if (!count($eventClasses)) {
         return $data;
     }
     $mdata = $data;
     foreach ($eventClasses as $eventClass) {
         $classkey = $this->getModuleKeyByEvent($eventClass);
         $eventClass = \fpcm\model\abstracts\module::getModuleEventNamespace($classkey, 'articleCreateTweet');
         /**
          * @var \fpcm\model\abstracts\event
          */
         $module = new $eventClass();
         if (!$this->is_a($module)) {
             continue;
         }
         $mdata = $module->run($mdata);
     }
     if (!is_a($mdata, '\\fpcm\\model\\articles\\article')) {
         return $data;
     }
     return $mdata;
 }
コード例 #10
0
 /**
  * wird ausgeführt, wenn Artikel gespeichert wird
  * @param array $data
  * @return array
  */
 public function run($data = null)
 {
     $eventClasses = $this->getEventClasses();
     if (!count($eventClasses)) {
         return $data;
     }
     $mdata = $data;
     foreach ($eventClasses as $eventClass) {
         $classkey = $this->getModuleKeyByEvent($eventClass);
         $eventClass = \fpcm\model\abstracts\module::getModuleEventNamespace($classkey, 'articlePrepareDataSave');
         /**
          * @var \fpcm\model\abstracts\event
          */
         $module = new $eventClass();
         if (!$this->is_a($module)) {
             continue;
         }
         $mdata = $module->run($mdata);
     }
     if (!$mdata || !is_array($mdata) || !isset($eventData['content']) || !isset($eventData['searchParams']) || !is_array($eventData['searchParams'])) {
         return $data;
     }
     return $mdata;
 }
コード例 #11
0
ファイル: emailSubmit.php プロジェクト: sea75300/fanpresscm3
 /**
  * wird ausgeführt, wenn über fpcm\classes\email-Klasse eine E-mail versendet wird
  * @param array $data
  * @return array
  */
 public function run($data = null)
 {
     $eventClasses = $this->getEventClasses();
     if (!count($eventClasses)) {
         return $data;
     }
     $mdata = $data;
     foreach ($eventClasses as $eventClass) {
         $classkey = $this->getModuleKeyByEvent($eventClass);
         $eventClass = \fpcm\model\abstracts\module::getModuleEventNamespace($classkey, 'emailSubmit');
         /**
          * @var \fpcm\model\abstracts\event
          */
         $module = new $eventClass();
         if (!$this->is_a($module)) {
             continue;
         }
         $mdata = $module->run($mdata);
     }
     if (!$mdata || !isset($mdata['maildata']) || !isset($mdata['headers'])) {
         return $data;
     }
     return $mdata;
 }
コード例 #12
0
 /**
  * wird ausgeführt, wenn RSS-Feed-Struktur aufgebaut wird
  * @param array $data
  * @return array
  */
 public function run($data = null)
 {
     $eventClasses = $this->getEventClasses();
     if (!count($eventClasses)) {
         return $data;
     }
     $mdata = $data;
     foreach ($eventClasses as $eventClass) {
         $classkey = $this->getModuleKeyByEvent($eventClass);
         $eventClass = \fpcm\model\abstracts\module::getModuleEventNamespace($classkey, 'prepareRssFeed');
         /**
          * @var \fpcm\model\abstracts\event
          */
         $module = new $eventClass();
         if (!$this->is_a($module)) {
             continue;
         }
         $mdata = $module->run($mdata);
     }
     if (!$mdata || is_a($mdata, '\\DOMDocument')) {
         return $data;
     }
     return $mdata;
 }
コード例 #13
0
 /**
  * wird ausgeführt, wenn Liste von Dashboard-Container-Klassen geladen wird
  * @param array $data
  * @return array
  */
 public function run($data = null)
 {
     $eventClasses = $this->getEventClasses();
     if (!count($eventClasses)) {
         return $data;
     }
     $mdata = $data;
     foreach ($eventClasses as $eventClass) {
         $classkey = $this->getModuleKeyByEvent($eventClass);
         $eventClass = \fpcm\model\abstracts\module::getModuleEventNamespace($classkey, 'dashboardContainersLoad');
         /**
          * @var \fpcm\model\abstracts\event
          */
         $module = new $eventClass();
         if (!$this->is_a($module)) {
             continue;
         }
         $mdata = $module->run($mdata);
     }
     if (!isset($mdata)) {
         return $data;
     }
     return $mdata;
 }
コード例 #14
0
ファイル: event.php プロジェクト: sea75300/fanpresscm3
 /**
  * wird ausgeführt, wenn Artikel gespeichert wird
  * @param array $data
  * @return array
  */
 public function run($data = null)
 {
     $eventClasses = $this->getEventClasses();
     if (!count($eventClasses)) {
         return $data;
     }
     $mdata = $data;
     foreach ($eventClasses as $eventClass) {
         $classkey = $this->getModuleKeyByEvent($eventClass);
         $eventClass = \fpcm\model\abstracts\module::getModuleEventNamespace($classkey, $this->getEventClassBase());
         /**
          * @var \fpcm\model\abstracts\event
          */
         $module = new $eventClass();
         if (!$this->is_a($module)) {
             continue;
         }
         $mdata = $module->run($mdata);
     }
     if (!$mdata) {
         return $data;
     }
     if ($this->returnDataType === self::FPCM_MODULE_EVENT_RETURNTYPE_ARRAY && !is_array($mdata)) {
         trigger_error('Invalid data type. Returned data type must be an array');
         return $data;
     } elseif ($this->returnDataType === self::FPCM_MODULE_EVENT_RETURNTYPE_OBJ && !is_object($mdata)) {
         trigger_error('Invalid data type. Returned data type must be an object');
         return $data;
     } elseif ($this->returnDataType !== false && !is_array($mdata) && !is_a($mdata, $this->returnDataType)) {
         trigger_error('Invalid data type. Returned data type must be instance of ' . $this->returnDataType);
         return $data;
     }
     return $mdata;
 }
コード例 #15
0
 /**
  * wird ausgeführt, wenn im Artikel-Editor die Link-Liste für den "Link einfügen"-Dialog geladen wird
  * @param void $data
  * @return array
  */
 public function run($data = null)
 {
     $eventClasses = $this->getEventClasses();
     if (!count($eventClasses)) {
         return array();
     }
     $mdata = array('dummy_field' => array('name' => 'dummy', 'value' => 'dummy', 'class' => 'dummy', 'readonly' => false));
     foreach ($eventClasses as $eventClass) {
         $classkey = $this->getModuleKeyByEvent($eventClass);
         $eventClass = \fpcm\model\abstracts\module::getModuleEventNamespace($classkey, 'editorAddUserFields');
         /**
          * @var \fpcm\model\abstracts\event
          */
         $module = new $eventClass();
         if (!$this->is_a($module)) {
             continue;
         }
         $mdata = $module->run($mdata);
     }
     array_shift($mdata);
     $mdata = array_map(array($this, 'checkFields'), $mdata);
     return $mdata;
 }