У меня есть этот 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();
}
}