From 4247aa74b0cd07edd4714fadc356413b6cd7a2a5 Mon Sep 17 00:00:00 2001 From: Aleisha Amohia Date: Tue, 7 Dec 2021 02:15:33 +1300 Subject: [PATCH] Bug 15326: (follow-up) WIP Fixing breadcrumbs Hiding private/unpublished pages etc Still working on pages navigation --- Koha/CmsPages.pm | 9 +++ .../mysql/atomicupdate/bug15326-add_cms_pages.pl | 30 ++++++++ .../mysql/atomicupdate/bug15326-add_cms_pages.sql | 17 ----- .../bug15326-add_cms_pages_permission.pl | 12 ++++ .../bug15326-add_cms_pages_permission.sql | 1 - installer/data/mysql/kohastructure.sql | 46 ++++++------- .../prog/en/includes/cms-pages-nav.inc | 10 ++- .../prog/en/modules/tools/cmspages.tt | 79 ++++++++++++++-------- .../bootstrap/en/modules/opac-cmspages.tt | 31 +++++---- opac/opac-cmspages.pl | 23 ++++++- tools/cmspages.pl | 4 +- 11 files changed, 173 insertions(+), 89 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug15326-add_cms_pages.pl delete mode 100644 installer/data/mysql/atomicupdate/bug15326-add_cms_pages.sql create mode 100644 installer/data/mysql/atomicupdate/bug15326-add_cms_pages_permission.pl delete mode 100644 installer/data/mysql/atomicupdate/bug15326-add_cms_pages_permission.sql diff --git a/Koha/CmsPages.pm b/Koha/CmsPages.pm index 663e75a499..edbc9987be 100644 --- a/Koha/CmsPages.pm +++ b/Koha/CmsPages.pm @@ -131,6 +131,7 @@ sub list { my $page_list = []; my $parent_list = []; + my $navigation = []; my %index; my $data; while ( my $page = $pages->next ) { @@ -163,8 +164,16 @@ sub list { my $parent = { id => $old_id }; $parent->{'title_link'} = $index{ $old_id }->{'title_link'} unless not defined $old_id; $page->{'parent'} = $parent; + use Data::Dumper; + warn Dumper($page->{title}); + if ( !$page->{parent} ) { + push @{ $navigation }, $page; + } } + while ( scalar @{ $page_list } > 0 ) { + + return ( $page_list, $parent_list, $data ); } diff --git a/installer/data/mysql/atomicupdate/bug15326-add_cms_pages.pl b/installer/data/mysql/atomicupdate/bug15326-add_cms_pages.pl new file mode 100644 index 0000000000..3fa17165da --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug15326-add_cms_pages.pl @@ -0,0 +1,30 @@ +use Modern::Perl; + +{ + bug_number => "15326", + description => "Add new table cms_pages", + up => sub { + my ($args) = @_; + my ($dbh, $out) = @$args{qw(dbh out)}; + + unless( TableExists( 'cms_pages' ) ) { + $dbh->do(q{ CREATE TABLE `cms_pages` ( + `id` int(6) NOT NULL AUTO_INCREMENT, + `parent` int(6) DEFAULT NULL, + `branchcode` varchar(10) DEFAULT NULL, + `lang` varchar(25) NOT NULL DEFAULT '', + `title` varchar(255) DEFAULT NULL, + `title_link` varchar(64) DEFAULT NULL, + `sortorder` int(3) NOT NULL DEFAULT 0, + `location` tinyint(1) DEFAULT NULL, + `publish` tinyint(1) NOT NULL DEFAULT 0, + `content` text, + PRIMARY KEY (`id`), + INDEX `parent_index` (`parent`), + INDEX `lang_index` (`lang`), + INDEX `branchcode_index` (`branchcode`), + CONSTRAINT `cmspages_branchcode_ibfk` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci }); + } + } +} diff --git a/installer/data/mysql/atomicupdate/bug15326-add_cms_pages.sql b/installer/data/mysql/atomicupdate/bug15326-add_cms_pages.sql deleted file mode 100644 index 9c051785fe..0000000000 --- a/installer/data/mysql/atomicupdate/bug15326-add_cms_pages.sql +++ /dev/null @@ -1,17 +0,0 @@ - CREATE TABLE `cms_pages` ( - `id` int(6) NOT NULL AUTO_INCREMENT, - `parent` int(6) DEFAULT NULL, - `branchcode` varchar(10) DEFAULT NULL, - `lang` varchar(25) NOT NULL DEFAULT '', - `title` varchar(255) DEFAULT NULL, - `title_link` varchar(64) DEFAULT NULL, - `sortorder` int(3) NOT NULL DEFAULT 0, - `location` tinyint(1) DEFAULT NULL, - `publish` tinyint(1) NOT NULL DEFAULT 0, - `content` text, - PRIMARY KEY (`id`), - INDEX `parent_index` (`parent`), - INDEX `lang_index` (`lang`), - INDEX `branchcode_index` (`branchcode`), - CONSTRAINT `cmspages_branchcode_ibfk` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; diff --git a/installer/data/mysql/atomicupdate/bug15326-add_cms_pages_permission.pl b/installer/data/mysql/atomicupdate/bug15326-add_cms_pages_permission.pl new file mode 100644 index 0000000000..664475e22b --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug15326-add_cms_pages_permission.pl @@ -0,0 +1,12 @@ +use Modern::Perl; + +{ + bug_number => "15326", + description => "Add new permission edit_pages", + up => sub { + my ($args) = @_; + my ($dbh, $out) = @$args{qw(dbh out)}; + + $dbh->do(q{INSERT IGNORE INTO permissions (`module_bit`, `code`, `description`) VALUES ('13', 'edit_pages', 'Create, edit and delete CMS pages for OPAC and staff interfaces') }); + } +} diff --git a/installer/data/mysql/atomicupdate/bug15326-add_cms_pages_permission.sql b/installer/data/mysql/atomicupdate/bug15326-add_cms_pages_permission.sql deleted file mode 100644 index 72ce00f9a2..0000000000 --- a/installer/data/mysql/atomicupdate/bug15326-add_cms_pages_permission.sql +++ /dev/null @@ -1 +0,0 @@ -INSERT IGNORE INTO permissions (`module_bit`, `code`, `description`) VALUES ('13', 'edit_pages', 'Create, edit and delete CMS pages for OPAC and staff interfaces'); diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index 10d7d3577d..35b3070323 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -1974,6 +1974,29 @@ CREATE TABLE `clubs` ( /*!40101 SET character_set_client = @saved_cs_client */; -- +-- Table structure for table 'cms_pages', used for CMS functionality. +-- + +DROP TABLE IF EXISTS `cms_pages`; +CREATE TABLE `cms_pages` ( + `id` int(6) NOT NULL AUTO_INCREMENT, + `parent` int(6) DEFAULT NULL, + `branchcode` varchar(10) DEFAULT NULL, + `lang` varchar(25) NOT NULL DEFAULT '', + `title` varchar(255) DEFAULT NULL, + `title_link` varchar(64) DEFAULT NULL, + `sortorder` int(3) NOT NULL DEFAULT 0, + `location` tinyint(1) DEFAULT NULL, + `publish` tinyint(1) NOT NULL DEFAULT 0, + `content` text, + PRIMARY KEY (`id`), + INDEX `parent_index` (`parent`), + INDEX `lang_index` (`lang`), + INDEX `branchcode_index` (`branchcode`), + CONSTRAINT `pages_branchcode_ibfk` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -- Table structure for table `collections` -- @@ -5357,29 +5380,6 @@ CREATE TABLE `zebraqueue` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; --- --- Table structure for table 'cms_pages', used for CMS functionality. --- - -DROP TABLE IF EXISTS `cms_pages`; - CREATE TABLE `cms_pages` ( - `id` int(6) NOT NULL AUTO_INCREMENT, - `parent` int(6) DEFAULT NULL, - `branchcode` varchar(10) DEFAULT NULL, - `lang` varchar(25) NOT NULL DEFAULT '', - `title` varchar(255) DEFAULT NULL, - `title_link` varchar(64) DEFAULT NULL, - `sortorder` int(3) NOT NULL DEFAULT 0, - `location` tinyint(1) DEFAULT NULL, - `publish` tinyint(1) NOT NULL DEFAULT 0, - `content` text, - PRIMARY KEY (`id`), - INDEX `parent_index` (`parent`), - INDEX `lang_index` (`lang`), - INDEX `branchcode_index` (`branchcode`), - CONSTRAINT `pages_branchcode_ibfk` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; - /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/cms-pages-nav.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/cms-pages-nav.inc index c4787fdb5d..58e03a4491 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/cms-pages-nav.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/cms-pages-nav.inc @@ -1,14 +1,18 @@ [% IF pages %]