Андрей

Андрей

С нами с 28 октября 2016; Место в рейтинге пользователей: #322
Андрей
23 апреля 2020, 16:54
0
вопрос снят. там же можно дальше обычным pdoTools выводить инфу.
Андрей
23 апреля 2020, 15:40
0
Пошел по пути одной страницы с обновляемыми полями для каждого пользователя. Не могу понять где и как эти поля заводить и хранить. Пока вижу один вариант — добавлять доп поля в профиль пользователя, но мне кажется это не совсем верным. Если информации будет много, то в эти полях можно запутаться.
Можно ли создать скажем страницу название которой будет равно id пользователя и чтобы она транслировалась ему в личный кабинет?
Андрей
04 января 2020, 14:38
0
собственно, код плагина, сильно упрощенный рабочий плагин
<?php
$id_review = $resource->get('id');
$page = $modx->getObject('modResource', $id_review);
$tele = $page->getTVValue('telegram');


	$page->setTVValue('telegram','нет');
	$page->save();
Андрей
02 ноября 2019, 09:43
0
проблема решилась. на некоторых сайтах у меня стояла как раз 7 версия и там не было zip, после обновления на 7.3 с zip все заработало.
Спасибо!
Андрей
01 ноября 2019, 17:52
0
Тогда просто распакуйте архив и запустите /setup/
я так и делаю, но больше нравилось нажимать на одну кнопочку)

Или установите ZipArchive
это модуль php? на 7 я его вообще не нашел, на 7.3 есть какой-то zip, установлен, но это не помогает, все равно вечный бегунок.
Андрей
01 ноября 2019, 17:26
0
А какое нужно расширение установить?
Обновление системы было, возможно что-то потерялось по дороге.
Но в целом я могу на хостинге распаковать архив через панель управления.
Андрей
19 мая 2019, 22:46
0
разобрался. оказывается
<div class="suggestion">
это важно.
Андрей
19 мая 2019, 22:15
0
с пустым сниппетом разобрался, это я неверно установил, но все равно не работает. колесико крутится, но подсказок не появляется.
Андрей
19 мая 2019, 16:25
0
Установил компонент с гитхаба вроде бы все успешно, но сам сниппет пустой. Это нормально?
Ну и подозрений добавляет что в итоге ничего не работает. Руками добавил скрипты dadata на страницу, указываю id формы и поля как в примере, но ничего не происходит. Пытаюсь подключить подсказки.
Андрей
02 мая 2019, 12:30
0
при обновлении simpleUpdater как раз эта ошибка и вылетает
modAction support is deprecated since version 2.3.0. Support for modAction has been replaced with routing based on a namespace and action name. Please update the extra with the namespace collections to the routing based system.
Андрей
19 апреля 2019, 21:41
0
нет, фильтр вывода мне не поможет, ну или он будет сложный для меня. смысл попугаев не равных 1 рублю, был в том, что разное количество попугаев может стоить разное количество рублей и эта зависимость не пропорциональна. скажем 5 попугаев = 100 рублей, а 50 попугаев = 900 рублей. наверное, проще будет при пополнении свыше какой-то суммы добавлять бонусные рубли, на которые можно еще купить попугаев.
В остальном да, Ваш вариант самый близкий из того что я видел, пойду копать логику списания денег.
Андрей
19 апреля 2019, 20:10
0
Если вас не устраивает что 1 попугай равен одному рублю то как мне кажется можно не придумывать хитрых схем а просто при выводе подменять значения, например msprofile отдаем 100р на счету, а вы через фильтр вывода пишете 100/20=5 попугаев. Что-то в таком стиле.
да, но система-то будет знать что на счету 100 попугаев и продаст действий на 100 попугаев.
Андрей
19 апреля 2019, 19:41
0
PayAndSee нашел, очень близко, но там привязка ко времени, которое идет независимо от действий пользователя
Андрей
05 января 2019, 16:27
3
0
ох, давно это было… я может что-то еще там менял.
вот рабочий итог
[[!FormIt?
            &pdfTpl=`tpl.PDF1`
            &hooks=`formit2file, SendFilePDF, redirect`
            &author=`www.ru`
            &title=`Заявка`
            &emailTpl=`sentEmailTpl`
            &validate=`contact_email:required`
            &store=`1`
            &redirectTo=`108`
            ]]
formit2file
<?php
// initialize output;
$output = true;
$counter = 1;
 
// valid extensions
$ext_array = array('jpg', 'png', 'gif', 'JPG', 'zip', 'rar', '7z', 'rar5');
 
// create unique path for this form submission
$uploadpath = 'assets/pdf/';
 
// get full path to unique folder
$target_path = $modx->config['base_path'] . $uploadpath;
 
// get uploaded file names:
$submittedfiles = array_keys($_FILES);
 
// loop through files
foreach ($submittedfiles as $sf) {
 
    // Get Filename and make sure its good.
    $filename = basename( $_FILES[$sf]['name'] );
 
    // Get file's extension
    $ext = pathinfo($filename, PATHINFO_EXTENSION);
    $ext = mb_strtolower($ext); // case insensitive
 
    // is the file name empty (no file uploaded)
    if($filename != '') {
         
        // is this the right type of file?
        if(in_array($ext, $ext_array)) {
     
            // clean up file name and make unique
            $filename = $counter . '.' . $ext; 
            $filename = str_replace(' ', '_', $filename); // spaces to underscores
            $filename = date("G-i-s_") . $filename; // add date & time
             
            // full path to new file
            $myTarget = $target_path . $filename;
             
            // create directory to move file into if it doesn't exist
            mkdir($target_path, 0755, true);
             
            // is the file moved to the proper folder successfully?
            if(move_uploaded_file($_FILES[$sf]['tmp_name'], $myTarget)) {
                // set a new placeholder with the new full path (if you need it in subsequent hooks)
                $myFile = $uploadpath . $filename;
                $hook->setValue($sf,$myFile);
                // set the permissions on the file
                if (!chmod($myTarget, 0644)) { /*some debug function*/ }
                 
            } else {
                // File not uploaded
                $errorMsg = 'There was a problem uploading the file.';
                $hook->addError($sf, $errorMsg);
                $output = false; // generate submission error
            }
         
        } else {
            // File type not allowed
            $errorMsg = 'Type of file not allowed.';
            $hook->addError($sf, $errorMsg);
            $output = false; // generate submission error
        }
     
    // if no file, don't error, but return blank
    } else {
        $hook->setValue($sf, '');
    }
$counter = $counter + 1;
}
return $output;
SendFilePDF
<?php
$fields = $hook->getValues(); //поля из формы
$NF = $fields['filesToUpload'];//получаем имя и путь загруженного файла
$fields['filesToUpload'] = str_replace('assets/pdf/','',$fields['filesToUpload']);
$mail_z = $fields['contact_email'];
$message = $modx->getChunk('sentEmailTpl', $fields);

//формируем PDF
$pdo = $modx->getService('pdoFetch'); 
$pdfTpl = $modx->getOption('pdfTpl', $formit->config, '', true);
$content = $pdo->getChunk($pdfTpl, $fields);

$config = array();
$config = array_merge($config, $fields, array(
    'content' => $content,
    'author' => $author,
    'title' => $title,
));
// формируем ссылку на PDF
$result = $modx->runSnippet('PdfCreate', $config);
 
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY, $message);
$modx->mail->set(modMail::MAIL_FROM, $modx->getOption('emailsender'));
$modx->mail->set(modMail::MAIL_FROM_NAME, $modx->getOption('site_name'));
$modx->mail->set(modMail::MAIL_SUBJECT, 'Поступила заявка');
$modx->mail->address('to', 'xxx@gmail.com');
$modx->mail->address('to', 'xxx@mail.ru');
$modx->mail->address('to', $mail_z);
$modx->mail->address('reply-to', $modx->getOption('emailsender'));
$modx->mail->attach($modx->getOption('base_path').'assets/pdf/'.$result.'.pdf');
$modx->mail->attach($modx->getOption('base_path').$NF);
$modx->mail->setHTML(true);

if (!$modx->mail->send()) {
  $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
}

$modx->mail->reset();

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(13),
    'defaultFont' => '',
    'mgl' => intval(30),    // margin left
    'mgr' => intval(10),    // margin right
    'mgt' => intval(30),     // margin top
    'mgb' => intval(10),     // 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 $file_name;
Андрей
15 декабря 2018, 12:12
0
$q = $modx->newQuery('modResource');
$q->where(array('pagetitle' => $idsearch, 'parent:IN' => array('4498')));

$resource = $modx->getObject('modResource', $q);
ищет только в верхнем уровне, как можно добавить чтобы искал в n-вложенных уровнях?
Андрей
25 августа 2018, 12:35
0
действительно помогло, спасибо
Андрей
23 августа 2018, 17:33
0
все равно даже карта не выводится. скопировал новый код в новый сниппет, но это ничего не изменило
Андрей
21 августа 2018, 08:01
0
да, сейчас принудительно руками оттуда все удалил