* finish task #2664.

This commit is contained in:
wangyidong
2016-10-14 15:22:41 +08:00
parent ab2e6d83cb
commit f246fbeba7
4 changed files with 13 additions and 168 deletions
+1 -4
View File
@@ -111,9 +111,6 @@ class doc extends control
/* Get docs by browse type. */
$docs = $this->doc->getDocsByBrowseType($libID, $browseType, $queryID, $moduleID, $sort, $pager);
/* Get the tree menu. */
$moduleTree = $this->doc->getDocTreeMenu($libID);
/* Build the search form. */
$actionURL = $this->createLink('doc', 'browse', "lib=$libID&browseType=bySearch&queryID=myQueryID");
@@ -122,7 +119,7 @@ class doc extends control
$this->view->libID = $libID;
$this->view->libName = $this->libs[$libID];
$this->view->moduleID = $moduleID;
$this->view->moduleTree = $moduleTree;
$this->view->moduleTree = $this->loadModel('tree')->getTreeMenu($libID, $viewType = 'doc', $startModuleID = 0, array('treeModel', 'createDocLink'));
$this->view->parentModules = $this->tree->getParents($moduleID);
$this->view->docs = $docs;
$this->view->pager = $pager;
+5 -37
View File
@@ -349,17 +349,6 @@ class docModel extends model
return $this->dao->findByProject($projectID)->from(TABLE_DOC)->andWhere('deleted')->eq(0)->orderBy('id_desc')->fetchAll();
}
/**
* Get pairs of product modules.
*
* @access public
* @return array
*/
public function getProductModulePairs()
{
return $this->dao->findByType('productdoc')->from(TABLE_MODULE)->fetchPairs('id', 'name');
}
/**
* Get pairs of project modules.
*
@@ -368,32 +357,11 @@ class docModel extends model
*/
public function getProjectModulePairs()
{
return $this->dao->findByType('projectdoc')->from(TABLE_MODULE)->andWhere('type')->eq('projectdoc')->fetchPairs('id', 'name');
}
/**
* Get doc tree menu.
*
* @param string $libID
* @access public
* @return array
*/
public function getDocTreeMenu($libID)
{
if($libID == 'product')
{
$moduleTree = $this->loadModel('tree')->getProductDocTreeMenu();
}
elseif($libID == 'project')
{
$moduleTree = $this->loadModel('tree')->getProjectDocTreeMenu();
}
else
{
$moduleTree = $this->loadModel('tree')->getTreeMenu($libID, $viewType = 'customdoc', $startModuleID = 0, array('treeModel', 'createDocLink'));
}
return $moduleTree;
return $this->dao->select('t1.id,t1.name')->from(TABLE_MODULE)->alias('t1')
->leftJoin(TABLE_DOCLIB)->alias('t2')->on('t1.root = t2.id')
->andWhere('t1.type')->eq('doc')
->andWhere('t2.project')->ne('0')
->fetchPairs('id', 'name');
}
/**
+5 -15
View File
@@ -45,20 +45,9 @@ class tree extends control
elseif(strpos($viewType, 'doc') !== false)
{
$this->loadModel('doc');
if($rootID == 'product' or $rootID == 'project')
{
$viewType = $rootID . 'doc';
$lib = new stdclass();
$lib->id = $rootID;
$lib->name = $this->lang->doc->systemLibs[$rootID];
$this->view->root = $lib;
}
else
{
$viewType = 'customdoc';
$lib = $this->loadModel('doc')->getLibById($rootID);
$this->view->root = $lib;
}
$viewType = 'doc';
$lib = $this->doc->getLibById($rootID);
$this->view->root = $lib;
}
if($viewType == 'story')
@@ -104,7 +93,8 @@ class tree extends control
}
elseif(strpos($viewType, 'doc') !== false)
{
$this->doc->setMenu($this->doc->getLibs(), $rootID, 'doc');
$type = $lib->product ? 'product' : ($lib->project ? 'project' : 'custom');
$this->doc->setMenu($this->doc->getLibs($type), $rootID, $type);
$this->lang->tree->menu = $this->lang->doc->menu;
$this->lang->tree->menuOrder = $this->lang->doc->menuOrder;
$this->lang->set('menugroup.tree', 'doc');
+2 -112
View File
@@ -685,104 +685,6 @@ class treeModel extends model
return $projectModules;
}
/**
* Get the tree menu of product document library.
*
* @access public
* @return string
*/
public function getProductDocTreeMenu()
{
$menu = "<ul class='tree tree-lines'>";
$products = $this->loadModel('product')->getPairs('nocode');
$productModules = $this->getTreeMenu(0, 'productdoc', 0, array('treeModel', 'createDocLink'), 'product');
$startPos = strpos($productModules, '<li');
$productModules = $startPos === false ? '' : substr($productModules, $startPos, strrpos($productModules, '</ul') - $startPos);
$projectModules = $this->getTreeMenu(0, 'projectdoc', 0, array('treeModel', 'createDocLink'), 'product');
$startPos = strpos($projectModules, '<li');
$projectModules = $startPos === false ? '' : substr($projectModules, $startPos, strrpos($projectModules, '</ul>') - $startPos);
foreach($products as $productID =>$productName)
{
$menu .= '<li>';
$menu .= html::a(helper::createLink('doc', 'browse', "libID=product&module=0&productID=$productID"), $productName);
if(!empty($productModules) or !empty($projectModules))
{
$menu .= '<ul>';
$menu .= str_replace('%productID%', $productID, $productModules);
if(!empty($projectModules))
{
$menu .= '<li>';
$menu .= html::a(helper::createLink('doc', 'browse', "libID=product&module=0&productID=$productID&projectID=int"), $this->lang->tree->projectDoc);
$menu .= '<ul>';
$menu .= str_replace('%productID%', $productID, $projectModules);
$menu .= '</ul></li>';
}
$menu .= '</ul>';
}
$menu .='</li>';
}
$menu .= '</ul>';
return $menu;
}
/**
* Get the tree menu of project document library.
*
* @access public
* @return void
*/
public function getProjectDocTreeMenu()
{
$menu = "<ul class='tree tree-lines'>";
$products = $this->loadModel('product')->getPairs('nocode');
$projects = $this->loadModel('project')->getProductGroupList();
$projectModules = $this->getTreeMenu(0, 'projectdoc', 0, array('treeModel', 'createDocLink'), 'project');
$startPos = strpos($projectModules, '<li');
$projectModules = $startPos === false ? '' : substr($projectModules, $startPos, strrpos($projectModules, '</ul') - $startPos);
foreach($projects as $id => $project)
{
if($id == '')
{
$projects[0] = $projects[''];
unset($projects['']);
}
}
if(!empty($projects[0])) $products[0] = $this->lang->project->noProduct;
foreach($products as $productID => $productName)
{
$menu .= '<li>';
$menu .= $productName;
if(isset($projects[$productID]))
{
$menu .= '<ul>';
foreach($projects[$productID] as $project)
{
$menu .= '<li>' . html::a(helper::createLink('doc', 'browse', "libID=project&module=0&productID=0&projectID=$project->id"), $project->name);
if(!empty($projectModules))
{
$menu .= '<ul>';
$menu .= str_replace('%projectID%', $project->id, $projectModules);
$menu .= '</ul>';
}
$menu .= '</li>';
}
$menu .='</ul>';
}
$menu .='</li>';
}
$menu .= '</ul>';
return $menu;
}
/**
* Create link of a story.
*
@@ -837,20 +739,8 @@ class treeModel extends model
*/
public function createDocLink($type, $module, $extra = '')
{
$libID = $module->root;
$append = '';
if($extra == 'product')
{
$libID = 'product';
$append = '&productID=%productID%';
}
elseif($extra == 'project')
{
$libID = 'project';
$append = '&productID=0&projectID=%projectID%';
}
$linkHtml = html::a(helper::createLink('doc', 'browse', "libID={$libID}&module={$module->id}{$append}"), $module->name, '_self', "id='module{$module->id}'");
$libID = $module->root;
$linkHtml = html::a(helper::createLink('doc', 'browse', "libID={$libID}&browseType=byModule&param={$module->id}"), $module->name, '_self', "id='module{$module->id}'");
return $linkHtml;
}