فهرست منبع

Ticket #1465 - Fixes and updates.

AntonLV 7 سال پیش
والد
کامیت
76c2ee1d97

+ 7 - 2
modules/base/general/classes/BxBaseModGeneralAlertsResponse.php

@@ -76,9 +76,14 @@ class BxBaseModGeneralAlertsResponse extends BxDolAlertsResponse
 
         $oTranscoder = BxDolTranscoder::getObjectInstance($CNF['OBJECT_VIDEOS_TRANSCODERS']['mp4']);
         $aGhostsToCheck = $oStorage->getGhosts($aGhost['profile_id'], $iContentId);
-        foreach($aGhostsToCheck as $aGhostToCheck)
-            if(!$oTranscoder->isFileReady($aGhostToCheck['id']))
+        foreach($aGhostsToCheck as $aGhostToCheck) {
+            $aGhostInfo = $oStorage->getFile((int)$aGhostToCheck['id']);
+            if(strncmp($aGhostInfo['mime_type'], 'video/', 6) !== 0)
+                continue;
+
+            if(!$oTranscoder->isFileReady((int)$aGhostToCheck['id']))
                 return;
+        }
 
         if((int)$this->_oModule->_oDb->updateEntriesBy(array($CNF['FIELD_STATUS'] => 'active'), array($CNF['FIELD_ID'] => $iContentId)) > 0)
             $this->_oModule->onPublished($iContentId);

+ 20 - 2
modules/base/general/classes/BxBaseModGeneralFormEntry.php

@@ -179,8 +179,26 @@ class BxBaseModGeneralFormEntry extends BxTemplFormView
 
             foreach($aFields as $sField) {
                 $mixedFieldValues = $this->getCleanValue($sField);
-                if(!empty($mixedFieldValues))
-                    $aValsToAdd[$CNF['FIELD_STATUS']] = 'awaiting';
+                if(empty($mixedFieldValues)) 
+                    continue;
+
+                $oStorage = BxDolStorage::getObjectInstance($this->aInputs[$sField]['storage_object']);
+                if(!$oStorage)
+                    continue;
+
+                if(!is_array($mixedFieldValues))
+                    $mixedFieldValues = array($mixedFieldValues);
+
+                foreach($mixedFieldValues as $mixedFieldValue) {
+                    $aInfo = $oStorage->getFile((int)$mixedFieldValue);
+                    if(empty($aInfo) || !is_array($aInfo))
+                        continue;
+
+                    if(strncmp($aInfo['mime_type'], 'video/', 6) === 0) {
+                        $aValsToAdd[$CNF['FIELD_STATUS']] = 'awaiting';
+                        break 2;
+                    }
+                }
             }
         }
 

+ 36 - 1
modules/base/text/classes/BxBaseModTextPageEntry.php

@@ -24,6 +24,9 @@ class BxBaseModTextPageEntry extends BxBaseModGeneralPageEntry
         if ($iContentId)
             $this->_aContentInfo = $this->_oModule->_oDb->getContentInfoById($iContentId);
 
+        $bLoggedOwner = isset($this->_aContentInfo[$CNF['FIELD_AUTHOR']]) && $this->_aContentInfo[$CNF['FIELD_AUTHOR']] == bx_get_logged_profile_id();
+        $bLoggedModerator = $this->_oModule->checkAllowedEditAnyEntry() === CHECK_ACTION_RESULT_ALLOWED;
+
         $sTitle = $sUrl = $sIcon = "";
         if ($this->_aContentInfo && CHECK_ACTION_RESULT_ALLOWED === $this->_oModule->checkAllowedView($this->_aContentInfo)) {
             $sTitle = isset($this->_aContentInfo[$CNF['FIELD_TITLE']]) ? $this->_aContentInfo[$CNF['FIELD_TITLE']] : strmaxtextlen($this->_aContentInfo[$CNF['FIELD_TEXT']], 20, '...');
@@ -32,7 +35,7 @@ class BxBaseModTextPageEntry extends BxBaseModGeneralPageEntry
 
             $this->addMarkers($this->_aContentInfo); // every field can be used as marker
         }
-
+        
         $this->addMarkers(array(
             'title' => $sTitle,
             'entry_link' => $sUrl,
@@ -44,6 +47,38 @@ class BxBaseModTextPageEntry extends BxBaseModGeneralPageEntry
             'link' => $sUrl,
             'icon' => $sIcon
         ));
+        
+        $aInformers = array ();
+        $oInformer = BxDolInformer::getInstance($this->_oTemplate);
+        if($oInformer && ($bLoggedOwner || $bLoggedModerator)) {
+            $iNow = time();
+            $bFieldPublished = isset($CNF['FIELD_PUBLISHED']);
+            $sStatus = isset($CNF['FIELD_STATUS']) ? $this->_aContentInfo[$CNF['FIELD_STATUS']] : '';
+
+            //--- Display 'processing' informer if an item was already published but awaiting/failed to be processed.
+            if(!$bFieldPublished || $this->_aContentInfo[$CNF['FIELD_PUBLISHED']] <= $iNow) {
+                if(!empty($CNF['INFORMERS']['processing']) && isset($CNF['INFORMERS']['processing']['map'][$sStatus])) {
+                    $aInformer = $CNF['INFORMERS']['processing'];
+                    $aInformers[] = array ('name' => $aInformer['name'], 'msg' => _t($aInformer['map'][$sStatus]['msg']), 'type' => $aInformer['map'][$sStatus]['type']);
+                }
+            }
+            //--- Display 'scheduled' informer if an item wasn't published yet.
+            else if($bFieldPublished) {
+                if(!empty($CNF['INFORMERS']['scheduled']) && isset($CNF['INFORMERS']['scheduled']['map'][$sStatus])) {
+                    $this->addMarkers(array(
+                        'date_publish_uf' => bx_time_js((int)$this->_aContentInfo[$CNF['FIELD_PUBLISHED']], BX_FORMAT_DATE, true)
+                    ));
+
+                    $aInformer = $CNF['INFORMERS']['scheduled'];
+                    $aInformers[] = array ('name' => $aInformer['name'], 'msg' => _t($aInformer['map'][$sStatus]['msg']), 'type' => $aInformer['map'][$sStatus]['type']);
+                }
+            }
+
+            // add informers
+            if($aInformers)
+                foreach($aInformers as $aInformer)
+                    $oInformer->add($aInformer['name'], $this->_replaceMarkers($aInformer['msg']), $aInformer['type']);
+        }
     }
 
     public function isActive()

+ 13 - 0
modules/boonex/albums/classes/BxAlbumsConfig.php

@@ -9,6 +9,8 @@
  * @{
  */
 
+bx_import('BxDolInformer');
+
 class BxAlbumsConfig extends BxBaseModTextConfig
 {
     function __construct($aModule)
@@ -136,6 +138,17 @@ class BxAlbumsConfig extends BxBaseModTextConfig
                 'bx_albums_view' => $aMenuItems2Methods,
             ),
 
+            // informer messages
+            'INFORMERS' => array (
+                'processing' => array (
+                    'name' => 'bx_albums-processing',
+                    'map' => array (
+                        'awaiting' => array('msg' => '_bx_albums_txt_processing_awaiting', 'type' => BX_INFORMER_ALERT),
+                        'failed' => array('msg' => '_bx_albums_txt_processing_failed', 'type' => BX_INFORMER_ERROR)
+                    ),
+                ),
+            ),
+
             // some language keys
             'T' => array (
                 'txt_sample_single' => '_bx_albums_txt_sample_single',

+ 3 - 0
modules/boonex/albums/install/langs/en.xml

@@ -256,6 +256,9 @@
     <string name="_bx_albums_txt_media_album_shutter_speed"><![CDATA[Exposure time]]></string>
     <string name="_bx_albums_txt_media_album_shutter_speed_value"><![CDATA[{0}s]]></string>
     <string name="_bx_albums_txt_media_album_iso"><![CDATA[ISO]]></string>
+    <string name="_bx_albums_txt_processing_awaiting"><![CDATA[Album will be published as soon as video is converted]]></string>
+    <string name="_bx_albums_txt_processing_failed"><![CDATA[Album isn't published because video conversion failed, edit video to fix the issue.]]></string>
+
     <string name="_bx_albums_txt_err_cannot_perform_action"><![CDATA[Cannot perform the action. Please report.]]></string>
 
     <string name="_bx_albums_alert_action_medias_added"><![CDATA[add images]]></string>

+ 19 - 0
modules/boonex/posts/classes/BxPostsConfig.php

@@ -9,6 +9,8 @@
  * @{
  */
 
+bx_import('BxDolInformer');
+
 class BxPostsConfig extends BxBaseModTextConfig
 {
     function __construct($aModule)
@@ -137,6 +139,23 @@ class BxPostsConfig extends BxBaseModTextConfig
                 'bx_posts_view' => $aMenuItems2Methods,
             ),
 
+            // informer messages
+            'INFORMERS' => array (
+                'processing' => array (
+                    'name' => 'bx-posts-processing',
+                    'map' => array (
+                        'awaiting' => array('msg' => '_bx_posts_txt_processing_awaiting', 'type' => BX_INFORMER_ALERT),
+                        'failed' => array('msg' => '_bx_posts_txt_processing_failed', 'type' => BX_INFORMER_ERROR)
+                    ),
+                ),
+                'scheduled' => array (
+                    'name' => 'bx-posts-scheduled',
+                    'map' => array (
+                        'awaiting' => array('msg' => '_bx_posts_txt_scheduled_awaiting', 'type' => BX_INFORMER_ALERT),
+                    ),
+                ),
+            ),
+
             // some language keys
             'T' => array (
                 'txt_sample_single' => '_bx_posts_txt_sample_single',

+ 5 - 2
modules/boonex/posts/install/langs/en.xml

@@ -278,9 +278,12 @@
     <string name="_bx_posts_txt_sample_single_with_article"><![CDATA[a post]]></string>
     <string name="_bx_posts_txt_sample_comment_single"><![CDATA[comment to post]]></string>
     <string name="_bx_posts_txt_sample_vote_single"><![CDATA[vote to post]]></string>
-    
+    <string name="_bx_posts_txt_processing_awaiting"><![CDATA[Post will be published as soon as video is converted]]></string>
+    <string name="_bx_posts_txt_processing_failed"><![CDATA[Post isn't published because video conversion failed, edit video to fix the issue.]]></string>
+    <string name="_bx_posts_txt_scheduled_awaiting"><![CDATA[Post publishing date is {date_publish_uf}]]></string>
+
     <string name="_bx_posts_txt_err_cannot_perform_action"><![CDATA[Cannot perform action. Please report.]]></string>
-    
+
     <string name="_bx_posts_txt_poll_view_answers"><![CDATA[poll]]></string>
     <string name="_bx_posts_txt_poll_view_results"><![CDATA[results]]></string>
     <string name="_bx_posts_txt_poll_answer_vote_do_by"><![CDATA[Voted for]]></string>

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

@@ -254,6 +254,9 @@
     <string name="_bx_albums_txt_media_album_shutter_speed"><![CDATA[Выдержка]]></string>
     <string name="_bx_albums_txt_media_album_shutter_speed_value"><![CDATA[{0} сек]]></string>
     <string name="_bx_albums_txt_media_album_iso"><![CDATA[Чувствительность (ISO)]]></string>
+    <string name="_bx_albums_txt_processing_awaiting"><![CDATA[Альбом будет опубликован как только сконвертируется видео.]]></string>
+    <string name="_bx_albums_txt_processing_failed"><![CDATA[Альбом не был опубликован, тк произошла ошибка при конвертации видео. Обновите видео, чтобы решить проблему.]]></string>
+
     <string name="_bx_albums_txt_err_cannot_perform_action"><![CDATA[Невозможно выполнить действие. Пожалуйста, оповестите нас об этой проблеме.]]></string>
 
     <string name="_bx_albums_alert_action_medias_added"><![CDATA[добавить изображения]]></string>

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

@@ -278,6 +278,9 @@
     <string name="_bx_posts_txt_sample_single_with_article"><![CDATA[публикация]]></string>
     <string name="_bx_posts_txt_sample_comment_single"><![CDATA[комментарий к публикации]]></string>
     <string name="_bx_posts_txt_sample_vote_single"><![CDATA[голос за публикацию]]></string>
+    <string name="_bx_posts_txt_processing_awaiting"><![CDATA[Публикация будет опубликована как только сконвертируется видео.]]></string>
+    <string name="_bx_posts_txt_processing_failed"><![CDATA[Публикация не была опубликовано, тк произошла ошибка при конвертации видео. Обновите видео, чтобы решить проблему.]]></string>
+    <string name="_bx_posts_txt_scheduled_awaiting"><![CDATA[Дата публикации: {date_publish_uf}]]></string>
 
     <string name="_bx_posts_txt_err_cannot_perform_action"><![CDATA[Невозможно выполнить действие. Пожалуйста, оповестите нас об этой проблеме.]]></string>
 

+ 2 - 0
modules/boonex/russian/data/langs/bx_videos/ru.xml

@@ -221,4 +221,6 @@
     <string name="_bx_videos_txt_sample_comment_single"><![CDATA[комментарий к видео]]></string>
     <string name="_bx_videos_txt_sample_vote_single"><![CDATA[голос за видео]]></string>
     <string name="_bx_videos_txt_n_views"><![CDATA[{0} просмотров]]></string>
+    <string name="_bx_videos_txt_processing_awaiting"><![CDATA[Видео будет опубликовано как только сконвертируется.]]></string>
+    <string name="_bx_videos_txt_processing_failed"><![CDATA[Видео не было опубликовано, тк произошла ошибка при конвертации. Обновите видео, чтобы решить проблему.]]></string>
 </resources>

+ 15 - 2
modules/boonex/videos/classes/BxVideosConfig.php

@@ -9,6 +9,8 @@
  * @{
  */
 
+bx_import('BxDolInformer');
+
 class BxVideosConfig extends BxBaseModTextConfig
 {
 
@@ -95,7 +97,7 @@ class BxVideosConfig extends BxBaseModTextConfig
             'OBJECT_VOTES' => 'bx_videos',
             'OBJECT_VOTES_STARS' => 'bx_videos_stars',
             'OBJECT_SCORES' => 'bx_videos',
-        	'OBJECT_FAVORITES' => 'bx_videos',
+            'OBJECT_FAVORITES' => 'bx_videos',
             'OBJECT_FEATURED' => 'bx_videos',
             'OBJECT_METATAGS' => 'bx_videos',
             'OBJECT_COMMENTS' => 'bx_videos',
@@ -115,7 +117,7 @@ class BxVideosConfig extends BxBaseModTextConfig
             'OBJECT_MENU_SNIPPET_META' => 'bx_videos_snippet_meta', // menu for snippet meta info
             'OBJECT_MENU_MANAGE_TOOLS' => 'bx_videos_menu_manage_tools', //manage menu in content administration tools
             'OBJECT_GRID_ADMINISTRATION' => 'bx_videos_administration',
-        	'OBJECT_GRID_COMMON' => 'bx_videos_common',
+            'OBJECT_GRID_COMMON' => 'bx_videos_common',
             'OBJECT_UPLOADERS' => array('sys_simple', 'sys_html5'),
 
             // menu items which visibility depends on custom visibility checking
@@ -126,6 +128,17 @@ class BxVideosConfig extends BxBaseModTextConfig
                 'bx_videos_view' => $aMenuItems2Methods,
             ),
 
+            // informer messages
+            'INFORMERS' => array (
+                'processing' => array (
+                    'name' => 'bx-videos-processing',
+                    'map' => array (
+                        'awaiting' => array('msg' => '_bx_videos_txt_processing_awaiting', 'type' => BX_INFORMER_ALERT),
+                        'failed' => array('msg' => '_bx_videos_txt_processing_failed', 'type' => BX_INFORMER_ERROR)
+                    ),
+                ),
+            ),
+
             // some language keys
             'T' => array (
                 'txt_sample_single' => '_bx_videos_txt_sample_single',

+ 2 - 0
modules/boonex/videos/install/langs/en.xml

@@ -221,4 +221,6 @@
     <string name="_bx_videos_txt_sample_comment_single"><![CDATA[comment to video]]></string>
     <string name="_bx_videos_txt_sample_vote_single"><![CDATA[vote to video]]></string>
     <string name="_bx_videos_txt_n_views"><![CDATA[{0} views]]></string>
+    <string name="_bx_videos_txt_processing_awaiting"><![CDATA[Video will be published as soon as video is converted]]></string>
+    <string name="_bx_videos_txt_processing_failed"><![CDATA[Video isn't published because video conversion failed, edit video to fix the issue.]]></string>
 </resources>