Просмотр исходного кода

#94 - load all form css/js files in one method

Alex Trofimov 12 лет назад
Родитель
Сommit
cef65a8b54

+ 15 - 8
inc/classes/BxDolUploader.php

@@ -252,14 +252,7 @@ abstract class BxDolUploader extends BxDol
      */
     public function getUploaderButton($mixedGhostTemplate, $isMultiple = true, $aParams = array())
     {
-        $this->_oTemplate->addCss('uploaders.css');
-
-        $this->_oTemplate->addJs('BxDolUploader.js');
-        $this->_oTemplate->addJsTranslation(array(
-            '_sys_uploader_confirm_leaving_page',
-            '_sys_uploader_confirm_close_popup',
-            '_sys_uploader_upload_canceled',
-        ));
+        $this->addCssJs ();
 
         $sJsValue = '';
         if (is_array($mixedGhostTemplate)) {
@@ -285,6 +278,20 @@ abstract class BxDolUploader extends BxDol
         return $this->_oTemplate->parseHtmlByName($this->_sButtonTemplate, $aParams);
     }
 
+    /**
+     * add necessary js, css files and js translations
+     */ 
+    public function addCssJs ()
+    {
+        $this->_oTemplate->addCss('uploaders.css');
+        $this->_oTemplate->addJs('BxDolUploader.js');
+        $this->_oTemplate->addJsTranslation(array(
+            '_sys_uploader_confirm_leaving_page',
+            '_sys_uploader_confirm_close_popup',
+            '_sys_uploader_upload_canceled',
+        ));
+    }
+
     /**
      * Get uploader button title
      */

+ 21 - 1
template/scripts/BxBaseFormView.php

@@ -808,11 +808,12 @@ BLAH;
      */
     function genInputFiles(&$aInput, $sInfo = '', $sError = '')
     {
+        bx_import('BxDolUploader');
+
         $sUniqId = genRndPwd (8, false);
         $sUploaders = '';
         $oUploader = null;
         foreach ($aInput['uploaders'] as $sUploaderObject) {
-            bx_import('BxDolUploader');
             $oUploader = BxDolUploader::getObjectInstance($sUploaderObject, $aInput['storage_object'], $sUniqId);
             if (!$oUploader)
                 continue;
@@ -1214,6 +1215,25 @@ BLAH;
                 'timepicker-addon/i18n/jquery-ui-timepicker-' . $sCalendarLang . '.js',
             );
 
+            foreach ($this->aInputs as $aInput) {
+                if (!isset($aInput['type']) || 'files' != $aInput['type'] /*|| !isset($aInput['uploaders'])*/)
+                    continue;
+   
+                bx_import('BxDolUploader');
+
+                // TODO: get rid of hardcode(remove 2 lines below) and uncomment the code below/above when uploaders will be specified in comments
+                $oUploader = BxDolUploader::getObjectInstance('sys_cmts_simple', 'sys_cmts_images', '');
+                $oUploader->addCssJs();
+/* 
+                foreach ($aInput['uploaders'] as $sUploaderObject) {
+                    $oUploader = BxDolUploader::getObjectInstance($sUploaderObject, $aInput['storage_object'], '');
+                    if ($oUploader)
+                        $oUploader->addCssJs();
+                }
+*/
+            }
+                    
+
             $this->oTemplate->addJs($aJs);
             $this->oTemplate->addCss($aCss);
 

+ 4 - 8
template/scripts/BxBaseUploaderHTML5.php

@@ -27,16 +27,12 @@ class BxBaseUploaderHTML5 extends BxDolUploader
     }
 
     /**
-     * Show uploader button.
-     * @return HTML string
-     */
-    public function getUploaderButton($sGhostTemplate, $isMultiple = true, $aParams = array())
+     * add necessary js, css files and js translations
+     */ 
+    public function addCssJs ()
     {
-        $s = parent::getUploaderButton($sGhostTemplate, $isMultiple, $aParams);
-
+        parent::addCssJs ();
         $this->_oTemplate->addJs('fileuploader.js');
-
-        return $s;
     }
 
     /**