/** * 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; } } } }
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']]);