/**
  * @inheritdoc
  */
 public function isValid($data, $field = '', array $extra = [])
 {
     if (is_array($data) && array_key_exists($field, $data)) {
         return $this->isValid($data[$field], $field, $extra);
     }
     return $this->modules->isInstalled($data);
 }
 /**
  * @param \ACP3\Core\View\Event\TemplateEvent $templateEvent
  */
 public function onWysiwygTextareaBefore(TemplateEvent $templateEvent)
 {
     $arguments = $templateEvent->getParameters();
     if ($this->modules->isActive('emoticons') && !empty($arguments['id'])) {
         echo $this->emoticonsHelper->emoticonsList($arguments['id']);
     }
 }
 /**
  * @inheritdoc
  */
 public function validate(array $formData)
 {
     $this->validator->addConstraint(Core\Validation\ValidationRules\FormTokenValidationRule::class)->addConstraint(Core\Validation\ValidationRules\InArrayValidationRule::class, ['data' => $formData, 'field' => 'dateformat', 'message' => $this->translator->t('system', 'select_date_format'), 'extra' => ['haystack' => ['long', 'short']]])->addConstraint(Core\Validation\ValidationRules\IntegerValidationRule::class, ['data' => $formData, 'field' => 'sidebar', 'message' => $this->translator->t('system', 'select_sidebar_entries')])->addConstraint(Core\Validation\ValidationRules\InArrayValidationRule::class, ['data' => $formData, 'field' => 'overlay', 'message' => $this->translator->t('gallery', 'select_use_overlay'), 'extra' => ['haystack' => [0, 1]]])->addConstraint(Core\Validation\ValidationRules\IntegerValidationRule::class, ['data' => $formData, 'field' => 'thumbwidth', 'message' => $this->translator->t('gallery', 'invalid_image_width_entered')])->addConstraint(Core\Validation\ValidationRules\IntegerValidationRule::class, ['data' => $formData, 'field' => 'width', 'message' => $this->translator->t('gallery', 'invalid_image_width_entered')])->addConstraint(Core\Validation\ValidationRules\IntegerValidationRule::class, ['data' => $formData, 'field' => 'thumbheight', 'message' => $this->translator->t('gallery', 'invalid_image_height_entered')])->addConstraint(Core\Validation\ValidationRules\IntegerValidationRule::class, ['data' => $formData, 'field' => 'height', 'message' => $this->translator->t('gallery', 'invalid_image_height_entered')]);
     if ($this->modules->isActive('comments') === true) {
         $this->validator->addConstraint(Core\Validation\ValidationRules\InArrayValidationRule::class, ['data' => $formData, 'field' => 'comments', 'message' => $this->translator->t('gallery', 'select_allow_comments'), 'extra' => ['haystack' => [0, 1]]]);
     }
     $this->validator->validate();
 }
 /**
  * @inheritdoc
  */
 public function validate(array $formData)
 {
     $this->validator->addConstraint(Core\Validation\ValidationRules\FormTokenValidationRule::class)->addConstraint(Core\Validation\ValidationRules\InArrayValidationRule::class, ['data' => $formData, 'field' => 'dateformat', 'message' => $this->translator->t('system', 'select_date_format'), 'extra' => ['haystack' => ['long', 'short']]])->addConstraint(Core\Validation\ValidationRules\IntegerValidationRule::class, ['data' => $formData, 'field' => 'sidebar', 'message' => $this->translator->t('system', 'select_sidebar_entries')])->addConstraint(Core\Validation\ValidationRules\NumberGreaterThanValidationRule::class, ['data' => $formData, 'field' => 'readmore_chars', 'message' => $this->translator->t('news', 'type_in_readmore_chars'), 'extra' => ['value' => 0]])->addConstraint(Core\Validation\ValidationRules\NumberGreaterThanValidationRule::class, ['data' => $formData, 'field' => 'readmore', 'message' => $this->translator->t('news', 'select_activate_readmore'), 'extra' => ['haystack' => [0, 1]]])->addConstraint(Core\Validation\ValidationRules\InArrayValidationRule::class, ['data' => $formData, 'field' => 'category_in_breadcrumb', 'message' => $this->translator->t('news', 'select_display_category_in_breadcrumb'), 'extra' => ['haystack' => [0, 1]]]);
     if ($this->modules->isActive('comments') === true) {
         $this->validator->addConstraint(Core\Validation\ValidationRules\InArrayValidationRule::class, ['data' => $formData, 'field' => 'comments', 'message' => $this->translator->t('news', 'select_allow_comments'), 'extra' => ['haystack' => [0, 1]]]);
     }
     $this->validator->validate();
 }
 /**
  * @inheritdoc
  */
 public function validate(array $formData)
 {
     $this->validator->addConstraint(Core\Validation\ValidationRules\FormTokenValidationRule::class)->addConstraint(Core\Validation\ValidationRules\InArrayValidationRule::class, ['data' => $formData, 'field' => 'dateformat', 'message' => $this->translator->t('system', 'select_date_format'), 'extra' => ['haystack' => ['long', 'short']]]);
     if ($this->modules->isActive('emoticons')) {
         $this->validator->addConstraint(Core\Validation\ValidationRules\InArrayValidationRule::class, ['data' => $formData, 'field' => 'emoticons', 'message' => $this->translator->t('comments', 'select_emoticons'), 'extra' => ['haystack' => [0, 1]]]);
     }
     $this->validator->validate();
 }
Beispiel #6
0
 /**
  * Erzeugt eine neue Kategorie und gibt ihre ID zurück
  *
  * @param string $title
  * @param string $module
  *
  * @return integer
  */
 public function categoriesCreate($title, $module)
 {
     $moduleInfo = $this->modules->getModuleInfo($module);
     if ($this->categoryRepository->resultIsDuplicate($title, $moduleInfo['id'], '') === false) {
         $insertValues = ['id' => '', 'title' => $this->secureHelper->strEncode($title), 'picture' => '', 'description' => '', 'module_id' => $moduleInfo['id']];
         $result = $this->categoryRepository->insert($insertValues);
         $this->categoriesCache->saveCache($module);
         return $result;
     }
     return $this->categoryRepository->getOneByTitleAndModule($title, $module)['id'];
 }
 public function invalidatePageCache()
 {
     if ($this->canUsePageCache->canUsePageCache()) {
         if ($this->settings->getSettings(Schema::MODULE_NAME)['page_cache_purge_mode'] == 1) {
             Purge::doPurge($this->applicationPath->getCacheDir() . 'http');
         } else {
             $systemModuleId = $this->modules->getModuleId(Schema::MODULE_NAME);
             $this->settingsRepository->update(['value' => false], ['module_id' => $systemModuleId, 'name' => 'page_cache_is_valid']);
         }
     }
 }
Beispiel #8
0
 /**
  * Gibt die für die Suche verfügbaren Module zurück
  *
  * @return array
  */
 public function getModules()
 {
     $searchModules = [];
     foreach ($this->availableModulesRegistrar->getAvailableModuleNames() as $module) {
         if ($this->acl->hasPermission('frontend/' . $module) === true) {
             $info = $this->modules->getModuleInfo($module);
             $name = $info['name'];
             $searchModules[$name] = ['dir' => $module, 'checked' => $this->formsHelper->selectEntry('mods', $module, $module, 'checked'), 'name' => $name];
         }
     }
     ksort($searchModules);
     return $searchModules;
 }
 /**
  * @inheritdoc
  */
 public function validate(array $formData)
 {
     $this->validator->addConstraint(Core\Validation\ValidationRules\FormTokenValidationRule::class)->addConstraint(Core\Validation\ValidationRules\InArrayValidationRule::class, ['data' => $formData, 'field' => 'dateformat', 'message' => $this->translator->t('system', 'select_date_format'), 'extra' => ['haystack' => ['long', 'short']]])->addConstraint(Core\Validation\ValidationRules\InArrayValidationRule::class, ['data' => $formData, 'field' => 'notify', 'message' => $this->translator->t('guestbook', 'select_notification_type'), 'extra' => ['haystack' => [0, 1, 2]]])->addConstraint(Core\Validation\ValidationRules\InArrayValidationRule::class, ['data' => $formData, 'field' => 'overlay', 'message' => $this->translator->t('guestbook', 'select_use_overlay'), 'extra' => ['haystack' => [0, 1]]]);
     if ($formData['notify'] != 0) {
         $this->validator->addConstraint(Core\Validation\ValidationRules\EmailValidationRule::class, ['data' => $formData, 'field' => 'notify_email', 'message' => $this->translator->t('system', 'wrong_email_format')]);
     }
     if ($this->modules->isActive('emoticons') === true) {
         $this->validator->addConstraint(Core\Validation\ValidationRules\InArrayValidationRule::class, ['data' => $formData, 'field' => 'emoticons', 'message' => $this->translator->t('guestbook', 'select_emoticons'), 'extra' => ['haystack' => [0, 1]]]);
     }
     if ($this->modules->isActive('newsletter') === true) {
         $this->validator->addConstraint(Core\Validation\ValidationRules\InArrayValidationRule::class, ['data' => $formData, 'field' => 'newsletter_integration', 'message' => $this->translator->t('guestbook', 'select_newsletter_integration'), 'extra' => ['haystack' => [0, 1]]]);
     }
     $this->validator->validate();
 }
 /**
  * @param ModelSaveEvent $event
  */
 public function execute(ModelSaveEvent $event)
 {
     if (!$event->isDeleteStatement()) {
         return;
     }
     foreach ($event->getEntryId() as $item) {
         if ($this->commentsHelpers) {
             $this->commentsHelpers->deleteCommentsByModuleAndResult($this->modules->getModuleId(Schema::MODULE_NAME), $item);
         }
         $this->cache->getCacheDriver()->delete(Cache::CACHE_ID . $item);
         if ($this->uriAliasManager) {
             $this->uriAliasManager->deleteUriAlias(sprintf(Helpers::URL_KEY_PATTERN, $item));
         }
     }
 }
 /**
  * @param string $mode
  * @param string $moduleName
  * @param string $uri
  * @param int    $articleId
  *
  * @return bool
  */
 protected function isValidLink($mode, $moduleName, $uri, $articleId)
 {
     switch ($mode) {
         case 1:
             return $this->modules->isActive($moduleName);
         case 2:
             return $this->internalUriValidationRule->isValid($uri);
         case 3:
             return !empty($uri);
         case 4:
             if ($this->modules->isActive('articles')) {
                 return $this->articleExistsValidationRule->isValid($articleId);
             }
     }
     return false;
 }
Beispiel #12
0
Datei: ACL.php Projekt: acp3/core
 /**
  * Überpüft, ob eine Modulaktion existiert und der Benutzer darauf Zugriff hat
  *
  * @param string $resource
  *
  * @return boolean
  */
 public function hasPermission($resource)
 {
     if (!empty($resource) && $this->modules->controllerActionExists($resource) === true) {
         $resourceParts = explode('/', $resource);
         if ($this->modules->isActive($resourceParts[1]) === true) {
             return $this->canAccessResource($resource);
         }
     }
     return false;
 }
 private function configureFullToolbar()
 {
     $this->config['extraPlugins'] = 'codemirror,divarea,lineutils,oembed,widget';
     if ($this->filemanagerHelpers instanceof \ACP3\Modules\ACP3\Filemanager\Helpers) {
         $this->applyFileManagerPaths();
     }
     // Toolbar configuration
     $this->config['toolbarGroups'] = [['name' => 'document', 'groups' => ['mode', 'document', 'doctools']], ['name' => 'clipboard', 'groups' => ['clipboard', 'undo']], ['name' => 'editing', 'groups' => ['find', 'selection', 'spellchecker']], ['name' => 'forms'], '/', ['name' => 'basicstyles', 'groups' => ['basicstyles', 'cleanup']], ['name' => 'paragraph', 'groups' => ['list', 'indent', 'blocks', 'align', 'bidi']], ['name' => 'links'], ['name' => 'insert'], '/', ['name' => 'styles'], ['name' => 'colors'], ['name' => 'tools'], ['name' => 'others'], ['name' => 'about']];
     // Include emoticons, if available
     if ($this->modules->isActive('emoticons') === true) {
         $this->applyEmoticons();
     }
 }
Beispiel #14
0
 /**
  * Führt die Updateanweisungen eines Moduls aus
  *
  * @param ContainerInterface $container
  * @param string $module
  * @return int
  */
 public function updateModule(ContainerInterface $container, $module)
 {
     $result = false;
     $serviceIdSchema = $module . '.installer.schema';
     $serviceIdMigration = $module . '.installer.migration';
     if ($container->has($serviceIdSchema) === true && $container->has($serviceIdMigration) === true) {
         /** @var SchemaInterface $moduleSchema */
         $moduleSchema = $container->get($serviceIdSchema);
         /** @var MigrationInterface $moduleMigration */
         $moduleMigration = $container->get($serviceIdMigration);
         if ($this->modules->isInstalled($module) || count($moduleMigration->renameModule()) > 0) {
             $result = $this->schemaUpdater->updateSchema($moduleSchema, $moduleMigration);
         }
     }
     return $result;
 }
 /**
  * @param ModelSaveEvent $event
  */
 public function execute(ModelSaveEvent $event)
 {
     if (!$event->isDeleteStatement()) {
         return;
     }
     $upload = new Upload($this->applicationPath, Schema::MODULE_NAME);
     foreach ($event->getEntryId() as $item) {
         $upload->removeUploadedFile($this->filesRepository->getFileById($item));
         if ($this->commentsHelpers) {
             $this->commentsHelpers->deleteCommentsByModuleAndResult($this->modules->getModuleId(Schema::MODULE_NAME), $item);
         }
         $this->cache->getCacheDriver()->delete(Cache::CACHE_ID . $item);
         if ($this->uriAliasManager) {
             $this->uriAliasManager->deleteUriAlias(sprintf(Helpers::URL_KEY_PATTERN, $item));
         }
     }
 }
Beispiel #16
0
 /**
  * @param string                                                    $moduleToBeUninstalled
  * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
  *
  * @return array
  */
 public function checkUninstallDependencies($moduleToBeUninstalled, ContainerInterface $container)
 {
     $modules = $this->modules->getInstalledModules();
     $moduleDependencies = [];
     foreach ($modules as $module) {
         $moduleName = strtolower($module['dir']);
         if ($moduleName !== $moduleToBeUninstalled) {
             $serviceId = $moduleName . '.installer.schema';
             if ($container->has($serviceId) === true) {
                 $dependencies = $this->getDependencies($moduleName);
                 if (in_array($moduleToBeUninstalled, $dependencies) === true) {
                     $moduleDependencies[] = $module['name'];
                 }
             }
         }
     }
     return $moduleDependencies;
 }
Beispiel #17
0
 /**
  * Zählt die Anzahl der Kommentare für einen bestimmten Eintrag eines Modules zusammen
  *
  * @param string  $moduleName
  * @param integer $resultId
  *
  * @return integer
  */
 public function commentsCount($moduleName, $resultId)
 {
     return $this->commentRepository->countAllByModule($this->modules->getModuleId($moduleName), $resultId);
 }