Ilyas
Многие хотят. Просить можно и нужно, а вот что будет - практически предсказуемо. ((% Сначала отх**сосят, а потом будут просить сделать бесплатно.
Как раз таки предсказуемо, как мы видим на примере EvolutionCMS 2.0 и ManagerManager. Написал статью про MM, расскззал о планах, показал, что уже работа начата. Потратил 6 (!) часов только на статью. И какой результат? Один только @dvakotaby задонатил 3к и всё на этом! Остальные игнорят, а некоторые в голос кричат, какой я плохой, потому что [+ПодставьтеСвоё+]. Всё, вот она, вся культура русскоязычного сообщества, пользоваться все горазды бесплатно, а поддержать друг друга — хер там плавал 🙂
Антон
в то же самое время на modx.im собирали на развитие дополнений
Антон
тот же SG
Ilyas
Хоть бы один ещё хоть несколько сотен рублей жалкие кинул за всё то время, на котором он на MM (в том числе) деньги зарабатывает. Нет, только хуесосить все горазды 🙂 Желание что-либо вообще делать отбивает очень резко и сильно при таких раскладах. И, как я вижу, у всех так. Донат вообще не развит, как культура, только подавай всем на халявку и побольше. Сплошь жадные и неблагодарные токсики. Так, получается? Вот в этом наше сообщество заключается? Мандеть друг на друга, просить бесплатной помощи и голову в песок засовывать, когда у тебя попросили донат?
Pathologic
тот же SG
собрали со скрипом
Илья
я так понимаю, что сегодня меня занесло и внес я не приятные ноты в общение. на чем прошу прощения, был не прав. злобный день начался прямо с утра...
Антон
http://modx.im/blog/kraudfanding/
Ilyas
я так понимаю, что сегодня меня занесло и внес я не приятные ноты в общение. на чем прошу прощения, был не прав. злобный день начался прямо с утра...
Спасибо за эти слова! ✊ Всё хорошо, потом вроде на добрую ноту переключились, никто не в обиде 👍 Все мы люди, но главное — вовремя понять и остановиться.
Ilyas
http://modx.im/blog/kraudfanding/
О, классный блог, спасибо! Хотя тег, наверное, был бы удобнее 🙂
Ilyas
Дык, так и написал - предсказуемо ((:
Ох, почему-то прочитал наоборот 🙈
Am
Ох, почему-то прочитал наоборот 🙈
Потому что токсичная атмосфера сработала (((%
Ilyas
http://modx.im/blog/kraudfanding/
Вдруг кому будет тоже удобнее тегом, создал таковой: http://modx.im/tag/Краундфандинг/
Pathologic
Краундфандинг - откуда этот краунд берется?
Pathologic
там даже близко нет буквы н
Ilyas
Краундфандинг - откуда этот краунд берется?
Ё-моё, просто скопировал из названия блога, даже не посмотрел 🙄 Сейчас поправлю.
Pathologic
да и про донат - из статьи не понятно для чего вообще деньги собираются
Антон
Anonymous
Короче я тогда сбил боту фишку с докой 😞 Напишите кто-нибудь "ManagerManager?"
Andrey
ManagerManager?
EVO bot Лёшка
ManagerManager?
http://docs.evo.im/04_extras/managermanager.html
Anonymous
Я проверку на игнор от бота вставил после того как впихнул обнуление счётчика 😊
Anonymous
В итоге он мне сообщение не отправил, но счётчик обнулил
Andrey
Я твой Формлистер документация читал.
Anonymous
Я твой Формлистер документация читал.
Ну а тут нет вопроса и лимит в 30 сообщений игнорируется 😉
Pathologic
значит Дима вредитель 😸
Aliaksandr
Нет тут никаких токсиков, обычный кипишь дембелей при появлении новичков))
Ilyas
да и про донат - из статьи не понятно для чего вообще деньги собираются
Эээм, для переработки плагина. Даже не понимаю вопроса, вроде бы подробно постарался расписать, кто к чему и почему.
Ilyas
http://docs.evo.im/04_extras/managermanager.html
Классно, узнаю свои тексты 😊 Кстати, делал API, чтобы можно было автоматом выкачивать доки с code.DivanDesign.ru, круто было бы прикрутить к docs.evo.im.
Ilyas
так он вроде и сейчас работает
Только неудобно и с устаревшей архитектурой. Вы точно читали статью? 🙂
Pathologic
я думаю, что его конечным пользователям это пофиг
Ilyas
я думаю, что его конечным пользователям это пофиг
Да ладно, настраивать MM через правила PHP кодом — это боль. Гораздо удобнее было бы в визуальном интерфейсе, интегрированном в среду.
Pathologic
а правила эти каждый день нужно настраивать?
Ilyas
а правила эти каждый день нужно настраивать?
Зависит от того, насколько активно развивается тот или иной проект. Да даже если не каждый день — всё равно собственное удобство и экономия времени очевидны.
Pathologic
один раз настроил и тягай потом правила туда-сюда 🙃
Pathologic
в рево настроить права пользователей куда сложнее, но я однажды настроил как мне надо и просто копирую настройки
Aliaksandr
тут проблема в целевой аудитории - правила эти конечным пользователям я так понимаю и не нужны, а если "программист сайта" не может настроить их в php - то тут уж никакими донатами дело не поправишь :)
Ilyas
один раз настроил и тягай потом правила туда-сюда 🙃
Видимо, мы по-разному настраиваем 🙂 У меня типичный файл mm_rules.inc.php — это 100–200 строк кода, внушительная часть из которого уникальны для проекта.
Pathologic
да, настолько я никогда не заморачивался даже когда пользовался мм
Ilyas
Видимо, мы по-разному настраиваем 🙂 У меня типичный файл mm_rules.inc.php — это 100–200 строк кода, внушительная часть из которого уникальны для проекта.
Дешевле всё в доску настроить, чтобы у редакторов не было возможности совершать ошибки и донимать глупыми вопросами.
Pathologic
а в визуальном редакторе такой объем правил разве будет быстрее создать
Ilyas
да, настолько я никогда не заморачивался даже когда пользовался мм
Опять же, возможно, я лучше представляю возможности MM, потому и глубже использую. Вот это точно нивелируется нормальным интерфейсом. Не нужно будет вникать в документацию или код, всё будет интуитивно-понятно.
Ilyas
Взять ту же обязательность полей для заполнения. Куда как проще, понятней и доступнее при создании TV поставить галочку «Required», чем писать правило в PHP. А как жить без обязательных полей и не утонуть в постоянных псевдо-багрепортах от блондинок — не представляю. Особенно, если проект не один, а штук хотя бы 50 (что не сильно много).
Ilyas
Ну или Яндекс.Карта, как, блин, жить без Яндекс.Карты на 90% проектов? Зашивать гвоздями координаты в шаблоны?
Ilyas
Или скрытие ненужных полей у документов, когда редакторы путаются и постоянно «что-то заполняют, а оно не отображается».
Ilyas
И это всего лишь пара примеров, я их могу генерировать десятками 😉
Pathologic
это все верно, но когда поля сначала видны, а потом их скрывает jquery, то это так себе решение
Pathologic
а карта плохой пример, потому что для нее мм не нужен
Ilyas
а карта плохой пример, потому что для нее мм не нужен
Кому как 🙂 Когда это в MM разрабатывалось, альтернатив не было от слова «совсем». Я тоже могу сказать, что зачем что-то ещё, если это в MM лет 10 уже есть?
Ilyas
это все верно, но когда поля сначала видны, а потом их скрывает jquery, то это так себе решение
Это вопрос реализации. Можно и на JS сделать, чтобы не видно было. А можно и вообще без JS сделать. MM на JS, потому что: * иначе было никак раньше; * менее хрупко с точки зрения совместимости с другими плагинами; * всё равно JS там будет много, можно скрытие полей переписать на PHP, но это милипусенькая часть.
Ilyas
а карта плохой пример, потому что для нее мм не нужен
Ну а если мало таких примеров, давай ещё несколько: mm_ddMaxLength Ограничение максимального количества вводимых символов (как в Твиттере). Пригождается регулярно. mm_ddCreateSection + mm_ddMoveFieldsToSection mm_createTab + mm_moveFieldsToTab Создание произвольных секций и табов. mm_ddReadonly Бывает, что в TV надо хранить, к примеру, количество просмотров страницы или какую-то ещё другую информацию, которая заполняется программно, а ручками редактироваться не должна. mm_ddSelectDocuments Выбор в поле ID других документов. Здесь всякие связки типа «Рекомендуемые товары» и т. п. mm_widget_tags Даже не знаю, что тут написать, что, теги никто не использует что ли? 🙂 Да чего далеко ходить, mm_widget_showimagetvs Превьюшки изображений в TV! Этим уж точно все пользуются.
Anonymous
Создание произвольных секций и табов. А что мешает разруливать секции и табы переключением системной настройки?
Ilyas
Создание произвольных секций и табов. А что мешает разруливать секции и табы переключением системной настройки?
1. Она появилась очень недавно. 2. Она привязана к категориям, а это для меня недостаточно гибко.
Senya
Добрый день, нашел на форуме снипет для шопкипера и еформ - купить в один клик , при отправке письма передает в письмо и модуль название товара и цену. Я в php совсем ноль , может кто подскажет как передать туда же поля [+count+] и[+addit_data+]. <?php if (!function_exists('oneclick_name')) { function oneclick_name(&$fields) { global $modx; $id = $fields['prod_id']; if (!is_numeric($id)) return; $url = $modx->makeUrl($id, '', '', 'full'); $pagetitle = $modx->db->getValue('Select pagetitle from '.$modx->getFullTableName('site_content').' where id='.$id); $price = $modx->db->getValue('Select value from '.$modx->getFullTableName('site_tmplvar_contentvalues').' where contentid='.$id.' and tmplvarid=8'); // Здесь 8 - ИД ТВ-параметра с ценой $fields['orderData'] = '<p><a href="'.$url.'" target="_blank">'.$pagetitle.'</a> - '.$price.' руб.</p>'; } } if (!function_exists('oneclick')) { function oneclick(&$fields) { global $modx; if ($modx->db->getRecordCount($modx->db->query("show tables from ".$modx->db->config['dbase']." like '".$modx->db->config['table_prefix']."manager_shopkeeper'"))==0) return; $id = $fields['prod_id']; if (!is_numeric($id)) return; $short_txt = is_array($fields) ? $modx->db->escape(serialize($fields)) : ''; $userLoggedIn = $modx->userLoggedIn(); $userId = $userLoggedIn!==false ? $userLoggedIn['id'] : 0; $short_txt = is_array($fields) ? $modx->db->escape(serialize($fields)) : ''; $price = $modx->db->getValue('Select value from '.$modx->getFullTableName('site_tmplvar_contentvalues').' where contentid='.$id.' and tmplvarid=8'); // Здесь 8 - ИД ТВ-параметра с ценой $arr = array(array('0'=>$id,'2'=>$price,'1'=>1,'catalog'=>0)); $userLoggedIn = $modx->userLoggedIn(); $userId = $userLoggedIn!==false ? $userLoggedIn['id'] : 0; $ins_fields = array( 'short_txt' => $short_txt, 'content' => $modx->db->escape(serialize($arr)), 'allowed' => 'all', 'addit' => '', 'price' => $price, 'currency' => 'руб.', 'date' => date("Y-m-d H:i:s"), 'note' => 'Заказ в 1 клик.', 'email' => $fields['email'], 'phone' => $fields['phone'], 'payment' => '', 'tracking_num' => '', 'status' => 1, 'userid' => $userId ); $order_id = $modx->db->insert($ins_fields, $modx->getFullTableName('manager_shopkeeper')); $modx->invokeEvent('OnSHKsaveOrder', array('id' => $order_id,'purchases' => serialize($arr))); $modx->invokeEvent('OnSHKChangeStatus',array('order_id'=>$order_id,'status'=>1)); } }
EVO bot Лёшка
Добрый день, нашел на форуме снипет для шопкипера и еформ - купить в один клик , при отправке письма передает в письмо и модуль название товара и цену. Я в php совсем ноль , может кто подскажет как передать туда же поля [+count+] и[+addit_data+]. <?php if (!function_exists('oneclick_name')) { function oneclick_name(&$fields) { global $modx; $id = $fields['prod_id']; if (!is_numeric($id)) return; $url = $modx->makeUrl($id, '', '', 'full'); $pagetitle = $modx->db->getValue('Select pagetitle from '.$modx->getFullTableName('site_content').' where id='.$id); $price = $modx->db->getValue('Select value from '.$modx->getFullTableName('site_tmplvar_contentvalues').' where contentid='.$id.' and tmplvarid=8'); // Здесь 8 - ИД ТВ-параметра с ценой $fields['orderData'] = '<p><a href="'.$url.'" target="_blank">'.$pagetitle.'</a> - '.$price.' руб.</p>'; } } if (!function_exists('oneclick')) { function oneclick(&$fields) { global $modx; if ($modx->db->getRecordCount($modx->db->query("show tables from ".$modx->db->config['dbase']." like '".$modx->db->config['table_prefix']."manager_shopkeeper'"))==0) return; $id = $fields['prod_id']; if (!is_numeric($id)) return; $short_txt = is_array($fields) ? $modx->db->escape(serialize($fields)) : ''; $userLoggedIn = $modx->userLoggedIn(); $userId = $userLoggedIn!==false ? $userLoggedIn['id'] : 0; $short_txt = is_array($fields) ? $modx->db->escape(serialize($fields)) : ''; $price = $modx->db->getValue('Select value from '.$modx->getFullTableName('site_tmplvar_contentvalues').' where contentid='.$id.' and tmplvarid=8'); // Здесь 8 - ИД ТВ-параметра с ценой $arr = array(array('0'=>$id,'2'=>$price,'1'=>1,'catalog'=>0)); $userLoggedIn = $modx->userLoggedIn(); $userId = $userLoggedIn!==false ? $userLoggedIn['id'] : 0; $ins_fields = array( 'short_txt' => $short_txt, 'content' => $modx->db->escape(serialize($arr)), 'allowed' => 'all', 'addit' => '', 'price' => $price, 'currency' => 'руб.', 'date' => date("Y-m-d H:i:s"), 'note' => 'Заказ в 1 клик.', 'email' => $fields['email'], 'phone' => $fields['phone'], 'payment' => '', 'tracking_num' => '', 'status' => 1, 'userid' => $userId ); $order_id = $modx->db->insert($ins_fields, $modx->getFullTableName('manager_shopkeeper')); $modx->invokeEvent('OnSHKsaveOrder', array('id' => $order_id,'purchases' => serialize($arr))); $modx->invokeEvent('OnSHKChangeStatus',array('order_id'=>$order_id,'status'=>1)); } }
http://docs.evo.im/04_extras/if.html http://docs.evo.im/04_extras/shopkeeper.html
Сергей
1. Она появилась очень недавно. 2. Она привязана к категориям, а это для меня недостаточно гибко.
вот как раз достаточно гибко, и менеджер категорий так же имеется
Andrey
Добрый день, нашел на форуме снипет для шопкипера и еформ - купить в один клик , при отправке письма передает в письмо и модуль название товара и цену. Я в php совсем ноль , может кто подскажет как передать туда же поля [+count+] и[+addit_data+]. <?php if (!function_exists('oneclick_name')) { function oneclick_name(&$fields) { global $modx; $id = $fields['prod_id']; if (!is_numeric($id)) return; $url = $modx->makeUrl($id, '', '', 'full'); $pagetitle = $modx->db->getValue('Select pagetitle from '.$modx->getFullTableName('site_content').' where id='.$id); $price = $modx->db->getValue('Select value from '.$modx->getFullTableName('site_tmplvar_contentvalues').' where contentid='.$id.' and tmplvarid=8'); // Здесь 8 - ИД ТВ-параметра с ценой $fields['orderData'] = '<p><a href="'.$url.'" target="_blank">'.$pagetitle.'</a> - '.$price.' руб.</p>'; } } if (!function_exists('oneclick')) { function oneclick(&$fields) { global $modx; if ($modx->db->getRecordCount($modx->db->query("show tables from ".$modx->db->config['dbase']." like '".$modx->db->config['table_prefix']."manager_shopkeeper'"))==0) return; $id = $fields['prod_id']; if (!is_numeric($id)) return; $short_txt = is_array($fields) ? $modx->db->escape(serialize($fields)) : ''; $userLoggedIn = $modx->userLoggedIn(); $userId = $userLoggedIn!==false ? $userLoggedIn['id'] : 0; $short_txt = is_array($fields) ? $modx->db->escape(serialize($fields)) : ''; $price = $modx->db->getValue('Select value from '.$modx->getFullTableName('site_tmplvar_contentvalues').' where contentid='.$id.' and tmplvarid=8'); // Здесь 8 - ИД ТВ-параметра с ценой $arr = array(array('0'=>$id,'2'=>$price,'1'=>1,'catalog'=>0)); $userLoggedIn = $modx->userLoggedIn(); $userId = $userLoggedIn!==false ? $userLoggedIn['id'] : 0; $ins_fields = array( 'short_txt' => $short_txt, 'content' => $modx->db->escape(serialize($arr)), 'allowed' => 'all', 'addit' => '', 'price' => $price, 'currency' => 'руб.', 'date' => date("Y-m-d H:i:s"), 'note' => 'Заказ в 1 клик.', 'email' => $fields['email'], 'phone' => $fields['phone'], 'payment' => '', 'tracking_num' => '', 'status' => 1, 'userid' => $userId ); $order_id = $modx->db->insert($ins_fields, $modx->getFullTableName('manager_shopkeeper')); $modx->invokeEvent('OnSHKsaveOrder', array('id' => $order_id,'purchases' => serialize($arr))); $modx->invokeEvent('OnSHKChangeStatus',array('order_id'=>$order_id,'status'=>1)); } }
Где именно нашёл? Может там написано ,как)
Ilyas
вот как раз достаточно гибко, и менеджер категорий так же имеется
У каждого своё «достаточно» 😉 Да и потом, категории TV у нас, к примеру, ≠ как это должно быть на странице документа. Категории TV для удобства разработчиков, разнесение TV по секциям и вкладкам — для удобства редакторов.
Ilyas
tags и showimagestv не ваша разработка.
Ну и? Я и не утверждал обратного. Это часть ManagerManager и мы их поддерживаем и развиваем в том числе. Опять каким-то спором на пустом месте попахивает 😉
Senya
Где именно нашёл? Может там написано ,как)
https://modx.ru/novosti-i-stati/article/331/ нет к сожалению
Ilyas
tags и showimagestv не ваша разработка.
Кроме того, о чём мы тут говорим? Разве не было бы удобнее этими штуками тоже в интерфейсе пользоваться вместо PHP-кода в «правилах»?
Andrey
Надо для custom TV запилить конфиги, чтобы можно было им передавать сразу из админки ТВ параметры. Как сейчас для других "зашитых" в ядро типов ТВ. И было бы круто.
Pathologic
так это же есть уже, просто из списка выбираешь и все
Сергей
Ну и? Я и не утверждал обратного. Это часть ManagerManager и мы их поддерживаем и развиваем в том числе. Опять каким-то спором на пустом месте попахивает 😉
если мы говорим о ММ который в ядре, вы их не поддерживаете и не развиваете, MM поддерживается сообществом. А если о том что у вас на гите с одноимённым названием, то это да, вы развиваете и поддерживаете)
Ilyas
tags и showimagestv не ваша разработка.
Вот это то, что изначально было в MM, а всё остальное — наших рук дело по большей части.
Andrey
так это же есть уже, просто из списка выбираешь и все
А после выбора из списка типа тв, скажем "Selector" твой, грузились бы его настройки. Из некого json, как вариант. Типа "Откуда выбирать документы" и поле, "Глубина выборки" и поле.
Pathologic
но через файлы тоже нормально
Сергей
Вот это то, что изначально было в MM, а всё остальное — наших рук дело по большей части.
так вот то что уже было, то по умолчанию все и используют, а то что вы добавили, если честно только у Либера и встречал)
Ilyas
если мы говорим о ММ который в ядре, вы их не поддерживаете и не развиваете, MM поддерживается сообществом. А если о том что у вас на гите с одноимённым названием, то это да, вы развиваете и поддерживаете)
То, что в ядро из нашего репозитория не втягивается — это другой вопрос. С каждой новой версией MM (ветка master) отправляли пулреквесты всю жизнь. Только давненько новых версий не выходило, вот и пулреквестов не было. Но вы легко увидите, что отличия от версии ядра, тем не менее, минимальное. «поддерживается сообществом» — это по большей части баги фиксятся при релизах новой версии CMS, на этом вся поддержка заканчивается.
Ilyas
так вот то что уже было, то по умолчанию все и используют, а то что вы добавили, если честно только у Либера и встречал)
А вы что, всех опрашивали? 😄 Прям каждого? Уверяю, «все» — точно некорректное слово в данном случае.