Show Repositories on Home page

Skip to first unread message

Roger Rutishauser

Jan 29, 2024, 7:24:04 PMJan 29
to AtoM Users

In my custom theme (Bootstrap 2), I would like to show all repositories, just like the "card view" 

In the file plugins/themeName/modules/staticpage/templates/homeSuccess.php, I have the following slot for this particular block on the home page:

<?php slot('home_repositories') ?>
  <?php echo get_partial('repository/browseCardView', array('pager' => $pager, 'selectedCulture' => $selectedCulture)) ?>
<?php end_slot() ?>

This does not work because $pager is not set, I assume. 

Is there a better/easier way to get all repositories in an object or nested array, with title, link and image, so I can loop through myself?


Alberto Pereira

Jan 30, 2024, 2:45:22 PMJan 30

I suppose there are a few ways you could go about doing that without delving too much into code:

- that $pager variable (with the results) is set on the corresponding action of the module. In this particular case, it is set in the RepositoryBrowseAction class, located at /apps/qubit/modules/repository/actions/browseAction.class.php.
    You can replicate the code (or part of it) in the plugins/themeName/modules/staticpage/actions/homeAction.class.php, which will make the variable available to the template, hence you can pass it down to the partial.
    You can strip most of the code depending on what you want to include on the home page. By removing the order, filters, subqueries, etc, it basically boils down to including the following code inside the execute function (right before the ending bracket):
    $this->limit = sfConfig::get('app_hits_per_page');
    $this->search = new arElasticSearchPluginQuery($this->limit, 0);

    $resultSet = QubitSearch::getInstance()->index->getType('QubitRepository')->search($this->search->query);

    $this->pager = new QubitSearchPager($resultSet);
    $this->pager->setPage($request->page ? $request->page : 1);

- another way is to copy the generated HTML if the repositories are rarely changed.

- or make an ajax call to the browse repositories page, scrape the HTML "masonry" section, and add it to the home page content.


You received this message because you are subscribed to the Google Groups "AtoM Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To view this discussion on the web visit

Roger Rutishauser

Jan 31, 2024, 3:56:17 AMJan 31
to AtoM Users
Thanks a lot Alberto! I tried the first solution and it works fine.
Reply all
Reply to author
0 new messages