PHPackages                             keyteq/cloudinary-metaindexer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. keyteq/cloudinary-metaindexer

ActiveEzplatform-bundle[Database &amp; ORM](/categories/database)

keyteq/cloudinary-metaindexer
=============================

Indexes cloudinary account to a mongodb database, and makes it available to list items in the frontend based on selected tags.

2.0(6y ago)1991GPL-2.0PHP

Since Nov 28Pushed 2y ago11 watchersCompare

[ Source](https://github.com/Keyteq/cloudinary-metaindexer)[ Packagist](https://packagist.org/packages/keyteq/cloudinary-metaindexer)[ Docs](https://github.com/keyteq/cloudinary-metaindexer)[ RSS](/packages/keyteq-cloudinary-metaindexer/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (5)Dependencies (4)Versions (7)Used By (0)

cloudinary-metaindexer
======================

[](#cloudinary-metaindexer)

Indexes cloudinary account to a mongodb database, and makes it available to list items in the frontend based on configured tags AND/OR a folder prefix.

This way you can create custom eZ pages that only lists cloudinary resources tagged with certain tags or within a cloudinary folder.

Prerequisites
-------------

[](#prerequisites)

- eZ Publish 5.4+ or eZ Platform
- PHP 5.5+
- Mongodb installed on the server. And php extension for mongodb installed.
- A cloudinary account.
- A cron job (see doc below)

INSTALL
=======

[](#install)

### Step 1

[](#step-1)

If you are running PHP 5.6+ / 7+ you don't have the old `ext-mongo` installed. Doctrine ODM 1.X requires `ext-mongo`, but there is a adapter available for this case.

You need to install this adapter for mongodb (PHP 5.6+ / 7+):

Note: If you have PHP version less then PHP 5.6 - **skip this step**.

```
composer require alcaeus/mongo-php-adapter --ignore-platform-reqs

```

### Step 2

[](#step-2)

Install this bundle (stable):

```
composer require keyteq/cloudinary-metaindexer

```

### Step 3 - (if you have doctrine mongodb installed from before)

[](#step-3---if-you-have-doctrine-mongodb-installed-from-before)

If you have configured doctrine mongodb in your project for some other tasks you will need to disable the auto mapping for the cloudianry meta indexer bundle. That is ONLY if you have auto\_mapping set to true.

Update your `config.yml` where `doctrine_mongodb` is configured:

```

doctrine_mongodb:
    #...
    document_managers:
        default:
            auto_mapping: true
            mappings:
                # Disable mapping for cloudinary meta indexer bundle, it has its own document manager.
                KeyteqCloudinaryMetaIndexerBundle:
                    mapping: false

```

CONFIGURE
=========

[](#configure)

Add to the app kernel to enable the bundle (`app/AppKernel.php`):

```
new Keyteq\Bundle\CloudinaryMetaIndexer\KeyteqCloudinaryMetaIndexerBundle(),

```

Add required configuration (remember to change the database to something unique for your project).

app/config/config.yml:

```
keyteq_cloudinary_meta_indexer:
    cloudinary_api_key: '%cloudinary_key%'
    cloudinary_api_secret: '%cloudinary_secret%'
    cloudinary_cloud_name: '%cloudinary_cloud_name%'
    mongodb:
        server: ~
        database: 'myproject_cloudinary' # Change this to something unique for the project.

```

And update parameters.yml.dist:

```
parameters:
    # ....
    cloudinary_cloud_name: ~
    cloudinary_key: ~
    cloudinary_secret: ~
    # ....

```

Run composer install to add your secret parameters.

```
composer install

```

Test cloudinary sync
--------------------

[](#test-cloudinary-sync)

```
php app/console keyteq:cloudinary-meta-indexer:sync

```

Setup a cron job to run mongodb sync
------------------------------------

[](#setup-a-cron-job-to-run-mongodb-sync)

Setup a new cronjob to run the synchronization job:

NOTE: change `app/console to `ezpublish/console` depending on your eZ publish/platform version.

The below cron specification will run this job at 2:30 every night.

```
30 2 * * * php app/console keyteq:cloudinary-meta-indexer:sync

```

Import the cloudinary\_page package
-----------------------------------

[](#import-the-cloudinary_page-package)

See `Resources/ezcontentclass/` folder in this bundle, there is a content class that you can import via ez administration ui. That package includes a new content class named `cloudinary_page` and contains some mandatory attributes. You are free to add your own after you import the content class.

After imported, create a new content object of that specific class.

Extending the template with a pagelayout (required for 5.x of eZ)
=================================================================

[](#extending-the-template-with-a-pagelayout-required-for-5x-of-ez)

Step 1 is required for 5.X of ezpublish.

### Step 1

[](#step-1-1)

By default, we don't extend any template, so the layout will be empty ( no header and footer ).

- Note: For 5.x use controller `keyteq.cloudinary_meta_indexer.controller.full_view:viewCloudinaryPageLocation`.
- Note: If you are using layouts, use "ngcontent\_view" instead of content\_view.

Create your own override in `yourezbundleconfig.yml`:

```
ezpublish:
    system:
        MY_FRONTPAGE_SITEACCESS:
            content_view:
                full:
                    cloudinary_page:
                        controller: keyteq.cloudinary_meta_indexer.controller.full_view:viewCloudinaryPage
                        template: "AcmeDemoBundle:content/full:cloudinary_page.html.twig"
                        match:
                            Identifier\ContentType: cloudinary_page

```

#### Customization of controller

[](#customization-of-controller)

#### Changing default 12 resources per page.

[](#changing-default-12-resources-per-page)

To set 24 resources per page for siteaccess `YOUR_FRONT_SITEACCESS`:

parameters.yml:

```
parameters:
    ezsettings.YOUR_FRONT_SITEACCESS.cloudinary_meta_indexer.resources_per_page: 24

```

### Step 2

[](#step-2-1)

And create a new template for the cloudinary\_page: `AcmeDemoBundle/Resources/views/full/cloudinary_page.html.twig`:

```
{% extends "AcmeDemoBundle::pagelayout.html.twig" %}

{% block content %}
    {% include 'KeyteqCloudinaryMetaIndexerBundle:content/full:cloudinary_page.html.twig' %}
{% endblock %}

```

If you dont want the built in markup you can look inside the `KeyteqCloudinaryMetaIndexerBundle:content/full:cloudinary_page.html.twig`template and use certain parts of the template for your needs.

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 90.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~198 days

Total

5

Last Release

2290d ago

Major Versions

1.0.0-alpha4 → 2.02020-01-30

### Community

Maintainers

![](https://www.gravatar.com/avatar/88b748fa2f0dcacab307a6305e98032de7adb93f955bbaf3c6fe029a7369ac84?d=identicon)[peec](/maintainers/peec)

---

Top Contributors

[![peec](https://avatars.githubusercontent.com/u/131546?v=4)](https://github.com/peec "peec (30 commits)")[![bHelland](https://avatars.githubusercontent.com/u/1061895?v=4)](https://github.com/bHelland "bHelland (2 commits)")[![RandyCupic](https://avatars.githubusercontent.com/u/7003823?v=4)](https://github.com/RandyCupic "RandyCupic (1 commits)")

---

Tags

cloudinaryezpublishezplatformkeyteqcloudinary-metaindexer

### Embed Badge

![Health badge](/badges/keyteq-cloudinary-metaindexer/health.svg)

```
[![Health](https://phpackages.com/badges/keyteq-cloudinary-metaindexer/health.svg)](https://phpackages.com/packages/keyteq-cloudinary-metaindexer)
```

###  Alternatives

[kaliop/ezmigrationbundle

Kaliop eZ-Migration Bundle

54358.0k9](/packages/kaliop-ezmigrationbundle)[netgen/remote-media-bundle

Remote media field type implementation

189.4k4](/packages/netgen-remote-media-bundle)[netgen/information-collection-bundle

Information collection alike feature for Ibexa Platform

1945.1k8](/packages/netgen-information-collection-bundle)[netgen/admin-ui-bundle

Netgen Admin UI implements an alternate administration UI for eZ Platform, based on eZ Publish Legacy administration interface

3325.4k4](/packages/netgen-admin-ui-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
