Beispiel #1
0
 /**
  * Search for exclusive module CMS pages created in Project folder for this individual site
  *
  * @param string $module
  */
 public static function requireModule($module)
 {
     // Check for module itself
     $file_path = DIR_MODULES . $module . '/' . 'Module' . ucfirst($module) . '.php';
     if (file_exists($file_path)) {
         require_once $file_path;
         // Inner panel file
         if (MODE == 'cms') {
             $file_path = DIR_MODULES . $module . '/' . 'Cms' . ucfirst($module) . '.php';
             if (file_exists($file_path)) {
                 Menu::getInstance()->setMayAddItemsFlag(false);
                 require_once $file_path;
             }
         }
     }
     // Require all Entity files
     $objects_path = DIR_MODULES . $module . '/Entity/';
     if (file_exists($objects_path)) {
         foreach (array_diff(scandir($objects_path), ['.', '..']) as $object_file) {
             if (is_file($objects_path . $object_file)) {
                 require_once $objects_path . $object_file;
             }
         }
     }
 }
Beispiel #2
0
 private function parseMenu()
 {
     $menu = Menu::getInstance();
     $all_menu_items = ['home' => [], 'structure' => [], 'users' => [], 'tools' => []];
     // Combine items
     $custom_items = [];
     if (file_exists(DIR_FRONT . 'menu.php')) {
         $custom_items = (include_once DIR_FRONT . 'menu.php');
     }
     $all_menu_items += $custom_items;
     // For every main menu item search for module and submenu
     foreach ($all_menu_items as $main_menu_key => $main_menu_data) {
         $menu_class = 'TMCms\\Admin\\' . Converter::to_camel_case($main_menu_key) . '\\Cms' . Converter::to_camel_case($main_menu_key);
         if (!class_exists($menu_class)) {
             $menu_class = 'TMCms\\Modules\\' . Converter::to_camel_case($main_menu_key) . '\\Cms' . Converter::to_camel_case($main_menu_key);
         }
         if (class_exists($menu_class)) {
             $reflection = new \ReflectionClass($menu_class);
             $filename = $reflection->getFileName();
             $folder = dirname($filename);
             $module_menu_file = $folder . '/menu.php';
             if (file_exists($module_menu_file)) {
                 $module_menu_data = (include_once $module_menu_file);
                 $all_menu_items[$main_menu_key] = array_merge($all_menu_items[$main_menu_key], $module_menu_data);
             }
         }
     }
     // Add menu items
     foreach ($all_menu_items as $key => $item) {
         // Add menu item if have access to page
         if ($key && Users::getInstance()->checkAccess($key, '_default')) {
             $menu->addMenuItem($key, $item);
         }
     }
     // Add translations if have project-related files
     Finder::getInstance()->addTranslationsSearchPath(DIR_FRONT . 'translations/');
 }
use TMCms\HTML\Cms\Column\ColumnData;
use TMCms\HTML\Cms\Column\ColumnDelete;
use TMCms\HTML\Cms\Column\ColumnEdit;
use TMCms\HTML\Cms\Column\ColumnImg;
use TMCms\HTML\Cms\Columns;
use TMCms\Log\App;
use TMCms\Modules\Articles\Entity\ArticleCategoryEntity;
use TMCms\Modules\Articles\Entity\ArticleCategoryEntityRepository;
use TMCms\Modules\Articles\Entity\ArticleEntity;
use TMCms\Modules\Articles\Entity\ArticleEntityRepository;
use TMCms\Modules\Articles\Entity\ArticleTagEntity;
use TMCms\Modules\Articles\Entity\ArticleTagEntityRepository;
use TMCms\Modules\Articles\Entity\ArticleTagRelationEntityRepository;
use TMCms\Strings\UID;
defined('INC') or exit;
Menu::getInstance()->addSubMenuItem('categories')->addSubMenuItem('tags');
class CmsArticles
{
    /** Articles */
    public function _default()
    {
        $news = new ArticleEntityRepository();
        $category = new ArticleCategoryEntityRepository();
        echo BreadCrumbs::getInstance()->addCrumb(__('Articles'));
        echo Columns::getInstance()->add('<a class="btn btn-success" href="?p=' . P . '&do=add">' . __('Add Article') . '</a><br><br>', ['align' => 'right']);
        echo CmsTable::getInstance()->addData($news)->addColumn(ColumnImg::getInstance()->imgHeight(130)->href('?p=' . P . '&do=edit&id={%id%}'))->addColumn(ColumnData::getInstance('title')->enableTranslationColumn())->addColumn(ColumnData::getInstance('category_id')->setPairedDataOptionsForKeys($category->getPairs('title')))->addColumn(ColumnEdit::getInstance('edit'))->addColumn(ColumnActive::getInstance('active'))->addColumn(ColumnDelete::getInstance('delete'));
    }
    private function __add_edit_form($data = NULL)
    {
        $article = new ArticleEntity();
        return CmsFormHelper::outputForm($article->getDbTableName(), ['combine' => true, 'data' => $data, 'button' => __('Add'), 'fields' => ['category_id' => ['options' => ModuleArticles::getCategoryPairs(), 'title' => 'Category'], 'tags' => ['type' => 'multiselect', 'options' => ModuleArticles::getTagPairs()], 'image' => ['edit' => 'files', 'allowed_extensions' => 'png,jpeg,jpg', 'path' => DIR_PUBLIC_URL . 'articles/'], 'title' => ['translation' => true], 'description' => ['type' => 'textarea', 'edit' => 'wysiwyg', 'translation' => true], 'text' => ['type' => 'textarea', 'edit' => 'wysiwyg', 'translation' => true], 'meta_keywords' => ['translation' => true], 'meta_description' => ['translation' => true]], 'unset' => ['active', 'ts_created']]);