Merge commit 'anubis/master'

This commit is contained in:
Scott Luther 2009-02-20 02:25:39 -08:00
commit 7bda76a3e4
1801 changed files with 110200 additions and 58357 deletions

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 379 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 600 B

View File

@ -1,172 +0,0 @@
//******************************************************************************
// ------ Apycom.com Tree-menu Data --------------------------------------------
//******************************************************************************
var tblankImage = "img/blank.gif";
var tfontStyle = "normal 8pt Tahoma";
var tfontColor = ["#000000","#000088"];
var tfontDecoration = ["none","underline"];
var titemBackColor = ["#CCCCCC","#CCCCCC"];
var titemAlign = "left";
var titemBackImage = ["",""];
var titemCursor = "default";
var titemHeight = 20;
var tmenuBackImage = "";
var tmenuBackColor = "";
var tmenuBorderColor = "#FFFFFF";
var tmenuBorderStyle = "dotted";
var tmenuBorderWidth = 1;
var tmenuWidth = "";
var tmenuHeight = "";
var titemTarget = "_blank";
var ticonWidth = 16;
var ticonHeight = 16;
var ticonAlign = "left";
var texpandBtn =["img/expandbtn2.gif","img/expandbtn2.gif","img/collapsebtn2.gif"];
var texpandBtnW = 9;
var texpandBtnH = 9;
var texpandBtnAlign = "left";
var tpoints = 1;
var tpointsImage = "img/vpoint.gif";
var tpointsVImage = "img/hpoint.gif";
var tpointsCImage = "img/cpoint.gif";
var tmoveable = 0;
var tmoveImage = "img/movepic.gif";
var tabsolute = 0;
var tleft = 20;
var ttop = 120;
var tfloatable = 0;
var tfloatIterations = 6;
// XP-Style Parameters
var tXPStyle = 0;
var tXPIterations = 0; // expand/collapse speed
var tXPTitleTopBackColor = "";
var tXPTitleBackColor = "";
var tXPTitleLeft = "";
var tXPExpandBtn = [];
var tXPBtnHeight = 0;
var tXPTitleBackImg = "";
var tstyles =
[
];
var tmenuItems =
[
["Item 1", "testlink.htm", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 4", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["Item 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 4", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["Item 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 4", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["Item 4", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|||SubItem 1","", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["Item 5", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 4", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["Item 6", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["Item 1", "testlink.htm", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 4", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["Item 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 4", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["Item 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 4", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["Item 4", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|||SubItem 1","", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["Item 5", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["|SubItem 4", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 1", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 2", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["||SubItem 3", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
["Item 6", "", "img/icons/folder1.gif","img/icons/folder1.gif","img/icons/folder2.gif"],
];

View File

@ -1,50 +0,0 @@
.TreeMenuTitle {color: #888888; font: 18px Arial; font-weight: 600}
.XPBlueTopBack {background-color: #6375D6}
.XPBlueMainBack {background-color: #6375D6; background-image: url(img/xpback.gif); background-repeat: no-repeat}
.XPBlueMenuBack {background-color: #7AA1E6; color: #FFFFFF; font: 10px Arial; font-weight: bold;}
.XPBlueHorLine {background-color: #C5DFFF}
.XPBlueExTitle {color: #D6DFF5; font: 16px Arial; font-weight: bold;}
.XPBlueText {color: #FFFFFF; font: 11px Verdana; background-image: url();}
.XPBlueTitle {color: #D6DFF5; font: 20px Arial; font-weight: bold; background-image: url();}
.Text {color: #222222; font: 11px Verdana; background-image: url();}
.MainBack {background-color: #FFFFFF; color: #222222; font: 10px Arial; font-weight: bold}
.MenuBack {background-color: #CCCCCC; color: #FFFFFF; font: 10px Arial; font-weight: bold}
.TopBack {background-color: #FFFFFF}
.ExTitle {color: #999999; font: 16px Arial; font-weight: bold}
.ParamTitle {color: #222222; font: 16px Arial; font-weight: bold}
.ParamBack {background-color: #FFFFFF; font: 11px Verdana; font: 11px Verdana;}
.ParamTbl {color: #333333; font: 11px Verdana; font: 11px Verdana;}
.ParamTblTitle {background-color: #CEE9F2; color: #444444; font: 11px Verdana; font-weight: bold;}
.ParamTblCell {background-color: #ECF7F9; font: 11px Verdana; color: #222222;}
.StyleNameW {color: #FFFFFF; font: 11px MS Sans Serif; font-weight: bold}
.StyleNameB {color: #000000; font: 11px MS Sans Serif; font-weight: bold}
A.White:link {font: 11px Verdana; color: #B5EDFF; text-decoration: none;}
A.White:hover {font: 11px Verdana; color: #FFFFFF; text-decoration: underline;}
A.White:visited {font: 11px Verdana; color: #D3CCFF; text-decoration: none;}
A.White:visited:hover {font: 11px Verdana; color: #FFFFFF; text-decoration: underline;}
A.Dark:link {font: 11px Verdana; color: #3333DD; text-decoration: none;}
A.Dark:hover {font: 11px Verdana; color: #5555FF; text-decoration: underline;}
A.Dark:visited {font: 11px Verdana; color: #5555CC; text-decoration: none;}
A.Dark:visited:hover {font: 11px Verdana; color: #5555FF; text-decoration: underline;}
A.Black:link {font: 11px Verdana; color: #FFFFFF; text-decoration: none;}
A.Black:hover {font: 11px Verdana; color: #FFFFFF; text-decoration: underline;}
A.Black:visited {font: 11px Verdana; color: #F3F3F3; text-decoration: none;}
A.Black:visited:hover {font: 11px Verdana; color: #FFFFFF; text-decoration: underline;}
A.MenuLink:link {font: 10px Arial; color: #FFFFFF; text-decoration: none; font-weight: bold;}
A.MenuLink:hover {font: 10px Arial; color: #FFFFFF; text-decoration: none; font-weight: bold;}
A.MenuLink:visited {font: 10px Arial; color: #FFFFFF; text-decoration: none; font-weight: bold;}
.MenuTable {border-width: 0;}
.MenuItem {border-width: 1; background-color: #628FE2; border-style: solid; border-color: #A0C0FF; color: #FFFFFF}
.MenuItemOver {border-width: 1; background-color: #285BA5; border-style: solid; border-color: #FFFFFF; color: #000000; cursor: hand}

View File

@ -1,106 +0,0 @@
//******************************************************************************
// ------ Apycom.com Tree-menu Data --------------------------------------------
//******************************************************************************
var tlevelDX = 10;
var tblankImage = "img/blank.gif";
var tfontStyle = "normal 8pt Tahoma";
var tfontColor = ["#3F3D3D","#7E7C7C"];
var tfontDecoration = ["none","underline"];
var titemBackColor = ["#F0F1F5","#F0F1F5"];
var titemAlign = "left";
var titemBackImage = ["",""];
var titemCursor = "hand";
var titemHeight = 22;
var tmenuBackImage = "";
var tmenuBackColor = "";
var tmenuBorderColor = "#FFFFFF";
var tmenuBorderStyle = "solid";
var tmenuBorderWidth = 0;
var tmenuWidth = 230;
var tmenuHeight = 500;
var titemTarget = "_blank";
var ticonWidth = 16;
var ticonHeight = 16;
var ticonAlign = "center";
var texpanded = 1;
var texpandBtn =["img/expandbtn2.gif","img/expandbtn2.gif","img/collapsebtn2.gif"];
var texpandBtnW = 9;
var texpandBtnH = 9;
var texpandBtnAlign = "left"
var tpoints = 0;
var tpointsImage = "";
var tpointsVImage = "";
var tpointsCImage = "";
var tmoveable = 1;
var tmoveImage = "img/movepic.gif";
var tmoveImageHeight = 12;
var tabsolute = 1;
var tleft = 20;
var ttop = 120;
var tfloatable = 0;
var tfloatIterations = 6;
// XP-Style Parameters
var tXPStyle = 1;
var tXPIterations = 5; // expand/collapse speed
var tXPTitleTopBackColor = "";
var tXPTitleBackColor = "#57C34A";
var tXPTitleLeft = "img/xptitleleft_green.gif";
var tXPExpandBtn = ["img/xpexpand1_green.gif","img/xpexpand1_green.gif","img/xpcollapse1_green.gif","img/xpcollapse1_green.gif"];
var tXPBtnHeight = 25;
var tXPTitleBackImg = "img/xptitle_green.gif";
var tstyles =
[
["tfontStyle=bold 8pt Tahoma","tfontColor=#FFFFFF,#D2FCD5",
"tfontDecoration=none,none"],
["tfontStyle=bold 8pt Tahoma","tfontColor=#3F3D3D,#659669",
"tfontDecoration=none,none"],
["tfontDecoration=none,none"],
["tfontStyle=bold 8pt Tahoma","tfontColor=#444444,#5555FF"],
];
var tXPStyles =
[
["tXPTitleBackColor=#DEF3DB",
"tXPExpandBtn=img/xpexpand2_green.gif,img/xpexpand2_green.gif,img/xpcollapse2_green.gif,img/xpcollapse2_green.gif", "tXPTitleBackImg=img/xptitle2_green.gif"]
];
var tmenuItems =
[
["1st submenu", "", "img/xpicon_green.gif","","", "Main Page",,"0"],
["|This menu has 7 items.<br> 3rd and 6th are hidden.", "", "img/icons/info.gif"],
["|Item 1", "testlink.htm", "img/icons/support.gif"],
["|Item 2", "testlink.htm", "img/icons/support.gif"],
["#|Item 3", "testlink.htm", "img/icons/support.gif"],
["|Item 4", "testlink.htm", "img/icons/support.gif"],
["|Item 5", "testlink.htm", "img/icons/support.gif"],
["#|Item 6", "testlink.htm", "img/icons/support.gif"],
["|Item 7", "testlink.htm", "img/icons/support.gif"],
["#2nd submenu", "", "", "","","",,"1","0"],
["|This is the second submenu.<br>Also you can hide even a submenu title like here."],
["3rd submenu", "", "img/xpicon_green.gif","","", "Main Page",,"0"],
["|This submenu has 3 levels.<br>But 3rd level items are hidden.", "", "img/icons/info.gif"],
["|1st level item", "testlink.htm", "img/icons/support.gif"],
["||2nd level item", "testlink.htm", "img/icons/support.gif"],
["#||| 3rd level item 1", "testlink.htm", "img/icons/support.gif"],
["#||| 3rd level item 2", "testlink.htm", "img/icons/support.gif"],
["|1st level item", "testlink.htm", "img/icons/support.gif"],
["||2nd level item", "testlink.htm", "img/icons/support.gif"],
["#||| 3rd level item 1", "testlink.htm", "img/icons/support.gif"],
["#||| 3rd level item 2", "testlink.htm", "img/icons/support.gif"],
["#||| 3rd level item 3", "testlink.htm", "img/icons/support.gif"],
["#||| 3rd level item 4", "testlink.htm", "img/icons/support.gif"],
];
apy_tmenuInit();

View File

@ -1,104 +0,0 @@
var tabsolute = 1;
var tLeft = 10;
var tTop = 10;
//******************************************************************************
// ------ Apycom.com Tree-menu Data --------------------------------------------
//******************************************************************************
var tblankImage = "includes/aptree/img/blank.gif";
var tmenuWidth = 230;
var tmenuHeight = 400;
var tabsolute = 1;
var tleft = 20;
var ttop = 120;
var tfloatable = 1;
var tfloatIterations = 6;
var tmoveable = 0;
var tmoveImage = "includes/aptree/img/movepic.gif";
var tmoveImageHeight = 12;
var tfontStyle = "normal 8pt Tahoma";
var tfontColor = ["#215DC6","#428EFF"];
var tfontDecoration = ["none","underline"];
var titemBackColor = ["#D6DFF7","#D6DFF7"];
var titemAlign = "left";
var titemBackImage = ["",""];
var titemCursor = "hand";
var titemHeight = 22;
var titemTarget = "_blank";
var ticonWidth = 16;
var ticonHeight = 16;
var ticonAlign = "left";
var tmenuBackImage = "";
var tmenuBackColor = "";
var tmenuBorderColor = "#FFFFFF";
var tmenuBorderStyle = "solid";
var tmenuBorderWidth = 0;
var texpandBtn =["includes/aptree/img/expandbtn2.gif","includes/aptree/img/expandbtn2.gif","includes/aptree/img/collapsebtn2.gif"];
var texpandBtnW = 9;
var texpandBtnH = 9;
var texpandBtnAlign = "left"
var texpanded = 1;
var tpoints = 0;
var tpointsImage = "";
var tpointsVImage = "";
var tpointsCImage = "";
// XP-Style Parameters
var tXPStyle = 1;
var tXPIterations = 5; // expand/collapse speed
var tXPTitleTopBackColor = "";
var tXPTitleBackColor = "#265BCC";
var tXPTitleLeft = "img/xptitleleft.gif";
var tXPExpandBtn = ["img/xpexpand1.gif","img/xpexpand2.gif","img/xpcollapse1.gif","img/xpcollapse2.gif"];
var tXPBtnHeight = 25;
var tXPTitleBackImg = "img/xptitle.gif";
var tstyles =
[
["tfontStyle=bold 8pt Tahoma","titemBackColor=#265BCC,#265BCC","tfontColor=#FFFFFF,#428EFF", "tfontDecoration=none,none"],
["tfontStyle=bold 8pt Tahoma","titemBackColor=#265BCC,#265BCC","tfontColor=#215DC6,#428EFF", "tfontDecoration=none,none"],
["tfontDecoration=none,none"],
["tfontStyle=bold 8pt Tahoma","tfontColor=#444444,#5555FF"],
];
var tXPStyles =
[
["tXPTitleBackColor=#D0DAF8", "tXPExpandBtn=img/xpexpand3.gif,img/xpexpand4.gif,img/xpcollapse3.gif,img/xpcollapse4.gif", "tXPTitleBackImg=img/xptitle2.gif"]
];
var tmenuItems =
[
["XP-style Title with Icon", "", "img/xpicon1.gif","","", "Main Page",,"0"],
["|Information", "testlink.htm", "img/icons/info.gif", "", "", "Information","_blank"],
["|Support", "", "img/icons/support.gif", "", "", "Support",, "2"],
["||Contacts", "mailto:support@apycom.com", "img/icons/contacts.gif", "", "", "Contacts"],
["||E-mail", "mailto:support@apycom.com", "img/icons/email.gif", "", "", "E-mail"],
["|Help", "", "img/icons/help1.gif", "img/icons/help1.gif", "img/icons/help2.gif", "Help",,"2"],
["||Glossary", "testlink.htm", "img/icons/paper.gif", "", "", "Glossary"],
["||Index", "testlink.htm", "img/icons/paper.gif", "", "", "Index"],
["||<nobr><input value='search' size=10 style='font-size:10'>&nbsp;<input type='button' value='Search' style='font-size:10'></nobr>",
"", "img/icons/search.gif", "", "", "Search",,"2"],
["||<nobr>Contents:&nbsp;<select style='font-size:10'><option>Item 1</option><option>Item 2</option><option>Item 3</option></select></nobr>",
"", "img/icons/list.gif", "", "", "Contents",,"2"],
["XP-style Title without Icon", "", "", "","","Download software",,"1","0"],
["|Item without icon", "testlink.htm", ,,, "Item 1 Hint"],
["|Item with individual style", "", ,,, "Item 2 Hint",,"3"],
["||SubItem 1", "testlink.htm", "img/icons/help1.gif", "","", "SubItem 1 Hint"],
["||SubItem 2", "testlink.htm", "img/icons/help1.gif", "","", "SubItem 1 Hint"],
["|||SubItem 2_1", "testlink.htm", ,,, "SubItem 1_2 Hint"],
];
apy_tmenuInit();

View File

@ -1,98 +0,0 @@
//******************************************************************************
// ------ Apycom.com Tree-menu Data --------------------------------------------
//******************************************************************************
var tblankImage = "img/blank.gif";
var tfontStyle = "normal 8pt Tahoma";
var tfontColor = ["#3F3D3D","#7E7C7C"];
var tfontDecoration = ["none","underline"];
var titemBackColor = ["#F6F6EC","#F6F6EC"];
var titemAlign = "left";
var titemBackImage = ["",""];
var titemCursor = "hand";
var titemHeight = 22;
var tmenuBackImage = "";
var tmenuBackColor = "";
var tmenuBorderColor = "#FFFFFF";
var tmenuBorderStyle = "solid";
var tmenuBorderWidth = 0;
var tmenuWidth = 230;
var tmenuHeight = 400;
var titemTarget = "_blank";
var ticonWidth = 16;
var ticonHeight = 16;
var ticonAlign = "left";
var texpandBtn =["img/expandbtn2.gif","img/expandbtn2.gif","img/collapsebtn2.gif"];
var texpandBtnW = 9;
var texpandBtnH = 9;
var texpandBtnAlign = "left"
var texpanded = 0;
var tpoints = 0;
var tpointsImage = "";
var tpointsVImage = "";
var tpointsCImage = "";
var tabsolute = 1;
var tmoveable = 0;
var tmoveImage = "img/movepic.gif";
var tleft = 20;
var ttop = 120;
var tfloatable = 1;
var tfloatIterations = 6;
// XP-Style Parameters
var tXPStyle = 1;
var tXPIterations = 10; // expand/collapse speed
var tXPTitleTopBackColor = "";
var tXPTitleBackColor = "#94A664";
var tXPTitleLeft = "img/xptitleleft_o.gif";
var tXPExpandBtn = ["img/xpexpand1_o.gif","img/xpexpand2_o.gif","img/xpcollapse1_o.gif","img/xpcollapse2_o.gif"];
var tXPBtnHeight = 23;
var tXPTitleBackImg = "img/xptitle_o.gif";
var tstyles =
[
["tfontStyle=bold 8pt Tahoma","tfontColor=#FFFFFF,#E0E7B8",
"tfontDecoration=none,none"],
["tfontStyle=bold 8pt Tahoma","tfontColor=#56662D,#72921D",
"tfontDecoration=none,none"],
["tfontDecoration=none,none"],
["tfontStyle=bold 8pt Tahoma","tfontColor=#444444,#5555FF"],
];
var tXPStyles =
[
["tXPTitleBackColor=#E2E9BC",
"tXPExpandBtn=img/xpexpand3_o.gif,img/xpexpand4_o.gif,img/xpcollapse3_o.gif,img/xpcollapse4_o.gif", "tXPTitleBackImg=img/xptitle2_o.gif"]
];
var tmenuItems =
[
["+XP-style Title with Icon", "", "img/xpicon1_o.gif", "", "", "Main Page",,"0"],
["|Information", "testlink.htm", "img/icons/info.gif", "", "", "Information","_blank"],
["|Support", "", "img/icons/support.gif", "", "", "Support",, "2"],
["||Contacts", "mailto:support@apycom.com", "img/icons/contacts.gif", "", "", "Contacts"],
["||E-mail", "mailto:support@apycom.com", "img/icons/email.gif", "", "", "E-mail"],
["|Help", "", "img/icons/help1.gif", "img/icons/help1.gif", "img/icons/help2.gif", "Help",,"2"],
["||Glossary", "testlink.htm", "img/icons/paper.gif", "", "", "Glossary"],
["||Index", "testlink.htm", "img/icons/paper.gif", "", "", "Index"],
["||<nobr><input value='search' size=10 style='font-size:10'>&nbsp;<input type='button' value='Search' style='font-size:10'></nobr>", "", "img/icons/search.gif", "", "", "Search",,"2"],
["||<nobr>Contents:&nbsp;<select style='font-size:10'><option>Item 1</option><option>Item 2</option><option>Item 3</option></select></nobr>", "", "img/icons/list.gif", "", "", "Contents",,"2"],
["+XP-style Title without Icon", "", "", "", "", "Download software",,"1","0"],
["|Item without icon", "testlink.htm", "", "", "", "Item 1 Hint"],
["|Item with individual style", "", "", "", "", "Item 2 Hint",,"3"],
["||SubItem 1", "testlink.htm", "img/icons/help1.gif", "", "", "SubItem 1 Hint"],
["||SubItem 2", "testlink.htm", "img/icons/help1.gif", "", "", "SubItem 1 Hint"],
["|||SubItem 2_1", "testlink.htm", "", "", "", "SubItem 1_2 Hint"],
];

View File

@ -1,133 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: Compat.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Provides missing functionality in the form of constants and functions
* for older versions of PHP
*
* Optionally, you may simply include the file.
* e.g. require_once 'PHP/Compat/Function/scandir.php';
*
* @category PHP
* @package PHP_Compat
* @version $Revision: 1.1 $
* @author Aidan Lister <aidan@php.net>
* @static
*/
class PHP_Compat
{
/**
* Load a function, or array of functions
*
* @param string|array $function The function or functions to load
* @return bool|array TRUE if loaded, FALSE if not
*/
function loadFunction($function)
{
// Recursiveness
if (is_array($function)) {
$res = array();
foreach ($function as $singlefunc) {
$res[$singlefunc] = PHP_Compat::loadFunction($singlefunc);
}
return $res;
}
// Load function
if (!function_exists($function)) {
$file = sprintf('PHP/Compat/Function/%s.php', $function);
if ((@include_once $file) !== false) {
return true;
}
}
return false;
}
/**
* Load a constant, or array of constants
*
* @param string|array $constant The constant or constants to load
* @return bool|array TRUE if loaded, FALSE if not
*/
function loadConstant($constant)
{
// Recursiveness
if (is_array($constant)) {
$res = array();
foreach ($constant as $singleconst) {
$res[$singleconst] = PHP_Compat::loadConstant($singleconst);
}
return $res;
}
// Load constant
$file = sprintf('PHP/Compat/Constant/%s.php', $constant);
if ((@include_once $file) !== false) {
return true;
}
return false;
}
/**
* Load components for a PHP version
*
* @param string $version PHP Version to load
* @return array An associative array of component names loaded
*/
function loadVersion($version = null)
{
// Include list of components
require 'PHP/Compat/Components.php';
// Include version_compare to work with older versions
PHP_Compat::loadFunction('version_compare');
// Init
$phpversion = phpversion();
$methods = array(
'function' => 'loadFunction',
'constant' => 'loadConstant');
$res = array();
// Iterate each component
foreach ($components as $type => $slice) {
foreach ($slice as $component => $compversion) {
if (($version === null &&
1 === version_compare($compversion, $phpversion)) || // C > PHP
(0 === version_compare($compversion, $version) || // C = S
1 === version_compare($compversion, $phpversion))) { // C > PHP
$res[$type][$component] =
call_user_func(array('PHP_Compat', $methods[$type]), $component);
}
}
}
return $res;
}
}
?>

View File

@ -1,71 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: Components.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
// Functions
$components['function']['array_combine'] = '5.0.0';
$components['function']['array_diff_assoc'] = '4.3.0';
$components['function']['array_diff_key'] = '5.0.2';
$components['function']['array_diff_ukey'] = '5.0.2';
$components['function']['array_intersect_assoc'] = '5.0.0';
$components['function']['array_intersect_key'] = '5.0.2';
$components['function']['array_intersect_uassoc'] = '5.0.0';
$components['function']['array_intersect_ukey'] = '5.0.2';
$components['function']['array_udiff'] = '5.0.0';
$components['function']['array_udiff_assoc'] = '5.0.0';
$components['function']['array_udiff_uassoc'] = '5.0.0';
$components['function']['array_uintersect'] = '5.0.0';
$components['function']['array_uintersect_assoc'] = '5.0.0';
$components['function']['array_uintersect_uassoc'] = '5.0.0';
$components['function']['array_walk_recursive'] = '5.0.0';
$components['function']['clone'] = '5.0.0';
$components['function']['convert_uudecode'] = '5.0.0';
$components['function']['convert_uuencode'] = '5.0.0';
$components['function']['debug_print_backtrace'] = '5.0.0';
$components['function']['file_get_contents'] = '4.3.0';
$components['function']['file_put_contents'] = '5.0.0';
$components['function']['fprintf'] = '5.0.0';
$components['function']['get_headers'] = '5.0.0';
$components['function']['get_include_path'] = '4.3.0';
$components['function']['html_entity_decode'] = '4.3.0';
$components['function']['http_build_query'] = '5.0.0';
$components['function']['image_type_to_mime_type'] = '4.3.0';
$components['function']['ob_get_clean'] = '4.3.0';
$components['function']['ob_get_flush'] = '4.3.0';
$components['function']['php_strip_whitespace'] = '5.0.0';
$components['function']['restore_include_path'] = '4.3.0';
$components['function']['scandir'] = '5.0.0';
$components['function']['set_include_path'] = '4.3.0';
$components['function']['str_ireplace'] = '5.0.0';
$components['function']['str_shuffle'] = '4.3.0';
$components['function']['str_split'] = '5.0.0';
$components['function']['str_word_count'] = '4.3.0';
$components['function']['stripos'] = '5.0.0';
$components['function']['strpbrk'] = '5.0.0';
$components['function']['strripos'] = '5.0.0';
$components['function']['substr_compare'] = '5.0.0';
// Constants
$components['constant']['E_STRICT'] = '5.0.0';
$components['constant']['FILE'] = '4.3.0';
$components['constant']['PHP_EOL'] = '5.0.1';
$components['constant']['STD'] = '4.3.0';
$components['constant']['T'] = '5.0.0';
$components['constant']['UPLOAD_ERR'] = '4.3.0';
?>

View File

@ -1,35 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: E_STRICT.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace constant E_STRICT
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/ref.errorfunc
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
*/
if (!defined('E_STRICT')) {
define('E_STRICT', 2048);
}
?>

View File

@ -1,51 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: FILE.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace filesystem constants
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/ref.filesystem
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
*/
if (!defined('FILE_USE_INCLUDE_PATH')) {
define('FILE_USE_INCLUDE_PATH', 1);
}
if (!defined('FILE_IGNORE_NEW_LINES')) {
define('FILE_IGNORE_NEW_LINES', 2);
}
if (!defined('FILE_SKIP_EMPTY_LINES')) {
define('FILE_SKIP_EMPTY_LINES', 4);
}
if (!defined('FILE_APPEND')) {
define('FILE_APPEND', 8);
}
if (!defined('FILE_NO_DEFAULT_CONTEXT')) {
define('FILE_NO_DEFAULT_CONTEXT', 16);
}
?>

View File

@ -1,49 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: PHP_EOL.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace PHP_EOL constant
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/reserved.constants.core
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5.0.2
*/
if (!defined('PHP_EOL')) {
switch (strtoupper(substr(PHP_OS, 0, 3))) {
// Windows
case 'WIN':
define('PHP_EOL', "\r\n");
break;
// Mac
case 'DAR':
define('PHP_EOL', "\r");
break;
// Unix
default:
define('PHP_EOL', "\n");
}
}
?>

View File

@ -1,43 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: STD.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace commandline constants
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/features.commandline
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 4.3.0
*/
if (!defined('STDIN')) {
define('STDIN', fopen('php://stdin', 'r'));
}
if (!defined('STDOUT')) {
define('STDOUT', fopen('php://stdout', 'w'));
}
if (!defined('STDERR')) {
define('STDERR', fopen('php://stderr', 'w'));
}
?>

View File

@ -1,72 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: T.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace tokenizer constants
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/ref.tokenizer
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
*/
if (!defined('T_ML_COMMENT')) {
define('T_ML_COMMENT', T_COMMENT);
}
if (!defined('T_DOC_COMMENT')) {
define('T_DOC_COMMENT', T_ML_COMMENT);
}
if (!defined('T_OLD_FUNCTION')) {
define('T_OLD_FUNCTION', -1);
}
if (!defined('T_ABSTRACT')) {
define('T_ABSTRACT', -1);
}
if (!defined('T_CATCH')) {
define('T_CATCH', -1);
}
if (!defined('T_FINAL')) {
define('T_FINAL', -1);
}
if (!defined('T_INSTANCEOF')) {
define('T_INSTANCEOF', -1);
}
if (!defined('T_PRIVATE')) {
define('T_PRIVATE', -1);
}
if (!defined('T_PROTECTED')) {
define('T_PROTECTED', -1);
}
if (!defined('T_PUBLIC')) {
define('T_PUBLIC', -1);
}
if (!defined('T_THROW')) {
define('T_THROW', -1);
}
if (!defined('T_TRY')) {
define('T_TRY', -1);
}
if (!defined('T_CLONE')) {
define('T_CLONE', -1);
}
?>

View File

@ -1,51 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: UPLOAD_ERR.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace upload error constants
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/features.file-upload.errors
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 4.3.0
*/
if (!defined('UPLOAD_ERR_OK')) {
define('UPLOAD_ERR_OK', 0);
}
if (!defined('UPLOAD_ERR_INI_SIZE')) {
define('UPLOAD_ERR_INI_SIZE', 1);
}
if (!defined('UPLOAD_ERR_FORM_SIZE')) {
define('UPLOAD_ERR_FORM_SIZE', 2);
}
if (!defined('UPLOAD_ERR_PARTIAL')) {
define('UPLOAD_ERR_PARTIAL', 3);
}
if (!defined('UPLOAD_ERR_NO_FILE')) {
define('UPLOAD_ERR_NO_FILE', 4);
}
?>

View File

@ -1,71 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_combine.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_combine()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_combine
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('array_combine')) {
function array_combine($keys, $values)
{
if (!is_array($keys)) {
user_error('array_combine() expects parameter 1 to be array, ' .
gettype($keys) . ' given', E_USER_WARNING);
return;
}
if (!is_array($values)) {
user_error('array_combine() expects parameter 2 to be array, ' .
gettype($values) . ' given', E_USER_WARNING);
return;
}
$key_count = count($keys);
$value_count = count($values);
if ($key_count !== $value_count) {
user_error('array_combine() Both parameters should have equal number of elements', E_USER_WARNING);
return false;
}
if ($key_count === 0 || $value_count === 0) {
user_error('array_combine() Both parameters should have number of elements at least 0', E_USER_WARNING);
return false;
}
$keys = array_values($keys);
$values = array_values($values);
$combined = array();
for ($i = 0; $i < $key_count; $i++) {
$combined[$keys[$i]] = $values[$i];
}
return $combined;
}
}
?>

View File

@ -1,75 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_diff_assoc.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_diff_assoc()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_diff_assoc
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 4.3.0
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('array_diff_assoc')) {
function array_diff_assoc()
{
// Check we have enough arguments
$args = func_get_args();
$count = count($args);
if (count($args) < 2) {
user_error('Wrong parameter count for array_diff_assoc()', E_USER_WARNING);
return;
}
// Check arrays
for ($i = 0; $i < $count; $i++) {
if (!is_array($args[$i])) {
user_error('array_diff_assoc() Argument #' .
($i + 1) . ' is not an array', E_USER_WARNING);
return;
}
}
// Get the comparison array
$array_comp = array_shift($args);
--$count;
// Traverse values of the first array
foreach ($array_comp as $key => $value) {
// Loop through the other arrays
for ($i = 0; $i < $count; $i++) {
// Loop through this arrays key/value pairs and compare
foreach ($args[$i] as $comp_key => $comp_value) {
if ((string)$key === (string)$comp_key &&
(string)$value === (string)$comp_value)
{
unset($array_comp[$key]);
}
}
}
}
return $array_comp;
}
}
?>

View File

@ -1,66 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_diff_key.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_diff_key()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_diff_key
* @author Tom Buskens <ortega@php.net>
* @version $Revision: 1.1 $
* @since PHP 5.0.2
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('array_diff_key')) {
function array_diff_key()
{
$args = func_get_args();
if (count($args) < 2) {
user_error('Wrong parameter count for array_diff_key()', E_USER_WARNING);
return;
}
// Check arrays
$array_count = count($args);
for ($i = 0; $i !== $array_count; $i++) {
if (!is_array($args[$i])) {
user_error('array_diff_key() Argument #' .
($i + 1) . ' is not an array', E_USER_WARNING);
return;
}
}
$result = $args[0];
foreach ($args[0] as $key1 => $value1) {
for ($i = 1; $i !== $array_count; $i++) {
foreach ($args[$i] as $key2 => $value2) {
if ((string) $key1 === (string) $key2) {
unset($result[$key2]);
break 2;
}
}
}
}
return $result;
}
}
?>

View File

@ -1,83 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_diff_uassoc.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_diff_uassoc()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_diff_uassoc
* @version $Revision: 1.1 $
* @since PHP 5.0.0
* @require PHP 4.0.6 (is_callable)
*/
if (!function_exists('array_diff_uassoc')) {
function array_diff_uassoc()
{
// Sanity check
$args = func_get_args();
if (count($args) < 3) {
user_error('Wrong parameter count for array_diff_uassoc()', E_USER_WARNING);
return;
}
// Get compare function
$compare_func = array_pop($args);
if (!is_callable($compare_func)) {
if (is_array($compare_func)) {
$compare_func = $compare_func[0] . '::' . $compare_func[1];
}
user_error('array_diff_uassoc() Not a valid callback ' .
$compare_func, E_USER_WARNING);
return;
}
// Check arrays
$array_count = count($args);
for ($i = 0; $i !== $array_count; $i++) {
if (!is_array($args[$i])) {
user_error('array_diff_uassoc() Argument #' .
($i + 1) . ' is not an array', E_USER_WARNING);
return;
}
}
// Compare entries
$result = array();
foreach ($args[0] as $k => $v) {
for ($i = 1; $i < $array_count; $i++) {
foreach ($args[$i] as $kk => $vv) {
if ($v == $vv) {
$compare = call_user_func_array($compare_func, array($k, $kk));
if ($compare == 0) {
continue 3;
}
}
}
}
$result[$k] = $v;
}
return $result;
}
}
?>

View File

@ -1,79 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_diff_ukey.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_diff_ukey()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_diff_ukey
* @author Tom Buskens <ortega@php.net>
* @version $Revision: 1.1 $
* @since PHP 5.0.2
* @require PHP 4.0.6 (is_callable)
*/
if (!function_exists('array_diff_ukey')) {
function array_diff_ukey()
{
$args = func_get_args();
if (count($args) < 3) {
user_error('Wrong parameter count for array_diff_ukey()', E_USER_WARNING);
return;
}
// Get compare function
$compare_func = array_pop($args);
if (!is_callable($compare_func)) {
if (is_array($compare_func)) {
$compare_func = $compare_func[0].'::'.$compare_func[1];
}
user_error('array_diff_ukey() Not a valid callback ' .
$compare_func, E_USER_WARNING);
return;
}
// Check arrays
$array_count = count($args);
for ($i = 0; $i !== $array_count; $i++) {
if (!is_array($args[$i])) {
user_error('array_diff_ukey() Argument #' .
($i + 1) . ' is not an array', E_USER_WARNING);
return;
}
}
// Compare entries
$result = $args[0];
foreach ($args[0] as $key1 => $value1) {
for ($i = 1; $i !== $array_count; $i++) {
foreach ($args[$i] as $key2 => $value2) {
if (!(call_user_func($compare_func, (string) $key1, (string) $key2))) {
unset($result[$key1]);
break 2;
}
}
}
}
return $result;
}
}
?>

View File

@ -1,69 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_intersect_assoc.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_intersect_assoc()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_intersect_assoc
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 4.3.0
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('array_intersect_assoc')) {
function array_intersect_assoc()
{
// Sanity check
$args = func_get_args();
if (count($args) < 2) {
user_error('wrong parameter count for array_intersect_assoc()', E_USER_WARNING);
return;
}
// Check arrays
$array_count = count($args);
for ($i = 0; $i !== $array_count; $i++) {
if (!is_array($args[$i])) {
user_error('array_intersect_assoc() Argument #' .
($i + 1) . ' is not an array', E_USER_WARNING);
return;
}
}
// Compare entries
$intersect = array();
foreach ($args[0] as $key => $value) {
$intersect[$key] = $value;
for ($i = 1; $i < $array_count; $i++) {
if (!isset($args[$i][$key]) || $args[$i][$key] != $value) {
unset($intersect[$key]);
break;
}
}
}
return $intersect;
}
}
?>

View File

@ -1,67 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_intersect_key.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_intersect_key()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_intersect_key
* @author Tom Buskens <ortega@php.net>
* @version $Revision: 1.1 $
* @since PHP 5.0.2
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('array_intersect_key')) {
function array_intersect_key()
{
$args = func_get_args();
if (count($args) < 2) {
user_error('Wrong parameter count for array_intersect_key()', E_USER_WARNING);
return;
}
// Check arrays
$array_count = count($args);
for ($i = 0; $i !== $array_count; $i++) {
if (!is_array($args[$i])) {
user_error('array_intersect_key() Argument #' .
($i + 1) . ' is not an array', E_USER_WARNING);
return;
}
}
// Compare entries
$result = array();
foreach ($args[0] as $key1 => $value1) {
for ($i = 1; $i !== $array_count; $i++) {
foreach ($args[$i] as $key2 => $value2) {
if ((string) $key1 === (string) $key2) {
$result[$key1] = $value1;
}
}
}
}
return $result;
}
}
?>

View File

@ -1,90 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_intersect_uassoc.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_intersect_assoc()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_intersect_uassoc
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.6 (is_callable)
*/
if (!function_exists('array_intersect_uassoc')) {
function array_intersect_uassoc()
{
// Sanity check
$args = func_get_args();
if (count($args) < 3) {
user_error('Wrong parameter count for array_intersect_ukey()', E_USER_WARNING);
return;
}
// Get compare function
$compare_func = array_pop($args);
if (!is_callable($compare_func)) {
if (is_array($compare_func)) {
$compare_func = $compare_func[0] . '::' . $compare_func[1];
}
user_error('array_intersect_uassoc() Not a valid callback ' .
$compare_func, E_USER_WARNING);
return;
}
// Check arrays
$array_count = count($args);
for ($i = 0; $i !== $array_count; $i++) {
if (!is_array($args[$i])) {
user_error('array_intersect_uassoc() Argument #' .
($i + 1) . ' is not an array', E_USER_WARNING);
return;
}
}
// Compare entries
$result = array();
foreach ($args[0] as $k => $v) {
for ($i = 0; $i < $array_count; $i++) {
$match = false;
foreach ($args[$i] as $kk => $vv) {
$compare = call_user_func_array($compare_func, array($k, $kk));
if ($compare === 0 && $v == $vv) {
$match = true;
continue 2;
}
}
if ($match === false) {
continue 2;
}
}
if ($match === true) {
$result[$k] = $v;
}
}
return $result;
}
}
?>

View File

@ -1,79 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_intersect_ukey.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_intersect_ukey()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_intersect_ukey
* @author Tom Buskens <ortega@php.net>
* @version $Revision: 1.1 $
* @since PHP 5.0.2
* @require PHP 4.0.6 (is_callable)
*/
if (!function_exists('array_intersect_ukey')) {
function array_intersect_ukey()
{
$args = func_get_args();
if (count($args) < 3) {
user_error('Wrong parameter count for array_intersect_ukey()', E_USER_WARNING);
return;
}
// Get compare function
$compare_func = array_pop($args);
if (!is_callable($compare_func)) {
if (is_array($compare_func)) {
$compare_func = $compare_func[0].'::'.$compare_func[1];
}
user_error('array_diff_ukey() Not a valid callback ' .
$compare_func, E_USER_WARNING);
return;
}
// Check arrays
$array_count = count($args);
for ($i = 0; $i !== $array_count; $i++) {
if (!is_array($args[$i])) {
user_error('array_intersect_ukey() Argument #' .
($i + 1) . ' is not an array', E_USER_WARNING);
return;
}
}
// Compare entries
$result = array();
foreach ($args[0] as $key1 => $value1) {
for ($i = 1; $i !== $array_count; $i++) {
foreach ($args[$i] as $key2 => $value2) {
if (!(call_user_func($compare_func, (string) $key1, (string) $key2))) {
$result[$key1] = $value1;
break 2;
}
}
}
}
return $result;
}
}
?>

View File

@ -1,83 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Stephan Schmidt <schst@php.net> |
// | Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_udiff.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_udiff()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_udiff
* @author Stephan Schmidt <schst@php.net>
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.6 (is_callable)
*/
if (!function_exists('array_udiff')) {
function array_udiff()
{
$args = func_get_args();
if (count($args) < 3) {
user_error('Wrong parameter count for array_udiff()', E_USER_WARNING);
return;
}
// Get compare function
$compare_func = array_pop($args);
if (!is_callable($compare_func)) {
if (is_array($compare_func)) {
$compare_func = $compare_func[0] . '::' . $compare_func[1];
}
user_error('array_udiff() Not a valid callback ' .
$compare_func, E_USER_WARNING);
return;
}
// Check arrays
$cnt = count($args);
for ($i = 0; $i < $cnt; $i++) {
if (!is_array($args[$i])) {
user_error('array_udiff() Argument #' .
($i + 1). ' is not an array', E_USER_WARNING);
return;
}
}
$diff = array ();
// Traverse values of the first array
foreach ($args[0] as $key => $value) {
// Check all arrays
for ($i = 1; $i < $cnt; $i++) {
foreach ($args[$i] as $cmp_value) {
$result = call_user_func($compare_func, $value, $cmp_value);
if ($result === 0) {
continue 3;
}
}
}
$diff[$key] = $value;
}
return $diff;
}
}
?>

View File

@ -1,85 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Stephan Schmidt <schst@php.net> |
// | Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_udiff_assoc.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_udiff_assoc()
*
* @category PHP
* @package PHP_Compat
* @author Stephan Schmidt <schst@php.net>
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @link http://php.net/function.array-udiff-assoc
* @since PHP 5
* @require PHP 4.0.6 (is_callable)
*/
if (!function_exists('array_udiff_assoc')) {
function array_udiff_assoc()
{
$args = func_get_args();
if (count($args) < 3) {
user_error('Wrong parameter count for array_udiff_assoc()', E_USER_WARNING);
return;
}
// Get compare function
$compare_func = array_pop($args);
if (!is_callable($compare_func)) {
if (is_array($compare_func)) {
$compare_func = $compare_func[0] . '::' . $compare_func[1];
}
user_error('array_udiff_assoc() Not a valid callback ' .
$compare_func, E_USER_WARNING);
return;
}
// Check arrays
$count = count($args);
for ($i = 0; $i < $count; $i++) {
if (!is_array($args[$i])) {
user_error('array_udiff_assoc() Argument #' .
($i + 1) . ' is not an array', E_USER_WARNING);
return;
}
}
$diff = array ();
// Traverse values of the first array
foreach ($args[0] as $key => $value) {
// Check all arrays
for ($i = 1; $i < $count; $i++) {
if (!array_key_exists($key, $args[$i])) {
continue;
}
$result = call_user_func($compare_func, $value, $args[$i][$key]);
if ($result === 0) {
continue 2;
}
}
$diff[$key] = $value;
}
return $diff;
}
}
?>

View File

@ -1,82 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_udiff_uassoc.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_udiff_uassoc()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_udiff_uassoc
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.6 (is_callable)
*/
if (!function_exists('array_udiff_uassoc')) {
function array_udiff_uassoc()
{
$args = func_get_args();
if (count($args) < 3) {
user_error('Wrong parameter count for array_udiff_uassoc()', E_USER_WARNING);
return;
}
// Get compare function
$compare_func = array_pop($args);
if (!is_callable($compare_func)) {
if (is_array($compare_func)) {
$compare_func = $compare_func[0] . '::' . $compare_func[1];
}
user_error('array_udiff_uassoc() Not a valid callback ' . $compare_func, E_USER_WARNING);
return;
}
// Check arrays
$count = count($args);
for ($i = 0; $i < $count; $i++) {
if (!is_array($args[$i])) {
user_error('array_udiff_uassoc() Argument #' .
($i + 1) . ' is not an array', E_USER_WARNING);
return;
}
}
// Traverse values of the first array
$diff = array ();
foreach ($args[0] as $key => $value) {
// Check all arrays
for ($i = 1; $i < $count; $i++) {
if (!array_key_exists($key, $args[$i])) {
continue;
}
$result = call_user_func($compare_func, $value, $args[$i][$key]);
if ($result === 0) {
continue 2;
}
}
$diff[$key] = $value;
}
return $diff;
}
}
?>

View File

@ -1,82 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Tom Buskens <ortega@php.net> |
// | Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_uintersect.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_uintersect()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_uintersect
* @author Tom Buskens <ortega@php.net>
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.6 (is_callable)
*/
if (!function_exists('array_uintersect')) {
function array_uintersect()
{
$args = func_get_args();
if (count($args) < 3) {
user_error('wrong parameter count for array_uintersect()',
E_USER_WARNING);
return;
}
// Get compare function
$user_func = array_pop($args);
if (!is_callable($user_func)) {
if (is_array($user_func)) {
$user_func = $user_func[0] . '::' . $user_func[1];
}
user_error('array_uintersect() Not a valid callback ' .
$user_func, E_USER_WARNING);
return;
}
// Check arrays
$array_count = count($args);
for ($i = 0; $i < $array_count; $i++) {
if (!is_array($args[$i])) {
user_error('array_uintersect() Argument #' .
($i + 1) . ' is not an array', E_USER_WARNING);
return;
}
}
// Compare entries
$output = array();
foreach ($args[0] as $key => $item) {
for ($i = 1; $i !== $array_count; $i++) {
$array = $args[$i];
foreach($array as $key0 => $item0) {
if (!call_user_func($user_func, $item, $item0)) {
$output[$key] = $item;
}
}
}
}
return $output;
}
}
?>

View File

@ -1,81 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Tom Buskens <ortega@php.net> |
// | Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_uintersect_assoc.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_uintersect_assoc()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_uintersect_assoc
* @author Tom Buskens <ortega@php.net>
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.6 (is_callable)
*/
if (!function_exists('array_uintersect_assoc')) {
function array_uintersect_assoc()
{
$args = func_get_args();
if (count($args) < 3) {
user_error('wrong parameter count for array_uintersect_assoc()', E_USER_WARNING);
return;
}
// Get compare function
$user_func = array_pop($args);
if (!is_callable($user_func)) {
if (is_array($user_func)) {
$user_func = $user_func[0] . '::' . $user_func[1];
}
user_error('array_uintersect_assoc() Not a valid callback ' .
$user_func, E_USER_WARNING);
return;
}
// Check arrays
$array_count = count($args);
for ($i = 0; $i < $array_count; $i++) {
if (!is_array($args[$i])) {
user_error('array_uintersect_assoc() Argument #' .
($i + 1) . ' is not an array', E_USER_WARNING);
return;
}
}
// Compare entries
$output = array();
foreach ($args[0] as $key => $item) {
for ($i = 1; $i !== $array_count; $i++) {
if (array_key_exists($key, $args[$i])) {
$compare = call_user_func($user_func, $item, $args[$i][$key]);
if ($compare === 0) {
$output[$key] = $item;
}
}
}
}
return $output;
}
}
?>

View File

@ -1,97 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_uintersect_uassoc.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_uintersect_uassoc()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_uintersect_uassoc
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.6 (is_callable)
*/
if (!function_exists('array_uintersect_uassoc')) {
function array_uintersect_uassoc()
{
$args = func_get_args();
if (count($args) < 4) {
user_error('Wrong parameter count for array_uintersect_uassoc()',
E_USER_WARNING);
return;
}
// Get key_compare_func
$key_compare_func = array_pop($args);
if (!is_callable($key_compare_func)) {
if (is_array($key_compare_func)) {
$key_compare_func = $key_compare_func[0] . '::' . $key_compare_func[1];
}
user_error('array_uintersect_uassoc() Not a valid callback ' .
$key_compare_func, E_USER_WARNING);
return;
}
// Get data_compare_func
$data_compare_func = array_pop($args);
if (!is_callable($data_compare_func)) {
if (is_array($data_compare_func)) {
$data_compare_func = $data_compare_func[0] . '::' . $data_compare_func[1];
}
user_error('array_uintersect_uassoc() Not a valid callback '
. $data_compare_func, E_USER_WARNING);
return;
}
// Check arrays
$count = count($args);
for ($i = 0; $i !== $count; $i++) {
if (!is_array($args[$i])) {
user_error('array_uintersect_uassoc() Argument #' .
($i + 1) . ' is not an array', E_USER_WARNING);
return;
}
}
// Traverse values of the first array
$intersect = array ();
foreach ($args[0] as $key => $value) {
// Check against each array
for ($i = 1; $i < $count; $i++) {
// Traverse each element in current array
foreach ($args[$i] as $ckey => $cvalue) {
// Compare key and value
if (call_user_func($key_compare_func, $key, $ckey) === 0 &&
call_user_func($data_compare_func, $value, $cvalue) === 0)
{
$intersect[$key] = $value;
continue;
}
}
}
}
return $intersect;
}
}
?>

View File

@ -1,68 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Tom Buskens <ortega@php.net> |
// | Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: array_walk_recursive.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace array_walk_recursive()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.array_walk_recursive
* @author Tom Buskens <ortega@php.net>
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.6 (is_callable)
*/
if (!function_exists('array_walk_recursive')) {
function array_walk_recursive(&$input, $funcname)
{
if (!is_callable($funcname)) {
if (is_array($funcname)) {
$funcname = $funcname[0] . '::' . $funcname[1];
}
user_error('array_walk_recursive() Not a valid callback ' . $user_func,
E_USER_WARNING);
return;
}
if (!is_array($input)) {
user_error('array_walk_recursive() The argument should be an array',
E_USER_WARNING);
return;
}
$args = func_get_args();
foreach ($input as $key => $item) {
if (is_array($item)) {
array_walk_recursive($item, $funcname, $args);
$input[$key] = $item;
} else {
$args[0] = &$item;
$args[1] = &$key;
call_user_func_array($funcname, $args);
$input[$key] = $item;
}
}
}
}
?>

View File

@ -1,56 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: clone.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace clone()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/language.oop5.cloning
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5.0.0
* @require PHP 4.0.0 (user_error)
*/
if (version_compare(phpversion(), '5.0') === -1) {
// Needs to be wrapped in eval as clone is a keyword in PHP5
eval('
function clone($object)
{
// Sanity check
if (!is_object($object)) {
user_error(\'clone() __clone method called on non-object\', E_USER_WARNING);
return;
}
// Use serialize/unserialize trick to deep copy the object
$object = unserialize(serialize($object));
// If there is a __clone method call it on the "new" class
if (method_exists($object, \'__clone\')) {
$object->__clone();
}
return $object;
}
');
}
?>

View File

@ -1,79 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Michael Wallner <mike@php.net> |
// | Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: convert_uudecode.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace convert_uudecode()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.convert_uudecode
* @author Michael Wallner <mike@php.net>
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('convert_uudecode')) {
function convert_uudecode($string)
{
// Sanity check
if (!is_scalar($string)) {
user_error('convert_uuencode() expects parameter 1 to be string, ' .
gettype($string) . ' given', E_USER_WARNING);
return false;
}
if (strlen($string) < 8) {
user_error('convert_uuencode() The given parameter is not a valid uuencoded string', E_USER_WARNING);
return false;
}
$decoded = '';
foreach (explode("\n", $string) as $line) {
$c = count($bytes = unpack('c*', substr(trim($line), 1)));
while ($c % 4) {
$bytes[++$c] = 0;
}
foreach (array_chunk($bytes, 4) as $b) {
$b0 = $b[0] == 0x60 ? 0 : $b[0] - 0x20;
$b1 = $b[1] == 0x60 ? 0 : $b[1] - 0x20;
$b2 = $b[2] == 0x60 ? 0 : $b[2] - 0x20;
$b3 = $b[3] == 0x60 ? 0 : $b[3] - 0x20;
$b0 <<= 2;
$b0 |= ($b1 >> 4) & 0x03;
$b1 <<= 4;
$b1 |= ($b2 >> 2) & 0x0F;
$b2 <<= 6;
$b2 |= $b3 & 0x3F;
$decoded .= pack('c*', $b0, $b1, $b2);
}
}
return rtrim($decoded, "\0");
}
}
?>

View File

@ -1,79 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Michael Wallner <mike@php.net> |
// | Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: convert_uuencode.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace convert_uuencode()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.convert_uuencode
* @author Michael Wallner <mike@php.net>
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('convert_uuencode')) {
function convert_uuencode($string)
{
// Sanity check
if (!is_scalar($string)) {
user_error('convert_uuencode() expects parameter 1 to be string, ' .
gettype($string) . ' given', E_USER_WARNING);
return false;
}
$u = 0;
$encoded = '';
while ($c = count($bytes = unpack('c*', substr($string, $u, 45)))) {
$u += 45;
$encoded .= pack('c', $c + 0x20);
while ($c % 3) {
$bytes[++$c] = 0;
}
foreach (array_chunk($bytes, 3) as $b) {
$b0 = ($b[0] & 0xFC) >> 2;
$b1 = (($b[0] & 0x03) << 4) + (($b[1] & 0xF0) >> 4);
$b2 = (($b[1] & 0x0F) << 2) + (($b[2] & 0xC0) >> 6);
$b3 = $b[2] & 0x3F;
$b0 = $b0 ? $b0 + 0x20 : 0x60;
$b1 = $b1 ? $b1 + 0x20 : 0x60;
$b2 = $b2 ? $b2 + 0x20 : 0x60;
$b3 = $b3 ? $b3 + 0x20 : 0x60;
$encoded .= pack('c*', $b0, $b1, $b2, $b3);
}
$encoded .= "\n";
}
// Add termination characters
$encoded .= "\x60\n";
return $encoded;
}
}
?>

View File

@ -1,67 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Laurent Laville <pear@laurent-laville.org> |
// | Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: debug_print_backtrace.php,v 1.1 2005/07/23 05:56:02 Tony Exp $
/**
* Replace debug_print_backtrace()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.debug_print_backtrace
* @author Laurent Laville <pear@laurent-laville.org>
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.0
*/
if (!function_exists('debug_print_backtrace2')) {
function debug_print_backtrace2()
{
// Get backtrace
$backtrace = debug_backtrace();
// Unset call to debug_print_backtrace
array_shift($backtrace);
// Iterate backtrace
$calls = array();
foreach ($backtrace as $i => $call) {
$location = $call['file'] . ':' . $call['line'];
$function = (isset($call['class'])) ?
$call['class'] . '.' . $call['function'] :
$call['function'];
$params = '';
if (isset($call['args'])) {
$params = implode(', ', $call['args']);
}
$calls[] = sprintf('#%d %s(%s) called at [%s]',
$i,
$function,
$params,
$location);
}
echo implode("\n", $calls);
}
}
?>

View File

@ -1,57 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: file_get_contents.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace file_get_contents()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.file_get_contents
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @internal resource_context is not supported
* @since PHP 5
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('file_get_contents')) {
function file_get_contents($filename, $incpath = false, $resource_context = null)
{
if (false === $fh = fopen($filename, 'rb', $incpath)) {
user_error('file_get_contents() failed to open stream: No such file or directory',
E_USER_WARNING);
return false;
}
clearstatcache();
if ($fsize = @filesize($filename)) {
$data = fread($fh, $fsize);
} else {
$data = '';
while (!feof($fh)) {
$data .= fread($fh, 8192);
}
}
fclose($fh);
return $data;
}
}
?>

View File

@ -1,104 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: file_put_contents.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
if (!defined('FILE_USE_INCLUDE_PATH')) {
define('FILE_USE_INCLUDE_PATH', 1);
}
if (!defined('FILE_APPEND')) {
define('FILE_APPEND', 8);
}
/**
* Replace file_put_contents()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.file_put_contents
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @internal resource_context is not supported
* @since PHP 5
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('file_put_contents')) {
function file_put_contents($filename, $content, $flags = null, $resource_context = null)
{
// If $content is an array, convert it to a string
if (is_array($content)) {
$content = implode('', $content);
}
// If we don't have a string, throw an error
if (!is_scalar($content)) {
user_error('file_put_contents() The 2nd parameter should be either a string or an array',
E_USER_WARNING);
return false;
}
// Get the length of date to write
$length = strlen($content);
// Check what mode we are using
$mode = ($flags & FILE_APPEND) ?
$mode = 'a' :
$mode = 'w';
// Check if we're using the include path
$use_inc_path = ($flags & FILE_USE_INCLUDE_PATH) ?
true :
false;
// Open the file for writing
if (($fh = @fopen($filename, $mode, $use_inc_path)) === false) {
user_error('file_put_contents() failed to open stream: Permission denied',
E_USER_WARNING);
return false;
}
// Write to the file
$bytes = 0;
if (($bytes = @fwrite($fh, $content)) === false) {
$errormsg = sprintf('file_put_contents() Failed to write %d bytes to %s',
$length,
$filename);
user_error($errormsg, E_USER_WARNING);
return false;
}
// Close the handle
@fclose($fh);
// Check all the data was written
if ($bytes != $length) {
$errormsg = sprintf('file_put_contents() Only %d of %d bytes written, possibly out of free disk space.',
$bytes,
$length);
user_error($errormsg, E_USER_WARNING);
return false;
}
// Return length
return $bytes;
}
}
?>

View File

@ -1,54 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: fprintf.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace fprintf()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.fprintf
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('fprintf')) {
function fprintf() {
$args = func_get_args();
if (count($args) < 2) {
user_error('Wrong parameter count for fprintf()', E_USER_WARNING);
return;
}
$resource_handle = array_shift($args);
$format = array_shift($args);
if (!is_resource($resource_handle)) {
user_error('fprintf() supplied argument is not a valid stream resource',
E_USER_WARNING);
return false;
}
return fwrite($resource_handle, vsprintf($format, $args));
}
}
?>

View File

@ -1,77 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: get_headers.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace get_headers()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.get_headers
* @author Aeontech <aeontech@gmail.com>
* @author Cpurruc <cpurruc@fh-landshut.de>
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5.0.0
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('get_headers')) {
function get_headers($url, $format = 0)
{
// Init
$urlinfo = parse_url($url);
$port = isset($urlinfo['port']) ? $urlinfo['port'] : 80;
// Connect
$fp = fsockopen($urlinfo['host'], $port, $errno, $errstr, 30);
if ($fp === false) {
return false;
}
// Send request
$head = 'HEAD ' . $urlinfo['path'] .
(isset($urlinfo['query']) ? '?' . $urlinfo['query'] : '') .
' HTTP/1.0' . "\r\n" .
'Host: ' . $urlinfo['host'] . "\r\n\r\n";
fputs($fp, $head);
// Read
while (!feof($fp)) {
if ($header = trim(fgets($fp, 1024))) {
list($key) = explode(':', $header);
if ($format === 1) {
// First element is the HTTP header type, such as HTTP 200 OK
// It doesn't have a separate name, so check for it
if ($key == $header) {
$headers[] = $header;
} else {
$headers[$key] = substr($header, strlen($key)+2);
}
} else {
$headers[] = $header;
}
}
}
return $headers;
}
}
?>

View File

@ -1,39 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Stephan Schmidt <schst@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: get_include_path.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace get_include_path()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.get_include_path
* @author Stephan Schmidt <schst@php.net>
* @version $Revision: 1.1 $
* @since PHP 4.3.0
* @require PHP 4.0.0
*/
if (!function_exists('get_include_path')) {
function get_include_path()
{
return ini_get('include_path');
}
}
?>

View File

@ -1,72 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: David Irvine <dave@codexweb.co.za> |
// | Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: html_entity_decode.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
if (!defined('ENT_NOQUOTES')) {
define('ENT_NOQUOTES', 0);
}
if (!defined('ENT_COMPAT')) {
define('ENT_COMPAT', 2);
}
if (!defined('ENT_QUOTES')) {
define('ENT_QUOTES', 3);
}
/**
* Replace html_entity_decode()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.html_entity_decode
* @author David Irvine <dave@codexweb.co.za>
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 4.3.0
* @internal Setting the charset will not do anything
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('html_entity_decode')) {
function html_entity_decode($string, $quote_style = ENT_COMPAT, $charset = null)
{
if (!is_int($quote_style)) {
user_error('html_entity_decode() expects parameter 2 to be long, ' .
gettype($quote_style) . ' given', E_USER_WARNING);
return;
}
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
// Add single quote to translation table;
$trans_tbl['&#039;'] = '\'';
// Not translating double quotes
if ($quote_style & ENT_NOQUOTES) {
// Remove double quote from translation table
unset($trans_tbl['&quot;']);
}
return strtr($string, $trans_tbl);
}
}
?>

View File

@ -1,99 +0,0 @@
<?PHP
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Stephan Schmidt <schst@php.net> |
// | Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: http_build_query.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace function http_build_query()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.http-build-query
* @author Stephan Schmidt <schst@php.net>
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('http_build_query')) {
function http_build_query($formdata, $numeric_prefix = null)
{
// If $formdata is an object, convert it to an array
if (is_object($formdata)) {
$formdata = get_object_vars($formdata);
}
// Check we have an array to work with
if (!is_array($formdata)) {
user_error('http_build_query() Parameter 1 expected to be Array or Object. Incorrect value given.',
E_USER_WARNING);
return false;
}
// If the array is empty, return null
if (empty($formdata)) {
return;
}
// Argument seperator
$separator = ini_get('arg_separator.output');
// Start building the query
$tmp = array ();
foreach ($formdata as $key => $val) {
if (is_integer($key) && $numeric_prefix != null) {
$key = $numeric_prefix . $key;
}
if (is_scalar($val)) {
array_push($tmp, urlencode($key).'='.urlencode($val));
continue;
}
// If the value is an array, recursively parse it
if (is_array($val)) {
array_push($tmp, __http_build_query($val, urlencode($key)));
continue;
}
}
return implode($separator, $tmp);
}
// Helper function
function __http_build_query ($array, $name)
{
$tmp = array ();
foreach ($array as $key => $value) {
if (is_array($value)) {
array_push($tmp, __http_build_query($value, sprintf('%s[%s]', $name, $key)));
} elseif (is_scalar($value)) {
array_push($tmp, sprintf('%s[%s]=%s', $name, urlencode($key), urlencode($value)));
} elseif (is_object($value)) {
array_push($tmp, __http_build_query(get_object_vars($value), sprintf('%s[%s]', $name, $key)));
}
}
// Argument seperator
$separator = ini_get('arg_separator.output');
return implode($separator, $tmp);
}
}
?>

View File

@ -1,147 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: image_type_to_mime_type.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
if (!defined('IMAGETYPE_GIF')) {
define('IMAGETYPE_GIF', 1);
}
if (!defined('IMAGETYPE_JPEG')) {
define('IMAGETYPE_JPEG', 2);
}
if (!defined('IMAGETYPE_PNG')) {
define('IMAGETYPE_PNG', 3);
}
if (!defined('IMAGETYPE_SWF')) {
define('IMAGETYPE_SWF', 4);
}
if (!defined('IMAGETYPE_PSD')) {
define('IMAGETYPE_PSD', 5);
}
if (!defined('IMAGETYPE_BMP')) {
define('IMAGETYPE_BMP', 6);
}
if (!defined('IMAGETYPE_TIFF_II')) {
define('IMAGETYPE_TIFF_II', 7);
}
if (!defined('IMAGETYPE_TIFF_MM')) {
define('IMAGETYPE_TIFF_MM', 8);
}
if (!defined('IMAGETYPE_JPC')) {
define('IMAGETYPE_JPC', 9);
}
if (!defined('IMAGETYPE_JP2')) {
define('IMAGETYPE_JP2', 10);
}
if (!defined('IMAGETYPE_JPX')) {
define('IMAGETYPE_JPX', 11);
}
if (!defined('IMAGETYPE_JB2')) {
define('IMAGETYPE_JB2', 12);
}
if (!defined('IMAGETYPE_SWC')) {
define('IMAGETYPE_SWC', 13);
}
if (!defined('IMAGETYPE_IFF')) {
define('IMAGETYPE_IFF', 14);
}
if (!defined('IMAGETYPE_WBMP')) {
define('IMAGETYPE_WBMP', 15);
}
if (!defined('IMAGETYPE_XBM')) {
define('IMAGETYPE_XBM', 16);
}
/**
* Replace image_type_to_mime_type()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.image_type_to_mime_type
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 4.3.0
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('image_type_to_mime_type')) {
function image_type_to_mime_type($imagetype)
{
switch ($imagetype):
case IMAGETYPE_GIF:
return 'image/gif';
break;
case IMAGETYPE_JPEG:
return 'image/jpeg';
break;
case IMAGETYPE_PNG:
return 'image/png';
break;
case IMAGETYPE_SWF:
case IMAGETYPE_SWC:
return 'application/x-shockwave-flash';
break;
case IMAGETYPE_PSD:
return 'image/psd';
break;
case IMAGETYPE_BMP:
return 'image/bmp';
break;
case IMAGETYPE_TIFF_MM:
case IMAGETYPE_TIFF_II:
return 'image/tiff';
break;
case IMAGETYPE_JP2:
return 'image/jp2';
break;
case IMAGETYPE_IFF:
return 'image/iff';
break;
case IMAGETYPE_WBMP:
return 'image/vnd.wap.wbmp';
break;
case IMAGETYPE_XBM:
return 'image/xbm';
break;
case IMAGETYPE_JPX:
case IMAGETYPE_JB2:
case IMAGETYPE_JPC:
default:
return 'application/octet-stream';
break;
endswitch;
}
}
?>

View File

@ -1,46 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: ob_get_clean.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace ob_get_clean()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.ob_get_clean
* @author Aidan Lister <aidan@php.net>
* @author Thiemo Mättig (http://maettig.com/)
* @version $Revision: 1.1 $
* @since PHP 4.3.0
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('ob_get_clean')) {
function ob_get_clean()
{
$contents = ob_get_contents();
if ($contents !== false) {
ob_end_clean();
}
return $contents;
}
}
?>

View File

@ -1,46 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: ob_get_flush.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace ob_get_flush()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.ob_get_flush
* @author Aidan Lister <aidan@php.net>
* @author Thiemo Mättig (http://maettig.com/)
* @version $Revision: 1.1 $
* @since PHP 4.3.0
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('ob_get_flush')) {
function ob_get_flush()
{
$contents = ob_get_contents();
if ($contents !== false) {
ob_end_flush();
}
return $contents;
}
}
?>

View File

@ -1,86 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: php_strip_whitespace.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace php_strip_whitespace()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.php_strip_whitespace
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.0 (user_error) + Tokenizer extension
*/
if (!function_exists('php_strip_whitespace')) {
function php_strip_whitespace($file)
{
// Sanity check
if (!is_scalar($file)) {
user_error('php_strip_whitespace() expects parameter 1 to be string, ' .
gettype($file) . ' given', E_USER_WARNING);
return;
}
// Load file / tokens
$source = implode('', file($file));
$tokens = token_get_all($source);
// Init
$source = '';
$was_ws = false;
// Process
foreach ($tokens as $token) {
if (is_string($token)) {
// Single character tokens
$source .= $token;
} else {
list($id, $text) = $token;
switch ($id) {
// Skip all comments
case T_COMMENT:
case T_ML_COMMENT:
case T_DOC_COMMENT:
break;
// Remove whitespace
case T_WHITESPACE:
// We don't want more than one whitespace in a row replaced
if ($was_ws !== true) {
$source .= ' ';
}
$was_ws = true;
break;
default:
$was_ws = false;
$source .= $text;
break;
}
}
}
return $source;
}
}
?>

View File

@ -1,37 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Stephan Schmidt <schst@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: restore_include_path.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace restore_include_path()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.restore_include_path
* @author Stephan Schmidt <schst@php.net>
* @version $Revision: 1.1 $
* @since PHP 4.3.0
*/
if (!function_exists('restore_include_path')) {
function restore_include_path()
{
return ini_restore('include_path');
}
}
?>

View File

@ -1,69 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: scandir.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace scandir()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.scandir
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('scandir')) {
function scandir($directory, $sorting_order = 0)
{
if (!is_string($directory)) {
user_error('scandir() expects parameter 1 to be string, ' .
gettype($directory) . ' given', E_USER_WARNING);
return;
}
if (!is_int($sorting_order) && !is_bool($sorting_order)) {
user_error('scandir() expects parameter 2 to be long, ' .
gettype($sorting_order) . ' given', E_USER_WARNING);
return;
}
if (!is_dir($directory) || (false === $fh = @opendir($directory))) {
user_error('scandir() failed to open dir: Invalid argument', E_USER_WARNING);
return false;
}
$files = array ();
while (false !== ($filename = readdir($fh))) {
$files[] = $filename;
}
closedir($fh);
if ($sorting_order == 1) {
rsort($files);
} else {
sort($files);
}
return $files;
}
}
?>

View File

@ -1,37 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Stephan Schmidt <schst@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: set_include_path.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace set_include_path()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.set_include_path
* @author Stephan Schmidt <schst@php.net>
* @version $Revision: 1.1 $
* @since PHP 4.3.0
*/
if (!function_exists('set_include_path')) {
function set_include_path($new_include_path)
{
return ini_set('include_path', $new_include_path);
}
}
?>

View File

@ -1,113 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: str_ireplace.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace str_ireplace()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.str_ireplace
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.0 (user_error)
* @note count not by returned by reference, to enable
* change '$count = null' to '&$count'
*/
if (!function_exists('str_ireplace')) {
function str_ireplace($search, $replace, $subject, $count = null)
{
// Sanity check
if (is_string($search) && is_array($replace)) {
user_error('Array to string conversion', E_USER_NOTICE);
$replace = (string) $replace;
}
// If search isn't an array, make it one
if (!is_array($search)) {
$search = array ($search);
}
$search = array_values($search);
// If replace isn't an array, make it one, and pad it to the length of search
if (!is_array($replace)) {
$replace_string = $replace;
$replace = array ();
for ($i = 0, $c = count($search); $i < $c; $i++) {
$replace[$i] = $replace_string;
}
}
$replace = array_values($replace);
// Check the replace array is padded to the correct length
$length_replace = count($replace);
$length_search = count($search);
if ($length_replace < $length_search) {
for ($i = $length_replace; $i < $length_search; $i++) {
$replace[$i] = '';
}
}
// If subject is not an array, make it one
$was_array = false;
if (!is_array($subject)) {
$was_array = true;
$subject = array ($subject);
}
// Loop through each subject
$count = 0;
foreach ($subject as $subject_key => $subject_value) {
// Loop through each search
foreach ($search as $search_key => $search_value) {
// Split the array into segments, in between each part is our search
$segments = explode(strtolower($search_value), strtolower($subject_value));
// The number of replacements done is the number of segments minus the first
$count += count($segments) - 1;
$pos = 0;
// Loop through each segment
foreach ($segments as $segment_key => $segment_value) {
// Replace the lowercase segments with the upper case versions
$segments[$segment_key] = substr($subject_value, $pos, strlen($segment_value));
// Increase the position relative to the initial string
$pos += strlen($segment_value) + strlen($search_value);
}
// Put our original string back together
$subject_value = implode($replace[$search_key], $segments);
}
$result[$subject_key] = $subject_value;
}
// Check if subject was initially a string and return it as a string
if ($was_array === true) {
return $result[0];
}
// Otherwise, just return the array
return $result;
}
}
?>

View File

@ -1,53 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: str_shuffle.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace str_shuffle()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.str_shuffle
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 4.3.0
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('str_shuffle')) {
function str_shuffle($str)
{
$newstr = '';
$strlen = strlen($str);
$str = (string) $str;
// Seed
list($usec, $sec) = explode(' ', microtime());
$seed = (float) $sec + ((float) $usec * 100000);
mt_srand($seed);
// Shuffle
for ($i = 0; $strlen > $i; $i++) {
$newstr .= $str[mt_rand(0, $strlen - 1)];
}
return $newstr;
}
}
?>

View File

@ -1,52 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: str_split.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace str_split()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.str_split
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('str_split')) {
function str_split($string, $split_length = 1)
{
if (!is_scalar($split_length)) {
user_error('str_split() expects parameter 2 to be long, ' .
gettype($split_length) . ' given', E_USER_WARNING);
return false;
}
$split_length = (int) $split_length;
if ($split_length < 1) {
user_error('str_split() The length of each segment must be greater than zero', E_USER_WARNING);
return false;
}
preg_match_all('/.{1,' . $split_length . '}/s', $string, $matches);
return $matches[0];
}
}
?>

View File

@ -1,68 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: str_word_count.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace str_word_count()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.str_word_count
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 4.3.0
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('str_word_count')) {
function str_word_count($string, $format = null)
{
if ($format !== 1 && $format !== 2 && $format !== null) {
user_error('str_word_count() The specified format parameter, "' . $format . '" is invalid',
E_USER_WARNING);
return false;
}
$word_string = preg_replace('/[0-9]+/', '', $string);
$word_array = preg_split('/[^A-Za-z0-9_\']+/', $word_string, -1, PREG_SPLIT_NO_EMPTY);
switch ($format) {
case null:
$result = count($word_array);
break;
case 1:
$result = $word_array;
break;
case 2:
$lastmatch = 0;
$word_assoc = array();
foreach ($word_array as $word) {
$word_assoc[$lastmatch = strpos($string, $word, $lastmatch)] = $word;
$lastmatch += strlen($word);
}
$result = $word_assoc;
break;
}
return $result;
}
}
?>

View File

@ -1,73 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: stripos.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace stripos()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.stripos
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('stripos')) {
function stripos($haystack, $needle, $offset = null)
{
if (!is_scalar($haystack)) {
user_error('stripos() expects parameter 1 to be string, ' .
gettype($haystack) . ' given', E_USER_WARNING);
return false;
}
if (!is_scalar($needle)) {
user_error('stripos() needle is not a string or an integer.', E_USER_WARNING);
return false;
}
if (!is_int($offset) && !is_bool($offset) && !is_null($offset)) {
user_error('stripos() expects parameter 3 to be long, ' .
gettype($offset) . ' given', E_USER_WARNING);
return false;
}
// Manipulate the string if there is an offset
$fix = 0;
if (!is_null($offset)) {
if ($offset > 0) {
$haystack = substr($haystack, $offset, strlen($haystack) - $offset);
$fix = $offset;
}
}
$segments = explode(strtolower($needle), strtolower($haystack), 2);
// Check there was a match
if (count($segments) == 1) {
return false;
}
$position = strlen($segments[0]) + $fix;
return $position;
}
}
?>

View File

@ -1,63 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Stephan Schmidt <schst@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: strpbrk.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace strpbrk()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.strpbrk
* @author Stephan Schmidt <schst@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('strpbrk')) {
function strpbrk($haystack, $char_list)
{
if (!is_scalar($haystack)) {
user_error('strpbrk() expects parameter 1 to be string, ' .
gettype($haystack) . ' given', E_USER_WARNING);
return false;
}
if (!is_scalar($char_list)) {
user_error('strpbrk() expects parameter 2 to be scalar, ' .
gettype($needle) . ' given', E_USER_WARNING);
return false;
}
$haystack = (string) $haystack;
$char_list = (string) $char_list;
$len = strlen($haystack);
for ($i = 0; $i < $len; $i++) {
$char = substr($haystack, $i, 1);
if (strpos($char_list, $char) === false) {
continue;
}
return substr($haystack, $i);
}
return false;
}
}
?>

View File

@ -1,82 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Aidan Lister <aidan@php.net> |
// | Stephan Schmidt <schst@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: strripos.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace strripos()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.strripos
* @author Aidan Lister <aidan@php.net>
* @author Stephan Schmidt <schst@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('strripos')) {
function strripos($haystack, $needle, $offset = null)
{
if (!is_scalar($haystack)) {
user_error('strripos() expects parameter 1 to be scalar, ' .
gettype($haystack) . ' given', E_USER_WARNING);
return false;
}
if (!is_scalar($needle)) {
user_error('strripos() expects parameter 2 to be scalar, ' .
gettype($needle) . ' given', E_USER_WARNING);
return false;
}
if (!is_int($offset) && !is_bool($offset) && !is_null($offset)) {
user_error('strripos() expects parameter 3 to be long, ' .
gettype($offset) . ' given', E_USER_WARNING);
return false;
}
// Manipulate the string if there is an offset
$fix = 0;
if (!is_null($offset)) {
// If the offset is larger than the haystack, return
if (abs($offset) >= strlen($haystack)) {
return false;
}
// Check whether offset is negative or positive
if ($offset > 0) {
$haystack = substr($haystack, $offset, strlen($haystack) - $offset);
// We need to add this to the position of the needle
$fix = $offset;
} else {
$haystack = substr($haystack, 0, strlen($haystack) + $offset);
}
}
$segments = explode(strtolower($needle), strtolower($haystack));
$last_seg = count($segments) - 1;
$position = strlen($haystack) + $fix - strlen($segments[$last_seg]) - strlen($needle);
return $position;
}
}
?>

View File

@ -1,74 +0,0 @@
<?php
// +----------------------------------------------------------------------+
// | PHP Version 4 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2004 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Tom Buskens <ortega@php.net> |
// | Aidan Lister <aidan@php.net> |
// +----------------------------------------------------------------------+
//
// $Id: substr_compare.php,v 1.1 2005/07/23 05:56:03 Tony Exp $
/**
* Replace substr_compare()
*
* @category PHP
* @package PHP_Compat
* @link http://php.net/function.substr_compare
* @author Tom Buskens <ortega@php.net>
* @author Aidan Lister <aidan@php.net>
* @version $Revision: 1.1 $
* @since PHP 5
* @require PHP 4.0.0 (user_error)
*/
if (!function_exists('substr_compare')) {
function substr_compare($main_str, $str, $offset, $length = null, $case_insensitive = false)
{
if (!is_string($main_str)) {
user_error('substr_compare() expects parameter 1 to be string, ' .
gettype($main_str) . ' given', E_USER_WARNING);
return;
}
if (!is_string($str)) {
user_error('substr_compare() expects parameter 2 to be string, ' .
gettype($str) . ' given', E_USER_WARNING);
return;
}
if (!is_int($offset)) {
user_error('substr_compare() expects parameter 3 to be long, ' .
gettype($offset) . ' given', E_USER_WARNING);
return;
}
if (is_null($length)) {
$length = strlen($main_str) - $offset;
} elseif ($offset >= strlen($main_str)) {
user_error('substr_compare() The start position cannot exceed initial string length',
E_USER_WARNING);
return false;
}
$main_str = substr($main_str, $offset, $length);
$str = substr($str, 0, strlen($main_str));
if ($case_insensitive === false) {
return strcmp($main_str, $str);
} else {
return strcasecmp($main_str, $str);
}
}
}
?>

View File

@ -25,7 +25,7 @@
* @author Jesper Veggerby <pear.nosey@veggerby.dk> * @author Jesper Veggerby <pear.nosey@veggerby.dk>
* @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen * @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen
* @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
* @version CVS: $Id: Canvas.php,v 1.5 2005/09/30 18:59:35 nosey Exp $ * @version CVS: $Id: Canvas.php,v 1.7 2006/02/28 22:46:25 nosey Exp $
* @link http://pear.php.net/pepr/pepr-proposal-show.php?id=212 * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=212
*/ */
@ -357,6 +357,16 @@ class Image_Canvas
$this->_font = $this->_defaultFont; $this->_font = $this->_defaultFont;
} }
/**
* Reset the canvas.
*
* Includes fillstyle, linestyle, thickness and polygon
*/
function reset()
{
$this->_reset();
}
/** /**
* Draw a line end * Draw a line end
* *
@ -588,6 +598,20 @@ class Image_Canvas
{ {
} }
/**
* Set clipping to occur
*
* Parameter array:
*
* 'x0': int X point of Upper-left corner
* 'y0': int X point of Upper-left corner
* 'x1': int X point of lower-right corner
* 'y1': int Y point of lower-right corner
*/
function setClipping($params = false)
{
}
/** /**
* Start a group. * Start a group.
* *

View File

@ -29,7 +29,7 @@
* @author Jesper Veggerby <pear.nosey@veggerby.dk> * @author Jesper Veggerby <pear.nosey@veggerby.dk>
* @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen * @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen
* @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
* @version CVS: $Id: GD.php,v 1.8 2005/09/25 07:41:43 nosey Exp $ * @version CVS: $Id: GD.php,v 1.16 2007/06/22 20:19:54 nosey Exp $
* @link http://pear.php.net/pepr/pepr-proposal-show.php?id=212 * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=212
*/ */
@ -89,6 +89,10 @@ class Image_Canvas_GD extends Image_Canvas_WithMap
*/ */
var $_antialias = 'off'; var $_antialias = 'off';
var $_alpha = false;
var $_clipping = array();
/** /**
* Create the GD canvas. * Create the GD canvas.
* *
@ -159,6 +163,7 @@ class Image_Canvas_GD extends Image_Canvas_WithMap
); );
if ((!isset($param['noalpha'])) || ($param['noalpha'] !== true)) { if ((!isset($param['noalpha'])) || ($param['noalpha'] !== true)) {
ImageAlphaBlending($this->_canvas, true); ImageAlphaBlending($this->_canvas, true);
$this->_alpha = true;
} }
} else { } else {
$this->_canvas = ImageCreate($this->_width, $this->_height); $this->_canvas = ImageCreate($this->_width, $this->_height);
@ -173,7 +178,7 @@ class Image_Canvas_GD extends Image_Canvas_WithMap
$this->_antialias = 'driver'; $this->_antialias = 'driver';
} }
if (($this->_gd2) && ($this->_antialias === 'native')) { if (($this->_gd2) && ($this->_antialias === 'native') && (function_exists('ImageAntialias'))) {
ImageAntialias($this->_canvas, true); ImageAntialias($this->_canvas, true);
} }
} }
@ -570,7 +575,7 @@ class Image_Canvas_GD extends Image_Canvas_WithMap
parent::setFont($fontOptions); parent::setFont($fontOptions);
if (isset($this->_font['ttf'])) { if (isset($this->_font['ttf'])) {
$this->_font['file'] = str_replace('\\', '/', $this->_mapFont($this->_font['ttf'])); $this->_font['file'] = str_replace('\\', '/', Image_Canvas_Tool::fontMap($this->_font['ttf']));
} elseif (!isset($this->_font['font'])) { } elseif (!isset($this->_font['font'])) {
$this->_font['font'] = 1; $this->_font['font'] = 1;
} }
@ -1204,7 +1209,7 @@ class Image_Canvas_GD extends Image_Canvas_WithMap
$polygon[] = ($y + $ry * sin(deg2rad(max($v1, $v2) % 360))); $polygon[] = ($y + $ry * sin(deg2rad(max($v1, $v2) % 360)));
} }
if (($fill = $this->_getFillStyle($fillColor, $x - $rx - 1, $y - $ry - 1, $x + $rx + 1, $y + $ry + 1)) !== false) { if ((($fill = $this->_getFillStyle($fillColor, $x - $rx - 1, $y - $ry - 1, $x + $rx + 1, $y + $ry + 1)) !== false) && (count($polygon) > 2)) {
ImageFilledPolygon($this->_canvas, $polygon, count($polygon) / 2, $fill); ImageFilledPolygon($this->_canvas, $polygon, count($polygon) / 2, $fill);
} }
@ -1283,13 +1288,13 @@ class Image_Canvas_GD extends Image_Canvas_WithMap
} }
$linebreaks = substr_count($text, "\n"); $linebreaks = substr_count($text, "\n");
if (($angle == 0) && ($linebreaks == 0) && ($force === false)) { if (($angle == 0) && ($force === false)) {
/* /*
* if the angle is 0 simply return the size, due to different * if the angle is 0 simply return the size, due to different
* heights for example for x-axis labels, making the labels * heights for example for x-axis labels, making the labels
* _not_ appear as written on the same baseline * _not_ appear as written on the same baseline
*/ */
return $this->_font['size'] + 2; return $this->_font['size'] + ($this->_font['size'] + 2) * $linebreaks;
} }
$height = 0; $height = 0;
@ -1321,6 +1326,105 @@ class Image_Canvas_GD extends Image_Canvas_WithMap
} }
} }
/**
* Calculated the absolute bottom-left position of the text, by simulating
* the calculation of the baseline drop.
* @param int $x The relative x position to write the text
* @param int $y The relative y position to write the text
* @param string $text The text to write
* @param array $align The alignment of the text relative to (x, y)
* @returns array An array containing the absolute x and y positions
* @access private
*/
function _getAbsolutePosition($x, $y, $text, $align)
{
if ($this->_font['angle'] > 0) {
$w0 = $this->textWidth($text);
$h0 = $this->textHeight($text);
if ($align['vertical'] == 'bottom') {
$dy = $y - $h0;
}
else if ($align['vertical'] == 'center') {
$dy = $y - $h0 / 2;
}
else if ($align['vertical'] == 'top') {
$dy = $y;
}
if ($align['horizontal'] == 'right') {
$dx = $x - $w0;
}
else if ($align['horizontal'] == 'center') {
$dx = $x - $w0 / 2;
}
else if ($align['horizontal'] == 'left') {
$dx = $x;
}
if (($this->_font['angle'] < 180) && ($this->_font['angle'] >= 0)) {
$dy += $h0;
}
if (($this->_font['angle'] >= 90) && ($this->_font['angle'] < 270)) {
$dx += $w0;
}
}
else {
// get the maximum size of normal text above base line - sampled by 'Al'
$size1 = imagettfbbox($this->_font['size'], 0, $this->_font['file'], 'Al');
$height1 = abs($size1[7] - $size1[1]);
// get the maximum size of all text above base and below line - sampled by 'AlgjpqyQ'
$size2 = imagettfbbox($this->_font['size'], 0, $this->_font['file'], 'AlgjpqyQ');
$height2 = abs($size2[7] - $size2[1]);
// get the size of the text, simulating height above baseline beinh max, by sampling using 'Al'
$size = imagettfbbox($this->_font['size'], 0, $this->_font['file'], 'Al' . $text);
$height = abs($size[7] - $size[1]);
// if all text is above baseline, i.e. height of text compares to max height above (within 10%)
if (abs($height - $height1)/$height1 < 0.1) {
$dHeight = 0;
}
else {
$dHeight = abs($height2 - $height1);
}
// specifies the bottom-left corner!
$dx = $x + sin(deg2rad($this->_font['angle'])) * $dHeight;
$dy = $y - cos(deg2rad($this->_font['angle'])) * $dHeight;
if ($align['vertical'] == 'top') {
$dy += $height;
}
else if ($align['vertical'] == 'center') {
$dy += ($height + $dHeight) / 2;
}
else if ($align['vertical'] == 'bottom') {
$dy += $dHeight;
}
if ($align['horizontal'] == 'center') {
$factor = 0.5;
}
else if ($align['horizontal'] == 'right') {
$factor = 1;
}
else {
$factor = 0;
}
if ($factor != 0) {
$size = imagettfbbox($this->_font['size'], 0, $this->_font['file'], $text);
$w0 = abs($size[2] - $size[0]);
$dx -= cos(deg2rad($this->_font['angle'])) * $w0 * $factor;
$dy += sin(deg2rad($this->_font['angle'])) * $w0 * $factor;
}
}
return array('x' => $dx, 'y' => $dy);
}
/** /**
* Writes text * Writes text
* *
@ -1358,53 +1462,52 @@ class Image_Canvas_GD extends Image_Canvas_WithMap
$alignment['horizontal'] = 'left'; $alignment['horizontal'] = 'left';
} }
if ($alignment['vertical'] == 'bottom') { if (isset($this->_font['size'])) {
$y0 = $y0 - $this->textHeight($text, true); $textHeight = $this->_font['size'] + 2;
} elseif ($alignment['vertical'] == 'center') { }
$y0 = $y0 - ($this->textHeight($text, true) / 2); else {
$textHeight = $this->textHeight('A');
} }
$lines = explode("\n", $text); $lines = explode("\n", $text);
foreach ($lines as $line) { foreach ($lines as $line) {
$textWidth = $this->textWidth($line);
$textHeight = $this->textHeight($line, true);
$x = $x0; $x = $x0;
$y = $y0; $y = $y0;
$y0 += $textHeight + 2; $y0 += $textHeight + 2;
if ($alignment['horizontal'] == 'right') {
$x = $x - $textWidth;
} elseif ($alignment['horizontal'] == 'center') {
$x = $x - ($textWidth / 2);
}
if (($color === false) && (isset($this->_font['color']))) { if (($color === false) && (isset($this->_font['color']))) {
$color = $this->_font['color']; $color = $this->_font['color'];
} }
if ($color != 'transparent') { if ($color != 'transparent') {
if (isset($this->_font['file'])) { if (isset($this->_font['file'])) {
if (($this->_font['angle'] < 180) && ($this->_font['angle'] >= 0)) { $result = $this->_getAbsolutePosition($x, $y, $line, $alignment);
$y += $textHeight;
}
if (($this->_font['angle'] >= 90) && ($this->_font['angle'] < 270)) {
$x += $textWidth;
}
ImageTTFText( ImageTTFText(
$this->_canvas, $this->_canvas,
$this->_font['size'], $this->_font['size'],
$this->_font['angle'], $this->_font['angle'],
$x, $result['x'],
$y, $result['y'],
$this->_color($color), $this->_color($color),
$this->_font['file'], $this->_font['file'],
$line $line
); );
} else { } else {
$width = $this->textWidth($line);
$height = $this->textHeight($line);
if ($alignment['horizontal'] == 'right') {
$x -= $width;
}
else if ($alignment['horizontal'] == 'center') {
$x -= $width / 2;
}
if ($alignment['vertical'] == 'bottom') {
$y -= $height;
}
else if ($alignment['vertical'] == 'center') {
$y -= $height / 2;
}
if ((isset($this->_font['vertical'])) && ($this->_font['vertical'])) { if ((isset($this->_font['vertical'])) && ($this->_font['vertical'])) {
ImageStringUp( ImageStringUp(
$this->_canvas, $this->_canvas,
@ -1542,6 +1645,62 @@ class Image_Canvas_GD extends Image_Canvas_WithMap
parent::image($params); parent::image($params);
} }
/**
* Set clipping to occur
*
* Parameter array:
*
* 'x0': int X point of Upper-left corner
* 'y0': int X point of Upper-left corner
* 'x1': int X point of lower-right corner
* 'y1': int Y point of lower-right corner
*/
function setClipping($params = false)
{
if ($params === false) {
$index = count($this->_clipping) - 1;
if (isset($this->_clipping[$index])) {
$params = $this->_clipping[$index];
$canvas = $params['canvas'];
ImageCopy(
$canvas,
$this->_canvas,
min($params['x0'], $params['x1']),
min($params['y0'], $params['y1']),
min($params['x0'], $params['x1']),
min($params['y0'], $params['y1']),
abs($params['x1'] - $params['x0'] + 1),
abs($params['y1'] - $params['y0'] + 1)
);
$this->_canvas = $canvas;
unset($this->_clipping[$index]);
}
}
else {
$params['canvas'] = $this->_canvas;
if ($this->_gd2) {
$this->_canvas = ImageCreateTrueColor(
$this->_width,
$this->_height
);
if ($this->_alpha) {
ImageAlphaBlending($this->_canvas, true);
}
} else {
$this->_canvas = ImageCreate($this->_width, $this->_height);
}
if (($this->_gd2) && ($this->_antialias === 'native')) {
ImageAntialias($this->_canvas, true);
}
ImageCopy($this->_canvas, $params['canvas'], 0, 0, 0, 0, $this->_width, $this->_height);
$this->_clipping[count($this->_clipping)] = $params;
}
}
/** /**
* Get a canvas specific HTML tag. * Get a canvas specific HTML tag.
* *
@ -1615,6 +1774,8 @@ class Image_Canvas_GD extends Image_Canvas_WithMap
$php_info, $result)) $php_info, $result))
{ {
$version = $result[1]; $version = $result[1];
} else {
$version = null;
} }
} }

View File

@ -25,7 +25,7 @@
* @author Jesper Veggerby <pear.nosey@veggerby.dk> * @author Jesper Veggerby <pear.nosey@veggerby.dk>
* @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen * @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen
* @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
* @version CVS: $Id: ImageMap.php,v 1.6 2005/08/17 17:59:11 nosey Exp $ * @version CVS: $Id: ImageMap.php,v 1.8 2006/10/24 18:58:16 nosey Exp $
* @link http://pear.php.net/pepr/pepr-proposal-show.php?id=212 * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=212
*/ */
@ -68,7 +68,7 @@ class Image_Canvas_ImageMap extends Image_Canvas
if (isset($params['htmltags'])) { if (isset($params['htmltags'])) {
foreach ($params['htmltags'] as $key => $value) { foreach ($params['htmltags'] as $key => $value) {
$tags .= ' '; $tags .= ' ';
if (strpos($value, '"') >= 0) { if (strpos($value, '"') !== false) {
$tags .= $key . '=\'' . $value . '\''; $tags .= $key . '=\'' . $value . '\'';
} else { } else {
$tags .= $key . '="' . $value . '"'; $tags .= $key . '="' . $value . '"';
@ -331,7 +331,7 @@ class Image_Canvas_ImageMap extends Image_Canvas
function save($params = false) function save($params = false)
{ {
parent::save($params); parent::save($params);
$file = fopen($param['filename'], 'w+'); $file = fopen($params['filename'], 'w+');
fwrite($file, $this->toHtml($params)); fwrite($file, $this->toHtml($params));
fclose($file); fclose($file);
} }

View File

@ -25,7 +25,7 @@
* @author Jesper Veggerby <pear.nosey@veggerby.dk> * @author Jesper Veggerby <pear.nosey@veggerby.dk>
* @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen * @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen
* @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
* @version CVS: $Id: PDF.php,v 1.5 2005/10/28 09:54:40 nosey Exp $ * @version CVS: $Id: PDF.php,v 1.6 2006/04/11 21:12:41 nosey Exp $
* @link http://pear.php.net/pepr/pepr-proposal-show.php?id=212 * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=212
*/ */
@ -301,8 +301,6 @@ class Image_Canvas_PDF extends Image_Canvas
} }
} }
$this->_pdflib = $this->_version();
$addPage = true; $addPage = true;
if ((isset($param['pdf'])) && (is_resource($param['pdf']))) { if ((isset($param['pdf'])) && (is_resource($param['pdf']))) {
$this->_pdf =& $param['pdf']; $this->_pdf =& $param['pdf'];
@ -329,6 +327,8 @@ class Image_Canvas_PDF extends Image_Canvas
pdf_begin_page($this->_pdf, $this->_pageWidth, $this->_pageHeight); pdf_begin_page($this->_pdf, $this->_pageWidth, $this->_pageHeight);
} }
$this->_reset(); $this->_reset();
$this->_pdflib = $this->_version();
} }
/** /**
@ -543,7 +543,7 @@ class Image_Canvas_PDF extends Image_Canvas
$color = (isset($params['color']) ? $params['color'] : false); $color = (isset($params['color']) ? $params['color'] : false);
if ($this->_setLineStyle($color)) { if ($this->_setLineStyle($color)) {
pdf_moveto($this->_pdf, $this->_getX($params['x0']), $this->_getY($params['y0'])); pdf_moveto($this->_pdf, $this->_getX($params['x0']), $this->_getY($params['y0']));
pdf_lineto($this->_pdf, $this->_getX($params['x1']), $this->_getY($params['x1'])); pdf_lineto($this->_pdf, $this->_getX($params['x1']), $this->_getY($params['y1']));
pdf_stroke($this->_pdf); pdf_stroke($this->_pdf);
} }
parent::line($params); parent::line($params);
@ -646,7 +646,7 @@ class Image_Canvas_PDF extends Image_Canvas
$line = $this->_setLineStyle($lineColor); $line = $this->_setLineStyle($lineColor);
$fill = $this->_setFillStyle($fillColor); $fill = $this->_setFillStyle($fillColor);
if (($line) || ($fill)) { if (($line) || ($fill)) {
pdf_rect($this->_pdf, $this->_getX(min($x0, $x1)), $this->_getY(max($y0, $y1)), abs($x1 - $x0), abs($y1 - $y0)); pdf_rect($this->_pdf, min($x0, $x1), min($y0, $y1), abs($x1 - $x0), abs($y1 - $y0));
if (($line) && ($fill)) { if (($line) && ($fill)) {
pdf_fill_stroke($this->_pdf); pdf_fill_stroke($this->_pdf);
} elseif ($line) { } elseif ($line) {
@ -672,10 +672,10 @@ class Image_Canvas_PDF extends Image_Canvas
*/ */
function ellipse($params) function ellipse($params)
{ {
$x = $this->_getX($params['x']); $x = $params['x'];
$y = $this->_getY($params['y']); $y = $params['y'];
$rx = $this->_getX($params['rx']); $rx = $params['rx'];
$ry = $this->_getY($params['ry']); $ry = $params['ry'];
$fillColor = (isset($params['fill']) ? $params['line'] : false); $fillColor = (isset($params['fill']) ? $params['line'] : false);
$lineColor = (isset($params['line']) ? $params['line'] : false); $lineColor = (isset($params['line']) ? $params['line'] : false);
@ -823,7 +823,9 @@ class Image_Canvas_PDF extends Image_Canvas
$x = $x - ($textWidth / 2); $x = $x - ($textWidth / 2);
} }
if ($alignment['vertical'] == 'top') { $y -= $textHeight;
if ($alignment['vertical'] == 'bottom') {
$y = $y + $textHeight; $y = $y + $textHeight;
} elseif ($alignment['vertical'] == 'center') { } elseif ($alignment['vertical'] == 'center') {
$y = $y + ($textHeight / 2); $y = $y + ($textHeight / 2);
@ -833,7 +835,7 @@ class Image_Canvas_PDF extends Image_Canvas
$color = $this->_font['color']; $color = $this->_font['color'];
} }
pdf_show_xy($this->_pdf, $text, $this->_getX($x), $this->_getY($y)); pdf_show_xy($this->_pdf, $text, $x, $y);
parent::addText($params); parent::addText($params);
} }
@ -901,7 +903,7 @@ class Image_Canvas_PDF extends Image_Canvas
$scale = max(($height/$height_), ($width/$width_)); $scale = max(($height/$height_), ($width/$width_));
} }
pdf_place_image($this->_pdf, $image, $this->_getX($x), $this->_getY($y), $scale); pdf_place_image($this->_pdf, $image, $x, $y, $scale);
pdf_close_image($this->_pdf, $image); pdf_close_image($this->_pdf, $image);
parent::image($params); parent::image($params);
@ -980,8 +982,11 @@ class Image_Canvas_PDF extends Image_Canvas
function _version() function _version()
{ {
$result = false; $result = false;
$version = '';
if (function_exists('pdf_get_majorversion')) { if (function_exists('pdf_get_majorversion')) {
$version = pdf_get_majorversion(); $version = pdf_get_majorversion();
} else if (function_exists('pdf_get_value')) {
$version = pdf_get_value($this->_pdf, 'major', 0);
} else { } else {
ob_start(); ob_start();
phpinfo(8); phpinfo(8);
@ -998,7 +1003,7 @@ class Image_Canvas_PDF extends Image_Canvas
if (ereg('([0-9]{1,2})\.[0-9]{1,2}(\.[0-9]{1,2})?', trim($version), $result)) { if (ereg('([0-9]{1,2})\.[0-9]{1,2}(\.[0-9]{1,2})?', trim($version), $result)) {
return $result[1]; return $result[1];
} else { } else {
return 0; return $version;
} }
} }

View File

@ -21,7 +21,7 @@
* @author Jesper Veggerby <pear.nosey@veggerby.dk> * @author Jesper Veggerby <pear.nosey@veggerby.dk>
* @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen * @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen
* @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
* @version CVS: $Id: SVG.php,v 1.9 2005/11/08 19:00:35 nosey Exp $ * @version CVS: $Id: SVG.php,v 1.17 2007/06/22 20:15:35 nosey Exp $
* @link http://pear.php.net/pepr/pepr-proposal-show.php?id=212 * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=212
*/ */
@ -84,6 +84,13 @@ class Image_Canvas_SVG extends Image_Canvas
*/ */
var $_groupIDs = array(); var $_groupIDs = array();
/**
* The XML encoding (default iso-8859-1)
* @var string
* @access private
*/
var $_encoding = 'iso-8859-1';
/** /**
* Create the SVG canvas. * Create the SVG canvas.
* *
@ -93,12 +100,18 @@ class Image_Canvas_SVG extends Image_Canvas
* *
* 'height' The height of the graph * 'height' The height of the graph
* *
* 'encoding' The encoding of the SVG document
*
* @param array $param Parameter array * @param array $param Parameter array
*/ */
function Image_Canvas_SVG($param) function Image_Canvas_SVG($params)
{ {
parent::Image_Canvas($param); parent::Image_Canvas($params);
$this->_reset(); $this->_reset();
if (isset($params['encoding'])) {
$this->_encoding = $params['encoding'];
}
} }
/** /**
@ -412,6 +425,8 @@ class Image_Canvas_SVG extends Image_Canvas
$y1 = $this->_getY($params['y1']); $y1 = $this->_getY($params['y1']);
$color = (isset($params['color']) ? $params['color'] : false); $color = (isset($params['color']) ? $params['color'] : false);
$attrs = (isset($params['attrs']) && is_array($params['attrs'])) ? $this->_getAttributes($params['attrs']) : null;
$style = $this->_getLineStyle($color) . $this->_getFillStyle('transparent'); $style = $this->_getLineStyle($color) . $this->_getFillStyle('transparent');
if ($style != '') { if ($style != '') {
$this->_addElement( $this->_addElement(
@ -421,6 +436,7 @@ class Image_Canvas_SVG extends Image_Canvas
'x2="' . round($x1) . '" ' . 'x2="' . round($x1) . '" ' .
'y2="' . round($y1) . '" ' . 'y2="' . round($y1) . '" ' .
'style="' . $style . '"' . 'style="' . $style . '"' .
($attrs ? ' ' . $attrs : '') .
'/>', '/>',
$params $params
); );
@ -447,6 +463,8 @@ class Image_Canvas_SVG extends Image_Canvas
} }
$style = $this->_getLineStyle($lineColor) . $this->_getFillStyle($fillColor); $style = $this->_getLineStyle($lineColor) . $this->_getFillStyle($fillColor);
$attrs = (isset($params['attrs']) && is_array($params['attrs'])) ? $this->_getAttributes($params['attrs']) : null;
$first = true; $first = true;
$spline = false; $spline = false;
$lastpoint = false; $lastpoint = false;
@ -478,12 +496,13 @@ class Image_Canvas_SVG extends Image_Canvas
$first = false; $first = false;
} }
if ($connectEnds) { if ($connectEnds) {
$point .= ' Z'; $points .= ' Z';
} }
$this->_addElement( $this->_addElement(
'<path ' . '<path ' .
'd="' . $points . '" ' . 'd="' . $points . '" ' .
'style="' . $style . '"' . 'style="' . $style . '"' .
($attrs ? ' ' . $attrs : '') .
'/>', '/>',
$params $params
); );
@ -512,6 +531,8 @@ class Image_Canvas_SVG extends Image_Canvas
$fillColor = (isset($params['fill']) ? $params['line'] : false); $fillColor = (isset($params['fill']) ? $params['line'] : false);
$lineColor = (isset($params['line']) ? $params['line'] : false); $lineColor = (isset($params['line']) ? $params['line'] : false);
$attrs = (isset($params['attrs']) && is_array($params['attrs'])) ? $this->_getAttributes($params['attrs']) : null;
$style = $this->_getLineStyle($lineColor) . $this->_getFillStyle($fillColor); $style = $this->_getLineStyle($lineColor) . $this->_getFillStyle($fillColor);
if ($style != '') { if ($style != '') {
$this->_addElement( $this->_addElement(
@ -521,6 +542,7 @@ class Image_Canvas_SVG extends Image_Canvas
'width="' . round(abs($x1 - $x0)) . '" ' . 'width="' . round(abs($x1 - $x0)) . '" ' .
'height="' . round(abs($y1 - $y0)) . '" ' . 'height="' . round(abs($y1 - $y0)) . '" ' .
'style="' . $style . '"' . 'style="' . $style . '"' .
($attrs ? ' ' . $attrs : '') .
'/>', '/>',
$params $params
); );
@ -549,6 +571,8 @@ class Image_Canvas_SVG extends Image_Canvas
$fillColor = (isset($params['fill']) ? $params['line'] : false); $fillColor = (isset($params['fill']) ? $params['line'] : false);
$lineColor = (isset($params['line']) ? $params['line'] : false); $lineColor = (isset($params['line']) ? $params['line'] : false);
$attrs = (isset($params['attrs']) && is_array($params['attrs'])) ? $this->_getAttributes($params['attrs']) : null;
$style = $this->_getLineStyle($lineColor) . $this->_getFillStyle($fillColor); $style = $this->_getLineStyle($lineColor) . $this->_getFillStyle($fillColor);
if ($style != '') { if ($style != '') {
$this->_addElement( $this->_addElement(
@ -558,6 +582,7 @@ class Image_Canvas_SVG extends Image_Canvas
'rx="' . round($rx) . '" ' . 'rx="' . round($rx) . '" ' .
'ry="' . round($ry) . '" ' . 'ry="' . round($ry) . '" ' .
'style="' . $style . '"' . 'style="' . $style . '"' .
($attrs ? ' ' . $attrs : '') .
'/>', '/>',
$params $params
); );
@ -594,6 +619,8 @@ class Image_Canvas_SVG extends Image_Canvas
$fillColor = (isset($params['fill']) ? $params['line'] : false); $fillColor = (isset($params['fill']) ? $params['line'] : false);
$lineColor = (isset($params['line']) ? $params['line'] : false); $lineColor = (isset($params['line']) ? $params['line'] : false);
$attrs = (isset($params['attrs']) && is_array($params['attrs'])) ? $this->_getAttributes($params['attrs']) : null;
$dv = max($v2, $v1) - min($v2, $v1); $dv = max($v2, $v1) - min($v2, $v1);
if ($dv >= 360) { if ($dv >= 360) {
$this->ellipse($params); $this->ellipse($params);
@ -613,6 +640,7 @@ class Image_Canvas_SVG extends Image_Canvas
round($x2) . ',' . round($y2) . ' ' . round($x2) . ',' . round($y2) . ' ' .
'Z" ' . 'Z" ' .
'style="' . $style . '"' . 'style="' . $style . '"' .
($attrs ? ' ' . $attrs : '') .
'/>', '/>',
$params $params
); );
@ -670,6 +698,8 @@ class Image_Canvas_SVG extends Image_Canvas
$color = (isset($params['color']) ? $params['color'] : false); $color = (isset($params['color']) ? $params['color'] : false);
$alignment = (isset($params['alignment']) ? $params['alignment'] : false); $alignment = (isset($params['alignment']) ? $params['alignment'] : false);
$attrs = (isset($params['attrs']) && is_array($params['attrs'])) ? $this->_getAttributes($params['attrs']) : null;
$textHeight = $this->textHeight($text); $textHeight = $this->textHeight($text);
if (!is_array($alignment)) { if (!is_array($alignment)) {
@ -687,7 +717,7 @@ class Image_Canvas_SVG extends Image_Canvas
$align = ''; $align = '';
if ((isset($this->_font['vertical'])) && ($this->_font['vertical'])) { if ((isset($this->_font['vertical'])) && ($this->_font['vertical'])) {
$align .= 'writing-mode: tb-rl;'; // $align .= 'writing-mode: tb-rl;';
if ($alignment['vertical'] == 'bottom') { if ($alignment['vertical'] == 'bottom') {
$align .= 'text-anchor:end;'; $align .= 'text-anchor:end;';
@ -718,23 +748,27 @@ class Image_Canvas_SVG extends Image_Canvas
$textOpacity = $this->_opacity($color); $textOpacity = $this->_opacity($color);
$this->_addElement( $this->_addElement(
'<text ' . '<g transform="translate(' . round($x) . ', ' . round($y) . ')">' . "\n" .
'x="' . round($x) . '" ' . $this->_indent . ' <text ' .
'y="' . round($y) . '" ' . 'x="0" ' .
/* (isset($this->_font['angle']) && ($this->_font['angle'] > 0) ? 'y="0" ' .
'rotate="' . $this->_font['angle'] . '" ' : (isset($this->_font['angle']) && ($this->_font['angle'] > 0) ?
'transform="rotate(' . (($this->_font['angle'] + 180) % 360) . ')" ' :
'' ''
) .*/ ) .
'style="' . 'style="' .
(isset($this->_font['name']) ? (isset($this->_font['name']) ?
'font-family:' . $this->_font['name'] . ';' : '') . 'font-family:' . $this->_font['name'] . ';' : '') .
'font-size:' . $this->_font['size'] . 'px;fill=' . 'font-size:' . $this->_font['size'] . 'px;fill:' .
$textColor . ($textOpacity ? ';fill-opacity:' . $textColor . ($textOpacity ? ';fill-opacity:' .
$textOpacity : $textOpacity :
'' ''
) . ';' . $align . '">' . ) . ';' . $align . '"' .
($attrs ? ' ' . $attrs : '') .
'>' .
htmlspecialchars($text) . htmlspecialchars($text) .
'</text>', '</text>' . "\n" .
$this->_indent . '</g>',
$params $params
); );
parent::addText($params); parent::addText($params);
@ -757,6 +791,8 @@ class Image_Canvas_SVG extends Image_Canvas
$y = $this->_getY($params['y']); $y = $this->_getY($params['y']);
$filename = $params['filename']; $filename = $params['filename'];
$attrs = (isset($params['attrs']) && is_array($params['attrs'])) ? $this->_getAttributes($params['attrs']) : null;
list($width, $height, $type, $attr) = getimagesize($filename); list($width, $height, $type, $attr) = getimagesize($filename);
$width = (isset($params['width']) ? $params['width'] : $width); $width = (isset($params['width']) ? $params['width'] : $width);
$height = (isset($params['height']) ? $params['height'] : $height); $height = (isset($params['height']) ? $params['height'] : $height);
@ -767,10 +803,12 @@ class Image_Canvas_SVG extends Image_Canvas
fclose($file); fclose($file);
$data = 'data:' . image_type_to_mime_type($type) . ';base64,' . base64_encode($filedata); $data = 'data:' . image_type_to_mime_type($type) . ';base64,' . base64_encode($filedata);
$this->_addElement( $this->_addElement(
'<image xlink:href="' . $data . '" x="' . $x . '" y="' . $y . '"' . '<image xlink:href="' . $data . '" x="' . $x . '" y="' . $y . '"' .
($width ? ' width="' . $width . '"' : '') . ($width ? ' width="' . $width . '"' : '') .
($height ? ' height="' . $height . '"' : '') . ($height ? ' height="' . $height . '"' : '') .
($attrs ? ' ' . $attrs : '') .
' preserveAspectRatio="none"/>', ' preserveAspectRatio="none"/>',
$params $params
); );
@ -815,19 +853,10 @@ class Image_Canvas_SVG extends Image_Canvas
function show($param = false) function show($param = false)
{ {
parent::show($param); parent::show($param);
$output = '<?xml version="1.0" encoding="iso-8859-1"?>' . "\n" .
'<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"' . "\n\t" . $attrs = (isset($param['attrs']) && is_array($param['attrs'])) ? $this->_getAttributes($param['attrs']) : null;
' "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">' . "\n" .
'<svg width="' . $this->_width . '" height="' . $this->_height . $output = $this->getData($param);
'" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">' . "\n" .
($this->_defs ?
' <defs>' . "\n" .
$this->_defs .
' </defs>' . "\n" :
''
) .
$this->_elements .
'</svg>';
header('Content-Type: image/svg+xml'); header('Content-Type: image/svg+xml');
header('Content-Disposition: inline; filename = "' . basename($_SERVER['PHP_SELF'], '.php') . '.svg"'); header('Content-Disposition: inline; filename = "' . basename($_SERVER['PHP_SELF'], '.php') . '.svg"');
@ -842,11 +871,33 @@ class Image_Canvas_SVG extends Image_Canvas
function save($param = false) function save($param = false)
{ {
parent::save($param); parent::save($param);
$output = '<?xml version="1.0" encoding="iso-8859-1"?>' . "\n" .
$output = $this->getData($param);
$file = fopen($param['filename'], 'w+');
fwrite($file, $output);
fclose($file);
}
/**
* Get SVG data
*
* @param array $param Parameter array
*
* @return string
*/
function getData($param = false)
{
$attrs = (isset($param['attrs']) && is_array($param['attrs'])) ? $this->_getAttributes($param['attrs']) : null;
return '<?xml version="1.0" encoding="'. $this->_encoding . '"?>' . "\n" .
'<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"' . "\n\t" . '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"' . "\n\t" .
' "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">' . "\n" . ' "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">' . "\n" .
'<svg width="' . $this->_width . '" height="' . $this->_height . '<svg width="' . $this->_width . '" height="' . $this->_height .
'" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">' . "\n" . '" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"' .
($attrs ? ' ' . $attrs : '') .
'>' . "\n" .
($this->_defs ? ($this->_defs ?
' <defs>' . "\n" . ' <defs>' . "\n" .
$this->_defs . $this->_defs .
@ -855,10 +906,37 @@ class Image_Canvas_SVG extends Image_Canvas
) . ) .
$this->_elements . $this->_elements .
'</svg>'; '</svg>';
}
$file = fopen($param['filename'], 'w+'); /**
fwrite($file, $output); * Set clipping to occur
fclose($file); *
* Parameter array:
*
* 'x0': int X point of Upper-left corner
* 'y0': int X point of Upper-left corner
* 'x1': int X point of lower-right corner
* 'y1': int Y point of lower-right corner
*/
function setClipping($params = false)
{
if ($params === false) {
$this->_addElement('</g>');
}
else {
$group = "clipping_" . $this->_id;
$this->_id++;
$this->_addElement('<g clip-path="url(#' . $group . ')">');
$this->_addDefine('<clipPath id="' . $group . '">');
$this->_addDefine(' <path d="' .
'M' . $this->_getX($params['x0']) . ' ' . $this->_getY($params['y0']) .
' H' . $this->_getX($params['x1']) .
' V' . $this->_getY($params['y1']) .
' H' . $this->_getX($params['x0']) .
' Z"/>');
$this->_addDefine('</clipPath>');
}
} }
/** /**
@ -880,6 +958,22 @@ class Image_Canvas_SVG extends Image_Canvas
return '<embed src="' . $params['urlpath'] . $params['filename'] . '" width=' . $params['width'] . ' height=' . $params['height'] . ' type="image/svg+xml">'; return '<embed src="' . $params['urlpath'] . $params['filename'] . '" width=' . $params['width'] . ' height=' . $params['height'] . ' type="image/svg+xml">';
} }
/**
* Converts array of attributes to string
*
* @param array $attrs Attributes array
* @return array
*/
function _getAttributes($attrs)
{
$string = '';
foreach ($attrs as $key => $value) {
$string .= ' ' . $key . '="' . $value . '"';
}
return $string;
}
} }
?> ?>

View File

@ -18,7 +18,7 @@
* @author Andrew Morton <drewish@katherinehouse.com> * @author Andrew Morton <drewish@katherinehouse.com>
* @copyright 2003-2005 The PHP Group * @copyright 2003-2005 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0 * @license http://www.php.net/license/3_0.txt PHP License 3.0
* @version CVS: $Id: Color.php,v 1.15 2005/09/12 19:12:02 drewish Exp $ * @version CVS: $Id: Color.php,v 1.17 2008/10/26 18:27:10 clockwerx Exp $
* @link http://pear.php.net/package/Image_Color * @link http://pear.php.net/package/Image_Color
*/ */
@ -213,6 +213,7 @@ class Image_Color
$color2 =& $this->color2; $color2 =& $this->color2;
for ($x = 0; $x < 3; $x++) { for ($x = 0; $x < 3; $x++) {
if (isset($color1[$x])) {
if (($color1[$x] + $degree) < 256) { if (($color1[$x] + $degree) < 256) {
if (($color1[$x] + $degree) > -1) { if (($color1[$x] + $degree) > -1) {
$color1[$x] += $degree; $color1[$x] += $degree;
@ -222,7 +223,9 @@ class Image_Color
} else { } else {
$color1[$x] = 255; $color1[$x] = 255;
} }
}
if (isset($color2[$x])) {
if (($color2[$x] + $degree) < 256) { if (($color2[$x] + $degree) < 256) {
if (($color2[$x] + $degree) > -1) { if (($color2[$x] + $degree) > -1) {
$color2[$x] += $degree; $color2[$x] += $degree;
@ -234,6 +237,7 @@ class Image_Color
} }
} }
} }
}
/** /**
* Determine if a light or dark text color would be more readable on a * Determine if a light or dark text color would be more readable on a
@ -432,7 +436,7 @@ class Image_Color
break; break;
} }
} }
return $this->rgb2hex(array($r, $g, $b)); return Image_Color::rgb2hex(array($r, $g, $b));
} }
/** /**

View File

@ -23,7 +23,7 @@
* @author Jesper Veggerby <pear.nosey@veggerby.dk> * @author Jesper Veggerby <pear.nosey@veggerby.dk>
* @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen * @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen
* @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
* @version CVS: $Id: Graph.php,v 1.57 2005/10/05 20:51:22 nosey Exp $ * @version CVS: $Id: Graph.php,v 1.58 2005/11/27 18:48:05 nosey Exp $
* @link http://pear.php.net/package/Image_Graph * @link http://pear.php.net/package/Image_Graph
*/ */
@ -162,9 +162,7 @@ class Image_Graph extends Image_Graph_Element
$this->_canvas =& $params; $this->_canvas =& $params;
$width = $this->_canvas->getWidth(); $width = $this->_canvas->getWidth();
$height = $this->_canvas->getHeight(); $height = $this->_canvas->getHeight();
} } elseif (is_numeric($params)) {
if (is_int($params)) {
$width = $params; $width = $params;
} }

View File

@ -24,7 +24,7 @@
* @author Jesper Veggerby <pear.nosey@veggerby.dk> * @author Jesper Veggerby <pear.nosey@veggerby.dk>
* @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen * @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen
* @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
* @version CVS: $Id: Axis.php,v 1.33 2005/10/05 20:51:22 nosey Exp $ * @version CVS: $Id: Axis.php,v 1.35 2006/02/28 22:48:07 nosey Exp $
* @link http://pear.php.net/package/Image_Graph * @link http://pear.php.net/package/Image_Graph
*/ */
@ -182,12 +182,16 @@ require_once 'Image/Graph/Plotarea/Element.php';
1 => array( 1 => array(
'interval' => 1, 'interval' => 1,
'type' => 'auto', 'type' => 'auto',
'tick' => array('start' => -2, 'end' => 2), 'tick' => array(
'start' => -2,
'end' => 2,
'color' => false // default color
),
'showtext' => true, 'showtext' => true,
'showoffset' => false, 'showoffset' => false,
'font' => array(), 'font' => array(),
'offset' => 0, 'offset' => 0,
'position' => 'outside' 'position' => 'outside',
) )
); );
@ -702,9 +706,9 @@ require_once 'Image/Graph/Plotarea/Element.php';
if ($this->_axisValueSpan == 0) { if ($this->_axisValueSpan == 0) {
$this->_delta = false; $this->_delta = false;
} elseif ($this->_type == IMAGE_GRAPH_AXIS_X) { } elseif ($this->_type == IMAGE_GRAPH_AXIS_X) {
$this->_delta = (($this->_transpose ? $this->height() : $this->width()) - ($this->_axisPadding['low'] + $this->_axisPadding['high'])) / $this->_axisValueSpan; $this->_delta = (($this->_transpose ? $this->height() : $this->width()) - ($this->_axisPadding['low'] + $this->_axisPadding['high'])) / ($this->_axisValueSpan + ($this->_pushValues ? 1 : 0));
} else { } else {
$this->_delta = (($this->_transpose ? $this->width() : $this->height()) - ($this->_axisPadding['low'] + $this->_axisPadding['high'])) / $this->_axisValueSpan; $this->_delta = (($this->_transpose ? $this->width() : $this->height()) - ($this->_axisPadding['low'] + $this->_axisPadding['high'])) / ($this->_axisValueSpan + ($this->_pushValues ? 1 : 0));
} }
} }
@ -1168,9 +1172,9 @@ require_once 'Image/Graph/Plotarea/Element.php';
} else { } else {
$this->write( $this->write(
$labelPosition, $labelPosition,
$this->_top + 3 + $offset, $this->_top + 6 + $offset + $font['size'] * (substr_count($labelText, "\n") + 1),
$labelText, $labelText,
IMAGE_GRAPH_ALIGN_TOP | IMAGE_GRAPH_ALIGN_CENTER_X, IMAGE_GRAPH_ALIGN_BOTTOM | IMAGE_GRAPH_ALIGN_CENTER_X,
$font $font
); );
} }
@ -1199,9 +1203,9 @@ require_once 'Image/Graph/Plotarea/Element.php';
if ($labelInside) { if ($labelInside) {
$this->write( $this->write(
$labelPosition, $labelPosition,
$this->_bottom + 3 + $offset, $this->_bottom + 6 + $offset + $font['size'] * (substr_count($labelText, "\n") + 1),
$labelText, $labelText,
IMAGE_GRAPH_ALIGN_TOP | IMAGE_GRAPH_ALIGN_CENTER_X, IMAGE_GRAPH_ALIGN_BOTTOM | IMAGE_GRAPH_ALIGN_CENTER_X,
$font $font
); );
} else { } else {
@ -1265,9 +1269,9 @@ require_once 'Image/Graph/Plotarea/Element.php';
} else { } else {
$this->write( $this->write(
$labelPosition, $labelPosition,
$this->_top + 3 + $offset, $this->_top + 6 + $offset + $font['size'] * (substr_count($labelText, "\n") + 1),
$labelText, $labelText,
IMAGE_GRAPH_ALIGN_CENTER_X | IMAGE_GRAPH_ALIGN_TOP, IMAGE_GRAPH_ALIGN_CENTER_X | IMAGE_GRAPH_ALIGN_BOTTOM,
$font $font
); );
} }
@ -1276,15 +1280,40 @@ require_once 'Image/Graph/Plotarea/Element.php';
} }
} }
$tickColor = false;
if (isset($this->_labelOptions[$level]['tick'])) { if (isset($this->_labelOptions[$level]['tick'])) {
if (isset($this->_labelOptions[$level]['tick']['start'])) {
$tickStart = $this->_labelOptions[$level]['tick']['start']; $tickStart = $this->_labelOptions[$level]['tick']['start'];
} else {
$tickStart = false;
}
if (isset($this->_labelOptions[$level]['tick']['end'])) {
$tickEnd = $this->_labelOptions[$level]['tick']['end']; $tickEnd = $this->_labelOptions[$level]['tick']['end'];
} else { } else {
$tickEnd = false;
}
if ((isset($this->_labelOptions[$level]['tick']['color'])) && ($this->_labelOptions[$level]['tick']['color'] !== false)) {
$tickColor = $this->_labelOptions[$level]['tick']['color'];
}
}
if ($tickStart === false) {
$tickStart = -2; $tickStart = -2;
}
if ($tickEnd === false) {
$tickEnd = 2; $tickEnd = 2;
} }
if ($tickColor !== false) {
$this->_canvas->setLineColor($tickColor);
}
else {
$this->_getLineStyle(); $this->_getLineStyle();
}
if ($this->_type == IMAGE_GRAPH_AXIS_Y) { if ($this->_type == IMAGE_GRAPH_AXIS_Y) {
if ($tickStart === 'auto') { if ($tickStart === 'auto') {
$tickStart = -$offset; $tickStart = -$offset;
@ -1389,9 +1418,15 @@ require_once 'Image/Graph/Plotarea/Element.php';
} }
if ($this->_showArrow) { if ($this->_showArrow) {
if ($this->_getMaximum() <= 0) {
$data['end0'] = 'arrow2';
$data['size0'] = 7;
}
else {
$data['end1'] = 'arrow2'; $data['end1'] = 'arrow2';
$data['size1'] = 7; $data['size1'] = 7;
} }
}
$this->_canvas->line($data); $this->_canvas->line($data);
@ -1427,9 +1462,15 @@ require_once 'Image/Graph/Plotarea/Element.php';
); );
} }
if ($this->_showArrow) { if ($this->_showArrow) {
if ($this->_getMaximum() <= 0) {
$data['end0'] = 'arrow2';
$data['size0'] = 7;
}
else {
$data['end1'] = 'arrow2'; $data['end1'] = 'arrow2';
$data['size1'] = 7; $data['size1'] = 7;
} }
}
$this->_canvas->line($data); $this->_canvas->line($data);
if ($this->_title) { if ($this->_title) {
@ -1464,9 +1505,15 @@ require_once 'Image/Graph/Plotarea/Element.php';
); );
} }
if ($this->_showArrow) { if ($this->_showArrow) {
if ($this->_getMaximum() <= 0) {
$data['end0'] = 'arrow2';
$data['size0'] = 7;
}
else {
$data['end1'] = 'arrow2'; $data['end1'] = 'arrow2';
$data['size1'] = 7; $data['size1'] = 7;
} }
}
$this->_canvas->line($data); $this->_canvas->line($data);
if ($this->_title) { if ($this->_title) {

View File

@ -24,7 +24,7 @@
* @author Jesper Veggerby <pear.nosey@veggerby.dk> * @author Jesper Veggerby <pear.nosey@veggerby.dk>
* @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen * @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen
* @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
* @version CVS: $Id: Category.php,v 1.17 2005/10/05 20:51:23 nosey Exp $ * @version CVS: $Id: Category.php,v 1.19 2006/03/02 12:15:17 nosey Exp $
* @link http://pear.php.net/package/Image_Graph * @link http://pear.php.net/package/Image_Graph
*/ */
@ -93,7 +93,7 @@ class Image_Graph_Axis_Category extends Image_Graph_Axis
*/ */
function _getMaximum() function _getMaximum()
{ {
return count($this->_labels) - ($this->_pushValues ? 0 : 1); return count($this->_labels) - 1;
} }
/** /**
@ -124,9 +124,14 @@ class Image_Graph_Axis_Category extends Image_Graph_Axis
/** /**
* Forces the minimum value of the axis * Forces the minimum value of the axis
* *
* A minimum cannot be set on a SequentialAxis, it is always 0. * <b>A minimum cannot be set on this type of axis</b>
* *
* @param double $minimum The minumum value to use on the axis * To modify the labels which are displayed on the axis, instead use
* setLabelInterval($labels) where $labels is an array containing the
* values/labels the axis should display. <b>Note!</b> Only values in
* this array will then be displayed on the graph!
*
* @param double $minimum A minimum cannot be set on this type of axis
*/ */
function forceMinimum($minimum, $userEnforce = true) function forceMinimum($minimum, $userEnforce = true)
{ {
@ -135,10 +140,14 @@ class Image_Graph_Axis_Category extends Image_Graph_Axis
/** /**
* Forces the maximum value of the axis * Forces the maximum value of the axis
* *
* A maximum cannot be set on a SequentialAxis, it is always the number * <b>A maximum cannot be set on this type of axis</b>
* of labels passed to the constructor.
* *
* @param double $maximum The maximum value to use on the axis * To modify the labels which are displayed on the axis, instead use
* setLabelInterval($labels) where $labels is an array containing the
* values/labels the axis should display. <b>Note!</b> Only values in
* this array will then be displayed on the graph!
*
* @param double $maximum A maximum cannot be set on this type of axis
*/ */
function forceMaximum($maximum, $userEnforce = true) function forceMaximum($maximum, $userEnforce = true)
{ {
@ -147,13 +156,15 @@ class Image_Graph_Axis_Category extends Image_Graph_Axis
/** /**
* Sets an interval for where labels are shown on the axis. * Sets an interval for where labels are shown on the axis.
* *
* The label interval is rounded to nearest integer value * The label interval is rounded to nearest integer value.
* *
* @param double $labelInterval The interval with which labels are shown * @param double $labelInterval The interval with which labels are shown
*/ */
function setLabelInterval($labelInterval = 'auto', $level = 1) function setLabelInterval($labelInterval = 'auto', $level = 1)
{ {
if ($labelInterval == 'auto') { if (is_array($labelInterval)) {
parent::setLabelInterval($labelInterval);
} elseif ($labelInterval == 'auto') {
parent::setLabelInterval(1); parent::setLabelInterval(1);
} else { } else {
parent::setLabelInterval(round($labelInterval)); parent::setLabelInterval(round($labelInterval));

Some files were not shown because too many files have changed in this diff Show More