NAVIGATION
translate
Tag: {GET_RANDOM_ALIAS_IMG_URL:image-path}
E.g. {GET_RANDOM_ALIAS_IMG_URL:picture/images/test}
Forum: {GET_RANDOM_ALIAS_IMG_URL}
Authors: tinoo, pepe(starter), RCS robin c. sherwood (adapting and mixing up the code)
Last modified: 23.01.2006 created/mixed up
Filename: rt_get_random_alias_img_url.php
Folder: /template/inc_script/frontend_render/
Switch: $phpwcms['allow_ext_render'] = 1; (/config/phpwcms/conf.inc.php)
Location: /template/inc_script/frontend_render/rt_get_random_alias_img_url.php
{GET_RANDOM_ALIAS_IMG_URL:image-path}
<?php /******************************************** titel: {GET_RANDOM_ALIAS_IMG_URL} Replacement-Tag description: {GET_RANDOM_ALIAS_IMG_URL:image-path} This Replacement-Tag is based on {RANDOM} tag. It started as a mixup of tinoos adapted random code and pepes strip-prefix.php. It creates the path info of random pictures related to your point of view in a website (like "picture/Image/structure- aliasname/pic1.png". This tag can be used at places like table background where no <img>-tag is required. --------------------------------------------- example: {GET_RANDOM_ALIAS_IMG_URL:picture/Image} or <table style="background-image: url ({GET_RANDOM_ALIAS_IMG_URL:picture/Image});" or even <img src="{GET_RANDOM_ALIAS_IMG_URL:picture/Image}"> in an "HTML" contentpart. <a href="link-to-somewhere"><img src="{GET_RANDOM_ALIAS_IMG_URL:picture/Image}" border="0"></a> --------------------------------------------- The directories "alias1" "alias2" ... are subdirectories of picture/Image (you have to create them according to your given aliases "alias1" "alias2"... in admin/site structure). The complete path to the random pictures is then: www.yourdomain.com/picture/Image/alias1/ www.yourdomain.com/picture/Image/alias2/ and so on. The advantage of defining the alias-dirs in "picture/Image" is that this dir is used by fckeditor and you then can upload pictures per FTP and/or per fckeditor. It will deliver the pictures of the appropriately defined dir according to where you are in the site. --------------------------------------------- notice: name this file get_random_alias_img_url.php and copy it to phpwcms_template/inc_script/frontend_render --------------------------------------------- authors: tinoo, pepe(starter), RCS robin c. sherwood (adapting and mixing up the code) last modified: 23.01.2006 created/mixed up ********************************************/ // ---------------------------------------------------------------- // obligate check for phpwcms constants if (!defined('PHPWCMS_ROOT')) { die("You Cannot Access This Script Directly, Have a Nice Day."); } // ---------------------------------------------------------------- function get_random_image_url_based_on_alias($path) { // returns a random image url from the given path // it looks for image of following type: gif, jpg, jpeg, png $alias = $GLOBALS['content']['struct'][($GLOBALS['aktion'][0])]['acat_alias']; $mypath = ($path."/".$alias); $imgArray = array(); $imgpath = str_replace("//", "/", PHPWCMS_ROOT."/".$mypath."/"); $imageinfo = false; if(is_dir($imgpath)) { $handle = opendir( $imgpath ); while($file = readdir( $handle )) { if( $file != "." && $file != ".." ) { if( preg_match('/(\.jpg|\.jpeg|\.gif|\.png)$/', strtolower($file)) ) $imgArray[] = $file; } } closedir( $handle ); } if(sizeof($imgArray)) $imageinfo = is_random_image($imgArray, $imgpath); return ($imageinfo) ? "".$mypath."/".$imageinfo["imagename"]: ""; } $content["all"] = preg_replace('/\{GET_RANDOM_ALIAS_IMG_URL:(.*?)\}/ie', 'get_random_image_url_based_on_alias("$1");', $content["all"]); ?>
This snippet can be used at places like background in css constructions where no <img>-tag is required.
Description: rt_get_random_level_img_url.php
This snippet is using the function of {RANDOM} tag. It search for pictures in the path you have setup in $_image_path like e.g. picture/random[XX]/pic1.png”.
Where XX is the id of the active category in site structure of the given level ( setup in $_level_base).
If you have setup $_level_base to “false”, $_image_path is the fallback image path. All pictures will be searched in the folder.
If you have setup $_level_base to e.g. “1” and your active category is a sub category of the category in level 1 e.g. “id=43”, the image path is converted to “picture/random43/”.
From all the images in “picture/random43/” one becomes randomly selected.
Example: given structure:
home (id=0) level 0 - cat01 (id=01) level 1 - cat02 (id=22) level 1 --- cat02_01 (id=45) level 2 --- cat02_02 (id=46) level 2 - [active category] - cat03 (id=33) level 1
$_level_base = 1; $_image_path = picture/random;
The snippet will generate a path like picture/random22/ and checks for all images in this path.
If “picture/random22/” does not exist, then the images will be searched in the fallback path “picture/random/”.
The same if $_level_base = false;
Notice: Name this file rt_get_random_level_img_url.php and copy it to phpwcms_template/inc_script/frontend_init/
Condition: → /config/phpwcms/conf.inc.php
Author: Knut Heermann (flip-flop) http://planmatrix.de
Last modified: 03.01.2010 created/mixed up
Location: /template/inc_script/frontend_init/rt_get_random_level_img_url.php
rt_get_random_level_img_url.php
<?php /********************************************************************************************* This snippet can be used at places like background where no <img>-tag is required. description: rt_get_random_level_img_url.php This snippet is using the function of {RANDOM} tag. It search for pictures in the path you have setup in $_image_path like e.g. "picture/random[XX]/pic1.png". Where XX is the id of the active category in site structure of the given level ( setup in $_level_base). If you have setup $_level_base to "false", $_image_path is the fallback image path. All pictures will be searched in the folder. If you have setup $_level_base to e.g. "1" and your active category is a sub category of the category in level 1 e.g. "id=43", the image path is converted to "picture/random43/". From all the images in "picture/random43/" one becomes randomly selected. This tag can be used at places like table background where no <img>-tag is required. --------------------------------------------------------------------- example: given structure: home (id=0) level 0 - cat01 (id=01) level 1 - cat02 (id=22) level 1 --- cat02_01 (id=45) level 2 --- cat02_02 (id=46) level 2 - [active category] - cat03 (id=33) level 1 $_level_base = 1; $_image_path = picture/random; The snippet will generate a path like picture/random22/ and checks for all images in this path. If "picture/random22/" does not exist, then the images will be searched in the fallback path "picture/random/" The same if $_level_base = false; --------------------------------------------------------------------- notice: name this file rt_get_random_level_img_url.php and copy it to phpwcms_template/inc_script/frontend_init --------------------------------------------------------------------- author: Knut Heermann (flip-flop) http://planmatrix.de last modified: 03.01.2010 created/mixed up **********************************************************************************************/ // ------------------------------------------------------------------------------------------- // obligate check for phpwcms constants if (!defined('PHPWCMS_ROOT')) { die("You Cannot Access This Script Directly, Have a Nice Day."); } // ------------------------------------------------------------------------------------------- // ===== CUSTOM SETTINGS ===================================================================== $_image_path = 'picture/random'; // path where the default (and fallback) images are $_level_base = 1; // false = off | Level-No = on e.g. 1 = TopLevel // ===== CUSTOM SETTINGS END ================================================================= if ( ($_level_base !== false) AND (isset($LEVEL_ID[$_level_base])) AND (is_dir($_image_path.$LEVEL_ID[$_level_base] )) ) $_image_path .= $LEVEL_ID[$_level_base]; // e.g. picture/random24 is the image path for images in category ID=24 and their subcategories // $template_default['body']['id'] = 'bg-image'; // it will be produced always "bg-image[cat-id]" $template_default['body']['class'] = 'bg-image id-'; // it will be produced always "bg-image[cat-id]" // Hm I want to write some default CSS $block['custom_htmlhead']['mycss'] = ' <style type="text/css" media="screen">' . LF . ' <!--' . LF; // $block['custom_htmlhead']['mycss'] .= ' #bg-image'.$content['cat_id'].' { ' . LF; $block['custom_htmlhead']['mycss'] .= ' .bg-image { ' . LF; $block['custom_htmlhead']['mycss'] .= ' background: transparent url('.get_random_image_tag("SRC:$_image_path").') no-repeat left top;' . LF; $block['custom_htmlhead']['mycss'] .= ' }'; $block['custom_htmlhead']['mycss'] .= LF . ' //-->' . LF . ' </style>'; ?>
Forum: {CSS trick: random body background image}
Only images with the name “rand[0-25].jpg” are available (Folder: “images/skins/”).
<head> <style type="text/css" media="screen"> .bg-image { background-image: url(images/skins/[PHP] echo ("skins".rand(0,25).".jpg")[/PHP]) ; } </style> </head> <body class="bg-image id-33">
Setup in config/phpwcms/conf.template_default.inc.php
$template_default['body']['class'] = 'bg-image id-';
{RANDOMX:%SRC-LB%:%path%:%WIDTH%x%HEIGHT%}
From a specified folder of the accounts a picture is randomly selected and presented. This extended TAG allows the specification of the thumbnails size and a call of the Lightbox (SlimBox).
Like {RANDOM:path}, with the following properties:
Example: {RANDOMX:SRC-LB:picture/upload/image/:200x150}
File: template/inc_Script/forntend_render/rt_randomX_img.php
<?php // KH 19.06.11 flip-flop: Random image from normal folder // ------------------------------------------------------------------------------------------- // obligate check for phpwcms constants if (!defined('PHPWCMS_ROOT')) {die("You Cannot Access This Script Directly, Have a Nice Day.");} // ------------------------------------------------------------------------------------------- function get_random_image_tagX($path) { // returns an random image from the give path // it looks for image of following type: gif, jpg, jpeg, png // {RANDOMX:path} willl return <img src="path/rand_image" /> // {RANDOMX:SRC:path} will return absolute URI PHPWCMS_URL/path/rand_image // {RANDOMX:SRC-R:path} will return only relative path/rand_image // {RANDOMX:SRC-LB:path:%WIDTH%x%HEIGHT%} will return a complete html set for LightBox with WIDTHxHEIGHT for the thumb $imgArray = array(); $path = trim($path); $tagX = false; //+KH if(strtoupper(substr($path, 0, 4)) == 'SRC:') { $tag = false; $path = trim(substr($path, 4)); // relative path/rand_image } elseif (strtoupper(substr($path, 0, 6)) == 'SRC-R:') { // +KH $tag = false; $tagX = 1; $path = trim(substr($path, 6)); // complete html set for LightBox with WIDTHxHEIGHT for the thumb } elseif (strtoupper(substr($path, 0, 7)) == 'SRC-LB:') { // +KH // %WIDTH%x%HEIGHT fallback $width = 150; $height = 100; $tag = false; $tagX = 2; $path = trim(substr($path, 7)); $data = explode(':', $path); $path = $data[0]; if (isset($data[1])) { // find WIDTH x HEIGHT $data[1] = preg_replace('/[^0-9x]/', '', $data[1]); $attribute = explode('x', $data[1]); $width = intval($attribute[0]); $height = isset($attribute[1]) ? intval($attribute[1]) : 0; } } else { $tag = true; } $path = trim($path, '/'); $imgpath = PHPWCMS_ROOT . '/' . $path . '/'; $imageinfo = false; if(is_dir($imgpath)) { $handle = opendir( $imgpath ); while($file = readdir( $handle )) { if( $file{0} != '.' && preg_match('/(\.jpg|\.jpeg|\.gif|\.png)$/i', $file)) { $imgArray[] = $file; } } closedir( $handle ); } if(count($imgArray) && ($imageinfo = is_random_image($imgArray, $imgpath))) { if($tag) { // normal output return '<img src="'.$path.'/'.urlencode($imageinfo['imagename']).'" '.$imageinfo[3].' border="0" alt="'.html_specialchars($imageinfo["imagename"]).'"'.HTML_TAG_CLOSE; } else { if ($tagX === 2) { // SRC-LB initializeLightbox(); // $x = '<img src="'.$path.'/'.urlencode($imageinfo['imagename']).'" '.$imageinfo[3].' border="0" alt="'.html_specialchars($imageinfo["imagename"]).'"'.HTML_TAG_CLOSE; $x = '<a href="image_resized.php?format=jpg&q=85&imgfile='.$path.'/'.urlencode($imageinfo['imagename']).'" rel="lightbox" target="_blank">'; $x .= '<img src="image_resized.php?format=jpg&q=85&imgfile='.$path.'/'.urlencode($imageinfo['imagename']).'" class="image_img" alt="'.html_specialchars($imageinfo["imagename"]).'" height="'.$height.'" width="'.$width.'"></a>'; return $x; } elseif (($tagX === 1)) // SRC-R return $path . '/' . urlencode($imageinfo['imagename']); else return PHPWCMS_URL . $path . '/' . urlencode($imageinfo['imagename']); } } return ''; } // randomX Image Tag $search = '/\{RANDOMX:(.*?)\}/e'; $replace = 'get_random_image_tagX("$1");'; $content["all"] = preg_replace($search, $replace, $content["all"]); // $string = str_replace('\'', ''', $string); // $string = str_replace('&quot;', '"', $string); ?>
Better translate
Identical to the version shown above, but enhanced by the appearance of all images in the specified directory using LightBox (Next/Prev).
Example: {RANDOMX:SRC-LBNP:picture/upload/image/:200x150}
The random thumb is displayed with a maximum size of 200x150px and a link to the LightBox (show above “proportionally”), then all the images from the directory in original size with (Next/Prev) can be represented.
File: template/inc_Script/forntend_render/rt_randomX_img.php
<?php // KH 21.06.11 flip-flop: Random image from normal folder V1.1 // ------------------------------------------------------------------------------------------- // obligate check for phpwcms constants if (!defined('PHPWCMS_ROOT')) {die("You Cannot Access This Script Directly, Have a Nice Day.");} // ------------------------------------------------------------------------------------------- function get_random_image_tagX($path) { // returns an random image from the given path // it looks for image of following type: gif, jpg, jpeg, png // {RANDOMX:path} will return <img src="path/rand_image" /> // {RANDOMX:SRC:path} will return absolute URI PHPWCMS_URL/path/rand_image // {RANDOMX:SRC-R:path} will return only relative path/rand_image // {RANDOMX:SRC-LB:path:%WIDTH%x%HEIGHT%} will return a complete html set for LightBox with proportional WIDTHxHEIGHT for the thumb // {RANDOMX:SRC-LBNP:path:%WIDTH%x%HEIGHT%} the same like SRC-LB with LightBox Next/Prev pictures from this folder $imgArray = array(); $path = trim($path); $tagX = false; //+KH if(strtoupper(substr($path, 0, 4)) == 'SRC:') { $tag = false; $path = trim(substr($path, 4)); // relative path/rand_image } elseif (strtoupper(substr($path, 0, 6)) == 'SRC-R:') { // +KH $tag = false; $tagX = 1; $path = trim(substr($path, 6)); // complete html set for LightBox with WIDTHxHEIGHT for the thumb } elseif (strtoupper(substr($path, 0, 6)) == 'SRC-LB') { // +KH // %WIDTH%x%HEIGHT fallback $width = 150; $height = 100; $tag = false; $tagX = 2; if (strtoupper(substr($path, 0, 9)) == 'SRC-LBNP:') { $path = trim(substr($path, 9)); $tagX = 3; } else $path = trim(substr($path, 7)); $data = explode(':', $path); $path = $data[0]; if (isset($data[1])) { // find WIDTH x HEIGHT $data[1] = preg_replace('/[^0-9x]/', '', $data[1]); $attribute = explode('x', $data[1]); $width = intval($attribute[0]); $height = isset($attribute[1]) ? intval($attribute[1]) : 0; } } else { $tag = true; } $path = trim($path, '/'); $imgpath = PHPWCMS_ROOT . '/' . $path . '/'; $imageinfo = false; if(is_dir($imgpath)) { $handle = opendir( $imgpath ); while($file = readdir( $handle )) { if( $file{0} != '.' && preg_match('/(\.jpg|\.jpeg|\.gif|\.png)$/i', $file)) { $imgArray[] = $file; } } closedir( $handle ); } // RANDOM if(count($imgArray) && ($imageinfo = is_random_image($imgArray, $imgpath))) { if($tag) { // normal output return '<img src="'.$path.'/'.urlencode($imageinfo['imagename']).'" '.$imageinfo[3].' border="0" alt="'.html_specialchars($imageinfo["imagename"]).'"'.HTML_TAG_CLOSE; } else { // LightBox output if ($tagX === 2 OR $tagX === 3) { // SRC-LB OR SRC-LBNP: initializeLightbox(); // $x = '<img src="'.$path.'/'.urlencode($imageinfo['imagename']).'" '.$imageinfo[3].' border="0" alt="'.html_specialchars($imageinfo["imagename"]).'"'.HTML_TAG_CLOSE; // Type of image $img_type = substr($imageinfo['mime'], 6); // e.g. image/jpeg -> jpeg if ($imageinfo['2'] == 2) $img_type .= '&q=85'; // Only if jpg = type Nr 2 // Proportional image size $img_x = $imageinfo[0] / $width; // z.B. 800 / 200 = 4,00 $img_y = $imageinfo[1] / $height; // z.B. 532 / 100 = 5,32 if ($img_x < $img_y) $width = $imageinfo[0] / $img_y; else $height = $imageinfo[1] / $img_x; $x = '<a href="image_resized.php?format='.$img_type.'&imgfile='.$path.'/'.urlencode($imageinfo['imagename']).'" rel="lightbox[NextPrev]" target="_blank">'; $x .= '<img src="image_resized.php?format='.$img_type.'&imgfile='.$path.'/'.urlencode($imageinfo['imagename']).'" class="random-img" alt="'.html_specialchars($imageinfo["imagename"]).'" height="'.$height.'" width="'.$width.'"></a>'.LF; $random_image = $imageinfo['imagename']; // LightBox with Next/Prev: Read all available images in path if ($tagX === 3 ) { // SRC-LBNP: foreach ($imgArray as $key=>$value) { $imageinfo = @getimagesize($imgpath.$value); // is it an image? if ($imageinfo) { $img_type = substr($imageinfo['mime'], 6); // e.g. image/jpeg -> jpeg if ($imageinfo['2'] == 2) $img_type .= '&q=85'; // Only if jpg = type Nr 2 if ($random_image != $value) // No double image entry except the random image $x .= '<a href="image_resized.php?format='.$img_type.'&imgfile='.$path.'/'.urlencode($value).'" rel="lightbox[NextPrev]" target="_blank"></a>'.LF; // $x .= '<img src="image_resized.php?format=jpg&q=85&imgfile='.$path.'/'.urlencode($value).'" class="image_img" alt="'.html_specialchars($value).'" height="'.$height.'" width="'.$width.'"></a>'.LF; } } } return $x; } elseif (($tagX === 1)) // SRC-R return $path . '/' . urlencode($imageinfo['imagename']); else // SRC: return PHPWCMS_URL . $path . '/' . urlencode($imageinfo['imagename']); } } return ''; } // randomX Image Tag $search = '/\{RANDOMX:(.*?)\}/e'; $replace = 'get_random_image_tagX("$1");'; $content["all"] = preg_replace($search, $replace, $content["all"]); // $string = str_replace('\'', ''', $string); // $string = str_replace('&quot;', '"', $string); ?>