Revision 1535
Added by Luisehahne almost 14 years ago
| branches/2.8.x/CHANGELOG | ||
|---|---|---|
| 11 | 11 |
! = Update/Change |
| 12 | 12 |
|
| 13 | 13 |
=========================== add small Features 2.8.2 ========================== |
| 14 |
10 Dez-2011 Build 1535 Dietmar Woellbrink (Luisehahne) |
|
| 15 |
! changes in code modul |
|
| 16 |
+ add function getTableEngine to class.database |
|
| 17 |
+ add Quickskin to include folder |
|
| 18 |
+ add reworkes Droplet SectionPicker to load modules frontend.css |
|
| 14 | 19 |
08 Dez-2011 Build 1534 Werner v.d.Decken(DarkViper) |
| 15 | 20 |
# /output_filter/filter-routines.php rel-URL Filter fixed for mailto-links |
| 16 | 21 |
08 Dez-2011 Build 1533 Dietmar Woellbrink (Luisehahne) |
| branches/2.8.x/wb/include/quickSkin/class.quickskindebugger.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/*~ class.quickskindebugger.php |
|
| 3 |
.---------------------------------------------------------------------------. |
|
| 4 |
| Software: QuickSkinDebugger Class * Used by QuickSkin Class | |
|
| 5 |
| Version: 5.0 | |
|
| 6 |
| Contact: andy.prevost@worxteam.com,andy@codeworx.ca | |
|
| 7 |
| Info: http://quickskin.sourceforge.net | |
|
| 8 |
| Support: http://sourceforge.net/projects/quickskin/ | |
|
| 9 |
| ------------------------------------------------------------------------- | |
|
| 10 |
| Author: Andy Prevost andy.prevost@worxteam.com (admin) | |
|
| 11 |
| Author: Manuel 'EndelWar' Dalla Lana endelwar@aregar.it (former admin) | |
|
| 12 |
| Author: Philipp v. Criegern philipp@criegern.com (original founder) | |
|
| 13 |
| Copyright (c) 2002-2009, Andy Prevost. All Rights Reserved. | |
|
| 14 |
| * NOTE: QuickSkin is the SmartTemplate project renamed. SmartTemplate | |
|
| 15 |
| information and downloads can still be accessed at the | |
|
| 16 |
| smarttemplate.sourceforge.net site | |
|
| 17 |
| ------------------------------------------------------------------------- | |
|
| 18 |
| License: Distributed under the Lesser General Public License (LGPL) | |
|
| 19 |
| http://www.gnu.org/copyleft/lesser.html | |
|
| 20 |
| This program is distributed in the hope that it will be useful - WITHOUT | |
|
| 21 |
| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
|
| 22 |
| FITNESS FOR A PARTICULAR PURPOSE. | |
|
| 23 |
| ------------------------------------------------------------------------- | |
|
| 24 |
| We offer a number of paid services: | |
|
| 25 |
| - Web Hosting on highly optimized fast and secure servers | |
|
| 26 |
| - Technology Consulting | |
|
| 27 |
| - Oursourcing (highly qualified programmers and graphic designers) | |
|
| 28 |
'---------------------------------------------------------------------------' |
|
| 29 |
Last modified: January 01 2009 ~*/ |
|
| 30 |
|
|
| 31 |
/* designed to work with PHP5 - will NOT work with PHP4 */ |
|
| 32 |
|
|
| 33 |
class QuickSkinDebugger {
|
|
| 34 |
|
|
| 35 |
/* The template Filename |
|
| 36 |
* @access private |
|
| 37 |
*/ |
|
| 38 |
private $filename; |
|
| 39 |
|
|
| 40 |
/* The template itself |
|
| 41 |
* @access private |
|
| 42 |
*/ |
|
| 43 |
private $template; |
|
| 44 |
|
|
| 45 |
/* Default Left delimiter |
|
| 46 |
* Can be overwritten by global configuration array $_CONFIG['left_delimiter'] |
|
| 47 |
* @access public |
|
| 48 |
*/ |
|
| 49 |
private $left_delimiter = '{';
|
|
| 50 |
|
|
| 51 |
/* Default Right delimiter |
|
| 52 |
* Can be overwritten by global configuration array $_CONFIG['right_delimiter'] |
|
| 53 |
* @access public |
|
| 54 |
*/ |
|
| 55 |
private $right_delimiter = '}'; |
|
| 56 |
|
|
| 57 |
/* QuickSkinDebugger Constructor |
|
| 58 |
* @param string $template_filename HTML Template Filename |
|
| 59 |
*/ |
|
| 60 |
function __construct( $template_filename, $right_delimiter = '}', $left_delimiter = '{' ) {
|
|
| 61 |
$this->filename = $template_filename; |
|
| 62 |
|
|
| 63 |
/* Load Template */ |
|
| 64 |
if ($hd = @fopen($template_filename, 'r')) {
|
|
| 65 |
$this->template = fread($hd, filesize($template_filename)); |
|
| 66 |
fclose($hd); |
|
| 67 |
} else {
|
|
| 68 |
$this->template = 'QuickSkin Debugger Error: File not found: ' . $template_filename; |
|
| 69 |
} |
|
| 70 |
$this->tab[0] = ''; |
|
| 71 |
for ($i=1; $i < 10; $i++) {
|
|
| 72 |
$this->tab[$i] = str_repeat(' ', $i);
|
|
| 73 |
} |
|
| 74 |
$this->right_delimiter = $right_delimiter; |
|
| 75 |
$this->left_delimiter = $left_delimiter; |
|
| 76 |
} |
|
| 77 |
|
|
| 78 |
/* Main Template Parser |
|
| 79 |
* @param string $compiled_template_filename Compiled Template Filename |
|
| 80 |
* @desc Creates Compiled PHP Template |
|
| 81 |
*/ |
|
| 82 |
function start ( $vars ) {
|
|
| 83 |
$page = $this->template; |
|
| 84 |
|
|
| 85 |
$page = preg_replace("/(<!-- BEGIN [ a-zA-Z0-9_.]* -->)/", "\n$1\n", $page);
|
|
| 86 |
$page = preg_replace("/(<!-- IF .+? -->)/", "\n$1\n", $page);
|
|
| 87 |
$page = preg_replace("/(<!-- END.*? -->)/", "\n$1\n", $page);
|
|
| 88 |
$page = preg_replace("/(<!-- ELSEIF .+? -->)/", "\n$1\n", $page);
|
|
| 89 |
$page = preg_replace("/(<!-- ELSE [ a-zA-Z0-9_.]*-->)/", "\n$1\n", $page);
|
|
| 90 |
|
|
| 91 |
$page = $this->highlight_html($page); |
|
| 92 |
|
|
| 93 |
$rows = explode("\n", $page);
|
|
| 94 |
$page_arr = array(); |
|
| 95 |
$level = 0; |
|
| 96 |
$blocklvl = 0; |
|
| 97 |
$rowcnt = 0; |
|
| 98 |
$spancnt = 0; |
|
| 99 |
$offset = 22; |
|
| 100 |
$lvl_block = array(); |
|
| 101 |
$lvl_row = array(); |
|
| 102 |
$lvl_typ = array(); |
|
| 103 |
foreach ($rows as $row) {
|
|
| 104 |
if ($row = trim($row)) {
|
|
| 105 |
$closespan = false; |
|
| 106 |
if (substr($row, $offset, 12) == '<!-- END ') {
|
|
| 107 |
if ($level < 1) {
|
|
| 108 |
$level++; |
|
| 109 |
$error[$rowcnt] = 'END Without BEGIN'; |
|
| 110 |
} elseif ($lvl_typ[$level] != 'BEGIN') {
|
|
| 111 |
$error[$lvl_row[$level]] = 'IF without ENDIF'; |
|
| 112 |
$error[$rowcnt] = 'END Without BEGIN'; |
|
| 113 |
} |
|
| 114 |
$blocklvl--; |
|
| 115 |
$level--; |
|
| 116 |
$closespan = true; |
|
| 117 |
} |
|
| 118 |
if (substr($row, $offset, 14) == '<!-- ENDIF ') {
|
|
| 119 |
if ($level < 1) {
|
|
| 120 |
$level++; |
|
| 121 |
$error[$rowcnt] = 'ENDIF Without IF'; |
|
| 122 |
} elseif ($lvl_typ[$level] != 'IF') {
|
|
| 123 |
$error[$lvl_row[$level]] = 'BEGIN without END'; |
|
| 124 |
$error[$rowcnt] = 'ENDIF Without IF'; |
|
| 125 |
} |
|
| 126 |
$closespan = true; |
|
| 127 |
$level--; |
|
| 128 |
} |
|
| 129 |
if ($closespan) {
|
|
| 130 |
$page_arr[$rowcnt-1] .= '</span>'; |
|
| 131 |
} |
|
| 132 |
$this_row = $this->tab[$level] . $row; |
|
| 133 |
if (substr($row, $offset, 12) == '<!-- ELSE') {
|
|
| 134 |
if ($level < 1) {
|
|
| 135 |
$error[$rowcnt] = 'ELSE Without IF'; |
|
| 136 |
} elseif ($lvl_typ[$level] != 'IF') {
|
|
| 137 |
$error[$rowcnt] = 'ELSE Without IF'; |
|
| 138 |
} else {
|
|
| 139 |
$this_row = $this->tab[$level-1] . $row; |
|
| 140 |
} |
|
| 141 |
} |
|
| 142 |
if (substr($row, $offset, 14) == '<!-- BEGIN ') {
|
|
| 143 |
if ($blocklvl == 0) {
|
|
| 144 |
if ($lp = strpos($row, '-->')) {
|
|
| 145 |
if ($blockname = trim(substr($row, $offset + 14, $lp -$offset -14))) {
|
|
| 146 |
if ($nr = count($vars[$blockname])) {
|
|
| 147 |
$this_row .= $this->toggleview($nr . ' Entries'); |
|
| 148 |
} else {
|
|
| 149 |
$this_row .= $this->toggleview('Emtpy');
|
|
| 150 |
} |
|
| 151 |
} |
|
| 152 |
} |
|
| 153 |
} else {
|
|
| 154 |
$this_row .= $this->toggleview('[');
|
|
| 155 |
} |
|
| 156 |
$blocklvl++; |
|
| 157 |
$level++; |
|
| 158 |
$lvl_row[$level] = $rowcnt; |
|
| 159 |
$lvl_typ[$level] = 'BEGIN'; |
|
| 160 |
} elseif (substr($row, $offset, 11) == '<!-- IF ') {
|
|
| 161 |
$level++; |
|
| 162 |
$lvl_row[$level] = $rowcnt; |
|
| 163 |
$lvl_typ[$level] = 'IF'; |
|
| 164 |
$this_row .= $this->toggleview(); |
|
| 165 |
} |
|
| 166 |
$page_arr[] = $this_row; |
|
| 167 |
$lvl_block[$rowcnt] = $blocklvl; |
|
| 168 |
$rowcnt++; |
|
| 169 |
} |
|
| 170 |
} |
|
| 171 |
if ($level > 0) {
|
|
| 172 |
$error[$lvl_row[$level]] = 'Block not closed'; |
|
| 173 |
} |
|
| 174 |
|
|
| 175 |
$page = join("\n", $page_arr);
|
|
| 176 |
$rows = explode("\n", $page);
|
|
| 177 |
$cnt = count($rows); |
|
| 178 |
|
|
| 179 |
for ($i = 0; $i < $cnt; $i++) {
|
|
| 180 |
/* Add Errortext */ |
|
| 181 |
if (isset($error)) {
|
|
| 182 |
if ($err = $error[$i]) {
|
|
| 183 |
$rows[$i] = '<b>' . $rows[$i] . ' ERROR: ' . $err . '!</b>'; |
|
| 184 |
} |
|
| 185 |
} |
|
| 186 |
|
|
| 187 |
/* Replace Scalars */ |
|
| 188 |
$right_delimiter = preg_quote($this->right_delimiter); |
|
| 189 |
$left_delimiter = preg_quote($this->left_delimiter); |
|
| 190 |
if (preg_match_all("/$left_delimiter([a-zA-Z0-9_. &;]+)$right_delimiter/", $rows[$i], $var)) {
|
|
| 191 |
foreach ($var[1] as $tag) {
|
|
| 192 |
$fulltag = $tag; |
|
| 193 |
if ($delim = strpos($tag, ' > ')) {
|
|
| 194 |
$tag = substr($tag, 0, $delim); |
|
| 195 |
} |
|
| 196 |
if (substr($tag, 0, 4) == 'top.') {
|
|
| 197 |
$title = $this->tip($vars[substr($tag, 4)]); |
|
| 198 |
} elseif ($lvl_block[$i] == 0) {
|
|
| 199 |
$title = $this->tip($vars[$tag]); |
|
| 200 |
} else {
|
|
| 201 |
$title = '[BLOCK?]'; |
|
| 202 |
} |
|
| 203 |
$code = '<b title="' . $title . '">' . $left_delimiter . $fulltag . $right_delimiter . '</b>'; |
|
| 204 |
$rows[$i] = str_replace('{'.$fulltag.'}', $code, $rows[$i]);
|
|
| 205 |
} |
|
| 206 |
} |
|
| 207 |
|
|
| 208 |
/* Replace Extensions */ |
|
| 209 |
if (preg_match_all("/$left_delimiter([a-zA-Z0-9_]+):([^}]*)$right_delimiter/", $rows[$i], $var)) {
|
|
| 210 |
foreach ($var[2] as $tmpcnt => $tag) {
|
|
| 211 |
$fulltag = $tag; |
|
| 212 |
if ($delim = strpos($tag, ' > ')) {
|
|
| 213 |
$tag = substr($tag, 0, $delim); |
|
| 214 |
} |
|
| 215 |
if (strpos($tag, ',')) {
|
|
| 216 |
list($tag, $addparam) = explode(',', $tag, 2);
|
|
| 217 |
} |
|
| 218 |
$extension = $var[1][$tmpcnt]; |
|
| 219 |
|
|
| 220 |
if (substr($tag, 0, 4) == 'top.') {
|
|
| 221 |
$title = $this->tip($vars[substr($tag, 4)]); |
|
| 222 |
} elseif ($lvl_block[$i] == 0) {
|
|
| 223 |
$title = $this->tip($vars[$tag]); |
|
| 224 |
} else {
|
|
| 225 |
$title = '[BLOCK?]'; |
|
| 226 |
} |
|
| 227 |
$code = '<b title="' . $title . '">' . $this->left_delimiter . $extension . ':' . $fulltag . $this->right_delimiter . '</b>'; |
|
| 228 |
$rows[$i] = str_replace($this->left_delimiter . $extension . ':' . $fulltag . $this->right_delimiter, $code, $rows[$i]); |
|
| 229 |
} |
|
| 230 |
} |
|
| 231 |
|
|
| 232 |
/* 'IF nnn' Blocks */ |
|
| 233 |
if (preg_match_all('/<!-- IF ([a-zA-Z0-9_.]+) -->/', $rows[$i], $var)) {
|
|
| 234 |
foreach ($var[1] as $tag) {
|
|
| 235 |
if (substr($tag, 0, 4) == 'top.') {
|
|
| 236 |
$title = $this->tip($vars[substr($tag, 4)]); |
|
| 237 |
} elseif ($lvl_block[$i] == 0) {
|
|
| 238 |
$title = $this->tip($vars[$tag]); |
|
| 239 |
} else {
|
|
| 240 |
$title = '[BLOCK?]'; |
|
| 241 |
} |
|
| 242 |
$code = '<span title="' . $title . '"><!-- IF ' . $tag . ' --></span>'; |
|
| 243 |
$rows[$i] = str_replace("<!-- IF $tag -->", $code, $rows[$i]);
|
|
| 244 |
if ($title == '[NULL]') {
|
|
| 245 |
$rows[$i] = str_replace('Hide', 'Show', $rows[$i]);
|
|
| 246 |
$rows[$i] = str_replace('block', 'none', $rows[$i]);
|
|
| 247 |
} |
|
| 248 |
} |
|
| 249 |
} |
|
| 250 |
} |
|
| 251 |
$page = join('<br>', $rows);
|
|
| 252 |
|
|
| 253 |
/* Print Header */ |
|
| 254 |
echo '<html><head><script type="text/javascript"> |
|
| 255 |
function toggleVisibility(el, src) {
|
|
| 256 |
var v = el.style.display == "block"; |
|
| 257 |
var str = src.innerHTML; |
|
| 258 |
el.style.display = v ? "none" : "block"; |
|
| 259 |
src.innerHTML = v ? str.replace(/Hide/, "Show") : str.replace(/Show/, "Hide");} |
|
| 260 |
</script></head><body>'; |
|
| 261 |
|
|
| 262 |
/* Print Index */ |
|
| 263 |
echo '<font face="Arial" Size="3"><b>'; |
|
| 264 |
echo 'QuickSkin Debugger<br>'; |
|
| 265 |
echo '<font size="2"><li>PHP-Script: ' . $_SERVER['SCRIPT_FILENAME'] . '</li><li>Template: ' . $this->filename . '</li></font><hr>'; |
|
| 266 |
echo '<li><a href="#template_code">Template</a></li>'; |
|
| 267 |
echo '<li><a href="#compiled_code">Compiled Template</a></li>'; |
|
| 268 |
echo '<li><a href="#data_code">Data</a></li>'; |
|
| 269 |
echo '</b></font><hr>'; |
|
| 270 |
|
|
| 271 |
/* Print Template */ |
|
| 272 |
echo '<a name="template_code"><br><font face="Arial" Size="3"><b>Template:</b> [<a href="javascript:void(\'\');" onclick="toggleVisibility(document.getElementById(\'Template\'), this); return false">Hide Ouptut</a>]</font><br>'; |
|
| 273 |
echo '<table border="0" cellpadding="4" cellspacing="1" width="100%" bgcolor="#C6D3EF"><tr><td bgcolor="#F0F0F0"><pre id="Template" style="display:block">'; |
|
| 274 |
echo $page; |
|
| 275 |
echo '</pre></td></tr></table>'; |
|
| 276 |
|
|
| 277 |
/* Print Compiled Template */ |
|
| 278 |
if (@include_once ("class.quickskinparser.php")) {
|
|
| 279 |
$parser = new QuickSkinParser($this->filename); |
|
| 280 |
$compiled = $parser->compile(); |
|
| 281 |
echo '<a name="compiled_code"><br><br><font face="Arial" Size="3"><b>Compiled Template:</b> [<a href="javascript:void(\'\');" onclick="toggleVisibility(document.getElementById(\'Compiled\'), this); return false">Hide Ouptut</a>]</font><br>'; |
|
| 282 |
echo '<table border="0" cellpadding="4" cellspacing="1" width="100%" bgcolor="#C6D3EF"><tr><td bgcolor="#F0F0F0"><pre id="Compiled" style="display:block">'; |
|
| 283 |
highlight_string($compiled); |
|
| 284 |
echo '</pre></td></tr></table>'; |
|
| 285 |
} else {
|
|
| 286 |
exit( "QuickSkin Error: Cannot find class.quickskinparser.php; check QuickSkin installation"); |
|
| 287 |
} |
|
| 288 |
|
|
| 289 |
/* Print Data */ |
|
| 290 |
echo '<a name="data_code"><br><br><font face="Arial" Size="3"><b>Data:</b> [<a href="javascript:void(\'\');" onclick="toggleVisibility(document.getElementById(\'Data\'), this); return false">Hide Ouptut</a>]</font><br>'; |
|
| 291 |
echo '<table border="0" cellpadding="4" cellspacing="1" width="100%" bgcolor="#C6D3EF"><tr><td bgcolor="#F0F0F0"><pre id="Data" style="display:block">'; |
|
| 292 |
echo $this->vardump($vars); |
|
| 293 |
echo '</pre></td></tr></table></body></html>'; |
|
| 294 |
} |
|
| 295 |
|
|
| 296 |
/* Insert Hide/Show Layer Switch |
|
| 297 |
* @param string $suffix Additional Text |
|
| 298 |
* @desc Insert Hide/Show Layer Switch |
|
| 299 |
*/ |
|
| 300 |
function toggleview ( $suffix = '') {
|
|
| 301 |
global $spancnt; |
|
| 302 |
|
|
| 303 |
$spancnt++; |
|
| 304 |
if ($suffix) {
|
|
| 305 |
$suffix .= ':'; |
|
| 306 |
} |
|
| 307 |
$ret = '[' . $suffix . '<a href="javascript:void(\'\');" onclick="toggleVisibility(document.getElementById(\'Block' . $spancnt . '\'), this); return false">Hide Block</a>]<span id="Block' . $spancnt . '" style="display:block">'; |
|
| 308 |
return $ret; |
|
| 309 |
} |
|
| 310 |
|
|
| 311 |
/* Create Title Text |
|
| 312 |
* @param string $value Content |
|
| 313 |
* @desc Create Title Text |
|
| 314 |
*/ |
|
| 315 |
function tip ( $value ) {
|
|
| 316 |
if (empty($value)) {
|
|
| 317 |
return '[NULL]'; |
|
| 318 |
} else {
|
|
| 319 |
$ret = htmlentities(substr($value,0,200)); |
|
| 320 |
return $ret; |
|
| 321 |
} |
|
| 322 |
} |
|
| 323 |
|
|
| 324 |
/* Recursive Variable Display Output |
|
| 325 |
* @param mixed $var Content |
|
| 326 |
* @param int $depth Incremented Indent Counter for Recursive Calls |
|
| 327 |
* @return string Variable Content |
|
| 328 |
* @access private |
|
| 329 |
* @desc Recursive Variable Display Output |
|
| 330 |
*/ |
|
| 331 |
function vardump($var, $depth = 0) {
|
|
| 332 |
if (is_array($var)) {
|
|
| 333 |
$result = "Array (" . count($var) . ")<BR>";
|
|
| 334 |
foreach(array_keys($var) as $key) {
|
|
| 335 |
$result .= $this->tab[$depth] . "<B>$key</B>: " . $this->vardump($var[$key], $depth+1); |
|
| 336 |
} |
|
| 337 |
return $result; |
|
| 338 |
} else {
|
|
| 339 |
$ret = htmlentities($var) . '<BR>'; |
|
| 340 |
return $ret; |
|
| 341 |
} |
|
| 342 |
} |
|
| 343 |
|
|
| 344 |
/* Splits Template-Style Variable Names into an Array-Name/Key-Name Components |
|
| 345 |
* @param string $tag Variale Name used in Template |
|
| 346 |
* @return array Array Name, Key Name |
|
| 347 |
* @access private |
|
| 348 |
* @desc Splits Template-Style Variable Names into an Array-Name/Key-Name Components |
|
| 349 |
*/ |
|
| 350 |
function var_name($tag) {
|
|
| 351 |
$parent_level = 0; |
|
| 352 |
while (substr($tag, 0, 7) == 'parent.') {
|
|
| 353 |
$tag = substr($tag, 7); |
|
| 354 |
$parent_level++; |
|
| 355 |
} |
|
| 356 |
if (substr($tag, 0, 4) == 'top.') {
|
|
| 357 |
$ret = array('_stack[0]', substr($tag,4));
|
|
| 358 |
return $ret; |
|
| 359 |
} elseif ($parent_level) {
|
|
| 360 |
$ret = array('_stack[$_stack_cnt-'.$parent_level.']', $tag);
|
|
| 361 |
return $ret; |
|
| 362 |
} else {
|
|
| 363 |
$ret = array('_obj', $tag);
|
|
| 364 |
return $ret; |
|
| 365 |
} |
|
| 366 |
} |
|
| 367 |
|
|
| 368 |
/* Highlight HTML Source |
|
| 369 |
* @param string $code HTML Source |
|
| 370 |
* @return string Hightlighte HTML Source |
|
| 371 |
* @access private |
|
| 372 |
* @desc Highlight HTML Source |
|
| 373 |
*/ |
|
| 374 |
function highlight_html ( $code ) {
|
|
| 375 |
$code = htmlentities($code); |
|
| 376 |
$code = preg_replace('/([a-zA-Z_]+)=/', '<font color="#FF0000">$1=</font>', $code);
|
|
| 377 |
$code = preg_replace('/(<[\/a-zA-Z0-9&;]+)/', '<font color="#0000FF">$1</font>', $code);
|
|
| 378 |
$code = str_replace('<!--', '<font color="#008080"><!--', $code);
|
|
| 379 |
$code = str_replace('-->', '--></font>', $code);
|
|
| 380 |
$code = preg_replace('/[\r\n]+/', "\n", $code);
|
|
| 381 |
return $code; |
|
| 382 |
} |
|
| 383 |
} |
|
| 384 |
?> |
|
| 0 | 385 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_substr.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension substr |
|
| 4 |
* Insert specific part of a string |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('HEADLINE', 'My Title');
|
|
| 8 |
* Template: <font size=4>{substr:HEADLINE,0,1}</font>{substr:HEADLINE,1}
|
|
| 9 |
* Result: <font size=4>M</font>y Title |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 12 |
*/ |
|
| 13 |
function qx_substr ( $param, $lim0 = 0, $lim1 = 0 ) {
|
|
| 14 |
if ($lim1) {
|
|
| 15 |
return substr( $param, $lim0, $lim1 ); |
|
| 16 |
} else {
|
|
| 17 |
return substr( $param, $lim0 ); |
|
| 18 |
} |
|
| 19 |
} |
|
| 20 |
|
|
| 21 |
?> |
|
| 0 | 22 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_db_date.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension db_date |
|
| 4 |
* Convert Oracle Date (British Format) to Local Formatted Date |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('UPDATE', $result['LAST_UPDATE_DATE_TIME']);
|
|
| 8 |
* Template: Last update: {db_date:UPDATE}
|
|
| 9 |
* Result: Last update: 30.01.2003 |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 12 |
*/ |
|
| 13 |
function qx_db_date ( $param ) {
|
|
| 14 |
global $configuration; |
|
| 15 |
|
|
| 16 |
if (preg_match('/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/', $param)) {
|
|
| 17 |
return date( $configuration['date_format'], strtotime($param) ); |
|
| 18 |
} else {
|
|
| 19 |
return 'Invalid date format!'; |
|
| 20 |
} |
|
| 21 |
} |
|
| 22 |
|
|
| 23 |
?> |
|
| 0 | 24 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_lowercase.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension lowercase |
|
| 4 |
* Converts String to lowercase |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('NAME', 'John Doe');
|
|
| 8 |
* Template: Username: {lowercase:NAME}
|
|
| 9 |
* Result: Username: john doe |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 12 |
*/ |
|
| 13 |
function qx_lowercase ( $param ) {
|
|
| 14 |
return strtolower( $param ); |
|
| 15 |
} |
|
| 16 |
|
|
| 17 |
?> |
|
| 0 | 18 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_mailto.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension mailto |
|
| 4 |
* creates Mailto-Link from email address |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('CONTACT', 'philipp@criegern.de' );
|
|
| 8 |
* Template: Mail to Webmaster: {mailto:CONTACT}
|
|
| 9 |
* Result: Mail to Webmaster: <a href="mailto:philipp@criegern.de">philipp@criegern.de</a> |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com |
|
| 12 |
*/ |
|
| 13 |
function qx_mailto ( $param,$name='',$encode=false ) {
|
|
| 14 |
if ($encode === false) {
|
|
| 15 |
if ( $name != '' ) {
|
|
| 16 |
return '<a href="mailto:' . $param . '">' . $name . '</a>'; |
|
| 17 |
} else {
|
|
| 18 |
return '<a href="mailto:' . $param . '">' . $param . '</a>'; |
|
| 19 |
} |
|
| 20 |
} else {
|
|
| 21 |
$obfuscatedMailTo = ''; |
|
| 22 |
$mailto = "mailto:"; |
|
| 23 |
$length = strlen($mailto); |
|
| 24 |
for ($i = 0; $i < $length; $i++) {
|
|
| 25 |
$obfuscatedMailTo .= "&#" . ord($mailto[$i]); |
|
| 26 |
} |
|
| 27 |
$mailto = $param; |
|
| 28 |
$length = strlen($mailto); |
|
| 29 |
$param = ''; |
|
| 30 |
for ($i = 0; $i < $length; $i++) {
|
|
| 31 |
$param .= "&#" . ord($mailto[$i]); |
|
| 32 |
} |
|
| 33 |
if ( $name != '' ) {
|
|
| 34 |
$mailto = $name; |
|
| 35 |
$length = strlen($mailto); |
|
| 36 |
$name = ''; |
|
| 37 |
for ($i = 0; $i < $length; $i++) {
|
|
| 38 |
$name .= "&#" . ord($mailto[$i]); |
|
| 39 |
} |
|
| 40 |
return '<a href="' . $obfuscatedMailTo . ':' . $param . '">' . $name . '</a>'; |
|
| 41 |
} else {
|
|
| 42 |
return '<a href="' . $obfuscatedMailTo . ':' . $param . '">' . $param . '</a>'; |
|
| 43 |
} |
|
| 44 |
|
|
| 45 |
} |
|
| 46 |
} |
|
| 47 |
|
|
| 48 |
?> |
|
| 0 | 49 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_number.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension number |
|
| 4 |
* Format a number with grouped thousands |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('SUM', 2500000);
|
|
| 8 |
* Template: Current balance: {number:SUM}
|
|
| 9 |
* Result: Current balance: 2.500.000,00 |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 12 |
*/ |
|
| 13 |
function qx_number ( $param ) {
|
|
| 14 |
global $_CONFIG; |
|
| 15 |
|
|
| 16 |
$decimalChar = ','; |
|
| 17 |
if ( !empty($_CONFIG['decimal_char']) ) {
|
|
| 18 |
$decimalChar = $_CONFIG['decimal_char']; |
|
| 19 |
} |
|
| 20 |
$decimalPlaces = 2; |
|
| 21 |
if ( !empty($_CONFIG['decimal_places']) ) {
|
|
| 22 |
$decimalPlaces = $_CONFIG['decimal_places']; |
|
| 23 |
} |
|
| 24 |
$thousandsSep = '.'; |
|
| 25 |
if ( !empty($_CONFIG['thousands_sep']) ) {
|
|
| 26 |
$thousandsSep = $_CONFIG['thousands_sep']; |
|
| 27 |
} |
|
| 28 |
|
|
| 29 |
return number_format( $param, $decimalChar, $decimalPlaces, $thousandsSep ); |
|
| 30 |
} |
|
| 31 |
|
|
| 32 |
?> |
|
| 0 | 33 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_count.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension count |
|
| 4 |
* count element of an array |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('list', array('a','b'));
|
|
| 8 |
* Template: count: {count:list}
|
|
| 9 |
* Result: count: 2 |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 12 |
*/ |
|
| 13 |
function qx_count ( $param ) {
|
|
| 14 |
$temp = count( $param ); |
|
| 15 |
return $temp; |
|
| 16 |
} |
|
| 17 |
|
|
| 18 |
?> |
|
| 0 | 19 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_current_datetime.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension current_datetime |
|
| 4 |
* Print Current Date and Time |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Template: Time: {current_datetime:}
|
|
| 8 |
* Result: Time: 01.01.2009 - 12:46:00 |
|
| 9 |
* |
|
| 10 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 11 |
*/ |
|
| 12 |
function qx_current_datetime () {
|
|
| 13 |
global $_CONFIG; |
|
| 14 |
|
|
| 15 |
$datetimeFormat = 'F j, Y H:i:s'; |
|
| 16 |
if ( !empty($_CONFIG['datetime_format']) ) {
|
|
| 17 |
$datetimeFormat = $_CONFIG['datetime_format']; |
|
| 18 |
} |
|
| 19 |
return date( $datetimeFormat ); |
|
| 20 |
} |
|
| 21 |
|
|
| 22 |
?> |
|
| 0 | 23 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_nvl.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension nvl |
|
| 4 |
* Insert a default value if variable is empty |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('PREVIEW1', 'picture_21.gif');
|
|
| 8 |
* Template: <img src="{nvl:PREVIEW1,'not_available.gif'}"> / <img src="{nvl:PREVIEW2,'not_available.gif'}">
|
|
| 9 |
* Result: <img src="picture_21.gif"> / <img src="not_available.gif"> |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 12 |
*/ |
|
| 13 |
function qx_nvl ( $param, $default ) {
|
|
| 14 |
if (strlen($param)) {
|
|
| 15 |
return ( $param ); |
|
| 16 |
} else {
|
|
| 17 |
return ( $default ); |
|
| 18 |
} |
|
| 19 |
} |
|
| 20 |
|
|
| 21 |
?> |
|
| 0 | 22 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_db_datetime.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension db_datetime |
|
| 4 |
* Convert Oracle Date (British Format) to Local Formatted Date and Time |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('UPDATE', $result['LAST_UPDATE_DATE_TIME']);
|
|
| 8 |
* Template: Last update: {db_datetime:UPDATE}
|
|
| 9 |
* Result: Last update: 30.01.2003 - 12:46:00 |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 12 |
*/ |
|
| 13 |
function qx_db_datetime ( $param ) {
|
|
| 14 |
global $configuration; |
|
| 15 |
|
|
| 16 |
if (preg_match('/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/', $param)) {
|
|
| 17 |
return date( $configuration['datetime_format'], strtotime($param) ); |
|
| 18 |
} else {
|
|
| 19 |
return 'Invalid date format!'; |
|
| 20 |
} |
|
| 21 |
} |
|
| 22 |
|
|
| 23 |
?> |
|
| 0 | 24 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_load_config.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension load_config |
|
| 4 |
* Reads an INI-Style configuration file into an array |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Configuration File (parameter.ini): |
|
| 8 |
* |
|
| 9 |
* PAGETITLE = Default Page Title |
|
| 10 |
* [colors] |
|
| 11 |
* BACKGROUND = #FFFFFF |
|
| 12 |
* TEXT = #000000 |
|
| 13 |
* |
|
| 14 |
* Template: |
|
| 15 |
* |
|
| 16 |
* {load_config:"parameter.ini","config"}
|
|
| 17 |
* <title>{config.PAGETITLE}</title>
|
|
| 18 |
* <body bgcolor="{config.colors.BACKGROUND}" text="{config.colors.TEXT}">
|
|
| 19 |
* |
|
| 20 |
* Result: |
|
| 21 |
* |
|
| 22 |
* <title>Default Page Title</title> |
|
| 23 |
* <body bgcolor="#FFFFFF" text="#000000"> |
|
| 24 |
* |
|
| 25 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 26 |
*/ |
|
| 27 |
function qx_load_config ( $filename, $name = 'config' ) {
|
|
| 28 |
global $_top; |
|
| 29 |
|
|
| 30 |
$section = null; |
|
| 31 |
if (is_file($filename)) {
|
|
| 32 |
$cfgfile = file($filename); |
|
| 33 |
if (is_array($cfgfile)) {
|
|
| 34 |
foreach ($cfgfile as $line) {
|
|
| 35 |
if (substr($line, 0, 1) != '#') {
|
|
| 36 |
if (substr($line, 0, 1) == '[') {
|
|
| 37 |
if ($rbr = strpos($line, ']')) {
|
|
| 38 |
$section = substr($line, 1, $rbr -1); |
|
| 39 |
} |
|
| 40 |
} |
|
| 41 |
if ($tr = strpos($line, '=')) {
|
|
| 42 |
$k = trim(substr($line, 0, $tr)); |
|
| 43 |
$v = trim(substr($line, $tr+1)); |
|
| 44 |
if (isset($section)) {
|
|
| 45 |
$_top[$name][$section][$k] = $v; |
|
| 46 |
} else {
|
|
| 47 |
$_top[$name][$k] = $v; |
|
| 48 |
} |
|
| 49 |
} |
|
| 50 |
} |
|
| 51 |
} |
|
| 52 |
} |
|
| 53 |
} |
|
| 54 |
} |
|
| 55 |
|
|
| 56 |
?> |
|
| 0 | 57 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_regex.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension regex |
|
| 4 |
* Regular Expression String Replace |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('NAME', '*My Document*');
|
|
| 8 |
* Template: Document Name: {regex:NAME,'/[^a-z0-9]/i','_'}
|
|
| 9 |
* Result: Document Name: _My_Document_ |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 12 |
*/ |
|
| 13 |
function qx_regex ( $param, $pattern, $replace ) {
|
|
| 14 |
return preg_replace( $pattern, $replace, $param ); |
|
| 15 |
} |
|
| 16 |
|
|
| 17 |
?> |
|
| 0 | 18 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_trim.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension trim |
|
| 4 |
* Removes leading and trailing Whitespaces and Line Feeds |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('LINK', ' Click Here ');
|
|
| 8 |
* Template: <a href="/">{trim:LINK}</a>
|
|
| 9 |
* Result: <a href="/">Click Here</a> |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 12 |
*/ |
|
| 13 |
function qx_trim ( $param ) {
|
|
| 14 |
return trim( $param ); |
|
| 15 |
} |
|
| 16 |
|
|
| 17 |
?> |
|
| 0 | 18 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_replace.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension replace |
|
| 4 |
* String Replace |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('PATH', $path_tranlated); // C:\Apache\htdocs\php\test.php
|
|
| 8 |
* Template: Script Name: {replace:PATH,'\\','/'}
|
|
| 9 |
* Result: Script Name: C:/Apache/htdocs/php/test.php |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 12 |
*/ |
|
| 13 |
function qx_replace ( $param, $pattern, $replace ) {
|
|
| 14 |
return str_replace( $pattern, $replace, $param ); |
|
| 15 |
} |
|
| 16 |
|
|
| 17 |
?> |
|
| 0 | 18 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_stringformat.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension stringformat |
|
| 4 |
* Inserts a formatted String |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('SUM', 25);
|
|
| 8 |
* Template: Current balance: {stringformat:SUM,'$ %01.2f'}
|
|
| 9 |
* Result: Current balance: $ 25.00 |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 12 |
*/ |
|
| 13 |
function qx_stringformat ( $param, $format ) {
|
|
| 14 |
return sprintf( $format, $param ); |
|
| 15 |
} |
|
| 16 |
|
|
| 17 |
?> |
|
| 0 | 18 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_session.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension session |
|
| 4 |
* Print Content of Session variables |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $_SESSION['userName'] = 'Philipp von Criegern'; |
|
| 8 |
* Template: Current User: {session:"userName"}
|
|
| 9 |
* Result: Current User: Philipp von Criegern |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 12 |
*/ |
|
| 13 |
function qx_session ( $param ) {
|
|
| 14 |
return $_SESSION[$param]; |
|
| 15 |
} |
|
| 16 |
|
|
| 17 |
?> |
|
| 0 | 18 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_truncate.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension truncate |
|
| 4 |
* Restricts a String to a specific number characters |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('TEASER', 'PHP 4.3.0RC1 has been released. This is the first release candidate');
|
|
| 8 |
* Template: News: {truncate:TEASER,50} ... [more]
|
|
| 9 |
* Result: News: QuickSkin version 5.0 has been released. This is the first ... [more] |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 12 |
*/ |
|
| 13 |
function qx_truncate ( $param, $size ) {
|
|
| 14 |
return substr( $param, 0, $size ); |
|
| 15 |
} |
|
| 16 |
|
|
| 17 |
?> |
|
| 0 | 18 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_uppercase.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension uppercase |
|
| 4 |
* Converts String to uppercase |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('NAME', 'John Doe');
|
|
| 8 |
* Template: Username: {uppercase:NAME}
|
|
| 9 |
* Result: Username: JOHN DOE |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 12 |
*/ |
|
| 13 |
function qx_uppercase ( $param ) {
|
|
| 14 |
return strtoupper( $param ); |
|
| 15 |
} |
|
| 16 |
|
|
| 17 |
?> |
|
| 0 | 18 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_header.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension header |
|
| 4 |
* Sends HTTP Header |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign( 'TITLE', 'SVG Template Demo:' ); |
|
| 8 |
* |
|
| 9 |
* Template: |
|
| 10 |
* {header:"Content-type: image/svg+xml"}<?xml version="1.0" ?>
|
|
| 11 |
* <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> |
|
| 12 |
* <svg width="300px" height="150px" style="shape-rendering:optimizeQuality;text-rendering:optimizeQuality"> |
|
| 13 |
* <circle id="ball" cx="150" cy="75" r="50" style="fill:rgb(200,200,255)" /> |
|
| 14 |
* <text x="70" y="80" id="title" style="font-face:Courier;font-size:12pt">{TITLE}</text>
|
|
| 15 |
* </svg> |
|
| 16 |
* |
|
| 17 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 18 |
*/ |
|
| 19 |
function qx_header ( $param ) {
|
|
| 20 |
header($param); |
|
| 21 |
} |
|
| 22 |
|
|
| 23 |
|
|
| 0 | 24 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_codesnippetstart.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension codesnippetstart |
|
| 4 |
* required for the start of a code snippet |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Template: Code Snippet<br />{codesnippetstart:}
|
|
| 8 |
* |
|
| 9 |
* @author Andy Prevost andy@codeworxtech.com |
|
| 10 |
*/ |
|
| 11 |
function qx_codesnippetstart ( $param='' ) {
|
|
| 12 |
/* |
|
| 13 |
nogutter = no line numbers |
|
| 14 |
nocontrols = no menu at top |
|
| 15 |
collapse = = display nothing, menu at top will display '+ expand source' |
|
| 16 |
firstline[value] = starting number to start count |
|
| 17 |
showcolumns = shows "ruler" at top |
|
| 18 |
*/ |
|
| 19 |
if ( $param = '' ) {
|
|
| 20 |
return '<pre name="code" class="php">'; |
|
| 21 |
} else {
|
|
| 22 |
return '<pre name="code" class="php:' . $param . '">'; |
|
| 23 |
} |
|
| 24 |
} |
|
| 25 |
|
|
| 26 |
?> |
|
| 0 | 27 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_options.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension options |
|
| 4 |
* Creates HTML DropDown Option list from an array |
|
| 5 |
* |
|
| 6 |
* Usage Example I: |
|
| 7 |
* Content: $template->assign('pick', array( "on", "off" ) );
|
|
| 8 |
* Template: Choose: <select name="onoff"> {options:pick} </select>
|
|
| 9 |
* Result: Choose: <select name="onoff"> <option>on</option><option>off</option> </select> |
|
| 10 |
* |
|
| 11 |
* Usage Example II: |
|
| 12 |
* Content: $template->assign('color', array( "FF0000" => "Red", "00FF00" => "Green", "0000FF" => "Blue" ) );
|
|
| 13 |
* $template->assign('default', "00FF00" );
|
|
| 14 |
* Template: Color: <select name="col"> {options:color,default} </select>
|
|
| 15 |
* Result: Color: <select name="col"> <option value="FF0000">Red</option><option value="00FF00" selected>Green</option><option value="0000FF">Blue</option> </select> |
|
| 16 |
* |
|
| 17 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 18 |
*/ |
|
| 19 |
function qx_options ( $param, $default = '_DEFAULT_' ) {
|
|
| 20 |
$output = ''; |
|
| 21 |
if (is_array($param)) {
|
|
| 22 |
$keyindex = 0; |
|
| 23 |
foreach ($param as $key => $value) {
|
|
| 24 |
if ($key==$keyindex++ && is_numeric($key)) {
|
|
| 25 |
$output .= '<option' . (($value == $default) ? ' selected' : '') . '>' . $value . '</option>'; |
|
| 26 |
} else {
|
|
| 27 |
$output .= '<option value="' . $key . '"' . (($key == $default) ? ' selected' : '') . '>' . $value . '</option>'; |
|
| 28 |
} |
|
| 29 |
} |
|
| 30 |
} |
|
| 31 |
return $output; |
|
| 32 |
} |
|
| 33 |
|
|
| 34 |
?> |
|
| 0 | 35 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_dateformatgrid.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension dateformatgrid |
|
| 4 |
* Changes Dateformat |
|
| 5 |
* |
|
| 6 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 7 |
*/ |
|
| 8 |
function qx_dateformatgrid ( $param, $format = 'F j, Y' ) {
|
|
| 9 |
list($month,$day,$year,$hour,$minute,$second) = split("[-:T\.]", $param);
|
|
| 10 |
|
|
| 11 |
// handle empty values |
|
| 12 |
if (! $hour) { $hour = '00'; }
|
|
| 13 |
if (! $minute) { $minute = '00'; }
|
|
| 14 |
if (! $second) { $second = '00'; }
|
|
| 15 |
|
|
| 16 |
return date( $format, mktime($hour, $minute, $second, $month, $day, $year)); |
|
| 17 |
} |
|
| 18 |
|
|
| 19 |
?> |
|
| 0 | 20 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_encode.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension encode |
|
| 4 |
* Encodes String (md5) |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('ID', 123);
|
|
| 8 |
* Template: <a href="delete.php?id={encode:ID}">delete</a>
|
|
| 9 |
* Result: <a href="delete.php?id=7B600B6476167773626A">delete</a> |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com |
|
| 12 |
*/ |
|
| 13 |
|
|
| 14 |
function qx_encode ( $param ) {
|
|
| 15 |
return md5( $param ); |
|
| 16 |
} |
|
| 17 |
|
|
| 18 |
?> |
|
| 0 | 19 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_current_time.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension current_time |
|
| 4 |
* Print Current Time |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Template: Time: {current_time:}
|
|
| 8 |
* Result: Time: 12:46:00 |
|
| 9 |
* |
|
| 10 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 11 |
*/ |
|
| 12 |
function qx_current_time ($meridiem='A') {
|
|
| 13 |
global $_CONFIG; |
|
| 14 |
|
|
| 15 |
$timeFormat = 'g:i:s ' . $meridiem; |
|
| 16 |
if ( !empty($_CONFIG['time_format']) ) {
|
|
| 17 |
$timeFormat = $_CONFIG['time_format']; |
|
| 18 |
} |
|
| 19 |
return date( $timeFormat ); |
|
| 20 |
} |
|
| 21 |
|
|
| 22 |
?> |
|
| 0 | 23 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_db_time.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension db_time |
|
| 4 |
* Convert Oracle Date (British Format) to Local Formatted Time |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Content: $template->assign('UPDATE', $result['LAST_UPDATE_DATE_TIME']);
|
|
| 8 |
* Template: Last update: {db_time:UPDATE}
|
|
| 9 |
* Result: Last update: 12:46:00 |
|
| 10 |
* |
|
| 11 |
* @author Andy Prevost andy@codeworxtech.com - original by Philipp v. Criegern philipp@criegern.de |
|
| 12 |
*/ |
|
| 13 |
function qx_db_time ( $param ) {
|
|
| 14 |
global $configuration; |
|
| 15 |
|
|
| 16 |
if (preg_match('/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/', $param)) {
|
|
| 17 |
return date( $configuration['time_format'], strtotime($param) ); |
|
| 18 |
} else {
|
|
| 19 |
return 'Invalid date format!'; |
|
| 20 |
} |
|
| 21 |
} |
|
| 22 |
|
|
| 23 |
?> |
|
| 0 | 24 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_mailtoencode.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension mailtoencode |
|
| 4 |
* Protects email address from being scanned by spam bots |
|
| 5 |
* and optionally builds full mailto: link |
|
| 6 |
* |
|
| 7 |
* Usage Example 1: |
|
| 8 |
* Content: $template->assign('AUTHOR', 'yourname@yourdomain.com' );
|
|
| 9 |
* Template: Author: {mailtoencode:AUTHOR}
|
|
| 10 |
* Result: Author: <a href="mailto:yourname@yourdomain.com">yourname@yourdomain.com</a> |
|
| 11 |
* |
|
| 12 |
* Usage Example 2 (Email address only): |
|
| 13 |
* Template: Author: {mailtoencode:"yourname@yourdomain.com"}
|
|
| 14 |
* Result: Author: <a href="mailto:yourname@yourdomain.com">yourname@yourdomain.com</a> |
|
| 15 |
* |
|
| 16 |
* Usage Example 3 (Email address and name): |
|
| 17 |
* Template: Author: {mailtoencode:"yourname@yourdomain.com","Your Name"}
|
|
| 18 |
* Result: Author: <a href="mailto:yourname@yourdomain.com">Your Name</a> |
|
| 19 |
* |
|
| 20 |
* Usage Example 4 (Email address and name, encode set to true, and class name): |
|
| 21 |
* Template: Author: {mailtoencode:"yourname@yourdomain.com","Your Name",true,'white'}
|
|
| 22 |
* Result: Author: <a href="mailto:yourname@yourdomain.com" class="white">Your Name</a> |
|
| 23 |
* |
|
| 24 |
* Usage Example 5 (Email address and name, encode set to true, class name and style defined): |
|
| 25 |
* Template: Author: {mailtoencode:"yourname@yourdomain.com","Your Name",true,'white','font-size:18px;'}
|
|
| 26 |
* Result: Author: <a href="mailto:yourname@yourdomain.com" class="white" style="font-size:18px;">Your Name</a> |
|
| 27 |
* |
|
| 28 |
* Usage Example 6 (Email address and name, encode set to true, no class name and style defined): |
|
| 29 |
* Template: Author: {mailtoencode:"yourname@yourdomain.com","Your Name",true,'','font-size:18px;'}
|
|
| 30 |
* Result: Author: <a href="mailto:yourname@yourdomain.com" style="font-size:18px;">Your Name</a> |
|
| 31 |
* |
|
| 32 |
* @author Andy Prevost andy@codeworxtech.com |
|
| 33 |
*/ |
|
| 34 |
|
|
| 35 |
if(!function_exists('str_split')){
|
|
| 36 |
function str_split($text, $split = 1){
|
|
| 37 |
$array = array(); |
|
| 38 |
for($i=0; $i < strlen($text); $i++){
|
|
| 39 |
$key = NULL; |
|
| 40 |
for ($j = 0; $j < $split; $j++){
|
|
| 41 |
$key .= $text[$i]; |
|
| 42 |
} |
|
| 43 |
array_push($array, $key); |
|
| 44 |
} |
|
| 45 |
return $array; |
|
| 46 |
} |
|
| 47 |
} |
|
| 48 |
|
|
| 49 |
function qx_mailtoencode ($emailAddy,$text='',$buildLink=true,$class='',$style='') {
|
|
| 50 |
if ( $buildLink ) {
|
|
| 51 |
// mailto: portion |
|
| 52 |
$obfuscatedMailTo = ''; |
|
| 53 |
$mailto = "mailto:"; |
|
| 54 |
$length = strlen($mailto); |
|
| 55 |
for ($i = 0; $i < $length; $i++) {
|
|
| 56 |
$obfuscatedMailTo .= "&#" . ord($mailto[$i]); |
|
| 57 |
} |
|
| 58 |
// END - mailto: portion |
|
| 59 |
$emailLink = '<a href="'; |
|
| 60 |
$emailLink .= $obfuscatedMailTo; |
|
| 61 |
} |
|
| 62 |
$emailLink .= obfuscate($emailAddy); |
|
| 63 |
if ( $buildLink ) {
|
|
| 64 |
$emailLink .= '"'; |
|
| 65 |
if ( trim($class) != '' ) {
|
|
| 66 |
$emailLink .= ' class="' . $class . '"'; |
|
| 67 |
} |
|
| 68 |
if ( trim($style) != '' ) {
|
|
| 69 |
$emailLink .= ' style="' . $style . '"'; |
|
| 70 |
} |
|
| 71 |
$emailLink .= '>'; |
|
| 72 |
if ( trim($text) != '' ) {
|
|
| 73 |
$newText = trim($text); |
|
| 74 |
$newText = str_replace('@','@',$newText);
|
|
| 75 |
$newText = str_replace('.','.',$newText);
|
|
| 76 |
$emailLink .= $newText; |
|
| 77 |
} else {
|
|
| 78 |
$newText = trim($emailAddy); |
|
| 79 |
$newText = str_replace('@','@',$newText);
|
|
| 80 |
$newText = str_replace('.','.',$newText);
|
|
| 81 |
$emailLink .= $newText; |
|
| 82 |
} |
|
| 83 |
$emailLink .= "</a>"; |
|
| 84 |
} |
|
| 85 |
return $emailLink; |
|
| 86 |
} |
|
| 87 |
|
|
| 88 |
function obfuscate($text) { // NOTE: Uses function str_split
|
|
| 89 |
preg_match_all("/[-a-z0-9\._]+@[-a-z0-9\._]+\.[a-z]{2,4}/", $text, $emails);
|
|
| 90 |
$patterns = array(); |
|
| 91 |
$replacements = array(); |
|
| 92 |
foreach($emails[0] as $email) {
|
|
| 93 |
if(!in_array("/$email/", $patterns)) {
|
|
| 94 |
$obfuscated = ''; |
|
| 95 |
foreach(str_split($email) as $char) {
|
|
| 96 |
$obfuscated .= '&#'.ord($char).';'; |
|
| 97 |
} |
|
| 98 |
$patterns[] = "/$email/"; |
|
| 99 |
$replacements[] = $obfuscated; |
|
| 100 |
} |
|
| 101 |
} |
|
| 102 |
$text = preg_replace($patterns, $replacements, $text); |
|
| 103 |
return $text; |
|
| 104 |
} |
|
| 105 |
|
|
| 106 |
?> |
|
| 0 | 107 | |
| branches/2.8.x/wb/include/quickSkin/qx/qx_codesnippetend.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 |
/** |
|
| 3 |
* QuickSkin Extension codesnippetend |
|
| 4 |
* required for the end of a code snippet |
|
| 5 |
* |
|
| 6 |
* Usage Example: |
|
| 7 |
* Template: Code Snippet<br />{codesnippetend:}
|
|
| 8 |
* |
|
Also available in: Unified diff
! changes in code modul
+ add function getTableEngine to class.database
+ add Quickskin to include folder
+ add reworkes Droplet SectionPicker to load modules frontend.css