original_string: protected function defineListColumns()
      {
          if (!isset($this->columns) || !is_array($this->columns) || !count($this->columns)) {
              $class = get_class($this->model instanceof Model ? $this->model : $this->controller);
              throw new ApplicationException(Lang::get('backend::lang.list.missing_columns', compact('class')));
          }
  
          $this->addColumns($this->columns);
  
          /**
           * @event backend.list.extendColumns
           * Provides an opportunity to modify the columns of a List widget
           *
           * Example usage:
           *
           *     Event::listen('backend.list.extendColumns', function($listWidget) {
           *         // Only for the User controller
           *         if (!$listWidget->getController() instanceof \Backend\Controllers\Users) {
           *             return;
           *         }
           *
           *         // Only for the User model
           *         if (!$listWidget->model instanceof \Backend\Models\User) {
           *             return;
           *         }
           *
           *         // Add an extra birthday column
           *         $listWidget->addColumns([
           *             'birthday' => [
           *                 'label' => 'Birthday'
           *             ]
           *         ]);
           *
           *         // Remove a Surname column
           *         $listWidget->removeColumn('surname');
           *     });
           *
           * Or
           *
           *     $listWidget->bindEvent('list.extendColumns', function () use ($listWidget) {
           *         // Only for the User controller
           *         if (!$listWidget->getController() instanceof \Backend\Controllers\Users) {
           *             return;
           *         }
           *
           *         // Only for the User model
           *         if (!$listWidget->model instanceof \Backend\Models\User) {
           *             return;
           *         }
           *
           *         // Add an extra birthday column
           *         $listWidget->addColumns([
           *             'birthday' => [
           *                 'label' => 'Birthday'
           *             ]
           *         ]);
           *
           *         // Remove a Surname column
           *         $listWidget->removeColumn('surname');
           *     });
           *
           */
          $this->fireSystemEvent('backend.list.extendColumns');
  
          /*
           * Use a supplied column order
           */
          if ($columnOrder = $this->getSession('order', null)) {
              $orderedDefinitions = [];
              foreach ($columnOrder as $column) {
                  if (isset($this->allColumns[$column])) {
                      $orderedDefinitions[$column] = $this->allColumns[$column];
                  }
              }
  
              $this->allColumns = array_merge($orderedDefinitions, $this->allColumns);
          }
  
          return $this->allColumns;
      }
code: protected function defineListColumns()
      {
          if (!isset($this->columns) || !is_array($this->columns) || !count($this->columns)) {
              $class = get_class($this->model instanceof Model ? $this->model : $this->controller);
              throw new ApplicationException(Lang::get('backend::lang.list.missing_columns', compact('class')));
          }
  
          $this->addColumns($this->columns);
  
          /**
           * @event backend.list.extendColumns
           * Provides an opportunity to modify the columns of a List widget
           *
           * Example usage:
           *
           *     Event::listen('backend.list.extendColumns', function($listWidget) {
           *         // Only for the User controller
           *         if (!$listWidget->getController() instanceof \Backend\Controllers\Users) {
           *             return;
           *         }
           *
           *         // Only for the User model
           *         if (!$listWidget->model instanceof \Backend\Models\User) {
           *             return;
           *         }
           *
           *         // Add an extra birthday column
           *         $listWidget->addColumns([
           *             'birthday' => [
           *                 'label' => 'Birthday'
           *             ]
           *         ]);
           *
           *         // Remove a Surname column
           *         $listWidget->removeColumn('surname');
           *     });
           *
           * Or
           *
           *     $listWidget->bindEvent('list.extendColumns', function () use ($listWidget) {
           *         // Only for the User controller
           *         if (!$listWidget->getController() instanceof \Backend\Controllers\Users) {
           *             return;
           *         }
           *
           *         // Only for the User model
           *         if (!$listWidget->model instanceof \Backend\Models\User) {
           *             return;
           *         }
           *
           *         // Add an extra birthday column
           *         $listWidget->addColumns([
           *             'birthday' => [
           *                 'label' => 'Birthday'
           *             ]
           *         ]);
           *
           *         // Remove a Surname column
           *         $listWidget->removeColumn('surname');
           *     });
           *
           */
          $this->fireSystemEvent('backend.list.extendColumns');
  
          /*
           * Use a supplied column order
           */
          if ($columnOrder = $this->getSession('order', null)) {
              $orderedDefinitions = [];
              foreach ($columnOrder as $column) {
                  if (isset($this->allColumns[$column])) {
                      $orderedDefinitions[$column] = $this->allColumns[$column];
                  }
              }
  
              $this->allColumns = array_merge($orderedDefinitions, $this->allColumns);
          }
  
          return $this->allColumns;
      }
code_tokens: protected function defineListColumns ( ) { if ( ! isset ( $ this -> columns ) || ! is_array ( $ this -> columns ) || ! count ( $ this -> columns ) ) { $ class = get_class ( $ this -> model instanceof Model ? $ this -> model : $ this -> controller ) ; throw new ApplicationException ( Lang :: get ( 'backend::lang.list.missing_columns' , compact ( 'class' ) ) ) ; } $ this -> addColumns ( $ this -> columns ) ; /**
           * @event backend.list.extendColumns
           * Provides an opportunity to modify the columns of a List widget
           *
           * Example usage:
           *
           *     Event::listen('backend.list.extendColumns', function($listWidget) {
           *         // Only for the User controller
           *         if (!$listWidget->getController() instanceof \Backend\Controllers\Users) {
           *             return;
           *         }
           *
           *         // Only for the User model
           *         if (!$listWidget->model instanceof \Backend\Models\User) {
           *             return;
           *         }
           *
           *         // Add an extra birthday column
           *         $listWidget->addColumns([
           *             'birthday' => [
           *                 'label' => 'Birthday'
           *             ]
           *         ]);
           *
           *         // Remove a Surname column
           *         $listWidget->removeColumn('surname');
           *     });
           *
           * Or
           *
           *     $listWidget->bindEvent('list.extendColumns', function () use ($listWidget) {
           *         // Only for the User controller
           *         if (!$listWidget->getController() instanceof \Backend\Controllers\Users) {
           *             return;
           *         }
           *
           *         // Only for the User model
           *         if (!$listWidget->model instanceof \Backend\Models\User) {
           *             return;
           *         }
           *
           *         // Add an extra birthday column
           *         $listWidget->addColumns([
           *             'birthday' => [
           *                 'label' => 'Birthday'
           *             ]
           *         ]);
           *
           *         // Remove a Surname column
           *         $listWidget->removeColumn('surname');
           *     });
           *
           */ $ this -> fireSystemEvent ( 'backend.list.extendColumns' ) ; /*
           * Use a supplied column order
           */ if ( $ columnOrder = $ this -> getSession ( 'order' , null ) ) { $ orderedDefinitions = [ ] ; foreach ( $ columnOrder as $ column ) { if ( isset ( $ this -> allColumns [ $ column ] ) ) { $ orderedDefinitions [ $ column ] = $ this -> allColumns [ $ column ] ; } } $ this -> allColumns = array_merge ( $ orderedDefinitions , $ this -> allColumns ) ; } return $ this -> allColumns ; }
docstring: Builds an array of list columns with keys as the column name and values as a ListColumn object.
docstring_tokens: Builds an array of list columns with keys as the column name and values as a ListColumn object .