/** * Form submission handler for sending sms * * @return bool */ public function sm() { $http = BlockDefault::http(); $researchType = $http->hasPostVariable( 'typeOfResearch' ) ? stripslashes( $http->postVariable( 'typeOfResearch' ) ) : ''; if(!empty($researchType)){ $this->researchType = $researchType; $this->recipientEmail = SolrSafeOperatorHelper::getCustomParameter($this->applicationObject->identifier, $this->researchType, 'application'); } if(empty($this->senderEmail) || empty($this->recipientEmail)){ return false; } $message = $this->prepareMessageText(); $mailObject = $this->prepareMailObjectText(); $email = new MailTool( $mailObject, $this->senderEmail, $this->recipientEmail, $message, self::DOC_REQUEST_LOG_NAME); return $email->sendMail(); return $sendStatus; }
/** * @return array */ protected function getCourseCompletion() { if( !$this->user() ) return false; $regexp = array( 'options' => array( 'regexp' => "/^[a-zA-Z0-9]*$/", ) ); $courseId = (isset($_REQUEST['cid']) && filter_var($_REQUEST['cid'], FILTER_VALIDATE_REGEXP, $regexp)) ? $_REQUEST['cid'] : null; $uuid = $this->user()->attribute('uuid'); $completion = 0; $status = ''; $found = false; $inError = false; $countryUuid = $uuid; $dueDate = null; //if learning tracker is enabled if( SolrSafeOperatorHelper::featureIsActive( 'MyLearningTracker' ) && SolrSafeOperatorHelper::getCustomParameter($this->getApplicationIdentifier(), 'HasLearningTracker', 'application_localized') ) { $xml = LearningTrackerWebservice::getUserCoursesStatus($courseId); if( $xml !== false ) { if( $xml->CourseStatus != null) { $found = true; $status = (string)$xml->CourseStatus; $dueDate = (string)$xml->DueDate; } } else { $inError = true; } } else { /*$url = $this->getCustomParameter('WSCompletionUrl'); $timeout = 5; $countryUuid = $uuid; if( $this->getCustomParameter('WSTimeout') ) { $timeout = $this->getCustomParameter('WSTimeout'); } $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, $url ); curl_setopt( $ch, CURLOPT_HEADER, 0 ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_TIMEOUT, $timeout ); curl_setopt( $ch, CURLOPT_POST, 1 ); curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query( array( 'AuthenticationKey' => 'medicusconnect', 'UserID' => $countryUuid, 'CourseID' => $courseId )) ); $x = curl_exec($ch); $inError = false; if( $x === false ) { $inError = true; eZDebug::writeError( print_r(array($url, curl_errno($ch), curl_error($ch)), true ), 'Call to eLearning WS failed' ); } else { $xml = simplexml_load_string($x); if( $xml !== false ) { if( $xml->Course != null && $xml->Course->coursecompletion != null ) { $completion = (string)$xml->Course->coursecompletion; $status = (string)$xml->Course->coursestatus; $found = true; $dueDate = (string)$xml->Course->duedate; } } }*/ } return array( 'uuid' => $countryUuid, 'completion' => $completion, 'status' => $status, 'found' => $found, 'courseId' => $courseId, 'inError' => $inError, 'errorMsg' => $inError ? ezpI18n::tr( 'merck', 'NO COMPLETION AVAILABLE' ) : '', 'dueDate' => $dueDate, ); }
public function contentBuildResult() { $oldSkipPage = SolrSafeOperatorHelper::getCustomParameter($this->applicationObject->identifier, 'SkipExitPage', 'application'); $skipPage = $oldSkipPage || !$this->exitStrategy(); $this->pushResult('user' , self::user()); $this->pushResult('country', LocaleTool::countryISO3166Code()); if ( $skipPage ) { $_REQUEST['proceed'] = 'proceed'; $_COOKIE[$this->cookieKey()] = '1'; if ( ContextTool::instance()->isMobile() ) $_REQUEST['r'] = 1; } if( isset($_REQUEST['proceed']) && isset($_COOKIE[$this->cookieKey()]) && filter_var($_COOKIE[$this->cookieKey()], FILTER_VALIDATE_INT)) { // proceed to iframe view $this->iframeBuildResult( ); } elseif( isset($_REQUEST['proceed']) ) { // proceed requested but no cookie, we ask again and force redirect to make sure we the proper layout header('Location: '.ContextTool::instance()->domain().$this->applicationLocalized()->applicationUrl()); eZExecution::cleanExit(); } else { // normal exit page vie $isMobile = ContextTool::instance()->isMobile(); $urlToRedirect = isset($_REQUEST['r']) ? trim($_REQUEST['r']) : null; if ($this->isExitApplication() && $this->displayIframe()) { $serverUrl = ContextTool::instance()->domain(); $params = array( 'r' => urlencode($urlToRedirect), 'exit_strategy' => 0, 'display_iframe' => $this->displayIframe(), 'new_window' => $this->newWindow() ); $urlToRedirect = $serverUrl . '/external/exit/?' . http_build_query($params); $this->pushResult('decode_url', false); $this->pushResult('server_url', $serverUrl); } if($isMobile){ if($this->applicationObject()->externalLinkHandler()) { $externalUrl = $this->applicationObject()->externalLinkHandler()->getNodeUrl( $this->node ); $urlToRedirect = isset($externalUrl) ? $externalUrl : $urlToRedirect ; if(SolrSafeOperatorHelper::getCustomParameter($this->applicationObject->identifier, 'usePostMethod', 'application' )){ $url = $this->applicationObject()->externalLinkHandler()->getNodeUrl( $this->node ); $url = $this->getDeeplink( $url ); if ($url == null && isset($_REQUEST['r'])) { $url = urldecode($_REQUEST['r']); } $url = in_array('arg', array_keys($this->_params['UserParameters'])) ? $url . $this->_params['UserParameters']['arg'] : $url; $this->pushResult('postParams', $url); } } else { $urlToRedirect = '/bad_config'; } } $this->pushResult('back_url', ContextTool::instance()->backUrl()); $this->pushResult('url', $urlToRedirect); $this->pushResult('deeplink', urlencode( $this->getDeeplink() )); // Because we are passing boolean parameters to final URL, we need to make isset check. if ( $this->isDeeplinkApplication() || $this->isExitApplication() ) { if ( isset( $_GET['display_iframe'] ) ) { $this->pushResult('display_iframe', $this->displayIframe()); } if ( isset( $_GET['new_window'] ) ) { $this->pushResult('new_window', $this->newWindow()); } if ( isset( $_GET['exit_strategy'] ) ) { $this->pushResult('exit_strategy', $this->exitStrategy()); } } } if($this->node && $this->node->attribute('url_alias') != "") { $this->pushResult('article_url', end(explode("/", $this->node->attribute('url_alias')))); /* @type $pfDM eZContentObjectAttribute[] */ $pf = NodeTool::getPublisherNodeFromNode( $this->node ); $pfDM = $pf->DataMap(); $pfID = PublisherFolderTool::getPathToIDMapping( $pfDM['path']->content() ); $this->pushResult( 'pfid', $pfID['pfid'] . '/' ); } $oldOpenInNewWindow = SolrSafeOperatorHelper::getCustomParameter($this->applicationObject()->identifier, 'openInNewWindow', 'application'); $openInNewWindow = $this->newWindow() || $oldOpenInNewWindow; $this->pushResult('application', $this->applicationObject); $this->pushResult('open_in_new_window', $openInNewWindow); $this->pushResult('cookie_key', $this->cookieKey()); $this->pushResult('node', $this->node); if( SolrSafeOperatorHelper::featureIsActive( 'GoogleAnalytics' ) ) { $this->pushResult( 'gtm_variables', $this->getGTMTags( $this->node ) ); if( $this->node ) { $publisherNodeId = PublisherFolderTool::getPublisherNodeIdFromArticleNode($this->node); if ($publisherNodeId) { $publisherInfos = PublisherFolderTool::getNodeIdToPathMapping( $publisherNodeId ); $publisherPath = $publisherInfos['path']; $this->pushResult( 'publisher', $this->applicationLocalized()->getPublisherFolderFromPath( $publisherPath ) ); } } } }
private function generateFacetHtml( $managedResults ) { $hideEmptyAccreditationFacet = SolrSafeOperatorHelper::getCustomParameter('certificates', 'HideEmptyAcreditationFacet', 'application'); if ( $hideEmptyAccreditationFacet && $managedResults['total'] == 0 ) { return false; } else { $this->_tpl = null; $this->tpl()->setVariable( 'facets', $managedResults['facets'] ); $this->tpl()->setVariable( 'total', $managedResults['total'] ); $this->tpl()->setVariable( 'no_accreditation_keyword', self::$noAccreditationKeyword ); return $this->tpl()->fetch( 'design:esibuild/app_content/certificates/facet_line.tpl' ); } }
/** * @param eZTemplate $tpl * @param string $operatorName * @param array $operatorParameters * @param string $rootNamespace * @param string $currentNamespace * @param mixed $operatorValue * @param array $namedParameters */ function modify($tpl, $operatorName, $operatorParameters, $rootNamespace, $currentNamespace, &$operatorValue, $namedParameters) { switch ($operatorName) { /*******************************************************************************/ /* Solr Safe Operators */ /*******************************************************************************/ case 'ezfind_raw_fetch': $operatorValue = SolrSafeOperatorHelper::ezfindRawFetch( $namedParameters['params'], $namedParameters['nodeIdsOnly'] ); break; case 'getUrlSolr': $operatorValue = SolrSafeOperatorHelper::getUrlSolr($namedParameters['solrdata']); break; case 'getDatesPDFavailable': $operatorValue = SolrSafeOperatorHelper::getDatesPDFavailable( $namedParameters['onlineDate'], $namedParameters['daysAvailable'] ); break; case 'getViewCounter': $operatorValue = SolrSafeOperatorHelper::getViewCounter( $namedParameters['remoteId'], $namedParameters['clusterIdentifier'] ); break; case 'getRatings': $operatorValue = SolrSafeOperatorHelper::getRatings( $namedParameters['remoteId'], $namedParameters['clusterIdentifier'] ); break; case 'getJavascriptFiles': $operatorValue = SolrSafeOperatorHelper::getJavascriptFiles( $namedParameters['application_name'], $namedParameters['type'], $namedParameters['isConsult'] ); break; case 'getLessFiles': $operatorValue = SolrSafeOperatorHelper::getLessFiles( $namedParameters['application_name'], $namedParameters['application'], $namedParameters['isConsult'] ); break; case 'getInfosApp': $operatorValue = SolrSafeOperatorHelper::getInfosApp($namedParameters['application_identifier']); break; case 'getHostNameFromURL': $operatorValue = SolrSafeOperatorHelper::getHostNameFromURL($namedParameters['url']); break; case 'context': $operatorValue = SolrSafeOperatorHelper::context($namedParameters['url']); break; case 'getMetas': $operatorValue = SolrSafeOperatorHelper::getMetas($namedParameters['applicationName']); break; case 'getSolrData': $operatorValue = SolrSafeOperatorHelper::getSolrData( $namedParameters['remoteId'], $namedParameters['clusterIdentifier'], $namedParameters['extended_fields'] ); break; case 'getCustomParameter': $operatorValue = SolrSafeOperatorHelper::getCustomParameter( $namedParameters['application'], $namedParameters['parameter_name'], $namedParameters['context'] ); break; case 'getAppIdentifierForIcon': $operatorValue = SolrSafeOperatorHelper::getAppIdentifierForIcon($namedParameters['application']); break; case 'getApplicationUrl': $operatorValue = SolrSafeOperatorHelper::getApplicationUrl($namedParameters['identifier']); break; case 'mappingNameSpe': $operatorValue = SolrSafeOperatorHelper::mappingNameSpe($namedParameters['specialtie']); break; case 'getMappingSpe': $operatorValue = SolrSafeOperatorHelper::getMappingSpe(); break; case 'getCustomerTypes': $operatorValue = SolrSafeOperatorHelper::getCustomerTypes(); break; case 'getMainSpecialities': $operatorValue = SolrSafeOperatorHelper::getMainSpecialities(); break; case 'getUserSpecialities': $operatorValue = SolrSafeOperatorHelper::getUserSpecialities(); break; case 'noSeoLink': $operatorValue = SolrSafeOperatorHelper::noSeoLink($operatorValue); break; case 'getTaxoTranslation': $operatorValue = SolrSafeOperatorHelper::getTaxoTranslation( $namedParameters['identifier'], $namedParameters['remote_id'] ); break; case 'cluster_ini': $operatorValue = SolrSafeOperatorHelper::clusterIni( $namedParameters['section'], $namedParameters['variable'], $namedParameters['ini_file'] ); break; case 'truncateContentRelated': $operatorValue = SolrSafeOperatorHelper::truncateContentRelated($namedParameters['text']); break; case 'myCertificatesEnabled': $operatorValue = SolrSafeOperatorHelper::featureIsActive("MyCertificates"); break; case 'appHasSpeciality': $operatorValue = SolrSafeOperatorHelper::appHasSpeciality(); break; case 'setClusterIdentifier': // No $operatorValue modification is normal SolrSafeOperatorHelper::setClusterIdentifier($namedParameters['clusterIdentifier']); break; case 'featureIsActive': $operatorValue = SolrSafeOperatorHelper::featureIsActive($namedParameters['featureCode']); break; case 'feature': $operatorValue = SolrSafeOperatorHelper::feature( $namedParameters['featureCode'], $namedParameters['value'] ); break; case 'alphabet': $operatorValue = SolrSafeOperatorHelper::alphabet(); break; case 'generateIso6391': $operatorValue = SolrSafeOperatorHelper::generateIso6391($namedParameters['regionalSettingsLocale']); break; case 'staticfile': $operatorValue = SolrSafeOperatorHelper::staticFile( $operatorValue, $namedParameters['quote'], $namedParameters['skip_slash'] ); break; case 'showHelpDeskPhoneInHeader': $operatorValue = !(SolrSafeOperatorHelper::feature('HelpDeskSettings', 'HidePhoneNumberInHeader')); break; case 'showHelpDeskPhoneOnPage': $operatorValue = !(SolrSafeOperatorHelper::feature('HelpDeskSettings', 'HidePhoneNumberOnPage')); break; case 'getFooterHTML': $operatorValue = SolrSafeOperatorHelper::getFooterHTML($namedParameters['footerBlockIdentifier']); break; case 'getLocaleBySystemCode': $operatorValue = SolrSafeOperatorHelper::getLocaleBySystemCode($namedParameters['systemCode']); break; case 'buildExitUrl': $operatorValue = SolrSafeOperatorHelper::buildExitUrl($namedParameters['url']); break; case 'getUserToken': $operatorValue = SolrSafeOperatorHelper::getUserToken(); break; case 'clusterHasFeaturedChannel': $operatorValue = SolrSafeOperatorHelper::clusterHasFeaturedChannel(); break; case 'aliasDimensions': $operatorValue = SolrSafeOperatorHelper::aliasDimensions($namedParameters['alias']); break; case 'hasImageArticleFromSolr': $operatorValue = SolrSafeOperatorHelper::hasImageArticleFromSolr( $namedParameters['solrdata'], $namedParameters['media_case'] ); break; case 'getImageArticleUrl': $operatorValue = SolrSafeOperatorHelper::getImageArticleUrl( $namedParameters['media_case'], $namedParameters['object_id'], $namedParameters['language'], $namedParameters['alias'] ); break; case 'getImageArticleUrlFromSolr': $operatorValue = SolrSafeOperatorHelper::getImageArticleUrl( $namedParameters['media_case'], $namedParameters['solrdata']['object_id'], $namedParameters['solrdata']['language'], $namedParameters['alias'] ); break; case 'isHidden': $operatorValue = SolrSafeOperatorHelper::isHidden($namedParameters['contentobject_id']); break; case 'isObjectGloballyVisible': $operatorValue = SolrSafeOperatorHelper::isObjectGloballyVisible($namedParameters['contentobject_id']); break; case 'getClusterVisibilities': $operatorValue = SolrSafeOperatorHelper::getClusterVisibilities($namedParameters['contentobject_id']); break; case 'parseTranslationTagParams': $operatorValue = SolrSafeOperatorHelper::parseTranslationTagParams($namedParameters['params']); break; case 'isSendToColleagueDisabled': $operatorValue = SolrSafeOperatorHelper::featureIsActive('DisableSendToColleague') ? SolrSafeOperatorHelper::feature('DisableSendToColleague', 'IsDisabled') : false; break; case 'getListOfValueOptions': $operatorValue = SolrSafeOperatorHelper::getListOfValueOptions( $namedParameters['business_name'], $namedParameters['filter'] ); break; case 'getListOfValues': $operatorValue = SolrSafeOperatorHelper::getListOfValues( $namedParameters['business_name'], $namedParameters['filter'] ); break; case 'solrDateToStamp': $operatorValue = strtotime($namedParameters['date']) > 3600*24*2 ? SolrTool::getTimestampFromSolr($namedParameters['date']) : 0; break; case 'getSeoParam': $operatorValue = SolrSafeOperatorHelper::getSeoParam($namedParameters['applicationLocalized'], $namedParameters['name'], $namedParameters['params']); break; case 'applicationHasSeoSpeciality': $operatorValue = SolrSafeOperatorHelper::applicationHasSeoSpeciality($namedParameters['applicationIdentifier']); break; case 'seoIsEnabled': $operatorValue = SolrSafeOperatorHelper::seoIsEnabled($namedParameters['applicationIdentifier']); break; case 'includeEsi': $operatorValue = SolrSafeOperatorHelper::includeEsi( $namedParameters['src'], $namedParameters['debug'] ); break; case 'imageDecHash': $operatorValue = SolrSafeOperatorHelper::imageDecHash( $operatorValue ); break; case 'bannerDecHash': $operatorValue = SolrSafeOperatorHelper::bannerDecHash( $operatorValue ); break; case 'getAndStoreGPNotebookHS': $operatorValue = self::getAndStoreGPNotebookHS( ); break; case 'isPromoTaxonomyVisible': $operatorValue = SolrSafeOperatorHelper::isPromoTaxonomyVisible( $namedParameters['values'] ); break; case 'translateTaxonomy': $operatorValue = SolrSafeOperatorHelper::translateTaxonomy( $namedParameters['code'] ); break; case 'getPublisherArticleUrl': $operatorValue = SolrSafeOperatorHelper::getPublisherArticleUrl( $namedParameters['publisher'], $namedParameters['articleId'] ); break; } }
/** * @return array */ private function entryExitPage() { header('esi-enabled: 1'); $skipPage = SolrSafeOperatorHelper::getCustomParameter($this->applicationObject->identifier, 'SkipExitPage', 'application'); $noFullView = SolrSafeOperatorHelper::getCustomParameter($this->applicationObject->identifier, 'NoFullView', 'application'); $restrictionLevel = $this->applicationLocalized()->restrictionLevel(); if( ( !isset($_GET['key']) && $this->applicationObject()->hasExternalLinkHandler() && $skipPage ) || ( !(bool)self::user() && !isset($_GET['key']) && ($restrictionLevel == ApplicationObject::RESTRICTION_LEVEL_RESTRICTED) ) ) { $patterns = array( '#^(?:https?://[^/]+)?/esibuild/main_view/app_content#', '#\?key=[^&]+#' ); $context = ContextTool::instance()->domain().preg_replace($patterns, array( '', '' ), $_SERVER['REQUEST_URI'] ); $context = preg_replace( '#/external/#', '/', $context ); header( 'Location: '.$context ); eZExecution::cleanExit(); } $Result = array(); $Result['pagelayout'] = 'esibuild/app_content/pagelayout.tpl'; $templateContent = 'esibuild/app_content/external/restricted.tpl'; if ( $this->isFull ) { $Result['pagelayout'] = ContextTool::instance()->isMobile() ? 'esibuild/app_content/pagelayout.tpl' : 'esibuild/app_content/full/pagelayout.tpl'; $templateContent = 'esibuild/app_content/default/restricted.tpl'; $this->initChannelInformations(); $this->pushChannelResult(); } foreach ( $this->_result as $variableName => $variableValue ) $this->tpl()->setVariable( $variableName, $variableValue ); $instance = self::instance(); if ( $instance->node && $instance->node instanceof eZContentObjectTreeNode ) { $dataMap = $instance->node->dataMap(); if( isset($dataMap["serialized_taxonomies"]) ) { $taxonomies = $dataMap["serialized_taxonomies"]->content(); $publisherPath = $taxonomies["publisher_folder"][0]; $publisherFolder = $instance->applicationLocalized()->getPublisherFolderFromPath($publisherPath); } if (isset($taxonomies['language']) && $publisherFolder instanceof PublisherFolder) { $publisherLanguages = $publisherFolder->getLanguages(); $languageList = $taxonomies['language']; $availableLanguages = array(); foreach (array_keys($instance->node->object()->allLanguages()) as $locale) { if (is_array($publisherLanguages) && in_array($locale, $publisherLanguages)) { $key = LocaleTool::languageISO639Code($locale); $availableLanguages[$key] = $locale; } } } if (in_array($publisherLanguages[0], $availableLanguages)){ if ($instance->node->currentLanguage() != $publisherLanguages[0]) { $instance->node->setCurrentLanguage($publisherLanguages[0]); } } } $this->tpl()->setVariable( 'application', $this->applicationObject ); $this->tpl()->setVariable( 'node', $instance->node ); $patterns = array( '#^(?:https?://[^/]+)?/esibuild/main_view/app_content#', '#\?key=[^&]+$#', '#\?key=[^&]+&#' ); $appURL = preg_replace($patterns, array( '', '', '?' ), $_SERVER['REQUEST_URI'] ); $context = $skipPage ? ContextTool::instance()->domain().'/external'.$appURL : ContextTool::instance()->domain().$appURL; // In case we are on application without full view like GP Notebook on UK if($noFullView) { $context = ContextTool::instance()->domain(); } $this->tpl()->setVariable( 'context', urlencode( $context ) ); if( SolrSafeOperatorHelper::featureIsActive( 'GoogleAnalytics' ) ) { $this->tpl()->setVariable( 'gtm_variables', $this->getGTMTags( $instance->node ) ); if( $instance->node ) { $publisherNode = NodeTool::getPublisherNodeFromNode($instance->node); if ($publisherNode) { /* @type eZContentObjectAttribute[] $publisherDM */ $publisherDM = $publisherNode->dataMap(); $publisherPath = $publisherDM['path']->content(); $this->tpl()->setVariable( 'publisher', $this->applicationLocalized()->getPublisherFolderFromPath( $publisherPath ) ); } } } $Result['content'] = $this->tpl()->fetch( "design:$templateContent" ); return $Result; }