Passed
Push — master ( a65307...4c85c7 )
by Anthony
03:31
created

GestionErreurContenus   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 94
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 0
Metric Value
wmc 8
lcom 1
cbo 0
dl 0
loc 94
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A getVerifChamp() 0 12 3
A getTestBaliseTitle() 0 5 1
A getTestUrl() 0 5 1
A getTestMetaDescription() 0 5 1
A getTestTitrePage() 0 5 1
A setErreurContenus() 0 11 1
1
<?php
2
	namespace core\admin\contenus;
3
	
4
	
5
	trait GestionErreurContenus {
6
		//-------------------------- GETTER ----------------------------------------------------------------------------//
7
		/**
8
		 * @param string $nom_table
9
		 * @param string $nom_id_table
10
		 * @param string $champ
11
		 * @param $value
12
		 * @param integer $limit_char
13
		 * @param string $err_char
14
		 * @param string $err_egalite
15
		 * @param null $value_id_table
16
		 * @return string
17
		 * fonction qui permet de vérifier qu'il n'y ait pas d'erreur dans le champ spécifié ni de doublons
18
		 */
19
		private function getVerifChamp($nom_table, $nom_id_table, $champ, $value, $limit_char, $err_char, $err_egalite, $value_id_table = null) {
20
			$dbc = App::getDb();
21
			
22
			if (strlen(utf8_decode($value)) > $limit_char) {
23
				$this->erreur = true;
0 ignored issues
show
Bug introduced by
The property erreur does not exist. Did you maybe forget to declare it?

In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:

class MyClass { }

$x = new MyClass();
$x->foo = true;

Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:

class MyClass {
    public $foo;
}

$x = new MyClass();
$x->foo = true;
Loading history...
24
				return "<li>$err_char</li>";
25
			}
26
			else if ($dbc->rechercherEgalite($nom_table, $champ, $value, $nom_id_table, $value_id_table) == true) {
27
				$this->erreur = true;
28
				return "<li>$err_egalite</li>";
29
			}
30
		}
31
		
32
		/**
33
		 * @param $balise_title
34
		 * @param null $id_page
35
		 * @return string
36
		 */
37
		private function getTestBaliseTitle($balise_title, $id_page = null) {
38
			$err_balise_title_char = "Le titre pour le navigateur ne doit pas dépasser 70 caractères";
39
			$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";
40
			return $this->getVerifChamp("page", "ID_page", "balise_title", $balise_title, 70, $err_balise_title_char, $err_balise_title_egalite, $id_page);
41
		}
42
		
43
		/**
44
		 * @param $url
45
		 * @param null $id_page
46
		 * @return string
47
		 */
48
		private function getTestUrl($url, $id_page = null) {
49
			$err_url_char = "L'url ne doit pas dépasser 92 caractères";
50
			$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";
51
			return $this->getVerifChamp("page", "ID_page", "url", $url, 92, $err_url_char, $err_url_egalite, $id_page);
52
		}
53
		
54
		/**
55
		 * @param $meta_description
56
		 * @param null $id_page
57
		 * @return string
58
		 */
59
		private function getTestMetaDescription($meta_description, $id_page = null) {
60
			$err_meta_description_char = "La description de cette page ne doit pas dépasser 158 caractères";
61
			$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";
62
			return $this->getVerifChamp("page", "ID_page", "meta_description", $meta_description, 158, $err_meta_description_char, $err_meta_description_egalite, $id_page);
63
		}
64
		
65
		/**
66
		 * @param $titre_page
67
		 * @param null $id_page
68
		 * @return string
69
		 */
70
		private function getTestTitrePage($titre_page, $id_page = null) {
71
			$err_titre_page_char = "Le titre de cette page ne doit pas dépasser 50 caractères";
72
			$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";
73
			return $this->getVerifChamp("page", "ID_page", "titre", $titre_page, 50, $err_titre_page_char, $err_titre_page_egalite, $id_page);
74
		}
75
		//-------------------------- END GETTER ----------------------------------------------------------------------------//
76
		
77
		
78
		//-------------------------- SETTER ----------------------------------------------------------------------------//
79
		/**
80
		 * @param string $url
81
		 * @param string $err_balise_title
82
		 * @param string $err_url
83
		 * @param string $err_meta_description
84
		 * @param string $err_titre_page
85
		 */
86
		private function setErreurContenus($balise_title, $url, $meta_description, $titre_page, $parent, $err_balise_title, $err_url, $err_meta_description, $err_titre_page) {
87
			$_SESSION['balise_title'] = $balise_title;
88
			$_SESSION['url'] = $url;
89
			$_SESSION['meta_description'] = $meta_description;
90
			$_SESSION['titre_page'] = $titre_page;
91
			$_SESSION['parent'] = $parent;
92
			$_SESSION['err_modification_contenu'] = true;
93
			
94
			$message = "<ul>".$err_balise_title.$err_url.$err_meta_description.$err_titre_page."</ul>";
95
			FlashMessage::setFlash($message);
96
		}
97
		//-------------------------- END SETTER ----------------------------------------------------------------------------//
98
	}