Bläddra i källkod

Merge branch 'master' of https://github.com/unaio/una

AntonLV 4 år sedan
förälder
incheckning
742c582590

+ 4 - 2
inc/js/classes/BxDolPage.js

@@ -51,11 +51,13 @@ BxDolPage.prototype.share = function(oLink, sUrl)
     var oData = this._getDefaultParams();
     var oData = this._getDefaultParams();
     oData['a'] = 'get_share';
     oData['a'] = 'get_share';
     oData['url'] = sUrl;
     oData['url'] = sUrl;
-    
+    $(".bx-popup-applied:visible").dolPopupHide();
     $(window).dolPopupAjax({
     $(window).dolPopupAjax({
         url: bx_append_url_params(this._sActionsUri, oData),
         url: bx_append_url_params(this._sActionsUri, oData),
-        closeOnOuterClick: true,
+        displayMode: 'box',
+        closeOnOuterClick: false,
         removeOnClose: true,
         removeOnClose: true,
+        id: {value: 'sys_share_popup', force: true}
     });
     });
 }
 }
 
 

+ 1 - 0
modules/base/profile/classes/BxBaseModProfileFormsEntryHelper.php

@@ -221,6 +221,7 @@ class BxBaseModProfileFormsEntryHelper extends BxBaseModGeneralFormsEntryHelper
                 if($sRedirectCustom) {
                 if($sRedirectCustom) {
                     $sRedirectUrl = $this->prepareCustomRedirectUrl($sRedirectCustom, $aContentInfo);
                     $sRedirectUrl = $this->prepareCustomRedirectUrl($sRedirectCustom, $aContentInfo);
                 }
                 }
+                break;
                 
                 
             case BX_DOL_PROFILE_REDIRECT_HOMEPAGE:
             case BX_DOL_PROFILE_REDIRECT_HOMEPAGE:
                 $sRedirectUrl =  BX_DOL_URL_ROOT;  
                 $sRedirectUrl =  BX_DOL_URL_ROOT;  

+ 13 - 0
modules/boonex/artificer/data/template/system/designbox_share_popup.html

@@ -0,0 +1,13 @@
+<div class="bx-db-share-popup">
+    <div class="bx-db-share-popup-cnt">
+         <bx_menu:sys_social_sharing />
+         <div class="mb-4">
+             <bx_text:_sys_txt_share_popup_url />       
+             <div class="block w-full py-2 px-3 border border-gray-300 dark:border-gray-700 rounded-md shadow-sm bg-white dark:bg-gray-900 placeholder-gray-500 focus:outline-none focus:placeholder-gray-400 focus:ring-2 focus:text-gray-900 dark:focus:text-gray-100 focus:ring-blue-500 focus:border-opacity-70 focus:ring-opacity-20 focus:border-blue-500 text-sm text-gray-700 dark:text-gray-300 appearance-none p-2 rounded ">__url__</div>
+         </div>
+         <div class="mb-4">
+             <bx_text:_sys_txt_share_popup_embeded_code />        
+             <div class="block w-full py-2 px-3 border border-gray-300 dark:border-gray-700 rounded-md shadow-sm bg-white dark:bg-gray-900 placeholder-gray-500 focus:outline-none focus:placeholder-gray-400 focus:ring-2 focus:text-gray-900 dark:focus:text-gray-100 focus:ring-blue-500 focus:border-opacity-70 focus:ring-opacity-20 focus:border-blue-500 text-sm text-gray-700 dark:text-gray-300 appearance-none p-2 rounded">__code__</div> 
+         </div>
+    </div>
+</div>

+ 12 - 3
modules/boonex/massmailer/classes/BxMassMailerDb.php

@@ -28,15 +28,24 @@ class BxMassMailerDb extends BxBaseModGeneralDb
         return $this->lastId();
         return $this->lastId();
     }
     }
         
         
-    public function sendCampaign($iCampaignId, $sEmailList)
+    public function sendCampaign($iCampaignId)
     {
     {
         $CNF = &$this->_oConfig->CNF;
         $CNF = &$this->_oConfig->CNF;
         $aBindings = array(
         $aBindings = array(
             'campaign_id' => $iCampaignId,
             'campaign_id' => $iCampaignId,
-            'email_list' => $sEmailList,
             'date_sent' => time()
             'date_sent' => time()
         );
         );
-        $this->query("UPDATE `" . $CNF['TABLE_CAMPAIGNS'] . "` SET `" . $CNF['FIELD_EMAIL_LIST'] . "` = :email_list, `" . $CNF['FIELD_DATE_SENT'] . "` = :date_sent WHERE `" . $CNF['FIELD_ID'] . "` = :campaign_id", $aBindings);
+        $this->query("UPDATE `" . $CNF['TABLE_CAMPAIGNS'] . "` SET `" . $CNF['FIELD_DATE_SENT'] . "` = :date_sent WHERE `" . $CNF['FIELD_ID'] . "` = :campaign_id", $aBindings);
+    }
+    
+    public function addEmailToSentListForCampaign($iCampaignId, $sEmailList)
+    {
+        $CNF = &$this->_oConfig->CNF;
+        $aBindings = array(
+            'campaign_id' => $iCampaignId,
+            'email_list' => $sEmailList
+        );
+        $this->query("UPDATE `" . $CNF['TABLE_CAMPAIGNS'] . "` SET `" . $CNF['FIELD_EMAIL_LIST'] . "` = CONCAT(IFNULL(`" . $CNF['FIELD_EMAIL_LIST'] . "`, ''), ',', :email_list) WHERE `" . $CNF['FIELD_ID'] . "` = :campaign_id", $aBindings);
     }
     }
     
     
     public function getCampaignInfoById ($iCampaignId)
     public function getCampaignInfoById ($iCampaignId)

+ 1 - 1
modules/boonex/massmailer/classes/BxMassMailerGridCampaigns.php

@@ -78,7 +78,7 @@ class BxMassMailerGridCampaigns extends BxTemplGrid
             echoJson($aRes);
             echoJson($aRes);
         }
         }
         else {
         else {
-            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('bx_massmailer_campaign_send_all', _t('_bx_massmailer_campaign_form_send_all_title'), $this->_oModule->_oTemplate->parseHtmlByName('manage_item.html', array(
+            $sContent = BxTemplFunctions::getInstance()->popupBox('bx_massmailer_campaign_send_all', _t('_bx_massmailer_campaign_form_send_all_title'), $this->_oModule->_oTemplate->parseHtmlByName('manage_item.html', array(
                 'form_id' => $oForm->id,
                 'form_id' => $oForm->id,
                 'form' => $oForm->getCode(true),
                 'form' => $oForm->getCode(true),
                 'object' => $this->_sObject,
                 'object' => $this->_sObject,

+ 3 - 3
modules/boonex/massmailer/classes/BxMassMailerModule.php

@@ -488,7 +488,6 @@ class BxMassMailerModule extends BxBaseModGeneralModule
           
           
     public function sendAll($iCampaignId)
     public function sendAll($iCampaignId)
     {
     {
-        $aEmails = array();
         $aTmp = $this->getDataForCampaign($iCampaignId);
         $aTmp = $this->getDataForCampaign($iCampaignId);
         $aTemplate = $aTmp[0];
         $aTemplate = $aTmp[0];
         $aCustomHeaders = $aTmp[1];
         $aCustomHeaders = $aTmp[1];
@@ -496,14 +495,15 @@ class BxMassMailerModule extends BxBaseModGeneralModule
               
               
         if (!$aTemplate)
         if (!$aTemplate)
             return false;
             return false;
+        
         $this->_oDb->deleteCampaignData($iCampaignId);
         $this->_oDb->deleteCampaignData($iCampaignId);
         $aAccounts = $this->getEmailsBySegment($aCampaign['segments'], $aCampaign['is_one_per_account']);
         $aAccounts = $this->getEmailsBySegment($aCampaign['segments'], $aCampaign['is_one_per_account']);
         foreach ($aAccounts as $aAccountInfo){
         foreach ($aAccounts as $aAccountInfo){
-            array_push($aEmails, $aAccountInfo['email']);
             $this->sendLetter($aAccountInfo['email'], $iCampaignId, $aCustomHeaders, $aAccountInfo['profile_id'], $aTemplate, true);
             $this->sendLetter($aAccountInfo['email'], $iCampaignId, $aCustomHeaders, $aAccountInfo['profile_id'], $aTemplate, true);
+            $this->_oDb->addEmailToSentListForCampaign($iCampaignId, $aAccountInfo['email']);
         }
         }
               
               
-        $this->_oDb->sendCampaign($iCampaignId, implode(',', $aEmails));
+        $this->_oDb->sendCampaign($iCampaignId);
         return true;
         return true;
     }
     }
     
     

+ 33 - 5
modules/boonex/massmailer/classes/BxMassMailerTemplate.php

@@ -112,14 +112,42 @@ class BxMassMailerTemplate extends BxBaseModGeneralTemplate
         $aSegments = $this->_oModule->getSegments();
         $aSegments = $this->_oModule->getSegments();
         $aTmp = array();
         $aTmp = array();
         foreach($aSegments as $sKey => $aSegment){
         foreach($aSegments as $sKey => $aSegment){
-            $aTmp[] = array('value' => $sKey, 'title' => $aSegment);
+            $aTmp[$sKey] = $aSegment;
         }
         }
         
         
+        $oForm = new BxTemplFormView(array());
+        
+        $aInputReport = array(
+            'type' => 'select',
+            'name' => 'report',
+            'attrs' => ['class' => 'bx_massmailer_report_selector'],
+            'value' => 'content_total',
+            'values' => [
+                'content_total' => _t('_bx_massmailer_txt_title_content_total'), 
+                'content_speed' => _t('_bx_massmailer_txt_title_content_speed')
+            ]
+        );
+        
+        $aInputSegments = array(
+            'type' => 'select',
+            'name' => 'segments',
+            'attrs' => ['class' => 'bx_massmailer_report_selector'],
+            'value' => 'content_total',
+            'values' => $aTmp
+        );
+        
+        $aInputInterval = array(
+            'type' => 'text',
+            'name' => 'interval',
+            'attrs' => ['class' => 'bx_massmailer_date_picker'],
+            'value' => $sDate
+        );
+        
+
         return $this->getJsCode('chart', array('sChartName' => 'SUBSCRIBERS_INFO')) . $this->parseHtmlByName('subscribers_info.html', array(
         return $this->getJsCode('chart', array('sChartName' => 'SUBSCRIBERS_INFO')) . $this->parseHtmlByName('subscribers_info.html', array(
-            'interval' => $sDate,
-            'bx_repeat:items' => $aTmp,
-            'title_content_total' => _t('_bx_massmailer_txt_title_content_total'),
-            'title_content_speed' => _t('_bx_massmailer_txt_title_content_speed')
+            'report' => $oForm->genInput($aInputReport),
+            'segments' => $oForm->genInput($aInputSegments),
+            'interval' => $oForm->genInput($aInputInterval),
         ));
         ));
     }
     }
     
     

+ 3 - 10
modules/boonex/massmailer/template/subscribers_info.html

@@ -1,15 +1,8 @@
 <div id="bx_massmailer_chart_container">
 <div id="bx_massmailer_chart_container">
     <div class="bx_massmailer_filters">
     <div class="bx_massmailer_filters">
-        <select class="bx-def-font-inputs bx-form-input-select bx_massmailer_segments_selector">
-            <bx_repeat:items>
-                <option value="__value__">__title__</option>
-            </bx_repeat:items>
-        </select>
-        <select class="bx-def-font-inputs bx-form-input-select bx_massmailer_report_selector">
-            <option value="content_total">__title_content_total__</option>
-            <option value="content_speed">__title_content_speed__</option>
-        </select>
-        <input type="text" class="bx-def-font-inputs bx-form-input-select bx_massmailer_date_picker" value="__interval__" />
+        __segments__
+        __report__
+        __interval__
     </div>
     </div>
     <div class="bx_massmailer_chart_cnt bx-def-margin-top">
     <div class="bx_massmailer_chart_cnt bx-def-margin-top">
         <canvas class="bx_massmailer_chart"></canvas>
         <canvas class="bx_massmailer_chart"></canvas>

+ 8 - 2
modules/boonex/wiki/classes/BxWikiStudioPage.php

@@ -120,6 +120,7 @@ class BxWikiStudioPage extends BxTemplStudioModule
             ];
             ];
             $sErrorMsg = '';
             $sErrorMsg = '';
             $b = $this->import($aParams, $sErrorMsg);
             $b = $this->import($aParams, $sErrorMsg);
+            self::removeTmpFolder();
             if ($b)
             if ($b)
                 return _t('_bx_wiki_import_success');
                 return _t('_bx_wiki_import_success');
             else
             else
@@ -141,7 +142,7 @@ class BxWikiStudioPage extends BxTemplStudioModule
 
 
         // empty directory to clone repository to
         // empty directory to clone repository to
         $sDir = BX_DIRECTORY_PATH_TMP . 'bx_wiki_import';
         $sDir = BX_DIRECTORY_PATH_TMP . 'bx_wiki_import';
-        if (file_exists($sDir) && !bx_rrmdir($sDir)) {
+        if (!self::removeTmpFolder()) {
             $sErrorMsg = "$sDir can't be removed";
             $sErrorMsg = "$sDir can't be removed";
             return false;
             return false;
         }
         }
@@ -151,7 +152,7 @@ class BxWikiStudioPage extends BxTemplStudioModule
         $aOutput = null;
         $aOutput = null;
         $iRetVal = null;
         $iRetVal = null;
         if (false === exec(escapeshellcmd($sCmd), $aOutput, $iRetVal) || (null !== $iRetVal && $iRetVal)) {
         if (false === exec(escapeshellcmd($sCmd), $aOutput, $iRetVal) || (null !== $iRetVal && $iRetVal)) {
-            $sErrorMsg = "Command($sCmd) execution failed";
+            $sErrorMsg = "Command($sCmd) execution failed: <pre>" . implode("\n", $aOutput) . "</pre>";
             return false;
             return false;
         }
         }
 
 
@@ -350,6 +351,11 @@ class BxWikiStudioPage extends BxTemplStudioModule
         return $sContents;
         return $sContents;
     }
     }
 
 
+    static public function removeTmpFolder() 
+    {
+        $sDir = BX_DIRECTORY_PATH_TMP . 'bx_wiki_import';
+        return !file_exists($sDir) || bx_rrmdir($sDir);
+    }
 }
 }
 
 
 /** @} */
 /** @} */

+ 4 - 0
template/css/wiki.css

@@ -84,6 +84,10 @@
     top: -1.5rem;
     top: -1.5rem;
     right: 0;
     right: 0;
 }
 }
+html .bx-page-wiki-container pre {
+    background-color:#fff;
+    border:1px solid #888;
+}
 html .stackedit-container {
 html .stackedit-container {
     z-index:99999;
     z-index:99999;
 }
 }

+ 1 - 2
template/designbox_share_popup.html

@@ -1,5 +1,4 @@
 <div class="bx-db-share-popup">
 <div class="bx-db-share-popup">
-    <div class="bx-db-title bx-def-font-h2"><bx_text:_sys_txt_share_popup_header /></div>
     <div class="bx-db-share-popup-cnt">
     <div class="bx-db-share-popup-cnt">
          <bx_menu:sys_social_sharing />
          <bx_menu:sys_social_sharing />
          <div class="bx-def-margin-sec-bottom">
          <div class="bx-def-margin-sec-bottom">
@@ -8,7 +7,7 @@
          </div>
          </div>
          <div class="bx-def-margin-sec-bottom">
          <div class="bx-def-margin-sec-bottom">
              <bx_text:_sys_txt_share_popup_embeded_code />        
              <bx_text:_sys_txt_share_popup_embeded_code />        
-             <div class="bx-def-border bx-def-padding-sec max-w-xs rounded bx-def-font-small">__code__</div> 
+             <div class="bx-def-border bx-def-padding-sec rounded bx-def-font-small">__code__</div> 
          </div>
          </div>
     </div>
     </div>
 </div>
 </div>

+ 6 - 4
template/scripts/BxBasePage.php

@@ -64,10 +64,12 @@ class BxBasePage extends BxDolPage
     {
     {
         $aEmbedData = BxDolPage::getEmbedData(bx_get('url'));
         $aEmbedData = BxDolPage::getEmbedData(bx_get('url'));
         
         
-        echo $this->_oTemplate->parseHtmlByName('designbox_share_popup.html', array(
-            'url' => $aEmbedData['url'],
-            'code' => htmlspecialchars($aEmbedData['html']),
-        ));
+        echo PopupBox('sys_share_popup', _t('_sys_txt_share_popup_header'), 
+            $this->_oTemplate->parseHtmlByName('designbox_share_popup.html', [
+                'url' => $aEmbedData['url'],
+                'code' => htmlspecialchars($aEmbedData['html']),
+            ]
+        ), true);
     }
     }
     
     
     public function performActionEmbed ()
     public function performActionEmbed ()