📄 rowslotparser.php
字号:
<?php
if(empty($GLOBALS['sugarEntry'])) die('Not A Valid Entry Point');
/*********************************************************************************
* The contents of this file are subject to the SugarCRM Public License Version
* 1.1.3 ("License"); You may not use this file except in compliance with the
* License. You may obtain a copy of the License at http://www.sugarcrm.com/SPL
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* All copies of the Covered Code must include on each user interface screen:
* (i) the "Powered by SugarCRM" logo and
* (ii) the SugarCRM copyright notice
* in the same form as they appear in the distribution. See full license for
* requirements.
*
* The Original Code is: SugarCRM Open Source
* The Initial Developer of the Original Code is SugarCRM, Inc.
* Portions created by SugarCRM are Copyright (C) 2004-2006 SugarCRM, Inc.;
* All Rights Reserved.
* Contributor(s): ______________________________________.
********************************************************************************/
class RowSlotParser extends SlotParser{
function RowSlotParser(){
global $image_path;
$this->font_slot = "<img src='$image_path" . "slot.gif' alt='Slot' border='0'>";
}
function get_edit_view(){
global $image_path;
$view = $this->contents;
$counter = 0;
foreach($this->slots as $slot){
$explode = explode($slot[0], $view, 2);
if($this->slot_count($slot[0]) > 0 && $this->row_count($slot[2]. '</tr>') == 0){
$view = $explode[0] . $slot[1]. "<td class='tabDetailViewDF' nowrap><a href='#' onclick='add_row_to_view($counter)' >".get_image($image_path."plus_inline","border='0' alt='Add Row'")."</a> <a href='#' onclick='delete_row_from_view($counter)' >".get_image($image_path."minus_inline","border='0' alt='Remove row'")."</a></td>". $slot[2]. $slot[3]. $explode[1];
}else{
$view = $explode[0].$slot[0] . $explode[1];
}
$counter++;
}
return $view;
}
function get_edit_row_script(){
return <<<EOQ
<form name='add_row_form'>
<input type="hidden" name="action" value="index">
<input type="hidden" name="module" value="DynamicLayout">
<input type='hidden' id='add_row_MSI' name='add_row_MSI' value='-1'>
<input type='hidden' id='edit_row_MSI' name='edit_row_MSI' value='1'>
<input type='hidden' id='delete_row_MSI' name='delete_row_MSI' value='-1'>
</form>
<script>
function delete_row_from_view(i){
document.getElementById('delete_row_MSI').value = i;
document.add_row_form.submit();
}
function add_row_to_view(i){
document.getElementById('add_row_MSI').value = i;
document.add_row_form.submit();
}
</script>
EOQ;
}
function add_row($file){
if(substr_count($file, 'EditView') > 0 || substr_count($file, 'DetailView') > 0 || substr_count($file, 'SearchForm') > 0){
$this->parse_file($file,'rows');
$fp = fopen($file, 'w');
fwrite($fp, $this->handle_add_row());
fclose($fp);
return $file;
}
}
function handle_add_row(){
$logger = new SlotLogger();
$logger->open($this->file);
require_once('modules/DynamicLayout/LayoutTemplate.php');
$layoutTemplate = new LayoutTemplate();
$view = $this->contents;
$counter = 0;
$return_view = '';
$add_row = -1;
$delete_row = -1;
if(!empty($_REQUEST['add_row_MSI'])){
$add_row = $_REQUEST['add_row_MSI'];
$logger->add_row($add_row);
}
if(!empty($_REQUEST['delete_row_MSI'])){
$delete_row = $_REQUEST['delete_row_MSI'];
$logger->del_row($delete_row);
}
$logger->close();
for($i = 0; $i < sizeof($this->slots); $i++){
$slot = $this->slots[$i];
$explode = explode($slot[0], $view, 2);
if($delete_row != $i){
$return_view .= $explode[0] . $slot[0];
if($add_row == $i){
if(substr_count($this->file, 'EditView') > 0 || substr_count($this->file, 'SearchForm') > 0){
$return_view .= $layoutTemplate->get_edit_source_row();
}
if(substr_count($this->file, 'DetailView') > 0){
$return_view .= $layoutTemplate->get_detail_source_row();
}
}
}else{
$return_view .= $explode[0];
}
$view = $explode[1];
$counter++;
}
if(empty($return_view)){
return $this->contents;
}
return $return_view. $view;
}
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -