aboutsummaryrefslogtreecommitdiff
path: root/app/class/modelanalyse.php
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);

	}

}







?>