Методы в system/core/model.php

 
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2579
uploader.php | model.php

Так как документации еще нет, возникает много вопросов. Предлагаю в этой теме задавать вопросы по model.php, а также отвечать на вопросы по мере возможности.

Буду первым. Как очистить таблицу в бд от записей? Метода truncate ($table_name) не нашел :(
Возможно, он и не нужен, тогда другой вопрос. Каким методом фильтрации выбрать все строки в таблице, чтобы потом удалить с помощью deleteFiltered.
Редактировалось: 1 раз (Последний: 10 октября 2014 в 20:20)
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4424
Евгений:
Как очистить таблицу в бд от записей?
Что мешает использовать в модели
Код PHP:
  1. $this->db->query('TRUNCATE TABLE `table_name`');
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Реклама
cms
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2579
Fuze:

Евгений:
Как очистить таблицу в бд от записей?
Что мешает использовать в модели
Код PHP:
  1. $this->db->query('TRUNCATE TABLE `table_name`');
Так сработало
Код PHP:
  1. $this->db->query('TRUNCATE TABLE `{#}table_name`');
А мешает желание делать по феншую, т.е. методами. А то, получается, напрямую через query можно ручками все запросы писать...
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Посетитель
small user social cms
Сообщений: 29
Fuze:

Что мешает использовать в модели
Код PHP:
  1. $this->db->query('TRUNCATE TABLE `table_name`');

Fuze, дорогой!
Ну неужели не жалко времени – в подобных форумах обсуждать все эти бесконечно малые, но в то же время фундаментальные вопросы?
Вот здесь: http://instantcms.ru/forum/thread19516.html как раз призываю тех, кто в теме по макушку, доделать систематический мануал для разработчиков (который уже блестяще начат) и добавить к нему сводные списки (таблицы) всех стандартных методов, свойств, констант и переменных.
Уверен, что лучше время и силы сконцентрировать на этом фундаменте!
«...
Не забыл, и слава Богу, нанести орнамент.
Что ж забыл? Забыл немного – заложить фундамент!
...»
© Михаил Щербаков
Сергей-Водолей
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4424
Aquarius:
Ну неужели не жалко времени – в подобных форумах обсуждать все эти бесконечно малые, но в то же время фундаментальные вопросы?
Написать 40 букв мне не жалко.
Aquarius:
сводные списки (таблицы) всех стандартных методов, свойств, констант и переменных.
Т.е. вы предлагаете переписать все комментарии к методам из кода в мануал?
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Сообщений: 29
Fuze:
Aquarius:
сводные списки (таблицы) всех стандартных методов, свойств, констант и переменных.
Т.е. вы предлагаете переписать все комментарии к методам из кода в мануал?
Воистину – ответ математика laugh
Но, надеюсь, это была шутка юмора, потому что разница немалая между комментариями к методам и сводной справочной таблицей. Я уже не говорю о том, что в коде все эти сущности разбросаны по десяткам файлов и разбавлены тысячами строк, от которых как раз и надо бы абстрагироваться разработчику – для чего, кстати, вся эта иерархия классов и создавалась.
Разумеется, держа всю эту структуру у себя в голове, искренне не понимаешь: чего этим придуркам не хватает, всё же так здорово написано?!
А не хватает некоего интерфейса, который позволит кратко и эффективно, во-первых, обозревать все эти богатства человеку, пока не въехавшему глубоко (все, на первых порах, сталкиваются с такой необходимостью), а во-вторых, видеть, как на очень наглядных примерах это работает – что мне очень нравится в той части мануала, который уже сделан. Я никогда не буду делать сайт-магазин, но магазинная аналогия абсолютно понятна даже такому дураку, как я!
А если серьёзно: спасибо за то, что уже сделано! Мне кажется, вы действительно можете получить гораздо больше разработчиков (а в конечном счёте, и славы, и денег), если снизите планку входа в свой объектный лего-конструктор...
Редактировалось: 1 раз (Последний: 7 октября 2014 в 15:05)
Сергей-Водолей
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4424
Aquarius, все будет со временем, нужно просто набраться терпения. Останутся самые стойкие)
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
no avatar
Сообщений: 36
Предложение разработчикам:
в статье на хабре описывается два способа создания диаграммы классов по существующему коду.
Эти диаграммы классов стали бы нужной частью документации.

Пытался самостоятельно составить подобные диаграммы но не хватает времени разобраться.
Посетитель
small user social cms
Сообщений: 29
Fuze:
Aquarius, все будет со временем, нужно просто набраться терпения. Останутся самые стойкие)
«...
Жаль только – жить в эту пору прекрасную
Уж не придётся – ни мне, ни тебе.»
© Некрасов
crazy
Редактировалось: 1 раз (Последний: 7 октября 2014 в 15:04)
Сергей-Водолей
Посетитель
small user social cms
МедальКубок зрительских симпатийПочетный донор проекта
Сообщений: 828
Как выше написал Fuze это скорее всего будет правильный вариант, так как метод TRUNCATE будет избыточный в системе, его делают очень редно и ничего не мешает его оформить обычным запросом, если учесть что там и параметр только 1 - это название таблицы. :)
Редактировалось: 1 раз (Последний: 10 октября 2014 в 22:13)
Компоненты, модули, шаблоны, разработка на заказ - широкий выбор всего
Посетитель
small user social cms
Сообщений: 29
Fuze:
Aquarius:
сводные списки (таблицы) всех стандартных методов, свойств, констант и переменных.
Т.е. вы предлагаете переписать все комментарии к методам из кода в мануал?
Fuze, вот столкнулся именно с тем, о чём мы дискутировали: из видео-туториала очевидно, что я могу использовать в формах стандартное поле "дата"
Код PHP:
  1. 'childs' => array(
  2. new fieldDate('work_date', array( ...
Но попытка то же самое проделать с полем "время" ни к чему не привела.
Я пробовал варианты типа "fieldTime(..." в нескольких вариациях...
То ли такой возможности нет, то ли я просто туплю – как об этом узнать без документации, без сводной таблицы?
Потерял уже прорву времени на поиски по исходникам – подсказки там, увы, тоже не нашёл...
Может посоветуете? Хотя бы место кода про "fieldDate", где, по аналогии, можно было бы описать и "fieldTime"...
Заранее спасибо!
Редактировалось: 1 раз (Последний: 22 октября 2014 в 12:54)
Сергей-Водолей
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4424
Aquarius:
как об этом узнать без документации, без сводной таблицы?
Все классы полей лежат в /system/fields
Aquarius:
Хотя бы место кода про "fieldDate", где, по аналогии, можно было бы описать и "fieldTime"
Возможно вам подойдет fieldAge. Или же написать свой класс поля по аналогии с существующими.
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
InstantCMS Team
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1344
Aquarius:
Я пробовал варианты типа "fieldTime(..." в нескольких вариациях...
То ли такой возможности нет, то ли я просто туплю – как об этом узнать без документации, без сводной таблицы?
Поставьте нормальную IDE с автодополнением, чтобы когда вы ввели "new field" вам она показывала все доступные классы начинающиеся на field

Aquarius:
Потерял уже прорву времени на поиски по исходникам – подсказки там, увы, тоже не нашёл...
Опять же, в любой нормальной IDE вы бы могли сделать Ctrl+клик по слову fieldDate и перейти к определению этого класса, тут же поняв где он находится и какие в этой же папке есть аналогичные классы

IDE множество: NetBeans, phpStorm, PhpED, Eclipse и куча других.
Notepad++ и подобное при серьезной разработке годится только чтобы по-быстрому поправить пару строчек в точно известном месте.

Хорошая IDE с хорошим автокомплитом избавит вас от огромного множества непоняток и вопросов
Редактировалось: 1 раз (Последний: 22 октября 2014 в 16:01)
Посетитель
small user social cms
Сообщений: 29
Fuze, r2, я обнаружил в классе fieldDate две функции, где речь идёт о времени, но не очень понятно – можно ли этим воспользоваться?
class fieldDate
Написать класс "по аналогии", думаю, для меня задача сложноватая, по меньшей мере, придётся убить на неё неоправданно большое время, чтобы разобраться и добиться результата.
Но есть ещё один путь, на случай, если штатный класс даты всё же не умеет принимать от пользователя время: можно ввести два fieldNumber (для часов и минут, соответственно). Останется лишь разобраться – как поправить шаблон, который сейчас все поля рисует друг под другом?
Спасибо за советы!
Редактировалось: 2 раз (Последний: 22 октября 2014 в 19:53)
Сергей-Водолей
Посетитель
small user social cms
Медаль
Сообщений: 352
Aquarius:
Но попытка то же самое проделать с полем "время" ни к чему не привела. Я пробовал варианты типа "fieldTime(..." в нескольких вариациях...

ВЫ видимо желаете дополнить поле Дата полем выбора часового времени - или создать отдельное поле " время."
Это решение заложено в поле fieldAge - при условии что Вы укажете в конфигурационных настройках
Формат вывода даты d.m.Y.h.m
Поле Age выводит ( при редактировании ) сохраненную ( в базе данных дату в формате d.m.Y.h.m) На момент создания-выбора даты поля date : Год-месяц-число-день-час-минуты.

Но!
Возможность выбора времени, при редактировании форм, должна поддерживаться еще и разработчиком jQuery ui datepicker.
Поменяйте в форме , или создайте поле типа fieldAge,
Видите что есть только выбор даты, и нет выбора установки времени.
В настройках конфигурации есть пункт Установка формата js.
Именно этот формат будет отдаваться значению поля при вызове jQuery ui datepicker.
Но в документации к datepicker.formatDate( format, date, settings ) нет формата часы-минуты.
Виджет jQuery ui datepicker принимает формат
Код PHP:
  1. $('#LastActivity').datepicker({showStatus: true, showOn: 'both', dateFormat:'dd.mm.yy'});
Сам виджет jQuery ui datepicker не имеет обработчиков "время".
Для выбора "времени" после выбора "даты" используют различные аддоны типа Adding a Timepicker to jQuery UI Datepicker

на странице по ссылке " Download Timepicker Addon "


Aquarius:
Fuze, r2, я обнаружил в классе fieldDate две функции, где речь идёт о времени, но не очень понятно – можно ли этим воспользоваться?
1-
Код PHP:
  1. public function getOptions(){
  2. return array(
  3. new fieldCheckbox('show_time', array(
  4. 'title' => LANG_PARSER_DATE_SHOW_TIME,
  5. 'default' => false
  6. )),
  7. );
  8. }
При создании типа контента и поля "Дата" - функция предлагает возврат значения по умолчанию ...
тоесть show_time 'default' => false - не показывать время! Или show_time 'default' => true - показывать время!
Тоесть при создании любого контента в таблицу будет записана дата в формате d.m.Y.h.m
А флаг " show_time " обрабатывается только при показе контента в шаблоне templates/*/assets/fields/date.tpl.php
Редактировалось: 7 раз (Последний: 22 октября 2014 в 23:30)
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.