<?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 <= || ($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_length1$encoding);
        }
        
$result .= $input;
        for (
$i 0$i $right_pad; ++$i) {
            
$result .= mb_substr($pad_string$i $pad_string_length1$encoding);
        }
    
        return 
$result;
    }
}


function 
printLine($row) {
    echo 
'|' mb_str_pad($row->id5) . '|' .mb_str_pad(mb_substr($row->titre0,51), 51) . '|' .mb_str_pad($row->annee5) . '|' .mb_str_pad($row->coloration_id14) . '|'"\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_LOGINDIAZ_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->id5) . '|' .mb_str_pad(mb_substr($row->label0,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)
''