forked from ZwiiCMS-Team/ZwiiCampus
Interface de gestion des abonnements
This commit is contained in:
parent
0eede10300
commit
0b14519567
@ -143,7 +143,6 @@ class JsonDb extends \Prowebcraft\Dot
|
|||||||
public function save()
|
public function save()
|
||||||
{
|
{
|
||||||
$v = json_encode($this->data, JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT );
|
$v = json_encode($this->data, JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT );
|
||||||
// $v = json_encode($this->data, JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT);
|
|
||||||
$l = strlen($v);
|
$l = strlen($v);
|
||||||
$t = 0;
|
$t = 0;
|
||||||
while ($t < 5) {
|
while ($t < 5) {
|
||||||
|
174
core/core.php
174
core/core.php
@ -447,7 +447,7 @@ class common
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Mise à jour des données core
|
// Mise à jour des données core
|
||||||
include('core/include/update.inc.php');
|
include ('core/include/update.inc.php');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -598,11 +598,49 @@ class common
|
|||||||
return file_put_contents(self::DATA_DIR . $path . '/content/' . $page . '.html', $value);
|
return file_put_contents(self::DATA_DIR . $path . '/content/' . $page . '.html', $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getEnrolment($courseId, $keys =[]) {
|
/**
|
||||||
$data = json_decode(file_get_contents(self::DATA_DIR . $courseId .'.json'), true);
|
* Lire les données des historiques
|
||||||
return $data[$keys[0]];
|
* @param string courseId
|
||||||
|
* @param array $keys Clé(s) des données
|
||||||
|
* @return array tableau demandé
|
||||||
|
*/
|
||||||
|
public function getEnrolment($courseId, $keys = [])
|
||||||
|
{
|
||||||
|
$data = json_decode(file_get_contents(self::DATA_DIR . $courseId . '/' . 'enrolment.json'), true);
|
||||||
|
|
||||||
|
if ($keys === []) {
|
||||||
|
return $data['enrolment'][$courseId];
|
||||||
|
} else {
|
||||||
|
// Récupérer la première clé
|
||||||
|
$result = $data['enrolment'][$courseId][$keys[0]];
|
||||||
|
|
||||||
|
// Parcourir les clés restantes pour naviguer dans la structure
|
||||||
|
for ($i = 1; $i < count($keys); $i++) {
|
||||||
|
// Vérifier si la clé existe
|
||||||
|
if (isset($result[$keys[$i]])) {
|
||||||
|
// Déplacer le pointeur
|
||||||
|
$result = $result[$keys[$i]];
|
||||||
|
} else {
|
||||||
|
// Si la clé n'existe pas, retourner null
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ecrire les données de statistiques
|
||||||
|
* @param string pageId
|
||||||
|
* @param string contenu de la page
|
||||||
|
* @return int nombre d'octets écrits ou erreur
|
||||||
|
*/
|
||||||
|
public function setEnrolement($courseId, $value)
|
||||||
|
{
|
||||||
|
return file_put_contents(self::DATA_DIR . $courseId . '/enrolment.json', json_encode($value, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Effacer les données de la page
|
* Effacer les données de la page
|
||||||
@ -638,7 +676,7 @@ class common
|
|||||||
{
|
{
|
||||||
|
|
||||||
// Tableau avec les données vierges
|
// Tableau avec les données vierges
|
||||||
require_once('core/module/install/ressource/defaultdata.php');
|
require_once ('core/module/install/ressource/defaultdata.php');
|
||||||
|
|
||||||
// L'arborescence
|
// L'arborescence
|
||||||
if (!file_exists(self::DATA_DIR . $path)) {
|
if (!file_exists(self::DATA_DIR . $path)) {
|
||||||
@ -673,7 +711,7 @@ class common
|
|||||||
public function saveConfig($module)
|
public function saveConfig($module)
|
||||||
{
|
{
|
||||||
// Tableau avec les données vierges
|
// Tableau avec les données vierges
|
||||||
require_once('core/module/install/ressource/defaultdata.php');
|
require_once ('core/module/install/ressource/defaultdata.php');
|
||||||
// Installation des données des autres modules cad theme profil font config, admin et core
|
// Installation des données des autres modules cad theme profil font config, admin et core
|
||||||
$this->setData([$module, init::$defaultData[$module]]);
|
$this->setData([$module, init::$defaultData[$module]]);
|
||||||
common::$coreNotices[] = $module;
|
common::$coreNotices[] = $module;
|
||||||
@ -709,65 +747,65 @@ class common
|
|||||||
* Fonction pour construire le tableau des pages
|
* Fonction pour construire le tableau des pages
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private function buildHierarchy()
|
private function buildHierarchy()
|
||||||
{
|
{
|
||||||
|
|
||||||
$pages = helper::arrayColumn($this->getData(['page']), 'position', 'SORT_ASC');
|
$pages = helper::arrayColumn($this->getData(['page']), 'position', 'SORT_ASC');
|
||||||
// Parents
|
// Parents
|
||||||
foreach ($pages as $pageId => $pagePosition) {
|
foreach ($pages as $pageId => $pagePosition) {
|
||||||
if (
|
if (
|
||||||
// Page parent
|
// Page parent
|
||||||
$this->getData(['page', $pageId, 'parentPageId']) === ""
|
$this->getData(['page', $pageId, 'parentPageId']) === ""
|
||||||
// Ignore les pages dont l'utilisateur n'a pas accès
|
// Ignore les pages dont l'utilisateur n'a pas accès
|
||||||
and ($this->getData(['page', $pageId, 'group']) === self::GROUP_VISITOR
|
and ($this->getData(['page', $pageId, 'group']) === self::GROUP_VISITOR
|
||||||
or ($this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')
|
or ($this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')
|
||||||
//and $this->getUser('group') >= $this->getData(['page', $pageId, 'group'])
|
//and $this->getUser('group') >= $this->getData(['page', $pageId, 'group'])
|
||||||
// Modification qui tient compte du profil de la page
|
// Modification qui tient compte du profil de la page
|
||||||
and ($this->getUser('group') * self::MAX_PROFILS + $this->getUser('profil')) >= ($this->getData(['page', $pageId, 'group']) * self::MAX_PROFILS + $this->getData(['page', $pageId, 'profil']))
|
and ($this->getUser('group') * self::MAX_PROFILS + $this->getUser('profil')) >= ($this->getData(['page', $pageId, 'group']) * self::MAX_PROFILS + $this->getData(['page', $pageId, 'profil']))
|
||||||
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
if ($pagePosition !== 0) {
|
if ($pagePosition !== 0) {
|
||||||
$this->hierarchy['visible'][$pageId] = [];
|
$this->hierarchy['visible'][$pageId] = [];
|
||||||
}
|
}
|
||||||
if ($this->getData(['page', $pageId, 'block']) === 'bar') {
|
if ($this->getData(['page', $pageId, 'block']) === 'bar') {
|
||||||
$this->hierarchy['bar'][$pageId] = [];
|
$this->hierarchy['bar'][$pageId] = [];
|
||||||
}
|
}
|
||||||
$this->hierarchy['all'][$pageId] = [];
|
$this->hierarchy['all'][$pageId] = [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Enfants
|
// Enfants
|
||||||
foreach ($pages as $pageId => $pagePosition) {
|
foreach ($pages as $pageId => $pagePosition) {
|
||||||
|
|
||||||
if (
|
if (
|
||||||
// Page parent
|
// Page parent
|
||||||
$parentId = $this->getData(['page', $pageId, 'parentPageId'])
|
$parentId = $this->getData(['page', $pageId, 'parentPageId'])
|
||||||
// Ignore les pages dont l'utilisateur n'a pas accès
|
// Ignore les pages dont l'utilisateur n'a pas accès
|
||||||
and (
|
and (
|
||||||
(
|
(
|
||||||
$this->getData(['page', $pageId, 'group']) === self::GROUP_VISITOR
|
$this->getData(['page', $pageId, 'group']) === self::GROUP_VISITOR
|
||||||
and
|
and
|
||||||
$this->getData(['page', $parentId, 'group']) === self::GROUP_VISITOR
|
$this->getData(['page', $parentId, 'group']) === self::GROUP_VISITOR
|
||||||
)
|
)
|
||||||
or (
|
or (
|
||||||
$this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')
|
$this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')
|
||||||
and
|
and
|
||||||
$this->getUser('group') * self::MAX_PROFILS + $this->getUser('profil')) >= ($this->getData(['page', $pageId, 'group']) * self::MAX_PROFILS + $this->getData(['page', $pageId, 'profil'])
|
$this->getUser('group') * self::MAX_PROFILS + $this->getUser('profil')) >= ($this->getData(['page', $pageId, 'group']) * self::MAX_PROFILS + $this->getData(['page', $pageId, 'profil'])
|
||||||
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
if ($pagePosition !== 0) {
|
if ($pagePosition !== 0) {
|
||||||
$this->hierarchy['visible'][$parentId][] = $pageId;
|
$this->hierarchy['visible'][$parentId][] = $pageId;
|
||||||
}
|
}
|
||||||
if ($this->getData(['page', $pageId, 'block']) === 'bar') {
|
if ($this->getData(['page', $pageId, 'block']) === 'bar') {
|
||||||
$this->hierarchy['bar'][$pageId] = [];
|
$this->hierarchy['bar'][$pageId] = [];
|
||||||
}
|
}
|
||||||
$this->hierarchy['all'][$parentId][] = $pageId;
|
$this->hierarchy['all'][$parentId][] = $pageId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Génère un fichier json avec la liste des pages
|
* Génère un fichier json avec la liste des pages
|
||||||
@ -1439,8 +1477,8 @@ class common
|
|||||||
foreach ($courses as $courseId => $value) {
|
foreach ($courses as $courseId => $value) {
|
||||||
// Affiche les espaces gérés par l'éditeur, les espaces où il participe et les espaces anonymes
|
// Affiche les espaces gérés par l'éditeur, les espaces où il participe et les espaces anonymes
|
||||||
if (
|
if (
|
||||||
// le membre est inscrit
|
// le membre est inscrit
|
||||||
( $this->getData(['enrolment', $courseId]) && array_key_exists($this->getUser('id'), $this->getData(['enrolment', $courseId])) )
|
($this->getData(['enrolment', $courseId]) && array_key_exists($this->getUser('id'), $this->getData(['enrolment', $courseId])))
|
||||||
// Il est l'auteur
|
// Il est l'auteur
|
||||||
|| $this->getUser('id') === $this->getData(['course', $courseId, 'author'])
|
|| $this->getUser('id') === $this->getData(['course', $courseId, 'author'])
|
||||||
// Le cours est ouvert
|
// Le cours est ouvert
|
||||||
@ -1454,7 +1492,7 @@ class common
|
|||||||
foreach ($courses as $courseId => $value) {
|
foreach ($courses as $courseId => $value) {
|
||||||
// Affiche les espaces du participant et les espaces anonymes
|
// Affiche les espaces du participant et les espaces anonymes
|
||||||
if (
|
if (
|
||||||
($this->getData(['enrolment', $courseId]) && array_key_exists($this->getUser('id'), $this->getData(['enrolment', $courseId])) )
|
($this->getData(['enrolment', $courseId]) && array_key_exists($this->getUser('id'), $this->getData(['enrolment', $courseId])))
|
||||||
|| $this->getData(['course', $courseId, 'enrolment']) === self::COURSE_ENROLMENT_GUEST
|
|| $this->getData(['course', $courseId, 'enrolment']) === self::COURSE_ENROLMENT_GUEST
|
||||||
) {
|
) {
|
||||||
$filter[$courseId] = $courses[$courseId];
|
$filter[$courseId] = $courses[$courseId];
|
||||||
|
@ -43,6 +43,9 @@ if (
|
|||||||
unlink(self::DATA_DIR . 'enrolment.json');
|
unlink(self::DATA_DIR . 'enrolment.json');
|
||||||
$this->setData(['core', 'dataVersion', 1800]);
|
$this->setData(['core', 'dataVersion', 1800]);
|
||||||
}
|
}
|
||||||
$t = $this->getEnrolment(['65d749713a217']);
|
/*
|
||||||
|
$t = $this->getEnrolment('6571b5913e87e', ['pablorodriguez', 'history', 'les-titres-ou-headers']);
|
||||||
|
echo"<pre>";
|
||||||
var_dump($t);
|
var_dump($t);
|
||||||
dei();
|
die();
|
||||||
|
*/
|
Loading…
Reference in New Issue
Block a user