コード例 #1
0
 /**
  * Устанавливает настройки интерфейса для текущего поля
  *
  * @see AdminBaseHelper::getInterfaceSettings();
  * @see AdminBaseHelper::setFields();
  *
  * @param string $code
  *
  * @return bool
  */
 public function loadSettings($code = null)
 {
     $interface = $this->helper->getInterfaceSettings();
     $code = is_null($code) ? $this->code : $code;
     if (!isset($interface['FIELDS'][$code])) {
         return false;
     }
     unset($interface['FIELDS'][$code]['WIDGET']);
     $this->settings = array_merge($this->settings, $interface['FIELDS'][$code]);
     $this->setDefaultValue();
     return true;
 }
コード例 #2
0
 /**
  * Генерирует HTML для поля в списке
  * @see AdminListHelper::addRowCell();
  * @param \CAdminListRow $row
  * @param array $data - данные текущей строки
  */
 public function generateRow(&$row, $data)
 {
     if ($this->getSettings('MULTIPLE')) {
     } else {
         if ($this->getSettings('EDIT_LINK') || $this->getSettings('SECTION_LINK')) {
             $entityClass = $this->entityName;
             $pk = $entityClass::getEntity()->getPrimary();
             if ($this->getSettings('SECTION_LINK')) {
                 $params = $this->helper->isPopup() ? $_GET : array();
                 $params['ID'] = $this->data[$pk];
                 $listHelper = $this->helper->getHelperClass($this->helper->isPopup() ? AdminSectionListHelper::className() : AdminListHelper::className());
                 $pageUrl = $listHelper::getUrl($params);
                 $value = '<span class="adm-submenu-item-link-icon adm-list-table-icon iblock-section-icon"></span>';
             } else {
                 $editHelper = $this->helper->getHelperClass(AdminEditHelper::className());
                 $pageUrl = $editHelper::getUrl(array('ID' => $this->data[$pk]));
             }
             $value .= '<a href="' . $pageUrl . '">' . static::prepareToOutput($this->getValue()) . '</a>';
         } else {
             $value = static::prepareToOutput($this->getValue());
         }
         if ($this->getSettings('EDIT_IN_LIST') and !$this->getSettings('READONLY')) {
             $row->AddInputField($this->getCode(), array('style' => 'width:90%'));
         }
         $row->AddViewField($this->getCode(), $value);
     }
 }
コード例 #3
0
 /**
  * Возвращает массив со списком действий при клике правой клавишей мыши на строке таблицы
  * По-умолчанию:
  * <ul>
  * <li> Редактировать элемент </li>
  * <li> Удалить элемент </li>
  * <li> Если это всплывающее окно - запустить кастомную JS-функцию. </li>
  * </ul>
  *
  * @param $data Данные текущей строки.
  * @param $section Признак списка для раздела.
  *
  * @return array
  *
  * @see CAdminListRow::AddActions
  *
  * @api
  */
 protected function getRowActions($data, $section = false)
 {
     $actions = array();
     if ($this->isPopup()) {
         $jsData = \CUtil::PhpToJSObject($data);
         $actions['select'] = array('ICON' => 'select', 'DEFAULT' => true, 'TEXT' => Loc::getMessage('DIGITALWAND_ADMIN_HELPER_LIST_SELECT'), "ACTION" => 'javascript:' . $this->popupClickFunctionName . '(' . $jsData . ')');
     } else {
         $viewQueryString = 'module=' . static::getModule() . '&view=' . static::getViewName() . '&entity=' . static::getEntityCode();
         $query = array_merge($this->additionalUrlParams, array($this->pk() => $data[$this->pk()]));
         if ($this->hasWriteRights()) {
             $sectionHelperClass = static::getHelperClass(AdminSectionEditHelper::className());
             $editHelperClass = static::getHelperClass(AdminEditHelper::className());
             $actions['edit'] = array('ICON' => 'edit', 'DEFAULT' => true, 'TEXT' => Loc::getMessage('DIGITALWAND_ADMIN_HELPER_LIST_EDIT'), 'ACTION' => $this->list->ActionRedirect($section ? $sectionHelperClass::getUrl($query) : $editHelperClass::getUrl($query)));
         }
         if ($this->hasDeleteRights()) {
             $actions['delete'] = array('ICON' => 'delete', 'TEXT' => Loc::getMessage("DIGITALWAND_ADMIN_HELPER_LIST_DELETE"), 'ACTION' => "if(confirm('" . Loc::getMessage('DIGITALWAND_ADMIN_HELPER_LIST_DELETE_CONFIRM') . "')) " . $this->list->ActionDoGroup($data[$this->pk()], $section ? "delete-section" : "delete", $viewQueryString));
         }
     }
     return $actions;
 }