English > Install & Configure jDiction

Installation not working

<< < (3/6) > >>

Harald Leithner:
This version use less mootools in Joomla 3+
I didn't replaced the formvalidation and tooltip handling because I didn't found a jquery replacement... maybe I missed it.

joebarrus:
Harald,
Got things working.  I think your latest patch made a difference.  I also removed some extensions I no longer needed including some plugins that were at position 0.  I moved all plugins to position 2 except one - Crosstec.de Contentbuilder.  I had to place it at position 1 to work.  But only the Language Filter is at position 0 and jDiction and Contentbuilder at position 1 with everything else position 2 or higher.

so far everything seems to work including the menus.  Not sure what fixed that.  :)

Thanks for the help.  Nice component, very intuitive to use.

Joe

joebarrus:
Ok things were working until I tried to load my Contentbuilder froms.  Contentbuilder is a forms type extension from Crosstec.de.   If I tried to load the form it broke.  After many more hours of debugging I figured it out.  Your database driver searches for table name of #__content to decide if it should translate.  When Contentbuilder loads a form, it sends this query through the driver

sql = '
            Select
                forms.config,
                forms.verification_required_view,
                forms.verification_required_new,
                forms.verification_required_edit,
                forms.verification_days_view,
                forms.verification_days_new,
                forms.verification_days_edit,
                forms.verification_url_view,
                forms.verification_url_new,
                forms.verification_url_edit,
                contentbuilder_users.userid,
                forms.limit_add,
                forms.limit_edit,
                (Select count(id) From #__facileforms_records Where form = 3 And user_id = 407)  As amount_records,
                contentbuilder_users.verified_view,
                contentbuilder_users.verified_new,
                contentbuilder_users.verified_edit,
                contentbuilder_users.verification_date_view,
                contentbuilder_users.verification_date_new,
                contentbuilder_users.verification_date_edit,
                contentbuilder_users.limit_add As user_limit_add,
                contentbuilder_users.limit_edit As user_limit_edit,
                contentbuilder_users.published
                ,\'0\' As edited
            From
                #__contentbuilder_forms As forms
                Left Join
                    #__contentbuilder_users As contentbuilder_users
                On ( contentbuilder_users.form_id = forms.id And contentbuilder_users.userid = 407 )
               
            Where
                forms.id = 32
            And
                forms.published = 1

As you can see, it selects from a table called #_contentbuilder which equates to TRUE in a strpos() search in your driver in the translateQuery() function within this piece of code
      //search for a supported table
      $tables = $this->jd->getTable();
      foreach($tables as $table) {
        if (strpos($this->sql, $table->name) !== false) {
          $translate = true;
        }
Well the condition evaluates to TRUE since #__content is the beginning #__contentbuilder.  You need to search for for an exact match.

I patched it by concatenating a space after $table->name but I think the best answer is to replace strpos with a regex match.

Joe

Harald Leithner:
The problem is not so easy to solve. A regex maybe work but the table name could have some forms like space or return or enclosed.

And speed is a factor at this position. Starting a regex has a hugh overhead. But if you have ine I will consider it.

Thx

joebarrus:
regex is not so bad on speed.  But I've run into another problem.

Same contentbuilder is joining #__content in a query like this part of a query.
.......
                From
                    #__contentbuilder_records As records
                    Left Join #__contentbuilder_forms As form On ( form.`type` = records.`type` And form.reference_id = records.reference_id )
                    Left Join #__contentbuilder_articles As article On ( form.`type` = records.`type` And form.reference_id = records.reference_id And article.form_id = form.id And article.record_id = records.record_id )
                    Left Join #__content As content On ( form.`type` = records.`type` And form.reference_id = records.reference_id And article.article_id = content.id And article.form_id = form.id And article.record_id = records.record_id )

So my forms load still keeps failing.   Getting late here, will work on it more tomorrow.  Do other translation extensions have the same issue?

thanks

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version