Ability to use a structure as a menu {menu structureId=1}
- Status
- Closed
- Subject
- Ability to use a structure as a menu {menu structureId=1}
- Version
- 1.9.x
- Category
- Feature request
- Feature
- Menu
Templates (Smarty)
Modules
Site Identity
Wiki Structure (book & table of content)
Search engine optimization (SEO) - Resolution status
- Fixed or Solved
- Submitted by
- homunq
- Volunteered to solve
- homunq
- Lastmod by
- Marc Laporte
- Rating
- Description
- I can't see the reason for the separation between the structures feature and the menu feature - structures are massively easier to create and edit, but only menus can be shown collapsibly. Separation of functions leads to confusion and harder support.
- Solution
- Add options to the wikistructure smarty function to allow it to create phplm - type menus.
- collapse the three used structure_toc... smarty templates (-leaf.tpl, -startul.tpl, and -endul.tpl) back into one ..._level.tpl (also filed as separate bug)
- Allow the current page and its ancestors to have additional style applied through css in the menu (NON-WORKING code snippet below gives an idea of how)
start code snippet: (the idea is that build_subtree_toc keeps a path as well as a tree, the smarty can use a counter to keep track of depth as it recursively calls itself and thus check the current page against the path at the correct depth)
function build_subtree_toc($id,$currentPageId,$slide=false,$order='asc',$tocPrefix='',$depth=0) {
$cant = $this->getOne("select count(*) from `tiki_structures` where `parent_id`=?",arrayint)$id;
if ($cant) {
if ($id == $currentPageId) {
$path = array($id);
} else {
$path = false;
}
$query = "select `page_ref_id`, `pageName`, `page_alias`, tp.`description` from `tiki_structures` ts, `tiki_pages` tp ";
$query.= "where ts.`page_id`=tp.`page_id` and `parent_id`=? order by ".$this->convert_sortmode("pos_".$order);
$result = $this->query($query,arrayint)$id;
$prefix=1;
while ($res = $result->fetchRow()) {
$res'prefix'=($tocPrefix==)?:"$tocPrefix.";
$res'prefix'.=$prefix;
$prefix++;
if ($res'page_ref_id' != $id) {
$sub = $this->build_subtree_toc($res'page_ref_id',$slide,$order,$res'prefix',$currentPageId);
if (is_array($sub'tree')) {
$res'sub' = $sub'tree';
if ($sub'path') {
$path = array_merge($id,$sub('path'));
}
}
}
if ($res%22page_alias%22<>"") $res%22pageName%22=$res%22page_alias%22;
$back[] = $res;
}
} else {
return array('tree'=>false, 'path'=>false);
}
return array('tree'=>$back,'path'=>$path);
}function get_toc($page_ref_id,$currentPageId,$order='asc',$showdesc=false,$numbering=true,$numberPrefix='',$type='plain',$maxdepth=0) {
$structure_tree_holder = $this->build_subtree_toc($page_ref_id,$currentPageId,false,$order,$numberPrefix);
$smarty->assign('struct_type',$type);
$smarty->assign('struct_tree',$structure_tree_holder'tree');
$smarty->assign('path_to_current',$structure_tree_holder'path');
$smarty->assign('struct_showdesc',$showdesc);
$smarty->assign('struct_numbering',$numbering);
$smarty->assign('struct_prefix',$numberPrefix);
$smarty->assign('struct_curdepth',0);
return $smarty->fetch("structures_toc-level.tpl");
//return $this->fetch_toc($structure_tree,$showdesc,$numbering,$type,$asmenu,$detailstyle,$maxdepth);
}- Add options to the wikistructure smarty function to allow it to create phplm - type menus.
- Importance
- 8
- Priority
- 40
- Demonstrate Bug on Tiki 19+
-
This bug has been demonstrated on show2.tiki.org
Please demonstrate your bug on show2.tiki.org
Show.tiki.org is not configured properlyThe public/private keys configured to connect to show2.tiki.org were not accepted. Please make sure you are using RSA keys. Thanks.
- Demonstrate Bug (older Tiki versions)
-
This bug has been demonstrated on show.tikiwiki.org
Please demonstrate your bug on show.tikiwiki.org
Show.tiki.org is not configured properlyThe public/private keys configured to connect to show.tikiwiki.org were not accepted. Please make sure you are using RSA keys. Thanks.
- Ticket ID
- 1045
- Created
- Thursday 05 April, 2007 00:52:26 UTC
by Unknown - LastModif
- Thursday 14 January, 2010 18:59:48 UTC