From f64f773a8ee65fdb2447f6dd581f818b54d3e753 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Thu, 29 Aug 2019 12:18:10 +0200 Subject: [PATCH] unified all badges into one table --- .../page/default_page/default_page.php | 22 +++++++------ ...CT_PERSON_BADGES.php => SELECT_BADGES.php} | 4 +-- .../default_page/sql/SELECT_PROJECT_FOCUS.php | 33 ------------------- .../default_page/sql/SELECT_PROJECT_TYPE.php | 33 ------------------- .../sql/DATA_WECKER_MANUFAKTUR.php | 4 +-- wecker_manufaktur/sql/mysql/badges.schema.sql | 14 ++++++++ .../sql/mysql/person_badges.schema.sql | 13 -------- .../sql/mysql/project_focus.schema.sql | 13 -------- .../sql/mysql/project_type.schema.sql | 13 -------- 9 files changed, 29 insertions(+), 120 deletions(-) rename wecker_manufaktur/page/default_page/sql/{SELECT_PERSON_BADGES.php => SELECT_BADGES.php} (83%) delete mode 100644 wecker_manufaktur/page/default_page/sql/SELECT_PROJECT_FOCUS.php delete mode 100644 wecker_manufaktur/page/default_page/sql/SELECT_PROJECT_TYPE.php create mode 100644 wecker_manufaktur/sql/mysql/badges.schema.sql delete mode 100644 wecker_manufaktur/sql/mysql/person_badges.schema.sql delete mode 100644 wecker_manufaktur/sql/mysql/project_focus.schema.sql delete mode 100644 wecker_manufaktur/sql/mysql/project_type.schema.sql diff --git a/wecker_manufaktur/page/default_page/default_page.php b/wecker_manufaktur/page/default_page/default_page.php index 5dd75e4..583a740 100644 --- a/wecker_manufaktur/page/default_page/default_page.php +++ b/wecker_manufaktur/page/default_page/default_page.php @@ -17,6 +17,10 @@ class default_page implements \SYSTEM\PAGE\DefaultPage { ))); } + const BADGE_TYPE_PERSON_ABILITIES = 1; + const BADGE_TYPE_PROJECT_FOCUS = 10; + const BADGE_TYPE_PROJECT_TYPE = 11; + private static function getPersons(){ $result = ''; @@ -25,11 +29,11 @@ class default_page implements \SYSTEM\PAGE\DefaultPage { $_content_details = ''; $persons = \SQL\SELECT_PERSONS::QQ(); - $person_badges = \SQL\SELECT_PERSON_BADGES::QA(); // This part we filter phpside due to performance. - $person_projects= \SQL\SELECT_PERSON_PROJECTS::QA(); // This part we filter phpside due to performance. + $person_badges = \SQL\SELECT_BADGES::QA(array(self::BADGE_TYPE_PERSON_ABILITIES)); // This part we filter phpside due to performance. + $person_projects= \SQL\SELECT_PERSON_PROJECTS::QA(); // This part we filter phpside due to performance. while($row = $persons->next()){ - $badges = array_filter($person_badges, function($v)use($row){return $v['person'] == $row['id'];}); + $badges = array_filter($person_badges, function($v)use($row){return $v['ref_id'] == $row['id'];}); $row['badges'] = ''; foreach($badges as $badge){ $row['badges'] .= \SYSTEM\PAGE\replace::replaceFile((new PPAGE('default_page/tpl/content_badge.tpl'))->SERVERPATH(),$badge); @@ -76,22 +80,20 @@ class default_page implements \SYSTEM\PAGE\DefaultPage { $_content_details = ''; $projects = \SQL\SELECT_PROJECTS::QQ(); - $project_focus = \SQL\SELECT_PROJECT_FOCUS::QA(); // This part we filter phpside due to performance. - $project_type = \SQL\SELECT_PROJECT_TYPE::QA(); // This part we filter phpside due to performance. - $project_persons= \SQL\SELECT_PROJECT_PERSONS::QA();// This part we filter phpside due to performance. + $project_focus = \SQL\SELECT_BADGES::QA(array(self::BADGE_TYPE_PROJECT_FOCUS)); // This part we filter phpside due to performance. + $project_type = \SQL\SELECT_BADGES::QA(array(self::BADGE_TYPE_PROJECT_TYPE)); // This part we filter phpside due to performance. + $project_persons= \SQL\SELECT_PROJECT_PERSONS::QA(); // This part we filter phpside due to performance. while($row = $projects->next()){ - $focus = array_filter($project_focus, function($v)use($row){return $v['project'] == $row['id'];}); + $focus = array_filter($project_focus, function($v)use($row){return $v['ref_id'] == $row['id'];}); $row['focus'] = ''; foreach($focus as $f){ - $f['badge'] = $f['focus']; $row['focus'] .= \SYSTEM\PAGE\replace::replaceFile((new PPAGE('default_page/tpl/content_badge.tpl'))->SERVERPATH(),$f); } - $type = array_filter($project_type, function($v)use($row){return $v['project'] == $row['id'];}); + $type = array_filter($project_type, function($v)use($row){return $v['ref_id'] == $row['id'];}); $row['type'] = ''; foreach($type as $t){ - $t['badge'] = $t['type']; $row['type'] .= \SYSTEM\PAGE\replace::replaceFile((new PPAGE('default_page/tpl/content_badge.tpl'))->SERVERPATH(),$t); } diff --git a/wecker_manufaktur/page/default_page/sql/SELECT_PERSON_BADGES.php b/wecker_manufaktur/page/default_page/sql/SELECT_BADGES.php similarity index 83% rename from wecker_manufaktur/page/default_page/sql/SELECT_PERSON_BADGES.php rename to wecker_manufaktur/page/default_page/sql/SELECT_BADGES.php index a44fcf7..1ce289a 100644 --- a/wecker_manufaktur/page/default_page/sql/SELECT_PERSON_BADGES.php +++ b/wecker_manufaktur/page/default_page/sql/SELECT_BADGES.php @@ -14,7 +14,7 @@ namespace SQL; /** * QQ to get System Api Tree by group */ -class SELECT_PERSON_BADGES extends \SYSTEM\DB\QQ { +class SELECT_BADGES extends \SYSTEM\DB\QP { /** * Get Classname of the QQ * @@ -28,6 +28,6 @@ class SELECT_PERSON_BADGES extends \SYSTEM\DB\QQ { * @return string Returns MYSQL Query String */ public static function mysql(){return - 'SELECT * FROM `person_badges` WHERE `visible` = 1 ORDER BY `order`'; + 'SELECT * FROM `badges` WHERE `type` = ? AND `visible` = 1 ORDER BY `order`'; } } \ No newline at end of file diff --git a/wecker_manufaktur/page/default_page/sql/SELECT_PROJECT_FOCUS.php b/wecker_manufaktur/page/default_page/sql/SELECT_PROJECT_FOCUS.php deleted file mode 100644 index dac0d58..0000000 --- a/wecker_manufaktur/page/default_page/sql/SELECT_PROJECT_FOCUS.php +++ /dev/null @@ -1,33 +0,0 @@ -SERVERPATH(), (new \PSQL('/mysql/system_text.sql'))->SERVERPATH(), (new \PSQL('/mysql/persons.schema.sql'))->SERVERPATH(), - (new \PSQL('/mysql/person_badges.schema.sql'))->SERVERPATH(), + (new \PSQL('/mysql/badges.schema.sql'))->SERVERPATH(), (new \PSQL('/mysql/projects.schema.sql'))->SERVERPATH(), - (new \PSQL('/mysql/projects_focus.schema.sql'))->SERVERPATH(), - (new \PSQL('/mysql/projects_type.schema.sql'))->SERVERPATH(), (new \PSQL('/mysql/person_projects.schema.sql'))->SERVERPATH()); } } \ No newline at end of file diff --git a/wecker_manufaktur/sql/mysql/badges.schema.sql b/wecker_manufaktur/sql/mysql/badges.schema.sql new file mode 100644 index 0000000..9c2ddcc --- /dev/null +++ b/wecker_manufaktur/sql/mysql/badges.schema.sql @@ -0,0 +1,14 @@ +CREATE TABLE `badges` ( + `type` INT(10) UNSIGNED NOT NULL, + `ref_id` INT(10) UNSIGNED NOT NULL, + `badge` VARCHAR(50) NOT NULL COLLATE 'utf8mb4_unicode_ci', + `color` VARCHAR(50) NOT NULL DEFAULT 'badge-primary' COLLATE 'utf8mb4_unicode_ci', + `order` INT(10) UNSIGNED NOT NULL, + `visible` INT(10) UNSIGNED NULL DEFAULT 1, + PRIMARY KEY (`type`, `ref_id`, `badge`), + INDEX `type` (`type`), + INDEX `ref_id` (`ref_id`) +) +COLLATE='utf8mb4_unicode_ci' +ENGINE=InnoDB +; \ No newline at end of file diff --git a/wecker_manufaktur/sql/mysql/person_badges.schema.sql b/wecker_manufaktur/sql/mysql/person_badges.schema.sql deleted file mode 100644 index 218168e..0000000 --- a/wecker_manufaktur/sql/mysql/person_badges.schema.sql +++ /dev/null @@ -1,13 +0,0 @@ -CREATE TABLE `person_badges` ( - `person` INT(10) UNSIGNED NOT NULL, - `badge` VARCHAR(20) NOT NULL COLLATE 'utf8mb4_unicode_ci', - `color` VARCHAR(20) NOT NULL DEFAULT 'badge-primary' COLLATE 'utf8mb4_unicode_ci', - `order` INT(10) UNSIGNED NOT NULL, - `visible` INT(10) UNSIGNED NULL DEFAULT 1, - PRIMARY KEY (`person`, `badge`), - INDEX `person` (`person`), - CONSTRAINT `FK__persons` FOREIGN KEY (`person`) REFERENCES `persons` (`id`) ON UPDATE CASCADE ON DELETE CASCADE -) -COLLATE='utf8mb4_unicode_ci' -ENGINE=InnoDB -; \ No newline at end of file diff --git a/wecker_manufaktur/sql/mysql/project_focus.schema.sql b/wecker_manufaktur/sql/mysql/project_focus.schema.sql deleted file mode 100644 index 04dd1bd..0000000 --- a/wecker_manufaktur/sql/mysql/project_focus.schema.sql +++ /dev/null @@ -1,13 +0,0 @@ -CREATE TABLE `project_focus` ( - `project` INT(10) UNSIGNED NOT NULL, - `focus` VARCHAR(20) NOT NULL COLLATE 'utf8mb4_unicode_ci', - `color` VARCHAR(20) NOT NULL DEFAULT 'badge-primary' COLLATE 'utf8mb4_unicode_ci', - `order` INT(10) UNSIGNED NOT NULL, - `visible` INT(10) UNSIGNED NOT NULL DEFAULT 1, - PRIMARY KEY (`project`, `focus`), - INDEX `project` (`project`), - CONSTRAINT `FK_project_focus_projects` FOREIGN KEY (`project`) REFERENCES `projects` (`id`) ON UPDATE CASCADE ON DELETE CASCADE -) -COLLATE='utf8mb4_unicode_ci' -ENGINE=InnoDB -; \ No newline at end of file diff --git a/wecker_manufaktur/sql/mysql/project_type.schema.sql b/wecker_manufaktur/sql/mysql/project_type.schema.sql deleted file mode 100644 index bc45947..0000000 --- a/wecker_manufaktur/sql/mysql/project_type.schema.sql +++ /dev/null @@ -1,13 +0,0 @@ -CREATE TABLE `project_type` ( - `project` INT(10) UNSIGNED NOT NULL, - `type` VARCHAR(20) NOT NULL COLLATE 'utf8mb4_unicode_ci', - `color` VARCHAR(20) NOT NULL DEFAULT 'badge-primary' COLLATE 'utf8mb4_unicode_ci', - `order` INT(10) UNSIGNED NOT NULL, - `visible` INT(10) UNSIGNED NOT NULL DEFAULT 1, - PRIMARY KEY (`project`, `type`), - INDEX `project` (`project`), - CONSTRAINT `FK_project_type_projects` FOREIGN KEY (`project`) REFERENCES `projects` (`id`) ON UPDATE CASCADE ON DELETE CASCADE -) -COLLATE='utf8mb4_unicode_ci' -ENGINE=InnoDB -; \ No newline at end of file