партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Универсальная галерея - модуль для битрикс
Это форум по решению для битрикс «Модуль Свойства-таблицы».
Страницы: 1
Ответить
RSS
grain:table.view вообще ничего не выводит, grain:table.view вообще ничего не выводит
 
Стандартный модуль grain:table.view вообще ничего не выводит
Вывод делаю так (в админке при подключении компонента именно такое подключение)
Код

<?$APPLICATION->IncludeComponent(

"grain:table.view",
"",
Array(
)
);
Версия - триал 3.1.0 (только вчера поставил)

Причем занятно, что когда пытаюсь просто экспериментировать со свойством компонента, как с обычным свойством, что-то получается (только в ненужно для меня формате, но вывод есть, тем не менее). Вот такой код например выводит кое-что (две строки таблицы, которые я создал в элементе инфоблока, только у каждого лишняя "шапка" таблицы, которая мне не нужна)
Код

<?foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>  <?if($pid =="scope"): ?> 

<? $num=$arProperty["DISPLAY_VALUE"]; ?>
<? 
  $i
=0;
  while (
$i count($num)) 
  { 
?>
<table class="exp-list"><tr><td><?echo $num[$i].' '?></td><td class="exp-col-td"></td><td></td></tr></table>
<?$i++; 
  } 
?>
<?
endif?> 
<?endforeach;
Что не так? В триале не работает что ли? Куда копать?
 
Цитата
Андрей написал:
Вывод делаю так (в админке при подключении компонента именно такое подключение)Код IncludeComponent(
"grain:table.view",
"",
Array(
)
);?>
Андрей, вы подключаете компонент вообще без параметров. Здесь есть пример подключения почти для вашего случая http://g-rain-design.ru/components/tables/api/#grain-table-view

Цитата
Андрей написал:
Что не так? В триале не работает что ли?
От триала это не зависит

Но вообще, и без этого компонента достаточно легко обойтись, просто форматируете массив в соответствии с нужным вам видом отображения (что конкретно не так в вашем втором блоке кода не могу сказать, т.к. не знаю какой именно формат вывода вам нужен).
 
Цитата
Сергей Эстрин написал:
Андрей, вы подключаете компонент вообще без параметров
Спасибо, я пробовал эти варианты тоже, безрезультатно. Я, однако же, обнаружил, что после установки компонента у меня в его каталогах почему-то вообще нет файлов .parametrs.php - может, это какая-то ошибка установки? Ведь для получения параметров из редактора эти файлы нужны.
 
Цитата
Гость написал:
Спасибо, я пробовал эти варианты тоже, безрезультатно.
Если вы про вывод массива вручную, то там особо ничего сложного нет, массив со значениями и все. Если хотите я могу помочь на платной основе, пишите через контакты.

Цитата
Гость написал:
Я, однако же, обнаружил, что после установки компонента у меня в его каталогах почему-то вообще нет файлов .parametrs.php - может, это какая-то ошибка установки?
Нет, этих файлов просто нет, потому что эти компоненты все равно через визуальный редактор не подключаются, в качестве параметров сложные массивы. Но все что нужно сделать - это взять готовые массивы (из настроек свойства описание столбцов и значения из элемента), и подставить в параметры, как - пример есть в справке.
 
Цитата
Сергей Эстрин написал:
почти для вашего случая http://g-rain-design.ru/components/tables/api/#grain-table-view
Увы, ничего не получилось таким методом, как так описано. Пробовал подключать и на странице, и в шаблоне компонента или сайта. И дома тоже поставил виртуалку Битрикс и еще раз попробовал, тот же эффект. Значит, зависит не от косячной установки Битрикс, а от моих кривых ручек. Что-то я делаю не так.
Вот здесь
Код

"SETTINGS" => $arElement["PROPERTIES"]["prop_name"]["USER_TYPE_SETTINGS"], // массив дополнительных настроек свойства

      
"MULTIPLE" => $arElement["PROPERTIES"]["prop_name"]["MULTIPLE"], // множественное или нет
      
"VALUE" => $arElement["PROPERTIES"]["prop_name"]["VALUE"], // значение
   
),
Везде вместо prop_name я ставлю имя своего свойства "scope" типа "таблица" во всех трех строках. ( может не его нужно выводить?) Ноль эффекта.

Точно так же пытаюсь вывести компонент редактирования:
Код

$GLOBALS["APPLICATION"]->IncludeComponent(

   
"grain:table.edit",
   
"",
   Array(
      
"SETTINGS" => $arProperty["USER_TYPE_SETTINGS"], // массив дополнительных настроек свойства
      
"MULTIPLE" => $arProperty["MULTIPLE"], // множественное или нет
      
"USER_FIELDS" => "N"// N - инфоблоки, Y - свойства главного модуля
      
"VALUE" => $arProperty["VALUE"], // значение
      
"NAME" => "MY_FIELD_NAME"// имя полей формы
   
),
   
null,
   array(
'HIDE_ICONS' => 'Y')
);
получаю сообщение "колонки таблицы не созданы". Смотрю в component.php и вижу
Код

<?

if (!
defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

if(
    !
is_array($arParams["SETTINGS"]) 
    || !
is_array($arParams["SETTINGS"]["COLUMNS"]) 
    || (
is_array($arParams["SETTINGS"]["COLUMNS"]) && count($arParams["SETTINGS"]["COLUMNS"])<=0)
) {

    echo 
GetMessage("GRAIN_TABLES_TE_COMPONENT_ERROR_NO_COLUMNS");
    return;

}

$this->IncludeComponentTemplate();
То есть это сообщение означает, что массив $arParams["SETTINGS"] в конструкции компонента у меня в системе не подхватывается из формы редактирования элемента инфоблока - почему?

Но в элементе инфоблока колонки созданы и заполнены. Тем более, что конструкция следующего вида их вполне себе выводит поштучно
Код

<?foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>  <?if($pid =="scope"): ?> 

<? $num=$arProperty["DISPLAY_VALUE"]; ?>
<? 
  $i
=0;
  while (
$i count($num)) 
  { 
?>
<?
echo $num[$i].' '?>
<?$i
++; 
  } 
?>
<?
endif?> 
<?endforeach;
Вывод делаю такой - компонент в принципе работоспособен через API, вероятно, я как-то неправильно его подключаю? Не понял, как подключать? Можете помочь освоить или только платно? Купить свойства-таблицы мы готовы под проект, не проблема, но прежде нужно убедиться, что все работает корректно и что мы понимаем, как им пользоваться, собственно для этого и служат демки.
 
Цитата
Андрей написал:
Везде вместо prop_name я ставлю имя своего свойства "scope" типа "таблица" во всех трех строках. ( может не его нужно выводить?) Ноль эффекта.
А что находится в этих переменных которые подставляете, выводили? Я вообще заметил что в жругих случаях вы оперируете
$arResult а не $arElement, из этого делаю вывод - у вас детальный компонент, не список?

Цитата
Андрей написал:
получаю сообщение "колонки таблицы не созданы". Смотрю в component.php и вижу
Аналогично. Проверьте что находится в $arProperty["USER_TYPE_SETTINGS"]. Там должен быть большой массив описывающий структуру таблицы.
 
Цитата
Сергей Эстрин написал:
у вас детальный компонент, не список?
Да, я пытаюсь вывести таблицу на детальной странице компонента "Новости", поэтому само свойство я выводил моим способом через arResult. И компонент grain:table.view пытался вставить в шаблон именно детальной страницы. Это моя ошибка? Его можно использовать только на странице списка? А как же быть, если таблица нужна на детальной странице новости?
 
Цитата
Андрей написал:
И компонент grain:table.view пытался вставить в шаблон именно детальной страницы. Это моя ошибка?
Нет, я просто заметил что вы цитируете пример прямо из справки, где $arElement. А если вы для детальной используете, то вместо $arElement должно быть, $arResult. И конечно же, сначала выведите через print_r эти переменные и проверьте их значения.
 
Спасибо, все получилось, теперь понимаю, как ставить и настраивать. В детальных страницах использую arResult, в списках arItem. Насколько я понимаю - arElement это для Битрикс 24, вместо arItem используется?
В целом доволен, покажу результат начальству, буду рекомендовать купить его для действующего сайта. Очень удобный компонент, стоило бы его 1С-Битрикс давно уже купить у Вас и включить в стандартную поставку.
 
Цитата
Андрей написал:
В детальных страницах использую arResult, в списках arItem. Насколько я понимаю - arElement это для Битрикс 24, вместо arItem используется?
Это просто внутренняя переменная, она может быть любая в отличие от $arResult. Почитайте про оператор foreach.

Цитата
Андрей написал:
В целом доволен, покажу результат начальству, буду рекомендовать купить его для действующего сайта.
Спасибо :)
 
Еще одни дополнительный вопрос.
Пытаюсь применить свойство для вывода пользовательского свойства типа "таблица" на странице редактирования профиля пользователя. Использую такой вывод:
Код

<?$APPLICATION->IncludeComponent(

   
"grain:table.edit",
   
"",
   Array(
      
"SETTINGS" => $arProperty["USER_TYPE_SETTINGS"], // массив дополнительных настроек свойства
      
"MULTIPLE" => $arProperty["MULTIPLE"], // множественное или нет
      
"USER_FIELDS" => "Y"// N - инфоблоки, Y - свойства главного модуля
      
"VALUE" => $arProperty["VALUE"], // значение
      
"NAME" => "MY_FIELD_NAME"// имя полей формы
   
)
);
Что в нем нужно изменить, чтобы выводились для редактирования пользовательские свойства ( в моем случае UF_SKILLS и UF_COMPETENCES объекта USER) ?
То есть на странице своего профиля пользователь у нас сам должен иметь возможность редактировать пользовательское свойство типа "таблица" не из инфоблока, а из профиля пользователя. То есть я помещаю этот вывод в тело шаблона компонента bitrix:main.profile, установленного на отдельную страницу.
Я как-то даже не понял, где в этом выводе для формы редактирования можно указать, какие именно свойства можно забрать для редактирвания, а какие нельзя, и где тут указать название редактируемого свойства (двух свойств у нас). MY_FIELD_NAME следует заменить на название собственного поля UF_SKILLS?
Никак не могу сам понять, как сделать. Спасибо.
 
Цитата
Андрей написал:
То есть я помещаю этот вывод в тело шаблона компонента bitrix:main.profile, установленного на отдельную страницу.
Андрей, а для чего? В компоненте main.profile можно просто указать пользовательские свойства для редактирования. Так что-то не работает?

 
 
Цитата
Сергей Эстрин написал:
Так что-то не работает?
Совершенно верно. Дополнительное свойство выводится, но при этом выводится только одно поле для редактирования множественного свойства таблицы (одна строка таблицы), а необходимо несколько строк. Когда таблица выводится в инфоблоке, там есть пункт меню "Количество полей для ввода новых множественных значений", а в здесь такой возможности нет в настройках пользовательского поля. А нам необходимо, чтобы пользователь мог сам заполнить несколько новых множественных значений (строк таблицы).
 
Прошу прощения за беспокойство. Все работает на ок -  у меня почему-то при создании пользовательского свойства слетели галки "множественное" при сохранении, глюкнуло что-то в браузере, видимо. Пересоздал свойства еще раз и все заработало.
 
Цитата
Андрей написал:
Совершенно верно. Дополнительное свойство выводится, но при этом выводится только одно поле для редактирования множественного свойства таблицы (одна строка таблицы), а необходимо несколько строк.
У меня нормально работает с этим компонентом, вы уверены что у вас свойство множественное?




Цитата
Андрей написал:
Когда таблица выводится в инфоблоке, там есть пункт меню "Количество полей для ввода новых множественных значений", а в здесь такой возможности нет в настройках пользовательского поля.
Такой настройки нет и не должно быть для таблицы. А для чего она вам?
Страницы: 1
Ответить
Читают тему
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить картинки