| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- <?php defined('BX_DOL') or die('hack attempt');
- /**
- * Copyright (c) UNA, Inc - https://una.io
- * MIT License - https://opensource.org/licenses/MIT
- *
- * @defgroup UnaBaseView UNA Base Representation Classes
- * @{
- */
- /**
- * System services.
- */
- class BxBaseServices extends BxDol implements iBxDolProfileService
- {
- public function __construct()
- {
- parent::__construct();
- }
- public function serviceProfileUnit ($iContentId, $aParams = array())
- {
- return $this->_serviceProfileFunc('getUnit', $iContentId, $aParams);
- }
- public function serviceHasImage ($iContentId)
- {
- return false;
- }
- public function serviceProfilePicture ($iContentId)
- {
- return $this->_serviceProfileFunc('getPicture', $iContentId);
- }
- public function serviceProfileAvatar ($iContentId)
- {
- return $this->_serviceProfileFunc('getAvatar', $iContentId);
- }
-
- public function serviceProfileCover ($iContentId)
- {
- return $this->_serviceTemplateFunc('urlCover', $iContentId);
- }
- public function serviceProfileEditUrl ($iContentId)
- {
- return BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=account-settings-info');
- }
- public function serviceProfileThumb ($iContentId)
- {
- return $this->_serviceProfileFunc('getThumb', $iContentId);
- }
- public function serviceProfileIcon ($iContentId)
- {
- return $this->_serviceProfileFunc('getIcon', $iContentId);
- }
- public function serviceProfileName ($iContentId)
- {
- return $this->_serviceProfileFunc('getDisplayName', $iContentId);
- }
- public function serviceProfileUrl ($iContentId)
- {
- return $this->_serviceProfileFunc('getUrl', $iContentId);
- }
- /**
- * @see iBxDolProfileService::serviceCheckAllowedProfileView
- */
- public function serviceCheckAllowedProfileView($iContentId)
- {
- return _t('_Access denied');
- }
- /**
- * @see iBxDolProfileService::serviceCheckAllowedPostInProfile
- */
- public function serviceCheckAllowedPostInProfile($iContentId)
- {
- return _t('_Access denied');
- }
- /**
- * @see iBxDolProfileService::serviceGetSpaceTitle
- */
- public function serviceGetSpaceTitle()
- {
- return '';
- }
- /**
- * @see iBxDolProfileService::serviceGetParticipatingProfiles
- */
- public function serviceGetParticipatingProfiles($iProfileId, $aConnectionObject = false)
- {
- return array();
- }
-
- public function serviceGetCreatePostForm($iContextId = 0, $sDefault = '', $aCustom = array())
- {
- if(!isLogged())
- return '';
- $oProfile = BxDolProfile::getInstance();
- $sTitle = _t('_sys_page_block_title_create_post_' . (empty($iContextId) ? 'public' : 'context'));
- $sPlaceholder = _t('_sys_txt_create_post_placeholder', $oProfile->getDisplayName());
- $oMenu = BxDolMenu::getObjectInstance('sys_create_post');
- $aMenuItems = $oMenu->getMenuItems();
- if(empty($aMenuItems) || !is_array($aMenuItems))
- return '';
- if(empty($sDefault)) {
- $aDefault = array_shift($aMenuItems);
- $sDefault = $aDefault['module'];
- }
- $oMenu->setSelected($sDefault, $sDefault);
- $oTemplate = BxDolTemplate::getInstance();
- $oTemplate->addJs(array('BxDolCreatePost.js'));
- $sJsObject = 'oBxDolCreatePost';
- $sJsContent = $oTemplate->_wrapInTagJsCode("var " . $sJsObject . " = new BxDolCreatePost(" . json_encode(array(
- 'sObjName' => $sJsObject,
- 'sRootUrl' => BX_DOL_URL_ROOT,
- 'sDefault' => $sDefault,
- 'iContextId' => $iContextId,
- 'oCustom' => $aCustom
- )) . ");");
- return array('content' => BxDolTemplate::getInstance()->parseHtmlByName('create_post_form.html', array(
- 'default' => $sDefault,
- 'title' => $sTitle,
- 'placeholder' => $sPlaceholder,
- 'user_thumb' => BxDolProfile::getInstance()->getUnit(0, array('template' => 'unit_wo_info')),
- 'menu' => $oMenu->getCode(),
- 'form' => BxDolService::call($sDefault, 'get_create_post_form', array(array('context_id' => $iContextId, 'ajax_mode' => true, 'absolute_action_url' => true, 'custom' => $aCustom))),
- 'js_object' => $sJsObject,
- 'js_content' => $sJsContent
- )));
- }
- /**
- * @see iBxDolProfileService::serviceCheckSpacePrivacy
- */
- public function serviceCheckSpacePrivacy($iContentId)
- {
- return _t('_Access denied');
- }
-
- public function serviceFormsHelper ()
- {
- return new BxTemplAccountForms();
- }
- public function serviceActAsProfile ()
- {
- return false;
- }
- public function servicePrepareFields ($aFieldsProfile)
- {
- return $aFieldsProfile;
- }
- public function serviceProfilesSearch ($sTerm, $iLimit)
- {
- $oDb = BxDolAccountQuery::getInstance();
- $aRet = array();
- $a = $oDb->searchByTerm($sTerm, $iLimit);
- foreach ($a as $r)
- $aRet[] = array ('label' => $this->serviceProfileName($r['content_id']), 'value' => $r['profile_id']);
- return $aRet;
- }
- public function serviceKeywordSearch ($sSection, $aCondition, $sTemplate = '', $iStart = 0, $iPerPage = 0, $bLiveSearch = 0)
- {
- if (!$sSection || !isset($aCondition['keyword']))
- return '';
- $sClass = 'BxTemplSearch';
- $sElsName = 'bx_elasticsearch';
- $sElsMethod = 'is_configured';
- if(BxDolRequest::serviceExists($sElsName, $sElsMethod) && BxDolService::call($sElsName, $sElsMethod)) {
- $oModule = BxDolModule::getInstance($sElsName);
- bx_import('Search', $oModule->_aModule);
- $sClass = 'BxElsSearch';
- }
- $oSearch = new $sClass(array($sSection));
- $oSearch->setLiveSearch($bLiveSearch);
- $oSearch->setMetaType(isset($aCondition['meta_type']) ? $aCondition['meta_type'] : '');
- $oSearch->setCategoryObject(isset($aCondition['cat']) ? $aCondition['cat'] : '');
- $oSearch->setCustomSearchCondition($aCondition);
- $oSearch->setRawProcessing(true);
- $oSearch->setCustomCurrentCondition(array(
- 'paginate' => array (
- 'start' => $iStart,
- 'perPage' => $iPerPage ? $iPerPage : BX_DOL_SEARCH_RESULTS_PER_PAGE_DEFAULT,
- )));
- if ($sTemplate)
- $oSearch->setUnitTemplate($sTemplate);
-
- return $oSearch->response();
- }
-
- public function _serviceProfileFunc ($sFunc, $iContentId, $aParams = array())
- {
- if (!$iContentId)
- return false;
- if (!($oAccount = BxDolAccount::getInstance($iContentId)))
- return false;
- return $oAccount->$sFunc(false, $aParams);
- }
- public function serviceAlertResponseProcessInstalled()
- {
- BxDolTranscoderImage::registerHandlersSystem();
- }
- public function serviceAlertResponseProcessStorageChange ($oAlert)
- {
- if ('sys_storage_default' != $oAlert->aExtras['option'])
- return;
- $aStorages = BxDolStorageQuery::getStorageObjects();
- foreach ($aStorages as $r) {
- if (0 == $r['current_size'] && 0 == $r['current_number'] && ($oStorage = BxDolStorage::getObjectInstance($r['object'])))
- $oStorage->changeStorageEngine($oAlert->aExtras['value']);
- }
- }
- /**
- * This service adds notification for users which open your site on mobile devices
- * and suggest to add your site to their mobile homepage.
- */
- public function serviceAddToMobileHomepage ()
- {
- BxDolTemplate::getInstance()->addJs('cubiq-add-to-homescreen/addtohomescreen.min.js');
- BxDolTemplate::getInstance()->addCss(BX_DIRECTORY_PATH_PLUGINS_PUBLIC . 'cubiq-add-to-homescreen/style/|addtohomescreen.css');
- return "<script>addToHomescreen();</script>";
- }
- public function serviceGetOptionsEmbedDefault()
- {
- $aResults = array(
- '' => _t('_None')
- );
- $aObjects = BxDolEmbedQuery::getObjects();
- foreach($aObjects as $aObject)
- $aResults[$aObject['object']] = $aObject['title'];
- return $aResults;
- }
- public function serviceGetOptionsRelations()
- {
- $aModules = BxDolModuleQuery::getInstance()->getModulesBy(array('type' => 'modules', 'active' => 1));
- $aProfiles = array();
- foreach($aModules as $aModule) {
- $sMethod = 'act_as_profile';
- if(!BxDolRequest::serviceExists($aModule['name'], $sMethod) || !BxDolService::call($aModule['name'], $sMethod))
- continue;
- $aProfiles[$aModule['name']] = _t('_' . $aModule['name']);
- }
- $aResults = array();
- foreach($aProfiles as $sName1 => $sTitle1)
- foreach($aProfiles as $sName2 => $sTitle2)
- $aResults[$sName1 . '_' . $sName2] = $sTitle1 . ' - ' . $sTitle2;
- return $aResults;
- }
- }
- /** @} */
|