public function searchTags($names, $max = 10, $from = 0, $resource_type = '', $user = null, $raw = false, $app = 'ansel')
{
$GLOBALS['injector']->getInstance('Ansel_Config')->set('scope', $app);
$results = $GLOBALS['injector']->getInstance('Ansel_Tagger')->search($names, array('type' => $resource_type, 'user' => $user));
// Check for error or if we requested the raw data array.
if ($raw) {
return $results;
}
$return = array();
if (!empty($results['images'])) {
foreach ($results['images'] as $image_id) {
$image = $GLOBALS['injector']->getInstance('Ansel_Storage')->getImage($image_id);
$g = $GLOBALS['injector']->getInstance('Ansel_Storage')->getGallery($image->gallery);
$view_url = Ansel::getUrlFor('view', array('gallery' => $image->gallery, 'image' => $image_id, 'view' => 'Image'), true);
$gurl = Ansel::getUrlFor('view', array('view' => 'Gallery', 'gallery' => $image->gallery));
$return[] = array('title' => $image->filename, 'desc' => $image->caption . ' ' . _("from") . ' ' . $gurl->link() . $g->get('name') . '</a>', 'view_url' => $view_url, 'app' => $app, 'icon' => Ansel::getImageUrl($image_id, 'mini'));
}
}
if (!empty($results['galleries'])) {
foreach ($results['galleries'] as $gallery) {
$gal = $GLOBALS['injector']->getInstance('Ansel_Storage')->getGallery($gallery);
$view_url = Horde::url('view.php')->add(array('gallery' => $gallery, 'view' => 'Gallery'));
$gurl = Ansel::getUrlFor('view', array('view' => 'Gallery', 'gallery' => $gallery));
$return[] = array('desc' => $gurl->link() . $gal->get('name') . '</a>', 'view_url' => $view_url, 'app' => $app, 'icon' => Ansel::getImageUrl($gal->getKeyImage(), 'mini'));
}
}
return $return;
}