Esempio n. 1
0
 public function findPairsForSelectForm(array $options = array())
 {
     $db = $this->getDb();
     $subquery = new Omeka_Db_Select();
     $subquery->from(array('element_texts' => $db->ElementText), 'id');
     $subquery->joinInner(array('elements' => $db->Element), 'elements.id = element_texts.element_id', array());
     $subquery->joinInner(array('element_sets' => $db->ElementSet), 'element_sets.id = elements.element_set_id', array());
     $subquery->where("element_sets.name = 'Dublin Core'");
     $subquery->where("elements.name = 'Title'");
     $subquery->where("element_texts.record_type = 'Collection'");
     $subquery->where('element_texts.record_id = collections.id');
     $subquery->limit(1);
     $select = $this->getSelectForFindBy($options);
     $select->joinLeft(array('element_texts' => $db->ElementText), "element_texts.id = ({$subquery})", array());
     $select->reset(Zend_Db_Select::COLUMNS);
     $select->from(array(), array('collections.id', 'element_texts.text'));
     $select->order('element_texts.text');
     $pairs = $db->fetchPairs($select);
     foreach ($pairs as $collectionId => &$name) {
         if ($name === null || $name == '') {
             $name = __('[Untitled] #%s', $collectionId);
         } else {
             $name = strip_formatting($name);
         }
     }
     return $pairs;
 }