示例#1
0
function wikiplugin_sheet($data, $params)
{
    global $dbTiki, $tiki_p_edit_sheet, $tiki_p_edit, $tiki_p_admin_sheet, $tiki_p_admin, $prefs, $user, $sheetlib, $page, $tikilib, $smarty;
    extract($params, EXTR_SKIP);
    $style = isset($height) ? "height: {$height} !important;" : '';
    $style .= isset($width) ? "width: {$width};" : '';
    //	$urlHeight = (isset($height)) ? "&height=$height" : '';
    //	$urlHeight .= (isset($width)) ? "&width=$width" : '';
    $urlHeight = isset($height) ? "&height=100" : '';
    // not setting any height or width in the sheet params created for me the literal '...&height=100%&...' or '...&width=100%&...' in the url with a 400 error (bad request). Hardcoding to 100 (instead of 100%) to avoid this error until a better fix is found
    $urlHeight .= isset($width) ? "&width=100" : '';
    // not setting any height or width in the sheet params created for me the literal '...&height=100%&...' or '...&width=100%&...' in the url with a 400 error (bad request). Hardcoding to 100 (instead of 100%) to avoid this error until a better fix is found
    $editable = isset($editable) && $editable == 'n' ? false : true;
    $subsheets = isset($subsheets) && $subsheets == 'n' ? false : true;
    $class = isset($class) ? " {$class}" : '';
    $sheetlib = TikiLib::lib("sheet");
    static $index = 0;
    ++$index;
    if (empty($id) && empty($url)) {
        if ($tiki_p_edit_sheet != 'y' || $tiki_p_edit != 'y') {
            return "<b>missing id parameter for plugin</b><br />";
        } else {
            if (isset($_POST['create_sheet'], $_POST['index']) && $index == $_POST['index']) {
                // Create a new sheet and rewrite page
                $sheetId = $sheetlib->replace_sheet(null, tra('New sheet in page: ') . $page, '', $user);
                $page = htmlentities($page);
                $content = htmlentities($data);
                $formId = "form{$index}";
                return <<<EOF
\t\t\t\t~np~
\t\t\t\t<form id="{$formId}" method="post" action="tiki-wikiplugin_edit.php">
\t\t\t\t<div>
\t\t\t\t\t<input type="hidden" name="page" value="{$page}"/>
\t\t\t\t\t<input type="hidden" name="content" value="{$data}"/>
\t\t\t\t\t<input type="hidden" name="index" value="{$index}"/>
\t\t\t\t\t<input type="hidden" name="type" value="sheet"/>
\t\t\t\t\t<input type="hidden" name="params[id]" value="{$sheetId}"/>
\t\t\t\t</div>
\t\t\t\t</form>
\t\t\t\t<script type="text/javascript">
\t\t\t\tdocument.getElementById('{$formId}').submit();
\t\t\t\t</script>
\t\t\t\t~/np~
EOF;
            } else {
                $label = tra('Create New Sheet');
                return <<<EOF
~np~
<form method="post" action="">
\t<p>
\t\t<input type="submit" name="create_sheet" value="{$label}"/>
\t\t<input type="hidden" name="index" value="{$index}"/>
\t</p>
</form>
~/np~
EOF;
            }
        }
    }
    $sheet = new TikiSheet();
    if (empty($url)) {
        $info;
        if (!empty($id)) {
            $info = $sheetlib->get_sheet_info($id);
        }
        if (empty($info)) {
            return tra("Error loading spreadsheet");
        }
        $objectperms = Perms::get('sheet', $id);
        if (!$objectperms->view_sheet && !($user && $info['author'] == $user)) {
            return tra('Permission denied');
        }
        // Build required objects
        $db = new TikiSheetDatabaseHandler($id);
        //$out = new TikiSheetOutputHandler($data);
        // Fetch sheet from database
        $sheet->import($db);
    } else {
        if (!isset($simple)) {
            $simple = 'y';
        }
    }
    $calcOff = '';
    if (!empty($range)) {
        $sheet->setRange($range);
        $calcOff = ',calcOff: true';
    }
    // Grab sheet output
    if (isset($url)) {
        $file = file_get_contents($url);
        $pathInfo = pathinfo($url);
        if ($pathInfo['extension'] == 'csv') {
            $handler = new TikiSheetCSVHandler($url);
            $grid = new TikiSheet();
            $grid->import($handler);
            $ret = $grid->getTableHtml(true, null, false);
        } else {
            $ret = file_get_contents($url);
        }
    } else {
        $ret = $sheet->getTableHtml($subsheets);
    }
    if (strpos($ret, '<table ') === false) {
        return '~np~' . $ret . '~/np~';
        // return a single cell raw
    }
    if (!isset($simple) || $simple != 'y') {
        global $headerlib;
        $sheetlib->setup_jquery_sheet();
        $headerlib->add_jq_onready('$("div.tiki_sheet").each(function() {
				$(this).sheet($.extend($.sheet.tikiOptions,{
				editable:false' . $calcOff . '}));
			});');
    }
    $ret = '<div id="tiki_sheet' . $sheet->instance . '" class="tiki_sheet' . $class . '" style="overflow:hidden;' . $style . '">' . $ret . '</div>';
    if ($editable && ($objectperms->edit_sheet || $objectperms->admin_sheet || $tiki_p_admin == 'y')) {
        $smarty->loadPlugin('smarty_function_button');
        //If you've given the sheet a url, you can't edit it, disable if not possible
        if (!isset($url)) {
            $button_params = array('_text' => tra("Edit Sheet"), '_script' => "tiki-view_sheets.php?sheetId={$id}&parse=edit{$urlHeight}&page={$page}");
        }
        $ret .= smarty_function_button($button_params, $smarty);
    }
    return '~np~' . $ret . '~/np~';
}
示例#2
0
         $series[] = 'y1';
         $series[] = 'y2';
         $series[] = 'y3';
         $series[] = 'y4';
     } else {
         $series[] = $s;
     }
 }
 $smarty->assign('mode', 'param');
 $smarty->assign('series', $series);
 $smarty->assign('graph', $graph);
 $smarty->assign('renderer', $_GET['renderer']);
 $handler = new TikiSheetDatabaseHandler($sheetId);
 $grid = new TikiSheet($_REQUEST['sheetId']);
 $grid->import($handler);
 $dataGrid = $grid->getTableHtml(true);
 require_once 'lib/sheet/grid.php';
 $sheetlib->setup_jquery_sheet();
 $headerlib->add_jq_onready('$("div.tiki_sheet").sheet($.extend($.sheet.tikiOptions, {editable: false}));');
 $smarty->assign('dataGrid', $dataGrid);
 if (function_exists('pdf_new')) {
     $smarty->assign('format', $_GET['format']);
     $smarty->assign('orientation', $_GET['orientation']);
 }
 if (function_exists('imagepng')) {
     $smarty->assign('im_width', $_GET['width']);
     $smarty->assign('im_height', $_GET['height']);
 }
 if (is_a($g, 'GridBasedGraphic')) {
     $smarty->assign('showgridparam', true);
 }
示例#3
0
文件: grid.php 项目: linuxwhy/tiki-1
 /**
  * @param $incsubs boolean Include sub-sheets
  * @param $date
  * @return String
  */
 function getTableHtml($incsubs = true, $date = null)
 {
     global $prefs;
     $sheetlib = TikiLib::lib('sheet');
     $filegallib = TikiLib::lib("filegal");
     $handler = new TikiSheetOutputHandler(null, $this->parseValues == 'y' && $_REQUEST['parse'] != 'n');
     $this->export($handler);
     $data = $handler->output;
     if ($incsubs == true) {
         //get sheets from db first
         foreach ($sheetlib->get_related_sheet_ids($this->id) as $childSheetId) {
             $handler = new TikiSheetDatabaseHandler($childSheetId, $date);
             $childSheet = new TikiSheet();
             $childSheet->import($handler);
             $data .= $childSheet->getTableHtml(false);
         }
     }
     foreach ($sheetlib->get_related_file_ids($this->id) as $childFileId) {
         $fileInfo = $filegallib->get_file_info($childFileId);
         switch ($fileInfo['filetype']) {
             case 'text/csv':
                 $handler = new TikiSheetCSVHandler($fileInfo);
                 break;
             default:
                 $handler = false;
         }
         if (!empty($handler)) {
             $childSheet = new TikiSheet();
             $childSheet->import($handler);
             $data .= $childSheet->getTableHtml();
         }
     }
     foreach ($sheetlib->get_related_tracker_ids($this->id) as $childTrackerId) {
         $handler = new TikiSheetTrackerHandler($childTrackerId);
         $childSheet = new TikiSheet();
         $childSheet->import($handler);
         $data .= $childSheet->getTableHtml();
     }
     return $data;
 }
示例#4
0
 function outputSheet($name = "")
 {
     $sheetlib = TikiLib::lib("sheet");
     if (empty($name)) {
         $name = $this->type;
     }
     $handler = new TikiSheetSimpleArrayHandler(array("values" => $this->outputArray(), "name" => $name));
     $grid = new TikiSheet();
     $grid->import($handler);
     return $grid->getTableHtml();
 }
示例#5
0
    $handler = new TikiSheetDatabaseHandler($_REQUEST['sheetId']);
    //We make sheet able to look at other date save
    if (isset($_REQUEST['readdate']) && !empty($_REQUEST['readdate'])) {
        $smarty->assign('read_date', $_REQUEST['readdate']);
        $handler->setReadDate($_REQUEST['readdate']);
    }
    $grid = new TikiSheet();
    $grid->import($handler);
    //ensure that sheet isn't being edited, then parse values if needed
    if ($_REQUEST['parse'] != 'edit') {
        $grid->parseValues = true;
    } else {
        $grid->parseValues = false;
    }
    $smarty->assign('parseValues', $grid->parseValues);
    $tableHtml[0] = $grid->getTableHtml(true, $_REQUEST['readdate']);
    if (strlen($relatedTrackersAsHtml) > 0) {
        $tableHtml[0] = $tableHtml[0] . $relatedTrackersAsHtml;
    }
}
if (isset($_REQUEST['sheetonly']) && $_REQUEST['sheetonly'] == 'y') {
    foreach ($tableHtml as $table) {
        echo $table;
    }
    die;
}
$smarty->assign('grid_content', $tableHtml);
$smarty->assign('menu', $smarty->fetch('tiki-view_sheets_menu.tpl'));
$sheetlib->setup_jquery_sheet();
if (!empty($_REQUEST['parse']) && $_REQUEST['parse'] == 'edit') {
    $headerlib->add_jq_onready('$.sheet.tikiOptions.editable = true;');
示例#6
0
    $handler = new TikiSheetDatabaseHandler($_REQUEST['sheetId']);
    //We make sheet able to look at other date save
    if (isset($_REQUEST['readdate']) && !empty($_REQUEST['readdate'])) {
        $smarty->assign('read_date', $_REQUEST['readdate']);
        $handler->setReadDate($_REQUEST['readdate']);
    }
    $grid = new TikiSheet();
    $grid->import($handler);
    //ensure that sheet isn't being edited, then parse values if needed
    if ($_REQUEST['parse'] != 'edit') {
        $grid->parseValues = true;
    } else {
        $grid->parseValues = false;
    }
    $smarty->assign('parseValues', $grid->parseValues);
    $tableHtml[0] = $grid->getTableHtml(true, isset($_REQUEST['readdate']) ? $_REQUEST['readdate'] : null);
    if (!empty($relatedTrackersAsHtml)) {
        $tableHtml[0] .= $relatedTrackersAsHtml;
    }
}
if (isset($_REQUEST['sheetonly']) && $_REQUEST['sheetonly'] == 'y') {
    foreach ($tableHtml as $table) {
        echo $table;
    }
    die;
}
$smarty->assign('grid_content', $tableHtml);
$smarty->assign('menu', $smarty->fetch('tiki-view_sheets_menu.tpl'));
$sheetlib->setup_jquery_sheet();
if (!empty($_REQUEST['parse']) && $_REQUEST['parse'] == 'edit') {
    $headerlib->add_jq_onready('$.sheet.tikiOptions.editable = true;');