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

	}

}







?>