Page 1 of 1

Page break does not work in 1.7.1. when SEF is on

Posted: Thu Sep 29, 2011 6:59 am
by Poeten
Page break does not work in 1.7.1. when SEF is on. I thought the bug would be fixed in the upgrade. This is the only thing that prevents the me from going from 1.5.23. Have already migrated the site. But long texts must be repaginate.

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Fri Sep 30, 2011 11:46 am
by MantelMedia
I am having the same issue. Hoping for an update.

Cheers

[Moderator Note: no self advertising in posts, URL deleted]

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Fri Sep 30, 2011 2:58 pm
by infograf768
It works with sample data.
See picture for the link: using-joomla/extensions/components/administrator-components
Picture 38.png

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Sun Oct 23, 2011 9:58 am
by Poeten
Hello!

Something happens with this bug? I'm waiting and waiting to get it fixed so that I can finally start using Joomla 1.7.

On our site, we have long texts of 10 000 characters and page break must work.

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Sun Oct 23, 2011 10:11 am
by infograf768
As stated above, I can't reproduce the issue.

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Sun Oct 23, 2011 10:26 am
by Poeten
Strange. You see it here. Click on Sida 2, Sida 3, and so you will see that you are left on the first page. It will not work if you click Nästa at the bottom of the text:
http://www.skrivarsidan.nu/joomla/Bakom-fasaden.html

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Sun Oct 23, 2011 4:16 pm
by infograf768
I suggest
1. make a test without the comments extension
2. make a test with one of the beez templates

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Mon Oct 24, 2011 6:50 am
by Poeten
infograf768: Thanks for the reply!

I have tried both your suggestions with no avail.

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Thu Oct 27, 2011 6:19 pm
by Webdongle
I can confirm there is a Problem but it is difficult to locate.

With 'Table of contents' Off (Content - Pagebreak plugin)
Put a page break in the Beginners Article
In the front end click the readmore on Beginners. The url follows from:
Using Joomla >>> Components >>> Content components >>> Article category list
using-joomla/extensions/components/content-component/article-category-list/8-beginners-title-alias
Then the link to page two is a 404

If that menu item is Unpublished then no menu item is followed by readmore and the url becomes
cat-list/19-joomla/8-beginners-title-alias

If a menu item is created single Article type to the Beginners Article then the readmore follows that url.

I have tested on a test site http://www.weblinksonline.co.uk/j164s/ . Click the readmore of Beginners then the #2

Also replicated on SVN rev 22289

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Mon Oct 31, 2011 8:37 pm
by radiant_tech
Popping in to let you all know I've been looking at this and have found the source of the problem -- just need to sort out the best method to correct it. Hopefully we can have this resolved soon.

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Tue Nov 01, 2011 7:14 am
by Poeten
Thanks for the reply! I look forward to the solution.

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Wed Nov 02, 2011 8:18 pm
by radiant_tech
I've submitted the patch to the tracker at http://joomlacode.org/gf/project/joomla ... m_id=26226

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Wed Nov 02, 2011 9:57 pm
by Webdongle
The patch looks good to me. I tried very hard to break it :D but could not.

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Thu Nov 03, 2011 7:42 am
by Poeten
Thanks so much for the Patch! :)

Unfortunately, I get the following error on the entire site when I try to use it:

Code: Select all

Parse error: syntax error, unexpected T_IF in 
/components/com_content/router.php on line 74
Attach file:

<?php
/**
* @version $Id: router.php 21321 2011-05-11 01:05:59Z dextercowley $
* @package Joomla.Site
* @copyright Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

defined('_JEXEC') or die;

jimport('joomla.application.categories');

/**
* Build the route for the com_content component
*
* @param array An array of URL arguments
* @return array The URL arguments to use to assemble the subsequent URL.
* @since 1.5
*/
function ContentBuildRoute(&$query)
{
$segments = array();

// get a menu item based on Itemid or currently active
$app = JFactory::getApplication();
$menu = $app->getMenu();
$params = JComponentHelper::getParams('com_content');
$advanced = $params->get('sef_advanced_link', 0);

// we need a menu item. Either the one specified in the query, or the current active one if none specified
if (empty($query['Itemid'])) {
$menuItem = $menu->getActive();
$menuItemGiven = false;
}
else {
$menuItem = $menu->getItem($query['Itemid']);
$menuItemGiven = true;
}

if (isset($query['view'])) {
$view = $query['view'];
}
else {
// we need to have a view in the query or it is an invalid URL
return $segments;
}

// are we dealing with an article or category that is attached to a menu item?
if (($menuItem instanceof stdClass) && $menuItem->query['view'] == $query['view'] && isset($query['id']) && $menuItem->query['id'] == intval($query['id'])) {
unset($query['view']);

if (isset($query['catid'])) {
unset($query['catid']);
}

unset($query['id']);

return $segments;
}

if ($view == 'category' || $view == 'article')
{
if (!$menuItemGiven) {
$segments[] = $view;
}

unset($query['view']);

if ($view == 'article') {
if (isset($query['id']) && isset($query['catid']) && $query['catid']) {
$catid = $query['catid'];
- $id = $query['id'];
+ // Make sure we have the id and the alias
+ if (strpos($query['id'], ':') === false) {
+ $db = JFactory::getDbo();
+ $aquery = $db->setQuery($db->getQuery(true)
+ ->select('alias')
+ ->from('#__content')
+ ->where('id='.(int)$query['id'])
+ );
+ $alias = $db->loadResult();
+ $query['id'] = $query['id'].':'.$alias;
+ }
} else {
// we should have these two set for this view. If we don't, it is an error
return $segments;

}
}
else {
if (isset($query['id'])) {
$catid = $query['id'];
} else {
// we should have id set for this view. If we don't, it is an error
return $segments;
}
}

if ($menuItemGiven && isset($menuItem->query['id'])) {
$mCatid = $menuItem->query['id'];
} else {
$mCatid = 0;
}

$categories = JCategories::getInstance('Content');
$category = $categories->get($catid);

if (!$category) {
// we couldn't find the category we were given. Bail.
return $segments;
}

$path = array_reverse($category->getPath());

$array = array();

foreach($path AS $id) {
if ((int)$id == (int)$mCatid) {
break;
}

list($tmp, $id) = explode(':', $id, 2);

$array[] = $id;
}

$array = array_reverse($array);

if (!$advanced && count($array)) {
$array[0] = (int)$catid.':'.$array[0];
}

$segments = array_merge($segments, $array);

if ($view == 'article') {
if ($advanced) {
list($tmp, $id) = explode(':', $query['id'], 2);
}
else {
$id = $query['id'];
}
$segments[] = $id;
}
unset($query['id']);
unset($query['catid']);
}

if ($view == 'archive') {
if (!$menuItemGiven) {
$segments[] = $view;
unset($query['view']);
}

if (isset($query['year'])) {
if ($menuItemGiven) {
$segments[] = $query['year'];
unset($query['year']);
}
}

if (isset($query['year']) && isset($query['month'])) {
if ($menuItemGiven) {
$segments[] = $query['month'];
unset($query['month']);
}
}
}

// if the layout is specified and it is the same as the layout in the menu item, we
// unset it so it doesn't go into the query string.
if (isset($query['layout'])) {
if ($menuItemGiven && isset($menuItem->query['layout'])) {
if ($query['layout'] == $menuItem->query['layout']) {

unset($query['layout']);
}
}
else {
if ($query['layout'] == 'default') {
unset($query['layout']);
}
}
}

return $segments;
}



/**
* Parse the segments of a URL.
*
* @param array The segments of the URL to parse.
*
* @return array The URL attributes to be used by the application.
* @since 1.5
*/
function ContentParseRoute($segments)
{
$vars = array();

//Get the active menu item.
$app = JFactory::getApplication();
$menu = $app->getMenu();
$item = $menu->getActive();
$params = JComponentHelper::getParams('com_content');
$advanced = $params->get('sef_advanced_link', 0);
$db = JFactory::getDBO();

// Count route segments
$count = count($segments);

// Standard routing for articles. If we don't pick up an Itemid then we get the view from the segments
// the first segment is the view and the last segment is the id of the article or category.
if (!isset($item)) {
$vars['view'] = $segments[0];
$vars['id'] = $segments[$count - 1];

return $vars;
}

// if there is only one segment, then it points to either an article or a category
// we test it first to see if it is a category. If the id and alias match a category
// then we assume it is a category. If they don't we assume it is an article
if ($count == 1) {
// we check to see if an alias is given. If not, we assume it is an article
if (strpos($segments[0], ':') === false) {
$vars['view'] = 'article';
$vars['id'] = (int)$segments[0];
return $vars;
}

list($id, $alias) = explode(':', $segments[0], 2);

// first we check if it is a category
$category = JCategories::getInstance('Content')->get($id);

if ($category && $category->alias == $alias) {
$vars['view'] = 'category';
$vars['id'] = $id;

return $vars;
} else {
$query = 'SELECT alias, catid FROM #__content WHERE id = '.(int)$id;
$db->setQuery($query);
$article = $db->loadObject();

if ($article) {
if ($article->alias == $alias) {
$vars['view'] = 'article';
+ $vars['catid'] = (int)$article->catid;
$vars['id'] = (int)$id;

return $vars;
}
}
}
}

// if there was more than one segment, then we can determine where the URL points to
// because the first segment will have the target category id prepended to it. If the
// last segment has a number prepended, it is an article, otherwise, it is a category.
if (!$advanced) {
$cat_id = (int)$segments[0];

$article_id = (int)$segments[$count - 1];

if ($article_id > 0) {
$vars['view'] = 'article';
$vars['catid'] = $cat_id;
$vars['id'] = $article_id;
} else {
$vars['view'] = 'category';
$vars['id'] = $cat_id;
}

return $vars;
}

// we get the category id from the menu item and search from there
$id = $item->query['id'];
$category = JCategories::getInstance('Content')->get($id);

if (!$category) {
JError::raiseError(404, JText::_('COM_CONTENT_ERROR_PARENT_CATEGORY_NOT_FOUND'));
return $vars;
}

$categories = $category->getChildren();
$vars['catid'] = $id;
$vars['id'] = $id;
$found = 0;

foreach($segments as $segment)
{
$segment = str_replace(':', '-',$segment);

foreach($categories as $category)
{
if ($category->alias == $segment) {
$vars['id'] = $category->id;
$vars['catid'] = $category->id;
$vars['view'] = 'category';
$categories = $category->getChildren();
$found = 1;
break;
}
}

if ($found == 0) {
if ($advanced) {
$db = JFactory::getDBO();
$query = 'SELECT id FROM #__content WHERE catid = '.$vars['catid'].' AND alias = '.$db->Quote($segment);
$db->setQuery($query);
$cid = $db->loadResult();
} else {
$cid = $segment;
}

$vars['id'] = $cid;

if ($item->query['view'] == 'archive' && $count != 1){
$vars['year'] = $count >= 2 ? $segments[$count-2] : null;
$vars['month'] = $segments[$count-1];
$vars['view'] = 'archive';
}
else {
$vars['view'] = 'article';
}
}

$found = 0;
}

return $vars;
}

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Thu Nov 03, 2011 9:56 am
by radiant_tech
The patch is meant to be applied through your IDE, rather than simply replacing that file. To do this manually, you would remove any line prefaced by "-" and add those lines prefaced by "+" (and make sure the + and - are no longer in the code).

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Thu Nov 03, 2011 2:43 pm
by Webdongle
As you are unlikely to be applying patches very often here is the edited file. Unzip and use it to replace
/components/com_content/router.php

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Thu Nov 03, 2011 4:31 pm
by Poeten
Webdongle: Thanks so much for file! :D

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Thu Nov 03, 2011 5:01 pm
by Webdongle
Remember that the Patch has only received 1 test and it takes at least 2 before it's fixed in the SVN. However, radiant_tech does seem to be good at what she does( ;) ) so it should work well for you.

The only problem with using Patched files on a live site is that Patches are tested on the SVN. So they are tested in respect to other changes that have been made and in theory may not always match the stable version.

But if you come across another problem you can always replace the original file to see if the Patched file caused the secondary issue.

Hope that helps ?

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Fri Nov 04, 2011 8:27 am
by Poeten
Thanks, it works well with Joomla SEF! Now we just have to get it to work with SH404SEF so we can go live with the site.

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Sat Nov 19, 2011 8:57 am
by LouiePoll
I been having the same bug problem too. But this discussion comes very helpful. Thanks for sharing...

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Sat Nov 19, 2011 10:11 am
by infograf768
The patch has been applied and is now present in 1.7.3

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Fri Dec 02, 2011 12:46 am
by Bill Ray
radiant_tech wrote:Popping in to let you all know I've been looking at this and have found the source of the problem -- just need to sort out the best method to correct it. Hopefully we can have this resolved soon.
Hi, just wanted to alert you that I'm having this problem on 1.7.3 in a child article of a subcategory (NSMD 2012>Feature Articles>Article 1)

http://notsomoderndrummer.com/articles- ... icles.html

Pagebreak is there but does not function. I tried it in Beez and to no avail.

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Fri Dec 02, 2011 1:22 am
by Webdongle
@Bill Ray

Do you have readmore in the Articles ?
Do you have page breaks in the Articles ?
Is it a fresh install or an update ? (if update please list the updates performed on the site).

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Fri Dec 02, 2011 5:23 am
by Bill Ray
I don't have readmore, all I have is one pagebreak in the article.

http://notsomoderndrummer.com/articles- ... icles.html

It's Joomla 1.73 and I've been using the auto updater. I had installed at 1.6.0 and updated manually until 1.7 and have auto updated since.

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Fri Dec 02, 2011 2:54 pm
by Webdongle
Bill Ray wrote:I don't have readmore, all I have is one pagebreak in the article.
.....
Then there is no readmore to display in the blog page
Read more... This button inserts a 'Read more...' break in the Article. This shows as a red dotted line across the Article. If an Article has a 'Read more...' break, only the text before the break, called the Intro Text, will initially display, along with a 'Read more...' link. If the User clicks this link, either the entire Article or just the part after the 'Read more...' link is displayed. This depends on the setting of the 'Intro Text' parameters for the Article and in the Global Configuration. The 'Read more...' break allows you to save space on pages by just showing the Intro Text. Note that the 'Read more...' break only shows in the Featured and Category Blog layouts. If you want to insert breaks for an Article shown in an Article Layout, use the Page Break button.
http://docs.joomla.org/Help17:Content_A ... nager_Edit

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Sat Dec 03, 2011 7:59 am
by Bill Ray
I figured it out; It was an article that was in featured position, as in being displayed within the category. So I inserted a Read More break then the article opens into it's own page and everything works.

One of those "finer points" that can be missed. :D

Re: Page break does not work in 1.7.1. when SEF is on

Posted: Fri Feb 10, 2012 2:54 am
by astrada
My pagebreak was broken even with sef off... I tried everything mentioned on forums web-wide about this issue... Then i decided to try Auto page break, better that than nothing i thought, to my amazement not only that it automatically cut articles in pieces with set number of characters, it actually FIXED page break (manual) insertion problem. O.O