Răsfoiți Sursa

#1091 User friendly URLs: content_info object for pages

Alex Trofimov 4 ani în urmă
părinte
comite
b2368c6200

+ 4 - 1
inc/classes/BxDolPage.php

@@ -35,6 +35,8 @@
  *      - user level id = 4 -> 2^(4-1) = 8
  * - visible_for_levels_editable: it determines if 'visible_for_levels' field is editable from page builder, visibility options can be overriden by custom class and shouldn't be editable in this case.
  * - url: the page url, if it is static page.
+ * - content_info: content info object name related to the content on the page,
+ *                 if different from module name
  * - meta_description: meta description of the page.
  * - meta_keywords: meta keywords of the page.
  * - meta_robots: instructions for search bots.
@@ -313,8 +315,9 @@ class BxDolPage extends BxDolFactory implements iBxDolFactoryObject, iBxDolRepla
             $aPage = $sPageName ? BxDolPageQuery::getPageObject($sPageName) : false;
             if ($aPage) {
                 $sModule = $aPage['module'];
+                $sContentInfo = !empty($aPage['content_info']) ? $aPage['content_info'] : $aPage['module'];
                 if ('id' == $sSeoParamName) {
-                    $oContentInfo = BxDolContentInfo::getObjectInstance($sModule);
+                    $oContentInfo = BxDolContentInfo::getObjectInstance($sContentInfo);
                     $sSeoTitle = $oContentInfo ? $oContentInfo->getContentTitle($sSeoParamValue) : '';
                     if (!$sSeoTitle) 
                         $sSeoTitle = base_convert(substr(md5($sSeoParamValue), -8), 16, 36);

+ 1 - 0
install/sql/system.sql

@@ -4992,6 +4992,7 @@ CREATE TABLE IF NOT EXISTS `sys_objects_page` (
   `visible_for_levels` int(11) NOT NULL DEFAULT '2147483647',
   `visible_for_levels_editable` tinyint(4) NOT NULL DEFAULT '1',
   `url` varchar(255) NOT NULL,
+  `content_info` varchar(64) NOT NULL,
   `meta_description` text NOT NULL,
   `meta_keywords` text NOT NULL,
   `meta_robots` varchar(255) NOT NULL,

+ 2 - 2
modules/boonex/albums/install/sql/enable.sql

@@ -67,8 +67,8 @@ INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `t
 ('bx_albums_view_entry', 2, 'bx_albums', '', '_bx_albums_page_block_title_entry_reports', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:9:\"bx_albums\";s:6:\"method\";s:14:\"entity_reports\";}', 0, 0, 1, 6);
 
 -- PAGE: view media
-INSERT INTO `sys_objects_page`(`object`, `uri`, `title_system`, `title`, `module`, `layout_id`, `visible_for_levels`, `visible_for_levels_editable`, `url`, `meta_description`, `meta_keywords`, `meta_robots`, `cache_lifetime`, `cache_editable`, `deletable`, `override_class_name`, `override_class_file`) VALUES 
-('bx_albums_view_media', 'view-album-media', '_bx_albums_page_title_sys_view_media', '_bx_albums_page_title_view_media', 'bx_albums', 12, 2147483647, 1, '', '', '', '', 0, 1, 0, 'BxAlbumsPageMedia', 'modules/boonex/albums/classes/BxAlbumsPageMedia.php');
+INSERT INTO `sys_objects_page`(`object`, `uri`, `title_system`, `title`, `module`, `layout_id`, `visible_for_levels`, `visible_for_levels_editable`, `url`, `content_info`, `meta_description`, `meta_keywords`, `meta_robots`, `cache_lifetime`, `cache_editable`, `deletable`, `override_class_name`, `override_class_file`) VALUES 
+('bx_albums_view_media', 'view-album-media', '_bx_albums_page_title_sys_view_media', '_bx_albums_page_title_view_media', 'bx_albums', 12, 2147483647, 1, '', 'bx_albums_media', '', '', '', 0, 1, 0, 'BxAlbumsPageMedia', 'modules/boonex/albums/classes/BxAlbumsPageMedia.php');
 
 INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `active`, `order`) VALUES 
 ('bx_albums_view_media', 2, 'bx_albums', '', '_bx_albums_page_block_title_entry_view_media', 13, 2147483647, 'service', 'a:2:{s:6:\"module\";s:9:\"bx_albums\";s:6:\"method\";s:10:\"media_view\";}', 0, 0, 1, 1),