Esempio n. 1
0
 /**
  *
  * @param ZendT_Grid $grid
  * @return string 
  */
 public function gridTree(ZendT_Grid $grid)
 {
     $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TGridTree.js?date=180113');
     $firstColumn = '';
     /**
      * Linha de Título 
      */
     $rowTitle = '<tr>';
     $numCols = 0;
     foreach ($grid->getColModel()->getColumns() as $column) {
         $style = '';
         if ($column->getHidden()) {
             $style = 'display:none;';
         } elseif ($firstColumn == '') {
             $firstColumn = $column->getName();
             $numCols++;
         } else {
             $numCols++;
         }
         $style .= 'text-align:' . $column->getAlign() . ';';
         $class = 't-ui-border-trb';
         if ($firstColumn == $column->getName()) {
             $class = 't-ui-border-trbl';
         }
         $rowTitle .= '<th class="ui-state-default ' . $class . '" style="' . $style . '">';
         $rowTitle .= $column->getHeaderTitle();
         $rowTitle .= '</th>';
     }
     $rowTitle .= '</tr>';
     /**
      * Linhas do Detalhe 
      */
     $rows = '';
     $stylesRow = $grid->getStyles();
     foreach ($grid->getRows() as $index => $row) {
         $class = '';
         $style = '';
         if ($grid->getTreeGrid() == 'true') {
             if (trim($row['tree_parent']) != '') {
                 $class .= 'parent-' . $this->_normalizeId($row['tree_parent']);
                 $style .= 'display:none';
             }
         }
         $rowId = $this->_normalizeId($row['id']);
         $rows .= '<tr id="' . $rowId . '" class="' . $class . '" style="' . $style . '">';
         foreach ($grid->getColModel()->getColumns() as $column) {
             $options = $column->getOptions();
             $key = $column->getName();
             if (in_array($key, array('tree_child', 'tree_level'))) {
                 continue;
             }
             $style = '';
             $attr = '';
             if ($key == $firstColumn) {
                 $attr = 'level="' . $row['tree_level'] . '" child="' . $row['tree_child'] . '" ';
             }
             if ($column->getHidden()) {
                 $style = 'display:none;';
             }
             $style .= 'text-align:' . $column->getAlign() . ';';
             $style .= 'min-width:' . $column->getWidth() . 'px;';
             if (isset($stylesRow[$index][$key])) {
                 foreach ($stylesRow[$index][$key] as $styleName => $styleValue) {
                     $style .= $styleName . ':' . $styleValue . ';';
                 }
             }
             $class = 't-ui-border-rb';
             if ($firstColumn == $column->getName()) {
                 $class = 't-ui-border-rbl';
             }
             $rows .= '<td ' . $attr . 'class="ui-widget-content ' . $key . ' ' . $class . '" style="' . $style . '">';
             $rows .= $row[$key];
             $rows .= '</td>';
         }
         $rows .= '</tr>';
     }
     /**
      * Botões de Navegação
      */
     $buttonsToolbar = $grid->getObjToolbar()->getButtons();
     if ($buttonsToolbar) {
         $toolbar = '';
         foreach ($buttonsToolbar as $button) {
             if ($button) {
                 foreach ($button as $oneButton) {
                     $toolbar .= $oneButton->renderHtml();
                 }
             }
         }
         $toolbar = '<tr> <th colspan="' . $numCols . '" class="ui-state-default" style="border-bottom:0px;text-align:left;"> ' . $toolbar . ' </th> </tr>';
     }
     /**
      * Parâmetros do jQuery para criar a árvore 
      */
     $params = array('columns' => array('group' => $firstColumn, 'parent' => 'tree_parent', 'level' => 'tree_level'));
     $params = ZendT_JS_Json::encode($params);
     $this->jquery->addOnLoad('jQuery("#' . $grid->getID() . '").TGridTree(' . $params . ');');
     return '<table width="100%" class="ui-jqgrid-htable" cellspacing="0" cellpadding="3" border="0" id="' . $grid->getID() . '">
             ' . $toolbar . '
             ' . $rowTitle . '
             ' . $rows . '
         </table>';
 }
Esempio n. 2
0
 public static function arrayToUrl($array, $prefix = '')
 {
     $url = '';
     foreach ($array as $key => $value) {
         $url .= '&';
         if (is_array($value)) {
             if ($prefix) {
                 $url .= ZendT_Grid::arrayToUrl($value, $prefix . '[' . $key . ']');
             } else {
                 $url .= ZendT_Grid::arrayToUrl($value, $key);
             }
         } else {
             if ($prefix) {
                 $url .= $prefix . '[' . $key . ']=' . urlencode($value);
             } else {
                 $url .= $key . '=' . urlencode($value);
             }
         }
     }
     return substr($url, 1);
 }