No ! I am not dead !

No ! I am not dead ! I was silent for days (even weeks)….

I was working on a lot of stuffs and I was overloaded ! I finally managed to finish everything this Friday and to conclude : on Friday, my boot harddisk of my personal desktop crashed ! Let’s say it my good period….

I have to look at the bright side…. ;o)

A lot of new things are coming :

  • layout totally renewed.
  • in the coming days, 2 new plugins (psnGeneric and psnSTAT and their administration pages) will be available.
  • On a old PC I just have installed RedHat 9….to play a bit with Linux. That why on, a new category will be created : “Linux / RedHat”.

Oh yeah, I forgot to say : In the coming days, I will remove from this site all the links, categories and posts related to WordPress Development. And I will move them to (and vice-versa).

This will allow me to make an actual difference between and .

WPPlugin psnGeneric soon out

What’s psnGeneric ?

It allows you to display an extract (random or not) of several records based on a key from a table. This can be used to display a random quote, a list of file to download, a list of … in fact, what you want !

How does it work ?

Few functions that you can call from your “index.php”. There is no limitation except your imagination ! The “Quote of the day” and the “Download” sections displayed on this page use this functionnality. Here is the call for the “Quote” :

< ?php the_genRandom( 'QUOTE',1,'','','', ''); ?>

You manage the content via the WP-Admin area (as you can see below).

Nothing to display.

This is only a preview. It will be out and available for download end of this week-end.

Why and ?

Well, at first sight both sites are equal… In fact, was created in the hurry due to issue with the webhoster of But normally, should have been created a little later.

In fact, I planned to create another site dedicated to Web Development with everything related. So let’s say that this site will be soon totally redesigned to be more developper oriented, with different areas, like :

  • CSS/xHTML : Templates / tutorials / links
  • Design : Ideas, discussions about Web Designs
  • PHP/mySQL : Tips and tricks for PHP, mySQL, …
  • WordPress : plugins, tips & tricks, …
  • Showcase : portfolio of several projects done or in progress
  • Testing area : do you really don’t know what it is ? 😉

Normally this site with architecture above will be online soon, probably end of June….

Of course, will stay online but will be more focused on my wife and I.

I am also working on several other WP plugins (with an administration page):

  • psnGeneric v1.0.0 : Random Item: Random Quotes, Books, … based on a table (Totaly generic)
  • psnGallery2 v1.3.0 : Coppermine Gallery (including all supported formats)
  • psnStat v1.0.0 : TFS WebStatistics

Further information on psnGallery2 tags/functions

Out of a post (eg: in index.php)

// Generate tags to display several random pictures from a specific Coppermine album (if -1 : from all albums)
function CPGRndPicture($aid=-1, $count =-1, $nSize=1,$before='',$after='', $activelink=true, $dummy='') // Generate tags to display a full album from a specific Coppermine album (if -1 : from all albums)...
function CPGAlbum($aid, $nCols=4, $nSize=1, $beforeCol="", $afterCol="", $beforeRow="", $afterRow="")

// Get the name of an album
function CPGAlbumName($aid)

// Get the name of a category
function CPGCategoryName($cid)

// Get the number of pictures within an album
function CPGAlbumPicCount($aid)

// Get the album name list of a category
function CPGAlbumListCategory($cid, $count=-1, $nSize=1, $before='', $after='')

// Display a picture (in some modes)
function CPGPicture($pictID, $nSize=1, $before='', $after='', $mode='picture', $dummy=0)

// Display the specific thumbnail associated with an album
function CPGAlbumThumb ($aid, $nSize=1, $before='', $after='')

Within POST

Tag defined Associated function Action

  • <cpg_album> => CPGAlbum($elems[ 0 ], $elems[ 1 ], $elems[ 2 ], $elems[ 3 ], $elems[ 4 ], $elems[ 5 ], $elems[ 6 ]);
  • <cpg_albumcatlist> => CPGAlbumListCategory($elems[ 0 ], $elems[ 1 ], $elems[ 2 ], $elems[ 3 ], $elems[ 4 ]);
  • <cpg_albumname> => CPGAlbumName($elems[ 0 ]) ;
  • <cpg_albumpiccount> => CPGAlbumPicCount($elems[ 0 ]);
  • <cpg_albumthumb> => CPGAlbumThumb($elems[ 0 ], $elems[ 1 ], $elems[ 2 ], $elems[ 3 ], $elems[ 4 ], $elems[ 5 ], $elems[ 6 ]);
  • <cpg_categoryname> => CPGCategoryName($elems[ 0 ]) ;
  • <cpg_gallery> => CPGRndPicture($elems[ 0 ], $elems[ 1 ], $elems[ 2 ], $elems[ 3 ], $elems[ 4 ], $elems[ 5 ], $elems[ 6 ]);
  • <cpg_picture> => CPGPicture($elems[ 0 ], $elems[ 1 ], $elems[ 2 ], $elems[ 3 ], $elems[ 4 ], $elems[ 5 ], $elems[ 6 ]);
  • <gallery> => CPGRndPicture($elems[ 0 ], $elems[ 1 ], $elems[ 2 ], $elems[ 3 ], $elems[ 4 ], $elems[ 5 ], $elems[ 6 ]);

Of course, $elems[ x ] will be replace by the according value:

In other words : <cpg_gallery>1|5|1</cpg_gallery> will become CPGRndPicture(1, 5, 1, ”, ”, ”, ”); and finally :

Another example : <cpg_picture>275|1</cpg_picture> will become CPGPicture(275, 1, ”, ”, ”, ”, ”) and finally :

cpg_picture quickfix

Well, I was too fast to deliver the psnGallery2…In the sql, included in the “package”. There is a “(” too much !

In order to fix the issue. Execute the following sql (eg, from phpMyAdmin) :

UPDATE wp_psnGallery SET value = 'CPGPicture($elems[ 0 ], $elems[ 1 ], $elems[ 2 ], $elems[ 3 ], $elems[ 4 ], $elems[ 5 ], $elems[ 6 ]);' WHERE "kind" = 'TAG' AND "key" = 'picture' LIMIT 1 ;

And here is sample of the display of one specific picture via the tag <cpg_picture>759|1</cpg_picture>


PHP Tag within a post

Based on the work of Stevarino and to answer to WordPress Forum, here is another version :

I found the problem….It comes the formatting functions which convert few “special” characters into more fancy one….

function run_phpinpost($data) {
$PHPTag = "phpcode";
$data = str_replace(array("rn","r"), "n", $data);
while (false !== strpos($data, "< ".$PHPTag .">")) {
$Before= substr($data, 0, strpos($data, "< ".$PHPTag.">"));
$After = substr($data, strpos($data, "")+(strlen($PHPTag)+3));
$Evaluate = substr($data, strpos($data, "< ".$PHPTag.">")+(strlen($PHPTag)+2));
$Evaluate = substr($Evaluate,0,strpos($Evaluate, "")-1);
$Evaluate = str_replace(array("’","‘"),"'", $Evaluate);
$Evaluate = str_replace(array("”","“"),'"', $Evaluate);
ob_start(); // run that data and grab what comes out
$data = $Before.ob_get_clean().$After;
} // end of while
return $data;
} // end of run_phpinpost

add_filter('the_content', 'run_phpinpost');

to use it, simply put the code above in “my-hacks.php”, and in your post use the tags :
<phpcode>php executable code </phpcode>

By the way if you are using an “old” PHP version, the function ob_get_clean() is not existing so :

// To add compatibility with earlier PHP version...(before 4.3.0)
if (!function_exists("ob_get_clean")) {
function ob_get_clean() {
$ob_contents = ob_get_contents();
return $ob_contents;

psnGallery2 1.2.1 changes overview

Well, I know it is always annoying to wait for news…. So here are some… 🙂

The most important addition/change with the release is the fact that all the configuration parameters are now stored in a table in the “wordpress” database (see below to have further information).

Here are the differents news functionnalities available with psnGallery2 1.2.1 :

  • User Defined tags for posting where you associate a tag to php code
  • Coppermine Albums viewer within WP-Admin area
  • Coppermine Pictures viewer within WP-Admin area
  • psnGallery2 parameters viewer within WP-Admin area
  • Fix of few bugs
  • etc…

In the future versions, I will add a “online” configuration of psnGallery2.

Continue reading psnGallery2 1.2.1 changes overview

psnCPGAdmin preview (psnGallery2 admin page)

According the WordPress Support forum, several requests appeared..about having a way to found out the albumid, the pictureid, etc…

So, my answer is :

Here is a preview of the Administration page for psnGallery2 plugin.

psnCPGAdmin Overview

psnCPGAdmin Overview

The new psnGallery2 will be out soon. In fact, I am reviewing the way of handling the “customized” tags and as you can imaigne in the preview above, a management of the plugin parameters is done now via another way (a configuration table). This is in test phase since yesterday.

If I have enough time, the new release (including the admin page) will be available for download tomorrow night (GMT+2).

Just another WordPress weblog