blob: 379c41afee80cf6f960fae86f4ea1b42fdd25b2e (
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 Modelart
{
public function __construct() {
parent::__construct();
}
public function analyseall()
{
$artlist = $this->getlister();
$artlist2 = [];
foreach ($artlist as $art) {
$art->setlinkfrom($this->analyselinkfrom($art));
$artlist2[] = $art;
}
foreach ($artlist2 as $art) {
$art->setlinkto($this->analyselinkto($art->id(), $artlist));
$this->update($art);
}
}
public function analyse(Art2 $art)
{
$art->setlinkfrom($this->analyselinkfrom($art));
$artlist = $this->getlister();
$art->setlinkto($this->analyselinkto($art->id(), $artlist));
return $art;
}
public function analyselinkto($id, $artlist)
{
//analyse les liens vers cet article en fouillant tout les linkfrom de la bdd, génere un tableau à stocker dans l'article
$linkto = [];
foreach ($artlist as $link) {
if (in_array($id, $link->linkfrom('array')) && $id != $link->id()) {
$linkto[] = $link->id();
}
}
return $linkto;
}
public function analyselinkfrom(Art2 $art)
{
$linkfrom = [];
foreach (self::TEXT_ELEMENTS as $element) {
preg_match_all('#\]\((\?id=|=)(\w+)\)#', $art->$element(), $out);
$linkfrom = array_merge($linkfrom, $out[2]);
}
return array_unique($linkfrom);
}
}
?>
|