1
0

BxBasePageHome.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) UNA, Inc - https://una.io
  4. * MIT License - https://opensource.org/licenses/MIT
  5. *
  6. * @defgroup UnaBaseView UNA Base Representation Classes
  7. * @{
  8. */
  9. /**
  10. * Homepage.
  11. */
  12. class BxBasePageHome extends BxTemplPage
  13. {
  14. protected $_sCanonicalUrl;
  15. public function __construct($aObject, $oTemplate)
  16. {
  17. parent::__construct($aObject, $oTemplate);
  18. $aCover = $this->getPageCoverImage();
  19. $bTmplVarsCover = !empty($aCover['id']);
  20. $aTmplVarsCover = $bTmplVarsCover ? array('image_url' => BxDolTranscoder::getObjectInstance($aCover['transcoder'])->getFileUrlById($aCover['id'])) : array();
  21. BxDolCover::getInstance()->set(array(
  22. 'class' => 'bx-cover-homepage',
  23. 'title' => _t('_sys_txt_homepage_cover', bx_absolute_url(BxDolPermalinks::getInstance()->permalink('page.php?i=create-account'))),
  24. 'bx_if:empty_cover_class' => array (
  25. 'condition' => !$bTmplVarsCover,
  26. 'content' => array(),
  27. ),
  28. 'bx_if:bg' => array (
  29. 'condition' => $bTmplVarsCover,
  30. 'content' => $aTmplVarsCover,
  31. ),
  32. ), 'cover_home.html');
  33. $sSelName = 'home';
  34. if(bx_get('i') !== false)
  35. $sSelName = bx_process_input(bx_get('i'));
  36. if($sSelName == 'home')
  37. $this->_sCanonicalUrl = BX_DOL_URL_ROOT;
  38. BxDolMenu::setSelectedGlobal('system', $sSelName);
  39. }
  40. public function getCode ()
  41. {
  42. $s = parent::getCode ();
  43. if (isAdmin() && getParam('site_tour_home') == 'on')
  44. $s .= $this->_oTemplate->parseHtmlByName('homepage_tour.html', array());
  45. if($this->_sCanonicalUrl)
  46. BxDolTemplate::getInstance()->setPageUrl($this->_sCanonicalUrl);
  47. return $s;
  48. }
  49. protected function _getBlockRaw($aBlock)
  50. {
  51. if(strpos($aBlock['title'], 'splash') !== false) {
  52. $oPermalink = BxDolPermalinks::getInstance();
  53. $sJoinForm = $sLoginForm = '';
  54. if(!isLogged()) {
  55. $sJoinForm = BxDolService::call('system', 'create_account_form', array(), 'TemplServiceAccount');
  56. $sLoginForm = BxDolService::call('system', 'login_form', array(), 'TemplServiceLogin');
  57. }
  58. $oTemplate = BxDolTemplate::getInstance();
  59. $oTemplate->addJs(array('lottie.min.js'));
  60. $aBlock['content'] = $oTemplate->parseHtmlByContent($aBlock['content'], array(
  61. 'join_link' => bx_absolute_url($oPermalink->permalink('page.php?i=create-account')),
  62. 'join_form' => $sJoinForm,
  63. 'join_form_in_box' => !empty($sJoinForm) ? DesignBoxContent(_t('_sys_txt_splash_join'), $sJoinForm, BX_DB_PADDING_DEF) : '',
  64. 'login_link' => bx_absolute_url($oPermalink->permalink('page.php?i=login')),
  65. 'login_form' => $sLoginForm,
  66. 'login_form_in_box' => !empty($sLoginForm) ? DesignBoxContent(_t('_sys_txt_splash_login'), $sLoginForm, BX_DB_PADDING_DEF) : '',
  67. ));
  68. }
  69. return parent::_getBlockRaw($aBlock);
  70. }
  71. protected function _addJsCss()
  72. {
  73. parent::_addJsCss();
  74. if (isAdmin()) {
  75. $this->_oTemplate->addJs(array(
  76. 'shepherd/js/shepherd.min.js',
  77. ));
  78. $this->_oTemplate->addCss(array(
  79. 'homepage.css',
  80. BX_DIRECTORY_PATH_PLUGINS_PUBLIC . 'shepherd/css/|shepherd.css'
  81. ));
  82. }
  83. }
  84. protected function _getPageMetaImage()
  85. {
  86. $iImage = 0;
  87. foreach(['icon_apple', 'icon_android', 'icon_android_splash'] as $sIcon)
  88. if(($iImage = (int)getParam('sys_site_' . $sIcon)) != 0)
  89. break;
  90. if(empty($iImage))
  91. return '';
  92. $oStorage = BxDolStorage::getObjectInstance(BX_DOL_STORAGE_OBJ_IMAGES);
  93. if(!$oStorage)
  94. return '';
  95. return $oStorage->getFileUrlById($iImage);
  96. }
  97. }
  98. /** @} */