jDiction Forum

English => General Questions => Topic started by: nitro29 on October 06, 2013, 08:41:52 pm

Title: JoomSEF compatibility?
Post by: nitro29 on October 06, 2013, 08:41:52 pm
Hi,

Does anyone know if jDiction works along with JoomSEF?

Thank you!

/Soren
Title: Re: JoomSEF compatibility?
Post by: Harald Leithner on October 06, 2013, 08:57:40 pm
hard to say, just test it.

if there is a problem plz come back and report.
Title: Re: JoomSEF compatibility?
Post by: nitro29 on October 07, 2013, 10:59:20 am
Hi Harald,

I am testing it now. Seems to work so far on front-end, however I have following jDiction check:

Version    
    Library Version: 0.9.9.10

Plugin    
    JDiction Plugin is enabled
    Languagefilter is not enabled
    Multiple Plugins have the same loading position (0)

Database    
    jDiction Database Driver is selected

Language    
    Translations are not equal to frontend translations.

Module    
    Module is enabled


JoomSEF requires System - Language Filter is unpublished. It is using its own language filter System Language - ARTIO JoomSEF. I guess jDiction doesn't register this as working in check.

I don't know how to fix: Translations are not equal to frontend translations. Any advice?

I have manually installed jdiction_mysqli.php to libraries/joomla/database/driver, since I had some kind of permission problem when using installer. Are there other files I should check are there?

Thx,

/Soren

JoomSEF v. 4.4.4
Joomla v. 3.1.5 Stable
Title: Re: JoomSEF compatibility?
Post by: Harald Leithner on October 07, 2013, 11:19:56 am
The "Translations are not equal" thing is that there is a difference between installed languages and created content languages.

/administrator/index.php?option=com_languages&view=languages
This page show all content languages, you don't need to have all languages created so this is only a hint.

"Lunguagefilter is not enabled" is not needed if JoomSEF repleaces it.

The jdiction_mysqli.php file is only a proxy so you could select the driver in the backend, no other files are installed anywhere else.
Title: Re: JoomSEF compatibility?
Post by: nitro29 on October 07, 2013, 11:25:54 am
Thank you for your fast reply!

Ok. Shouldn't be a problem with the languages. I have some languages installed that I ended up not using for content, so that is probably why.

I get following error on my frontpage when changing to one of the other installed content languages:
5 - Fehler: 5 "cannot calculate position of lft within BY `lft` DESC"

You can check on my dev url: joomla.vus.as/da

Any ideas?
Title: Re: JoomSEF compatibility?
Post by: Harald Leithner on October 07, 2013, 12:10:22 pm
A component make a query thats not JDatabaseQuery so jdiction tries to analyse the SQL Statement by "hand" and it fails... this ends in an fatal error.

So you have a component that couldn't be handled by jdiction.

Now you have 2 ways. First activate the debug output and check the query that fails. If its by a component that is not needed you can uninstall it ;-)

Second, if the Component is needed I can look at it, any maybe the author can change the query to a better one.

Title: Re: JoomSEF compatibility?
Post by: nitro29 on October 07, 2013, 12:32:37 pm
I get following debug message for the position error:

cannot calculate position of lft within BY `lft` DESC

Call stack   
#      Function      Location   
1      JSite->dispatch()      /www/index.php:52   
2      JComponentHelper::renderComponent()      /www/includes/application.php:220   
3      JComponentHelper::executeComponent()      /www/libraries/legacy/component/helper.php:335   
4      require_once()      /www/libraries/legacy/component/helper.php:355   
5      JControllerLegacy->execute()      /www/components/com_content/content.php:16   
6      ContentController->display()      /www/libraries/legacy/controller/legacy.php:722   
7      JControllerLegacy->display()      /www/components/com_content/controller.php:79   
8      ContentViewCategory->display()      /www/libraries/legacy/controller/legacy.php:685   
9      ContentViewCategory->_prepareDocument()      /www/components/com_content/views/category/view.html.php:207   
10      JRoute::_()      /www/components/com_content/views/category/view.html.php:315   
11      JRouterSite->build()      /www/libraries/joomla/application/route.php:62   
12      JRouter->build()      /www/libraries/cms/router/site.php:97   
13      JRouterSite->_processBuildRules()      /www/libraries/joomla/application/router.php:203   
14      JRouter->_processBuildRules()      /www/libraries/cms/router/site.php:549   
15      call_user_func_array()      /www/libraries/joomla/application/router.php:436   
16      JRouterJoomsef->build()          
17      JoomSEF->build()      /www/components/com_sef/sef.router.php:269   
18      SefExt_com_content->create()      /www/components/com_sef/joomsef.php:525   
19      SefExt->getCategoryInfo()      /www/components/com_sef/sef_ext/com_content.php:442   
20      JdDatabase->loadObjectList()      /www/components/com_sef/sef.ext.php:446   
21      JdDatabase->loadTranslation()      /www/libraries/jdiction/database/jddatabase.php:256   
22      JDatabaseDriver->loadRowList()      /www/libraries/jdiction/database/jddatabase.php:367   
23      JdDatabase->execute()      /www/libraries/joomla/database/driver.php:1391   
24      JdDatabase->addJoinKeys()      /www/libraries/jdiction/database/jddatabase.php:421   
25      MySqlParser->parse()      /www/libraries/jdiction/database/jddatabase.php:500   
26      PositionCalculator->setPositionsWithinSQL()      /www/libraries/jdiction/database/parser/mysql-parser.php:80   
27      PositionCalculator->lookForBaseExpression()      /www/libraries/jdiction/database/parser/classes/position-calculator.php:71   
28      PositionCalculator->lookForBaseExpression()      /www/libraries/jdiction/database/parser/classes/position-calculator.php:204   
29      PositionCalculator->lookForBaseExpression()      /www/libraries/jdiction/database/parser/classes/position-calculator.php:204


So - as I understand it - this expression:
$this->lookForBaseExpression($sql, $charPos, $parsed[$key], $key, $backtracking);
is giving the error

Do you know what that means? :)

Title: Re: JoomSEF compatibility?
Post by: Harald Leithner on October 07, 2013, 12:55:30 pm
19      SefExt->getCategoryInfo()      /home/kaspernj/www/vus.as_joomla/www/components/com_sef/sef_ext/com_content.php:442   

thats the function thats start the query. so the com_sef uses a query syntax that could not be parsed by jdiction.

if you bought JoomSEF then send the Author an E-Mail if you have the free Version try it in the forum if this doesn't help I will try to contact him.
Title: Re: JoomSEF compatibility?
Post by: nitro29 on October 07, 2013, 01:30:16 pm
Ok, thank you. I have support, but not VIP. I think - unfortunately - they have ridiculous answer times.. I will try my luck :)

Thank you so far!!
Title: Re: JoomSEF compatibility?
Post by: nitro29 on October 21, 2013, 11:03:28 am
Hi Harald,

I have tried numerous ways to contact JoomSEF support, but with no response so far.

If you feel like it, you are most welcome to try and contact him, as you suggested above.

Thank you.
Title: Re: JoomSEF compatibility?
Post by: Harald Leithner on October 21, 2013, 11:41:49 am
I don't see a good way to contact them, only an email address that looks more for the company then the Joomla components....

Anyway I have to find a better solution then the mysql parser, but this can take some time.
Title: Re: JoomSEF compatibility?
Post by: nitro29 on November 07, 2013, 04:41:24 pm
Hi,

Finally I got an answer from JoomSEF. It reads:

_____________

The SQL query used in JoomSEF shouldn't cause any problems. It works correctly with clean Joomla and with both JoomFish and FaLang.

I'm sorry, but I don't know what the error message "5 - cannot calculate position of lft within BY `lft` DESC" means - I think the author of the query parser should check what exactly it means and fix it.

This should be the whole query:
SELECT `id`, `title`, `alias`, `description`, language, `metakey`, `metadesc`, `metadata`, `parent_id` FROM `#__categories` WHERE `lft` = '' AND id!=1 ORDER BY `lft` DESC

Where $idx->lft and $idx->rgt are values obtained by:
SELECT `lft`, `rgt` FROM `#__categories` WHERE `id` = ''

Where $id is the ID of the content category.

I don't see any problem with it.

__________


Can you make anything of this?
Title: Re: JoomSEF compatibility?
Post by: nitro29 on November 11, 2013, 10:24:21 am
Hi Harald,

They are going to close my support case on JoomSEF. Is there any more info you need from them if you want to change your parser in a future update?

Best,

Soren
Title: Re: JoomSEF compatibility?
Post by: Harald Leithner on November 12, 2013, 12:42:19 pm
I will change the parser of jdiction, but I need my time for this.
Title: Re: JoomSEF compatibility?
Post by: nitro29 on November 12, 2013, 05:29:50 pm
Wow, great! I really appreciate that.

Thank you.

/Soren
Title: Re: JoomSEF compatibility?
Post by: nitro29 on January 06, 2014, 02:54:40 pm
Happy new year.

Is there any news regarding the parser upgrade? :)
Title: Re: JoomSEF compatibility?
Post by: Harald Leithner on January 06, 2014, 03:30:27 pm
Its pending. I have to finish 2 projects before i could start