Nano.Karmabot.chat
Tip-top! ShevArtV got +1 from MaximLeeXL. 65 karma in total.
alexey1m
привет, знаю мильён раз был такой вопрос
alexey1m
нужно получить ресурс, у которого определенное тв поле = значение
alexey1m
как из бд взять в PHP
Sergey
Могу написать запрос за небольшой донат
alexey1m
да я уже разобраля плюс минус
Sergey
Там две таблицы
Sergey
Документы в modx_site_content
Sergey
А вообще есть dB api
Sergey
https://modx-gu.ru/dbapi/
Артур
да я уже разобраля плюс минус
На всякий случай SELECT * FROM modx_site_content LEFT JOIN modx_site_tmplvar_contentvalues ON modx_site_content.id = modx_site_tmplvar_contentvalues.contentid WHERE modx_site_tmplvar_contentvalues.value = 1 #sql #php #ресурс_по_тв
Dan
нужно получить ресурс, у которого определенное тв поле = значение
$q = $modx->newQuery('modResource'); $q->leftjoin('modTemplateVarResource','TV','tmplvarid=1 AND contentid=modResource.id'); //id своей TV $q->where(array('TV.value'=>21)); //искомое значение TV if ($docs = $modx->getCollection('modResource',$q)){ foreach ($docs as $doc){ echo $doc->get('id'); //тут свои действия } }
alexey1m
$q = $modx->newQuery('modResource'); $q->leftJoin('modTemplateVarResource', 'city', 'modResource.id = city.contentid AND city.tmplvarid = 100'); $q->where(array( 'city.value' => $uri )); $q->select(array( 'modResource.id as id' )); $q->prepare(); $q->stmt->execute(); $res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
alexey1m
разобрался спсибо
Nano.Karmabot.chat
Swell! ShevArtV got +1 from alexey1m. 66 karma in total.
Nano.Karmabot.chat
Wonderful! Uniteddude got +1 from alexey1m. 20 karma in total.
Roman
Плюсики раздают. =)
Николай
Плюсики раздают. =)
++ На тебе тоже
Nano.Karmabot.chat
Tip-top! nokerka got +1 from biz87. 15 karma in total.
Nano.Karmabot.chat
Ouch! nokerka got -1 withdrawn by nokerka. 14 karma in total.
Николай
Оригинально
Roman
=) Читерить не будем
Артур
Плюсики раздают. =)
Тяжким умственным трудом зарабатывают 😁
Игорек
Всем привет Подскажите, в fenom можно менять тип данных у переменной? Цены выводит как string в шаблон
Николай
Нет, нельзя
Николай
Если цены минишопа - то они и есть строки
Игорек
Да, минишопа
Игорек
Спасибо
Nano.Karmabot.chat
Stunning! biz87 got +1 from vinkspupsen. 62 karma in total.
Николай
Да, минишопа
Там же приводится к красивому выводу с пробелами.
Николай
Плюсики раздают. =)
Мне тоже досталось ))
Игорек
Там же приводится к красивому выводу с пробелами.
в шаблоне надо посчитать разницу старой и новой цены
Николай
в шаблоне надо посчитать разницу старой и новой цены
Просто вырежи пробелы модификатором replace
Игорек
а писать сниппет для перевода в другой тип данных, как-то не очень хотелось бы)
Gaius Cassius
ну что ты обманываешь человека?) {$_modx->runSnippet('!setType', [ 'input' => $val, 'type' => 'Int' ])} ))
Nano.Karmabot.chat
Superb! ShevArtV got +1 from vinkspupsen. 67 karma in total.
Игорек
Спасибо, спасли проект от говонокода : D
Алексей
Evgeniy
Темы это хорошо
Алексей
голосовалка поддерживает несколько вариантов.
🅳🅼🅸🆃🆁🆈
Я сразу подумал МТБанк делает опрос о своем МТБлоге )))
Николай
Я сразу подумал МТБанк делает опрос о своем МТБлоге )))
Алексей человек серьезный. Уровень почти как у банка.
Антон
Коллеги, а можно создать ссылку на создание ресурса с передачей параметров через get? Например, чтобы был сразу заполнен alias, или pagetitle?
Евгений
знаю только про parent
Евгений
господа, ни у кого нету примера кода с отправкой писем через SMTP (modx api) не влезая в системные настройки?
Дима
господа, ни у кого нету примера кода с отправкой писем через SMTP (modx api) не влезая в системные настройки?
В #modhelpers есть очень изи методы типа указываешь юзер ид и текст и пошло письмо
Дима
он берет из системных настроек
А, так надо "не используя" системные настройки? Я про "не влезая" не так понял. Попробую поискать но не обещаю
Дима
господа, ни у кого нету примера кода с отправкой писем через SMTP (modx api) не влезая в системные настройки?
Вот тебе кусок рассыльщика, тут задаются параметры отправки если дефолтных нет: $mailer = $modx->getService('mail', 'mail.modPHPMailer'); $return = ''; foreach ($emails as $data) { if (!empty($data)) { if (!empty($data['to'])) { foreach ($data['to'] as $email=>$etn) { if (!empty($email)) $mailer->address('to', $email,$etn); } } else { $return = 'No addressed to send.'; } if (!empty($data['cc'])) { foreach ($data['cc'] as $email=>$etn) { if (!empty($email)) $mailer->address('cc', $email,$etn); } } if (!empty($data['bcc'])) { foreach ($data['bcc'] as $email=>$etn) { if (!empty($email)) $mailer->address('bcc', $email,$etn); } } if (!empty($data['reply-to'])) { foreach ($data['reply-to'] as $email=>$etn) { $mailer->address('reply-to', $email,$etn); } } if (isset($data['subject'])) $mailer->set(modMail::MAIL_SUBJECT, $data['subject']); if (isset($data['content'])) { $mailer->set(modMail::MAIL_BODY, $data['content']); } elseif (isset($data['tpl']) && $chunk = $data['tpl']['name']) { $content = chunk($chunk, $data['tpl']['data']); unset($data['tpl']); $mailer->set(modMail::MAIL_BODY, $content); } else { $return = '[Email Helper] There is nothing to send.'; } if (!empty($data['sender'])) $mailer->set(modMail::MAIL_SENDER, $data['sender']); if (!empty($data['from'])) $mailer->set(modMail::MAIL_FROM, $data['from']); if (!empty($data['fromName'])) $mailer->set(modMail::MAIL_FROM_NAME, $data['fromName']); if (isset($data['setHTML'])) $mailer->setHTML($data['setHTML']); if (!empty($data['attach'])) { foreach ($data['attach'] as $filedata) { list($file, $name, $encoding, $type) = $filedata; $mailer->attach($file, $name, $encoding, $type); } } if (!empty($return)) { $modx->log(modX::LOG_LEVEL_ERROR, $return); $mailer->reset(); continue; } if (!$mailer->send()) { $modx->log(modX::LOG_LEVEL_ERROR, 'An error occurred while trying to send the email: ' . $mailer->mailer->ErrorInfo); $mailer->reset(); $emails2 = $modx->cacheManager->get($queue,[xPDO::OPT_CACHE_KEY=>'queue']); if (empty($emails2) || !is_array($emails2)) { $emails2 = array($data); } else { $emails2[] = $data; } $emails2 = $modx->cacheManager->set($queue, $emails2, 0, [xPDO::OPT_CACHE_KEY => 'queue']); continue; } } } Сойдет?
Евгений
Вот тебе кусок рассыльщика, тут задаются параметры отправки если дефолтных нет: $mailer = $modx->getService('mail', 'mail.modPHPMailer'); $return = ''; foreach ($emails as $data) { if (!empty($data)) { if (!empty($data['to'])) { foreach ($data['to'] as $email=>$etn) { if (!empty($email)) $mailer->address('to', $email,$etn); } } else { $return = 'No addressed to send.'; } if (!empty($data['cc'])) { foreach ($data['cc'] as $email=>$etn) { if (!empty($email)) $mailer->address('cc', $email,$etn); } } if (!empty($data['bcc'])) { foreach ($data['bcc'] as $email=>$etn) { if (!empty($email)) $mailer->address('bcc', $email,$etn); } } if (!empty($data['reply-to'])) { foreach ($data['reply-to'] as $email=>$etn) { $mailer->address('reply-to', $email,$etn); } } if (isset($data['subject'])) $mailer->set(modMail::MAIL_SUBJECT, $data['subject']); if (isset($data['content'])) { $mailer->set(modMail::MAIL_BODY, $data['content']); } elseif (isset($data['tpl']) && $chunk = $data['tpl']['name']) { $content = chunk($chunk, $data['tpl']['data']); unset($data['tpl']); $mailer->set(modMail::MAIL_BODY, $content); } else { $return = '[Email Helper] There is nothing to send.'; } if (!empty($data['sender'])) $mailer->set(modMail::MAIL_SENDER, $data['sender']); if (!empty($data['from'])) $mailer->set(modMail::MAIL_FROM, $data['from']); if (!empty($data['fromName'])) $mailer->set(modMail::MAIL_FROM_NAME, $data['fromName']); if (isset($data['setHTML'])) $mailer->setHTML($data['setHTML']); if (!empty($data['attach'])) { foreach ($data['attach'] as $filedata) { list($file, $name, $encoding, $type) = $filedata; $mailer->attach($file, $name, $encoding, $type); } } if (!empty($return)) { $modx->log(modX::LOG_LEVEL_ERROR, $return); $mailer->reset(); continue; } if (!$mailer->send()) { $modx->log(modX::LOG_LEVEL_ERROR, 'An error occurred while trying to send the email: ' . $mailer->mailer->ErrorInfo); $mailer->reset(); $emails2 = $modx->cacheManager->get($queue,[xPDO::OPT_CACHE_KEY=>'queue']); if (empty($emails2) || !is_array($emails2)) { $emails2 = array($data); } else { $emails2[] = $data; } $emails2 = $modx->cacheManager->set($queue, $emails2, 0, [xPDO::OPT_CACHE_KEY => 'queue']); continue; } } } Сойдет?
спасиб
Евгений
нет
Евгений
у меня такой есть))
Евгений
проблема конкретно в SMTP
Евгений
мне надо в одной из отправок чтобы приходило с конкретного EMAIL, но хост не разрешает пихать в отправителя любую почту, принимает только доменную, а через smtp все норм, но глобально в сис настройках не надо менять
Дима
проблема конкретно в SMTP
Ты вот вот эти значения что ли переопределить хочешь? $mailer->set(modMail::MAIL_FROM, $data['from']);
Евгений
но хост не отправляет с любым
Sergey
последний час- там код
Sergey
Sergey
( или последние 20 минут )
Sergey
phpmailer
Дима
да, мне нужно FROM - любой email
Там не только FROM, а ещё emailsender или fromname должны совпадать. Хост к стати должен отправлять, но спам-фильтр получателя должен отшибать такое)
Sergey
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require '../../PHPMailer-master/src/Exception.php'; require '../../PHPMailer-master/src/PHPMailer.php'; require '../../PHPMailer-master/src/SMTP.php'; print_r($_POST); if($_POST['letter_text']) { try { $mail = new PHPMailer(true); $mail->CharSet = 'UTF-8'; $mail->isSMTP(); //Send using SMTP $mail->Host = 'smtp.mail.ru'; //Set the SMTP server to send through // $mail->SMTPDebug = 1; $mail->SMTPAuth = TRUE; //Enable SMTP authentication $mail->Username = 's-vasiliev@mail.ru'; //SMTP username $mail->Password = 'твойпароль'; //SMTP password $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; $mail->Port = 465; //TCP port to connect to; use 587 if you have set SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS $mail->setFrom('s-vasiliev@mail.ru', 'Mailer'); $mail->addAddress('su.vasiliev@gmail.com', 'Новый клиент'); //Add a recipient //Content $mail->isHTML(true); //Set email format to HTML $mail->Subject = 'Заявка с сайта от'.$_POST['name']; $mail->Body = 'Новое письмо с сайта: <br>'.$_POST['letter_text']; if( $mail->send()==true) { echo 'Письмо отправлено'; } echo $mail->ErrorInfo; } catch (Exception $e) { echo 'Ошибка:'.$e; } } else { echo 'введите письмо'; }
Sergey
<form method="post"> <input type="text" placeholder="letter_text" name="letter_text"> <input type="name" placeholder="name" name="name"> <input type="submit"> </form>
Евгений
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require '../../PHPMailer-master/src/Exception.php'; require '../../PHPMailer-master/src/PHPMailer.php'; require '../../PHPMailer-master/src/SMTP.php'; print_r($_POST); if($_POST['letter_text']) { try { $mail = new PHPMailer(true); $mail->CharSet = 'UTF-8'; $mail->isSMTP(); //Send using SMTP $mail->Host = 'smtp.mail.ru'; //Set the SMTP server to send through // $mail->SMTPDebug = 1; $mail->SMTPAuth = TRUE; //Enable SMTP authentication $mail->Username = 's-vasiliev@mail.ru'; //SMTP username $mail->Password = 'твойпароль'; //SMTP password $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; $mail->Port = 465; //TCP port to connect to; use 587 if you have set SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS $mail->setFrom('s-vasiliev@mail.ru', 'Mailer'); $mail->addAddress('su.vasiliev@gmail.com', 'Новый клиент'); //Add a recipient //Content $mail->isHTML(true); //Set email format to HTML $mail->Subject = 'Заявка с сайта от'.$_POST['name']; $mail->Body = 'Новое письмо с сайта: <br>'.$_POST['letter_text']; if( $mail->send()==true) { echo 'Письмо отправлено'; } echo $mail->ErrorInfo; } catch (Exception $e) { echo 'Ошибка:'.$e; } } else { echo 'введите письмо'; }
спасибо, попробую
Антон
В админке?
Вообще с фронта бы. Хочу сделать настройку для frontendmanager, чтобы создавать битые страницы с фронта.