/**
  * 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;
 }
Exemple #2
0
 /**
  * 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;
 }
Exemple #3
0
 /**
  * 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;
 }
Exemple #5
0
    /**
     * 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;
    }
Exemple #6
0
 /**
  * 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;
 }