09 января 2018, 20:35 Спасибо, я решил вот так [[!pdoResources? &parents=`2` &depth=`3` &limit=`1` &tpl=`tpl.url` &where=`{"pagetitle":"[[+tv.rrr]]"}` ]]меня тоже озарило) учитывая что id для меня не самоцель, а этап для получения урл ресурса, мне кажется это более подходящий вариант Вопросы / Получение id ресурса по pagetitle 17 0
05 января 2018, 18:44 в общем прошлый скрипт почему-то работал до первой запятой в тексте и требовал csv в одну строку, в процессе борьбы с этими проблемами скрипт чуть изменился. Вот итоговый вариант, может кому пригодится. Создал 900 страниц за 1 минуту <?php require_once '/путь/до/data/www/конфига/config.core.php'; require_once MODX_CORE_PATH.'model/modx/modx.class.php'; $modx = new modX(); $modx->initialize('web'); $modx->getService('error','error.modError', '', ''); $csvArray = array(); $csvData = file_get_contents(MODX_ASSETS_PATH . 'file.csv'); $lines = explode(PHP_EOL, $csvData); foreach ($lines as $line) { $csvArray[] = str_getcsv($line, ';'); } for ($i = 0; $i <= count($csvArray)-1; $i++) { $response = $modx->runProcessor('resource/create', array( 'pagetitle' => $csvArray[$i][0], 'description' => 'описание '.$csvArray[$i][0], 'tv1' => $csvArray[$i][1], 'tv2' => $csvArray[$i][2], 'introtext' => '', 'content' => '', 'alias' => 'info-'.$csvArray[$i][0], 'template' => 3, 'published' => 1, 'parent' => 2, 'hidemenu' => 1 )); } ?>скрипт нужно положить где-то на сервере и запустить через консоль php /путь/до/скрипта/скрипт.phpсоответственно он из файла file.csv создаст кучу ресурсов. Спасибо Михаилу за помощь! Вопросы / Массовое создание элементов 9 0
05 января 2018, 02:43 в итоге получился вот такой код $csv = array_map('str_getcsv', file(MODX_ASSETS_PATH . 'user.csv')); foreach($csv as $key){ $key = str_getcsv($key[0], ';'); } for ($i = 0; $i <= count($key)-1; $i++) { $response = $modx->runProcessor('resource/create', array( 'pagetitle' => $key[$i], 'longtitle' => $key[$i+1], 'description' => '', 'introtext' => '', 'content' => '', 'alias' => $key[$i], 'template' => 3, 'published' => 1, 'parent' => 2, 'hidemenu' => 1 )); $i=$i+1;для простоты я пока оставил только 2 поля, все равно планируется регулярное обновление тогда и добавлю TV параметр. Все работает, только почему-то за раз добавляется 145 ресурсов. Это конечно лучше чем по одному и руками, но все равно хочется разобраться как это делать для любого количества элементов. Вопросы / Массовое создание элементов 9 0
03 января 2018, 14:13 Да. Оригинал в табличке xls, оттуда можно с любыми разделителями сформировать. Вопросы / Массовое создание элементов 9 0
17 декабря 2017, 20:07 разобрался, Fenom нужно было отдельно включить в настройках Готовые решения / Генерация PDF из формы FormIt + Генерация PDF из любых данных по кнопке (без FormIt) в MODX Revo 35 0
17 декабря 2017, 18:28 да, я ж оттуда и взял tplCSS, но чтобы там не прописывал — ничего не подтягивается, там собственно по дефолту уже есть h1 и даже он не работает. в итоге заработало только принудительное прописывание стилей каждому элементу. Готовые решения / Генерация PDF из формы FormIt + Генерация PDF из любых данных по кнопке (без FormIt) в MODX Revo 35 0
17 декабря 2017, 17:18 а какие ограничение по размеру отправляемого файла здесь? upload_max_filesize:12М, но даже 8М с чем-то не пролазит, а более мелкий размер, до 1мегабайта — легко. Вопросы / Как отправить файл на указанный мейл через formit? 21 0
17 декабря 2017, 15:10 еще вопрос по генерации pdf возник — а как сделать нужное форматирование? по умолчанию он заголовки понимает, жирный там, а свои стили я и в tplCSS и свой шаблон создавал и указывал его при вызове FormIT и в шаблоне tpl.PDF прописывал — ноль результат, такое ощущение что где-то есть еще параметр разрешающий использовать свой CSS Готовые решения / Генерация PDF из формы FormIt + Генерация PDF из любых данных по кнопке (без FormIt) в MODX Revo 35 0
16 декабря 2017, 14:36 решил сохранять этот файл на сервер, а потом по аналогии его прикреплять к письму. Вопросы / Как отправить файл на указанный мейл через formit? 21 0
16 декабря 2017, 14:35 проверил — написано что последняя 3.0.4-pl, от 4 ноября. а для Fenom нужен только pdoTools? Готовые решения / Генерация PDF из формы FormIt + Генерация PDF из любых данных по кнопке (без FormIt) в MODX Revo 35 0
16 декабря 2017, 12:20 Еще вопрос возник — а как с этим хуком пользователю приложить файл? добавляю в форму <div> <label for="files">Прикрепить файлы</label> <input type="file" name="filesToUpload" id="filesToUpload" value="[[!+fi.filesToUpload]]" /> </div>в чанке указываю Прикрепленный файл: [[+filesToUpload]]но в письме в итоге так и приходит [[+filesToUpload]] Если с тем же чанком использую стандартный сниппет FormIt email то файл нормально прикладывается. Вопросы / Как отправить файл на указанный мейл через formit? 21 0
14 декабря 2017, 19:09 да, объединить сниппеты оказалось самым простым выходом из ситуации)) спасибо! Вопросы / Как отправить файл на указанный мейл через formit? 21 0
14 декабря 2017, 18:00 [[!FormIt? &pdfTpl=`tpl.PDF` &hooks=`pdf, SendFilePDF, redirect` &author=`Автор PDF` &title=`Заголовок PDF` &emailTpl=`sentEmailTpl` &emailSubject=`Заявка на подключение` &validate=`contact_name:required:minLength=^2^, contact_email:email:required, contact_message:required` &store=`1` &redirectTo=`20` ]]сниппет pdf <?php $pdo = $modx->getService('pdoFetch'); $pdfTpl = $modx->getOption('pdfTpl', $formit->config, '', true); $author = $modx->getOption('author', $formit->config, 'Автор', true); $title = $modx->getOption('title', $formit->config, 'Заголовок PDF', true); $content = $pdo->getChunk($pdfTpl, $fields); $config = array(); $config = array_merge($config, $fields, array( 'content' => $content, 'author' => $author, 'title' => $title, )); // формируем ссылку на PDF $hook->setValue('pdf_link', $modx->runSnippet('PdfCreate', $config)); return true;и сниппет PdfCreate <?php $date = date('Y-m-d_H-i-s', time()) . '_' .rand(1, 100); $corePath = $modx->getOption('pdfresource.core_path', null, $modx->getOption('core_path') . 'components/pdfresource/'); $pdfresource = $modx->getService('pdfresource', 'PDFResource', $corePath . 'model/pdfresource/', array( 'core_path' => $corePath )); $content = $modx->getOption('content', $scriptProperties, '', true); $title = $modx->getOption('title', $scriptProperties, '', true); $author = $modx->getOption('author', $scriptProperties, '', true); $aliasPath = MODX_ASSETS_PATH . 'pdf/'; $site_url = $modx->getOption('site_url'); // настройки PDFResource (подробнее почитать здесь: http://jako.github.io/PDFResource/usage/) $pdfresource->initPDF(array( 'mode' => 'utf-8', 'format' => 'A4', 'defaultFontSize' => intval(8), 'defaultFont' => '', 'mgl' => intval(10), // margin left 'mgr' => intval(10), // margin right 'mgt' => intval(7), // margin top 'mgb' => intval(7), // margin bottom 'mgh' => intval(10), // margin header 'mgf' => intval(10), // margin footer 'orientation' => 'P', // ориентация PDF 'customFonts' => '[]', )); $pdfresource->pdf->SetTitle($title); $pdfresource->pdf->SetAuthor($author); $pdfresource->pdf->SetCreator($modx->getOption('site_url')); $pdfresource->pdf->WriteHTML($content, 2); $file_name = $date; $pdfresource->pdf->Output($aliasPath . $file_name . '.pdf', 'F'); return $site_url . ltrim($modx->getOption('assets_url'), '/') . 'pdf/' .$file_name. '.pdf';в который и генерит имя файла в переменной $file_name по сути равной дате, но вот как эту переменную передать в другой сниппет я не могу понять, просто указание имени не помогает Вопросы / Как отправить файл на указанный мейл через formit? 21 0 1
14 декабря 2017, 08:39 письмо приходит, но файл не прикладывается. наверное, потому что имя файла в переменной из другого сниппета не передается. как его можно передать? я просто писал имя переменной из сниппета где оно создается $modx->mail->attach($modx->getOption('base_path').'assets/pdf/'.$file_name.'.pdf'); Вопросы / Как отправить файл на указанный мейл через formit? 21 0
13 декабря 2017, 22:53 да, на рабочей форме все заработало, спасибо. только пришлось в чанке tpl.PDF {if $name?}<p>Имя: {$name}</p>{/if}заменить на <p>Имя: [[+name]]</p>и остальные аналогично, иначе пустой pdf генерился Готовые решения / Генерация PDF из формы FormIt + Генерация PDF из любых данных по кнопке (без FormIt) в MODX Revo 35 0
13 декабря 2017, 20:43 Так весь вызов на сайте) я ничего не менял. Ладно, я понял, посмотрю на ajaxform. А с самим formIt можно по аналогии сделать, без ajax? Там у меня точно рабочий вариант формы, который уходит на почту, только в pdf не сохраняет. Готовые решения / Генерация PDF из формы FormIt + Генерация PDF из любых данных по кнопке (без FormIt) в MODX Revo 35 0
13 декабря 2017, 19:46 не хочет даже в папку ничего сохранять. взял код из поста, только добавил форму такого плана <form id="contactForm" method="post" action="[[~[[*id]]]]"> <strong>Заполните, пожалуйста, поля и нажмите кнопку "отправить".</strong> <div> <label for="name">Имя </label><em>(обязательно, минимум 2 символа)</em><br /> <input id="name" name="name" size="30" minlength="2" value="[[!+fi.name]]" /> <label for="name"> [[!+fi.error.name]] </label> </div> <div> <label for="email">E-Mail </label><em>(обязательно)</em><br /> <input id="email" name="email" size="30" value="[[!+fi.email]]" /> <label for="email"> <span class="error">[[!+fi.error.email]]</span> </label> </div> <div> <label for="message">Примечание </label><em>(обязательно)</em><br /> <textarea id="message" name="message" cols="70" rows="7">[[!+fi.message]]</textarea> <label for="message"> <span class="error">[[!+fi.error.message]]</span> </label> </div> <div> <input name="submit" type="submit" value="Отправить"/> </div> </form>и почту для отправки в явном виде указал Готовые решения / Генерация PDF из формы FormIt + Генерация PDF из любых данных по кнопке (без FormIt) в MODX Revo 35 0
13 декабря 2017, 16:13 А можно как-то приложить сам файл, а не ссылку на него? Готовые решения / Генерация PDF из формы FormIt + Генерация PDF из любых данных по кнопке (без FormIt) в MODX Revo 35 0
UiCMPGenerator дополнение для создания пакетов Ближе к сентябрю, основная загвоздка это создание нормальной документации и видео обзора, а так пакет как бы уже готов
Checkbox для модального окна Они не отключены, они платные, чтобы писали только те, кому действительно очень надо. Когда бесплатно люди начинают думать, что я им должен.
[SendIt 2.6.0] Анализ поведения пользователя для защиты от спама (невидимая капча)... Здравствуйте. Делаю личный кабинет на Sendit и со сбросом пароля возникли проблемы. Можете подсказать, в чем ошибка? Список вопросов в одноименном разделе на modx.pro пока пуст, и,...
Minishop + честный знак (продажа маркированной продукции) В нашем случае мы решили убрать всю логику по маркировке сайта.
MiniShop3 - Не выводятся товары дополнительных категорий @SYAN ваша указанная проблема исправлена еще до версии 1.2.3 @Павлик Мышкин завел: github.com/modx-pro/MiniShop3/issues/480 github.com/modx-pro/MiniShop3/issues/481Исправим в б...
MobileDetect 2.0.0-pl функция "планшеты как стандартные браузеры не работает" в 2.1.0-pl баг исправлен
msImportExport не сохраняет родителя по умолчанию Компонент не понимает кирилические домены при загрузку фото. пример: Error download. Url : https://антаресдвери.рф/upload/iblock/a50/a50b2ef45305a3c18f6e298f1e134880.jpg. Message...
меня тоже озарило)
учитывая что id для меня не самоцель, а этап для получения урл ресурса, мне кажется это более подходящий вариант
скрипт нужно положить где-то на сервере и запустить через консоль
соответственно он из файла file.csv создаст кучу ресурсов.
Спасибо Михаилу за помощь!
для простоты я пока оставил только 2 поля, все равно планируется регулярное обновление тогда и добавлю TV параметр.
Все работает, только почему-то за раз добавляется 145 ресурсов. Это конечно лучше чем по одному и руками, но все равно хочется разобраться как это делать для любого количества элементов.
в итоге заработало только принудительное прописывание стилей каждому элементу.
upload_max_filesize:12М, но даже 8М с чем-то не пролазит, а более мелкий размер, до 1мегабайта — легко.
по умолчанию он заголовки понимает, жирный там, а свои стили я и в tplCSS и свой шаблон создавал и указывал его при вызове FormIT и в шаблоне tpl.PDF прописывал — ноль результат, такое ощущение что где-то есть еще параметр разрешающий использовать свой CSS
а для Fenom нужен только pdoTools?
добавляю в форму
в чанке указываю
но в письме в итоге так и приходит [[+filesToUpload]]
Если с тем же чанком использую стандартный сниппет FormIt email то файл нормально прикладывается.
спасибо!
и сниппет PdfCreate
в который и генерит имя файла в переменной $file_name по сути равной дате, но вот как эту переменную передать в другой сниппет я не могу понять, просто указание имени не помогает
только пришлось в чанке tpl.PDF
заменить на
и остальные аналогично, иначе пустой pdf генерился
А с самим formIt можно по аналогии сделать, без ajax? Там у меня точно рабочий вариант формы, который уходит на почту, только в pdf не сохраняет.
взял код из поста, только добавил форму такого плана
и почту для отправки в явном виде указал