
iDrevniy
+1 в карму :) Спасибо!
+39
Репутация
47
Рейтинг
Предыдущий оратор писал про математику. Я правильно понимаю, что данные для графиков будут вводиться вручную? Интересно было бы указывать на поля или свойства откуда брать данные и за какой период. Если это будет работать так, то я готов участвовать.
А вывод должен формироваться функцией parse
в /system/fields/datediff.php
Так и есть.
Спасибоideasdigger. Все получилось в лучшем виде. Тема закрыта.
Может кому пригодится:
datediff.php
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
datediff.tpl.php
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
iDrevniy, в функцию store класса /system/fields/datediff.php вставь свою логику) вот документация docs.instantcms.ru/dev/forms/field-file
Читал. Но не догоняю. Почему не отображается во фронтэнде.
Уважаемые коллеги! Снова обращаюсь за помощью.
ЗАДАЧА. Есть стандартное поле даты (name = date), которое заполняется юзером. Нужно сделать поле (name = datediff), которое будет вычислят разницу в днях между полем date и сегодняшним днем.
ЧТО Я ДЕЛАЮ НЕ ТАК?
Создаю два файла: /system/fields/datediff.php и /templates/default/assets/fields/datediff.tpl.php
В файле datediff.php
В файле datediff.tpl.php
Но схема не работает. Поле создается, но ничего не выводится. Дебаггер включен, но не ругается. Где я дурак?
ЗАДАЧА. Есть стандартное поле даты (name = date), которое заполняется юзером. Нужно сделать поле (name = datediff), которое будет вычислят разницу в днях между полем date и сегодняшним днем.
ЧТО Я ДЕЛАЮ НЕ ТАК?
Создаю два файла: /system/fields/datediff.php и /templates/default/assets/fields/datediff.tpl.php
В файле datediff.php
<?php class fieldDatediff extends cmsFormField { public $title = 'Прошло дней'; public $is_virtual = true; //Потому что в базу заносить нечего, юзер ничего вводить не будет. public $sql = 'text NULL DEFAULT NULL'; public $var_type = 'string'; public $allow_index = false; } ?>
Но схема не работает. Поле создается, но ничего не выводится. Дебаггер включен, но не ругается. Где я дурак?
Значение поля (Север), может быть другим (Юг, Восток, Шапокляк и т.д.). И нужно каждое значение стилизовать по своему. Да и вроде как про свойства шла речь, а не про поля.Или я не так понял?
Вот вариант для свойств (нашел где-то в интернете):
$(document).ready(function(){ $(".content_item_props .value").html(function(index, text) { return text.replace(new RegExp("север", 'g'), "север") }); $(".content_item_props .value").html(function(index, text) { return text.replace(new RegExp("юг", 'g'), "юг") }); });
СПАСИБО +++!!! Я так понимаю, что на сегодняшний день это единственный рабочий вариант.
Доброго всем!
Друзья, не могу никак понять из документации и форума следующие моменты:
1. Получение данных из чужого контроллера. Например: как получить название или картинку из шаблона profile.tpl.php для, скажем, Maps. Другими словами как правильно сформировать запрос в Maps, чтобы отобразить какие-либо данные в профиле с привязкой к пользователю. И в принципе как сформировать запрос в чужой контроллер и получить значение для записи или пользователя.
2. С шаблонами та же история? Если я не в main.tpl.php как узнать опубликован ли виджет? Например, как сформировать запрос hasWidgetsOn из шаблона другого виджета (widget.tpl.php), и возможно ли это?
Извините за нубские вопросы, но не доходит до меня. Спасибо!
Друзья, не могу никак понять из документации и форума следующие моменты:
1. Получение данных из чужого контроллера. Например: как получить название или картинку из шаблона profile.tpl.php для, скажем, Maps. Другими словами как правильно сформировать запрос в Maps, чтобы отобразить какие-либо данные в профиле с привязкой к пользователю. И в принципе как сформировать запрос в чужой контроллер и получить значение для записи или пользователя.
2. С шаблонами та же история? Если я не в main.tpl.php как узнать опубликован ли виджет? Например, как сформировать запрос hasWidgetsOn из шаблона другого виджета (widget.tpl.php), и возможно ли это?
Извините за нубские вопросы, но не доходит до меня. Спасибо!
Я специально не писал про нескольких родителей. Думаю что при таком раскладе дочерний элемент должен быть самостоятельным. Иначе пользователь просто заблудится, один и тот же элемент принадлежит разному типу.
Так что я думаю решение отличное и логичное.
Так что я думаю решение отличное и логичное.
Да, конструкция получилась крутая. Еще раз спасибо вам @SmartControl и вам Loadырь.
Еще раз убедился, что система оч крутая, вопросы решаются проще, чем казалось сначала.
Еще раз убедился, что система оч крутая, вопросы решаются проще, чем казалось сначала.
@SmartControl, в $item['parent_catalog_id'] может быть несколько записей.
А какие? Но все работает чудесно! Откорректировал ваш код под свои name'ы типа контента и без проблем!
По сути у меня все упиралось в эту строчку
$news = cmsCore::getModel('content')->getContentItem('catalog', $item['parent_catalog_id']);
Не уверен, что понял как именно вы хотите сделать.Комрады! Может еще кто носом ткнет куда посмотреть, где покопать? Прям хочется сделать нормальный глубиномер.
Попробуйте так, добавьте в файл /templates/default/controllers/content/item_view.tpl.php строки
У меня пример можно посмотреть тут. Это объявление созданное внутри новости. И крошки получаются Новости -> Моя новость -> Мое объявление
if($item["ctype_name"] == 'details') { $this->addBreadcrumb("Каталог", href_to('catalog')); $news = cmsCore::getModel('content')->getContentItem('catalog', $item['parent_catalog_id']); $this->addBreadcrumb($news['title'], href_to('catalog', $news['slug'] . '.html')); } else { ................. тут старый код по формированию крошек ................. } $this->addBreadcrumb($item['title']); //эта строка остается
Закрываем тему. Вам огромное спасибо! Как отблагодарить?
if($childs){ foreach($childs['tabs'] as $relation_name => $relation){ $this->addBreadcrumb($relation['title'], href_to($relation_name)); } } foreach($childs['lists'] as $relation){ $this->addBreadcrumb($relation['title'], href_to($relation['ctype_name'])); } } }
Спасибо! Но не пашет. Думаю потому, что в вашем коде идет проверка на дочерние записи, а их как раз нет, поскольку запись сама дочерняя. Нам нужно найти родителя.
То есть
Как и
if($childs){ foreach($childs['tabs'] as $relation_name => $relation){ $this->addBreadcrumb($relation['title'], href_to($relation_name)); } } foreach($childs['lists'] as $relation){ $this->addBreadcrumb($relation['title'], href_to($relation['ctype_name'])); } } }
Спасибо! Но не пашет. Думаю потому, что в вашем коде идет проверка на дочерние записи, а их как раз нет, поскольку запись сама дочерняя. Нам нужно найти родителя.
Любо я туплю.
Эту темку можно как пожелание для следующей версии учесть.
Комрады! Может еще кто носом ткнет куда посмотреть, где покопать? Прям хочется сделать нормальный глубиномер.
Вообще то это группы вроде.Нет? Переименуйте в Блог, выставьте права и все дела.)Под двойку нет компонента, позволяющего создавать блоги.
Я об этом не подумал… Спасибо за идею.
Но у меня еще есть связанные типы контента, в которых я бы хотел реализовать правильный глубиномер.
Пока не могу понять как правильно передать параметры в экшене.