Showing posts with label web. Show all posts
Showing posts with label web. Show all posts

Monday, March 14, 2011

Adding WP-PostRatings to Thematic by creating a Child Template (WordPress)

As my previous post says, I wanted to add the WP-PostRatings plug-in to all posts in a Thematic theme. Later I found out that the recommended way of doing this is through WordPress Child themes.
So I read in this aricle the basics of how to create and customize a child template.
Basically the steps to include the plug-in are the following:
  • You start with an untouched Thematic theme
  • Go to wp-content/themes/thematic/
  • Move the thematicsamplechildtheme folder one level up (to wp-content/themes/) and rename it by preference. You just created your new Child Theme.
  • You may modify the template's name by editing the style.css file's first few lines.
  • To add the previously installed WP-PostRatings plug-in to the theme, edit the functions.php file and add the following to the file's end. I copied the function from the parnet theme's content-extensions.php file.
post_type == 'page') {
         $postheader = thematic_postheader_posttitle();        
     } else {
         $postheader = thematic_postheader_posttitle() . thematic_postheader_postmeta();    
     }
     
     echo apply_filters( 'thematic_postheader', $postheader ); // Filter to override default post header
    if(function_exists('the_ratings')) { the_ratings(); } // This command will actually insert the ratings in each post.
}
?>

Enjoy your new theme and I wish you high ratings! :-)

The WP-PostRatings plug-in and the Thematic theme (WordPress)

A few weeks ago I started playing with WordPress because I want to make a personal blog & portfolio website for my girlfriend.
The Thematic theme seems to fit my needs because it's very clean and minimalist. I also found the WP-PostRatings plug-in very nice and easy to use - unfortunately there is not much detail how to make the plug-in appear for each post by default. For someone who is not a (php) programmer this can be quite a challenge.

So, to make the little stars appear below each post's title:
UPDATE: Later I found out that messing with the original theme files is not recommended. Instead, creating a child theme is the preferred way of doing this. I noted the steps in my next post.
Edit the /wp-content/themes/thematic/library/extensions/content-extensions.php file
Find the definition of the thematic_postheader() function
paste the following line after the echo apply_filters(...) command:

if(function_exists('the_ratings')) { the_ratings(); }



















For the record, I was using:

  • WordPress 3.1
  • Thematic v0.9.7.7
  • WP-PostRatings v1.61
I think the approach will be similar for the WP-PostViews plug-in.

Friday, December 4, 2009

Installing the Geo::IP plug-in for AWStats when ActivePerl distribution is 5.10.x

There are lots of tutorials how to install the Geo::IP::PurePerl plug-in for AWStats, but they specify ppm packages only for ActivePerl versions 5.6 and 5.8. I had to dig google a bit to find the repositories for ActivePerl 5.10. I found the Geo-IP-PurePerl packages here.

To install the x86 Perl Package:
C:\>ppm install http://ppm4.activestate.com/MSWin32-x86/5.10/1000/B/BO/BORISZ/Geo-IP-PurePerl-1.24.ppmx
Add the following line to awstats.yourwebsite.conf file:
LoadPlugin="geoip GEOIP_STANDARD C:\Program Files\GeoIP\GeoIP.dat"
After this, create a directory C:\Program Files\GeoIP and extract here the latest country database file, GeoIP.dat, from here. You have to grant the IUSR_ account read access to this file, otherwise you'll get the error message:
Error: Plugin init for plugin 'geoip' failed with return code: Error opening c:\Program Files\GeoIP\GeoIP.dat at C:/Perl/site/lib/Geo/IP/PurePerl.pm line 183. (A module required by plugin might be missing).
Setup ('C:\Inetpub\wwwroot\AWStats\cgi-bin/awstats.yourwebsite.conf' file, web server or permissions) may be wrong.

Making AWStats work with default IIS logging.

By default, IIS logs the following:
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status
This is nice, but bytes sent is not logged by default by IIS, although AWStats needs this and will give you the error message:
Error: Your personalized LogFormat does not include all fields required by AWStats (Add %bytesd in your LogFormat string).
Fortunately, sc-substatus is always 0 and it's logged, so at least you can see statistics for page hits, operating systems, browsers... except traffic. The LogFormat for the awstats.YourSite.conf file should be the following:
LogFormat = %time2  %other %other %method %url %query %other %logname %host %ua %code %bytesd %other
NOTE: you have to import log data in chronological order before you start scheduling awstats updates, so it's a good idea to make a batch file to do this for you:
awstats.pl -config=DefaultWebSite -update -logfile=c:\WINDOWS\system32\Logfiles\W3SVC1930027649\ex091124.log
awstats.pl -config=DefaultWebSite -update -logfile=c:\WINDOWS\system32\Logfiles\W3SVC1930027649\ex091125.log
awstats.pl -config=DefaultWebSite -update -logfile=c:\WINDOWS\system32\Logfiles\W3SVC1930027649\ex091126.log