VirtualPage::addColumn PHP Method

addColumn() public method

Call this if you are adding this inside a grid.
public addColumn ( string $name, string $title = null, array | string $buttontext = null, Grid $grid = null )
$name string Field Name (must not contain spaces)
$title string Header for the column
$buttontext array | string Text to put on the button
$grid Grid Specify grid to use, other than $owner
    public function addColumn($name, $title = null, $buttontext = null, $grid = null)
    {
        if ($grid === null) {
            $grid = $this->owner;
        }
        /** @type Grid $this->owner */
        /** @type Grid $grid */
        if (!is_array($buttontext)) {
            $buttontext = array();
        }
        if (!$buttontext['descr']) {
            $buttontext['descr'] = $title ?: ucwords(str_replace('_', ' ', $name));
        }
        $icon = '';
        if ($buttontext['icon']) {
            if ($buttontext['icon'][0] != '<') {
                $icon .= '<i class="icon-' . $buttontext['icon'] . '"></i>';
            } else {
                $icon .= $buttontext['icon'];
            }
            $icon .= '&nbsp;';
        }
        $grid->addColumn('template', $name, $buttontext ?: $title);
        $grid->setTemplate('<button type="button" class="atk-button-small pb_' . $name . '">' . $icon . $this->app->encodeHtmlChars($buttontext['descr']) . '</button>');
        $grid->columns[$name]['thparam'] .= ' style="width: 40px; text-align: center"';
        //$grid->js(true)->_selector('#'.$grid->name.' .pb_'.$name)->button();
        $t = $this->type;
        $grid->js('click')->_selector('#' . $grid->name . ' .pb_' . $name)->univ()->{$t}($title, array($this->getURL($name), $this->name . '_id' => $grid->js()->_selectorThis()->closest('tr')->attr('data-id')), $this->frame_options);
        return $this;
    }

Usage Example

Example #1
0
File: CRUD.php Project: atk4/atk4
 /**
  * Configures necessary components when CRUD is in the editing mode.
  *
  * @param array $fields List of fields for add form
  *
  * @return void|Model If model, then bail out, no greed needed
  */
 protected function configureEdit($fields = null)
 {
     // We are actually in the frame!
     if ($this->isEditing('edit')) {
         $m = $this->form->setModel($this->model, $fields);
         $m->load($this->id);
         $this->form->addSubmit();
         $this->form->onSubmit(array($this, 'formSubmit'));
         return $m;
     } elseif ($this->isEditing()) {
         return;
     }
     $this->virtual_page->addColumn('edit', 'Editing ' . $this->entity_name, array('descr' => 'Edit', 'icon' => 'pencil'), $this->grid);
 }