<?php
/*************************************************************************************************/
/********************************* FONCTIONS POUR L'AFFICHAGE **********************************/
/*************************************************************************************************/
if (!function_exists('mb_str_pad')) {
function mb_str_pad($input, $pad_length, $pad_string = ' ', $pad_type = STR_PAD_RIGHT, $encoding = 'UTF-8')
{
$input_length = mb_strlen($input, $encoding);
$pad_string_length = mb_strlen($pad_string, $encoding);
if ($pad_length <= 0 || ($pad_length - $input_length) <= 0) {
return $input;
}
$num_pad_chars = $pad_length - $input_length;
switch ($pad_type) {
case STR_PAD_RIGHT:
$left_pad = 0;
$right_pad = $num_pad_chars;
break;
case STR_PAD_LEFT:
$left_pad = $num_pad_chars;
$right_pad = 0;
break;
case STR_PAD_BOTH:
$left_pad = floor($num_pad_chars / 2);
$right_pad = $num_pad_chars - $left_pad;
break;
}
$result = '';
for ($i = 0; $i < $left_pad; ++$i) {
$result .= mb_substr($pad_string, $i % $pad_string_length, 1, $encoding);
}
$result .= $input;
for ($i = 0; $i < $right_pad; ++$i) {
$result .= mb_substr($pad_string, $i % $pad_string_length, 1, $encoding);
}
return $result;
}
}
function printLine($row) {
echo '|' . mb_str_pad($row->id, 5) . '|' .mb_str_pad(mb_substr($row->titre, 0,51), 51) . '|' .mb_str_pad($row->annee, 5) . '|' .mb_str_pad($row->coloration_id, 14) . '|'. "\n";
echo "+" . str_repeat('-', 78)."+\n";
}
function printHeader($meta) {
$str = $meta->total . ' Éléments au total. Affichage de la page ' . $meta->current_page . ' sur ' . $meta->last_page;
echo $str . "\n+" . str_repeat('-', 78)."+\n";
echo '|' . mb_str_pad('ID', 5) . '|' .mb_str_pad('Titre', 51) . '|' .mb_str_pad('Année', 5) . '|' .mb_str_pad('Coloration', 14) . '|'. "\n";
echo "+" . str_repeat('-', 78)."+\n";
}
/*************************************************************************************************/
/************************************** UTILISATION API ****************************************/
/*************************************************************************************************/
require_once('DIAZ_API.php');
require_once('config.inc.php'); // Définition des constantes DIAZ_LOGIN et DIAZ_PASS
$diaz = new DIAZ_API('https://structure.diaz3.diazinteregio.org/api/v0/', 'structure.diaz3.diazinteregio.org');
$diaz->login(DIAZ_LOGIN, DIAZ_PASS);
/*************************************************************************************************/
echo "/* Listing des format d'affichage ****************************************************************/\n";
$retData = $diaz->getListeFichier('lst_format/documentaire');
echo "+" . str_repeat('-', 57)."+\n";
echo '|' . mb_str_pad(mb_substr('Liste des formats d\'affichage', 0,57), 57) . '|'. "\n";
echo "+" . str_repeat('-', 57)."+\n";
echo '|' . mb_str_pad('id', 5) . '|' .mb_str_pad(mb_substr('label', 0,51), 51) . '|'. "\n";
echo "+" . str_repeat('-', 57)."+\n";
foreach($retData->data as $row) {
echo '|' . mb_str_pad($row->id, 5) . '|' .mb_str_pad(mb_substr($row->label, 0,51), 51) . '|'. "\n";
}
echo "+" . str_repeat('-', 57)."+\n";
/*************************************************************************************************/
echo "\n\n\n\n";
/*************************************************************************************************/
echo "/* Listing des fiches documentaire ***************************************************************/\n";
$params = array(
'df' => 20, // Format d'affichage : permet de choisir les champs à retourner. Le plus simple est de le créer avec l'IHM DIAZ.
'page' => 1,
'per_page' => 10
);
$retData = $diaz->getListeFichier('documentaire', $params);
printHeader($retData->meta);
foreach($retData->data as $row) {
printLine($row);
}
/*************************************************************************************************/
echo "\n\n\n\n";
/*************************************************************************************************/
echo "/* Listing des fiches documentaire avec une recherche en texte intégral **************************/\n";
$params = array(
'df' => 20, // Format d'affichage : permet de choisir les champs à retourner. Le plus simple est de le créer avec l'IHM DIAZ.
'page' => 2,
'per_page' => 10,
'searchType' => 'fulltext',
'q' => 'paris',
'sort' => '2:a' // Tri selon le champ d'id 2 (titre) ascendant
);
$retData = $diaz->getSearchFichier('documentaire', $params);
printHeader($retData->meta);
foreach($retData->data as $row) {
printLine($row);
}
/*************************************************************************************************/
echo "\n\n\n\n";
/*************************************************************************************************/
echo "/* Listing des fiches documentaire est_publie=1 (Version recherche par champ) **************************/\n";
$params = array(
'df' => 20, // Format d'affichage : permet de choisir les champs à retourner. Le plus simple est de le créer avec l'IHM DIAZ.
'page' => 1,
'per_page' => 10,
'searchType' => 'field',
'searchByField' => ['field_id' => 64, 'value' => 1],
);
$retData = $diaz->getSearchFichier('documentaire', $params);
printHeader($retData->meta);
foreach($retData->data as $row) {
printLine($row);
}
/*************************************************************************************************/
echo "\n\n\n\n";
/*************************************************************************************************/
echo "/* Listing des fiches documentaire est_publie=1 (Version recherche avancée) **************************/\n";
$params = array(
'df' => 20, // Format d'affichage : permet de choisir les champs à retourner. Le plus simple est de le créer avec l'IHM DIAZ.
'page' => 1,
'per_page' => 10,
'searchType' => 'advanced',
'advancedSearch' => ['chain_op' => null, 'field_id' => 64, 'op' => 'equals', 'value' => 1]
);
$retData = $diaz->getSearchFichier('documentaire', $params);
printHeader($retData->meta);
foreach($retData->data as $row) {
printLine($row);
}
/*************************************************************************************************/
echo "\n\n\n\n";
/*************************************************************************************************/
echo "/* Listing des fiches documentaire video_numerique <> '' Version recherche avancée **************************/\n";
$params = array(
'df' => 20, // Format d'affichage : permet de choisir les champs à retourner. Le plus simple est de le créer avec l'IHM DIAZ.
'page' => 1,
'per_page' => 10,
'searchType' => 'advanced',
'advancedSearch' => ['chain_op' => null, 'field_id' => 58, 'op' => 'notequal', 'value' => ""]
);
$retData = $diaz->getSearchFichier('documentaire', $params);
printHeader($retData->meta);
foreach($retData->data as $row) {
printLine($row);
}
/*************************************************************************************************/
echo "\n\n\n\n";
/*************************************************************************************************/
echo "/*droits_internes_id = 3 Version recherche par champ (format texte) **************************/\n";
$params = array(
'df' => 20, // Format d'affichage : permet de choisir les champs à retourner. Le plus simple est de le créer avec l'IHM DIAZ.
'page' => 1,
'per_page' => 10,
'searchType' => 'field',
'searchByField'=>['field_id'=>48,'value'=>'2 - à rechercher']
);
$retData = $diaz->getSearchFichier('documentaire', $params);
printHeader($retData->meta);
foreach($retData->data as $row) {
printLine($row);
}
/*************************************************************************************************/
echo "\n\n\n\n";
/*************************************************************************************************/
echo "/*droits_internes_id IN [3, 6, 8, 10] Version recherche avancée (format texte) **************************/\n";
$params = array(
'df' => 20, // Format d'affichage : permet de choisir les champs à retourner. Le plus simple est de le créer avec l'IHM DIAZ.
'page' => 1,
'per_page' => 10,
'searchType' => 'advanced',
'advancedSearch'=>[['chain_op' => null, 'field_id' => 48, 'op' => 'equals', 'value' => '2 - à rechercher'],
['chain_op' => 'or', 'field_id' => 48, 'op' => 'equals', 'value' => '5 - accord écrit préalable (R. AYD)'],
['chain_op' => 'or', 'field_id' => 48, 'op' => 'equals', 'value' => '7 - droits réservés'],
['chain_op' => 'or', 'field_id' => 48, 'op' => 'equals', 'value' => '9 - cinémathèque']]
);
$retData = $diaz->getSearchFichier('documentaire', $params);
printHeader($retData->meta);
foreach($retData->data as $row) {
printLine($row);
}
/*************************************************************************************************/
echo "\n\n\n\n";
/*************************************************************************************************/
echo "/*droits_internes_id IN [3, 6, 8, 10] Version QuickFilter **************************/\n";
$params = array(
'df' => 20, // Format d'affichage : permet de choisir les champs à retourner. Le plus simple est de le créer avec l'IHM DIAZ.
'page' => 1,
'per_page' => 10,
'quickFilter'=>[['field_id' => 48, 'value' => 3],
['field_id' => 48, 'value' => 6],
['field_id' => 48, 'value' => 8],
['field_id' => 48, 'value' => 10]]
);
$retData = $diaz->getSearchFichier('documentaire', $params);
printHeader($retData->meta);
foreach($retData->data as $row) {
printLine($row);
}
/*************************************************************************************************/
echo "\n\n\n\n";
/*************************************************************************************************/
echo "/*Listing des fiches documentaire resume LIKE (%[seq:%) **************************/\n";
$params = array(
'df' => 20, // Format d'affichage : permet de choisir les champs à retourner. Le plus simple est de le créer avec l'IHM DIAZ.
'page' => 1,
'per_page' => 10,
'searchType' => 'field',
'searchByField'=>['field_id'=>17, 'value' => '[seq:']
);
$retData = $diaz->getSearchFichier('documentaire', $params);
printHeader($retData->meta);
foreach($retData->data as $row) {
printLine($row);
}
/*************************************************************************************************/
echo "\n\n\n\n";
/*************************************************************************************************/
echo "/*Listing des séquences pour une fiche doc 18059 **************************/\n";
$doc_id = 18059;
$retData = $diaz->getListeFichier('documentaire/' . $doc_id . '/sequences');
foreach($retData->data as $row) {
var_export($row);
echo "\n";
echo "\n";
}
/*************************************************************************************************/
echo "\n\n\n\n";
/*************************************************************************************************/
echo "/*Listing des fiches documentaire sequence.id IS NOT NULL (Sous réserve que l'indexation diaz soit correcte....) **************************/\n";
$params = array(
'df' => 20, // Format d'affichage : permet de choisir les champs à retourner. Le plus simple est de le créer avec l'IHM DIAZ.
'page' => 1,
'per_page' => 10,
'searchType' => 'advanced',
'advancedSearch'=>[['chain_op'=>null, 'field_id'=>57, 'op'=>'notequal', 'value'=>'']]
);
$retData = $diaz->getSearchFichier('documentaire', $params);
printHeader($retData->meta);
foreach($retData->data as $row) {
printLine($row);
}
$diaz->logout();
/*************************************************************************************************/
/*************************************************************************************************/
/*************************************************************************************************/
/*************************************************************************************************/
Erreur : 401 (https://mira.diaz3.diazinteregio.org/api/v0/https://mira.diaz3.diazinteregio.org/api/v0/auth/login)
''