Сергей Шлоков

Сергей Шлоков

С нами с 31 января 2013; Место в рейтинге пользователей: #5
06 декабря 2015, 18:11
+3
Ограничить достаточно просто. Один из вариантов — у пользователя есть поле extended. В него писать id фирмы, которую он добавил. И проверять, если есть уже id, то не выводить форму.
06 декабря 2015, 10:38
+1
Спасибо. Уже купил :)
04 декабря 2015, 18:49
+1
Вы же не зовёте мастера, который запустит Вам стиральную машину на определённую программу или, например, включит мультиварку в нужном режиме.
Мастера нет, а вот симпатичную мастерицу можно. :)
04 декабря 2015, 13:08
0
Все пожелания собираю тут.
03 декабря 2015, 12:50
0
Неандерталец :)
У меня тоже нет вэбмани, белки, изипея. :)
03 декабря 2015, 12:45
0
А можно как-то тебе лично перечислить, а ты купишь?
03 декабря 2015, 12:34
0
Я надеюсь, вы понимаете о чем пишете.
TV — это способ расширения системных таблиц, позволяющий эмулировать добавление новых полей — на странице теги полей и TV одинаковы. Он позволяет обычным менеджерам, не программистам, достаточно легко расширять таблицу ресурсов под собственные простые задачи (заметьте, для таблицы юзеров придуман другой механизм). Но за удобство надо платить. Для более сложных задач авторы MODX предлагают решение в виде CRC, в котором вы можете добавлять свои поля в таблицу!!! Вот вам два легальных способа расширения таблиц. Если вы сторонник только первого способа, то предложенный мной вариант явно не для вас. Я даже написал рекомендацию для таких как вы.
03 декабря 2015, 09:56
+1
в Минск приедет, наверное, самый известный в наших краях MODX разработчик – Василий Наумкин (bezumkin)
Не наверное, а совершенно точно!
Тыкните носом на время проведения, не нашел.
03 декабря 2015, 09:44
0
Важно! Добавил рекомендации для использования этого метода, чтобы избежать страшных последствий.
03 декабря 2015, 09:31
0
Конечно. Нам этот «прицеп» нужен только для форм в админке, а на сайте можно его отцепить.
03 декабря 2015, 09:20
+1
Тогда не забудь добавить этот префикс и в теги на странице — [[*ext_fieldname]], чтобы парсер не лазил в таблицу ТВ-шек.
02 декабря 2015, 22:44
+2
Как вариант сделать простенький сниппет и вызывать его на странице
[[!getFileInfo? &file=`[[*tv_file]]`
А сам сниппет приблизительно такой
<?php
$fileInfo = array();
$fileInfo['filesize'] = filesize($file);
$tmp = explode('.',$file);
$fileInfo['filseExt'] = end($tmp);
$modx->setPlaceholders($fileInfo);
Соответственно, доступны 2 плейсхолдера для страницы [[+filesize]] и [[+fileExt]].
02 декабря 2015, 21:13
0
Если ты их не будешь выводить но фронте, то можно ничего не менять.
02 декабря 2015, 18:30
+1
Помню вроде про 4096 столбцов. Про типы ничего сказать не могу.
02 декабря 2015, 18:13
0
Это не совсем дубль. ТВ-шки используются для отображения в форме в админке — они могут быть разного типа, чекбоксы, селекты и т.п. Они нужны для работы менеджеров. А поля в таблице сохраняют только текущее значение ТВ. Они предназначены для использования в запросах. Василий привел пример джойнов для двух ТВ. И это выглядит пугающе. А представьте, что вам нужно обработать несколько ТВ-шек. Мало того, что потратите кучу времени, чтобы грамотно составить запрос со всеми этими джойнами, так еще и такой запрос будет нагружать сайт. А в данном случае, вы работаете с одной таблицей со всеми вытекающими плюсами. Это нужно не всем, а только тем, кто активно пользуется ТВ-шками.
Кроме того, нет ничего страшного в том, чтобы добавить даже 30 полей. Думаю, даже вы не заметите разницы, а уж mySQL точно.
02 декабря 2015, 17:11
0
Если ты выводишь ТВ-шки на странице сайта, то обрати внимание на последние пару абзацев статьи.
02 декабря 2015, 16:52
0
Проблема в том, что в классе modRequest в 247 строчке подгружаются ТВ-шки и затирают значение поля. Выход нашел пока только один — ТВ-шкам давать префикс. Например, создаем ТВ «tv.action», а поле для нее создаем «action».
Тогда в плагине нужно писать так
$resource->set('action', $resource->getTVValue('tv.action'));
02 декабря 2015, 16:35
0
В админке и в выборках все нормально, работает как положено. А если попробовать вывести на страницу, например, [[*action]] из моего примера, то получаю всегда 1, независимо от значения в таблице ресурсов и TV. Для интереса создал поле varchar для текстовой ТВ-шки. Сохраняется нормально (пишет в таблицу значение «test»), а на страницу выводит массив
Array ( [0] => test [1] => test [2] => default [3] => [4] => text )
02 декабря 2015, 16:26
0
Только что обнаружил, что рендерятся эти новые поля на странице криво. Пока не понял почему. В таблице одно значение, а выводится другое.
02 декабря 2015, 16:15
0
Новый вариант симпатичнее и понятнее. Красота!