Merge branch 'release/zentaopms_18.3' of https://gitlab.zcorp.cc/easycorp/zentaopms into mine_doc

This commit is contained in:
caoyanyi
2023-04-06 10:43:39 +08:00
14 changed files with 336 additions and 207 deletions
+36 -6
View File
@@ -38,7 +38,7 @@ class docModel extends model
* Get api Libraries.
*
* @param int $appendLib
* @param string $appendLib
* @param string $objectType
* @param int $objectID
* @return array
*/
@@ -52,6 +52,7 @@ class docModel extends model
->beginIF($objectType == 'nolink')
->andWhere('product')->eq(0)
->andWhere('project')->eq(0)
->andWhere('execution')->eq(0)
->fi()
->orderBy('`order`_asc, id_desc')
->fetchAll('id');
@@ -2861,8 +2862,9 @@ class docModel extends model
->fetchPairs();
}
$libTree = array($type => array());
$apiLibs = array();
$libTree = array($type => array());
$apiLibs = array();
$apiLibIDList = array();
foreach($libs as $lib)
{
$item = new stdclass();
@@ -2920,6 +2922,8 @@ class docModel extends model
$libTree['execution'][$executionID]->active = $item->active ? 1 : $libTree['execution'][$executionID]->active;
$libTree['execution'][$executionID]->children[] = $item;
}
if($lib->type == 'api') $apiLibIDList[] = $lib->id;
}
if(in_array($type, array('product', 'project', 'execution')))
@@ -2949,6 +2953,26 @@ class docModel extends model
$libTree[$type] = array_merge($libTree[$type], $apiLibs);
}
/* Add release for api. */
$releases = $this->loadModel('api')->getReleaseByQuery($apiLibIDList);
foreach($libTree as &$libList)
{
foreach($libList as &$lib)
{
if(!is_object($lib) or $lib->type != 'api') continue;
$lib->versions = array();
foreach($releases as $index => $release)
{
if($lib->id == $release->lib)
{
$lib->versions[] = $release;
unset($releases[$index]);
}
}
}
}
if($type != 'project') $libTree = array_values($libTree[$type]);
return $libTree;
}
@@ -3001,17 +3025,23 @@ class docModel extends model
* Get option menu for libs.
*
* @param array $libs
* @param string $docType
* @access public
* @return array
*/
public function getLibsOptionMenu($libs)
public function getLibsOptionMenu($libs, $docType = 'doc')
{
$this->loadModel('tree');
$modules = array();
foreach($libs as $libID => $libName)
{
if(strpos($libName, '/') !== false) list($objectName, $libName) = explode('/', $libName);
$moduleOptionMenu = $this->tree->getOptionMenu($libID, 'doc', $startModuleID = 0);
if(strpos($libName, '/') !== false)
{
$pausedLibName = explode('/', $libName);
$libName = array_pop($pausedLibName);
$objectName = array_pop($pausedLibName);
}
$moduleOptionMenu = $this->tree->getOptionMenu($libID, $docType, $startModuleID = 0);
foreach($moduleOptionMenu as $moduleID => $moduleName) $modules["{$libID}_{$moduleID}"] = $libName . $moduleName;
if(empty($moduleOptionMenu)) $modules["{$libID}_0"] = $libName . $moduleName;
}