public function findUsedVocabularyProfileProperties() { $c = new \Criteria(); $c->add( \ConceptPeer::VOCABULARY_ID, $this->getSchema()->getId() ); $c->clearSelectColumns(); $c->addSelectColumn( \ConceptPropertyPeer::CONCEPT_ID ); $c->addSelectColumn( \ProfilePropertyPeer::ID ); $c->addSelectColumn( \ConceptPropertyPeer::LANGUAGE ); $c->addAscendingOrderByColumn( \ConceptPropertyPeer::CONCEPT_ID ); $c->addJoin( \ConceptPropertyPeer::CONCEPT_ID, \ConceptPeer::ID ); $c->addJoin( \ConceptPropertyPeer::SKOS_PROPERTY_ID, \ProfilePropertyPeer::SKOS_ID ); $foo = array(); $results = \ConceptPropertyPeer::doSelectRS( $c ); unset( $c ); foreach ( $results as $result ) { if ( ! isset( $foo[$result[0]][$result[1]][$result[2]] ) ) { $foo[$result[0]][$result[1]][$result[2]] = 1; } else { $foo[$result[0]][$result[1]][$result[2]] ++; } } $bar = self::buildColumnArray( $foo ); return $bar; }
/** * Returns the number of rows matching criteria, joining the related ProfilePropertyRelatedByProfilePropertyId table * * @param Criteria $c * @param boolean $distinct Whether to select only distinct columns (You can also set DISTINCT modifier in Criteria). * @param Connection $con * @return int Number of matching rows. */ public static function doCountJoinAllExceptProfilePropertyRelatedByProfilePropertyId(Criteria $criteria, $distinct = false, $con = null) { // we're going to modify criteria, so copy it first $criteria = clone $criteria; // clear out anything that might confuse the ORDER BY clause $criteria->clearSelectColumns()->clearOrderByColumns(); if ($distinct || in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) { $criteria->addSelectColumn(ConceptPropertyPeer::COUNT_DISTINCT); } else { $criteria->addSelectColumn(ConceptPropertyPeer::COUNT); } // just in case we're grouping: add those columns to the select statement foreach ($criteria->getGroupByColumns() as $column) { $criteria->addSelectColumn($column); } $criteria->addJoin(ConceptPropertyPeer::CREATED_USER_ID, UserPeer::ID); $criteria->addJoin(ConceptPropertyPeer::UPDATED_USER_ID, UserPeer::ID); $criteria->addJoin(ConceptPropertyPeer::CONCEPT_ID, ConceptPeer::ID); $criteria->addJoin(ConceptPropertyPeer::SCHEME_ID, VocabularyPeer::ID); $criteria->addJoin(ConceptPropertyPeer::RELATED_CONCEPT_ID, ConceptPeer::ID); $criteria->addJoin(ConceptPropertyPeer::STATUS_ID, StatusPeer::ID); $rs = ConceptPropertyPeer::doSelectRS($criteria, $con); if ($rs->next()) { return $rs->getInt(1); } else { // no rows returned; we infer that means 0 matches. return 0; } }