TvTable - таблица
Добрый день! Понадобилась мне тут табличка в виде Тв-параметра, в которой можно менять не только кол-во строк, но и столбцов. Поэтому migx не подходит (
В общем, было найдено решение, но как оказалось оно для EVO =(

В итоге взяла его за основу и переписала.
Итак процесс установки:
1) создаем namespace (Пространство имен) table
2) создаем плагин «TvTable» с событиями OnTVInputRenderList, OnTVInputPropertiesList и OnDocFormPrerender
4) теперь создаем TV-параметр с типом table и пользуемся)
5) сниппет tvTable для вывода простой таблицы [[!tvTable?&tv=`id TV`&id=`id ресурса`]]
UPD:
Добавила в плагин инициализацию jQuery
Добавила сниппет
UPD 30.08.2017:
Переписала JS, но т.к. я в нем не совсем спец, то он не красивый.
В общем, те кто хотел 2 и более таблицы — github.com/wax100/TVTable — тестируйте
В общем, было найдено решение, но как оказалось оно для EVO =(

В итоге взяла его за основу и переписала.
Итак процесс установки:
1) создаем namespace (Пространство имен) table
2) создаем плагин «TvTable» с событиями OnTVInputRenderList, OnTVInputPropertiesList и OnDocFormPrerender
<?php
$corePath = $modx->getOption('table.core_path', null, $modx->getOption('core_path') . 'components/table/');
switch ($modx->event->name) {
case 'OnTVInputRenderList':
$modx->event->output($corePath . 'elements/tv/input/');
break;
case 'OnTVInputPropertiesList':
$modx->event->output($corePath . 'elements/tv/inputoptions/');
break;
case 'OnDocFormPrerender':
$modx->regClientStartupScript('http://code.jquery.com/jquery-1.11.2.min.js');
break;
}3) распаковываем в core/components архив 4) теперь создаем TV-параметр с типом table и пользуемся)
5) сниппет tvTable для вывода простой таблицы [[!tvTable?&tv=`id TV`&id=`id ресурса`]]
<?php
if (!isset($tv)){
return;
}
$tv = (int)$tv;
$classname = isset($classname) ? $classname : 'pricelist';
$did =isset($id) ? $id : $modx->resource->id;
if ($tvObject = $modx->getObject('modTemplateVarResource', array('tmplvarid' => $tv, 'contentid' => $did ))){
$tvv = $tvObject->get('value');
}
if (!$tvv || $tvv=='[["",""],["",""]]') return;
$tvtArr=json_decode($tvv);
$output='<table class="'.$classname.'">'."\n";
$output .='<tr>'."\n";
for($i=0; $i<count($tvtArr[0]); $i++) $output .='<th'.($i ? '' : ' class="first"').'>'.$tvtArr[0][$i].'</th>'."\n";
$output.='</tr>'."\n";
for($row=1; $row<count($tvtArr); $row++) {
$output .='<tr'.(($row%2) ? '' : ' class="altrow"').'>'."\n";
for($i=0; $i<count($tvtArr[$row]); $i++) $output .='<td'.($i ? '' : ' class="first"').'>'.$tvtArr[$row][$i].'</td>'."\n";
$output.='</tr>'."\n";
}
$output.='</table>';
return $output;UPD:
Добавила в плагин инициализацию jQuery
Добавила сниппет
UPD 30.08.2017:
Переписала JS, но т.к. я в нем не совсем спец, то он не красивый.
В общем, те кто хотел 2 и более таблицы — github.com/wax100/TVTable — тестируйте
Комментарии: 113
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
case 'OnDocFormPrerender':
$modx->regClientStartupScript('http://code.jquery.com/jquery-1.11.2.min.js');
break;
— а поняла, у меня там ТВ-карта и там подключено
Столкнулся с обной проблемой, может вы сможете мне помочь.
Я в один столбец добавляю
После чего я обновляю страницу и вижу что сохранилась только часть кода
Если сохранить страницу часть html пропадает.
Можете помочь как исправить данную проблему.
А на сайте будет выводиться обычная таблица
а мне вывод как таковой не нужен был, а нужен был вывод цен в зависимости от размера.
причем можно было как удалять тип бревна. так и добавить
Пример таблиц
PS можно делать и MIGX, но в нем нельзя увеличить кол-во столбцов не залезая в настрйоки
В настройках естьтакой пункт меню.
ЗЫ с телефона, скрин не сделать
Нажал клавишу F11 только тогда смог найти…
А уже в самом myTpl можно было бы оформлять таблицу как угодно.
А как-то можно сделать так чтоб динамически id ресурса подставлялось.
Или надо каждый раз писать номер id ресурса??
Спасибо большое. Я думал его надо обязательно указывать))) пробовал писать типо [[~[[*id]]]]
а оказывается все на много проще)))
Еще раз спасибо большое
Я создал еще TV с таким же типом table, но получилась какая-то не совместимость.
Я тут задумался, а можно как-то добавить к таблице заголовок к примеру h2 и обернуть это все в блок чтоб его можно было дублировать при нажатии на плюс и так же на минус чтоб можно было убрать.
Спасибо.
И потом в бекенде сделать добавление нового блока с заголовком и таблицей.
А вывод на фронтенд — блок в котором заголовок и таблица. А если был добавлен новый блок, то снова блок и в нем заголовок и таблица.
Как-то так.
Спасибо
=)))
Просто дизайн свёрстан с учётом thead…
захотел сделать две таблицы в одном документе
Предыдущий пакет полностью удалил. Кэш MODX и браузера чистил. Версия MODX 2.5.5-pl
Журнал ошибок чист.
поробуйте вернуть старую версию и вручную изменить файл tv.table.input.tpl и залить файл JS
prntscr.com/gfbck6
Чуть подправил — перенёс JS-файлы в assets и залил в modstore.pro новую версию. Теперь можно обновиться из репозитория.
Сейчас пока просто выводит
так заработало
Первая часть вопроса очевидно решена. Как поступить по-умному?
(Путь assets, как вы уже поняли, тоже изменён).
Но чтобы сделать это через интерфейс — пока нет идей и времени, только мысли =(
А то для такого дополнения полезная функция, а менять исходники как-то некрасиво. А так еще раз спасибо!)
Я, конечно, дурной и сонный уже, но не конца понял смысл от getX и getY, если далее в коде берутся значения x и y
Т.е сейчас нужно и то и то указывать… Это я у себя там немного по другому делал, поэтому и вылезли эти x и y, а так лучше же
или вообще упростить до x и y)
Ну например, хочу отловить номер колонки. В thTpl засовываю:
В общем все логичное и не логичное перепробовала, но порядковое исчисление не отловила :) Что же его выведет то? :)
Прошло 7 минут :)
Кто хочет отловить нумерацию колонок. В 53 строке дописываем:
А в чанке (у меня)
Ура :) Теперь я могу сделать из таблицы input для формы :)
Далее получил следующее:
Некоторые страницы перестали открываться в режиме редактирования.
Выходит ошибка:
Проверил — код файла содержит следующий текст:
Сопоставил с исходниками установочными — совпадает.
Очистка кеша не помогала.
Далее отключил вновь созданное TVполе от шаблонов — страницы в режиме стали открываться.
То есть есть какая-то проблема с render.
P.S. поиск проблемы привел к тому что обнаружил на сайте левые файлы (бекдоры), пришлось еще заняться чисткой. Благо сайт был обновлен до последней версии, в основном были обнаружены левые файлы, JS не пострадали.
Не совсем понял про getx и gety
Я хочу сделать из этого select
по типу
название опции цена
название опции2 цена2
превратить в
Подскажите, пожалуйста, как это сделать?
Лучше 1) Migx или простое 2) textarea, где пользователи будут вводить в формате
Значение=Параметр
Значение 2 =Параметр 2
3) есть extra вроде, getInputOptions
В консоли получается вот так
Чем здесь не issue? Тем что его больше народу увидит? Заметь я пишу по делу и в профильной заметке. Да и обращался напрямую к Яне, а ты в разговор влез, тоже не очень то красиво кстати. Давай прекращай.
Мне по по моим компонентам и не такие прелести пишут здесь и ничего. Только лучше становятся.
есть желание поправить — жду PR :)
В админке таблица поехала после обновления, что я делаю не так?
prntscr.com/o19nnc
______________________________________________________________
|--------------------------------|Прайс на продукт 1|Прайс на продукт 2|
-----------------------------------------------------------------------------------------------------|
|Поддержка на год| 30000 | 40000 |
| | Подробнее | Подробнее |
— И так далее. Ссылка Подробнее у каждого значения ведет на разные страницы.
Тоесть в поле я хочу указывать только сумму.
30.000 руб.
Подробнее
Чтобы это как-то так в ячейке потом сохранялось.
но выводить его не в своем столбике, а в столбике с ценой.
Можно подробнее про ссылки. пожалуйста. Таблица так выглядит:
Название, Цена, ID
Как бы это ID превратить в ссылку. В идеале бы вообще сделать название ссылкой.
Здесь же нет отдельно чанков под первую и последнюю ячейку, например? Своих id тоже не увидел.
На сайте выводится таблица с товарами.
Нужно автоматически в колонку с ценой вставлять цену, которую я буду парсить из екселя.
Как думаете такое можно реализовать?
Или доп колонкой добавлять из цены в самом мнишопе2?
Магазин реализован через miniShop2
Есть таблица с описанием разних артикулов товара.
Таблица реализована через ваш сниппет.
Заказчик захотел грузить цены автоматом из ексельки выгруженной из 1С.
Мне досталось всё это хозяйство, пытаюсь понять, как сделать)
Указываю через запятую, но выводит только таблицу из первого id 79
[[TVTable?
&tv=`49`
&id=`79,80`
&classname=`Классы таблицы`
]]
вот исходный код сниппета, можете переписать под себя
Подскажите как вывести таблицу внутри MIGX
Т.е. в форму MIGX добавлено:
А как эту таблицу вывести на фронте не догоню