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

Ticket #5568 - API: Add support for Albums module.

AntonLV 3 месяцев назад
Родитель
Сommit
69e60b08fc

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

@@ -67,6 +67,9 @@ class BxAlbumsConfig extends BxBaseModTextConfig
             'URI_EDIT_ENTRY' => 'edit-album',
             'URI_MANAGE_COMMON' => 'albums-manage',
             'URI_FAVORITES_LIST' => 'albums-favorites',
+            'URI_EDIT_MEDIA' => 'edit-media',
+            'URI_MOVE_MEDIA' => 'move-media',
+            'URI_DELETE_MEDIA' => 'delete-media',
 
             'URL_HOME' => 'page.php?i=albums-home',
             'URL_POPULAR' => 'page.php?i=albums-popular',
@@ -130,6 +133,7 @@ class BxAlbumsConfig extends BxBaseModTextConfig
             'OBJECT_FORM_MEDIA' => 'bx_albums_media',
             'OBJECT_FORM_MEDIA_DISPLAY_EDIT' => 'bx_albums_media_edit',
             'OBJECT_FORM_MEDIA_DISPLAY_MOVE' => 'bx_albums_media_move',
+            'OBJECT_FORM_MEDIA_DISPLAY_DELETE' => 'bx_albums_media_delete',
             'OBJECT_MENU_ACTIONS_VIEW_ENTRY' => 'bx_albums_view', // actions menu on view entry page
             'OBJECT_MENU_ACTIONS_VIEW_ENTRY_ALL' => 'bx_albums_view_actions', // all actions menu on view entry page
             'OBJECT_MENU_ACTIONS_VIEW_MEDIA' => 'bx_albums_view_media', // actions menu on view media page

+ 5 - 1
modules/boonex/albums/classes/BxAlbumsFormMedia.php

@@ -43,7 +43,11 @@ class BxAlbumsFormMedia extends BxTemplFormView
         $this->_iMediaId = $iMediaId;
         $this->_aMediaInfo = $this->_oModule->_oDb->getMediaInfoById($iMediaId);
 
-        $this->aFormAttrs['action'] = BX_DOL_URL_ROOT . $this->_oModule->_oConfig->getBaseUri() . $aAction . '_media/' . $iMediaId;
+        if(bx_is_dynamic_request())        
+            $this->aFormAttrs['action'] = $this->_oModule->_oConfig->getBaseUri() . $aAction . '_media/' . $iMediaId;
+        else
+            $this->aFormAttrs['action'] = BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_' . strtoupper($aAction) . '_MEDIA'] . '&id=' . $iMediaId);
+        $this->aFormAttrs['action'] = bx_absolute_url($this->aFormAttrs['action']);
 
         if(isset($this->aInputs['content_id'])) {
             $aAlbums = $this->_oModule->_oDb->getEntriesBy(array('type' => 'author', 'author' => $this->_aMediaInfo['author']));

+ 18 - 21
modules/boonex/albums/classes/BxAlbumsMenuViewActionsMedia.php

@@ -87,40 +87,38 @@ class BxAlbumsMenuViewActionsMedia extends BxAlbumsMenuViewActions
     protected function _getMenuItemEditImage($aItem)
     {
         $CNF = &$this->_oModule->_oConfig->CNF;
-        
+
         $aResult = $this->_getMenuItemByNameActions($aItem, [
             'object_menu' => $CNF['OBJECT_MENU_ACTIONS_VIEW_MEDIA']
         ]);
 
-        if($this->_bIsApi)
+        if($this->_bIsApi) {
             $aResult = array_merge($aResult, [
-                'display_type' => 'callback',
-                'data' => [
-                    'request_url' => $this->_sModule . '/edit_media/&params[]=' . $this->_iMediaId, 
-                    'on_callback' => 'modal'
-                ]
+                'link' => BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_EDIT_MEDIA'] . '&id=' . $this->_iMediaId),
             ]);
 
+            unset($aResult['display_type'], $aResult['data']);
+        }
+
         return $aResult;
     }
-	
+
     protected function _getMenuItemDeleteImage($aItem)
     {
         $CNF = &$this->_oModule->_oConfig->CNF;
-        
+
         $aResult = $this->_getMenuItemByNameActions($aItem, [
             'object_menu' => $CNF['OBJECT_MENU_ACTIONS_VIEW_MEDIA']
         ]);
 
-        if($this->_bIsApi)
+        if($this->_bIsApi) {
             $aResult = array_merge($aResult, [
-                'display_type' => 'callback',
-                'data' => [
-                    'request_url' => $this->_sModule . '/delete_media/&params[]=' . $this->_iMediaId, 
-                    'on_callback' => 'hide'
-                ]
+                'link' => BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_DELETE_MEDIA'] . '&id=' . $this->_iMediaId),
             ]);
 
+            unset($aResult['display_type'], $aResult['data']);
+        }
+
         return $aResult;
     }
 
@@ -132,15 +130,14 @@ class BxAlbumsMenuViewActionsMedia extends BxAlbumsMenuViewActions
             'object_menu' => $CNF['OBJECT_MENU_ACTIONS_VIEW_MEDIA']
         ]);
 
-        if($this->_bIsApi)
+        if($this->_bIsApi) {
             $aResult = array_merge($aResult, [
-                'display_type' => 'callback',
-                'data' => [
-                    'request_url' => $this->_sModule . '/move_media/&params[]=' . $this->_iMediaId, 
-                    'on_callback' => 'modal'
-                ]
+                'link' => BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_MOVE_MEDIA'] . '&id=' . $this->_iMediaId),
             ]);
 
+            unset($aResult['display_type'], $aResult['data']);
+        }
+
         return $aResult;
     }
 

+ 156 - 66
modules/boonex/albums/classes/BxAlbumsModule.php

@@ -27,9 +27,9 @@ class BxAlbumsModule extends BxBaseModTextModule
     {
         return array_merge(parent::serviceGetSafeServices(), [
             'EntityAddFiles' => '',
-            'EditMedia' => '',
-            'DeleteMedia' => '',
-            'MoveMedia' => '',
+            'MediaEdit' => '',
+            'MediaMove' => '',
+            'MediaDelete' => '',
             'MediaComments' => '',
             'BrowseRecentMedia' => '',
             'BrowseFeaturedMedia' => '',
@@ -159,7 +159,12 @@ class BxAlbumsModule extends BxBaseModTextModule
         return true;
     }
 
-    public function serviceEditMedia($iMediaId)
+    public function serviceMediaEdit($iMediaId = 0, $sDisplay = false)
+    {
+        return $this->_serviceMediaAction('edit', $iMediaId, $sDisplay);
+    }
+
+    public function serviceEditMediaForm($iMediaId, $sDisplay = false)
     {
         $CNF = &$this->_oConfig->CNF;
 
@@ -169,7 +174,7 @@ class BxAlbumsModule extends BxBaseModTextModule
         if(($sMsg = $this->checkAllowedEdit($aContentInfo)) !== CHECK_ACTION_RESULT_ALLOWED)
             return $this->_bIsApi ? [bx_api_get_msg($sMsg)] : ['msg' => $sMsg];
 
-        $oForm = BxDolForm::getObjectInstance($CNF['OBJECT_FORM_MEDIA'], $CNF['OBJECT_FORM_MEDIA_DISPLAY_EDIT']);
+        $oForm = BxDolForm::getObjectInstance($CNF['OBJECT_FORM_MEDIA'], $sDisplay ?: $CNF['OBJECT_FORM_MEDIA_DISPLAY_EDIT']);
         $oForm->initForm('edit', $iMediaId);
         $oForm->initChecker();
 
@@ -189,51 +194,30 @@ class BxAlbumsModule extends BxBaseModTextModule
 
             return $aRes;
         }
-        
+
         if($this->_bIsApi) 
             return [bx_api_get_block('form', $oForm->getCodeAPI(), [
                 'ext' => [
                     'name' => $this->_aModule['name'], 
-                    'request' => ['url' => '/api.php?r=' . $this->_aModule['name'] . '/edit_media/&params[]=' . $iMediaId, 'immutable' => true]
+                    'request' => ['url' => '/api.php?r=' . $this->_aModule['name'] . '/media_edit/&params[]=' . $iMediaId, 'immutable' => true]
                 ]
             ])];
 
-        $sContent = BxTemplStudioFunctions::getInstance()->transBox('bx-albums-edit-media-popup', $this->_oTemplate->parseHtmlByName('media-edit.html', [
-            'form_id' => $oForm->aFormAttrs['id'],
-            'form' => $oForm->getCode(true)
-        ]));
-
-        return ['popup' => ['html' => $sContent, 'options' => ['closeOnOuterClick' => false]]];
+        return $oForm;
     }
 
-    public function serviceDeleteMedia($iMediaId)
+    public function serviceMediaMove($iMediaId = 0, $sDisplay = false)
     {
-        $CNF = &$this->_oConfig->CNF;
-
-        $sUploader = reset($CNF['OBJECT_UPLOADERS']);
-        $aMediaInfo = $this->_oDb->getMediaInfoById($iMediaId);
-        if(!$sUploader || empty($aMediaInfo) || !is_array($aMediaInfo))
-            return [];
-
-        $oUploader = BxDolUploader::getObjectInstance($sUploader, $CNF['OBJECT_STORAGE'], '');
-        if($oUploader === false) 
-            return ($sMsg = _t('_sys_txt_error_occured')) && $this->_bIsApi ? [bx_api_get_msg($sMsg)] : ['msg' => $sMsg];
-
-        $oUploader->deleteGhost($aMediaInfo['file_id'], bx_get_logged_profile_id());
-
-        $sRedirect = bx_absolute_url(BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_VIEW_ENTRY'] . '&id=' . $aMediaInfo['content_id']));
-        return [
-            'redirect' => $this->_bIsApi ? bx_api_get_relative_url($sRedirect) : $sRedirect
-        ];
+        return $this->_serviceMediaAction('move', $iMediaId, $sDisplay);
     }
 
-    public function serviceMoveMedia($iMediaId)
+    public function serviceMoveMediaForm($iMediaId, $sDisplay = false)
     {
         $CNF = &$this->_oConfig->CNF;
 
         $iMediaId = (int)$iMediaId;
 
-        $oForm = BxDolForm::getObjectInstance($CNF['OBJECT_FORM_MEDIA'], $CNF['OBJECT_FORM_MEDIA_DISPLAY_MOVE']);
+        $oForm = BxDolForm::getObjectInstance($CNF['OBJECT_FORM_MEDIA'], $sDisplay ?: $CNF['OBJECT_FORM_MEDIA_DISPLAY_MOVE']);
         $oForm->initForm('move', $iMediaId);
         $oForm->initChecker();
 
@@ -250,16 +234,55 @@ class BxAlbumsModule extends BxBaseModTextModule
             return [bx_api_get_block('form', $oForm->getCodeAPI(), [
                 'ext' => [
                     'name' => $this->_aModule['name'], 
-                    'request' => ['url' => '/api.php?r=' . $this->_aModule['name'] . '/move_media/&params[]=' . $iMediaId, 'immutable' => true]
+                    'request' => ['url' => '/api.php?r=' . $this->_aModule['name'] . '/media_move/&params[]=' . $iMediaId, 'immutable' => true]
                 ]
             ])];
 
-        $sContent = BxTemplStudioFunctions::getInstance()->transBox('bx-albums-move-media-popup', $this->_oTemplate->parseHtmlByName('media-edit.html', [
-            'form_id' => $oForm->aFormAttrs['id'],
-            'form' => $oForm->getCode(true)
-        ]));
+        return $oForm;
+    }
+
+    public function serviceMediaDelete($iMediaId = 0, $sDisplay = false)
+    {
+        return $this->_serviceMediaAction('delete', $iMediaId, $sDisplay);
+    }
+
+    public function serviceDeleteMediaForm($iMediaId, $sDisplay = false)
+    {
+        $CNF = &$this->_oConfig->CNF;
+
+        $iMediaId = (int)$iMediaId;
+        $aMediaInfo = $this->_oDb->getMediaInfoById($iMediaId);
+        $aContentInfo = $this->_oDb->getContentInfoById($aMediaInfo['content_id']);
+        if(($sMsg = $this->checkAllowedEdit($aContentInfo)) !== CHECK_ACTION_RESULT_ALLOWED)
+            return $this->_bIsApi ? [bx_api_get_msg($sMsg)] : ['msg' => $sMsg];
+
+        $oForm = BxDolForm::getObjectInstance($CNF['OBJECT_FORM_MEDIA'], $sDisplay ?: $CNF['OBJECT_FORM_MEDIA_DISPLAY_DELETE']);
+        $oForm->initForm('delete', $iMediaId);
+        $oForm->initChecker();
+
+        if($oForm->isSubmittedAndValid()) {
+            $aRes = ($sMsg = _t('_bx_albums_txt_err_cannot_perform_action')) && $this->_bIsApi ? [bx_api_get_msg($sMsg)] : ['msg' => $sMsg];
+
+            if($oForm->delete($iMediaId) !== false) {
+                if(($sUploader = reset($CNF['OBJECT_UPLOADERS'])) && ($oUploader = BxDolUploader::getObjectInstance($sUploader, $CNF['OBJECT_STORAGE'], '')) !== false) {
+                    $oUploader->deleteGhost($aMediaInfo['file_id'], bx_get_logged_profile_id());
+
+                    $aRes = ['redirect' => bx_absolute_url(BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_VIEW_ENTRY'] . '&id=' . $aMediaInfo['content_id']))];
+                }
+            }               
+
+            return $aRes;
+        }
+
+        if($this->_bIsApi) 
+            return [bx_api_get_block('form', $oForm->getCodeAPI(), [
+                'ext' => [
+                    'name' => $this->_aModule['name'], 
+                    'request' => ['url' => '/api.php?r=' . $this->_aModule['name'] . '/media_delete/&params[]=' . $iMediaId, 'immutable' => true]
+                ]
+            ])];
 
-        return ['popup' => ['html' => $sContent, 'options' => ['closeOnOuterClick' => false]]];
+        return $oForm;
     }
 
     /**
@@ -297,38 +320,23 @@ class BxAlbumsModule extends BxBaseModTextModule
     /**
      * Entry actions and social sharing block
      */
-    public function serviceMediaAllActions ($mixedContent = false, $aParams = array())
+    public function serviceMediaAllActions ($mixedContent = false, $aParams = [])
     {
-        $iMediaId = 0;
-        $aMediaInfo = array();
-
-        $bContent = !empty($mixedContent);
-        if($bContent && is_array($mixedContent))
-            list($iMediaId, $aMediaInfo) = $mixedContent;
-        else {
-            if($bContent)
-                $iMediaId = (int)$mixedContent;
-            else
-                $iMediaId = bx_process_input(bx_get('id'), BX_DATA_INT);
-
-            if(!$iMediaId)
-                return false;
-
-            $aMediaInfo = $this->_oDb->getMediaInfoById($iMediaId);
-        }
-
-        if(!$iMediaId || !$aMediaInfo)
+        $mixedContent = $this->_getMedia($mixedContent);
+        if($mixedContent === false)
             return false;
 
+        list($iMediaId, $aMediaInfo) = $mixedContent; 
+
         $CNF = &$this->_oConfig->CNF;
 
-        return parent::serviceEntityAllActions (array($iMediaId, $aMediaInfo), array_merge(array(
+        return parent::serviceEntityAllActions ([$iMediaId, $aMediaInfo], array_merge([
             'object_menu' => $CNF['OBJECT_MENU_ACTIONS_VIEW_MEDIA_ALL'],
             'object_transcoder' => $CNF['OBJECT_IMAGES_TRANSCODER_BIG'],
             'entry_url' => bx_absolute_url(BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_VIEW_MEDIA'] . '&id=' . $iMediaId)),
             'entry_title' => $aMediaInfo['title'],
             'entry_thumb' => $aMediaInfo['file_id']
-        ), $aParams));
+        ], $aParams));
     }
 
     /**
@@ -827,17 +835,47 @@ class BxAlbumsModule extends BxBaseModTextModule
 
     public function actionEditMedia($iMediaId)
     {
-        echoJson($this->serviceEditMedia($iMediaId));
+        $mixedResult = $this->serviceEditMediaForm($iMediaId);
+        if($mixedResult instanceof BxDolForm)
+            $mixedResult = ['popup' => [
+                'html' => BxTemplStudioFunctions::getInstance()->transBox('bx-albums-edit-media-popup', $this->_oTemplate->parseHtmlByName('media-edit.html', [
+                    'form_id' => $mixedResult->aFormAttrs['id'],
+                    'form' => $mixedResult->getCode(true)
+                ])), 
+                'options' => ['closeOnOuterClick' => false]
+            ]];
+
+        echoJson($mixedResult);
     }
 
-    public function actionDeleteMedia($iMediaId)
+    public function actionMoveMedia($iMediaId)
     {
-        echoJson($this->serviceDeleteMedia($iMediaId));
+        $mixedResult = $this->serviceMoveMediaForm($iMediaId);
+        if($mixedResult instanceof BxDolForm)
+            $mixedResult = ['popup' => [
+                'html' => BxTemplStudioFunctions::getInstance()->transBox('bx-albums-move-media-popup', $this->_oTemplate->parseHtmlByName('media-edit.html', [
+                    'form_id' => $mixedResult->aFormAttrs['id'],
+                    'form' => $mixedResult->getCode(true)
+                ])), 
+                'options' => ['closeOnOuterClick' => false]
+            ]];
+
+        echoJson($mixedResult);
     }
 
-    public function actionMoveMedia($iMediaId)
+    public function actionDeleteMedia($iMediaId)
     {
-        echoJson($this->serviceMoveMedia($iMediaId));
+        $mixedResult = $this->serviceDeleteMediaForm($iMediaId);
+        if($mixedResult instanceof BxDolForm)
+            $mixedResult = ['popup' => [
+                'html' => BxTemplStudioFunctions::getInstance()->transBox('bx-albums-delete-media-popup', $this->_oTemplate->parseHtmlByName('media-edit.html', [
+                    'form_id' => $mixedResult->aFormAttrs['id'],
+                    'form' => $mixedResult->getCode(true)
+                ])), 
+                'options' => ['closeOnOuterClick' => false]
+            ]];
+
+        echoJson($mixedResult);
     }
 
     public function actionGetSiblingMedia($iMediaId, $mixedContext)
@@ -1163,6 +1201,58 @@ class BxAlbumsModule extends BxBaseModTextModule
 
         return $aImages;
     }
+
+    protected function _serviceMediaAction ($sAction, $iMediaId = 0, $sDisplay = false)
+    {
+        $CNF = &$this->_oConfig->CNF;
+
+        $iMediaId = $this->_getMedia($iMediaId, false);
+        if($iMediaId === false)
+            return false;
+
+        $sUrlViewMedia = 'page.php?i=' . $CNF['URI_VIEW_MEDIA'] . '&id=' . $iMediaId;
+        
+        $mixedResult = $this->{'service' . ucfirst($sAction) . 'MediaForm'}($iMediaId, $sDisplay);
+        if($this->_bIsApi) {
+            if(($sRedirect = $mixedResult['redirect'] ?? false))
+                $mixedResult = [bx_api_get_block('redirect', ['uri' => bx_api_get_relative_url($sRedirect)])];
+            else if(($mixedResult['reload'] ?? false))
+                $mixedResult = [bx_api_get_block('redirect', ['uri' => bx_api_get_relative_url(BxDolPermalinks::getInstance()->permalink($sUrlViewMedia))])];
+
+            return $mixedResult;
+        }
+
+        if($mixedResult instanceof BxDolForm)
+            return $mixedResult->getCode();
+
+        if(is_array($mixedResult)) {
+            if(($sMsg = $mixedResult['msg'] ?? false))
+                return MsgBox($sMsg);
+
+            if(($sRedirect = $mixedResult['redirect'] ?? false)) {
+                header('Location: ' . $sRedirect);
+                exit;
+            }
+
+            if(($mixedResult['reload'] ?? false)) {
+                header('Location: ' . bx_absolute_url(BxDolPermalinks::getInstance()->permalink($sUrlViewMedia)));
+                exit;
+            }
+        }
+
+        return false;
+    }
+
+    protected function _getMedia($mixedContent = 0, $sFuncGetMedia = true)
+    {
+        if($mixedContent && is_array($mixedContent))
+            return $mixedContent;
+
+        if($sFuncGetMedia === true)
+            $sFuncGetMedia = 'getMediaInfoById';
+
+        return $this->_getContent($mixedContent, $sFuncGetMedia);
+    }
 }
 
 /** @} */

+ 16 - 5
modules/boonex/albums/classes/BxAlbumsTemplate.php

@@ -420,13 +420,24 @@ class BxAlbumsTemplate extends BxBaseModTextTemplate
 
     function mediaAuthor ($aMediaInfo, $iProfileId = false, $sFuncAuthorDesc = '', $sTemplateName = '') 
     {
-        $oModule = BxDolModule::getInstance($this->MODULE);
-        $CNF = &$oModule->_oConfig->CNF;
+        $CNF = &$this->_oConfig->CNF;
+        $oModule = $this->getModule();
 
-        if (!($aAlbumInfo = $oModule->_oDb->getContentInfoById($aMediaInfo['content_id'])))
-            return '';
+        $aAlbumInfo = $oModule->_oDb->getContentInfoById($aMediaInfo['content_id']);
+        if(!$aAlbumInfo)
+            return $this->_bIsApi ? [] : '';
 
-        return $this->entryAuthor ($aMediaInfo, $aAlbumInfo[$CNF['FIELD_AUTHOR']]);
+        if($this->_bIsApi)
+            return [bx_api_get_block('entity_author', [
+                'author_data' => BxDolProfile::getData($iProfileId),
+                'entry_date' => $aMediaInfo[$CNF['FIELD_ADDED']] ?? '',
+                'entry_context' => '',
+                'menu_manage' => $oModule->getEntryAllActions([$aMediaInfo['id'], $aMediaInfo], [
+                    'object_menu' => $CNF['OBJECT_MENU_ACTIONS_VIEW_MEDIA_ALL']
+                ])
+            ])];
+
+        return $this->entryAuthor($aMediaInfo, $aAlbumInfo[$CNF['FIELD_AUTHOR']]);
     }
 
     function getMediaTitle ($aMediaInfo)

+ 89 - 75
modules/boonex/albums/install/langs/en.xml

@@ -1,96 +1,110 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources name="en" flag="gb" title="English">
 
-	<string name="_bx_albums"><![CDATA[Albums]]></string>
-	<string name="_bx_albums_cmts"><![CDATA[Albums' Comments]]></string>
-        <string name="_bx_albums_reactions"><![CDATA[Albums' Reactions]]></string>
-	<string name="_bx_albums_media"><![CDATA[Images]]></string>
-	<string name="_bx_albums_media_cmts"><![CDATA[Images' Comments]]></string>
+    <string name="_bx_albums"><![CDATA[Albums]]></string>
+    <string name="_bx_albums_cmts"><![CDATA[Albums' Comments]]></string>
+    <string name="_bx_albums_reactions"><![CDATA[Albums' Reactions]]></string>
+    <string name="_bx_albums_media"><![CDATA[Images]]></string>
+    <string name="_bx_albums_media_cmts"><![CDATA[Images' Comments]]></string>
 
-        <string name="_bx_albums_option_enable_auto_approve"><![CDATA[Auto approve an album after creation]]></string>
-	<string name="_bx_albums_option_summary_chars"><![CDATA[Number of characters in auto-cropped album summary]]></string>
-	<string name="_bx_albums_option_plain_summary_chars"><![CDATA[Number of characters in plain album description when album hasn't thumb]]></string>
-	<string name="_bx_albums_option_per_page_browse"><![CDATA[Number of items per page]]></string>
-	<string name="_bx_albums_option_per_page_profile"><![CDATA[Number of items on profile page]]></string>
-	<string name="_bx_albums_option_album_browsing_unit"><![CDATA[Number of items in album card]]></string>
-	<string name="_bx_albums_option_rss_num"><![CDATA[Number of items in RSS feed]]></string>
-	<string name="_bx_albums_option_searchable_fields"><![CDATA[Searchable fields for keyword search]]></string>
-  <string name="_bx_albums_option_per_page_for_favorites_lists"><![CDATA[Number of favorite lists per page]]></string>
+    <string name="_bx_albums_option_enable_auto_approve"><![CDATA[Auto approve an album after creation]]></string>
+    <string name="_bx_albums_option_summary_chars"><![CDATA[Number of characters in auto-cropped album summary]]></string>
+    <string name="_bx_albums_option_plain_summary_chars"><![CDATA[Number of characters in plain album description when album hasn't thumb]]></string>
+    <string name="_bx_albums_option_per_page_browse"><![CDATA[Number of items per page]]></string>
+    <string name="_bx_albums_option_per_page_profile"><![CDATA[Number of items on profile page]]></string>
+    <string name="_bx_albums_option_album_browsing_unit"><![CDATA[Number of items in album card]]></string>
+    <string name="_bx_albums_option_rss_num"><![CDATA[Number of items in RSS feed]]></string>
+    <string name="_bx_albums_option_searchable_fields"><![CDATA[Searchable fields for keyword search]]></string>
+    <string name="_bx_albums_option_per_page_for_favorites_lists"><![CDATA[Number of favorite lists per page]]></string>
 
-	<string name="_bx_albums_form_entry"><![CDATA[Albums]]></string>
-	<string name="_bx_albums_form_entry_display_add"><![CDATA[Add Album]]></string>
+    <string name="_bx_albums_form_entry"><![CDATA[Albums]]></string>
+    <string name="_bx_albums_form_entry_display_add"><![CDATA[Add Album]]></string>
     <string name="_bx_albums_form_entry_display_edit"><![CDATA[Edit Album]]></string>
-	<string name="_bx_albums_form_entry_display_add_images"><![CDATA[Add Images To Album]]></string>
-	<string name="_bx_albums_form_entry_display_delete"><![CDATA[Delete Album]]></string>
-	<string name="_bx_albums_form_entry_display_view"><![CDATA[View Album]]></string>
-	<string name="_bx_albums_form_entry_input_author"><![CDATA[Author]]></string>
-	<string name="_bx_albums_form_entry_input_sys_do_submit"><![CDATA[Submit]]></string>
-	<string name="_bx_albums_form_entry_input_do_submit"><![CDATA[Submit]]></string>
-	<string name="_bx_albums_form_entry_input_sys_title"><![CDATA[Caption]]></string>
-	<string name="_bx_albums_form_entry_input_title"><![CDATA[Caption]]></string>
-	<string name="_bx_albums_form_entry_input_title_err"><![CDATA[Caption is essential min 3 max 160.]]></string>
-	<string name="_bx_albums_form_entry_input_sys_text"><![CDATA[Album Description]]></string>
-	<string name="_bx_albums_form_entry_input_text"><![CDATA[Album Description]]></string>
-	<string name="_bx_albums_form_entry_input_sys_delete_confirm"><![CDATA[Delete confirmation]]></string>
-	<string name="_bx_albums_form_entry_input_delete_confirm"><![CDATA[I am sure I want to delete this album]]></string>
-	<string name="_bx_albums_form_entry_input_delete_confirm_info"><![CDATA[This action can not be undone]]></string>
-	<string name="_bx_albums_form_entry_input_delete_confirm_error"><![CDATA[Please check this checkbox if you really want to delete the album]]></string>
-	<string name="_bx_albums_form_entry_input_sys_pictures"><![CDATA[Pictures]]></string>
-	<string name="_bx_albums_form_entry_input_pictures"><![CDATA[Pictures]]></string>
+    <string name="_bx_albums_form_entry_display_add_images"><![CDATA[Add Images To Album]]></string>
+    <string name="_bx_albums_form_entry_display_delete"><![CDATA[Delete Album]]></string>
+    <string name="_bx_albums_form_entry_display_view"><![CDATA[View Album]]></string>
+    <string name="_bx_albums_form_entry_input_author"><![CDATA[Author]]></string>
+    <string name="_bx_albums_form_entry_input_sys_do_submit"><![CDATA[Submit]]></string>
+    <string name="_bx_albums_form_entry_input_do_submit"><![CDATA[Submit]]></string>
+    <string name="_bx_albums_form_entry_input_sys_title"><![CDATA[Caption]]></string>
+    <string name="_bx_albums_form_entry_input_title"><![CDATA[Caption]]></string>
+    <string name="_bx_albums_form_entry_input_title_err"><![CDATA[Caption is essential min 3 max 160.]]></string>
+    <string name="_bx_albums_form_entry_input_sys_text"><![CDATA[Album Description]]></string>
+    <string name="_bx_albums_form_entry_input_text"><![CDATA[Album Description]]></string>
+    <string name="_bx_albums_form_entry_input_sys_delete_confirm"><![CDATA[Delete confirmation]]></string>
+    <string name="_bx_albums_form_entry_input_delete_confirm"><![CDATA[I am sure I want to delete this album]]></string>
+    <string name="_bx_albums_form_entry_input_delete_confirm_info"><![CDATA[This action can not be undone]]></string>
+    <string name="_bx_albums_form_entry_input_delete_confirm_error"><![CDATA[Please check this checkbox if you really want to delete the album]]></string>
+    <string name="_bx_albums_form_entry_input_sys_pictures"><![CDATA[Pictures]]></string>
+    <string name="_bx_albums_form_entry_input_pictures"><![CDATA[Pictures]]></string>
     <string name="_bx_albums_form_entry_input_sys_allow_view_to"><![CDATA[Visibility]]></string>
     <string name="_bx_albums_form_entry_input_allow_view_to"><![CDATA[Visibility]]></string>
     <string name="_bx_albums_form_entry_input_allow_view_favorite_list"><![CDATA[Visibility]]></string>
     <string name="_bx_albums_form_entry_file_title"><![CDATA[Caption]]></string>
-	<string name="_bx_albums_form_entry_input_sys_date_added"><![CDATA[Created]]></string>
-	<string name="_bx_albums_form_entry_input_date_added"><![CDATA[Created]]></string>
-	<string name="_bx_albums_form_entry_input_sys_date_changed"><![CDATA[Updated]]></string>
+    <string name="_bx_albums_form_entry_input_sys_date_added"><![CDATA[Created]]></string>
+    <string name="_bx_albums_form_entry_input_date_added"><![CDATA[Created]]></string>
+    <string name="_bx_albums_form_entry_input_sys_date_changed"><![CDATA[Updated]]></string>
     <string name="_bx_albums_form_entry_input_date_changed"><![CDATA[Updated]]></string>
 
-        <string name="_bx_albums_form_media"><![CDATA[Medias]]></string>
-        <string name="_bx_albums_form_media_display_edit"><![CDATA[Edit Media]]></string>
-        <string name="_bx_albums_form_media_display_move"><![CDATA[Move Media]]></string>
-        <string name="_bx_albums_form_media_input_sys_title"><![CDATA[Caption]]></string>
-	<string name="_bx_albums_form_media_input_title"><![CDATA[Caption]]></string>
-        <string name="_bx_albums_form_media_input_sys_content_id"><![CDATA[Album]]></string>
-	<string name="_bx_albums_form_media_input_content_id"><![CDATA[Album]]></string>
-        <string name="_bx_albums_form_media_input_sys_do_submit"><![CDATA[Submit]]></string>
-	<string name="_bx_albums_form_media_input_do_submit"><![CDATA[Submit]]></string>
-        <string name="_bx_albums_form_media_input_sys_do_cancel"><![CDATA[Cancel]]></string>
-	<string name="_bx_albums_form_media_input_do_cancel"><![CDATA[Cancel]]></string>
+    <string name="_bx_albums_form_media"><![CDATA[Medias]]></string>
+    <string name="_bx_albums_form_media_display_edit"><![CDATA[Edit Media]]></string>
+    <string name="_bx_albums_form_media_display_move"><![CDATA[Move Media]]></string>
+    <string name="_bx_albums_form_media_display_delete"><![CDATA[Delete Media]]></string>
+    <string name="_bx_albums_form_media_input_sys_delete_confirm"><![CDATA[Delete confirmation]]></string>
+    <string name="_bx_albums_form_media_input_delete_confirm"><![CDATA[I am sure I want to delete this media]]></string>
+    <string name="_bx_albums_form_media_input_delete_confirm_info"><![CDATA[This action can not be undone]]></string>
+    <string name="_bx_albums_form_media_input_delete_confirm_error"><![CDATA[Please check this checkbox if you really want to delete the media]]></string>
+    <string name="_bx_albums_form_media_input_sys_title"><![CDATA[Caption]]></string>
+    <string name="_bx_albums_form_media_input_title"><![CDATA[Caption]]></string>
+    <string name="_bx_albums_form_media_input_sys_content_id"><![CDATA[Album]]></string>
+    <string name="_bx_albums_form_media_input_content_id"><![CDATA[Album]]></string>
+    <string name="_bx_albums_form_media_input_sys_do_submit"><![CDATA[Submit]]></string>
+    <string name="_bx_albums_form_media_input_do_submit"><![CDATA[Submit]]></string>
+    <string name="_bx_albums_form_media_input_sys_do_cancel"><![CDATA[Cancel]]></string>
+    <string name="_bx_albums_form_media_input_do_cancel"><![CDATA[Cancel]]></string>
 
-	<string name="_bx_albums_acl_action_create_entry"><![CDATA[Create Album]]></string>
-	<string name="_bx_albums_acl_action_delete_entry"><![CDATA[Delete Album]]></string>
-	<string name="_bx_albums_acl_action_view_entry"><![CDATA[View Album]]></string>
-	<string name="_bx_albums_acl_action_set_thumb"><![CDATA[Set Album Cover]]></string>
-	<string name="_bx_albums_acl_action_edit_any_entry"><![CDATA[Edit Any Album]]></string>
-	<string name="_bx_albums_acl_action_delete_any_entry"><![CDATA[Delete Any Album]]></string>
+    <string name="_bx_albums_acl_action_create_entry"><![CDATA[Create Album]]></string>
+    <string name="_bx_albums_acl_action_delete_entry"><![CDATA[Delete Album]]></string>
+    <string name="_bx_albums_acl_action_view_entry"><![CDATA[View Album]]></string>
+    <string name="_bx_albums_acl_action_set_thumb"><![CDATA[Set Album Cover]]></string>
+    <string name="_bx_albums_acl_action_edit_any_entry"><![CDATA[Edit Any Album]]></string>
+    <string name="_bx_albums_acl_action_delete_any_entry"><![CDATA[Delete Any Album]]></string>
 
-	<string name="_bx_albums_page_title_sys_create_entry"><![CDATA[New Album]]></string>
-	<string name="_bx_albums_page_title_create_entry"><![CDATA[New Album]]></string>
-	<string name="_bx_albums_page_block_title_create_entry"><![CDATA[New Album]]></string>
-	<string name="_bx_albums_page_title_sys_edit_entry"><![CDATA[Edit]]></string>
+    <string name="_bx_albums_page_title_sys_create_entry"><![CDATA[New Album]]></string>
+    <string name="_bx_albums_page_title_create_entry"><![CDATA[New Album]]></string>
+    <string name="_bx_albums_page_block_title_create_entry"><![CDATA[New Album]]></string>
+    <string name="_bx_albums_page_title_sys_edit_entry"><![CDATA[Edit]]></string>
     <string name="_bx_albums_page_title_edit_entry"><![CDATA[Edit]]></string>
-	<string name="_bx_albums_page_title_sys_add_images"><![CDATA[Add/Edit Pictures]]></string>
-	<string name="_bx_albums_page_title_add_images"><![CDATA[Add/Edit Pictures]]></string>
+    <string name="_bx_albums_page_title_sys_add_images"><![CDATA[Add/Edit Pictures]]></string>
+    <string name="_bx_albums_page_title_add_images"><![CDATA[Add/Edit Pictures]]></string>
     <string name="_bx_albums_page_block_title_edit_entry"><![CDATA[Edit]]></string>
-	<string name="_bx_albums_page_block_title_add_images"><![CDATA[Add/Edit Pictures]]></string>
+    <string name="_bx_albums_page_block_title_add_images"><![CDATA[Add/Edit Pictures]]></string>
     <string name="_bx_albums_page_title_sys_delete_entry"><![CDATA[Delete]]></string>
     <string name="_bx_albums_page_title_delete_entry"><![CDATA[Delete]]></string>
     <string name="_bx_albums_page_block_title_delete_entry"><![CDATA[Delete]]></string>
-	<string name="_bx_albums_page_title_sys_view_entry"><![CDATA[View Album]]></string>
-	<string name="_bx_albums_page_title_view_entry"><![CDATA[{title}]]></string>
-	<string name="_bx_albums_page_title_sys_view_media"><![CDATA[View Image]]></string>
-	<string name="_bx_albums_page_title_view_media"><![CDATA[{title}]]></string>
-	<string name="_bx_albums_page_block_title_entry_view_media"><![CDATA[View Image]]></string>
-	<string name="_bx_albums_page_block_title_entry_view_media_exif"><![CDATA[EXIF]]></string>
-	<string name="_bx_albums_page_block_title_entry_attachments"><![CDATA[Attachments]]></string>
-	<string name="_bx_albums_page_block_title_entry_text"><![CDATA[Album Description]]></string>
-	<string name="_bx_albums_page_title_browse"><![CDATA[Albums]]></string>
-	<string name="_bx_albums_page_title_search_results"><![CDATA[Albums matching "{0}"]]></string>
-	<string name="_bx_albums_page_title_browse_by_author"><![CDATA[{display_name}'s Albums]]></string>
-  <string name="_bx_albums_page_title_browse_by_context"><![CDATA[Albums in {display_name}]]></string>
-	<string name="_bx_albums_page_title_browse_featured"><![CDATA[Featured Albums]]></string>
-	<string name="_bx_albums_page_title_browse_featured_media"><![CDATA[Featured Media]]></string>
+    <string name="_bx_albums_page_title_sys_view_entry"><![CDATA[View Album]]></string>
+    <string name="_bx_albums_page_title_view_entry"><![CDATA[{title}]]></string>
+    <string name="_bx_albums_page_title_sys_view_media"><![CDATA[Media - View]]></string>
+    <string name="_bx_albums_page_title_view_media"><![CDATA[{title}]]></string>
+    <string name="_bx_albums_page_block_title_entry_view_media"><![CDATA[View Media]]></string>
+    <string name="_bx_albums_page_block_title_entry_view_media_exif"><![CDATA[EXIF]]></string>
+    <string name="_bx_albums_page_block_title_entry_attachments"><![CDATA[Attachments]]></string>
+    <string name="_bx_albums_page_block_title_entry_text"><![CDATA[Album Description]]></string>
+    <string name="_bx_albums_page_title_sys_edit_media"><![CDATA[Media - Edit]]></string>
+    <string name="_bx_albums_page_title_edit_media"><![CDATA[Edit Media]]></string>
+    <string name="_bx_albums_page_block_title_edit_media"><![CDATA[Edit Media]]></string>
+    <string name="_bx_albums_page_title_sys_move_media"><![CDATA[Media - Move]]></string>
+    <string name="_bx_albums_page_title_move_media"><![CDATA[Move Media]]></string>
+    <string name="_bx_albums_page_block_title_move_media"><![CDATA[Move Media]]></string>
+    <string name="_bx_albums_page_title_sys_delete_media"><![CDATA[Media - Delete]]></string>
+    <string name="_bx_albums_page_title_delete_media"><![CDATA[Delete Media]]></string>
+    <string name="_bx_albums_page_block_title_delete_media"><![CDATA[Delete Media]]></string>
+    <string name="_bx_albums_page_title_browse"><![CDATA[Albums]]></string>
+    <string name="_bx_albums_page_title_search_results"><![CDATA[Albums matching "{0}"]]></string>
+    <string name="_bx_albums_page_title_browse_by_author"><![CDATA[{display_name}'s Albums]]></string>
+    <string name="_bx_albums_page_title_browse_by_context"><![CDATA[Albums in {display_name}]]></string>
+    <string name="_bx_albums_page_title_browse_featured"><![CDATA[Featured Albums]]></string>
+    <string name="_bx_albums_page_title_browse_featured_media"><![CDATA[Featured Media]]></string>
     <string name="_bx_albums_page_title_browse_recent"><![CDATA[Latest Albums]]></string>
     <string name="_bx_albums_page_title_browse_popular"><![CDATA[Popular Albums]]></string>
     <string name="_bx_albums_page_title_browse_popular_media"><![CDATA[Popular Images]]></string>
@@ -110,7 +124,7 @@
     <string name="_bx_albums_page_block_title_entry_info"><![CDATA[Info]]></string>
     <string name="_bx_albums_page_block_title_entry_actions"><![CDATA[Actions]]></string>
     <string name="_bx_albums_page_block_title_entry_comments"><![CDATA[Comments]]></string>
-	<string name="_bx_albums_page_block_title_entry_reports"><![CDATA[Reports]]></string>
+    <string name="_bx_albums_page_block_title_entry_reports"><![CDATA[Reports]]></string>
     <string name="_bx_albums_page_block_title_entry_comments_link"><![CDATA[Comments to <a href="{entry_link}">{title}</a>]]></string>
     <string name="_bx_albums_page_block_title_entry_location"><![CDATA[Location]]></string>
     <string name="_bx_albums_page_title_sys_entries_popular"><![CDATA[Popular]]></string>

+ 3 - 1
modules/boonex/albums/install/sql/enable-app.sql

@@ -41,7 +41,9 @@ UPDATE `sys_pages_blocks` SET `active_api`=1 WHERE `object`='bx_albums_manage' A
 UPDATE `sys_pages_blocks` SET `active_api`=1 WHERE `object`='bx_albums_administration' AND `module`='bx_albums' AND `title_system`='_bx_albums_page_block_title_system_manage_administration' AND `title`='_bx_albums_page_block_title_manage';
 UPDATE `sys_pages_blocks` SET `active_api`=1 WHERE `object`='bx_organizations_view_profile' AND `module`='bx_albums' AND `title_system`='_bx_albums_page_block_title_sys_my_entries' AND `title`='_bx_albums_page_block_title_my_entries';
 UPDATE `sys_pages_blocks` SET `active_api`=1 WHERE `object`='bx_persons_view_profile' AND `module`='bx_albums' AND `title_system`='_bx_albums_page_block_title_sys_my_entries' AND `title`='_bx_albums_page_block_title_my_entries';
-
+UPDATE `sys_pages_blocks` SET `active_api`=1 WHERE `object`='bx_albums_edit_media' AND `module`='bx_albums' AND `title_system`='' AND `title`='_bx_albums_page_block_title_edit_media';
+UPDATE `sys_pages_blocks` SET `active_api`=1 WHERE `object`='bx_albums_move_media' AND `module`='bx_albums' AND `title_system`='' AND `title`='_bx_albums_page_block_title_move_media';
+UPDATE `sys_pages_blocks` SET `active_api`=1 WHERE `object`='bx_albums_delete_media' AND `module`='bx_albums' AND `title_system`='' AND `title`='_bx_albums_page_block_title_delete_media';
 -- MENUS:
 
 -- MENUS: config_api

+ 21 - 0
modules/boonex/albums/install/sql/enable.sql

@@ -80,6 +80,27 @@ INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `t
 ('bx_albums_view_media', 2, 'bx_albums', '', '_bx_albums_page_block_title_entry_all_actions', 13, 2147483647, 'service', 'a:2:{s:6:\"module\";s:9:\"bx_albums\";s:6:\"method\";s:17:\"media_all_actions\";}', 0, 0, 1, 2),
 ('bx_albums_view_media', 3, 'bx_albums', '', '_bx_albums_page_block_title_featured_entries_view_gallery_media', 11, 2147483647, 'service', 'a:3:{s:6:"module";s:9:"bx_albums";s:6:"method";s:21:"browse_featured_media";s:6:"params";a:1:{i:0;s:7:"gallery";}}', 0, 1, 1, 3);
 
+-- PAGE: edit media
+INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `layout_id`, `visible_for_levels`, `visible_for_levels_editable`, `uri`, `url`, `meta_description`, `meta_keywords`, `meta_robots`, `cache_lifetime`, `cache_editable`, `deletable`, `override_class_name`, `override_class_file`) VALUES 
+('bx_albums_edit_media', '_bx_albums_page_title_sys_edit_media', '_bx_albums_page_title_edit_media', 'bx_albums', 5, 2147483647, 1, 'edit-media', '', '', '', '', 0, 1, 0, 'BxAlbumsPageMedia', 'modules/boonex/albums/classes/BxAlbumsPageMedia.php');
+
+INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES
+('bx_albums_edit_media', 1, 'bx_albums', '_bx_albums_page_block_title_edit_media', 11, 2147483647, 'service', 'a:2:{s:6:"module";s:9:"bx_albums";s:6:"method";s:10:"media_edit";}', 0, 0, 0);
+
+-- PAGE: move media
+INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `layout_id`, `visible_for_levels`, `visible_for_levels_editable`, `uri`, `url`, `meta_description`, `meta_keywords`, `meta_robots`, `cache_lifetime`, `cache_editable`, `deletable`, `override_class_name`, `override_class_file`) VALUES 
+('bx_albums_move_media', '_bx_albums_page_title_sys_move_media', '_bx_albums_page_title_move_media', 'bx_albums', 5, 2147483647, 1, 'move-media', '', '', '', '', 0, 1, 0, 'BxAlbumsPageMedia', 'modules/boonex/albums/classes/BxAlbumsPageMedia.php');
+
+INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES
+('bx_albums_move_media', 1, 'bx_albums', '_bx_albums_page_block_title_move_media', 11, 2147483647, 'service', 'a:2:{s:6:"module";s:9:"bx_albums";s:6:"method";s:10:"media_move";}', 0, 0, 0);
+
+-- PAGE: delete media
+INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `layout_id`, `visible_for_levels`, `visible_for_levels_editable`, `uri`, `url`, `meta_description`, `meta_keywords`, `meta_robots`, `cache_lifetime`, `cache_editable`, `deletable`, `override_class_name`, `override_class_file`) VALUES 
+('bx_albums_delete_media', '_bx_albums_page_title_sys_delete_media', '_bx_albums_page_title_delete_media', 'bx_albums', 5, 2147483647, 1, 'delete-media', '', '', '', '', 0, 1, 0, 'BxAlbumsPageMedia', 'modules/boonex/albums/classes/BxAlbumsPageMedia.php');
+
+INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `order`) VALUES
+('bx_albums_delete_media', 1, 'bx_albums', '_bx_albums_page_block_title_delete_media', 11, 2147483647, 'service', 'a:2:{s:6:"module";s:9:"bx_albums";s:6:"method";s:12:"media_delete";}', 0, 0, 0);
+
 -- PAGE: view entry comments
 INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `layout_id`, `visible_for_levels`, `visible_for_levels_editable`, `uri`, `url`, `meta_description`, `meta_keywords`, `meta_robots`, `cache_lifetime`, `cache_editable`, `deletable`, `override_class_name`, `override_class_file`) VALUES 
 ('bx_albums_view_entry_comments', '_bx_albums_page_title_sys_view_entry_comments', '_bx_albums_page_title_view_entry_comments', 'bx_albums', 5, 2147483647, 1, 'view-album-comments', '', '', '', '', 0, 1, 0, 'BxAlbumsPageEntry', 'modules/boonex/albums/classes/BxAlbumsPageEntry.php');

+ 9 - 2
modules/boonex/albums/install/sql/install.sql

@@ -509,9 +509,11 @@ INSERT INTO `sys_objects_form`(`object`, `module`, `title`, `action`, `form_attr
 
 INSERT INTO `sys_form_displays`(`object`, `display_name`, `module`, `view_mode`, `title`) VALUES 
 ('bx_albums_media', 'bx_albums_media_edit', 'bx_albums', 0, '_bx_albums_form_media_display_edit'),
-('bx_albums_media', 'bx_albums_media_move', 'bx_albums', 0, '_bx_albums_form_media_display_move');
+('bx_albums_media', 'bx_albums_media_move', 'bx_albums', 0, '_bx_albums_form_media_display_move'),
+('bx_albums_media', 'bx_albums_media_delete', 'bx_albums', 0, '_bx_albums_form_media_display_delete');
 
 INSERT INTO `sys_form_inputs`(`object`, `module`, `name`, `value`, `values`, `checked`, `type`, `caption_system`, `caption`, `info`, `required`, `collapsed`, `html`, `attrs`, `attrs_tr`, `attrs_wrapper`, `checker_func`, `checker_params`, `checker_error`, `db_pass`, `db_params`, `editable`, `deletable`) VALUES 
+('bx_albums_media', 'bx_albums', 'delete_confirm', 1, '', 0, 'checkbox', '_bx_albums_form_media_input_sys_delete_confirm', '_bx_albums_form_media_input_delete_confirm', '_bx_albums_form_media_input_delete_confirm_info', 1, 0, 0, '', '', '', 'Avail', '', '_bx_albums_form_media_input_delete_confirm_error', '', '', 1, 0),
 ('bx_albums_media', 'bx_albums', 'title', '', '', 0, 'text', '_bx_albums_form_media_input_sys_title', '_bx_albums_form_media_input_title', '', 0, 0, 0, '', '', '', '', '', '', 'Xss', '', 1, 0),
 ('bx_albums_media', 'bx_albums', 'content_id', '', '', 0, 'select', '_bx_albums_form_media_input_sys_content_id', '_bx_albums_form_media_input_content_id', '', 0, 0, 0, '', '', '', '', '', '', 'Int', '', 1, 0),
 ('bx_albums_media', 'bx_albums', 'controls', '', 'do_submit,do_cancel', 0, 'input_set', '', '', '', 0, 0, 0, '', '', '', '', '', '', '', '', 0, 0),
@@ -527,7 +529,12 @@ INSERT INTO `sys_form_display_inputs` (`display_name`, `input_name`, `visible_fo
 ('bx_albums_media_move', 'content_id', 2147483647, 1, 1),
 ('bx_albums_media_move', 'controls', 2147483647, 1, 2),
 ('bx_albums_media_move', 'do_submit', 2147483647, 1, 3),
-('bx_albums_media_move', 'do_cancel', 2147483647, 1, 4);
+('bx_albums_media_move', 'do_cancel', 2147483647, 1, 4),
+
+('bx_albums_media_delete', 'delete_confirm', 2147483647, 1, 1),
+('bx_albums_media_delete', 'controls', 2147483647, 1, 2),
+('bx_albums_media_delete', 'do_submit', 2147483647, 1, 3),
+('bx_albums_media_delete', 'do_cancel', 2147483647, 1, 4);
 
 
 -- COMMENTS

+ 15 - 17
modules/boonex/albums/js/main.js

@@ -61,24 +61,22 @@ BxAlbumsMain.prototype.onEditMedia = function(oData) {
 
 BxAlbumsMain.prototype.deleteMedia = function(oButton, iId) {
     var $this = this;
+    var oDate = new Date();
 
-    bx_confirm(_t('_Are_you_sure'), function() {
-        var oDate = new Date();
-        $this.loadingInButton(oButton, true);
-
-        $.get(
-            $this._sActionsUrl + 'delete_media/' + iId, 
-            {
-                _t: oDate.getTime()
-            },
-            function(oData) {
-                $this.loadingInButton(oButton, false);
-
-                processJsonData(oData);
-            },
-            'json'
-        );
-    });
+    this.loadingInButton(oButton, true);
+
+    $.get(
+        this._sActionsUrl + 'delete_media/' + iId, 
+        {
+            _t: oDate.getTime()
+        },
+        function(oData) {
+            $this.loadingInButton(oButton, false);
+
+            processJsonData(oData);
+        },
+        'json'
+    );
 };
 
 BxAlbumsMain.prototype.moveMedia = function(oButton, iId) {

+ 88 - 74
modules/boonex/russian/data/langs/bx_albums/ru.xml

@@ -1,96 +1,110 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources name="ru" flag="ru" title="Russian">
 
-	<string name="_bx_albums"><![CDATA[Альбомы]]></string>
-	<string name="_bx_albums_cmts"><![CDATA[Комментарии к альбомам]]></string>
-        <string name="_bx_albums_reactions"><![CDATA[Реакции к альбомам]]></string>
-	<string name="_bx_albums_media"><![CDATA[Изображения]]></string>
-	<string name="_bx_albums_media_cmts"><![CDATA[Комментарии к изображениям]]></string>
+    <string name="_bx_albums"><![CDATA[Альбомы]]></string>
+    <string name="_bx_albums_cmts"><![CDATA[Комментарии к альбомам]]></string>
+    <string name="_bx_albums_reactions"><![CDATA[Реакции к альбомам]]></string>
+    <string name="_bx_albums_media"><![CDATA[Изображения]]></string>
+    <string name="_bx_albums_media_cmts"><![CDATA[Комментарии к изображениям]]></string>
 
-        <string name="_bx_posts_option_enable_auto_approve"><![CDATA[Автоматически активировать альбом после создания]]></string>
-	<string name="_bx_albums_option_summary_chars"><![CDATA[Количество символов в автогенерируемой сводке к альбомам]]></string>
-	<string name="_bx_albums_option_plain_summary_chars"><![CDATA[Количество символов в описании альбома при отсутствующей картинке альбома]]></string>
-	<string name="_bx_albums_option_per_page_browse"><![CDATA[Количество элементов на странице]]></string>
+    <string name="_bx_posts_option_enable_auto_approve"><![CDATA[Автоматически активировать альбом после создания]]></string>
+    <string name="_bx_albums_option_summary_chars"><![CDATA[Количество символов в автогенерируемой сводке к альбомам]]></string>
+    <string name="_bx_albums_option_plain_summary_chars"><![CDATA[Количество символов в описании альбома при отсутствующей картинке альбома]]></string>
+    <string name="_bx_albums_option_per_page_browse"><![CDATA[Количество элементов на странице]]></string>
     <string name="_bx_albums_option_per_page_profile"><![CDATA[Количество элементов на странице профайла]]></string>
     <string name="_bx_albums_option_album_browsing_unit"><![CDATA[Количество элементов в карточке альбома]]></string>
-	<string name="_bx_albums_option_rss_num"><![CDATA[Количество элементов в ленте RSS]]></string>
-	<string name="_bx_albums_option_searchable_fields"><![CDATA[Поля для поиска по ключевому слову]]></string>
-  <string name="_bx_albums_option_per_page_for_favorites_lists"><![CDATA[Количество списков избранного на странице]]></string>
+    <string name="_bx_albums_option_rss_num"><![CDATA[Количество элементов в ленте RSS]]></string>
+    <string name="_bx_albums_option_searchable_fields"><![CDATA[Поля для поиска по ключевому слову]]></string>
+    <string name="_bx_albums_option_per_page_for_favorites_lists"><![CDATA[Количество списков избранного на странице]]></string>
 
-	<string name="_bx_albums_form_entry"><![CDATA[Альбомы]]></string>
-	<string name="_bx_albums_form_entry_display_add"><![CDATA[Добавить альбом]]></string>
+    <string name="_bx_albums_form_entry"><![CDATA[Альбомы]]></string>
+    <string name="_bx_albums_form_entry_display_add"><![CDATA[Добавить альбом]]></string>
     <string name="_bx_albums_form_entry_display_edit"><![CDATA[Редактировать альбом]]></string>
-	<string name="_bx_albums_form_entry_display_add_images"><![CDATA[Добавить изображения в альбом]]></string>
-	<string name="_bx_albums_form_entry_display_delete"><![CDATA[Удалить альбом]]></string>
-	<string name="_bx_albums_form_entry_display_view"><![CDATA[Просмотреть альбом]]></string>
-	<string name="_bx_albums_form_entry_input_author"><![CDATA[Автор]]></string>
-	<string name="_bx_albums_form_entry_input_sys_do_submit"><![CDATA[Опубликовать]]></string>
-	<string name="_bx_albums_form_entry_input_do_submit"><![CDATA[Опубликовать]]></string>
-	<string name="_bx_albums_form_entry_input_sys_title"><![CDATA[Заголовок]]></string>
-	<string name="_bx_albums_form_entry_input_title"><![CDATA[Заголовок]]></string>
-	<string name="_bx_albums_form_entry_input_title_err"><![CDATA[Заголовок обязателен, мин. 3 макс. 160.]]></string>
-	<string name="_bx_albums_form_entry_input_sys_text"><![CDATA[Описание альбома]]></string>
-	<string name="_bx_albums_form_entry_input_text"><![CDATA[Описание альбома]]></string>
-	<string name="_bx_albums_form_entry_input_sys_delete_confirm"><![CDATA[Удалить подтверждение]]></string>
-	<string name="_bx_albums_form_entry_input_delete_confirm"><![CDATA[Я уверен, что хочу удалить этот альбом]]></string>
-	<string name="_bx_albums_form_entry_input_delete_confirm_info"><![CDATA[Это действие не может быть отменено]]></string>
-	<string name="_bx_albums_form_entry_input_delete_confirm_error"><![CDATA[Отметьте флажок, если действительно хотите удалить этот альбом]]></string>
-	<string name="_bx_albums_form_entry_input_sys_pictures"><![CDATA[Картинки]]></string>
-	<string name="_bx_albums_form_entry_input_pictures"><![CDATA[Картинки]]></string>
-  <string name="_bx_albums_form_entry_input_sys_allow_view_to"><![CDATA[Видимость]]></string>
-  <string name="_bx_albums_form_entry_input_allow_view_to"><![CDATA[Видимость]]></string>
-  <string name="_bx_albums_form_entry_input_allow_view_favorite_list"><![CDATA[Видимость]]></string>
+    <string name="_bx_albums_form_entry_display_add_images"><![CDATA[Добавить изображения в альбом]]></string>
+    <string name="_bx_albums_form_entry_display_delete"><![CDATA[Удалить альбом]]></string>
+    <string name="_bx_albums_form_entry_display_view"><![CDATA[Просмотреть альбом]]></string>
+    <string name="_bx_albums_form_entry_input_author"><![CDATA[Автор]]></string>
+    <string name="_bx_albums_form_entry_input_sys_do_submit"><![CDATA[Опубликовать]]></string>
+    <string name="_bx_albums_form_entry_input_do_submit"><![CDATA[Опубликовать]]></string>
+    <string name="_bx_albums_form_entry_input_sys_title"><![CDATA[Заголовок]]></string>
+    <string name="_bx_albums_form_entry_input_title"><![CDATA[Заголовок]]></string>
+    <string name="_bx_albums_form_entry_input_title_err"><![CDATA[Заголовок обязателен, мин. 3 макс. 160.]]></string>
+    <string name="_bx_albums_form_entry_input_sys_text"><![CDATA[Описание альбома]]></string>
+    <string name="_bx_albums_form_entry_input_text"><![CDATA[Описание альбома]]></string>
+    <string name="_bx_albums_form_entry_input_sys_delete_confirm"><![CDATA[Удалить подтверждение]]></string>
+    <string name="_bx_albums_form_entry_input_delete_confirm"><![CDATA[Я уверен, что хочу удалить этот альбом]]></string>
+    <string name="_bx_albums_form_entry_input_delete_confirm_info"><![CDATA[Это действие не может быть отменено]]></string>
+    <string name="_bx_albums_form_entry_input_delete_confirm_error"><![CDATA[Отметьте флажок, если действительно хотите удалить этот альбом]]></string>
+    <string name="_bx_albums_form_entry_input_sys_pictures"><![CDATA[Картинки]]></string>
+    <string name="_bx_albums_form_entry_input_pictures"><![CDATA[Картинки]]></string>
+    <string name="_bx_albums_form_entry_input_sys_allow_view_to"><![CDATA[Видимость]]></string>
+    <string name="_bx_albums_form_entry_input_allow_view_to"><![CDATA[Видимость]]></string>
+    <string name="_bx_albums_form_entry_input_allow_view_favorite_list"><![CDATA[Видимость]]></string>
     <string name="_bx_albums_form_entry_file_title"><![CDATA[Заголовок]]></string>
-	<string name="_bx_albums_form_entry_input_sys_date_added"><![CDATA[Создано]]></string>
-	<string name="_bx_albums_form_entry_input_date_added"><![CDATA[Создано]]></string>
-	<string name="_bx_albums_form_entry_input_sys_date_changed"><![CDATA[Обновлено]]></string>
-	<string name="_bx_albums_form_entry_input_date_changed"><![CDATA[Обновлено]]></string>
+    <string name="_bx_albums_form_entry_input_sys_date_added"><![CDATA[Создано]]></string>
+    <string name="_bx_albums_form_entry_input_date_added"><![CDATA[Создано]]></string>
+    <string name="_bx_albums_form_entry_input_sys_date_changed"><![CDATA[Обновлено]]></string>
+    <string name="_bx_albums_form_entry_input_date_changed"><![CDATA[Обновлено]]></string>
 
-        <string name="_bx_albums_form_media"><![CDATA[Изображения]]></string>
-        <string name="_bx_albums_form_media_display_edit"><![CDATA[Редактировать изображение]]></string>
-        <string name="_bx_albums_form_media_display_move"><![CDATA[Переместить изображение]]></string>
-	<string name="_bx_albums_form_media_input_sys_title"><![CDATA[Заголовок]]></string>
-	<string name="_bx_albums_form_media_input_title"><![CDATA[Заголовок]]></string>
-        <string name="_bx_albums_form_media_input_sys_content_id"><![CDATA[Альбом]]></string>
-	<string name="_bx_albums_form_media_input_content_id"><![CDATA[Альбом]]></string>
-        <string name="_bx_albums_form_media_input_sys_do_submit"><![CDATA[Опубликовать]]></string>
-	<string name="_bx_albums_form_media_input_do_submit"><![CDATA[Опубликовать]]></string>
-        <string name="_bx_albums_form_media_input_sys_do_cancel"><![CDATA[Отмена]]></string>
-	<string name="_bx_albums_form_media_input_do_cancel"><![CDATA[Отмена]]></string>
+    <string name="_bx_albums_form_media"><![CDATA[Изображения]]></string>
+    <string name="_bx_albums_form_media_display_edit"><![CDATA[Редактировать изображение]]></string>
+    <string name="_bx_albums_form_media_display_move"><![CDATA[Переместить изображение]]></string>
+    <string name="_bx_albums_form_media_display_delete"><![CDATA[Удалить изображение]]></string>
+    <string name="_bx_albums_form_media_input_sys_delete_confirm"><![CDATA[Удалить подтверждение]]></string>
+    <string name="_bx_albums_form_media_input_delete_confirm"><![CDATA[Я уверен, что хочу удалить это изображение]]></string>
+    <string name="_bx_albums_form_media_input_delete_confirm_info"><![CDATA[Это действие не может быть отменено]]></string>
+    <string name="_bx_albums_form_media_input_delete_confirm_error"><![CDATA[Отметьте флажок, если действительно хотите удалить это изображение]]></string>
+    <string name="_bx_albums_form_media_input_sys_title"><![CDATA[Заголовок]]></string>
+    <string name="_bx_albums_form_media_input_title"><![CDATA[Заголовок]]></string>
+    <string name="_bx_albums_form_media_input_sys_content_id"><![CDATA[Альбом]]></string>
+    <string name="_bx_albums_form_media_input_content_id"><![CDATA[Альбом]]></string>
+    <string name="_bx_albums_form_media_input_sys_do_submit"><![CDATA[Опубликовать]]></string>
+    <string name="_bx_albums_form_media_input_do_submit"><![CDATA[Опубликовать]]></string>
+    <string name="_bx_albums_form_media_input_sys_do_cancel"><![CDATA[Отмена]]></string>
+    <string name="_bx_albums_form_media_input_do_cancel"><![CDATA[Отмена]]></string>
 
-	<string name="_bx_albums_acl_action_create_entry"><![CDATA[Создать альбом]]></string>
-	<string name="_bx_albums_acl_action_delete_entry"><![CDATA[Удалить альбом]]></string>
-	<string name="_bx_albums_acl_action_view_entry"><![CDATA[Просмотреть альбом]]></string>
-	<string name="_bx_albums_acl_action_set_thumb"><![CDATA[Задать обложку альбома]]></string>
-	<string name="_bx_albums_acl_action_edit_any_entry"><![CDATA[Редактировать любой альбом]]></string>
-	<string name="_bx_albums_acl_action_delete_any_entry"><![CDATA[Удалять любой альбом]]></string>
+    <string name="_bx_albums_acl_action_create_entry"><![CDATA[Создать альбом]]></string>
+    <string name="_bx_albums_acl_action_delete_entry"><![CDATA[Удалить альбом]]></string>
+    <string name="_bx_albums_acl_action_view_entry"><![CDATA[Просмотреть альбом]]></string>
+    <string name="_bx_albums_acl_action_set_thumb"><![CDATA[Задать обложку альбома]]></string>
+    <string name="_bx_albums_acl_action_edit_any_entry"><![CDATA[Редактировать любой альбом]]></string>
+    <string name="_bx_albums_acl_action_delete_any_entry"><![CDATA[Удалять любой альбом]]></string>
 
-	<string name="_bx_albums_page_title_sys_create_entry"><![CDATA[Новый альбом]]></string>
-	<string name="_bx_albums_page_title_create_entry"><![CDATA[Новый альбом]]></string>
-	<string name="_bx_albums_page_block_title_create_entry"><![CDATA[Новый альбом]]></string>
-	<string name="_bx_albums_page_title_sys_edit_entry"><![CDATA[Редактировать альбом]]></string>
+    <string name="_bx_albums_page_title_sys_create_entry"><![CDATA[Новый альбом]]></string>
+    <string name="_bx_albums_page_title_create_entry"><![CDATA[Новый альбом]]></string>
+    <string name="_bx_albums_page_block_title_create_entry"><![CDATA[Новый альбом]]></string>
+    <string name="_bx_albums_page_title_sys_edit_entry"><![CDATA[Редактировать альбом]]></string>
     <string name="_bx_albums_page_title_edit_entry"><![CDATA[Редактировать альбом]]></string>
-	<string name="_bx_albums_page_title_sys_add_images"><![CDATA[Добавить/Изменить изображения]]></string>
+    <string name="_bx_albums_page_title_sys_add_images"><![CDATA[Добавить/Изменить изображения]]></string>
     <string name="_bx_albums_page_title_add_images"><![CDATA[Добавить/Изменить изображения]]></string>
     <string name="_bx_albums_page_block_title_add_images"><![CDATA[Добавить/Изменить изображения]]></string>
     <string name="_bx_albums_page_block_title_edit_entry"><![CDATA[Редактировать альбом]]></string>
     <string name="_bx_albums_page_title_sys_delete_entry"><![CDATA[Удалить альбом]]></string>
     <string name="_bx_albums_page_title_delete_entry"><![CDATA[Удалить альбом]]></string>
     <string name="_bx_albums_page_block_title_delete_entry"><![CDATA[Удалить альбом]]></string>
-	<string name="_bx_albums_page_title_sys_view_entry"><![CDATA[Просмотреть альбом]]></string>
-	<string name="_bx_albums_page_title_view_entry"><![CDATA[{title}]]></string>
-	<string name="_bx_albums_page_title_sys_view_media"><![CDATA[Просмотреть изображение]]></string>
-	<string name="_bx_albums_page_title_view_media"><![CDATA[{title}]]></string>
-	<string name="_bx_albums_page_block_title_entry_view_media"><![CDATA[Просмотреть изображение]]></string>
-	<string name="_bx_albums_page_block_title_entry_view_media_exif"><![CDATA[EXIF]]></string>
-	<string name="_bx_albums_page_block_title_entry_attachments"><![CDATA[Прикрепления]]></string>
-	<string name="_bx_albums_page_block_title_entry_text"><![CDATA[Описание альбома]]></string>
-	<string name="_bx_albums_page_title_browse"><![CDATA[Альбомы]]></string>
-	<string name="_bx_albums_page_title_search_results"><![CDATA[Альбомы, соответствующие "{0}"]]></string>
-	<string name="_bx_albums_page_title_browse_by_author"><![CDATA[Альбомы автора {display_name}]]></string>
-  <string name="_bx_albums_page_title_browse_by_context"><![CDATA[Альбомы в контексте: {display_name}]]></string>
-	<string name="_bx_albums_page_title_browse_featured"><![CDATA[Продвинутые альбомы]]></string>
-	<string name="_bx_albums_page_title_browse_featured_media"><![CDATA[Продвинутые изображения]]></string>
+    <string name="_bx_albums_page_title_sys_view_entry"><![CDATA[Просмотреть альбом]]></string>
+    <string name="_bx_albums_page_title_view_entry"><![CDATA[{title}]]></string>
+    <string name="_bx_albums_page_title_sys_view_media"><![CDATA[Медиа-файл - Просмотр]]></string>
+    <string name="_bx_albums_page_title_view_media"><![CDATA[{title}]]></string>
+    <string name="_bx_albums_page_block_title_entry_view_media"><![CDATA[Просмотреть изображение]]></string>
+    <string name="_bx_albums_page_block_title_entry_view_media_exif"><![CDATA[EXIF]]></string>
+    <string name="_bx_albums_page_block_title_entry_attachments"><![CDATA[Прикрепления]]></string>
+    <string name="_bx_albums_page_block_title_entry_text"><![CDATA[Описание альбома]]></string>
+    <string name="_bx_albums_page_title_sys_edit_media"><![CDATA[Медиа-файл - Редактирование]]></string>
+    <string name="_bx_albums_page_title_edit_media"><![CDATA[Редактировать медиа-файл]]></string>
+    <string name="_bx_albums_page_block_title_edit_media"><![CDATA[Редактировать медиа-файл]]></string>
+    <string name="_bx_albums_page_title_sys_move_media"><![CDATA[Медиа-файл - Перенос]]></string>
+    <string name="_bx_albums_page_title_move_media"><![CDATA[Перенести медиа-файл]]></string>
+    <string name="_bx_albums_page_block_title_move_media"><![CDATA[Перенести медиа-файл]]></string>
+    <string name="_bx_albums_page_title_sys_delete_media"><![CDATA[Медиа-файл - Удаление]]></string>
+    <string name="_bx_albums_page_title_delete_media"><![CDATA[Удалить медиа-файл]]></string>
+    <string name="_bx_albums_page_block_title_delete_media"><![CDATA[Удалить медиа-файл]]></string>
+    <string name="_bx_albums_page_title_browse"><![CDATA[Альбомы]]></string>
+    <string name="_bx_albums_page_title_search_results"><![CDATA[Альбомы, соответствующие "{0}"]]></string>
+    <string name="_bx_albums_page_title_browse_by_author"><![CDATA[Альбомы автора {display_name}]]></string>
+    <string name="_bx_albums_page_title_browse_by_context"><![CDATA[Альбомы в контексте: {display_name}]]></string>
+    <string name="_bx_albums_page_title_browse_featured"><![CDATA[Продвинутые альбомы]]></string>
+    <string name="_bx_albums_page_title_browse_featured_media"><![CDATA[Продвинутые изображения]]></string>
     <string name="_bx_albums_page_title_browse_recent"><![CDATA[Новые альбомы]]></string>
     <string name="_bx_albums_page_title_browse_popular"><![CDATA[Популярные альбомы]]></string>
     <string name="_bx_albums_page_title_browse_popular_media"><![CDATA[Популярные изображения]]></string>