Proyectos de Subversion Moodle

Rev

Rev 288 | Rev 290 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 288 Rev 289
Línea 19... Línea 19...
19
        $this->user = core_user::get_user($this->userID);
19
        $this->user = core_user::get_user($this->userID);
20
        $this->title = get_string($title);
20
        $this->title = get_string($title);
21
        $this->blockManager = $PAGE->blocks;
21
        $this->blockManager = $PAGE->blocks;
Línea 22... Línea 22...
22
 
22
 
23
        // Definimos varias regiones
23
        // Definimos varias regiones
24
        $this->regions = ['side-post'];
24
        $this->regions = ['side-post', 'side-pre', 'bellow-content', 'right'];
25
        $this->blockNames = ['cesa_course_rating', 'comments', 'messageteacher', 'mynotes'];
25
        $this->blockNames = ['cesa_course_rating', 'comments', 'messageteacher', 'mynotes'];
Línea 26... Línea 26...
26
        $this->blockExists = true;
26
        $this->blockExists = true;
27
 
27
 
Línea 58... Línea 58...
58
    public function validateIfExistBlocks($region)
58
    public function validateIfExistBlocks($region)
59
    {
59
    {
60
        // Obtener los bloques de la región actual.
60
        // Obtener los bloques de la región actual.
61
        $blocks = $this->blockManager->get_blocks_for_region($region);
61
        $blocks = $this->blockManager->get_blocks_for_region($region);
Línea 62... Línea 62...
62
 
62
 
63
        // Validar si todos los bloques especificados existen en esta región.
63
        // Crear un array para llevar el registro de los bloques encontrados.
-
 
64
        $foundBlocks = [];
64
        foreach ($this->blockNames as $blockName) {
65
 
65
            $blockFound = false;
66
        // Validar si todos los bloques especificados existen en esta región y que no se repitan.
66
            foreach ($blocks as $block) {
67
        foreach ($blocks as $block) {
67
                if (get_class($block) == 'block_' . $blockName) {
68
            $blockClass = get_class($block);
68
                    $blockFound = true;
69
            if (in_array($blockClass, $foundBlocks)) {
69
                    break;
70
                // Si el bloque ya fue encontrado antes, devolvemos false.
70
                }
71
                return false;
-
 
72
            }
-
 
73
            $foundBlocks[] = $blockClass;
-
 
74
        }
-
 
75
 
-
 
76
        // Verificar si todos los bloques especificados están en la región.
71
            }
77
        foreach ($this->blockNames as $blockName) {
72
            // Si algún bloque no se encuentra, devolvemos false.
78
            $expectedBlockClass = 'block_' . $blockName;
-
 
79
            if (!in_array($expectedBlockClass, $foundBlocks)) {
73
            if (!$blockFound) {
80
                // Si algún bloque esperado no se encuentra, devolvemos false.
74
                return false;
81
                return false;
75
            }
82
            }
Línea 76... Línea 83...
76
        }
83
        }
77
 
84
 
78
        // Si todos los bloques existen, devolvemos true.
85
        // Si todos los bloques existen y son únicos, devolvemos true.
Línea 79... Línea 86...
79
        return true;
86
        return true;