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


PHP eZContentObjectTreeNode::createShowInvisibleSQLString方法代码示例

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


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

示例1: modify

 function modify($tpl, $operatorName, $operatorParameters, &$rootNamespace, &$currentNamespace, &$operatorValue, &$namedParameters)
 {
     $parentNodeID = $namedParameters['parent_node_id'];
     switch ($operatorName) {
         case 'ezkeywordlist':
             include_once 'lib/ezdb/classes/ezdb.php';
             $db = eZDB::instance();
             if ($parentNodeID) {
                 $node = eZContentObjectTreeNode::fetch($parentNodeID);
                 if ($node) {
                     $pathString = "AND ezcontentobject_tree.path_string like '" . $node->attribute('path_string') . "%'";
                 }
                 $parentNodeIDSQL = "AND ezcontentobject_tree.node_id != " . (int) $parentNodeID;
             }
             $showInvisibleNodesCond = eZContentObjectTreeNode::createShowInvisibleSQLString(true, false);
             $limitation = false;
             $limitationList = eZContentObjectTreeNode::getLimitationList($limitation);
             $sqlPermissionChecking = eZContentObjectTreeNode::createPermissionCheckingSQL($limitationList);
             $versionNameJoins = " AND ezcontentobject_tree.contentobject_id = ezcontentobject_name.contentobject_id AND\n                                            ezcontentobject_tree.contentobject_version = ezcontentobject_name.content_version AND ";
             $languageFilter = " AND " . eZContentLanguage::languagesSQLFilter('ezcontentobject');
             $versionNameJoins .= eZContentLanguage::sqlFilter('ezcontentobject_name', 'ezcontentobject');
             $quotedClassIdentifiers = array();
             foreach ((array) $namedParameters['class_identifier'] as $classIdentifier) {
                 $quotedClassIdentifiers[] = "'" . $db->escapeString($classIdentifier) . "'";
             }
             $rs = $db->arrayQuery("SELECT DISTINCT ezkeyword.keyword\n                                            FROM ezkeyword_attribute_link,\n                                                 ezkeyword,\n                                                 ezcontentobject,\n                                                 ezcontentobject_name,\n                                                 ezcontentobject_attribute,\n                                                 ezcontentobject_tree,\n                                                 ezcontentclass\n                                                 {$sqlPermissionChecking['from']}\n                                            WHERE ezkeyword.id = ezkeyword_attribute_link.keyword_id\n                                                AND ezkeyword_attribute_link.objectattribute_id = ezcontentobject_attribute.id\n                                                AND ezcontentobject_tree.contentobject_id = ezcontentobject_attribute.contentobject_id\n                                                AND ezkeyword.class_id = ezcontentclass.id\n                                                AND " . $db->generateSQLINStatement($quotedClassIdentifiers, 'ezcontentclass.identifier') . "\n                                                {$pathString}\n                                                {$parentNodeIDSQL} " . ($namedParameters['depth'] > 0 ? "AND ezcontentobject_tree.depth=" . (int) $namedParameters['depth'] : '') . "\n                                                {$showInvisibleNodesCond}\n                                                {$sqlPermissionChecking['where']}\n                                                {$languageFilter}\n                                                {$versionNameJoins}\n                                            ORDER BY ezkeyword.keyword ASC");
             $operatorValue = $rs;
             break;
     }
 }
开发者ID:BGCX067,项目名称:ezpublish-thetechtalent-svn-to-git,代码行数:30,代码来源:ezkeywordlist.php

示例2: subTree

 function subTree($params, $nodeID, $countChildren = false)
 {
     $nodeListArray = array();
     // sorting params
     $sortingInfo = eZContentObjectTreeNode::createSortingSQLStrings($params['SortBy']);
     // node params
     $notEqParentString = '';
     $pathStringCond = '';
     eZContentObjectTreeNode::createPathConditionAndNotEqParentSQLStrings($pathStringCond, $notEqParentString, $nodeID, 1, false);
     // class filter
     $classCondition = eZContentObjectTreeNode::createClassFilteringSQLString($params['ClassFilterType'], $params['ClassFilterArray']);
     if ($classCondition === false) {
         return $nodeListArray;
     }
     // permissions
     $limitationParams = false;
     $limitationList = eZContentObjectTreeNode::getLimitationList($limitationParams);
     if ($limitationList === false) {
         return $nodeListArray;
     }
     $permissionChecking = eZContentObjectTreeNode::createPermissionCheckingSQL($limitationList);
     // invisible nodes.
     $showInvisibleNodesCond = eZContentObjectTreeNode::createShowInvisibleSQLString(false, $params['FetchHidden']);
     $query = '';
     if ($countChildren) {
         $query = "SELECT count(*) as count\n                          FROM\n                               ezcontentobject_tree\n                               INNER JOIN ezcontentobject ON (ezcontentobject.id = ezcontentobject_tree.contentobject_id)\n                               INNER JOIN ezcontentclass ON (ezcontentclass.id = ezcontentobject.contentclass_id)\n                               INNER JOIN ezcontentobject_name ON (\n                                   ezcontentobject_name.contentobject_id = ezcontentobject_tree.contentobject_id AND\n                                   ezcontentobject_name.content_version = ezcontentobject_tree.contentobject_version\n                               )\n                               {$permissionChecking['from']}\n                          WHERE {$pathStringCond}\n                                {$classCondition}\n                                ezcontentclass.version=0 AND\n                                {$notEqParentString}\n                                " . eZContentLanguage::sqlFilter('ezcontentobject_name', 'ezcontentobject') . "\n                                {$permissionChecking['where']} ";
     } else {
         $query = "SELECT ezcontentobject.*,\n                             ezcontentobject_tree.*,\n                             ezcontentclass.serialized_name_list as class_serialized_name_list,\n                             ezcontentclass.identifier as class_identifier,\n                             ezcontentclass.is_container as is_container,\n                             ezcontentobject_name.name as name,\n                             ezcontentobject_name.real_translation\n                      FROM\n                             ezcontentobject_tree\n                             INNER JOIN ezcontentobject ON (ezcontentobject.id = ezcontentobject_tree.contentobject_id)\n                             INNER JOIN ezcontentclass ON (ezcontentclass.id = ezcontentobject.contentclass_id)\n                             INNER JOIN ezcontentobject_name ON (\n                                 ezcontentobject_name.contentobject_id = ezcontentobject_tree.contentobject_id AND\n                                 ezcontentobject_name.content_version = ezcontentobject_tree.contentobject_version\n                             )\n                             {$sortingInfo['attributeFromSQL']}\n                             {$permissionChecking['from']}\n                      WHERE\n                             {$pathStringCond}\n                             {$sortingInfo['attributeWhereSQL']}\n                             ezcontentclass.version=0 AND\n                             {$notEqParentString}\n                             {$classCondition}\n                             ezcontentobject_tree.contentobject_is_published = 1\n                             " . eZContentLanguage::sqlFilter('ezcontentobject_name', 'ezcontentobject') . "\n                             {$showInvisibleNodesCond}\n                             {$permissionChecking['where']}\n                      ORDER BY {$sortingInfo['sortingFields']}";
     }
     $db = eZDB::instance();
     $nodeListArray = $db->arrayQuery($query);
     // cleanup temp tables
     $db->dropTempTableList($permissionChecking['temp_tables']);
     if ($countChildren) {
         return $nodeListArray[0]['count'];
     } else {
         foreach ($nodeListArray as $key => $row) {
             $nodeListArray[$key]['path_identification_string'] = eZContentObjectTreeNode::fetch($row['node_id'])->pathWithNames();
         }
         return $nodeListArray;
     }
 }
开发者ID:legende91,项目名称:ez,代码行数:42,代码来源:ezcontentstructuretreeoperator.php

示例3: modify

 function modify($tpl, $operatorName, $operatorParameters, &$rootNamespace, &$currentNamespace, &$operatorValue, &$namedParameters)
 {
     $parentNodeID = $namedParameters['parent_node_id'];
     switch ($operatorName) {
         case 'ezkeywordlist':
             include_once 'lib/ezdb/classes/ezdb.php';
             $db = eZDB::instance();
             if ($parentNodeID) {
                 $node = eZContentObjectTreeNode::fetch($parentNodeID);
                 if ($node) {
                     $pathString = "AND ezcontentobject_tree.path_string like '" . $node->attribute('path_string') . "%'";
                 }
                 $parentNodeIDSQL = "AND ezcontentobject_tree.node_id != " . (int) $parentNodeID;
             }
             $limitation = false;
             $sqlPermissionChecking = eZContentObjectTreeNode::createPermissionCheckingSQL(eZContentObjectTreeNode::getLimitationList($limitation));
             // eZContentObjectTreeNode::classIDByIdentifier() might need to be used for eZ Publish < 4.1
             $classIDs = eZContentClass::classIDByIdentifier($namedParameters['class_identifier']);
             $operatorValue = $db->arrayQuery("SELECT DISTINCT ezkeyword.keyword\n                     FROM ezkeyword\n                          JOIN ezkeyword_attribute_link ON ezkeyword.id = ezkeyword_attribute_link.keyword_id\n                          JOIN ezcontentobject_attribute ON ezkeyword_attribute_link.objectattribute_id = ezcontentobject_attribute.id\n                          JOIN ezcontentobject ON ezcontentobject_attribute.contentobject_id = ezcontentobject.id\n                          JOIN ezcontentobject_name ON ezcontentobject.id = ezcontentobject_name.contentobject_id\n                          JOIN ezcontentobject_tree ON ezcontentobject_name.contentobject_id = ezcontentobject_tree.contentobject_id AND ezcontentobject_name.content_version = ezcontentobject_tree.contentobject_version\n                          {$sqlPermissionChecking['from']}\n                     WHERE " . eZContentLanguage::languagesSQLFilter('ezcontentobject') . "\n                         AND " . eZContentLanguage::sqlFilter('ezcontentobject_name', 'ezcontentobject') . (empty($classIDs) ? '' : ' AND ' . $db->generateSQLINStatement($classIDs, 'ezkeyword.class_id')) . "\n                         {$pathString}\n                         {$parentNodeIDSQL} " . ($namedParameters['depth'] > 0 ? "AND ezcontentobject_tree.depth=" . (int) $namedParameters['depth'] : '') . "\n                         " . eZContentObjectTreeNode::createShowInvisibleSQLString(true, false) . "\n                         {$sqlPermissionChecking['where']}\n                     ORDER BY ezkeyword.keyword ASC");
             break;
     }
 }
开发者ID:heliopsis,项目名称:ezwebin,代码行数:22,代码来源:ezkeywordlist.php

示例4: search


//.........这里部分代码省略.........
             $limitation = $params['Limitation'];
         }
         $limitationList = eZContentObjectTreeNode::getLimitationList($limitation);
         $sqlPermissionChecking = eZContentObjectTreeNode::createPermissionCheckingSQL($limitationList);
         $this->GeneralFilter['sqlPermissionChecking'] = $sqlPermissionChecking;
         $versionNameJoins = " AND " . eZContentLanguage::sqlFilter('ezcontentobject_name', 'ezcontentobject');
         /// Only support AND search at this time
         // build fulltext search SQL part
         $searchWordArray = $this->splitString($fullText);
         $searchWordCount = count($searchWordArray);
         $fullTextSQL = "";
         $stopWordArray = array();
         $ini = eZINI::instance();
         $tmpTableCount = 0;
         $i = 0;
         foreach ($searchTypes['and'] as $searchType) {
             $methodName = $this->constructMethodName($searchType);
             $intermediateResult = $this->callMethod($methodName, array($searchType));
             if ($intermediateResult == false) {
                 // cleanup temp tables
                 $db->dropTempTableList($sqlPermissionChecking['temp_tables']);
                 return array("SearchResult" => array(), "SearchCount" => 0, "StopWordArray" => array());
             }
         }
         // Do not execute search if site.ini:[SearchSettings]->AllowEmptySearch is enabled, but no conditions are set.
         if (!$searchDateQuery && !$sectionQuery && !$classQuery && !$classAttributeQuery && !$searchPartsArray && !$subTreeSQL) {
             // cleanup temp tables
             $db->dropTempTableList($sqlPermissionChecking['temp_tables']);
             return array("SearchResult" => array(), "SearchCount" => 0, "StopWordArray" => array());
         }
         $i = $this->TempTablesCount;
         // Loop every word and insert result in temporary table
         // Determine whether we should search invisible nodes.
         $showInvisibleNodesCond = eZContentObjectTreeNode::createShowInvisibleSQLString(!$ignoreVisibility);
         foreach ($searchPartsArray as $searchPart) {
             $stopWordThresholdValue = 100;
             if ($ini->hasVariable('SearchSettings', 'StopWordThresholdValue')) {
                 $stopWordThresholdValue = $ini->variable('SearchSettings', 'StopWordThresholdValue');
             }
             $stopWordThresholdPercent = 60;
             if ($ini->hasVariable('SearchSettings', 'StopWordThresholdPercent')) {
                 $stopWordThresholdPercent = $ini->variable('SearchSettings', 'StopWordThresholdPercent');
             }
             $searchThresholdValue = $totalObjectCount;
             if ($totalObjectCount > $stopWordThresholdValue) {
                 $searchThresholdValue = (int) ($totalObjectCount * ($stopWordThresholdPercent / 100));
             }
             // do not search words that are too frequent
             if ($searchPart['object_count'] < $searchThresholdValue) {
                 $tmpTableCount++;
                 $searchPartText = $searchPart['sql_part'];
                 if ($i == 0) {
                     $table = $db->generateUniqueTempTableName('ezsearch_tmp_%', 0);
                     $this->saveCreatedTempTableName(0, $table);
                     $db->createTempTable("CREATE TEMPORARY TABLE {$table} ( contentobject_id int primary key not null, published int )");
                     $db->query("INSERT INTO {$table} SELECT DISTINCT ezsearch_object_word_link.contentobject_id, ezsearch_object_word_link.published\n                                         FROM ezcontentobject\n                                              INNER JOIN ezsearch_object_word_link ON (ezsearch_object_word_link.contentobject_id = ezcontentobject.id)\n                                              {$subTreeTable}\n                                              INNER JOIN ezcontentclass ON (ezcontentclass.id = ezcontentobject.contentclass_id)\n                                              INNER JOIN ezcontentobject_tree ON (ezcontentobject_tree.contentobject_id = ezcontentobject.id)\n                                              {$sqlPermissionChecking['from']}\n                                         WHERE\n                                               {$searchDateQuery}\n                                               {$sectionQuery}\n                                               {$classQuery}\n                                               {$classAttributeQuery}\n                                               {$searchPartText}\n                                               {$subTreeSQL}\n                                         ezcontentclass.version = '0' AND\n                                         ezcontentobject_tree.node_id = ezcontentobject_tree.main_node_id\n                                         {$showInvisibleNodesCond}\n                                         {$sqlPermissionChecking['where']}", eZDBInterface::SERVER_SLAVE);
                 } else {
                     $table = $db->generateUniqueTempTableName('ezsearch_tmp_%', $i);
                     $this->saveCreatedTempTableName($i, $table);
                     $tmpTable0 = $this->getSavedTempTableName(0);
                     $db->createTempTable("CREATE TEMPORARY TABLE {$table} ( contentobject_id int primary key not null, published int )");
                     $db->query("INSERT INTO {$table} SELECT DISTINCT ezsearch_object_word_link.contentobject_id, ezsearch_object_word_link.published\n                                         FROM\n                                             ezcontentobject\n                                             INNER JOIN ezsearch_object_word_link ON (ezsearch_object_word_link.contentobject_id = ezcontentobject.id)\n                                             {$subTreeTable}\n                                             INNER JOIN ezcontentclass ON (ezcontentclass.id = ezcontentobject.contentclass_id)\n                                             INNER JOIN ezcontentobject_tree ON (ezcontentobject_tree.contentobject_id = ezcontentobject.id)\n                                             INNER JOIN {$tmpTable0} ON ({$tmpTable0}.contentobject_id = ezsearch_object_word_link.contentobject_id)\n                                             {$sqlPermissionChecking['from']}\n                                          WHERE\n                                          {$searchDateQuery}\n                                          {$sectionQuery}\n                                          {$classQuery}\n                                          {$classAttributeQuery}\n                                          {$searchPartText}\n                                          {$subTreeSQL}\n                                          ezcontentclass.version = '0' AND\n                                          ezcontentobject_tree.node_id = ezcontentobject_tree.main_node_id\n                                          {$showInvisibleNodesCond}\n                                          {$sqlPermissionChecking['where']}", eZDBInterface::SERVER_SLAVE);
                 }
                 $i++;
             } else {
                 $stopWordArray[] = array('word' => $searchPart['text']);
开发者ID:EVE-Corp-Center,项目名称:ECC-Website,代码行数:67,代码来源:ezsearchengine.php

示例5: fetchKeyword

 /**
 * Retourne une liste de noeuds associés à un mot clé
 * @param string $keyword le mot clés associé
 * @param array $classIDArray filtre éventuel sur des IDs numériques de classes    
 * @param integer $parentNodeID filtre éventuel sur un noeud parent
 * @param string $subtreePathString filtre éventuel sur une sous arborescence (définie par un path_string du type "/1/2/214/" )
 * @return une liste de tableaux associatifs {'node_id'=>$nodeID}
 *
 */
 private static function fetchKeyword( $keyword, 
                                      $classIDArray,
                                      $parentNodeID,
                                      $subtreePathString)
 {
     
     $showInvisibleNodesCond = eZContentObjectTreeNode::createShowInvisibleSQLString( true, false );
     $limitation = false;
     $limitationList = eZContentObjectTreeNode::getLimitationList( $limitation );
     $sqlPermissionChecking = eZContentObjectTreeNode::createPermissionCheckingSQL( $limitationList );
     $sqlKeyword = 'ezkeyword.keyword';
     $db = eZDB::instance();
     
     $alphabet = $db->escapeString( $keyword );
     
     $sortingInfo = array();
     $sortingInfo['attributeFromSQL'] = ', ezcontentobject_attribute a1';
     $sortingInfo['attributeWhereSQL'] = '';
     $sqlTarget = 'DISTINCT ezcontentobject_tree.node_id';
     
     $sortingInfo['attributeWhereSQL'] .= " a1.version=ezcontentobject.current_version
     AND a1.contentobject_id=ezcontentobject.id AND";
     
     $parentNodeIDString = is_numeric( $parentNodeID ) ? "AND ezcontentobject_tree.parent_node_id = '$parentNodeID'" : '';
     $subtreeString = empty( $subtreePathString ) ? '' : "AND ezcontentobject_tree.path_string like '$subtreePathString%'";
     $sqlClassIDString = '';
     
     if ( is_array( $classIDArray ) && ! empty( $classIDArray ) )
     {
         $sqlClassIDString = 'AND ezkeyword.class_id IN (' . $db->implodeWithTypeCast( ',', $classIDArray, 'int' ) . ')';
     }
     
     $sqlMatching = "ezkeyword.keyword = '$alphabet'";
     
     $query = "SELECT $sqlTarget
     FROM ezkeyword, ezkeyword_attribute_link,ezcontentobject_tree,ezcontentobject,ezcontentclass
     $sortingInfo[attributeFromSQL]
     $sqlPermissionChecking[from]
     WHERE
     $sortingInfo[attributeWhereSQL]
     $sqlMatching
     $showInvisibleNodesCond
     $sqlPermissionChecking[where]
     $sqlClassIDString
     $parentNodeIDString
     $subtreeString
     AND ezcontentclass.version=0
     AND ezcontentobject.status=".eZContentObject::STATUS_PUBLISHED."
     AND ezcontentobject_tree.main_node_id=ezcontentobject_tree.node_id
     AND ezcontentobject_tree.contentobject_id = ezcontentobject.id
     AND ezcontentclass.id = ezcontentobject.contentclass_id
     AND a1.id=ezkeyword_attribute_link.objectattribute_id
     AND ezkeyword_attribute_link.keyword_id = ezkeyword.id";
     $db_params = array();
     $keywordNodeArray = $db->arrayQuery( $query, $db_params );
     return $keywordNodeArray;
 }
开发者ID:sushilbshinde,项目名称:ezpublish-study,代码行数:66,代码来源:kezfunctioncollection.php

示例6: fetchKeyword

 public static function fetchKeyword($alphabet, $classid, $offset, $limit, $owner = false, $sortBy = array(), $parentNodeID = false, $includeDuplicates = true, $strictMatching = false, $depth = 1)
 {
     $classIDArray = array();
     if (is_numeric($classid)) {
         $classIDArray = array($classid);
     } else {
         if (is_array($classid)) {
             $classIDArray = $classid;
         }
     }
     $showInvisibleNodesCond = eZContentObjectTreeNode::createShowInvisibleSQLString(true, false);
     $limitation = false;
     $limitationList = eZContentObjectTreeNode::getLimitationList($limitation);
     $sqlPermissionChecking = eZContentObjectTreeNode::createPermissionCheckingSQL($limitationList);
     $db_params = array();
     $db_params['offset'] = $offset;
     $db_params['limit'] = $limit;
     $keywordNodeArray = array();
     $lastKeyword = '';
     $db = eZDB::instance();
     //in SELECT clause below we will use a full keyword value
     //or just a part of ezkeyword.keyword matched to $alphabet respective to $includeDuplicates parameter.
     //In the case $includeDuplicates = ture we need only a part
     //of ezkeyword.keyword to be fetched in field to allow DISTINCT to remove rows with the same node id's
     $sqlKeyword = 'ezkeyword.keyword';
     if (!$includeDuplicates) {
         $sqlKeyword = $db->subString('ezkeyword.keyword', 1, strlen($alphabet)) . ' AS keyword ';
     }
     $alphabet = $db->escapeString($alphabet);
     $sortingInfo = array();
     $sortingInfo['attributeFromSQL'] = '';
     $sqlTarget = $sqlKeyword . ',ezcontentobject_tree.node_id';
     if (is_array($sortBy) && count($sortBy) > 0) {
         switch ($sortBy[0]) {
             case 'keyword':
             case 'name':
                 $sortingString = '';
                 if ($sortBy[0] == 'name') {
                     $sortingString = 'ezcontentobject.name';
                 } elseif ($sortBy[0] == 'keyword') {
                     if ($includeDuplicates) {
                         $sortingString = 'ezkeyword.keyword';
                     } else {
                         $sortingString = 'keyword';
                     }
                 }
                 $sortOrder = true;
                 // true is ascending
                 if (isset($sortBy[1])) {
                     $sortOrder = $sortBy[1];
                 }
                 $sortingOrder = $sortOrder ? ' ASC' : ' DESC';
                 $sortingInfo['sortingFields'] = $sortingString . $sortingOrder;
                 break;
             default:
                 $sortingInfo = eZContentObjectTreeNode::createSortingSQLStrings($sortBy);
         }
         // Fixing the attributeTargetSQL
         switch ($sortBy[0]) {
             case 'keyword':
                 $sortingInfo['attributeTargetSQL'] = '';
                 break;
             case 'name':
                 $sortingInfo['attributeTargetSQL'] = ', ezcontentobject.name';
                 break;
             case 'attribute':
             case 'class_name':
                 break;
             default:
                 $sortingInfo['attributeTargetSQL'] .= ', ' . strtok($sortingInfo["sortingFields"], " ");
         }
         $sqlTarget .= $sortingInfo['attributeTargetSQL'];
     } else {
         $sortingInfo['sortingFields'] = 'ezkeyword.keyword ASC';
     }
     //Adding DISTINCT to avoid duplicates,
     //check if DISTINCT keyword was added before providing clauses for sorting.
     if (!$includeDuplicates && substr($sqlTarget, 0, 9) != 'DISTINCT ') {
         $sqlTarget = 'DISTINCT ' . $sqlTarget;
     }
     $sqlOwnerString = is_numeric($owner) ? "AND ezcontentobject.owner_id = '{$owner}'" : '';
     $parentNodeIDString = '';
     if (is_numeric($parentNodeID)) {
         $notEqParentString = '';
         // If the node(s) doesn't exist we return null.
         if (!eZContentObjectTreeNode::createPathConditionAndNotEqParentSQLStrings($parentNodeIDString, $notEqParentString, $parentNodeID, $depth)) {
             return null;
         }
     }
     $sqlClassIDString = '';
     if (is_array($classIDArray) and count($classIDArray)) {
         $sqlClassIDString = 'AND ' . $db->generateSQLINStatement($classIDArray, 'ezkeyword.class_id', false, false, 'int') . ' ';
     }
     // composing sql for matching tag word, it could be strict equiality or LIKE clause
     // dependent of $strictMatching parameter.
     $sqlMatching = "ezkeyword.keyword LIKE '{$alphabet}%'";
     if ($strictMatching) {
         $sqlMatching = "ezkeyword.keyword = '{$alphabet}'";
     }
     $query = "SELECT {$sqlTarget}\n                  FROM ezkeyword\n                       INNER JOIN ezkeyword_attribute_link ON (ezkeyword_attribute_link.keyword_id = ezkeyword.id)\n                       INNER JOIN ezcontentobject_attribute ON (ezcontentobject_attribute.id = ezkeyword_attribute_link.objectattribute_id)\n                       INNER JOIN ezcontentobject ON (ezcontentobject_attribute.version = ezcontentobject.current_version AND ezcontentobject_attribute.contentobject_id = ezcontentobject.id)\n                       INNER JOIN ezcontentobject_tree ON (ezcontentobject_tree.contentobject_id = ezcontentobject.id)\n                       INNER JOIN ezcontentclass ON (ezcontentclass.id = ezcontentobject.contentclass_id)\n                       {$sortingInfo['attributeFromSQL']}\n                       {$sqlPermissionChecking['from']}\n                  WHERE\n                  {$parentNodeIDString}\n                  {$sqlMatching}\n                  {$showInvisibleNodesCond}\n                  {$sqlPermissionChecking['where']}\n                  {$sqlClassIDString}\n                  {$sqlOwnerString}\n                  AND ezcontentclass.version = 0\n                  AND ezcontentobject.status = " . eZContentObject::STATUS_PUBLISHED . "\n                  AND ezcontentobject_tree.main_node_id = ezcontentobject_tree.node_id\n                  ORDER BY {$sortingInfo['sortingFields']}";
//.........这里部分代码省略.........
开发者ID:CG77,项目名称:ezpublish-legacy,代码行数:101,代码来源:ezcontentfunctioncollection.php

示例7: fetchKeyword

    static public function fetchKeyword( $alphabet,
                           $classid,
                           $offset,
                           $limit,
                           $owner = false,
                           $sortBy = array(),
                           $parentNodeID = false,
                           $includeDuplicates = true,
                           $strictMatching = false )
    {
        $classIDArray = array();
        if ( is_numeric( $classid ) )
        {
            $classIDArray = array( $classid );
        }
        else if ( is_array( $classid ) )
        {
            $classIDArray = $classid;
        }

        $showInvisibleNodesCond = eZContentObjectTreeNode::createShowInvisibleSQLString( true, false );
        $limitation = false;
        $limitationList = eZContentObjectTreeNode::getLimitationList( $limitation );
        $sqlPermissionChecking = eZContentObjectTreeNode::createPermissionCheckingSQL( $limitationList );

        $db_params = array();
        $db_params['offset'] = $offset;
        $db_params['limit'] = $limit;

        $keywordNodeArray = array();
        $lastKeyword = '';

        $db = eZDB::instance();

        //in SELECT clause below we will use a full keyword value
        //or just a part of ezkeyword.keyword matched to $alphabet respective to $includeDuplicates parameter.
        //In the case $includeDuplicates = ture we need only a part
        //of ezkeyword.keyword to be fetched in field to allow DISTINCT to remove rows with the same node id's
        $sqlKeyword = 'ezkeyword.keyword';
        if ( !$includeDuplicates )
        {
            $sqlKeyword = $db->subString('ezkeyword.keyword', 1, strlen( $alphabet ) ) . ' AS keyword ';
        }

        $alphabet = $db->escapeString( $alphabet );

        $sortingInfo = array();
        $sortingInfo['attributeFromSQL'] = ', ezcontentobject_attribute a1';
        $sortingInfo['attributeWhereSQL'] = '';
        $sqlTarget = $sqlKeyword.',ezcontentobject_tree.node_id';

        if ( is_array( $sortBy ) && count ( $sortBy ) > 0 )
        {
            switch ( $sortBy[0] )
            {
                case 'keyword':
                case 'name':
                {
                    $sortingString = '';
                    if ( $sortBy[0] == 'name' )
                    {
                        $sortingString = 'ezcontentobject.name';
                        $sortingInfo['attributeTargetSQL'] = ', ' . $sortingString;
                    }
                    elseif ( $sortBy[0] == 'keyword' )
                    {
                        if ( $includeDuplicates )
                            $sortingString = 'ezkeyword.keyword';
                        else
                            $sortingString = 'keyword';
                        $sortingInfo['attributeTargetSQL'] = '';
                    }

                    $sortOrder = true; // true is ascending
                    if ( isset( $sortBy[1] ) )
                        $sortOrder = $sortBy[1];
                    $sortingOrder = $sortOrder ? ' ASC' : ' DESC';
                    $sortingInfo['sortingFields'] = $sortingString . $sortingOrder;
                } break;
                default:
                {
                    $sortingInfo = eZContentObjectTreeNode::createSortingSQLStrings( $sortBy );

                    if ( $sortBy[0] == 'attribute' )
                    {
                        // if sort_by is 'attribute' we should add ezcontentobject_name to "FromSQL" and link to ezcontentobject
                        $sortingInfo['attributeFromSQL']  .= ', ezcontentobject_name, ezcontentobject_attribute a1';
                        $sortingInfo['attributeWhereSQL'] .= ' ezcontentobject.id = ezcontentobject_name.contentobject_id AND';
                        $sqlTarget = 'DISTINCT ezcontentobject_tree.node_id, '.$sqlKeyword;
                    }
                    else // for unique declaration
                    {
                        $sortByArray = explode( ' ', $sortingInfo['sortingFields'] );
                        $sortingInfo['attributeTargetSQL'] .= ', ' . $sortByArray[0];

                        $sortingInfo['attributeFromSQL']  .= ', ezcontentobject_attribute a1';
                    }

                } break;
            }
//.........这里部分代码省略.........
开发者ID:robinmuilwijk,项目名称:ezpublish,代码行数:101,代码来源:ezcontentfunctioncollection.php

示例8: calendar

 static function calendar($params = false, $nodeID = 0)
 {
     if (!is_numeric($nodeID) and !is_array($nodeID)) {
         return array();
     }
     if ($params === false) {
         $params = array('Depth' => false, 'Offset' => false, 'Limit' => false, 'AttributeFilter' => false, 'ExtendedAttributeFilter' => false, 'ClassFilterType' => false, 'ClassFilterArray' => false, 'GroupBy' => false);
     }
     $offset = isset($params['Offset']) && is_numeric($params['Offset']) ? $params['Offset'] : false;
     $limit = isset($params['Limit']) && is_numeric($params['Limit']) ? $params['Limit'] : false;
     $depth = isset($params['Depth']) && is_numeric($params['Depth']) ? $params['Depth'] : false;
     $depthOperator = isset($params['DepthOperator']) ? $params['DepthOperator'] : false;
     $groupBy = isset($params['GroupBy']) ? $params['GroupBy'] : false;
     $mainNodeOnly = isset($params['MainNodeOnly']) ? $params['MainNodeOnly'] : false;
     $ignoreVisibility = isset($params['IgnoreVisibility']) ? $params['IgnoreVisibility'] : false;
     if (!isset($params['ClassFilterType'])) {
         $params['ClassFilterType'] = false;
     }
     $classCondition = eZContentObjectTreeNode::createClassFilteringSQLString($params['ClassFilterType'], $params['ClassFilterArray']);
     $attributeFilter = eZContentObjectTreeNode::createAttributeFilterSQLStrings($params['AttributeFilter'], $sortingInfo);
     $extendedAttributeFilter = eZContentObjectTreeNode::createExtendedAttributeFilterSQLStrings($params['ExtendedAttributeFilter']);
     $mainNodeOnlyCond = eZContentObjectTreeNode::createMainNodeConditionSQLString($mainNodeOnly);
     $pathStringCond = '';
     $notEqParentString = '';
     eZContentObjectTreeNode::createPathConditionAndNotEqParentSQLStrings($pathStringCond, $notEqParentString, $nodeID, $depth, $depthOperator);
     $groupBySelectText = '';
     $groupBySQL = $extendedAttributeFilter['group_by'];
     if (!$groupBySQL) {
         eZContentObjectTreeNode::createGroupBySQLStrings($groupBySelectText, $groupBySQL, $groupBy);
     } else {
         if ($groupBy) {
             eZDebug::writeError("Cannot use group_by parameter together with extended attribute filter which sets group_by!", __METHOD__);
         }
     }
     $limitation = isset($params['Limitation']) && is_array($params['Limitation']) ? $params['Limitation'] : false;
     $limitationList = eZContentObjectTreeNode::getLimitationList($limitation);
     $sqlPermissionChecking = eZContentObjectTreeNode::createPermissionCheckingSQL($limitationList);
     // Determine whether we should show invisible nodes.
     $showInvisibleNodesCond = eZContentObjectTreeNode::createShowInvisibleSQLString(!$ignoreVisibility);
     $query = "SELECT DISTINCT\n                         ezcontentobject.published as published\n                         {$groupBySelectText}\n                   FROM\n                      ezcontentobject_tree\n                      INNER JOIN ezcontentobject ON (ezcontentobject.id = ezcontentobject_tree.contentobject_id)\n                      INNER JOIN ezcontentclass ON (ezcontentclass.id = ezcontentobject.contentclass_id)\n                      INNER JOIN ezcontentobject_name ON (\n                          ezcontentobject_name.contentobject_id = ezcontentobject_tree.contentobject_id AND\n                          ezcontentobject_name.content_version = ezcontentobject_tree.contentobject_version\n                      )\n\n                      {$attributeFilter['from']}\n                      {$extendedAttributeFilter['tables']}\n                      {$sqlPermissionChecking['from']}\n                   WHERE\n                      {$pathStringCond}\n                      {$extendedAttributeFilter['joins']}\n                      {$attributeFilter['where']}\n                      ezcontentclass.version = 0 AND\n                      {$notEqParentString}\n                      {$mainNodeOnlyCond}\n                      {$classCondition}\n                      " . eZContentLanguage::sqlFilter('ezcontentobject_name', 'ezcontentobject') . "\n                      {$showInvisibleNodesCond}\n                      {$sqlPermissionChecking['where']}\n                {$groupBySQL}";
     $db = eZDB::instance();
     $server = count($sqlPermissionChecking['temp_tables']) > 0 ? eZDBInterface::SERVER_SLAVE : false;
     if (!$offset && !$limit) {
         $nodeListArray = $db->arrayQuery($query, array(), $server);
     } else {
         $nodeListArray = $db->arrayQuery($query, array('offset' => $offset, 'limit' => $limit), $server);
     }
     // cleanup temp tables
     $db->dropTempTableList($sqlPermissionChecking['temp_tables']);
     return $nodeListArray;
 }
开发者ID:brookinsconsulting,项目名称:ezecosystem,代码行数:51,代码来源:ezcontentobjecttreenode.php

示例9: modify

 function modify($tpl, $operatorName, $operatorParameters, &$rootNamespace, &$currentNamespace, &$operatorValue, &$namedParameters)
 {
     switch ($operatorName) {
         case 'eztagcloud':
             $tags = array();
             $tagCloud = array();
             $parentNodeID = 0;
             $classIdentifier = '';
             $classIdentifierSQL = '';
             $pathString = '';
             $parentNodeIDSQL = '';
             $dbParams = array();
             $params = $namedParameters['params'];
             $orderBySql = 'ORDER BY ezkeyword.keyword ASC';
             if (isset($params['class_identifier'])) {
                 $classIdentifier = $params['class_identifier'];
             }
             if (isset($params['parent_node_id'])) {
                 $parentNodeID = $params['parent_node_id'];
             }
             if (isset($params['limit'])) {
                 $dbParams['limit'] = $params['limit'];
             }
             if (isset($params['offset'])) {
                 $dbParams['offset'] = $params['offset'];
             }
             if (isset($params['sort_by']) && is_array($params['sort_by']) && count($params['sort_by'])) {
                 $orderBySql = 'ORDER BY ';
                 $orderArr = is_string($params['sort_by'][0]) ? array($params['sort_by']) : $params['sort_by'];
                 foreach ($orderArr as $key => $order) {
                     if ($key !== 0) {
                         $orderBySql .= ', ';
                     }
                     $direction = isset($order[1]) ? $order[1] : false;
                     switch ($order[0]) {
                         case 'keyword':
                             $orderBySql .= 'ezkeyword.keyword ' . ($direction ? 'ASC' : 'DESC');
                             break;
                         case 'count':
                             $orderBySql .= 'keyword_count ' . ($direction ? 'ASC' : 'DESC');
                             break;
                     }
                 }
             }
             $db = eZDB::instance();
             if ($classIdentifier) {
                 $classID = eZContentObjectTreeNode::classIDByIdentifier($classIdentifier);
                 $classIdentifierSQL = "AND ezcontentobject.contentclass_id = '" . $classID . "'";
             }
             if ($parentNodeID) {
                 $node = eZContentObjectTreeNode::fetch($parentNodeID);
                 if ($node) {
                     $pathString = "AND ezcontentobject_tree.path_string like '" . $node->attribute('path_string') . "%'";
                 }
                 $parentNodeIDSQL = 'AND ezcontentobject_tree.node_id != ' . (int) $parentNodeID;
             }
             $showInvisibleNodesCond = eZContentObjectTreeNode::createShowInvisibleSQLString(true, false);
             $limitation = false;
             $limitationList = eZContentObjectTreeNode::getLimitationList($limitation);
             $sqlPermissionChecking = eZContentObjectTreeNode::createPermissionCheckingSQL($limitationList);
             $languageFilter = 'AND ' . eZContentLanguage::languagesSQLFilter('ezcontentobject');
             $languageFilter .= 'AND ' . eZContentLanguage::languagesSQLFilter('ezcontentobject_attribute', 'language_id');
             $rs = $db->arrayQuery("SELECT ezkeyword.keyword, count(ezkeyword.keyword) AS keyword_count\n                                        FROM ezkeyword_attribute_link\n                                        LEFT JOIN ezcontentobject_attribute\n                                            ON ezkeyword_attribute_link.objectattribute_id = ezcontentobject_attribute.id\n                                        LEFT JOIN ezcontentobject\n                                            ON ezcontentobject_attribute.contentobject_id = ezcontentobject.id\n                                        LEFT JOIN ezcontentobject_tree\n                                            ON ezcontentobject_attribute.contentobject_id = ezcontentobject_tree.contentobject_id\n                                        LEFT JOIN ezkeyword\n                                            ON ezkeyword.id = ezkeyword_attribute_link.keyword_id\n                                        {$sqlPermissionChecking['from']}\n                                        WHERE\n                                            ezcontentobject.status = " . eZContentObject::STATUS_PUBLISHED . "\n                                            AND ezcontentobject_attribute.version = ezcontentobject.current_version\n                                            AND ezcontentobject_tree.main_node_id = ezcontentobject_tree.node_id\n                                            {$pathString}\n                                            {$parentNodeIDSQL}\n                                            {$classIdentifierSQL}\n                                            {$showInvisibleNodesCond}\n                                            {$sqlPermissionChecking['where']}\n                                            {$languageFilter}\n                                        GROUP BY ezkeyword.id, ezkeyword.keyword\n                                        {$orderBySql}", $dbParams);
             foreach ($rs as $row) {
                 $tags[$row['keyword']] = $row['keyword_count'];
             }
             // To be able to combine count sorting with keyword sorting
             // without being limited by sql LIMIT result clipping
             if (isset($params['post_sort_by'])) {
                 if ($params['post_sort_by'] === 'keyword') {
                     ksort($tags, SORT_LOCALE_STRING);
                 } else {
                     if ($params['post_sort_by'] === 'keyword_reverse') {
                         krsort($tags, SORT_LOCALE_STRING);
                     } else {
                         if ($params['post_sort_by'] === 'count') {
                             asort($tags, SORT_NUMERIC);
                         } else {
                             if ($params['post_sort_by'] === 'count_reverse') {
                                 arsort($tags, SORT_NUMERIC);
                             }
                         }
                     }
                 }
             }
             $maxFontSize = 200;
             $minFontSize = 100;
             $maxCount = 0;
             $minCount = 0;
             if (count($tags) != 0) {
                 $maxCount = max(array_values($tags));
                 $minCount = min(array_values($tags));
             }
             $spread = $maxCount - $minCount;
             if ($spread == 0) {
                 $spread = 1;
             }
             $step = ($maxFontSize - $minFontSize) / $spread;
             foreach ($tags as $key => $value) {
                 $size = $minFontSize + ($value - $minCount) * $step;
//.........这里部分代码省略.........
开发者ID:innoteam,项目名称:ezdemo-ls-extension,代码行数:101,代码来源:eztagcloud.php

示例10: subTree

    function subTree( $params, $nodeID, $countChildren = false )
    {
        $nodeListArray = array();

        // sorting params
        $sortingInfo = eZContentObjectTreeNode::createSortingSQLStrings( $params['SortBy'] );

        // node params
        $notEqParentString = '';
        $pathStringCond    = '';
        eZContentObjectTreeNode::createPathConditionAndNotEqParentSQLStrings( $pathStringCond, $notEqParentString, $nodeID, 1, false );

        // class filter
        $classCondition = eZContentObjectTreeNode::createClassFilteringSQLString( $params['ClassFilterType'], $params['ClassFilterArray'] );
        if ( $classCondition === false )
        {
            return $nodeListArray;
        }

        // permissions
        $limitationParams = false;
        $limitationList = eZContentObjectTreeNode::getLimitationList( $limitationParams );

        if ( $limitationList === false )
        {
            return $nodeListArray;
        }

        $permissionChecking = eZContentObjectTreeNode::createPermissionCheckingSQL( $limitationList );

        // version
        $useVersionName = true;
        $versionNameTables = eZContentObjectTreeNode::createVersionNameTablesSQLString( $useVersionName );
        $versionNameTargets = eZContentObjectTreeNode::createVersionNameTargetsSQLString( $useVersionName );
        $versionNameJoins = eZContentObjectTreeNode::createVersionNameJoinsSQLString( $useVersionName );

        // invisible nodes.
        $showInvisibleNodesCond = eZContentObjectTreeNode::createShowInvisibleSQLString( false, $params['FetchHidden'] );

        $query = '';
        if ( $countChildren )
        {
            $query = "SELECT count(*) as count
                          FROM
                               ezcontentobject_tree,
                               ezcontentobject,ezcontentclass
                               $versionNameTables
                               $permissionChecking[from]
                          WHERE $pathStringCond
                                $classCondition
                                ezcontentclass.version=0 AND
                                $notEqParentString
                                ezcontentobject_tree.contentobject_id = ezcontentobject.id  AND
                                ezcontentclass.id = ezcontentobject.contentclass_id
                                $versionNameJoins
                                $permissionChecking[where] ";
        }
        else
        {
            $query = "SELECT ezcontentobject.*,
                             ezcontentobject_tree.*,
                             ezcontentclass.serialized_name_list as class_serialized_name_list,
                             ezcontentclass.identifier as class_identifier,
                             ezcontentclass.is_container as is_container
                             $versionNameTargets
                      FROM
                             ezcontentobject_tree,
                             ezcontentobject,ezcontentclass
                             $versionNameTables
                             $sortingInfo[attributeFromSQL]
                             $permissionChecking[from]
                      WHERE
                             $pathStringCond
                             $sortingInfo[attributeWhereSQL]
                             ezcontentclass.version=0 AND
                             $notEqParentString
                             ezcontentobject_tree.contentobject_id = ezcontentobject.id  AND
                             ezcontentclass.id = ezcontentobject.contentclass_id AND
                             $classCondition
                             ezcontentobject_tree.contentobject_is_published = 1
                             $versionNameJoins
                             $showInvisibleNodesCond
                             $permissionChecking[where]
                      ORDER BY $sortingInfo[sortingFields]";

        }

        $db = eZDB::instance();
        $nodeListArray = $db->arrayQuery( $query );

        // cleanup temp tables
        $db->dropTempTableList( $permissionChecking['temp_tables'] );

        if ( $countChildren )
        {
            return $nodeListArray[0]['count'];
        }
        else
        {
            foreach ( $nodeListArray as $key => $row )
//.........这里部分代码省略.........
开发者ID:sushilbshinde,项目名称:ezpublish-study,代码行数:101,代码来源:ezcontentstructuretreeoperator.php

示例11: fetchNodeByRating


//.........这里部分代码省略.........
     }
     if (isset($params['offset'])) {
         $offset = (int) $params['offset'];
     }
     if ($includeNotRated) {
         $ratingFromSql = 'LEFT JOIN ezstarrating
                          ON ezstarrating.contentobject_id = ezcontentobject.id';
         $ratingWhereSql = '';
     } else {
         $ratingFromSql = ', ezstarrating';
         $ratingWhereSql = 'ezstarrating.contentobject_id = ezcontentobject.id AND';
     }
     if (isset($params['sort_by']) && is_array($params['sort_by'])) {
         $orderBySql = 'ORDER BY ';
         $orderArr = is_string($params['sort_by'][0]) ? array($params['sort_by']) : $params['sort_by'];
         foreach ($orderArr as $key => $order) {
             $orderBySqlPart = false;
             $direction = isset($order[1]) ? $order[1] : false;
             switch ($order[0]) {
                 case 'rating':
                     $orderBySqlPart = 'rating ' . ($direction ? 'ASC' : 'DESC');
                     break;
                 case 'rating_count':
                     $orderBySqlPart = 'rating_count ' . ($direction ? 'ASC' : 'DESC');
                     break;
                 case 'object_count':
                     $selectSql .= 'COUNT( ezcontentobject.id ) as object_count,';
                     $orderBySqlPart = 'object_count ' . ($direction ? 'ASC' : 'DESC');
                     break;
                 case 'published':
                     $orderBySqlPart = 'ezcontentobject.published ' . ($direction ? 'ASC' : 'DESC');
                     break;
                 case 'modified':
                     $orderBySqlPart = 'ezcontentobject.modified ' . ($direction ? 'ASC' : 'DESC');
                     break;
                 case 'view_count':
                     // notice: will only fetch nodes that HAVE a entry in the ezview_counter table!!!
                     $selectSql .= 'ezview_counter.count as view_count,';
                     $fromSql .= ', ezview_counter';
                     $whereSql[] = 'ezcontentobject_tree.node_id = ezview_counter.node_id';
                     $orderBySqlPart = 'view_count ' . ($direction ? 'ASC' : 'DESC');
                     break;
                 default:
                     if (isset($params['extended_attribute_filter'])) {
                         $orderBySqlPart = $order[0] . ' ' . ($direction ? 'ASC' : 'DESC');
                     } else {
                         eZDebug::writeError("Unsuported sort type '{$order['0']}', for fetch_by_starrating().", __METHOD__);
                     }
                     break;
             }
             if ($orderBySqlPart) {
                 if ($key !== 0) {
                     $orderBySql .= ',';
                 }
                 $orderBySql .= $orderBySqlPart;
             }
         }
     }
     $whereSql = $whereSql ? implode($whereSql, ' AND ') . ' AND ' : '';
     $extendedAttributeFilter = eZContentObjectTreeNode::createExtendedAttributeFilterSQLStrings($params['extended_attribute_filter']);
     $limitation = isset($params['limitation']) && is_array($params['limitation']) ? $params['limitation'] : false;
     $limitationList = eZContentObjectTreeNode::getLimitationList($limitation);
     $sqlPermissionChecking = eZContentObjectTreeNode::createPermissionCheckingSQL($limitationList);
     $languageFilter = ' AND ' . eZContentLanguage::languagesSQLFilter('ezcontentobject');
     $useVersionName = true;
     $versionNameTables = eZContentObjectTreeNode::createVersionNameTablesSQLString($useVersionName);
     $versionNameTargets = eZContentObjectTreeNode::createVersionNameTargetsSQLString($useVersionName);
     $versionNameJoins = eZContentObjectTreeNode::createVersionNameJoinsSQLString($useVersionName, false);
     $mainNodeOnlyCond = eZContentObjectTreeNode::createMainNodeConditionSQLString($mainNodeOnly);
     $showInvisibleNodesCond = eZContentObjectTreeNode::createShowInvisibleSQLString(!$ignoreVisibility);
     $db = eZDB::instance();
     $sql = "SELECT\n                             {$selectSql}\n                             AVG( ezstarrating.rating_average ) as rating,\n                             SUM( ezstarrating.rating_count ) as rating_count,\n                             ezcontentclass.serialized_name_list as class_serialized_name_list,\n                             ezcontentclass.identifier as class_identifier,\n                             ezcontentclass.is_container as is_container\n                             {$versionNameTargets}\n                             {$extendedAttributeFilter['columns']}\n                            FROM\n                             ezcontentobject_tree,\n                             ezcontentobject_tree owner_tree,\n                             ezcontentclass\n                             {$fromSql}\n                             {$versionNameTables}\n                             {$extendedAttributeFilter['tables']}\n                             {$sqlPermissionChecking['from']}\n                             ,ezcontentobject\n                             {$ratingFromSql}\n                            WHERE\n                             {$extendedAttributeFilter['joins']}\n                             {$ratingWhereSql}\n                             ezcontentobject.id = ezcontentobject_tree.contentobject_id AND\n                             ezcontentobject.owner_id = owner_tree.contentobject_id AND\n                             owner_tree.node_id = owner_tree.main_node_id AND\n                             ezcontentclass.version=0 AND\n                             ezcontentclass.id = ezcontentobject.contentclass_id AND\n                             {$mainNodeOnlyCond}\n                             {$classCondition}\n                             {$whereSql}\n\t                         {$versionNameJoins}\n\t                         {$showInvisibleNodesCond}\n\t                         {$sqlPermissionChecking['where']}\n\t                         {$languageFilter}\n                            {$groupBySql}\n                            {$orderBySql}";
     $server = isset($sqlPermissionChecking['temp_tables'][0]) ? eZDBInterface::SERVER_SLAVE : false;
     if ($offset !== false || $limit !== false) {
         $rows = $db->arrayQuery($sql, array('offset' => $offset, 'limit' => $limit), $server);
     } else {
         $rows = $db->arrayQuery($sql, null, $server);
     }
     $db->dropTempTableList($sqlPermissionChecking['temp_tables']);
     unset($db);
     if (isset($rows[0]) && is_array($rows)) {
         if ($asObject) {
             $ret = ezsrRatingObjectTreeNode::makeObjectsArray($rows);
             if ($loadDataMap) {
                 eZContentObject::fillNodeListAttributes($ret);
             }
         } else {
             $ret = $rows;
         }
     } else {
         if ($rows === false) {
             eZDebug::writeError('The ezstarrating table seems to be missing,
                       contact your administrator', __METHOD__);
             $ret = array();
         } else {
             $ret = array();
         }
     }
     return $ret;
 }
开发者ID:nlescure,项目名称:ezstarrating,代码行数:101,代码来源:ezsrratingobject.php

示例12: tagCloud

 /**
  * Returns the tag cloud for specified parameters using eZ Publish database
  *
  * @param array $params
  *
  * @return array
  */
 private function tagCloud($params)
 {
     $parentNodeID = 0;
     $classIdentifier = '';
     $classIdentifierSQL = '';
     $pathString = '';
     $parentNodeIDSQL = '';
     $dbParams = array();
     $orderBySql = 'ORDER BY eztags.keyword ASC';
     if (isset($params['class_identifier'])) {
         $classIdentifier = $params['class_identifier'];
     }
     if (isset($params['parent_node_id'])) {
         $parentNodeID = $params['parent_node_id'];
     }
     if (isset($params['limit'])) {
         $dbParams['limit'] = $params['limit'];
     }
     if (isset($params['offset'])) {
         $dbParams['offset'] = $params['offset'];
     }
     if (isset($params['sort_by']) && is_array($params['sort_by']) && !empty($params['sort_by'])) {
         $orderBySql = 'ORDER BY ';
         $orderArr = is_string($params['sort_by'][0]) ? array($params['sort_by']) : $params['sort_by'];
         foreach ($orderArr as $key => $order) {
             if ($key !== 0) {
                 $orderBySql .= ', ';
             }
             $direction = isset($order[1]) ? $order[1] : false;
             switch ($order[0]) {
                 case 'keyword':
                     $orderBySql .= 'eztags.keyword ' . ($direction ? 'ASC' : 'DESC');
                     break;
                 case 'count':
                     $orderBySql .= 'keyword_count ' . ($direction ? 'ASC' : 'DESC');
                     break;
             }
         }
     }
     $db = eZDB::instance();
     if ($classIdentifier) {
         $classID = eZContentObjectTreeNode::classIDByIdentifier($classIdentifier);
         $classIdentifierSQL = "AND ezcontentobject.contentclass_id = '" . $classID . "'";
     }
     if ($parentNodeID) {
         $node = eZContentObjectTreeNode::fetch($parentNodeID);
         if ($node) {
             $pathString = "AND ezcontentobject_tree.path_string like '" . $node->attribute('path_string') . "%'";
         }
         $parentNodeIDSQL = "AND ezcontentobject_tree.node_id != " . (int) $parentNodeID;
     }
     $showInvisibleNodesCond = eZContentObjectTreeNode::createShowInvisibleSQLString(true, false);
     $limitation = false;
     $limitationList = eZContentObjectTreeNode::getLimitationList($limitation);
     $sqlPermissionChecking = eZContentObjectTreeNode::createPermissionCheckingSQL($limitationList);
     $languageFilter = 'AND ' . eZContentLanguage::languagesSQLFilter('ezcontentobject');
     $languageFilter .= 'AND ' . eZContentLanguage::languagesSQLFilter('ezcontentobject_attribute', 'language_id');
     $rs = $db->arrayQuery("SELECT eztags.id, eztags.keyword, COUNT(DISTINCT ezcontentobject.id) AS keyword_count\n                                FROM eztags_attribute_link\n                                LEFT JOIN ezcontentobject_attribute\n                                    ON eztags_attribute_link.objectattribute_id = ezcontentobject_attribute.id\n                                    AND eztags_attribute_link.objectattribute_version = ezcontentobject_attribute.version\n                                LEFT JOIN ezcontentobject\n                                    ON ezcontentobject_attribute.contentobject_id = ezcontentobject.id\n                                LEFT JOIN ezcontentobject_tree\n                                    ON ezcontentobject_attribute.contentobject_id = ezcontentobject_tree.contentobject_id\n                                LEFT JOIN eztags\n                                    ON eztags.id = eztags_attribute_link.keyword_id\n                                LEFT JOIN eztags_keyword\n                                    ON eztags.id = eztags_keyword.keyword_id\n                                {$sqlPermissionChecking['from']}\n                                WHERE " . eZContentLanguage::languagesSQLFilter('eztags') . "\n                                    AND " . eZContentLanguage::sqlFilter('eztags_keyword', 'eztags') . "\n                                    AND ezcontentobject.status = " . eZContentObject::STATUS_PUBLISHED . "\n                                    AND ezcontentobject_attribute.version = ezcontentobject.current_version\n                                    AND ezcontentobject_tree.main_node_id = ezcontentobject_tree.node_id\n                                    {$pathString}\n                                    {$parentNodeIDSQL}\n                                    {$classIdentifierSQL}\n                                    {$showInvisibleNodesCond}\n                                    {$sqlPermissionChecking['where']}\n                                    {$languageFilter}\n                                GROUP BY eztags.id, eztags.keyword\n                                {$orderBySql}", $dbParams);
     $tagsCountList = array();
     foreach ($rs as $row) {
         $tagsCountList[$row['id']] = $row['keyword_count'];
     }
     /** @var eZTagsObject[] $tagObjects */
     $tagObjects = eZTagsObject::fetchList(array('id' => array(array_keys($tagsCountList))));
     if (!is_array($tagObjects) || empty($tagObjects)) {
         return array();
     }
     $tagSortArray = array();
     $tagKeywords = array();
     $tagCounts = array();
     foreach ($tagObjects as $tag) {
         $tagKeyword = $tag->attribute('keyword');
         $tagCount = $tagsCountList[$tag->attribute('id')];
         $tagSortArray[] = array('keyword' => $tagKeyword, 'count' => $tagCount, 'tag' => $tag);
         $tagKeywords[] = $tagKeyword;
         $tagCounts[] = $tagCount;
     }
     if (isset($params['post_sort_by'])) {
         if ($params['post_sort_by'] === 'keyword') {
             array_multisort($tagKeywords, SORT_ASC, SORT_LOCALE_STRING, $tagSortArray);
         } else {
             if ($params['post_sort_by'] === 'keyword_reverse') {
                 array_multisort($tagKeywords, SORT_DESC, SORT_LOCALE_STRING, $tagSortArray);
             } else {
                 if ($params['post_sort_by'] === 'count') {
                     array_multisort($tagCounts, SORT_ASC, SORT_NUMERIC, $tagSortArray);
                 } else {
                     if ($params['post_sort_by'] === 'count_reverse') {
                         array_multisort($tagCounts, SORT_DESC, SORT_NUMERIC, $tagSortArray);
                     }
                 }
             }
         }
//.........这里部分代码省略.........
开发者ID:oki34,项目名称:eztags,代码行数:101,代码来源:eztagscloud.php

示例13: modify

 function modify($tpl, $operatorName, $operatorParameters, &$rootNamespace, &$currentNamespace, &$operatorValue, &$namedParameters)
 {
     switch ($operatorName) {
         case 'eztagcloud':
             /*
             $tags = array();
             $tagCloud = array();
             $parentNodeID = 0;
             $classID = '';
             $classIdentifier = '';
             $classIdentifierSQL = '';
             $pathString = '';
             $parentNodeIDSQL = '';
             
             if ( isset( $namedParameters['params']['class_identifier'] ) )
                 $classIdentifier = $namedParameters['params']['class_identifier'];
             
             if ( isset( $namedParameters['params']['parent_node_id'] ) )
                 $parentNodeID = $namedParameters['params']['parent_node_id'];
             
             if ( isset( $namedParameters['params']['limit'] ) )
                 $tagCloudLimit = $namedParameters['params']['limit'];
             else
                 $tagCloudLimit = 25;
             
             include_once( 'lib/ezdb/classes/ezdb.php' );
             $db = eZDB::instance();
             
             if( $classIdentifier )
             {
                 $classID = eZContentObjectTreeNode::classIDByIdentifier( $classIdentifier );
                 $classIdentifierSQL = "AND ezcontentobject.contentclass_id = $classID";
             }
             
             if( $parentNodeID )
             {
                 $node = eZContentObjectTreeNode::fetch( $parentNodeID );
                 if ( $node )
                     $pathString = "AND ezcontentobject_tree.path_string like '" . $node->attribute( 'path_string' ) . "%'";
                 $parentNodeIDSQL = "AND ezcontentobject_tree.node_id != " . (int)$parentNodeID;
             }
             
             $showInvisibleNodesCond = eZContentObjectTreeNode::createShowInvisibleSQLString( true, false );
             $limitation = false;
             $limitationList = eZContentObjectTreeNode::getLimitationList( $limitation );
             $sqlPermissionChecking = eZContentObjectTreeNode::createPermissionCheckingSQL( $limitationList );
             
             $versionNameJoins = " AND ezcontentobject_tree.contentobject_id = ezcontentobject_name.contentobject_id AND
                                         ezcontentobject_tree.contentobject_version = ezcontentobject_name.content_version AND ";
             $languageFilter = " AND " . eZContentLanguage::languagesSQLFilter( 'ezcontentobject' );
             $versionNameJoins .= eZContentLanguage::sqlFilter( 'ezcontentobject_name', 'ezcontentobject' );
             
             $rs = $db->arrayQuery( "SELECT DISTINCT ezkeyword.keyword
                                     FROM ezkeyword,
                                         ezkeyword_attribute_link,
                                         ezcontentobject,
                                         ezcontentobject_name,
                                         ezcontentobject_attribute,
                                         ezcontentobject_tree
                                         $sqlPermissionChecking[from]
                                     WHERE ezkeyword.id = ezkeyword_attribute_link.keyword_id
                                         AND ezkeyword_attribute_link.objectattribute_id = ezcontentobject_attribute.id
                                         AND ezcontentobject_attribute.contentobject_id = ezcontentobject_tree.contentobject_id
                                         AND ezcontentobject.status = '".eZContentObject::STATUS_PUBLISHED."'
                                         AND ezcontentobject_attribute.version = ezcontentobject.current_version
                                         AND ezcontentobject_tree.main_node_id = ezcontentobject_tree.node_id
                                         $pathString
                                         $parentNodeIDSQL
                                         $classIdentifierSQL
                                         $showInvisibleNodesCond
                                         $sqlPermissionChecking[where]
                                         $languageFilter
                                         $versionNameJoins
                                     ORDER BY ezkeyword.keyword ASC" );
             
             include_once ('lib/ezutils/classes/ezfunctionhandler.php');
             
             foreach( $rs as $row )
             {
                 $tags[$row['keyword']] = eZFunctionHandler::execute( 'content', 'keyword_count', array( 'alphabet' => $row['keyword'],
                                                                                                         'strict_matching' => true,
                                                                                                         'classid' => $classID  ) );
             }
             
             $maxFontSize = 180;
             $minFontSize = 90;
             
             $maxCount = 0;
             $minCount = 0;
             
             if( count( $tags ) != 0 )
             {
                 $maxCount = max( array_values( $tags ) );
                 $minCount = min( array_values($tags ) );
             }
             
             $spread = $maxCount - $minCount;
             if ( $spread == 0 )
             $spread = 1;
             
//.........这里部分代码省略.........
开发者ID:brookinsconsulting,项目名称:ezecosystem,代码行数:101,代码来源:eztagcloud.php

示例14: calendar

    static function calendar( $params = false, $nodeID = 0 )
    {
        if ( !is_numeric( $nodeID ) and !is_array( $nodeID ) )
        {
            return array();
        }

        if ( $params === false )
        {
            $params = array( 'Depth'                    => false,
                             'Offset'                   => false,
                             'Limit'                    => false,
                             'AttributeFilter'          => false,
                             'ExtendedAttributeFilter'  => false,
                             'ClassFilterType'          => false,
                             'ClassFilterArray'         => false,
                             'GroupBy'                  => false );
        }

        $offset           = ( isset( $params['Offset'] ) && is_numeric( $params['Offset'] ) ) ? $params['Offset']             : false;
        $limit            = ( isset( $params['Limit']  ) && is_numeric( $params['Limit']  ) ) ? $params['Limit']              : false;
        $depth            = ( isset( $params['Depth']  ) && is_numeric( $params['Depth']  ) ) ? $params['Depth']              : false;
        $depthOperator    = ( isset( $params['DepthOperator']     ) )                         ? $params['DepthOperator']      : false;
        $groupBy          = ( isset( $params['GroupBy']           ) )                         ? $params['GroupBy']            : false;
        $mainNodeOnly     = ( isset( $params['MainNodeOnly']      ) )                         ? $params['MainNodeOnly']       : false;
        $ignoreVisibility = ( isset( $params['IgnoreVisibility']  ) )                         ? $params['IgnoreVisibility']   : false;
        if ( !isset( $params['ClassFilterType'] ) )
            $params['ClassFilterType'] = false;

        $classCondition          = eZContentObjectTreeNode::createClassFilteringSQLString( $params['ClassFilterType'], $params['ClassFilterArray'] );
        $attributeFilter         = eZContentObjectTreeNode::createAttributeFilterSQLStrings( $params['AttributeFilter'], $sortingInfo );
        $extendedAttributeFilter = eZContentObjectTreeNode::createExtendedAttributeFilterSQLStrings( $params['ExtendedAttributeFilter'] );
        $mainNodeOnlyCond        = eZContentObjectTreeNode::createMainNodeConditionSQLString( $mainNodeOnly );

        $pathStringCond     = '';
        $notEqParentString  = '';
        eZContentObjectTreeNode::createPathConditionAndNotEqParentSQLStrings( $pathStringCond, $notEqParentString, $nodeID, $depth, $depthOperator );

        $groupBySelectText  = '';
        $groupBySQL         = $extendedAttributeFilter['group_by'];
        if ( !$groupBySQL )
        {
            eZContentObjectTreeNode::createGroupBySQLStrings( $groupBySelectText, $groupBySQL, $groupBy );
        }
        else if ( $groupBy )
        {
            eZDebug::writeError( "Cannot use group_by parameter together with extended attribute filter which sets group_by!", __METHOD__ );
        }

        $useVersionName     = true;
        $versionNameTables  = eZContentObjectTreeNode::createVersionNameTablesSQLString( $useVersionName );
        $versionNameJoins   = eZContentObjectTreeNode::createVersionNameJoinsSQLString( $useVersionName, false );

        $limitation = ( isset( $params['Limitation']  ) && is_array( $params['Limitation']  ) ) ? $params['Limitation']: false;
        $limitationList = eZContentObjectTreeNode::getLimitationList( $limitation );
        $sqlPermissionChecking = eZContentObjectTreeNode::createPermissionCheckingSQL( $limitationList );

        // Determine whether we should show invisible nodes.
        $showInvisibleNodesCond = eZContentObjectTreeNode::createShowInvisibleSQLString( !$ignoreVisibility );

        $query = "SELECT DISTINCT
                         ezcontentobject.published as published
                         $groupBySelectText
                   FROM
                      ezcontentobject_tree,
                      ezcontentobject,ezcontentclass
                      $versionNameTables
                      $attributeFilter[from]
                      $extendedAttributeFilter[tables]
                      $sqlPermissionChecking[from]
                   WHERE
                      $pathStringCond
                      $extendedAttributeFilter[joins]
                      $attributeFilter[where]
                      ezcontentclass.version=0
                      AND
                      $notEqParentString
                      $mainNodeOnlyCond
                      ezcontentobject_tree.contentobject_id = ezcontentobject.id AND
                      ezcontentclass.id = ezcontentobject.contentclass_id AND
                      $classCondition
                      $versionNameJoins
                      $showInvisibleNodesCond
                      $sqlPermissionChecking[where]
                $groupBySQL";


        $db = eZDB::instance();

        $server = count( $sqlPermissionChecking['temp_tables'] ) > 0 ? eZDBInterface::SERVER_SLAVE : false;

        if ( !$offset && !$limit )
        {
            $nodeListArray = $db->arrayQuery( $query, array(), $server );
        }
        else
        {
            $nodeListArray = $db->arrayQuery( $query, array( 'offset' => $offset,
                                                              'limit'  => $limit ),
                                                      $server );
//.........这里部分代码省略.........
开发者ID:robinmuilwijk,项目名称:ezpublish,代码行数:101,代码来源:ezcontentobjecttreenode.php

示例15: modify

 function modify($tpl, $operatorName, $operatorParameters, &$rootNamespace, &$currentNamespace, &$operatorValue, &$namedParameters)
 {
     switch ($operatorName) {
         case 'eztagcloud':
             $tags = array();
             $tagCloud = array();
             $parentNodeID = 0;
             $classIdentifier = '';
             $classIdentifierSQL = '';
             $pathString = '';
             $parentNodeIDSQL = '';
             $dbParams = array();
             $params = $namedParameters['params'];
             $orderBySql = 'ORDER BY ezkeyword.keyword ASC';
             if (isset($params['class_identifier'])) {
                 $classIdentifier = $params['class_identifier'];
             }
             if (isset($params['parent_node_id'])) {
                 $parentNodeID = $params['parent_node_id'];
             }
             if (isset($params['limit'])) {
                 $dbParams['limit'] = $params['limit'];
             }
             if (isset($params['offset'])) {
                 $dbParams['offset'] = $params['offset'];
             }
             if (isset($params['sort_by']) && is_array($params['sort_by']) && count($params['sort_by'])) {
                 $orderBySql = 'ORDER BY ';
                 $orderArr = is_string($params['sort_by'][0]) ? array($params['sort_by']) : $params['sort_by'];
                 foreach ($orderArr as $key => $order) {
                     if ($key !== 0) {
                         $orderBySql .= ', ';
                     }
                     $direction = isset($order[1]) ? $order[1] : false;
                     switch ($order[0]) {
                         case 'keyword':
                             $orderBySql .= 'ezkeyword.keyword ' . ($direction ? 'ASC' : 'DESC');
                             break;
                         case 'count':
                             $orderBySql .= 'keyword_count ' . ($direction ? 'ASC' : 'DESC');
                             break;
                     }
                 }
             }
             $db = eZDB::instance();
             if ($classIdentifier) {
                 $classID = eZContentObjectTreeNode::classIDByIdentifier($classIdentifier);
                 $classIdentifierSQL = "AND ezcontentobject.contentclass_id = '" . $classID . "'";
             }
             if ($parentNodeID) {
                 $node = eZContentObjectTreeNode::fetch($parentNodeID);
                 if ($node) {
                     $pathString = "AND ezcontentobject_tree.path_string like '" . $node->attribute('path_string') . "%'";
                 }
                 $parentNodeIDSQL = 'AND ezcontentobject_tree.node_id != ' . (int) $parentNodeID;
             }
             $showInvisibleNodesCond = eZContentObjectTreeNode::createShowInvisibleSQLString(true, false);
             $limitation = false;
             $limitationList = eZContentObjectTreeNode::getLimitationList($limitation);
             $sqlPermissionChecking = eZContentObjectTreeNode::createPermissionCheckingSQL($limitationList);
             $languageFilter = 'AND ' . eZContentLanguage::languagesSQLFilter('ezcontentobject');
             $rs = $db->arrayQuery("SELECT ezkeyword.keyword, count(*) as keyword_count\n                                        FROM ezkeyword,\n                                            ezkeyword_attribute_link,\n                                            ezcontentobject,\n                                            ezcontentobject_attribute,\n                                            ezcontentobject_tree\n                                            {$sqlPermissionChecking['from']}\n                                        WHERE ezkeyword.id = ezkeyword_attribute_link.keyword_id\n                                            AND ezkeyword_attribute_link.objectattribute_id = ezcontentobject_attribute.id\n                                            AND ezcontentobject_attribute.contentobject_id = ezcontentobject_tree.contentobject_id\n                                            AND ezcontentobject_attribute.contentobject_id = ezcontentobject.id\n                                            AND ezcontentobject.status = " . eZContentObject::STATUS_PUBLISHED . "\n                                            AND ezcontentobject_attribute.version = ezcontentobject.current_version\n                                            AND ezcontentobject_tree.main_node_id = ezcontentobject_tree.node_id\n                                            {$pathString}\n                                            {$parentNodeIDSQL}\n                                            {$classIdentifierSQL}\n                                            {$showInvisibleNodesCond}\n                                            {$sqlPermissionChecking['where']}\n                                            {$languageFilter}\n                                        GROUP BY ezkeyword.id, ezkeyword.keyword\n                                        {$orderBySql}", $dbParams);
             foreach ($rs as $row) {
                 $tags[$row['keyword']] = $row['keyword_count'];
             }
             $maxFontSize = 200;
             $minFontSize = 100;
             $maxCount = 0;
             $minCount = 0;
             if (count($tags) != 0) {
                 $maxCount = max(array_values($tags));
                 $minCount = min(array_values($tags));
             }
             $spread = $maxCount - $minCount;
             if ($spread == 0) {
                 $spread = 1;
             }
             $step = ($maxFontSize - $minFontSize) / $spread;
             // stevo - combine lower/upper case
             $realTags = array();
             $realkey = '';
             foreach ($tags as $key => $value) {
                 $key = strtolower($key);
                 if (isset($realTags[$key])) {
                     $realTags[$key] += $value;
                 } else {
                     $realTags[$key] = $value;
                 }
             }
             // stevo - add minimum tag count option
             $min = isset($params['min']) ? $params['min'] : 0;
             //$minCount -= $min;
             foreach ($realTags as $key => $value) {
                 if ($value > $min) {
                     $size = $minFontSize + ($value - $minCount) * $step;
                     $tagCloud[] = array('font_size' => $size, 'count' => $value, 'tag' => $key);
                 }
             }
             require_once 'kernel/common/template.php';
             $tpl = templateInit();
//.........这里部分代码省略.........
开发者ID:stevoland,项目名称:ez_patch,代码行数:101,代码来源:eztagcloud.php


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