当前位置: 首页>>代码示例>>PHP>>正文


PHP SelectQuery::addWhere方法代码示例

本文整理汇总了PHP中SelectQuery::addWhere方法的典型用法代码示例。如果您正苦于以下问题:PHP SelectQuery::addWhere方法的具体用法?PHP SelectQuery::addWhere怎么用?PHP SelectQuery::addWhere使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SelectQuery的用法示例。


在下文中一共展示了SelectQuery::addWhere方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: loadTypes

 /**
  * Fetches from the DB a list of registered DataSetTypes.
  * @return void
  * @param array $preloadTypes An array containing a number of {@link Schema} type IDs to
  * load structure data for. This will avoid queries later on.
  */
 function loadTypes($preloadTypes)
 {
     debug::output("Fetching all our known Schemas from the database.", DEBUG_SYS1, "DataManager");
     // let's get all our known types
     $query = new SelectQuery();
     $query->addTable("dm_schema");
     $query->addColumn("id", "", "dm_schema");
     $query->addColumn("displayname", "", "dm_schema");
     $query->addColumn("description", "", "dm_schema");
     $query->addColumn("revision", "", "dm_schema");
     $query->addColumn("other_params", "", "dm_schema");
     $query->addWhere("dm_schema.active = 1");
     $dbHandler = Services::getService("DatabaseManager");
     $result = $dbHandler->query($query, DATAMANAGER_DBID);
     if (!$result) {
         throwError(new UnknownDBError("DataManager"));
     }
     while ($result->hasMoreRows()) {
         $a = $result->getCurrentRow();
         $result->advanceRow();
         $otherParams = $a['other_params'] ? unserialize($a['other_params']) : null;
         $this->_schemas[$a['id']] = new Schema($a['id'], $a['displayname'], $a['revision'], $a['description'], $otherParams);
         $this->_schemas[$a['id']]->setManagerFlag();
         debug::output("Found type ID " . $a['id'] . ", revision " . $a['revision'], DEBUG_SYS2, "DataManager");
         unset($type);
     }
     $result->free();
     // now let's preload
     if ($preloadTypes) {
         $this->loadMultiple($preloadTypes);
     }
 }
开发者ID:adamfranco,项目名称:harmoni,代码行数:38,代码来源:SchemaManager.class.php

示例2: PersistentOrderedSet

 /**
  * Constructor.
  * @param object Id $setId The Id of this set.
  * @param integer $dbIndex The index of the database connection which has
  * 		tables in which to store the set.
  */
 function PersistentOrderedSet($setId, $dbIndex)
 {
     parent::OrderedSet($setId);
     ArgumentValidator::validate($dbIndex, IntegerValidatorRule::getRule(), true);
     // Create our internal array
     $this->_dbIndex = $dbIndex;
     // populate our array with any previously stored items.
     $query = new SelectQuery();
     $query->addColumn("item_order", "item_order");
     $query->addColumn("item_id", "item_id");
     $query->addTable("sets");
     $query->addWhere("id = '" . addslashes($this->_setId->getIdString()) . "'");
     $query->addOrderBy("item_order");
     $dbHandler = Services::getService("DatabaseManager");
     $result = $dbHandler->query($query, $this->_dbIndex);
     $i = 0;
     $oldItems = array();
     while ($result->hasMoreRows()) {
         // Add the items to our array
         $this->_items[$i] = $result->field("item_id");
         // Store an array of the order-key/value relationships to reference
         // when updating any inconsistancies in order numbering.
         $oldItems[$result->field("item_order")] = $result->field("item_id");
         $i++;
         $result->advanceRow();
     }
     $result->free();
     // Make sure that we have our set is filled from 0 to count()
     reset($oldItems);
     $this->_updateOrders($oldItems);
 }
开发者ID:adamfranco,项目名称:harmoni,代码行数:37,代码来源:PersistentOrderedSet.class.php

示例3: getPartStructureIdsForTagGeneration

 /**
  * Answer the PartStructure Ids for which Tags should be auto-generated, in
  * the given repository.
  * 
  * @param object Id $repositoryId
  * @return object IdIterator
  * @access public
  * @since 11/21/06
  */
 function getPartStructureIdsForTagGeneration($repositoryId)
 {
     if (!isset($this->_cache[$repositoryId->getIdString()])) {
         $this->_cache[$repositoryId->getIdString()] = array();
         $query = new SelectQuery();
         $query->addColumn('fk_partstruct');
         $query->addTable('tag_part_map');
         $query->addWhere("fk_repository ='" . addslashes($repositoryId->getIdString()) . "'");
         $dbc = Services::getService("DatabaseManager");
         $result = $dbc->query($query, $this->getDatabaseIndex());
         // Add tag objects to an array, still sorted by frequency of usage
         $idManager = Services::getService('Id');
         while ($result->hasNext()) {
             $row = $result->next();
             $this->_cache[$repositoryId->getIdString()][] = $idManager->getId($row['fk_partstruct']);
         }
     }
     $iterator = new HarmoniIterator($this->_cache[$repositoryId->getIdString()]);
     return $iterator;
 }
开发者ID:adamfranco,项目名称:harmoni,代码行数:29,代码来源:StructuredMetaDataTagGenerator.class.php

示例4: updateValue

 /**
  * Update the value for this Part.
  * 
  * @param object mixed $value (original type: java.io.Serializable)
  * 
  * @throws object RepositoryException An exception with one of
  *		   the following messages defined in
  *		   org.osid.repository.RepositoryException may be thrown: {@link
  *		   org.osid.repository.RepositoryException#OPERATION_FAILED
  *		   OPERATION_FAILED}, {@link
  *		   org.osid.repository.RepositoryException#PERMISSION_DENIED
  *		   PERMISSION_DENIED}, {@link
  *		   org.osid.repository.RepositoryException#CONFIGURATION_ERROR
  *		   CONFIGURATION_ERROR}, {@link
  *		   org.osid.repository.RepositoryException#UNIMPLEMENTED
  *		   UNIMPLEMENTED}, {@link
  *		   org.osid.repository.RepositoryException#NULL_ARGUMENT
  *		   NULL_ARGUMENT}
  * 
  * @access public
  */
 function updateValue($value)
 {
     ArgumentValidator::validate($value, StringValidatorRule::getRule());
     // Store the size in the object in case its asked for again.
     try {
         $size = ByteSize::fromString($value);
     } catch (InvalidArgumentException $e) {
         $size = ByteSize::withValue(0);
     }
     $this->_size = $size->value();
     // then write it to the database.
     $dbHandler = Services::getService("DatabaseManager");
     // Check to see if the name is in the database
     $query = new SelectQuery();
     $query->addTable("dr_file");
     $query->addColumn("COUNT(*) as count");
     $query->addWhere("id = '" . $this->_recordId->getIdString() . "'");
     $result = $dbHandler->query($query, $this->_configuration->getProperty("database_index"));
     // If it already exists, use an update query.
     if ($result->field("count") > 0) {
         $query = new UpdateQuery();
         $query->setTable("dr_file");
         $query->setColumns(array("size"));
         $query->setValues(array("'" . addslashes($this->_size) . "'"));
         $query->addWhere("id = '" . $this->_recordId->getIdString() . "'");
     } else {
         $query = new InsertQuery();
         $query->setTable("dr_file");
         $query->setColumns(array("id", "size"));
         $query->setValues(array("'" . $this->_recordId->getIdString() . "'", "'" . addslashes($this->_size) . "'"));
     }
     $result->free();
     // run the query
     $dbHandler->query($query, $this->_configuration->getProperty("database_index"));
     $this->_asset->updateModificationDate();
 }
开发者ID:adamfranco,项目名称:harmoni,代码行数:57,代码来源:RemoteFileSizePart.class.php

示例5: substr

 function _getCanonicalCourse($courseString)
 {
     $cm = Services::getService("CourseManagement");
     //$num = substr($courseString,4,4);
     $number = substr($courseString, 0, strlen($courseString) - 5);
     $dbHandler = Services::getService("DBHandler");
     $query = new SelectQuery();
     $query->addTable('cm_can');
     $query->addWhere("number='" . addslashes($number) . "'");
     $query->addColumn('id');
     $res = $dbHandler->query($query);
     if ($res->getNumberOfRows() == 0) {
         //$termType = new Type("Coursemanagement","edu.middlebury",$season);
         //$index = $cm->_typeToIndex('term',$termType);
         $dept = substr($courseString, 0, strlen($courseString) - 9);
         $type = new Type("Coursemanagement", "edu.middlebury", $dept);
         $stattype = new Type("Coursemanagement", "edu.middlebury", "default");
         $can = $cm->createCanonicalCourse($number, $number, "", $type, $stattype, 1);
         print "<font size=4><b>" . $number . "</b> </font>\n";
         return $can;
         //$canId =$can->getId();
         //return $canId->getIdString();
     } else {
         $row = $res->getCurrentRow();
         //$the_index = $row['id'];
         $idManager = Services::getService("Id");
         $id = $idManager->getId($row['id']);
         $can = $cm->getCanonicalCourse($id);
         print "<font size=4>" . $number . " </font>\n";
         return $can;
         //return $the_index;
     }
 }
开发者ID:adamfranco,项目名称:polyphony,代码行数:33,代码来源:suck_it_up.act.php

示例6: getTypeId

 /**
  * A public function for getting a type id (and ensuring that it exists
  * in the database). One might consider implementing a Type manager for 
  * stuff like this that has no proper home.
  * 
  * @param object Type $type
  *
  * @return integer
  *
  * @access public
  *
  * @since 11/18/04
  */
 function getTypeId($type)
 {
     $dbc = Services::getService("DBHandler");
     // Check to see if the type already exists in the DB
     $query = new SelectQuery();
     $query->addColumn("type_id");
     $query->addTable("type");
     $query->addWhere("type_domain='" . addslashes($type->getDomain()) . "'");
     $query->addWhere("type_authority='" . addslashes($type->getAuthority()) . "'", _AND);
     $query->addWhere("type_keyword='" . addslashes($type->getKeyword()) . "'", _AND);
     $result = $dbc->query($query, $this->_dbIndex);
     // If we have a type id already, use that
     if ($result->getNumberOfRows()) {
         $typeId = $result->field("type_id");
         $result->free();
     } else {
         $result->free();
         $query = new InsertQuery();
         $query->setTable("type");
         $query->setAutoIncrementColumn("type_id", "type_type_id_seq");
         $query->setColumns(array("type_domain", "type_authority", "type_keyword", "type_description"));
         $query->setValues(array("'" . addslashes($type->getDomain()) . "'", "'" . addslashes($type->getAuthority()) . "'", "'" . addslashes($type->getKeyword()) . "'", "'" . addslashes($type->getDescription()) . "'"));
         $result = $dbc->query($query, $this->_dbIndex);
         $typeId = $result->getLastAutoIncrementValue();
     }
     return $typeId;
 }
开发者ID:adamfranco,项目名称:harmoni,代码行数:40,代码来源:HarmoniPropertyManager.class.php

示例7: test

 /**
  * Tests the generateSQLQuery() without WHERE clause.
  */
 function test()
 {
     // insert one row
     $query = new InsertQuery();
     $query->setTable("test1");
     $query->setColumns(array("value"));
     $query->addRowOfValues(array("'Spaceboy'"));
     $query->setAutoIncrementColumn("id", "test1_id_seq");
     $result = $this->db->query($query);
     $lastId = $result->getLastAutoIncrementValue();
     // insert it again, the id must have increased by one
     $result = $this->db->query($query);
     $this->assertIdentical($result->getNumberOfRows(), 1);
     $this->assertIdentical($result->getLastAutoIncrementValue(), $lastId + 1);
     // add several rows at the same time
     $query->addRowOfValues(array("'Astrogirl'"));
     $result = $this->db->query($query);
     $this->assertIdentical($result->getLastAutoIncrementValue(), $lastId + 3);
     // now insert in the other test table
     $query = new InsertQuery();
     $query->setTable("test");
     $query->setColumns(array("FK", "value"));
     $query->addRowOfValues(array($lastId, "'Ziggy'"));
     $query->addRowOfValues(array($lastId + 1, "'Lost in the Stars'"));
     $query->addRowOfValues(array($lastId + 2, "'Headstar'"));
     $query->addRowOfValues(array($lastId + 3, "'Stardust'"));
     $query->setAutoIncrementColumn("id", "test1_id_seq");
     $result = $this->db->query($query);
     // join the inserted rows
     $query = new SelectQuery();
     $query->addTable("test1");
     $query->addTable("test", INNER_JOIN, "test.FK = test1.id");
     $query->addColumn("id", "dm86_id", "test");
     $query->addColumn("FK", "dm86_fk", "test");
     $query->addColumn("value", "dm86_value", "test");
     $query->addColumn("id", "dm98_id", "test1");
     $query->addColumn("value", "dm98_value", "test1");
     $query->addWhere("test1.id >= " . $lastId);
     $result = $this->db->query($query);
     $this->assertIdentical($result->getNumberOfRows(), 4);
     $this->assertIdentical((int) $result->field("dm86_fk"), $lastId);
     $this->assertIdentical($result->field("dm86_value"), "Ziggy");
     $this->assertIdentical((int) $result->field("dm98_id"), $lastId);
     $this->assertIdentical($result->field("dm98_value"), "Spaceboy");
     $result->advanceRow();
     $this->assertIdentical((int) $result->field("dm86_fk"), $lastId + 1);
     $this->assertIdentical($result->field("dm86_value"), "Lost in the Stars");
     $this->assertIdentical((int) $result->field("dm98_id"), $lastId + 1);
     $this->assertIdentical($result->field("dm98_value"), "Spaceboy");
     $result->advanceRow();
     $this->assertIdentical((int) $result->field("dm86_fk"), $lastId + 2);
     $this->assertIdentical($result->field("dm86_value"), "Headstar");
     $this->assertIdentical((int) $result->field("dm98_id"), $lastId + 2);
     $this->assertIdentical($result->field("dm98_value"), "Spaceboy");
     $result->advanceRow();
     $this->assertIdentical((int) $result->field("dm86_fk"), $lastId + 3);
     $this->assertIdentical($result->field("dm86_value"), "Stardust");
     $this->assertIdentical((int) $result->field("dm98_id"), $lastId + 3);
     $this->assertIdentical($result->field("dm98_value"), "Astrogirl");
     $result->free();
     $query = new UpdateQuery();
     $query->setTable("test1");
     $query->setColumns(array("value"));
     $query->setValues(array("'I changed you MF!'"));
     $query->addWhere("id = " . $lastId);
     $result = $this->db->query($query);
     $this->assertIdentical($result->getNumberOfRows(), 1);
     $query = new SelectQuery();
     $query->addTable("test1");
     $query->addColumn("value");
     $query->addWhere("test1.id = " . $lastId);
     $result = $this->db->query($query);
     $this->assertIdentical($result->getNumberOfRows(), 1);
     $this->assertIdentical($result->field("value"), "I changed you MF!");
     $result->free();
     $query = new DeleteQuery();
     $query->setTable("test1");
     $query->addWhere("id = " . $lastId);
     $result = $this->db->query($query);
     $this->assertIdentical($result->getNumberOfRows(), 1);
     $query = new SelectQuery();
     $query->addTable("test1");
     $query->addColumn("value");
     $query->addWhere("test1.id = " . $lastId);
     $result = $this->db->query($query);
     $this->assertIdentical($result->getNumberOfRows(), 0);
     $result->free();
 }
开发者ID:adamfranco,项目名称:harmoni,代码行数:91,代码来源:MySQLComprehensiveTestCase.class.php

示例8: getStructuresForPlugin

 /**
  * Initializes the structures of the Asset to allow for record creation
  * 
  * @return void
  * @access public
  * @since 3/1/06
  */
 public final function getStructuresForPlugin()
 {
     if (!isset($this->_structures)) {
         $db = Services::getService("DBHandler");
         $type = $this->_asset->getAssetType();
         $query = new SelectQuery();
         $query->addTable("plugin_manager");
         $query->addTable("plugin_type", INNER_JOIN, "plugin_type.type_id = plugin_manager.fk_plugin_type");
         $query->addWhere("plugin_type.type_domain = '" . addslashes($type->getDomain()) . "'");
         $query->addWhere("plugin_type.type_authority = '" . addslashes($type->getAuthority()) . "'");
         $query->addWhere("plugin_type.type_keyword = '" . addslashes($type->getKeyword()) . "'");
         $query->addColumn("*");
         $results = $db->query($query, IMPORTER_CONNECTION);
         $id = Services::getService("Id");
         $rm = Services::getService("Repository");
         $sites_rep = $rm->getRepository($id->getId("edu.middlebury.segue.sites_repository"));
         $structures = array();
         // populate structures array with displayname to id association
         while ($results->hasMoreRows()) {
             $result = $results->next();
             $rs = $sites_rep->getRecordStructure($id->getId($result['plugin_manager.fk_schema']));
             $structures[$rs->getDisplayName()] = $result['plugin_manager.fk_schema'];
         }
         $this->_structures = $structures;
     }
     return $this->_structures;
 }
开发者ID:adamfranco,项目名称:segue,代码行数:34,代码来源:SeguePluginsDriver.abstract.php

示例9: deleteLog

 /**
  * Delete the log with the specified name.
  * 
  * @param string $logName
  * 
  * @throws object LoggingException An exception with one of the
  *		   following messages defined in org.osid.logging.LoggingException
  *		   may be thrown:  {@link
  *		   org.osid.logging.LoggingException#UNIMPLEMENTED UNIMPLEMENTED},
  *		   {@link org.osid.logging.LoggingException#OPERATION_FAILED
  *		   OPERATION_FAILED}, {@link
  *		   org.osid.logging.LoggingException#CONFIGURATION_ERROR
  *		   CONFIGURATION_ERROR}, {@link
  *		   org.osid.logging.LoggingException#PERMISSION_DENIED
  *		   PERMISSION_DENIED}, {@link
  *		   org.osid.logging.LoggingException#UNKNOWN_NAME UNKNOWN_NAME}
  * 
  * @access public
  */
 function deleteLog($logName)
 {
     $log = $this->getLogForWriting($logName);
     $log = null;
     $dbc = Services::getService("DatabaseManager");
     // get the entry Ids
     $query = new SelectQuery();
     $query->addColumn("id");
     $query->addTable("log_entry");
     $query->addWhere("log_name = '" . addslashes($logName) . "'");
     $result = $dbc->query($query, $this->_dbIndex);
     $entryIds = array();
     while ($result->hasMoreRows()) {
         $entryIds[] = "'" . addslashes($result->field("id")) . "'";
         $result->advanceRow();
     }
     $result->free();
     // delete the agent keys
     $query = new DeleteQuery();
     $query->setTable("log_agent");
     $query->addWhere("fk_entry IN (" . implode(", ", $entryIds) . ")");
     $dbc->query($query, $this->_dbIndex);
     // delete the node keys
     $query->setTable("log_node");
     $dbc->query($query, $this->_dbIndex);
     // delete the entries
     $query = new DeleteQuery();
     $query->setTable("log_entry");
     $query->addWhere("log_name = '" . addslashes($logName) . "'");
     $dbc->query($query, $this->_dbIndex);
 }
开发者ID:adamfranco,项目名称:harmoni,代码行数:50,代码来源:HarmoniLoggingManager.class.php

示例10: isItemTagged

 /**
  * Answer true if the current agent has tagged the item
  * 
  * @param object TaggedItem $item
  * @return boolean
  * @access public
  * @since 11/13/06
  */
 function isItemTagged($item)
 {
     $query = new SelectQuery();
     $query->addColumn('COUNT(*)', 'count');
     $query->addTable('tag');
     $query->addTable('tag_item', INNER_JOIN, "tag.fk_item = tag_item.db_id");
     $query->addWhere("tag.value='" . addslashes($this->getValue()) . "'");
     $query->addWhere("tag.user_id='" . addslashes($this->getCurrentUserIdString()) . "'");
     $query->addWhere("tag_item.id='" . addslashes($item->getIdString()) . "'");
     $query->addWhere("tag_item.system='" . addslashes($item->getSystem()) . "'");
     $dbc = Services::getService("DatabaseManager");
     $result = $dbc->query($query, $this->getDatabaseIndex());
     if (intval($result->field('count')) > 0) {
         return true;
     } else {
         return false;
     }
 }
开发者ID:adamfranco,项目名称:harmoni,代码行数:26,代码来源:Tag.class.php

示例11: updateValue

 /**
  * Update the value for this Part.
  * 
  * @param object mixed $value (original type: java.io.Serializable)
  * 
  * @throws object RepositoryException An exception with one of
  *		   the following messages defined in
  *		   org.osid.repository.RepositoryException may be thrown: {@link
  *		   org.osid.repository.RepositoryException#OPERATION_FAILED
  *		   OPERATION_FAILED}, {@link
  *		   org.osid.repository.RepositoryException#PERMISSION_DENIED
  *		   PERMISSION_DENIED}, {@link
  *		   org.osid.repository.RepositoryException#CONFIGURATION_ERROR
  *		   CONFIGURATION_ERROR}, {@link
  *		   org.osid.repository.RepositoryException#UNIMPLEMENTED
  *		   UNIMPLEMENTED}, {@link
  *		   org.osid.repository.RepositoryException#NULL_ARGUMENT
  *		   NULL_ARGUMENT}
  * 
  * @access public
  */
 function updateValue($value)
 {
     if (!is_null($value)) {
         ArgumentValidator::validate($value, NonzeroLengthStringValidatorRule::getRule());
     }
     // Store the name in the object in case its asked for again.
     $this->_type = $value;
     // then write it to the database.
     $dbHandler = Services::getService("DatabaseManager");
     // If we have a key, make sure it exists.
     if ($this->_type && $this->_type != "NULL") {
         // Check to see if the type is in the database
         $query = new SelectQuery();
         $query->addTable("dr_mime_type");
         $query->addColumn("id");
         $query->addWhere("type = '" . $this->_type . "'");
         $result = $dbHandler->query($query, $this->_configuration->getProperty("database_index"));
         // If it doesn't exist, insert it.
         if (!$result->getNumberOfRows()) {
             $query = new InsertQuery();
             $query->setTable("dr_mime_type");
             $query->setAutoIncrementColumn("id", "dr_mime_type_id_seq");
             $query->setColumns(array("type"));
             $query->setValues(array("'" . addslashes($this->_type) . "'"));
             $result2 = $dbHandler->query($query, $this->_configuration->getProperty("database_index"));
             $mimeId = "'" . $result2->getLastAutoIncrementValue() . "'";
         } else {
             $mimeId = "'" . $result->field("id") . "'";
         }
         $result->free();
     } else {
         $mimeId = "NULL";
     }
     // add its id to the file.
     $query = new UpdateQuery();
     $query->setTable("dr_file");
     $query->setColumns(array("fk_mime_type"));
     $query->setValues(array($mimeId));
     $query->addWhere("id = '" . $this->_recordId->getIdString() . "'");
     // run the query
     $dbHandler->query($query, $this->_configuration->getProperty("database_index"));
     $this->_asset->updateModificationDate();
 }
开发者ID:adamfranco,项目名称:harmoni,代码行数:64,代码来源:MimeTypePart.class.php

示例12: getValue

 /**
  * Get the value for this Part.
  *	
  * @return object mixed (original type: java.io.Serializable)
  * 
  * @throws object RepositoryException An exception with one of
  *		   the following messages defined in
  *		   org.osid.repository.RepositoryException may be thrown: {@link
  *		   org.osid.repository.RepositoryException#OPERATION_FAILED
  *		   OPERATION_FAILED}, {@link
  *		   org.osid.repository.RepositoryException#PERMISSION_DENIED
  *		   PERMISSION_DENIED}, {@link
  *		   org.osid.repository.RepositoryException#CONFIGURATION_ERROR
  *		   CONFIGURATION_ERROR}, {@link
  *		   org.osid.repository.RepositoryException#UNIMPLEMENTED
  *		   UNIMPLEMENTED}
  * 
  * @access public
  */
 function getValue()
 {
     // If we don't have the name, load it from the database.
     if ($this->_size === NULL) {
         $dbHandler = Services::getService("DatabaseManager");
         // Get the name from the database,
         $query = new SelectQuery();
         $query->addTable("dr_file");
         $query->addColumn("size");
         $query->addWhere("id = '" . $this->_recordId->getIdString() . "'");
         $result = $dbHandler->query($query, $this->_configuration->getProperty("database_index"));
         // If no name was found, return an empty string.
         if ($result->getNumberOfRows() == 0) {
             $this->_size = 0;
         } else {
             $this->_size = $result->field("size");
         }
         $result->free();
     }
     return $this->_size;
 }
开发者ID:adamfranco,项目名称:harmoni,代码行数:40,代码来源:FileSizePart.class.php

示例13: getTagsForItemsNotByAgent

 /**
  * Answer the tags not created by the given agent for one or more items
  * 
  * @param mixed $items The items to return tags for. This can be a single Item object,
  *		an ItemIterator, or an array of Item objects.
  * @param object Id $agentId
  * @param string $sortBy Return tags in alphanumeric order or by frequency of usage.
  * @param integer $max The maximum number of tags to return. The least frequently used
  * 		tags will be dropped first. If $max is 0, all tags will be returned.
  * @return object TagIterator
  * @access public
  * @since 11/10/06
  */
 function getTagsForItemsNotByAgent($items, $agentId, $sortBy = TAG_SORT_ALFA, $max = 0)
 {
     $query = new SelectQuery();
     $query->addColumn('value');
     $query->addColumn('COUNT(value)', 'occurances');
     $query->addTable('tag');
     $query->setGroupBy(array('value'));
     $query->addOrderBy('occurances', DESCENDING);
     $query->addWhere("user_id!='" . addslashes($agentId->getIdString()) . "'");
     if ($max) {
         $query->limitNumberOfRows($max);
     }
     $itemDbIds = array();
     // array
     if (is_array($items)) {
         foreach (array_keys($items) as $key) {
             $itemDbIds[] = "'" . addslashes($items[$key]->getDatabaseId()) . "'";
         }
     } else {
         if (method_exists($items, 'next')) {
             while ($items->hasNext()) {
                 $item = $items->next();
                 $itemDbIds[] = "'" . addslashes($item->getDatabaseId()) . "'";
             }
         } else {
             if (method_exists($items, 'getDatabaseId')) {
                 $itemDbIds[] = "'" . addslashes($items->getDatabaseId()) . "'";
             } else {
                 throwError(new Error("Invalid parameter, " . get_class($items) . ", for \$items", "Tagging"));
             }
         }
     }
     $query->addWhere("tag.fk_item IN (" . implode(", ", $itemDbIds) . ")");
     $dbc = Services::getService("DatabaseManager");
     $result = $dbc->query($query, $this->getDatabaseIndex());
     // Add tag objects to an array, still sorted by frequency of usage
     $tags = array();
     while ($result->hasNext()) {
         $row = $result->next();
         $tags[$row['value']] = new Tag($row['value']);
         $tags[$row['value']]->setOccurances($row['occurances']);
     }
     // If necessary, sort these top tags alphabetically
     if ($sortBy == TAG_SORT_ALFA) {
         ksort($tags);
     }
     $iterator = new HarmoniIterator($tags);
     return $iterator;
 }
开发者ID:adamfranco,项目名称:harmoni,代码行数:62,代码来源:TagManager.class.php

示例14: SelectQuery

 /**
  * Given the object in table $table with id $id, get the field with name $key
  *
  * @param object Id $id The Id of the object in question
  * @param string $table The table that our object resides in
  * @param string $key The name of the field
  *
  * @return string
  *
  * @access private
  */
 function _getField($id, $table, $key)
 {
     // Validate the Id
     ArgumentValidator::validate($id, ExtendsValidatorRule::getRule("Id"), true);
     $idString = $id->getIdString();
     //just a select query
     $dbHandler = Services::getService("DBHandler");
     $query = new SelectQuery();
     $query->addTable($table);
     $query->addWhere("id='" . addslashes($idString) . "'");
     $query->addColumn(addslashes($key));
     $res = $dbHandler->query($query);
     if (!$res->hasMoreRows()) {
         throwError(new Error("Cannot get key '" . $key . "' from non-existant object with id '" . $idString . "'", "CourseManagement", true));
     }
     $row = $res->getCurrentRow();
     $ret = $row[$key];
     return $ret;
 }
开发者ID:adamfranco,项目名称:harmoni,代码行数:30,代码来源:CourseManagementManager.class.php

示例15: installPlugin

 /**
  * Installs a plugin
  * 
  * @param object HarmoniType $type gives us the location of plugin to be 
  * installed
  * @access public
  * @since 3/6/06
  */
 function installPlugin($type)
 {
     // @todo deal with new plugin readiness structure, and database tables
     $authZ = Services::getService("AuthZ");
     //		if ($authZ->isUserAuthorized("edu.middlebury.authorization.add_children", ??))	{
     $dr = Services::getService("Repository");
     $dm = Services::getService("DataTypeManager");
     $db = Services::getService("DBHandler");
     $id = Services::getService("Id");
     // a few things we need
     $site_rep = $dr->getRepository($id->getId("edu.middlebury.segue.sites_repository"));
     $pluginDir = $this->getConfiguration('plugin_dir');
     $types = $dm->getRegisteredTypes();
     // for partstructures
     // use the plugin type to get through the filesystem
     $domain = $type->getDomain();
     $authority = $type->getAuthority();
     $keyword = $type->getKeyword();
     $description = "The type for a {$domain} {$authority} {$keyword} plugin.";
     // write the type to the database
     $query = new InsertQuery();
     $query->setTable('plugin_type');
     $query->setColumns(array("type_domain", "type_authority", "type_keyword", "type_description", "type_enabled"));
     $query->addRowOfValues(array("'" . addslashes($domain) . "'", "'" . addslashes($authority) . "'", "'" . addslashes($keyword) . "'", "'" . addslashes($description) . "'", '0'));
     $db->query($query, IMPORTER_CONNECTION);
     // grab the xml file
     $xmlFile = $pluginDir . "/" . $domain . "/" . $authority . "/" . $keyword . "/" . $authority . $keyword . "Plugin.xml";
     // if there is no file then the plugin has no data structures
     if (is_file($xmlFile)) {
         $document = new DOMDocument();
         $document->loadXML($xmlFile);
         $recordStructures = $document->documentElement->childNodes;
         // first create the recordstructure(s)
         foreach ($recordStructures as $rs) {
             if ($rs->hasAttribute("name")) {
                 $rsName = $rs->getAttribute("name");
                 $plugStruct = $site_rep->createRecordStructure($rsName, "This is the {$rsName} structure for holding data of the {$domain} {$authority} {$keyword} plugin", "", "");
                 $pSId = $plugStruct->getId();
                 $partStructures = $rs->childNodes;
                 // now create the partstructure(s)
                 foreach ($partStructures as $ps) {
                     if ($ps->hasAttribute("name") && $ps->hasAttribute("type")) {
                         $psName = $ps->getAttribute("name");
                         $psType = $ps->getAttribute("type");
                         if (in_array($psType, $types)) {
                             $plugStruct->createPartStructure($psName, "This is the {$psName} structure for holding data of the {$domain} {$authority} {$keyword} plugin", new Type("Repository", "edu.middlebury.segue", $psType), false, true, false);
                         }
                     }
                 }
                 // write to the DB the plugin and its structures
                 $typeId = null;
                 $query2 = new SelectQuery();
                 $query2->addTable("plugin_type");
                 $query2->addColumn("*");
                 $query2->addWhere("type_domain = '" . addslashes($domain) . "'");
                 $query2->addWhere("type_authority = '" . addslashes($authority) . "'");
                 $query2->addWhere("type_keyword = '" . addslashes($keyword) . "'");
                 $results = $db->query($query2, IMPORTER_CONNECTION);
                 if ($results->getNumberOfRows() == 1) {
                     $result = $results->next();
                     $typeId = $result['type_id'];
                     $results->free();
                     $query3 = new InsertQuery();
                     $query3->setTable("plugin_manager");
                     $query3->setColumns(array("fk_plugin_type", "fk_schema"));
                     $query3->addRowOfValues(array("'" . addslashes($typeId) . "'", "'" . addslashes($pSId->getIdString()) . "'"));
                     $db->query($query3, IMPORTER_CONNECTION);
                 } else {
                     $results->free();
                     throwError(new Error("PluginType not found", "Plugins", false));
                 }
             }
         }
     }
     if (!in_array($type->asString(), array_keys($this->getInstalledPlugins()))) {
         $this->addPluginToArray($type);
     }
     //	}
 }
开发者ID:adamfranco,项目名称:segue,代码行数:87,代码来源:PluginManager.class.php


注:本文中的SelectQuery::addWhere方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。