cvs: bugtracker /includes template.php /template/generic/bug index.php /template/generic/report index.php
| From: | Barry Carlyon | Date: | Wed, 06 Aug 2008 11:18:16 +0000 |
| Subject: | cvs: bugtracker /includes template.php /template/generic/bug index.php /template/generic/report index.php | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-2316@lists.php.net to get a copy of this message | ||
bcarlyon Wed Aug 6 11:18:16 2008 UTC
Modified files:
/bugtracker/includes template.php
/bugtracker/template/generic/bug index.php
/bugtracker/template/generic/report index.php
Log:
Template engine patch
http://cvs.php.net/viewvc.cgi/bugtracker/includes/template.php?r1=1.6&r2=1.7&diff_format=u
Index: bugtracker/includes/template.php
diff -u bugtracker/includes/template.php:1.6 bugtracker/includes/template.php:1.7
--- bugtracker/includes/template.php:1.6 Tue Aug 5 22:15:28 2008
+++ bugtracker/includes/template.php Wed Aug 6 11:18:16 2008
@@ -148,7 +148,8 @@
$this->html = preg_replace("[\"\{[\w\d].*\}\"]", '""',
$this->html);
//strip >{}<
$this->html = preg_replace("[\>\{[\w\d].*\}\<]", '><',
$this->html);
-
+ //strip \ {}
+ $this->html = preg_replace("[ \{[\w\d].*\}]", ' ', $this->html);
$this->html = preg_replace("[@]", '[cookies]', $this->html);
echo $this->html;
@@ -172,6 +173,7 @@
//put the victim on the target
$source = str_replace('{' . strtoupper($target) . '}', $victim, $source);
+
if ($return)
return $source;
else
@@ -191,10 +193,18 @@
$html .= $this->loop_html;
if (is_array($data))
{
+ $mod = 'DSP';
+/*
+ if ($ref == 'form') {
+ $mod = 'FORM';
+ } elseif ($ref == 'error') {
+ $mod = 'ERROR';
+ }
+*/
foreach ($data as $nref => $ndata) {
$ndata = $this->sanitize($ndata);
$ndata = $this->time_check($nref, $ndata, $data);
- $html = $this->swap('DSP_' . $nref, $ndata, $html);
+ $html = $this->swap($mod . '_' . $nref, $ndata, $html);
}
} else {
$data = $this->sanitize($data);
@@ -205,11 +215,39 @@
return $html;
}
+ function dontloop($loop_data, $html) {
+ foreach ($loop_data as $ref => $data) {
+ $mod = '';
+ if ($ref == 'form') {
+ $mod = 'FORM_';
+ } elseif ($ref == 'error') {
+ $mod = 'ERROR_';
+ }
+ if (is_array($data))
+ {
+ foreach ($data as $nref => $ndata) {
+ $ndata = $this->sanitize($ndata);
+ $ndata = $this->time_check($nref, $ndata, $data);
+ $html = $this->swap($mod . $nref, $ndata, $html);
+ }
+ } else {
+ $data = $this->sanitize($data);
+ $data = $this->time_check($ref, $data, $loop_data);
+ $html = $this->swap($mod . $ref, $data, $html);
+ }
+ }
+ return $html;
+ }
function sanitize($in)
{
$out = $in;
- if (strlen($in) > 4)
+
+ if (substr($in,0,7) == '<option')
+ {
+ $out = $in;
+ }
+ elseif (strlen($in) > 4)
{
$out = htmlentities($in, ENT_QUOTES, 'UTF-8');
}
http://cvs.php.net/viewvc.cgi/bugtracker/template/generic/bug/index.php?r1=1.20&r2=1.21&diff_format=u
Index: bugtracker/template/generic/bug/index.php
diff -u bugtracker/template/generic/bug/index.php:1.20
bugtracker/template/generic/bug/index.php:1.21
--- bugtracker/template/generic/bug/index.php:1.20 Tue Aug 5 15:05:59 2008
+++ bugtracker/template/generic/bug/index.php Wed Aug 6 11:18:16 2008
@@ -22,12 +22,15 @@
else
{
$this->javascript = '<script type="text/javascript"
src="/elements/js/lineno.js" ></script>';
- $this->javascript .= '<script type="text/javascript">
+ $this->javascript .= '
+{DSP_SHOW_REPRODUCE}
+<script type="text/javascript">
function onload()
{
createTextAreaWithLines(\'reproduce\');
}
-</script>';
+</script>
+{DSP_END_REPRODUCE}';
$row = $db->fetch_row();
http://cvs.php.net/viewvc.cgi/bugtracker/template/generic/report/index.php?r1=1.10&r2=1.11&diff_format=u
Index: bugtracker/template/generic/report/index.php
diff -u bugtracker/template/generic/report/index.php:1.10
bugtracker/template/generic/report/index.php:1.11
--- bugtracker/template/generic/report/index.php:1.10 Tue Aug 5 22:15:29 2008
+++ bugtracker/template/generic/report/index.php Wed Aug 6 11:18:16 2008
@@ -6,6 +6,18 @@
$this->content_title = 'Reporting a bug';
$form_data['form_error'] = isset($form_data['form_error']) ?
$form_data['form_error'] : '';
+//form_data recovers form_data
+//this is pushed to dsp_data for template process
+$form_data['email'] = isset($form_data['email']) ?
$form_data['email'] : '';
+$form_data['php_version'] = isset($form_data['php_version']) ?
$form_data['php_version'] : '';
+$form_data['bug_type'] = isset($form_data['bug_type']) ?
$form_data['bug_type'] : '';
+$form_data['os_version'] = isset($form_data['os_version']) ?
$form_data['os_version'] : '';
+
+$form_data['php_versions'] =
$cache->convert('php_version', 'select', $form_data['php_version'],
'1');
+$form_data['bug_types'] = $cache->convert('bug_type', 'select',
$form_data['bug_type'] );
+$form_data['os_versions'] =
$cache->convert('os_version', 'select',
$form_data['os_version'] );
+
+$form_data['php_versions'] .= '<option
value="na">Irrelevant</option><option value="early">Earlier?
Upgrade First</option>';
$this->prehtml = '<p>
Before you report a bug, make sure to search for similar bugs using the form at the top of the page
or our <a href="/search.php">advanced search page</a>.
@@ -25,14 +37,7 @@
</p>
';
-$form_data['php_versions'] = $cache->convert('php_version',
'select', '', '1');
-$form_data['bug_types'] = $cache->convert('bug_type', 'select',
'');
-$form_data['os_versions'] = $cache->convert('os_version',
'select', '');
-
-$form_data['php_versions'] .= '<option
value="na">Irrelevant</option><option value="early">Earlier?
Upgrade First</option>';
-
//time to process
-
$content = '{DSP_FORM_ERROR}';
$content = $this->swap('dsp_form_error', $form_data['form_error'],
$content);
@@ -42,12 +47,17 @@
{IF LOGGED_IN}
You are Logged In
{ELSE LOGGED_IN}
- <label for="email">Email Address: {ERROR_EMAIL} </label> <input
type="text" name="email" id="email" value="{EMAIL}" />
+ <label for="email">Email Address: {ERROR_EMAIL} </label> <input
type="text" name="email" id="email" value="{FORM_EMAIL}"
/>
<br /><br />
{ENDIF LOGGED_IN}
- <label for="php_version">PHP version: {ERROR_PHP_VERSION}</label>
<select name="php_version" id="php_version"><option
value="">--Please Select--</option>{PHP_VERSIONS}</select>
+ <label for="php_version">PHP version: {ERROR_PHP_VERSION}</label>
<select name="php_version" id="php_version"><option
value="">--Please Select--</option>{FORM_PHP_VERSIONS}</select>
</div>
</form>';
+//generate items for swap
+$error_data = array();
+
+$content = $this->dontloop(array('form' => $form_data, 'error' =>
$error_data), $content);
+
$this->prehtml .= $content;