


http://f-source.com/


http://www.brainjar.com/css/tabs/demo.html
http://dhtmlx.com/docs/products/dhtmlxTabbar/index.shtml
http://extjs.com/
Snippet codes and other stuff good to remember. Various source codes, tips and other things I encountered while working
function thumbnail($maxx, $maxy, $name_in, $name_out){
$pathinfo = pathinfo($name_in);
if(strtoupper($pathinfo['extension']) != 'JPG' && strtoupper($pathinfo['extension']) != 'JPEG'){
return false;
//not a jpeg image
}
$size = GetImageSize ($name_in); // params of image
// Check if both sides of image exceed allowable proportions.
if($size[0] < $maxx && $size[1] < $maxy) {
$imgWidth = $size[0];
$imgHeight = $size[1];
$dst_x = $dst_y = 0;
}
else {
// Find the largest side (width/height).
if($size[0] > $size[1]) {
$imgLarge = $size[0];
$imgWidth = $maxx;
// Divide that side by the maximum size allowed.
$aspectRatio = $imgLarge / $maxx;
// Determine size of remaining side (height) using the result above.
$imgHeight = round($size[1] / $aspectRatio);
$dst_x = 0;
$dst_y = abs($maxy - $imgHeight) / 2;
}
else {
$imgLarge = $size[1];
$imgHeight = $maxy;
// Divide that side by the maximum size allowed.
$aspectRatio = $imgLarge / $maxy;
// Determine size of remaining side (width) using the result above.
$imgWidth = round($size[0] / $aspectRatio);
$dst_x = abs($maxx - $imgWidth) / 2;
$dst_y = 0;
}
}
$im=@imagecreatefromjpeg($name_in); // path to your gallery
if (!$im) { /* See if it failed */
$im = imagecreate(150, 30); /* Create a blank image */
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
/* Output an errmsg */
imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
return false;
}
$small = imagecreatetruecolor($maxx, $maxy); // new image
$bgColor = imagecolorallocate($small, 255,255,255);
imagefilledrectangle($small, 0, 0, $maxx-1, $maxy-1, $bgColor);
ImageCopyResampled($small, $im, $dst_x, $dst_y, 0, 0, $imgWidth, $imgHeight, $size[0], $size[1]);
// below is main function resampling image
ImageDestroy($im); // free memory
if (ImageJPEG($small,$name_out,100)){
// try to save image
return true;
}else{
return false;
}
}
function process_upload(){
global $_FILES;
$retVal = false;
$disallowed_ext = array('.php', '.php3', '.php4', '.shtml', '.pl', '.jsp', '.cgi','.exe');
$file_field = $_FILES['file'];
//detect if there are any uploaded files in $_FILES; return false if not
if($file_field['size'] != 0){
$path_parts = pathinfo($file_field['name']);
$ext = '.' . strtolower($path_parts["extension"]);
if(in_array($ext, $disallowed_ext)){
die("Wrong file type ($ext). Please upload other file types than : " . implode(' ',$disallowed_ext) );
}
$new_name = $file_field['name'];
if(move_uploaded_file($file_field['tmp_name'], "$this->working_dir/$new_name")){
chmod("$this->working_dir/$new_name", 0644);
$retVal[] = $new_name;
}
}
return $retVal;
}
function thumbnail($maxx, $maxy, $name_in, $name_out){
$size = GetImageSize ($name_in); // params of image
// Check if both sides of image exceed allowable proportions.
if(false && $size[0] < $maxx && $size[1] < $maxy) {
$imgWidth = $size[0];
$imgHeight = $size[1];
$dst_x = $dst_y = 0;
}
else {
// Find the largest side (width/height).
if($size[0] > $size[1]) {
$imgLarge = $size[0];
$imgWidth = $maxx;
// Divide that side by the maximum size allowed.
$aspectRatio = $imgLarge / $maxx;
// Determine size of remaining side (height) using the result above.
$imgHeight = round($size[1] / $aspectRatio);
$dst_x = 0;
$dst_y = abs($maxy - $imgHeight) / 2;
}
else {
$imgLarge = $size[1];
$imgHeight = $maxy;
// Divide that side by the maximum size allowed.
$aspectRatio = $imgLarge / $maxy;
// Determine size of remaining side (width) using the result above.
$imgWidth = round($size[0] / $aspectRatio);
$dst_x = abs($maxx - $imgWidth) / 2;
$dst_y = 0;
}
}
$im=@imagecreatefromjpeg($name_in); // path to your gallery
if (!$im) { /* See if it failed */
$im = imagecreate(150, 30); /* Create a blank image */
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
/* Output an errmsg */
imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
return false;
}
$small = imagecreatetruecolor($maxx, $maxy); // new image
$bgColor = imagecolorallocate($small, 255,255,255);
imagefilledrectangle($small, 0, 0, $maxx-1, $maxy-1, $bgColor);
ImageCopyResampled($small, $im, $dst_x, $dst_y, 0, 0, $imgWidth, $imgHeight, $size[0], $size[1]);
// below is main function resampling image
ImageDestroy($im); // free memory
if (ImageJPEG($small,$name_out,100)){
// try to save image
return true;
}else{
return false;
}
}
function parse_request_uri($req){
$filename = strrchr($req, '/');
if('/' == $filename[0]){
$filename = substr($filename, 1);
}
if(($pos = strpos($filename, '?'))!== false){
$filename = substr($filename, 0, $pos);
}
$parts = pathinfo($filename);
return urldecode(strtolower($parts['filename']));
}
function parse_input($var_array, $var_name){ if(!isset($var_array[$var_name])) return ''; if(!is_array($var_array[$var_name])){ if (!get_magic_quotes_gpc()) { $retVal = trim(addslashes($var_array[$var_name])); } else { $retVal = trim($var_array[$var_name]); } }else{ if (!get_magic_quotes_gpc()) { foreach ($var_array[$var_name] as $value){ $retVal[] = trim(addslashes($value)); } } else { foreach ($var_array[$var_name] as $value) { $retVal[] = trim($value); } } } return $retVal; } function dprint($var, $message = ''){ if(DEBUG){ echo(" DEBUG : $message\r\n "); if(is_array($var) || is_object($var)){ print_r($var); }else{ echo($var); } echo("\r\n "); } } function sql_date_format($sqldate, $format = 'M j, Y g:i a'){ list($dy,$dm,$dd, $h,$m,$s) = sscanf($sqldate, "%4d-%2d-%2d %2d:%2d:%2d"); $str = date($format, mktime($h, $m, $s, $dm, $dd, $dy)); return $str; }
/**
* Cut a text so it won't have more than $max_length chars and any word should not have more than $max_word chars
*
* @param unknown_type $length_limit
* @param unknown_type $length_word
*/
function format_long_text($str, $max_length=99999, $max_word = 60){
//limit string length
$has_tail = false;
if(strlen($str) > $max_length){
$new_str = substr($str, 0, $max_length);
//search for non-alpha char
for($i = $max_length; $i < strlen($str) && ctype_alpha($str[$i]); $i++) $new_str .= $str[$i];
$str = $new_str;
$has_tail = true;
}
if(3 < $max_word && $max_word < $max_length){
do{
$words = explode(' ', $str);
$do_loop = false;
foreach ($words as $word){
if(strlen($word) > $max_word){
//bug in IE: point followed by char does not split the text
$fixed_word = str_replace('.', '. ', $word);
$new_word = '';
$j = 0;
for($i = 0; $i < strlen($fixed_word); $i++){
$j = (' ' == $fixed_word[$i]?0:$j+1);
if(($j+1)%$max_word==0){
$new_word .= ' ' . $fixed_word[$i];
}else{
$new_word .= $fixed_word[$i];
}
}
$str = str_replace($word, $new_word, $str);
$do_loop = true;
break;
}
}
}while($do_loop);
}
return $str . ($has_tail?'..':'');
}
<?php
$url = 'http://www.site.com/file.php';
$dest_file = 'footercache.txt'; //be sure it is chmod-ed to 0666 !!
//Note: for requests by keyword use a cache folder whose rights are 0777 and define the destination file as
//$dest_file = CACHE_FOLDER . '/cache-' . preg_replace('/[^a-z0-9]+/','_', $keyword) . '.txt';
//this may need changes on the line checking the length of the dest_file
$pagesource = request_cache($url, $dest_file, 3600*24*7);
echo $pagesource;
function request_cache($url, $dest_file, $timeout=7200) {
if(strlen($dest_file) > 100) $dest_file = substr($dest_file, 20, 60) . substr($dest_file, strlen($dest_file) - 4);//keep some chars and the probable extension
if(!file_exists($dest_file) || filemtime($dest_file) < (time()-$timeout)) {
$data = @file_get_contents($url);
if ($data !== false) {
$tmpf = tempnam('/tmp','YWS');
$fp = @fopen($tmpf,"w");
@fwrite($fp, $data);
@fclose($fp);
if(file_exists($dest_file)) @unlink($dest_file);
rename($tmpf, $dest_file);
}else{
touch($dest_file);//update its date only
}
} else {
$data = file_get_contents($dest_file);
}
return($data);
}
?>
function is_email($email){
$x = '\d\w!\#\$%&\'*+\-/=?\^_`{|}~'; //just for clarity
return count($email = explode('@', $email, 3)) == 2
&& strlen($email[0]) < 65
&& strlen($email[1]) < 256
&& preg_match("#^[$x]+(\.?([$x]+\.)*[$x]+)?$#", $email[0])
&& preg_match('#^(([a-z0-9]+-*)?[a-z0-9]+\.)+[a-z]{2,6}.?$#', $email[1]);
}
case 'orderdown':
case 'orderup':{
//get all list and retain two elements: if moveup operation then I keep prev and current
//otherwise I keep current and next
$rec_list = $this->getChildren($record->id_parent);//all records on this level
$switch = array();
for($i = 0; $i < count($rec_list) ; $i++){
if($rec_list[$i]['id'] == $record['id']){
if('orderup' == $what && $i != 0){
//not first
$switch[$rec_list[$i-1]['id']] = $rec_list[$i]['corder'];
$switch[$rec_list[$i]['id']] = $rec_list[$i-1]['corder'];
break;
}elseif('orderdown' == $what && $i != (count($rec_list)-1)){
//not last
$switch[$rec_list[$i+1]['id']] = $rec_list[$i]['corder'];
$switch[$rec_list[$i]['id']] = $rec_list[$i+1]['corder'];
break;
}
}
}
//valid elements found. Switch them
if(count($switch) > 0){
foreach ($switch as $id=>$corder) {
$sql = "UPDATE page SET corder=$corder WHERE id=$id";
$result = mysql_query($sql) or die("SQL ERROR " . mysql_error() . " [$sql] on " . __FILE__ . " at line " . __LINE__);
}
}
<STYLE TYPE="text/css">
<!--
#dek {POSITION:absolute;VISIBILITY:hidden;Z-INDEX:200;}
//-->
</STYLE>
<DIV ID="dek"></DIV>
<SCRIPT TYPE="text/javascript">
<!--
Xoffset=0; // modify these values to ...
Yoffset= 20; // change the popup position.
var old,skn,iex=(document.all),yyy=-1000;
var ns4=document.layers
var ns6=document.getElementById&&!document.all
var ie4=document.all
if (ns4)
skn=document.dek
else if (ns6)
skn=document.getElementById("dek").style
else if (ie4)
skn=document.all.dek.style
if(ns4)document.captureEvents(Event.MOUSEMOVE);
else{
skn.visibility="visible"
skn.display="none"
}
document.onmousemove=get_mouse;
function popup(msg,bak){
var content="<table><tr><td";
content += " bgcolor='"+bak+"'";
content += ">"+msg+"</td></tr></table>";
yyy=Yoffset;
if(ns4){skn.document.write(content);skn.document.close();skn.visibility="visible"}
if(ns6){document.getElementById("dek").innerHTML=content;skn.display=''}
if(ie4){document.all("dek").innerHTML=content;skn.display=''}
}
function get_mouse(e){
if(ns4||ns6){
skn.left=e.pageX+Xoffset+'px';
skn.top=e.pageY+yyy + 'px';
}else{
if (document.documentElement){
// IE6 +4.01
skn.left=event.x+document.documentElement.scrollLeft+Xoffset+'px';
skn.top=event.y+document.documentElement.scrollTop+yyy + 'px';
}else if (document.body){
// IE5 or DTD 3.2
skn.left=event.x+document.body.scrollLeft+Xoffset+'px';
skn.top=event.y+document.body.scrollTop+yyy + 'px';
}
}
}
function kill(){
yyy=-1000;
if(ns4){skn.visibility="hidden";}
else if (ns6||ie4)
skn.display="none"
}
//-->
</SCRIPT>
function popUp(theURL, myWidth, myHeight) {
var winName = 'feedback';
var features='toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0';
//var myWidth = 290;
//var myHeight = 360;
var isCenter = 'true';
if(window.screen)if(isCenter)if(isCenter=="true"){
var myLeft = (screen.width-myWidth)/2;
var myTop = (screen.height-myHeight)/2;
features+=(features!='')?',':'';
features+=',left='+myLeft+',top='+myTop;
}
var handle = window.open(theURL,winName,features+((features!='')?',':'')+'width='+myWidth+',height='+myHeight);
handle.opener = window;
handle.focus();
return handle;
}