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)); }
/** * 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; }
/** * 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; }
/** 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)); }
/** * 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]]); } }