Flex

ASTUCE : la liste complète des méthodes est disponible dans la section Personnalisation des objets Flex.

compter().

count() : int Compte le nombre de répertoires enregistrés dans Flex.

Retour:

Twig
{% set flex = grav.get('flex') %}

Flex has {{ flex.count() }} enabled directories.
         
PHP
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexInterface;

/** @var FlexInterface $flex */
$flex = Grav::instance()->get('flex');

/** @var int $count */
$count = $flex->count();



getDirectories().

getDirectories( [names] ): array Récupère la liste des répertoires.

Paramètres:

  • names Facultatif : Liste des noms de répertoires (array).

Retour:

ASTUCE : Si aucune liste de noms n'a été fournie, la méthode renvoie tous les répertoires enregistrés dans Flex.
Twig

{% set flex = grav.get('flex') %}

{# Get all directories #}
{% set directories = flex.directories() %}

{# Get listed directories #}
{% set listed_directories = flex.directories(['contacts', 'phonebook']) %}

{# Do something with the directories #}

         
PHP
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexInterface;
use Grav\Framework\Flex\Interfaces\FlexDirectoryInterface;

/** @var FlexInterface $flex */
$flex = Grav::instance()->get('flex');

/** @var FlexDirectoryInterface[] $directories */
$directories = $flex->getDirectories();
// = ['contacts' => FlexDirectory, ...]

/** @var FlexDirectoryInterface[] $directories */
$listedDirectories = $flex->getDirectories(['contacts', 'phonebook']);
// = ['contacts' => FlexDirectory]

/** @var array $directories */
$listedDirectoriesWithMissing = $flex->getDirectories(['contacts', 'phonebook'], true);
// = ['contacts' => FlexDirectory, 'phonebook' => null]
         






ASTUCE : Vous voudrez peut-être vous assurer de ne renvoyer que les répertoires souhaités.

hasDirectory().

hasDirectory( name ): bool : Vérifie si le répertoire existe.

Paramètres:

  • name Nom du répertoire (string)

Retour:

  • bool Vrai si trouvé, faux sinon
Twig
{% set flex = grav.get('flex') %}

Flex has {{ not flex.hasDirectory('contacts') ? 'not' }} contacts directory.
         
PHP
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexInterface;

/** @var FlexInterface $flex */
$flex = Grav::instance()->get('flex');

/** @var bool $exists */
$exists = $flex->hasDirectory('contacts');
         



getDirectory().

getDirectory( name ): Directory | null obtient un répertoire, renvoie null s'il n'a pas été trouvé.

Paramètres:

  • name Nom du répertoire (string)

Retour:

Twig

{% set flex = grav.get('flex') %}

{# Get contacts directory (null if not found) #}
{% set directory = flex.directory('contacts') %}

{# Do something with the contacts directory #}
         
PHP
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexInterface;
use Grav\Framework\Flex\Interfaces\FlexDirectoryInterface;

/** @var FlexInterface $flex */
$flex = Grav::instance()->get('flex');

/** @var FlexDirectoryInterface|null $directory */
$directory = $flex->getDirectory('contacts');
if ($directory) {
    // Directory exists, do something with it...
}
         





Vérifiez ce que vous pouvez faire avec [Flex Directory](avance-flex-repertoire.md).

getObjet().

getObject( id, répertoire ): Objet | null Obtient un objet, renvoie null s'il n'a pas été trouvé.

Paramètres:

  • id ID de l'objet (string)
  • directory Nom du répertoire (string)

Retour:

  • Object (Object)
  • null Objet introuvable
Twig
{% set flex = grav.get('flex') %}

{% set contact = flex.object('ki2ts4cbivggmtlj', 'contacts') %}

{# Do something #}
{% if contact %}
  {# Got Bruce Day #}
  {{ contact.first_name|e }} {{ contact.last_name|e }} has a website: {{ contact.website|e }}
{% else %}
  Oops, contact has been removed!
{% endif %}
         
PHP
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexInterface;
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;

/** @var FlexInterface $flex */
$flex = Grav::instance()->get('flex');

/** @var FlexObjectInterface|null $object */
$object = $flex->getObject('ki2ts4cbivggmtlj', 'contacts');
if ($object) {
    // Object exists, do something with it...
}
         





Vérifiez ce que vous pouvez faire avecFlex Object.

getCollection().

getCollection( répertoire ): Collection | null Obtient la collection, renvoie null si elle n'a pas été trouvée.

Paramètres:

  • directory Nom du répertoire (string)

Retour:

  • Collection (object)
  • null Répertoire introuvable
Twig
{% set flex = grav.get('flex') %}

{% set contacts = flex.collection('contacts') %}

{# Do something #}
<h2>Ten random contacts:</h2>
<ul>
  {% for contact in contacts.filterBy({published: true}).shuffle().limit(0, 10) %}
    <li>{{ contact.first_name|e }} {{ contact.last_name|e }}</li>
  {% endfor %}
</ul>
         
PHP
use Grav\Common\Grav;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
use Grav\Framework\Flex\Interfaces\FlexInterface;

/** @var FlexInterface $flex */
$flex = Grav::instance()->get('flex');

/** @var FlexCollectionInterface|null $collection */
$collection = $flex->getCollection('contacts');
if ($collection) {
    // Collection exists, do something with it...
}
         





Vérifiez ce que vous pouvez faire avec Collection Flexible.