I would like to have content item navigation in some parts of a site (e.g. a blog of news) but not others (e.g. a category of articles that have no inherent ordering).
It appears that this is controlled only by the Global Configuration; but there seems to be no good reason for that. The other content options in Global Configuration are merely defaults that can be over-ridden by a menu item.
More generally, it seems that there are various non-orthogonalities in the options available for displaying content. If these are accidental, I'd like to suggesting fixing them.
Thanks!
Content item navigation in some places and not others?
-
- Joomla! Intern
- Posts: 57
- Joined: Mon Feb 13, 2006 12:03 am
- Contact:
-
- Joomla! Intern
- Posts: 57
- Joined: Mon Feb 13, 2006 12:03 am
- Contact:
Re: Content item navigation in some places and not others?
Well, I did a patch for this.
In components/com_content/content.php,
changed the line:
to
and added a new function:
This allows control of content item navigation (i.e. previous/next links) on a per-category basis.
It's driven off the jos_categories table, for which I added an extra boolean field "item_navigation". To do that, you can use phpMyAdmin, or the SQL is
Then I used phpMyAdmin to set this field to 1 in the categories where I wanted item nav. There were only two of those, so defaulting to 0 was the right thing.
To make this clean, you'd want to add a field in the category administrator, but I'm happy enough to use phpMyAdmin, because it will be rare for me to want to turn on item navigation in a category.
Frankly, I find it hard to imagine a scenario in which you'd want to have item navigation turned on globally.
In components/com_content/content.php,
changed the line:
Code: Select all
$params->set( 'item_navigation', $mainframe->getCfg( 'item_navigation' ) );
Code: Select all
$params->set( 'item_navigation', item_navigation_for ( $row->id ) );
Code: Select all
function item_navigation_for ( $id ) {
global $database;
$query = "SELECT catid FROM #__content WHERE id = $id";
$database->setQuery( $query );
$cat_id = $database->loadResult();
$query = "SELECT item_navigation FROM #__categories WHERE id = $cat_id";
$database->setQuery( $query );
return (boolean) ($database->loadResult());
}
It's driven off the jos_categories table, for which I added an extra boolean field "item_navigation". To do that, you can use phpMyAdmin, or the SQL is
Code: Select all
ALTER TABLE `jos_categories` ADD `item_navigation` BOOL NOT NULL DEFAULT '0';
To make this clean, you'd want to add a field in the category administrator, but I'm happy enough to use phpMyAdmin, because it will be rare for me to want to turn on item navigation in a category.
Frankly, I find it hard to imagine a scenario in which you'd want to have item navigation turned on globally.
Webmaster, approachingaro.org and arobuddhism.org
-
- Joomla! Intern
- Posts: 65
- Joined: Fri Apr 27, 2007 3:18 pm
Re: Content item navigation in some places and not others?
Hi There
a1tsal.... I've been looking for ages (along with many others I think) to try and find how to do this... even so, I shied away from your patch, 'cos it does seem a little complicated. Anyway, I did run through this process, using Joomla! 1.0.13 and after all said and done I get an error returned on any content item:
"Call to undefined function: item_navigation_for() in /home/MYHOSTINGACCOUNT/public_html/components/com_content/content.php on line 1468"
I don't really know php, only how to copy and paste so any help you or anyone could give to get this working would be better than fantastic!
Cheers!
John
a1tsal.... I've been looking for ages (along with many others I think) to try and find how to do this... even so, I shied away from your patch, 'cos it does seem a little complicated. Anyway, I did run through this process, using Joomla! 1.0.13 and after all said and done I get an error returned on any content item:
"Call to undefined function: item_navigation_for() in /home/MYHOSTINGACCOUNT/public_html/components/com_content/content.php on line 1468"
I don't really know php, only how to copy and paste so any help you or anyone could give to get this working would be better than fantastic!
Cheers!
John
Sing all the earth
-
- Joomla! Fledgling
- Posts: 2
- Joined: Mon Jun 25, 2007 7:22 am
Re: Content item navigation in some places and not others?
Got this working nicely. Thanks lots a1tsal.
John, its sounds like your problem is that you've pasted the "item_navigation_for" function in the wrong place (easy mistake if you don't know PHP).
This part:
needs to be pasted in-between the other functions. Try pasting it on around line 1547, just before the line
It should also be pointed out that this nice little hack doesn't add anything to the interface to let you turn the navigation on and off. To do this you'll have to edit the entries in the "jos_categories" table in the database. Find the entry for the category you need navigation turned on and edit the "item_navigation" field from 0 to 1.
John, its sounds like your problem is that you've pasted the "item_navigation_for" function in the wrong place (easy mistake if you don't know PHP).
This part:
Code: Select all
function item_navigation_for ( $id ) {
global $database;
$query = "SELECT catid FROM #__content WHERE id = $id";
$database->setQuery( $query );
$cat_id = $database->loadResult();
$query = "SELECT item_navigation FROM #__categories WHERE id = $cat_id";
$database->setQuery( $query );
return (boolean) ($database->loadResult());
}
Code: Select all
function show( $row, $params, $gid, &$access, $pop, $option='com_content', $ItemidCount=NULL ) {
-
- Joomla! Intern
- Posts: 65
- Joined: Fri Apr 27, 2007 3:18 pm
Re: Content item navigation in some places and not others?
Hi AAZ
Thanks for the reply. It worked! (When I remembered to also post the first line of code as well as follow the instruction you posted! Thanks!
Really appreciate your help.
John
Thanks for the reply. It worked! (When I remembered to also post the first line of code as well as follow the instruction you posted! Thanks!
Really appreciate your help.
John
Last edited by johnnybgoodwin on Mon Nov 19, 2007 3:59 pm, edited 1 time in total.
Sing all the earth