/** * Generate a complete link URL for a resource. * * @param string $resourceType * @param string $resourceExternalLinkHash * @return string */ public function getLink($resourceType, $resourceExternalLinkHash, $type = 'url') { return Functions_Common::hostUrl() . '/' . $type . '/' . $resourceType . '/' . $resourceExternalLinkHash; }
/** * Generate a page screenshot. * * @param integer $pageId * @return array | false */ protected function _generateScreenshot($pageId) { $page = new Object_Page($pageId); if (!$page->getId()) { return false; } if (!$page->getPreviewLink()) { return false; } $url = $page->getPreviewLink(); if (!$page->cloud_file_container) { $url = Functions_Common::hostUrl() . $url; } $capturedImage = $this->getAdapter()->setWorkingDir($page->getStaticContentFolder())->capture($url, self::$defaultImageName, array('delay' => self::$defaultDelay)); return $capturedImage; }
/** * Send an email to presenter himself. * * @param integer $sessionId * return boolean */ public function sendSelfEmail($sessionId) { $session = new Object_PromoteSession($sessionId); if (!$session->getId()) { return false; } $userEmail = Zend_Auth::getInstance()->getIdentity()->email; $t = Zend_Registry::getInstance()->translate; $emailBody = $t->_('promote-self-email-body'); $emailBody = str_replace(array('{promoteSessionPresenterLink}'), array(Functions_Common::hostUrl() . '/promote/presenter/session/' . $session->ukey), $emailBody); $emailSubject = $t->_('promote-self-email-subject'); $emailSubject = str_replace(array('{promoteSessionSubject}'), array($this->getValue('subject') . ' ' . date('n/j/y G:i T')), $emailSubject); $emailAgent = new Mail_Mail(); $emailAgent->setBody($emailBody)->setSubject($emailSubject)->setTo($userEmail); try { $emailAgent->send(); } catch (Exception $e) { // Ignore for now } return true; }
/** * Generate a page screenshot. * * @param integer $pageId * @param array $tokens * @return array | false */ protected function _generate($templateId, $tokens = array()) { if (!$tokens) { $tokens = array(); } $pdfName = md5($templateId . '_' . serialize($tokens)); $template = new Object_PdfTemplate($templateId); if (!$template->getId()) { return false; } if (!$template->getPreviewLink()) { return false; } // Generate the GET URL with tokens $tokenUrl = 'tokens=' . urlencode(Zend_Json::encode($tokens)); $captureImage = $this->getAdapter()->setWorkingDir($template->getFolderPath())->capture(Functions_Common::hostUrl() . $template->getPreviewLink() . '?' . $tokenUrl, $pdfName . '.pdf', array('delay' => self::$defaultDelay, 'isPdf' => true)); // Turn this into a pdf /*$pdf = new Zend_Pdf(); $pdfImage = Zend_Pdf_Image::imageWithPath($captureImage); $pdfPage = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE); $pdfPage->drawImage($pdfImage, 20, 20, $pdfPage->getWidth() - 20, $pdfPage->getHeight() - 20); $pdf->pages[] = $pdfPage; $path = $this->_rootPath . DS . $pdfName . '.pdf'; $pdf->save($path);*/ return $pdfName; }
/** * Create an ics file. * */ public function createIcsFile($session, $key) { $zone = date_default_timezone_set('UTC'); $timestamp = DateTime::createFromFormat('Y-m-d H:i:s', $session->created_datetime); $start = DateTime::createFromFormat('Y-m-d H:i:s', date('Y-m-d H:i:s', substr($session->start_datetime, 0, 10))); $end = DateTime::createFromFormat('Y-m-d H:i:s', date('Y-m-d H:i:s', substr($session->start_datetime, 0, 10) + 30 * 60)); $sessionLink = Functions_Common::hostUrl() . '/promote/viewer/key/' . $key; $sessionLinkContent = ' Join the meeting: ' . Functions_Common::hostUrl() . '/promote/viewer/key/' . $key; // Start part $fileContent = <<<ICS BEGIN:VCALENDAR CALSCALE:GREGORIAN VERSION:2.0 PRODID:-//Lifelearn//Meetings//EN BEGIN:VEVENT UID:{$key} DTSTAMP:{$timestamp->format('Y')}{$timestamp->format('m')}{$timestamp->format('d')}T{$timestamp->format('H')}{$timestamp->format('i')}{$timestamp->format('s')}Z DTSTART:{$start->format('Y')}{$start->format('m')}{$start->format('d')}T{$start->format('H')}{$start->format('i')}{$start->format('s')}Z DTEND:{$end->format('Y')}{$end->format('m')}{$end->format('d')}T{$end->format('H')}{$end->format('i')}{$end->format('s')}Z SUMMARY:{$session->subject} SEQUENCE:{$session->update_sequence} ICS; // Add organizer $presenter = new Object_User($session->user_id); $fileContent .= "\n" . 'ORGANIZER;CN=' . $presenter->firstname . ' ' . $presenter->surname . ':MAILTO:' . $presenter->email . "\n"; // Add attendees $contacts = Repo_PromoteSessionContact::getInstance()->getSessionContacts($session->id); foreach ($contacts as $_contact) { $fileContent .= 'ATTENDEE;CN=' . $_contact->firstname . ' ' . $_contact->surname . ':MAILTO:' . $_contact->email . "\n"; } // End part $fileContent .= <<<ICS DESCRIPTION: {$session->invite_message}{$sessionLinkContent} URL:{$sessionLink} BEGIN:VALARM TRIGGER:-PT15M ACTION:DISPLAY DESCRIPTION:Reminder END:VALARM END:VEVENT END:VCALENDAR ICS; return $fileContent; }
/** * Reset password request with email address. * * @return boolean */ public function resetPasswordRequest($extra_parameters = null) { // Generate new key $newKey = md5($this->getId() . '_' . $this->email . '_' . time()); $this->password_reset_key = $newKey; $this->save(); $baseResetURL = Functions_Common::hostUrl() . '/login/reset-password/key/'; $sendingEntity = ""; //Customize for students if necessary if (!is_null($extra_parameters)) { if ($extra_parameters->getValue('studentData')) { $urlParams = urldecode($extra_parameters->getValue('studentData')); $urlParams = json_decode($urlParams); $resetSender = $urlParams->resetSender; $resetURL = $urlParams->resetUrl; $baseResetURL = "http://" . $resetURL . "?reset-password="******" for " . $resetSender; } } // Send out email $t = Zend_Registry::getInstance()->translate; $emailBody = $t->_('forgot-password-email-body'); $emailBody = str_replace(array('{resetPasswordLink}'), array($baseResetURL . $this->password_reset_key), $emailBody); $emailSubject = $t->_('forgot-password-email-subject') . $sendingEntity; $emailAgent = new Mail_Mail(); $emailAgent->setBody($emailBody)->setSubject($emailSubject)->setTo($this->email); try { $emailAgent->send(); } catch (Exception $e) { return false; } return true; }