Пример #1
0
 public function executeGenre($request)
 {
     // write session, so it won't lock other requests
     session_write_close();
     $this->getResponse()->setContentType('application/json');
     $limit = $request->getParameter('limit');
     $limit_default = mysfConfig::get('app_ajax_autocomplete_results', 5);
     $limit = isset($limit) ? $limit : $limit_default;
     $term = $request->getParameter('term');
     $title = FiledescPeer::retrieveForSelect($term, $limit, "Genre");
     return $this->renderText(json_encode($title));
 }
Пример #2
0
 /**
  * returns genre_sm Values in an array (id, Name ( Count(genre_sm) )) e.g. Rock (33)
  * to be uses for sfWidgetFormChoice
  * 
  * @return array 
  * @author jochum
  */
 public static function getGenreSm2WithCounts()
 {
     $c = new Criteria();
     $c->addGroupByColumn(FiledescPeer::GENRE_SM2);
     $c->addSelectColumn(FiledescPeer::GENRE_SM2);
     $c->addAsColumn('numGenre', 'COUNT(' . FiledescPeer::GENRE_SM2 . ')');
     $c->addDescendingOrderByColumn('numGenre');
     $values = array("" => "");
     //add empty
     foreach (FiledescPeer::doSelectStmt($c)->fetchAll() as $key => $rs) {
         $values[$rs[0]] = $rs[0] . " (" . $rs[1] . ")";
     }
     return $values;
 }
Пример #3
0
 /**
  * Retrieve multiple objects by pkey.
  *
  * @param      array $pks List of primary keys
  * @param      PropelPDO $con the connection to use
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function retrieveByPKs($pks, PropelPDO $con = null)
 {
     if ($con === null) {
         $con = Propel::getConnection(FiledescPeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     $objs = null;
     if (empty($pks)) {
         $objs = array();
     } else {
         $criteria = new Criteria(FiledescPeer::DATABASE_NAME);
         $criteria->add(FiledescPeer::TRACKNR, $pks, Criteria::IN);
         $objs = FiledescPeer::doSelect($criteria, $con);
     }
     return $objs;
 }
Пример #4
0
 /** This is executed when searched for related tracks and metadata */
 public function executeRelatedtrack(sfWebRequest $request)
 {
     $this->getContext()->getConfiguration()->loadHelpers('Url');
     $empty_metadatafilteredquery = false;
     $distances = NULL;
     $files = NULL;
     // get request parameters
     $metadataquery = $request->getParameter('metadataquery');
     $tracknr = $request->getParameter('tracknr');
     $limit = $request->getParameter('limit', $this->getContext()->getConfiguration()->getSmintMaxQueryResults());
     $offset = $request->getParameter('offset', 0);
     $id_prefix = $request->getParameter('id_prefix', '') . smintTools::generateHtmlId($tracknr) . "_";
     $omit_empty_metadataquery = $request->getParameter('omit_empty_metadataquery', false);
     $distancetypeid = sfConfig::get('app_defaults_distancetypeid', 0);
     $featurevectortypeid = sfConfig::get('app_defaults_featurevectortypeid', 0);
     mysfLog::logRequest($this, $request);
     //get file via external key
     $file = FilePeer::getFileByExternalKey($tracknr);
     //only if the file was found in the smafestore db
     if ($file) {
         // run query
         $fileTrackId = $file->getTrackid();
         $relatedCriteria = $this->buildRelatedQuery($fileTrackId, $featurevectortypeid, $distancetypeid, $limit, $offset, $metadataquery);
         $related = FilePeer::doSelect($relatedCriteria);
         // if omit empty metadataquery is true
         if ($omit_empty_metadataquery) {
             if (count($related) > 0) {
                 // if the query returned results
                 $distances = DistancePeer::doSelect($relatedCriteria);
             } else {
                 // if the query returned no results -> retry without metadata
                 $empty_metadatafilteredquery = true;
                 $relatedCriteria = $this->buildRelatedQuery($fileTrackId, $featurevectortypeid, $distancetypeid, $limit, $offset);
                 $related = FilePeer::doSelect($relatedCriteria);
                 $distances = DistancePeer::doSelect($relatedCriteria);
             }
         } else {
             $distances = DistancePeer::doSelect($relatedCriteria);
         }
     }
     $files = FiledescPeer::doSelect($relatedCriteria);
     // add duration
     //		$fileDownloadURL = url_for("getAudioFile/download") . "?tracknr=" . rawurlencode($tracknr);
     $queryFileMetadata = FiledescPeer::retrieveByPk($tracknr);
     $fileInfoName = $queryFileMetadata->getTitle() . " - " . $queryFileMetadata->getPerformers();
     $uploadedFilePHPUrl_incomplete = url_for("getAudioFile/download", true) . "?tracknr=" . rawurlencode($tracknr);
     $uploadedFileURL = smintUploadFileHelper::getDirectFileUrl($file->getUri());
     return $this->renderPartial('search/result', array('render' => 'related', 'uploadedFilePHPUrl_incomplete' => $uploadedFilePHPUrl_incomplete, 'uploadedFileURL' => $uploadedFileURL, 'seedLabel' => $fileInfoName, 'id_prefix' => $id_prefix, 'tracknr' => $tracknr, 'files' => $files, 'distances' => $distances, 'limit' => $limit, 'offset' => $offset, 'metadataquery' => $metadataquery, 'empty_metadatafilteredquery' => $empty_metadatafilteredquery, 'aSegmSearch' => $aSegmSearch));
 }
Пример #5
0
 /**
  * Populates the object using an array.
  *
  * This is particularly useful when populating an object from one of the
  * request arrays (e.g. $_POST).  This method goes through the column
  * names, checking to see whether a matching key exists in populated
  * array. If so the setByName() method is called for that column.
  *
  * You can specify the key type of the array by additionally passing one
  * of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME,
  * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM.
  * The default key type is the column's phpname (e.g. 'AuthorId')
  *
  * @param      array  $arr     An array to populate the object from.
  * @param      string $keyType The type of keys the array uses.
  * @return     void
  */
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = FiledescPeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setTracknr($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setPerformers($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setTitle($arr[$keys[2]]);
     }
     if (array_key_exists($keys[3], $arr)) {
         $this->setVersion($arr[$keys[3]]);
     }
     if (array_key_exists($keys[4], $arr)) {
         $this->setGenre($arr[$keys[4]]);
     }
     if (array_key_exists($keys[5], $arr)) {
         $this->setSubgenre($arr[$keys[5]]);
     }
     if (array_key_exists($keys[6], $arr)) {
         $this->setTempo($arr[$keys[6]]);
     }
     if (array_key_exists($keys[7], $arr)) {
         $this->setBpm($arr[$keys[7]]);
     }
     if (array_key_exists($keys[8], $arr)) {
         $this->setLeadvocalgender($arr[$keys[8]]);
     }
     if (array_key_exists($keys[9], $arr)) {
         $this->setInstruments($arr[$keys[9]]);
     }
     if (array_key_exists($keys[10], $arr)) {
         $this->setMoods($arr[$keys[10]]);
     }
     if (array_key_exists($keys[11], $arr)) {
         $this->setSituations($arr[$keys[11]]);
     }
     if (array_key_exists($keys[12], $arr)) {
         $this->setGenreSm($arr[$keys[12]]);
     }
     if (array_key_exists($keys[13], $arr)) {
         $this->setGenreSm2($arr[$keys[13]]);
     }
 }