📄 colslotparser.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 ColSlotParser extends SlotParser{
function ColSlotParser(){
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;
$return_view = '';
foreach($this->slots as $slot){
$explode = explode($slot[0], $view, 2);
$view = $explode[1];
if($this->slot_count($slot[0]) > 0 ){
$this->cols[] = $counter;
if($counter < sizeof($this->slots) / 2){
$return_view .= $explode[0] . $slot[0]. "<td nowrap bgcolor='#333333' rowspan='2'><a href='#' onclick='add_col_to_view($counter)' >". get_image($image_path."plus_inline","border='0' alt='Add Column ->'")."</a><br><br><a href='#' onclick='delete_col_from_view($counter)' >".get_image($image_path."minus_inline","border='0' alt='<- Delete Column '")."</a></td>";
}else{
$return_view .= $explode[0] . $slot[0]. "";
}
}else{
$return_view .= $explode[0].$slot[0] ;
}
$counter++;
}
return $return_view. $view;
}
function add_col($file){
if(substr_count($file, 'ListView') > 0 ){
$this->parse_file($file,'cols');
$fp = fopen($file, 'w');
fwrite($fp, $this->handle_add_col());
fclose($fp);
return $file;
}
}
function handle_add_col(){
$logger = new SlotLogger();
$logger->open($this->file);
$this->get_edit_view();
require_once('modules/DynamicLayout/LayoutTemplate.php');
$layoutTemplate = new LayoutTemplate();
$view = $this->contents;
$counter = 0;
$return_view = '';
$add_col = -1;
$delete_col = -1;
if(!empty($_REQUEST['add_col_MSI'])){
$add_col = $_REQUEST['add_col_MSI'];
$logger->add_col($add_col);
}
if(!empty($_REQUEST['delete_col_MSI'])){
$delete_col = $_REQUEST['delete_col_MSI'];
$logger->del_col($delete_col);
}
$logger->close();
for($i = 0; $i < sizeof($this->slots); $i++){
$slot = $this->slots[$i];
$explode = explode($slot[0], $view, 2);
$view = $explode[1];
if($delete_col != $i){
$return_view .= $explode[0] . $slot[0];
if($add_col == $i){
if(substr_count($this->file, 'ListView') > 0){
if($i < sizeof($this->slots) / 2){
$return_view .= $layoutTemplate->get_list_view_header();
$offset = $this->get_key_for_col($i);
$add_col = $this->cols[$offset + floor(sizeof($this->cols)/2)];
}else{
$return_view .= $layoutTemplate->get_list_view_column();
}
}
}
}else{
if($i < sizeof($this->slots) / 2){
$offset = $this->get_key_for_col($i);
$delete_col = $this->cols[$offset + floor(sizeof($this->cols)/2)];
}
}
$counter++;
}
if(empty($return_view)){
return $this->contents;
}
return $return_view. $view;
}
function get_key_for_col($val){
foreach($this->cols as $k=>$v){
if($v == $val){
return $k;
}
}
}
function get_edit_col_view(){
global $image_path;
$view = $this->contents;
$counter = 0;
foreach($this->slots as $slot){
$explode = explode($slot[0], $view, 2);
if(substr_count($slot[0], '<slot') > 0){
$view = $explode[0] . $slot[1]. "<td nowrap><a href='#' onclick='add_row_to_view($counter)' ><img src='$image_path/edit_inline' style='border:1px solid #ff0000'></a> <a href='#' onclick='delete_row_from_view($counter)' ><img src='$image_path/delete_inline' style='border:1px solid #ff0000'></a></td>". $slot[2]. $slot[3]. $explode[1];
}else{
$view = $explode[0].$slot[0] . $explode[1];
}
$counter++;
}
return $view;
}
function get_edit_col_script(){
return <<<EOQ
<form name='add_col_form'>
<input type="hidden" name="action" value="index">
<input type="hidden" name="module" value="DynamicLayout">
<input type='hidden' id='add_col_MSI' name='add_col_MSI' value='-1'>
<input type='hidden' id='edit_col_MSI' name='edit_col_MSI' value='1'>
<input type='hidden' id='delete_col_MSI' name='delete_col_MSI' value='-1'>
</form>
<script>
function delete_col_from_view(i){
document.getElementById('delete_col_MSI').value = i;
document.add_col_form.submit();
}
function add_col_to_view(i){
document.getElementById('add_col_MSI').value = i;
document.add_col_form.submit();
}
</script>
EOQ;
}
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -