GestionErreurContenus::getVerifChamp()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 12
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 12
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 8
nc 3
nop 8

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php
2
	namespace core\admin\contenus;
3
	
4
	
5
	use core\App;
6
	use core\HTML\flashmessage\FlashMessage;
7
	
8
	trait GestionErreurContenus {
9
		private $erreur;
10
		private $err_balise_title;
11
		private $err_url;
12
		private $err_meta_description;
13
		private $err_titre_page;
14
		
15
		//-------------------------- GETTER ----------------------------------------------------------------------------//
16
		/**
17
		 * @param string $nom_table
18
		 * @param string $nom_id_table
19
		 * @param string $champ
20
		 * @param $value
21
		 * @param integer $limit_char
22
		 * @param string $err_char
23
		 * @param string $err_egalite
24
		 * @param null $value_id_table
25
		 * @return string
26
		 * fonction qui permet de vérifier qu'il n'y ait pas d'erreur dans le champ spécifié ni de doublons
27
		 */
28
		private function getVerifChamp($nom_table, $nom_id_table, $champ, $value, $limit_char, $err_char, $err_egalite, $value_id_table = null) {
29
			$dbc = App::getDb();
30
			
31
			if (strlen(utf8_decode($value)) > $limit_char) {
32
				$this->erreur = true;
33
				return "<li>$err_char</li>";
34
			}
35
			else if ($dbc->rechercherEgalite($nom_table, $champ, $value, $nom_id_table, $value_id_table) == true) {
36
				$this->erreur = true;
37
				return "<li>$err_egalite</li>";
38
			}
39
		}
40
		
41
		/**
42
		 * @param $balise_title
43
		 * @param null $id_page
44
		 * @return string
45
		 */
46
		private function getTestBaliseTitle($balise_title, $id_page = null) {
47
			$err_balise_title_char = "Le titre pour le navigateur ne doit pas dépasser 70 caractères";
48
			$err_balise_title_egalite = "Ce titre est déjà présent en base de données, merci d'en choisir un autre pour optimiser le référencement de votre site";
49
			$this->err_balise_title = $this->getVerifChamp("page", "ID_page", "balise_title", $balise_title, 70, $err_balise_title_char, $err_balise_title_egalite, $id_page);
50
		}
51
		
52
		/**
53
		 * @param $url
54
		 * @param null $id_page
55
		 * @return string
56
		 */
57
		private function getTestUrl($url, $id_page = null) {
58
			$err_url_char = "L'url ne doit pas dépasser 92 caractères";
59
			$err_url_egalite = "Cette url est déjà présent en base de données, merci d'en choisir une autre pour ne pas avoir de conflit entre vos pages";
60
			$this->err_url = $this->getVerifChamp("page", "ID_page", "url", $url, 92, $err_url_char, $err_url_egalite, $id_page);
61
		}
62
		
63
		/**
64
		 * @param $meta_description
65
		 * @param null $id_page
66
		 * @return string
67
		 */
68
		private function getTestMetaDescription($meta_description, $id_page = null) {
69
			$err_meta_description_char = "La description de cette page ne doit pas dépasser 158 caractères";
70
			$err_meta_description_egalite = "Cette description est déjà présent en base de données, merci d'en choisir une autre pour optimiser le référencement de votre site";
71
			$this->err_meta_description = $this->getVerifChamp("page", "ID_page", "meta_description", $meta_description, 158, $err_meta_description_char, $err_meta_description_egalite, $id_page);
72
		}
73
		
74
		/**
75
		 * @param $titre_page
76
		 * @param null $id_page
77
		 * @return string
78
		 */
79
		private function getTestTitrePage($titre_page, $id_page = null) {
80
			$err_titre_page_char = "Le titre de cette page ne doit pas dépasser 50 caractères";
81
			$err_titre_page_egalite = "Cette titre de page est déjà présent en base de données, merci d'en choisir un autre pour ne pas avoir de conflit dans votre navigation";
82
			$this->err_titre_page = $this->getVerifChamp("page", "ID_page", "titre", $titre_page, 50, $err_titre_page_char, $err_titre_page_egalite, $id_page);
83
		}
84
		
85
		/**
86
		 * @param $balise_title
87
		 * @param $url
88
		 * @param $meta_description
89
		 * @param $titre_page
90
		 * @param null $id_page
91
		 */
92
		private function getTestParam($balise_title, $url, $meta_description, $titre_page, $id_page = null) {
93
			$this->getTestBaliseTitle($balise_title, $id_page);
94
			$this->getTestUrl($url, $id_page);
95
			$this->getTestMetaDescription($meta_description, $id_page);
96
			$this->getTestTitrePage($titre_page, $id_page);
97
		}
98
		//-------------------------- END GETTER ----------------------------------------------------------------------------//
99
		
100
		
101
		//-------------------------- SETTER ----------------------------------------------------------------------------//
102
		private function setErreurContenus() {
103
			$_SESSION['balise_title'] = $this->err_balise_title;
104
			$_SESSION['url'] = $this->err_url;
105
			$_SESSION['meta_description'] = $this->err_meta_description;
106
			$_SESSION['titre_page'] = $this->err_titre_page;
107
			$_SESSION['err_modification_contenu'] = true;
108
			
109
			$message = "<ul>".$this->err_balise_title.$this->err_url.$this->err_meta_description.$this->err_titre_page."</ul>";
110
			FlashMessage::setFlash($message);
111
		}
112
		//-------------------------- END SETTER ----------------------------------------------------------------------------//
113
	}