View Issue Details

IDProjectCategoryView StatusLast Update
0002453OXID eShop (all versions)4.09. SEO, SEO URLpublic2012-12-10 13:35
Status resolvedResolutionfixed 
Product Version4.4.5 revision 31315 
Target VersionFixed in Version4.4.7 revision 33396 
Summary0002453: oxseohistory only created partially
Descriptionrequires: article is in more than one category

when renaming an article, seo entries are marked as expired -> correct
after calling the category list page, new link for article is generated -> correct
before creating the new link in oxseo, the hast of the old link goes to oxseohistory -> wrong

the link that goes to seohistory, is choosen randomly due a bug in the oxseoencoder:

oxseoencoder.php:197 _copyToHistory EE 4.4.5 31315
        $sSub = "select $sObjectid, MD5( LOWER( oxseourl ) ), oxshopid, oxlang, now() from oxseo
                 where {$sType} oxobjectid = ".$oDb->quote( $sId )." and oxshopid = ".$oDb->quote( $iShopId )." and
                 oxlang = {$iLang} limit 1";

The select statement filters all links of the article, not limited to the current category. Because of the LIMIT 1 only one link will be inserted into oxseohistory.

Solution should be adding a check for the current category within the query, so the limit 1 will be obsolete.

As a hotfix, i removed the LIMIT 1 and added a check for oxexpired = 1, so every expired link goes to history. That will bring some overhead but better than a not working seo history.
TagsNo tags attached.
PHP Versionany
Database Versionany



2011-02-14 10:31

reporter   ~0004117

thank you for report!