blob: 66a443e7f40a2815a6341b7ef0dd8afbe52e6d1b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
<?php
class Modelanalyse extends Modelpage
{
public function __construct() {
parent::__construct();
}
public function analyseall()
{
$pagelist = $this->getlister();
$pagelist2 = [];
foreach ($pagelist as $page) {
$page->setlinkfrom($this->analyselinkfrom($page));
$pagelist2[] = $page;
}
foreach ($pagelist2 as $page) {
$page->setlinkto($this->analyselinkto($page->id(), $pagelist));
$this->update($page);
}
}
public function analyse(Page $page)
{
$page->setlinkfrom($this->analyselinkfrom($page));
$pagelist = $this->getlister();
$page->setlinkto($this->analyselinkto($page->id(), $pagelist));
return $page;
}
public function analyselinkto($id, $pagelist)
{
//analyse les liens vers cet pageicle en fouillant tout les linkfrom de la bdd, génere un tableau à stocker dans l'pageicle
$linkto = [];
foreach ($pagelist as $link) {
if (in_array($id, $link->linkfrom('array')) && $id != $link->id()) {
$linkto[] = $link->id();
}
}
return $linkto;
}
public function analyselinkfrom(Page $page)
{
$linkfrom = [];
foreach (self::TEXT_ELEMENTS as $element) {
preg_match_all('#\]\((\?id=|=)(\w+)\)#', $page->$element(), $out);
$linkfrom = array_merge($linkfrom, $out[2]);
}
return array_unique($linkfrom);
}
}
?>
|