The Serendipity Handbook

You can now read the (german) handbook here: PDF - https://github.com/s9y/Book (LaTeX source).

Forum-Information

Before posting about errors, make sure that the answer cannot already be found in our FAQ or by searching this forum!
Posting is restricted to registered users (registering is free and simple!) due to recent spam attacks. When having trouble with this board, contact garvin(-at)s9y(-dot)org.

Board index Plugins Recent Entries Sidebar

Creating and modifying plugins.
diroddi
Regular
 
Posts: 21
Joined: Sun Jun 10, 2007 11:59 pm

Postby diroddi » Sat Mar 13, 2010 2:08 am

Hi -

Yes the SQL also shows. Have you visited the URL?

User avatar
garvinhicking
Core Developer
 
Posts: 28948
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany

Postby garvinhicking » Sat Mar 13, 2010 10:46 am

Hi!

Ah, I think I got the SQL error. Please check out this file:

http://svn.berlios.de/viewcvs/*checkout ... ntries.php

Best regards,
Garv in
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/

diroddi
Regular
 
Posts: 21
Joined: Sun Jun 10, 2007 11:59 pm

Postby diroddi » Sat Mar 13, 2010 5:17 pm

Hi

I've updated the plugin with your file in cvs.

Plugin-1 works on the overview page. No luck on Plugin-2, neither on a specific entry or a category.

Unknown column 'c.categoryid' in 'on clause'

Looks like it's a problem with this join, but I dont see where it's being set: LEFT JOIN serendipity_access AS acl_acc ON (acl_acc.artifact_mode = 'read' AND acl_acc.artifact_type = 'category' AND acl_acc.artifact_id = c.categoryid)

User avatar
garvinhicking
Core Developer
 
Posts: 28948
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany

Postby garvinhicking » Sat Mar 13, 2010 10:21 pm

Hi!

The problem is that some other plugin on your isntall is also modifying the SQL query (most probably the entryproperties plugin) so it's hard for me to debug; I'm trying to blindly fix your specific problem without being able to properly reproduce it here.

The error happens because the 'category' column is referenced before it's joined. This happens due to my earlier bugfix, which did fix the one issue, but opened up another. Can of worms, I tell you.

I just updated the plugin again (same download link) so maybe you still have the patience to try that one out? I'm really sorry for it taking so long, but I hope you can understand that due to me missing a test-setup where I could easily reproduce the issue :-)

Best regards,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/

diroddi
Regular
 
Posts: 21
Joined: Sun Jun 10, 2007 11:59 pm

Postby diroddi » Sun Mar 14, 2010 5:57 pm

Hi -

I have plenty of patience, and was hoping that you didn't lose yours. I appreciate your help and time in making this work.

I've updated the plugin.

Plugin1 works as expected on the overview page and plugin2 works as expected when viewing an entry. Thanks again!

The only piece missing is limiting entries to the specific category a user is viewing. I'm not even sure it's possible, using 2 plugins or not. Plugin1 is set to 'all' on the 'overview page' and plugin2 is set to 'parent' on 'extended'. I'm sure viewing a category is considered 'overview' because of multiple entries being shown and and is why plugin1 and 'all' are displayed.

I can live with that, but still think it would be better the other way.

User avatar
garvinhicking
Core Developer
 
Posts: 28948
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany

Postby garvinhicking » Mon Mar 15, 2010 10:29 am

Hi!

Great that at least the error is gone.

Having plugin2 set to "Parent" is what should actually do the trick.

Maybe you can edit the plugin file and replace this code at line 140:

Code: Select all
      if ($category == '_cur') {
            $category = $serendipity['GET']['category'];
            if (empty($category) && !empty($serendipity['GET']['id'])) {
                $entry = serendipity_fetchEntry('id', $serendipity['GET']['id']);
                $category = $entry['categories'][0]['categoryid'];
            }
        }


with this:

Code: Select all
      if ($category == '_cur') {
            echo "Parent category elected.<br />\n";
            $category = $serendipity['GET']['category'];
            echo "Catid: $category<br />\n";
            if (empty($category) && !empty($serendipity['GET']['id'])) {
                echo "Checking entry #" . $serendipity['GET']['id'] . "<br />\n";
                $entry = serendipity_fetchEntry('id', $serendipity['GET']['id']);
                $category = $entry['categories'][0]['categoryid'];
                echo "Catid: $category<br />\n";
                print_r($entry);
            } else {
                echo "No data (1)<br />\n";
            }
        } else {
            echo "No data (2)<br />\n";
        }


And then see what the plugin will output to us. I'm guessing that somehow the variable for the entryid might not be set, or the return array is missing data.

Regards,
GArvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/

diroddi
Regular
 
Posts: 21
Joined: Sun Jun 10, 2007 11:59 pm

Postby diroddi » Mon Mar 15, 2010 5:06 pm

Hi -

I've made the change.

When I say 'limiting entries to the specific category a user is viewing', I mean the specific category the user clicked on the sidebar. I figured this would be considered an 'overview' page because there is multiple entries displayed for the chosen category, and is why Plugin1 is being shown.

User avatar
garvinhicking
Core Developer
 
Posts: 28948
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany

Postby garvinhicking » Tue Mar 16, 2010 10:51 am

Hi!

Ah, what I believe the problem is, is that plugin1 is set to "all categories", so when it is displayed on overview pages (which is "all but an entry detail page") it shows entries of all categories. To fix that, I think you can simply remove plugin1, and set plugin2 to "All pages". Then it catches a category ID, if selected (either due to category overview or due to a single entry), and if no category ID is available, it should fall back to displaying entries of all categories.

HTH,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/

diroddi
Regular
 
Posts: 21
Joined: Sun Jun 10, 2007 11:59 pm

Postby diroddi » Wed Mar 17, 2010 5:07 pm

It works perfect! I like using 1 plugin rather than 2 and think it makes for a cleaner solution.

Once again thank you for your time and effort in getting this working. I hope that others will like the new functionality as well.

Cheers!

User avatar
garvinhicking
Core Developer
 
Posts: 28948
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany

Postby garvinhicking » Wed Mar 17, 2010 7:59 pm

Hi!

No problem, you're welcome. I'm glad you staid aboard during this painful step-by-step improvement. :-)

Regards,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/

Previous


Return to Plugins

Who is online

Users browsing this forum: No registered users and 1 guest

cron