прямая загрузка файла .ics вместо отправки по электронной почте - PullRequest
0 голосов
/ 06 марта 2020

У меня есть этот php код, который после нажатия кнопки / отправки кнопки / отправки файла .ics на электронную почту. Что мне нужно, это прямая загрузка файла .ics вместо отправки его по электронной почте. Я пытаюсь заменить:

echo $ remind_id;

на echo json_encode (массив ('result' => $ result, 'file' => $ target));

но безуспешно Также попробуйте добавить класс к кнопке / submit /, но безуспешно. Я очень беден с php. Если есть воин php, который может помочь, я буду очень признателен за это

/**
 * Send Joomreprter mail
 *
 * @return boolen
 */

public function sendMailer($recipient, $subject, $body, $htmlmode=true, $cc=null, $bcc=null, $attachment=null, $replyto=null, $replytoname=null )
{
    jimport('joomla.utilities.utility');

    $config = JFactory::getConfig();
    $from = $config->get( 'mailfrom' );
    $fromname = $config->get( 'fromname' );

    $mailer = JFactory::getMailer();

    $sender = array($from,$fromname);
    $mailer->setSender($sender);
    $mailer->addRecipient($recipient);
    $mailer->setSubject($subject);
    $mailer->setBody(nl2br($body));
    $mailer->isHTML($htmlmode);
    $mailer->addCC($cc);
    $mailer->addBCC($bcc);
    $mailer->addAttachment($attachment);

    $send = $mailer->Send();

    if ( $send == 1 ) {
     return true;
    }
}

if ($ remind_id) {$ object_url = JRoute :: _ ($ jinput-> get ('object_url) ',' ',' RAW '));

            $dtstart    = $jinput->get('remind_date','','RAW') . ' '. $jinput->get('remind_time','','RAW') . ':00';

            header('Content-type: text/calendar; charset=utf-8');

            $ics = new ICS(array(
              'location' => $object_url,
              'description' => $jinput->get('comment','','RAW'),
              'dtstart' => $dtstart,
              'dtend' => $dtstart,
              'summary' => $jinput->get('object_title','','RAW'),
              'url' => $object_url
            ));

            $ics_file_contents =  $ics->to_string();

            $target = JPATH_SITE . '/media/com_joomreminder/ics/event_' . $jr_user_id . '_' . $remind_id . '.ics';

            JFile::write($target, $ics_file_contents);

            $params = JComponentHelper::getParams('com_joomreminder');

            $config = JFactory::getConfig();

            $recipient_to_user = $jinput->get('email','','RAW');
            $subject_to_user = JText::sprintf('COM_JOOMREMINDER_USER_REMIND_SUBJECT', $jinput->get('object_title','','RAW'));

            $body_to_user = str_replace('{uname}', $jinput->get('name','','RAW'), $params->get('reminder_email'));
            $body_to_user = str_replace('{website}',$config->get( 'sitename' ), $body_to_user);
            $body_to_user = str_replace('{ucomment}', $jinput->get('comment','','RAW'), $body_to_user);

            $recipient = array_map('trim', explode(',', $recipient_to_user));
            $attachment = array_map('trim', explode(',', $target));

            $result = $JoomreminderHelpers->sendMailer($recipient, $subject_to_user, $body_to_user, true, '', '', $attachment, '', '');

            if ($result)
            {
                JFile::delete($target);
            }
        }
    }

    echo $remind_id;

    jexit();
}

}


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...