2009/12/3 12:10:17
|
---|
|
[Trac Ticket #21] ACP Breadcrumbs in 1.3After discussing with Phoenyx and his solution for a dirst fix for the lack of ACP breadcrumbs. We have concluded that this feature needs to be enhanced - and it needs to be done for 1.3 as the new ACP theme requires breadcrumbs to be working.
Here is the fix Phoenyx has come up with so far. kernel/module.php function displayAdminMenu($currentoption = 0, $breadcrumb = '', $submenus = false, $currentsub = -1) [line 277] before the function is closed add global $icmsAdminTpl; $icmsAdminTpl->assign('breadcrumb', $breadcrumb); This will pass the breadcrumbs that the module declares - however - this does nothing if the adminmenu is not constructed with IPF, and as it stands the modules menus that are being constructed with IPF are only passing the current pagename - which is fine. However - all of the system pages are only passing the term "System" as the pagetitle, so my current approach is lacking any real depth. I heartily believe that system pages should pass a legitimate pagetitle. so if you are in Version Checker - the pagetitle should be Version Checker and not just System. Anyway - here is the constructor for the breadcrumbs I have assembled in the template. <a href="<{$icms_url}>/admin.php">ACP Home</a> <span style="margin: 0px 4px;">></span> <{if $icms_dirname != 'system'}><a href="../"><{$icms_dirname}></a> <{if $breadcrumb != ''}><span style="margin: 0px 4px;">></span> <strong><{$breadcrumb}></strong><{/if}><{else}><strong><{$icms_pagetitle}><{/if}> Now as you can see - I am checking against the active directory being system - which is the only way I could think of to assure that the pagetitle was not always being displayed for system pages - the issue here is that modules make use of the system module for a lot of their config pages... which means that the breadcrumb is going to report false information regarding the actual steps taken to reach the current page from the ACP Index. Solution: no idea - ideally <{$breadcrumb}> should automatically be generating an actual breadcrumb trail without having to <{if/else/fake}> it. Thoughts? I have opened a ticket for this issue. [t:852] Edited by UnderDog on 2011/3/3 5:24:12
|
2009/12/3 13:12:13
|
---|
|
Re: ACP Breadcrumbs in 1.3I thought of a breadcrumb class which we could introduce to handle that providing methods for adding a deeper level (e.g. Profile >> Audio >> Edit) instead of constructing the breadcrumb in the module itself every time. This might make sense, however it might also make no sense.
The other option would be to take this as a reason to clean all breadcrumbs created systemwise. |
2009/12/3 13:15:10
|
---|
|
Re: ACP Breadcrumbs in 1.3I like the idea of a single class that inspects the page and constructs the breadcrumb. Although - I am open for anything that actually works :)
|
2009/12/3 20:04:07
|
---|
|
Re: ACP Breadcrumbs in 1.3Have a look at the xoopstree class - it is used by several modules when there is a hierarchy of content (category - subcategory - item). There is also a breadcrumb separator language constant already defined.
|
2009/12/4 0:36:32
|
---|
|
Re: ACP Breadcrumbs in 1.3Xoopstree is there, but if you read the methods it offers, you'll notice it seems more suitable for News module category selector box, not for breadcrumbs.
Besides that, I wouldn't like breadcrumbs rendering to be hardcoded, that is, I don't like: <{$breadcrumbs}> This is the way some modules render their own breadcrumbs, forcing any designer to hack the module if the want the breadcrumbs HTML to be different. I'd prefer breadcrumbs rendering to be controlled by a template. That is, $breadcrumbs should be an array that we process in the theme, like this: <{includeq file=$theme_name/breadcrumbs.html breadcrumbs=$breadcrumbs }> Besides offering more control during breadcrumbs render, the template would be reusable. Maybe our site's information requires a bi-dimensional or three-dimensional classification system, who knows. |
2009/12/4 11:29:25
|
---|
|
Re: ACP Breadcrumbs in 1.3Don't forget: This is all about the backend (ACP). We're not talking about the frontend here.
We could also name it $acp_breadcrumb. There's no real difference in the code for that . |
2009/12/4 11:32:42
|
---|
|
Re: ACP Breadcrumbs in 1.3I do understand where he is coming from - being able to control the delimiters and styleing in the breadcrumbs would be nice.
At this point - I would be happy if it just worked :) I will wait and complain about how it works later down the line. :lmao: |
2009/12/5 17:55:03
|
---|
|
Re: ACP Breadcrumbs in 1.3Quote:
Done properly, it would apply to all areas of the site, without having to duplicate code and adjust it for a variation. |
2011/3/3 3:39:59
|
---|
|
Re: ACP Breadcrumbs in 1.3 |
_________________
|
2011/3/21 13:41:52
|
---|
|
Re: [Trac Ticket #21] ACP Breadcrumbs in 1.3I've checked in the beta release, and the breadcrumbs are still having the same issues.
Anyone that can have a look into this? |
_________________
|
2011/3/21 14:53:24
|
---|
|
Re: [Trac Ticket #21] ACP Breadcrumbs in 1.3Is this of any help?
/** * Breadcrumb * * Managing page breadcrumb * * @copyright The ImpressCMS Project http://www.impresscms.org/ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU General Public License (GPL) * @category ICMS * @package View * @subpackage Breadcrumb * @author marcan <marcan@impresscms.org> */ class icms_view_Breadcrumb { private $_tpl; private $items; /** * Constructor * @param array $items An array of items for the breadcrumb */ public function __construct($items) { $this->items = $items; } /** * Adds the breadcrumb items to the template * @param boolean $fetchOnly Whether to display the breadcrumbs, or not */ public function render($fetchOnly = FALSE) { $this->_tpl = new icms_view_Tpl(); $this->_tpl->assign('icms_breadcrumb_items', $this->items); if ($fetchOnly) { return $this->_tpl->fetch('db:system_breadcrumb.html'); } else { $this->_tpl->display('db:system_breadcrumb.html'); } } } |
2011/3/22 1:56:21
|
---|
|
Re: [Trac Ticket #21] ACP Breadcrumbs in 1.3For both ACP & Frontside? Lets try it out .. and make it so if good
|
2011/3/22 4:43:23
|
---|
|
Re: [Trac Ticket #21] ACP Breadcrumbs in 1.3I am not very familiar with 1.3 yet, but it looks like that is only assigned to icm_tpl and not admin_tpl. Yes?
|
2011/3/22 7:07:05
|
---|
|
Re: [Trac Ticket #21] ACP Breadcrumbs in 1.3This was in 1.2.x (class/icmsbreadcrumb.php)
I don't see the breadcrumb template inside any other template - it would need to be added, along with the assignment of the values. |
2011/3/24 12:45:08
|
---|
|
Re: [Trac Ticket #21] ACP Breadcrumbs in 1.3If I read the discussion correctly (thanks skenow for pointing that out), Will and Phoenyx would like the breadcrumbs to be automatic. Nachenko would like to pass an array to the breadcrumb class, as that would be more flexible.
If that is the case, these are two opposing things. We'll need to agree on a solution, and then implement it. Skenow posted a proposal of a class. Would that class be a good start, or are there things that need to be added? |
_________________
|
2011/4/7 14:34:31
|
---|
|
Re: [Trac Ticket #21] ACP Breadcrumbs in 1.3Bumping this one. I guess if no response is given to this, then the current implementation in the 1.3 beta is ok.
If not, let me know asap. :thumbup: |
_________________
|