Forráskód Böngészése

Merge branch 'master' of https://github.com/boonex/dolphin

AntonLV 10 éve
szülő
commit
fe6eab9ee7

+ 38 - 3
inc/classes/BxDolCover.php

@@ -35,8 +35,9 @@
 class BxDolCover extends BxDol implements iBxDolSingleton
 {
     protected $_aOptions = array();
-    protected $_sTemplateName = 'cover_short.html';
+    protected $_sTemplateName = 'cover.html';
     protected $_sTemplateNameEmpty = 'cover_empty.html';
+    protected $_sCoverImageUrl = false;
 
     /**
      * Constructor
@@ -73,7 +74,7 @@ class BxDolCover extends BxDol implements iBxDolSingleton
     }
 
     /**
-     * Set cover options
+     * Set custom cover options
      * @param $aOptions - cover options, default template supports the following: image_url, menu, text
      * @param $sTemplateName - optional template name
      */
@@ -83,7 +84,41 @@ class BxDolCover extends BxDol implements iBxDolSingleton
         if (false !== $sTemplateName)
             $this->_sTemplateName = $sTemplateName;
 
-        bx_alert('system', 'set_cover', 0, false, array('options' => &$this->_aOptions, 'template_name' => &$this->_sTemplateName));
+        bx_alert('system', 'set_cover', 0, false, array('options' => &$this->_aOptions, 'template_name' => &$this->_sTemplateName, 'cover' => $this));
+    }
+
+    /**
+     * Set cover image url for default cover template
+     * @param $mixedCoverImageUrl - cover image url, or array with file id and storage or transcoder object:
+     * @code
+     *   array('id' => 12, 'object' => 'sample');
+     *   // or 
+     *   array('id' => 21, 'transcoder' => 'sample');
+     * @endcode
+     */
+    public function setCoverImageUrl ($mixedCoverImage)
+    {
+        if (is_string($mixedCoverImage)) {
+            $this->_sCoverImageUrl = $mixedCoverImage;
+        } 
+        elseif (is_array($mixedCoverImage) && isset($mixedCoverImage['id']) && (isset($mixedCoverImage['object']) || isset($mixedCoverImage['transcoder']))) {
+
+            if (!empty($mixedCoverImage['object']))
+                $o = BxDolStorage::getObjectInstance($mixedCoverImage['object']);
+            elseif (!empty($mixedCoverImage['transcoder']))
+                $o = BxDolTranscoder::getObjectInstance($mixedCoverImage['transcoder']);
+            if (!$o)
+                return false;
+
+            $this->_sCoverImageUrl = $o->getFileUrlById($mixedCoverImage['id']);
+        } 
+        else {
+            return false;
+        }
+
+        bx_alert('system', 'set_cover_image', 0, false, array('cover_image' => &$this->_sCoverImageUrl, 'cover' => $this));
+
+        return true;
     }
 
 }

+ 1 - 1
index.php

@@ -26,7 +26,7 @@ if (!file_exists("./inc/header.inc.php")) {
 require_once('./inc/header.inc.php');
 require_once(BX_DIRECTORY_PATH_INC . "profiles.inc.php");
 
-if (!isLogged() && getParam('sys_site_cover_enabled')) {
+if (!isLogged() && getParam('sys_site_splash_enabled')) {
     require_once("./splash.php");
     exit;
 }

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
install/sql/system.sql


+ 8 - 2
modules/base/general/classes/BxBaseModGeneralPageEntry.php

@@ -48,11 +48,17 @@ class BxBaseModGeneralPageEntry extends BxTemplPage
             BxDolView::getObjectInstance($CNF['OBJECT_VIEWS'], $this->_aContentInfo[$CNF['FIELD_ID']])->doView();
         }
 
+        // set cover image
+        if ($aThumb = $this->_getThumbForMetaObject()) {
+            $oCover = BxDolCover::getInstance($this->_oModule->_oTemplate);
+            $oCover->setCoverImageUrl($aThumb);
+        }
+
         // add content metatags
-        if (!empty($CNF['OBJECT_METATAGS'])) {
+        if (!empty($CNF['OBJECT_METATAGS']) && $aThumb) {
             $o = BxDolMetatags::getObjectInstance($CNF['OBJECT_METATAGS']);
             if ($o)
-                $o->metaAdd($this->_aContentInfo[$CNF['FIELD_ID']], $this->_getThumbForMetaObject());
+                $o->metaAdd($this->_aContentInfo[$CNF['FIELD_ID']], $aThumb);
         }
 
         $oMenuSubmenu = BxDolMenu::getObjectInstance('sys_site_submenu');

+ 0 - 23
modules/base/profile/classes/BxBaseModProfileMenuViewActions.php

@@ -1,23 +0,0 @@
-<?php defined('BX_DOL') or die('hack attempt');
-/**
- * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * CC-BY License - http://creativecommons.org/licenses/by/3.0/
- *
- * @defgroup    BaseProfile Base classes for profile modules
- * @ingroup     TridentModules
- *
- * @{
- */
-
-/**
- * View entry actions menu in popup
- */
-class BxBaseModProfileMenuViewActions extends BxBaseModProfileMenuView
-{
-    protected function getMenuItemsRaw ()
-    {
-        return $this->_getMenuItemsCombined ();
-    }
-}
-
-/** @} */

+ 3 - 3
modules/boonex/english/data/langs/system/en.xml

@@ -570,7 +570,7 @@
     <string name="_adm_dsn_cnf_uninstall"><![CDATA[<h3>Uninstall "{0}" template?</h3><p>Uninstalling "{0}" template will also delete all of its data. Do you want to continue?</p>]]></string>
 	<string name="_adm_dsg_btn_make_default"><![CDATA[Make Default]]></string>
 	<string name="_adm_dsg_dsc_alt_text"><![CDATA[Serves as "ALT" text for logo image. Used as a logo when no logo image is uploaded.]]></string>
-	<string name="_adm_dsg_dsc_cover_warning"><![CDATA[Note, that improper use of HTML may break the site layout.]]></string>
+	<string name="_adm_dsg_dsc_splash_warning"><![CDATA[Note, that improper use of HTML may break the site layout.]]></string>
 	<string name="_adm_dsg_err_cannot_process_action"><![CDATA[Cannot process action. It does not have an associated handler.]]></string>
 	<string name="_adm_dsg_err_deactivate_default"><![CDATA[You cannot deactivate template which was selected as Default]]></string>
 	<string name="_adm_dsg_err_last_active"><![CDATA[You need to have at least one active template.]]></string>
@@ -580,7 +580,7 @@
 	<string name="_adm_dsg_err_save"><![CDATA[Cannot save: ]]></string>
 	<string name="_adm_dsg_scs_save"><![CDATA[The changes were successfully saved]]></string>
 	<string name="_adm_dsg_txt_alt_text"><![CDATA[Logo Text]]></string>
-	<string name="_adm_dsg_txt_cover_enabled"><![CDATA[Enable cover page]]></string>
+	<string name="_adm_dsg_txt_splash_enabled"><![CDATA[Enable splash page]]></string>
 	<string name="_adm_dsg_txt_default"><![CDATA[default]]></string>
 	<string name="_adm_dsg_txt_icon_apple"><![CDATA[Apple Touch Devices (152x152)]]></string>
 	<string name="_adm_dsg_txt_icon_facebook"><![CDATA[Facebook Share (100x100)]]></string>
@@ -826,7 +826,7 @@
     <string name="_adm_lang_cnf_uninstall"><![CDATA[<h3>Uninstall "{0}" language?</h3><p>Uninstalling "{0}" language will also delete all of its data. Do you want to continue?</p>]]></string>
 	<string name="_adm_lmi_cpt_actions"><![CDATA[Actions]]></string>
 	<string name="_adm_lmi_cpt_checkout"><![CDATA[Checkout {checkout_counter}]]></string>
-	<string name="_adm_lmi_cpt_cover"><![CDATA[Cover]]></string>
+	<string name="_adm_lmi_cpt_splash"><![CDATA[Splash]]></string>
 	<string name="_adm_lmi_cpt_displays"><![CDATA[Displays]]></string>
 	<string name="_adm_lmi_cpt_downloaded"><![CDATA[Downloaded]]></string>
 	<string name="_adm_lmi_cpt_etemplates"><![CDATA[Email Templates]]></string>

+ 3 - 3
modules/boonex/russian/data/langs/system/ru.xml

@@ -570,7 +570,7 @@
     <string name="_adm_dsn_cnf_uninstall"><![CDATA[<h3>Удалить тему "{0}"?</h3><p>Удаление темы "{0}" также удалит все связанные с ней данные. Вы хотите продолжить?</p>]]></string>
 	<string name="_adm_dsg_btn_make_default"><![CDATA[Сделать основным]]></string>
 	<string name="_adm_dsg_dsc_alt_text"><![CDATA[Используется для дополнительного текста для лого-картинки. Используется в качестве лого, если картинка не загружена.]]></string>
-	<string name="_adm_dsg_dsc_cover_warning"><![CDATA[Заметьте, что неправильное применение HTML может испортить дизайн сайта.]]></string>
+	<string name="_adm_dsg_dsc_splash_warning"><![CDATA[Заметьте, что неправильное применение HTML может испортить дизайн сайта.]]></string>
 	<string name="_adm_dsg_err_cannot_process_action"><![CDATA[Невозможно выполнить действие. Отсутствует связанный обработчик.]]></string>
 	<string name="_adm_dsg_err_deactivate_default"><![CDATA[Невозможно деактивировать тему, выбранную в качестве основной]]></string>
 	<string name="_adm_dsg_err_last_active"><![CDATA[Нужно иметь как минимум одну активную тему.]]></string>
@@ -580,7 +580,7 @@
 	<string name="_adm_dsg_err_save"><![CDATA[Невозможно сохранить: ]]></string>
 	<string name="_adm_dsg_scs_save"><![CDATA[Изменения удачно сохранены]]></string>
 	<string name="_adm_dsg_txt_alt_text"><![CDATA[Текст лого]]></string>
-	<string name="_adm_dsg_txt_cover_enabled"><![CDATA[Включить титульную страницу]]></string>
+	<string name="_adm_dsg_txt_splash_enabled"><![CDATA[Включить титульную страницу]]></string>
 	<string name="_adm_dsg_txt_default"><![CDATA[по умолчанию]]></string>
 	<string name="_adm_dsg_txt_icon_apple"><![CDATA[Устройства Apple Touch (152x152)]]></string>
 	<string name="_adm_dsg_txt_icon_facebook"><![CDATA[Facebook (100x100)]]></string>
@@ -826,7 +826,7 @@
     <string name="_adm_lang_cnf_uninstall"><![CDATA[<h3>Удалить "{0}" язык?</h3><p>Удаление "{0}" языка также удалит все его данные. Вы хотите продолжить?</p>]]></string>
 	<string name="_adm_lmi_cpt_actions"><![CDATA[Действия]]></string>
 	<string name="_adm_lmi_cpt_checkout"><![CDATA[Оплата {checkout_counter}]]></string>
-	<string name="_adm_lmi_cpt_cover"><![CDATA[Обложка]]></string>
+	<string name="_adm_lmi_cpt_splash"><![CDATA[Обложка]]></string>
 	<string name="_adm_lmi_cpt_displays"><![CDATA[Дисплеи]]></string>
 	<string name="_adm_lmi_cpt_downloaded"><![CDATA[Скачано]]></string>
 	<string name="_adm_lmi_cpt_etemplates"><![CDATA[Имейл-шаблоны]]></string>

+ 2 - 2
splash.php

@@ -16,12 +16,12 @@ function getPageMainCode()
 {
     $oTemplate = BxDolTemplate::getInstance();    
 
-    $bEnabled = getParam('sys_site_cover_enabled');
+    $bEnabled = getParam('sys_site_splash_enabled');
     if(!$bEnabled)
     	$oTemplate->displayPageNotFound();
 
     $oTemplate->addJs(array('skrollr/skrollr.min.js'));
-    return $oTemplate->parseHtmlByContent(getParam('sys_site_cover_code'), array(
+    return $oTemplate->parseHtmlByContent(getParam('sys_site_splash_code'), array(
     	'join_link' => BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=create-account'),
     	'login_form' => BxDolService::call('system', 'login_form', array(), 'TemplServiceLogin')
     )); 

+ 5 - 5
studio/classes/BxDolStudioDesigner.php

@@ -10,7 +10,7 @@
 define('BX_DOL_STUDIO_DSG_TYPE_GENERAL', 'general');
 define('BX_DOL_STUDIO_DSG_TYPE_LOGO', 'logo');
 define('BX_DOL_STUDIO_DSG_TYPE_ICON', 'icon');
-define('BX_DOL_STUDIO_DSG_TYPE_COVER', 'cover');
+define('BX_DOL_STUDIO_DSG_TYPE_SPLASH', 'splash');
 define('BX_DOL_STUDIO_DSG_TYPE_SETTINGS', 'settings');
 
 define('BX_DOL_STUDIO_DSG_TYPE_DEFAULT', 'general');
@@ -159,12 +159,12 @@ class BxDolStudioDesigner extends BxTemplStudioPage
         return $this->getJsResult('_adm_dsg_scs_save', true, true, BX_DOL_URL_STUDIO . 'designer.php?page=' . BX_DOL_STUDIO_DSG_TYPE_ICON);
     }
 
-    function submitCover(&$oForm)
+    function submitSplash(&$oForm)
     {
-    	$this->oDb->setParam('sys_site_cover_code', $oForm->getCleanValue('code'));
-        $this->oDb->setParam('sys_site_cover_enabled', $oForm->getCleanValue('enabled') == 'on' ? 'on' : '');
+    	$this->oDb->setParam('sys_site_splash_code', $oForm->getCleanValue('code'));
+        $this->oDb->setParam('sys_site_splash_enabled', $oForm->getCleanValue('enabled') == 'on' ? 'on' : '');
 
-        return $this->getJsResult('_adm_dsg_scs_save', true, true, BX_DOL_URL_STUDIO . 'designer.php?page=' . BX_DOL_STUDIO_DSG_TYPE_COVER);
+        return $this->getJsResult('_adm_dsg_scs_save', true, true, BX_DOL_URL_STUDIO . 'designer.php?page=' . BX_DOL_STUDIO_DSG_TYPE_SPLASH);
     }
 }
 

+ 0 - 0
studio/template/designer_cover.html → studio/template/designer_splash.html


+ 0 - 3
studio/template/dsr_cover.html

@@ -1,3 +0,0 @@
-__warning__
-<iframe name="__cover_iframe_id__" class="bx-std-hidden"></iframe>
-__form__

+ 3 - 0
studio/template/dsr_splash.html

@@ -0,0 +1,3 @@
+__warning__
+<iframe name="__splash_iframe_id__" class="bx-std-hidden"></iframe>
+__form__

+ 16 - 16
studio/template/scripts/BxBaseStudioDesigner.php

@@ -14,9 +14,9 @@ class BxBaseStudioDesigner extends BxDolStudioDesigner
     protected $sLogoIframeId = 'adm-dsg-logo-iframe';
     protected $sIconFormId = 'adm-dsg-icon-form';
     protected $sIconIframeId = 'adm-dsg-icon-iframe';
-    protected $sCoverFormId = 'adm-dsg-cover-form';
-    protected $sCoverIframeId = 'adm-dsg-cover-iframe';
-    protected $sCoverEditorId = 'adm-dsg-cover-editor';
+    protected $sSplashFormId = 'adm-dsg-splash-form';
+    protected $sSplashIframeId = 'adm-dsg-splash-iframe';
+    protected $sSplashEditorId = 'adm-dsg-splash-editor';
 
     function __construct($sPage = '')
     {
@@ -43,7 +43,7 @@ class BxBaseStudioDesigner extends BxDolStudioDesigner
             BX_DOL_STUDIO_DSG_TYPE_GENERAL => array('icon' => 'globe'),
             BX_DOL_STUDIO_DSG_TYPE_LOGO => array('icon' => 'pencil'),
             BX_DOL_STUDIO_DSG_TYPE_ICON => array('icon' => 'picture-o'),
-            BX_DOL_STUDIO_DSG_TYPE_COVER => array('icon' => 'file-image-o'),
+            BX_DOL_STUDIO_DSG_TYPE_SPLASH => array('icon' => 'file-image-o'),
             BX_DOL_STUDIO_DSG_TYPE_SETTINGS => array('icon' => 'cogs'),
         );
         foreach($aMenuItems as $sMenuItem => $aItem)
@@ -325,18 +325,18 @@ class BxBaseStudioDesigner extends BxDolStudioDesigner
         ));
     }
 
-    protected function getCover()
+    protected function getSplash()
     {
     	$oTemplate = BxDolStudioTemplate::getInstance();
 
 		$aForm = array(
 			'form_attrs' => array(
-				'id' => $this->sCoverFormId,
-				'name' => $this->sCoverFormId,
+				'id' => $this->sSplashFormId,
+				'name' => $this->sSplashFormId,
 				'action' => BX_DOL_URL_STUDIO . 'designer.php',
 				'method' => 'post',
 				'enctype' => 'multipart/form-data',
-				'target' => $this->sCoverIframeId
+				'target' => $this->sSplashIframeId
 			),
 			'params' => array(
 				'db' => array(
@@ -356,9 +356,9 @@ class BxBaseStudioDesigner extends BxDolStudioDesigner
 				'enabled' => array(
 					'type' => 'checkbox',
 					'name' => 'enabled',
-					'caption' => _t('_adm_dsg_txt_cover_enabled'),
+					'caption' => _t('_adm_dsg_txt_splash_enabled'),
 					'value' => 'on',
-					'checked' => getParam('sys_site_cover_enabled') == 'on',
+					'checked' => getParam('sys_site_splash_enabled') == 'on',
 					'db' => array (
                         'pass' => 'Xss',
                     ),
@@ -367,7 +367,7 @@ class BxBaseStudioDesigner extends BxDolStudioDesigner
 					'type' => 'textarea',
 					'name' => 'code',
 					'caption' => '',
-					'value' => getParam('sys_site_cover_code'),
+					'value' => getParam('sys_site_splash_code'),
 					'db' => array (
                         'pass' => 'XssHtml',
                     ),
@@ -384,20 +384,20 @@ class BxBaseStudioDesigner extends BxDolStudioDesigner
 		$oForm->initChecker();
 
 		if($oForm->isSubmittedAndValid()) {
-			echo $this->submitCover($oForm);
+			echo $this->submitSplash($oForm);
 			exit;
 		}
 
         $oTemplate->addJs(array('codemirror/codemirror.min.js'));
         $oTemplate->addCss(BX_DIRECTORY_PATH_PLUGINS_PUBLIC . 'codemirror/|codemirror.css');
 
-		return $oTemplate->parseHtmlByName('designer_cover.html', array(
+		return $oTemplate->parseHtmlByName('designer_splash.html', array(
 			'js_object' => $this->getPageJsObject(),
 			'action_url' => $this->sManageUrl,
 			'content' => $this->getBlockCode(array(
-				'items' => $oTemplate->parseHtmlByName('dsr_cover.html', array(
-					'warning' => MsgBox(_t('_adm_dsg_dsc_cover_warning')),
-					'cover_iframe_id' => $this->sCoverIframeId, 
+				'items' => $oTemplate->parseHtmlByName('dsr_splash.html', array(
+					'warning' => MsgBox(_t('_adm_dsg_dsc_splash_warning')),
+					'splash_iframe_id' => $this->sSplashIframeId, 
 					'form' => $oForm->getCode()
 				)),
 			))

+ 4 - 9
template/cover.html

@@ -1,21 +1,15 @@
-<div class="bx-cover-wrapper bx-menu-toolbar-padding">
+<div class="bx-menu-toolbar-padding">
+<div class="bx-cover-wrapper" <bx_if:bg>style="background-image:url(__image_url__)"</bx_if:bg>>
 
     <div class="bx-cover bx-def-centered bx-def-page-width bx-def-padding bx-def-box-sizing">
 
-        <div class="bx-cover-title bx-def-margin-sec-bottom bx-def-font-h1">
+        <div class="bx-cover-title bx-def-margin-sec-topbottom bx-def-font-h1">
 
             <bx_if:icon><i class="sys-icon bx-def-font-contrasted __icon__"></i></bx_if:icon>
             <bx_if:image><img style="background-image:url(__icon_url__)" src="<bx_icon_url:spacer.gif />" /></bx_if:image>
 
             <span class="bx-def-font-contrasted bx-def-margin-sec-left">__title__</span>
 
-            <bx_if:sharing>
-                <a class="bx-def-padding-sec-leftright" href="javascript:void(0);" onclick="$('#__id__').dolPopup({pointer:{el:$(this)}})">
-                    <i class="sys-icon bx-def-font-contrasted __icon__"></i>
-                </a>
-               __popup__
-            </bx_if:sharing>
-
         </div>
 
         <div class="bx-cover-actions">
@@ -25,3 +19,4 @@
     </div>
 
 </div>
+</div>

+ 7 - 1
template/scripts/BxBaseCover.php

@@ -42,7 +42,13 @@ class BxBaseCover extends BxDolCover
             if (!$mixedParams || !is_array($mixedParams))
                 return $this->_oTemplate->parseHtmlByName($this->_sTemplateNameEmpty, array());
             
-            return $this->_oTemplate->parseHtmlByName('cover.html', $mixedParams);
+            if ($this->_sCoverImageUrl)
+                $mixedParams['bx_if:bg'] = array (
+                    'condition' => true,
+                    'content' => array('image_url' => $this->_sCoverImageUrl),
+                );
+
+            return $this->_oTemplate->parseHtmlByName($this->_sTemplateName, $mixedParams);
         }        
 
         return $this->_oTemplate->parseHtmlByName($this->_sTemplateName, $this->_aOptions);

+ 3 - 19
template/scripts/BxBaseMenuSubmenu.php

@@ -91,7 +91,7 @@ class BxBaseMenuSubmenu extends BxTemplMenu
     public function getParamsForCover ()
     {
         $aMenuItemSelected = $this->getSelectedMenuItem ();
-        if (isset($aMenuItemSelected['set_name']) && 'sys_site' == $aMenuItemSelected['set_name'] && 'home' == $aMenuItemSelected['name'])
+        if (!$aMenuItemSelected || (isset($aMenuItemSelected['set_name']) && 'sys_site' == $aMenuItemSelected['set_name'] && 'home' == $aMenuItemSelected['name']))
             return '';
 
         $oMenuActions = BxDolMenu::getObjectInstance($this->_sObjectActionsMenu);
@@ -110,31 +110,15 @@ class BxBaseMenuSubmenu extends BxTemplMenu
                 'condition' => false === strpos($aMenuItemSelected['icon'], '.'),
                 'content' => array('icon' => $aMenuItemSelected['icon']),
             ),
-            'bx_if:sharing' => array (
+            'bx_if:bg' => array (
                 'condition' => false,
-                'content' => array(),
+                'content' => array('image_url' => ''),
             ),
         );
 
         // if (!$this->_sObjectSubmenu && !$this->_mixedMainMenuItemSelected && $aMenuItemSelected['submenu_object'])
         //    $this->_sObjectSubmenu = $aMenuItemSelected['submenu_object'];
 
-        if ($this->_aSocialSharingService) {
-            $sPopupContent = BxDolService::call($this->_aSocialSharingService['module'], $this->_aSocialSharingService['method'], isset($this->_aSocialSharingService['params']) ? $this->_aSocialSharingService['params'] : array(), isset($this->_aSocialSharingService['class']) ? $this->_aSocialSharingService['class'] : 'Module');
-
-            if ($sPopupContent) {
-                $aVars['bx_if:sharing']['condition'] = $sPopupContent;
-                $aVars['bx_if:sharing']['content'] = array (
-                    'id' => 'bx-menu-social-sharing-menu',
-                    'icon' => 'share',
-                    'popup' => BxTemplFunctions::getInstance()->transBox('bx-menu-social-sharing-menu', '<div class="bx-def-padding">' . $sPopupContent . '</div>', true),
-                );
-            }
-        }
-
-        if (!$aVars['bx_if:sharing']['condition'] && !$aMenuItemSelected)
-            return '';
-
         return $aVars;
     }
 

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott