* adjust for tree browsetask page.

This commit is contained in:
wangyidong
2018-04-28 11:28:53 +08:00
parent f963b360a2
commit fb3e2b370f
17 changed files with 111 additions and 249 deletions
-5
View File
@@ -252,12 +252,7 @@ $lang->project->dividerMenu = ',story,doc,';
$lang->task = new stdclass();
$lang->build = new stdclass();
$lang->task->menu = $lang->project->menu;
$lang->task->subMenu = $lang->project->subMenu;
$lang->build->menu = $lang->project->menu;
$lang->build->subMenu = $lang->project->subMenu;
$lang->task->dividerMenu = $lang->project->dividerMenu;
$lang->build->dividerMenu = $lang->project->dividerMenu;
/* QA视图菜单设置。*/
$lang->qa = new stdclass();
+6 -7
View File
@@ -10,8 +10,13 @@
* @link http://www.zentao.net
*/
?>
<style>
#formSetting {min-width: 300px;}
#formSettingForm .checkboxes {padding: 10px 3px;}
#formSettingForm .checkbox-primary {width: 50%; float: left; margin: 3px 0;}
</style>
<div class="dropdown">
<button type="button" title="<?php echo $lang->customField;?>" class="btn btn-link" data-toggle="dropdown"><i class="icon icon-cog"></i> <?php echo $lang->story->setting;?></button>
<button type="button" title="<?php echo $lang->customField;?>" class="btn btn-link" data-toggle="dropdown"><i class="icon icon-cog"></i></button>
<div class="dropdown-menu pull-right" id="formSetting">
<form class='with-padding load-indicator' id='formSettingForm' method='post' target='hiddenwin' action='<?php echo $customLink?>'>
<div><?php echo $lang->customField;?></div>
@@ -25,12 +30,6 @@
</form>
</div>
</div>
<style>
#formSetting {min-width: 300px;}
#formSettingForm .checkboxes {padding: 10px 3px;}
#formSettingForm .checkbox-primary {width: 50%; float: left; margin: 3px 0;}
</style>
<script>
var $formSetting = $('#formSetting');
$formSetting.on('click', '.close-dropdown', function()
@@ -1,44 +0,0 @@
<?php
/**
* The custom field view file of common module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package common
* @version $Id$
* @link http://www.zentao.net
*/
?>
<style>
#customFieldSetting {min-width:300px;}
#customFieldSetting .checkboxes {padding: 10px 3px;}
#customFieldSetting .checkbox-primary {width: 50%; float: left; margin: 3px 0;}
</style>
<div class="btn-group">
<button type="button" class="btn btn-link" data-toggle="dropdown"><i class="icon icon-cog"></i></button>
<div class="dropdown-menu pull-right" id='customFieldSetting'>
<form class='with-padding load-indicator' method='post' target='hiddenwin' action='<?php echo $customLink?>'>
<div><?php echo $lang->customConfig?></div>
<div class='clearfix checkboxes'>
<?php foreach($customFields as $field => $fieldName):?>
<div class="checkbox-primary">
<input type="checkbox" name="fields[]" id='<?php echo "field{$field}"?>' value="<?php echo $field?>" <?php if(strpos(",$showFields,", ",$field,") !== false) echo 'checked';?> />
<label for='<?php echo "field{$field}"?>'><?php echo $fieldName;?></label>
</div>
<?php endforeach;?>
</div>
<div>
<?php echo html::submitButton();?>
&nbsp;
<?php echo html::commonButton($lang->cancel, '', "btn btn-gray close-dropdown");?>
</div>
</form>
</div>
</div>
<script>
$('#customFieldSetting').on('click', '.close-dropdown', function()
{
$('#customFieldSetting').parent().removeClass('open');
}).on('click', function(e){e.stopPropagation()});
</script>
+1 -1
View File
@@ -15,7 +15,7 @@
<h2><?php echo $lang->product->batchEdit;?></h2>
<div class="pull-right btn-toolbar">
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=product&section=custom&key=batchEditFields')?>
<?php include '../../common/view/dropdowncustomfield.html.php';?>
<?php include '../../common/view/customfield.html.php';?>
</div>
</div>
<?php
+1 -41
View File
@@ -821,6 +821,7 @@ class project extends control
$this->view->chartData = $chartData;
$this->view->dayList = array('full' => $this->lang->project->interval . $space . 1 . $space . $this->lang->day) + $dayList;
unset($this->lang->modulePageActions);
$this->display();
}
@@ -1615,47 +1616,6 @@ class project extends control
$this->display();
}
/**
* Manage childs projects.
*
* @param int $projectID
* @access public
* @return void
*/
public function manageChilds($projectID)
{
$browseProjectLink = $this->createLink('project', 'browse', "projectID=$projectID");
if(!empty($_POST))
{
$this->project->updateChilds($projectID);
die(js::locate($browseProjectLink));
}
$project = $this->project->getById($projectID);
$projects = $this->projects;
unset($projects[$projectID]);
unset($projects[$project->parent]);
if(empty($projects)) $this->locate($browseProjectLink);
/* Header and position. */
$title = $this->lang->project->manageChilds . $this->lang->colon . $project->name;
$position[] = html::a($browseProjectLink, $project->name);
$position[] = $this->lang->project->manageChilds;
$childProjects = $this->project->getChildProjects($project->id);
$childProjects = join(",", array_keys($childProjects));
/* Set menu. */
$this->project->setMenu($this->projects, $project->id);
/* Assign. */
$this->view->title = $title;
$this->view->position = $position;
$this->view->projects = $projects;
$this->view->childProjects = $childProjects;
$this->display();
}
/**
* Manage members of the project.
*
+2 -1
View File
@@ -108,13 +108,14 @@ class projectModel extends model
$projectIndex = '<div class="btn-group angle-btn"><div class="btn-group"><button data-toggle="dropdown" type="button" class="btn">' . $label . ' <span class="caret"></span></button>';
$projectIndex .= '<ul class="dropdown-menu">';
if(common::hasPriv('project', 'index')) $projectIndex .= '<li>' . html::a(helper::createLink('project', 'index', 'locate=no'), '<i class="icon icon-cards-view"></i> ' . $this->lang->project->index) . '</li>';
if(common::hasPriv('project', 'index')) $projectIndex .= '<li>' . html::a(helper::createLink('project', 'index', 'locate=no'), '<i class="icon icon-home"></i> ' . $this->lang->project->index) . '</li>';
if(common::hasPriv('project', 'all')) $projectIndex .= '<li>' . html::a(helper::createLink('project', 'all'), '<i class="icon icon-cards-view"></i> ' . $this->lang->project->allProjects) . '</li>';
if(common::hasPriv('project', 'create')) $projectIndex .= '<li>' . html::a(helper::createLink('project', 'create'), '<i class="icon icon-plus"></i> ' . $this->lang->project->create) . '</li>';
$projectIndex .= '</ul></div></div>';
$projectIndex .= $selectHtml;
$this->lang->modulePageNav = $projectIndex;
if($moduleName != 'project') $this->lang->$moduleName->dividerMenu = $this->lang->project->dividerMenu;
foreach($this->lang->project->menu as $key => $menu)
{
$replace = $projectID;
+22 -15
View File
@@ -11,19 +11,26 @@
*/
?>
<?php include '../../common/view/header.lite.html.php';?>
<form target='hiddenwin' method='post' style='padding:20px 20px'>
<table class='table table-form'>
<tr>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $project->begin?></span>
<?php echo html::input('estimate', !empty($firstBurn->estimate) ? $firstBurn->estimate : (!empty($firstBurn->left) ? $firstBurn->left : ''), "class='form-control' placeholder='{$lang->project->placeholder->totalLeft}' autocomplete='off'")?>
<span class='input-group-addon fix-border'><input id='withLeft' type='checkbox' checked name='withLeft' value='1' /> <label for='withLeft'><?php echo $lang->project->fixFirstWithLeft?></label></span>
<span class='input-group-btn'><?php echo html::submitButton();?></span>
</div>
<div class='alert alert-info'><?php echo $lang->project->totalEstimate . ' : ' . $project->totalEstimate . $lang->project->workHour;?></div>
</td>
</tr>
</table>
</form>
<div id='mainContent' class='main-content'>
<form target='hiddenwin' method='post'>
<table class='table table-form'>
<tr>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $project->begin?></span>
<?php echo html::input('estimate', !empty($firstBurn->estimate) ? $firstBurn->estimate : (!empty($firstBurn->left) ? $firstBurn->left : ''), "class='form-control' placeholder='{$lang->project->placeholder->totalLeft}' autocomplete='off'")?>
<span class='input-group-addon fix-border'>
<div class='checkbox-primary'>
<input id='withLeft' type='checkbox' checked name='withLeft' value='1' />
<label for='withLeft'><?php echo $lang->project->fixFirstWithLeft?></label>
</div>
</span>
<span class='input-group-btn'><?php echo html::submitButton();?></span>
</div>
<div class='alert alert-info'><?php echo $lang->project->totalEstimate . ' : ' . $project->totalEstimate . $lang->project->workHour;?></div>
</td>
</tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.lite.html.php';?>
-8
View File
@@ -17,12 +17,4 @@
<?php else:?>
<?php echo $this->fetch('block', 'dashboard', 'module=project');?>
<?php endif;?>
<script>
<?php if($this->config->project->homepage != 'index'):?>
$(function()
{
$('#modulemenu .nav li.right:last').after("<li class='right'><a style='font-size:12px' href='javascript:setHomepage(\"project\", \"index\")'><i class='icon icon-cog'></i> <?php echo $lang->homepage?></a></li>")
});
<?php endif;?>
</script>
<?php include '../../common/view/footer.html.php';?>
-34
View File
@@ -1,34 +0,0 @@
<?php
/**
* The manage child product view of project module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @version $Id: managechilds.html.php 4129 2013-01-18 01:58:14Z wwccss $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='container mw-600px'>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['project']);?></span>
<strong><?php echo $lang->project->manageChilds;?></strong>
</div>
</div>
<form method='post'>
<table align='center' class='table table-form'>
<tr>
<td>
<?php
echo html::checkbox("childs", $projects, $childProjects);
?>
</td>
</tr>
<tr><td class='text-center'><input type='submit' name='submit' class='btn btn-primary' /></td></tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>
+1 -1
View File
@@ -16,7 +16,7 @@
<h2><?php echo $lang->story->batchCreate;?></h2>
<div class="pull-right btn-toolbar">
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=story&section=custom&key=batchCreateFields')?>
<?php include '../../common/view/dropdowncustomfield.html.php';?>
<?php include '../../common/view/customfield.html.php';?>
</div>
</div>
<?php
-1
View File
@@ -452,7 +452,6 @@ class testreport extends control
{
$this->projects = $this->project->getPairs('nocode');
$projectID = $this->project->saveState($objectID, $this->projects);
$this->lang->testreport->dividerMenu = $this->lang->project->dividerMenu;
$this->project->setMenu($this->projects, $projectID);
$this->lang->testreport->menu = $this->lang->project->menu;
$this->lang->testreport->menu->testtask['subModule'] = 'testreport';
+1 -1
View File
@@ -16,7 +16,7 @@
<div class="modal-header" id="todoBatchAddHeader">
<div class="modal-actions">
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=todo&section=custom&key=batchCreateFields')?>
<?php include '../../common/view/dropdowncustomfield.html.php';?>
<?php include '../../common/view/customfield.html.php';?>
<?php if(isonlybody()):?>
<div class="divider"></div>
<button id='closeModal' type="button" class="btn btn-link" data-dismiss="modal"><i class="icon icon-close"></i></button>
+1 -20
View File
@@ -1,29 +1,12 @@
function updateItemOrder()
{
var order = 10;
$('#sonModule').children('.row-table').each(function()
{
if($(this).find("input[name*='order']").length > 0)
{
console.log(order);
$(this).find("input[name*='order']").val(order);
order += 10;
}
});
$('#maxOrder').val(order - 10);
}
function addItem(obj)
{
var $inputRow = $(obj).closest('.row-module');
var $newRow = $('#insertItemBox').children('.row-module').clone().insertAfter($inputRow).addClass('highlight');
$newRow.find('input').val('');
$newRow.find("input[type!='hidden']").val('');
setTimeout(function()
{
$newRow.removeClass('highlight');
}, 1600);
updateItemOrder();
}
function insertItem(obj)
@@ -31,8 +14,6 @@ function insertItem(obj)
var $inputgroup = $(obj).closest('.row-table');
var insertHtml = $('#insertItemBox').children('.row-table').clone();
$inputgroup.after(insertHtml).next('.row-table').find('input').val('');
updateItemOrder();
}
function deleteItem(obj)
+1 -1
View File
@@ -22,7 +22,7 @@
</a>
<div class="divider"></div>
<div class="page-title">
<span class="text"><?php echo ($viewType == 'line' ? $lang->tree->manageLine : $lang->tree->common) . ':' . $root->name;?></span>
<span class="text"><?php echo ($viewType == 'line' ? $lang->tree->manageLine : $lang->tree->common) . ':' . $root->name;?></span>
</div>
</div>
</div>
+73 -67
View File
@@ -11,93 +11,104 @@
*/
?>
<?php include '../../common/view/header.html.php';?>
<div id='featurebar'>
<div class='heading'><?php echo $lang->tree->common;?></div>
<div id="mainMenu" class="clearfix">
<div class="btn-toolbar pull-left">
<?php $backLink = $this->session->taskList ? $this->session->taskList : 'javascript:history.go(-1)';?>
<a href="<?php echo $backLink;?>" class="btn btn-link">
<i class="icon icon-back icon-sm"></i> <?php echo $lang->goback;?>
</a>
<div class="divider"></div>
<div class="page-title">
<span class='text'><?php echo $lang->tree->common . ':' . $root->name;?></span>
</div>
</div>
<div class='row'>
<div class='col-sm-4'>
<div id="mainContent" class="main-row">
<div class="side-col col-4">
<div class='panel'>
<div class='panel-heading'><i class='icon-cog'></i> <strong><?php echo $title;?></strong></div>
<div class='panel-heading'>
<div class='panel-title'><?php echo $title;?></div>
</div>
<div class='panel-body'>
<ul class='tree-lines' id='modulesTree' data-name='tree-task'></ul>
</div>
</div>
</div>
<div class='col-sm-8'>
<form id='childrenForm' class='form-condensed' method='post' target='hiddenwin' action='<?php echo $this->createLink('tree', 'manageChild', "root={$root->id}&viewType=task");?>'>
<div class="main-col col-8">
<form id='childrenForm' method='post' target='hiddenwin' action='<?php echo $this->createLink('tree', 'manageChild', "root={$root->id}&viewType=task");?>'>
<div class='panel'>
<div class='panel-heading'>
<i class='icon-sitemap'></i>
<?php $manageChild = 'manageTaskChild';?>
<?php echo $lang->tree->$manageChild;?>
<div class='panel-title'><?php echo $lang->tree->manageTaskChild;?></div>
</div>
<div class='panel-body'>
<table class='table table-form'>
<tr>
<td class='parentModule'>
<nobr>
<td class="text-middle text-nowrap text-right with-padding">
<?php
echo html::a($this->createLink('tree', 'browsetask', "root={$root->id}&productID=$productID&viewType=task"), $root->name);
echo $lang->arrow;
echo html::a($this->createLink('tree', 'browsetask', "root={$root->id}&productID=$productID&viewType=task"), $root->name) . "<i class='icon icon-angle-right muted'></i>";
foreach($parentModules as $module)
{
echo html::a($this->createLink('tree', 'browsetask', "root={$root->id}&productID=$productID&moduleID=$module->id"), $module->name);
echo $lang->arrow;
echo html::a($this->createLink('tree', 'browsetask', "root={$root->id}&productID=$productID&moduleID=$module->id"), $module->name) . " <i class='icon icon-angle-right muted'></i>";
}
?>
</nobr>
</td>
<td id='moduleBox'>
<?php
$maxOrder = 0;
if($newModule and !$productID)
{
foreach($products as $product)
{
echo '<span>' . html::input("products[id$product->id]", $product->name, 'class=form-control disabled="true" autocomplete="off"') . '</span>';
}
}
echo '<div id="sonModule">';
foreach($sons as $sonModule)
{
if($sonModule->order > $maxOrder) $maxOrder = $sonModule->order;
$disabled = $sonModule->type == 'task' ? '' : 'disabled';
echo "<div class='row-table' style='margin-bottom:5px;'>";
echo "<div class='col-table'>" . html::input("modules[id$sonModule->id]", $sonModule->name, "class='form-control' autocomplete='off' placeholder='{$lang->tree->name}' " . $disabled) . '</div>';
echo "<div class='col-table' style='width:120px'><div class='input-group'>" . html::input("shorts[id$sonModule->id]", $sonModule->short, "class='form-control' autocomplete='off' placeholder='{$lang->tree->short}' " . $disabled) . html::hidden("order[id$sonModule->id]", $sonModule->order);
echo "<span class='input-group-btn' style='border-left:1px solid'><a href='javascript:;' onclick='insertItem(this)' class='btn btn-block'><i class='icon icon-plus'></i></a></span>";
echo "</div></div>";
echo "</div>";
}
for($i = 0; $i < TREE::NEW_CHILD_COUNT ; $i ++)
{
echo "<div class='row-table addedItem' style='margin-bottom:5px;'>";
echo "<div class='col-table'>" . html::input("modules[]", '', "class='form-control' autocomplete='off' placeholder='{$lang->tree->name}'") . '</div>';
echo "<div class='col-table' style='width:120px'><div class='input-group'>" . html::input("shorts[]", '', "class='form-control' autocomplete='off' placeholder='{$lang->tree->short}'");
echo "<span class='input-group-btn'><a href='javascript:;' onclick='addItem(this)' class='btn btn-block'><i class='icon icon-plus'></i></a></span>";
echo "<span class='input-group-btn'><a href='javascript:;' onclick='deleteItem(this)' class='btn btn-block'><i class='icon icon-remove'></i></a></span>";
echo '</div></div>';
echo html::hidden('branch[]', empty($module) ? 0 : $module->branch) . '</div>';
}
echo "<div id='insertItemBox' class='hidden'>";
echo "<div class='row-table' style='margin-bottom:5px;'>";
echo "<div class='col-table'>" . html::input("modules[]", '', "class='form-control' autocomplete='off' placeholder='{$lang->tree->name}'") . '</div>';
echo "<div class='col-table' style='width:120px'><div class='input-group'>" . html::input("shorts[]", '', "class='form-control' autocomplete='off' placeholder='{$lang->tree->short}'") . html::hidden("order[]");
echo "<span class='input-group-btn' style='border-left:1px solid'><a href='javascript:;' onclick='deleteItem(this)' class='btn btn-block'><i class='icon icon-remove'></i></a></span>";
echo '</div></div>';
echo html::hidden('branch[]', empty($module) ? 0 : $module->branch) . '</div>';
echo '</div>';
echo '</div>';
?>
<td>
<div id='sonModule'>
<?php $maxOrder = 0;?>
<?php if($newModule and !$productID):?>
<?php foreach($products as $product):?>
<div class="table-row row-module">
<div class="table-col col-module"><?php echo html::input("products[id$product->id]", $product->name, 'class=form-control disabled="true" autocomplete="off"')?></div>
</div>
<?php endforeach;?>
<?php endif;?>
<?php foreach($sons as $sonModule):?>
<?php
if($sonModule->order > $maxOrder) $maxOrder = $sonModule->order;
$disabled = $sonModule->type == 'task' ? '' : 'disabled';
?>
<div class='table-row row-module'>
<div class='table-col col-module'><?php echo html::input("modules[id$sonModule->id]", $sonModule->name, "class='form-control' autocomplete='off' placeholder='{$lang->tree->name}' $disabled")?></div>
<div class='table-col col-shorts'>
<?php
echo html::input("shorts[id$sonModule->id]", $sonModule->short, "class='form-control' autocomplete='off' placeholder='{$lang->tree->short}' $disabled");
echo html::hidden("order[id$sonModule->id]", $sonModule->order);
?>
</div>
<div class="table-col col-actions">
<button type="button" class="btn btn-link btn-icon btn-add" onclick="addItem(this)"><i class="icon icon-plus"></i></button>
</div>
</div>
<?php endforeach;?>
<?php for($i = 0; $i < TREE::NEW_CHILD_COUNT ; $i ++):?>
<div class="table-row row-module row-module-new">
<div class='table-col col-module'><?php echo html::input("modules[]", '', "class='form-control' autocomplete='off' placeholder='{$lang->tree->name}'")?></div>
<div class='table-col col-shorts'><?php echo html::input("shorts[]", '', "class='form-control' autocomplete='off' placeholder='{$lang->tree->short}'")?></div>
<div class="table-col col-actions">
<button type="button" class="btn btn-link btn-icon btn-add" onclick="addItem(this)"><i class="icon icon-plus"></i></button>
<button type="button" class="btn btn-link btn-icon btn-delete" onclick="deleteItem(this)"><i class="icon icon-trash"></i></button>
</div>
<?php echo html::hidden('branch[]', empty($module) ? 0 : $module->branch);?>
</div>
<?php endfor;?>
</div>
<div id="insertItemBox" class="template">
<div class="table-row row-module row-module-new">
<div class="table-col col-module"><?php echo html::input("modules[]", '', "class='form-control' autocomplete='off' placeholder='{$lang->tree->name}'");?></div>
<div class="table-col col-shorts"><?php echo html::input("shorts[]", '', "class='form-control' autocomplete='off' placeholder='{$lang->tree->short}'");?></div>
<div class="table-col col-actions">
<button type="button" class="btn btn-link btn-icon btn-add" onclick="addItem(this)"><i class="icon icon-plus"></i></button>
<button type="button" class="btn btn-link btn-icon btn-delete" onclick="deleteItem(this)"><i class="icon icon-trash"></i></button>
</div>
<?php echo html::hidden('branch[]', empty($module) ? 0 : (int)$module->branch);?>
</div>
</div>
</td>
</tr>
<tr>
<td></td>
<td colspan='2'>
<?php
echo html::submitButton();
echo html::submitButton('', '', 'btn btn-primary btn-wide');
echo $this->session->taskList ? html::linkButton($this->lang->goback, $this->session->taskList) : html::backButton();
echo html::hidden('parentModuleID', $currentModuleID);
echo html::hidden('maxOrder', $maxOrder);
@@ -111,11 +122,6 @@
</form>
</div>
</div>
<style>
.story-item > .tree-actions > .tree-action[data-type='sort'],
.story-item > .tree-actions > .tree-action[data-type='edit'],
.story-item > .tree-actions > .tree-action[data-type='delete'] {display: none!important}
</style>
<script>
$(function()
{
+1 -1
View File
@@ -18,7 +18,7 @@
<h2><?php echo $lang->user->batchCreate;?></h2>
<div class="pull-right btn-toolbar">
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=user&section=custom&key=batchCreateFields')?>
<?php include '../../common/view/dropdowncustomfield.html.php';?>
<?php include '../../common/view/customfield.html.php';?>
</div>
</div>
<?php
+1 -1
View File
@@ -17,7 +17,7 @@
<h2><?php echo $lang->user->batchEdit;?></h2>
<div class="pull-right btn-toolbar">
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=user&section=custom&key=batchEditFields')?>
<?php include '../../common/view/dropdowncustomfield.html.php';?>
<?php include '../../common/view/customfield.html.php';?>
</div>
</div>
<?php