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

Merge remote-tracking branch 'origin/master'

Alexander 4 лет назад
Родитель
Сommit
d9e0fb2cbc

+ 1 - 0
modules/boonex/ads/classes/BxAdsConfig.php

@@ -60,6 +60,7 @@ class BxAdsConfig extends BxBaseModTextConfig
             'FIELD_CATEGORY_VIEW' => 'category_view',
             'FIELD_CATEGORY_VIEW' => 'category_view',
             'FIELD_CATEGORY_SELECT' => 'category_select',
             'FIELD_CATEGORY_SELECT' => 'category_select',
             'FIELD_PRICE' => 'price',
             'FIELD_PRICE' => 'price',
+            'FIELD_PRICE_SINGLE' => 'price',
             'FIELD_AUCTION' => 'auction',
             'FIELD_AUCTION' => 'auction',
             'FIELD_QUANTITY' => 'quantity',
             'FIELD_QUANTITY' => 'quantity',
             'FIELD_YEAR' => 'year',
             'FIELD_YEAR' => 'year',

+ 5 - 1
modules/boonex/ads/classes/BxAdsModule.php

@@ -975,7 +975,10 @@ class BxAdsModule extends BxBaseModTextModule
         $aItems = $this->_oDb->getEntriesByAuthor($iSellerId);
         $aItems = $this->_oDb->getEntriesByAuthor($iSellerId);
 
 
         $aResult = array();
         $aResult = array();
-        foreach($aItems as $aItem)
+        foreach($aItems as $aItem) {
+            if($aItem[$CNF['FIELD_STATUS']] != BX_BASE_MOD_TEXT_STATUS_ACTIVE || empty($aItem[$CNF['FIELD_QUANTITY']]))
+                continue;
+
             $aResult[] = array(
             $aResult[] = array(
                 'id' => $aItem[$CNF['FIELD_ID']],
                 'id' => $aItem[$CNF['FIELD_ID']],
                 'author_id' => $aItem[$CNF['FIELD_AUTHOR']],
                 'author_id' => $aItem[$CNF['FIELD_AUTHOR']],
@@ -989,6 +992,7 @@ class BxAdsModule extends BxBaseModTextModule
                 'period_unit_recurring' => '',
                 'period_unit_recurring' => '',
                 'trial_recurring' => ''
                 'trial_recurring' => ''
             );
             );
+        }
 
 
         return $aResult;
         return $aResult;
     }
     }

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

@@ -102,6 +102,7 @@ class BxAlbumsConfig extends BxBaseModTextConfig
             'OBJECT_TRANSCODER_BROWSE' => 'bx_albums_proxy_browse',
             'OBJECT_TRANSCODER_BROWSE' => 'bx_albums_proxy_browse',
             'OBJECT_TRANSCODER_COVER' => 'bx_albums_proxy_cover',
             'OBJECT_TRANSCODER_COVER' => 'bx_albums_proxy_cover',
             'OBJECT_REPORTS' => 'bx_albums',
             'OBJECT_REPORTS' => 'bx_albums',
+            'OBJECT_REPORTS_MEDIA' => 'bx_albums_media',
             'OBJECT_VIEWS' => 'bx_albums',
             'OBJECT_VIEWS' => 'bx_albums',
             'OBJECT_VIEWS_MEDIA' => 'bx_albums_media',
             'OBJECT_VIEWS_MEDIA' => 'bx_albums_media',
             'OBJECT_VOTES' => 'bx_albums',
             'OBJECT_VOTES' => 'bx_albums',

+ 6 - 1
modules/boonex/albums/classes/BxAlbumsMenuViewActionsMedia.php

@@ -175,7 +175,12 @@ class BxAlbumsMenuViewActionsMedia extends BxAlbumsMenuViewActions
 
 
     protected function _getMenuItemReport($aItem, $aParams = array())
     protected function _getMenuItemReport($aItem, $aParams = array())
     {
     {
-        return '';
+        $CNF = &$this->_oModule->_oConfig->CNF;
+
+        return parent::_getMenuItemReport($aItem, array(
+            'object' => $CNF['OBJECT_REPORTS_MEDIA'],
+            'id' => $this->_iMediaId
+        ));
     }
     }
 }
 }
 
 

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

@@ -297,6 +297,7 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 ('bx_albums_view_actions_media', 'bx_albums', 'score', '_sys_menu_item_title_system_va_score', '', '', '', '', '', '', '', 0, 2147483647, 1, 0, 230),
 ('bx_albums_view_actions_media', 'bx_albums', 'score', '_sys_menu_item_title_system_va_score', '', '', '', '', '', '', '', 0, 2147483647, 1, 0, 230),
 ('bx_albums_view_actions_media', 'bx_albums', 'favorite', '_sys_menu_item_title_system_va_favorite', '', '', '', '', '', '', '', 0, 2147483647, 1, 0, 240),
 ('bx_albums_view_actions_media', 'bx_albums', 'favorite', '_sys_menu_item_title_system_va_favorite', '', '', '', '', '', '', '', 0, 2147483647, 1, 0, 240),
 ('bx_albums_view_actions_media', 'bx_albums', 'feature', '_sys_menu_item_title_system_va_feature', '', '', '', '', '', '', '', 0, 2147483647, 1, 0, 250),
 ('bx_albums_view_actions_media', 'bx_albums', 'feature', '_sys_menu_item_title_system_va_feature', '', '', '', '', '', '', '', 0, 2147483647, 1, 0, 250),
+('bx_albums_view_actions_media', 'bx_albums', 'report', '_sys_menu_item_title_system_va_report', '', '', '', '', '', '', '', 0, 2147483647, 1, 0, 260),
 ('bx_albums_view_actions_media', 'bx_albums', 'social-sharing', '_sys_menu_item_title_system_social_sharing', '_sys_menu_item_title_social_sharing', 'javascript:void(0)', 'oBxDolPage.share(this, \'{url_encoded}\')', '', 'share', '', '', 0, 2147483647, 1, 0, 300),
 ('bx_albums_view_actions_media', 'bx_albums', 'social-sharing', '_sys_menu_item_title_system_social_sharing', '_sys_menu_item_title_social_sharing', 'javascript:void(0)', 'oBxDolPage.share(this, \'{url_encoded}\')', '', 'share', '', '', 0, 2147483647, 1, 0, 300),
 ('bx_albums_view_actions_media', 'bx_albums', 'more-auto', '_sys_menu_item_title_system_va_more_auto', '_sys_menu_item_title_va_more_auto', 'javascript:void(0)', '', '', 'ellipsis-v', '', '', 0, 2147483647, 1, 0, 9999);
 ('bx_albums_view_actions_media', 'bx_albums', 'more-auto', '_sys_menu_item_title_system_va_more_auto', '_sys_menu_item_title_va_more_auto', 'javascript:void(0)', '', '', 'ellipsis-v', '', '', 0, 2147483647, 1, 0, 9999);
 
 
@@ -314,6 +315,7 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 ('bx_albums_view_actions_media_unit', 'bx_albums', 'score', '_sys_menu_item_title_system_va_score', '', '', '', '', '', '', '', 0, 2147483647, 1, 0, 230),
 ('bx_albums_view_actions_media_unit', 'bx_albums', 'score', '_sys_menu_item_title_system_va_score', '', '', '', '', '', '', '', 0, 2147483647, 1, 0, 230),
 ('bx_albums_view_actions_media_unit', 'bx_albums', 'favorite', '_sys_menu_item_title_system_va_favorite', '', '', '', '', '', '', '', 0, 2147483647, 1, 0, 240),
 ('bx_albums_view_actions_media_unit', 'bx_albums', 'favorite', '_sys_menu_item_title_system_va_favorite', '', '', '', '', '', '', '', 0, 2147483647, 1, 0, 240),
 ('bx_albums_view_actions_media_unit', 'bx_albums', 'feature', '_sys_menu_item_title_system_va_feature', '', '', '', '', '', '', '', 0, 2147483647, 1, 0, 250),
 ('bx_albums_view_actions_media_unit', 'bx_albums', 'feature', '_sys_menu_item_title_system_va_feature', '', '', '', '', '', '', '', 0, 2147483647, 1, 0, 250),
+('bx_albums_view_actions_media_unit', 'bx_albums', 'report', '_sys_menu_item_title_system_va_report', '', '', '', '', '', '', '', 0, 2147483647, 1, 0, 260),
 ('bx_albums_view_actions_media_unit', 'bx_albums', 'more-auto', '_sys_menu_item_title_system_va_more_auto', '_sys_menu_item_title_va_more_auto', 'javascript:void(0)', '', '', 'ellipsis-v', '', '', 0, 2147483647, 1, 0, 9999);
 ('bx_albums_view_actions_media_unit', 'bx_albums', 'more-auto', '_sys_menu_item_title_system_va_more_auto', '_sys_menu_item_title_va_more_auto', 'javascript:void(0)', '', '', 'ellipsis-v', '', '', 0, 2147483647, 1, 0, 9999);
 
 
 -- MENU: actions menu for my entries
 -- MENU: actions menu for my entries

+ 23 - 1
modules/boonex/albums/install/sql/install.sql

@@ -78,6 +78,7 @@ CREATE TABLE IF NOT EXISTS `bx_albums_files2albums` (
   `sc_down` int(11) NOT NULL default '0',
   `sc_down` int(11) NOT NULL default '0',
   `favorites` int(11) NOT NULL default '0',
   `favorites` int(11) NOT NULL default '0',
   `comments` int(11) NOT NULL,
   `comments` int(11) NOT NULL,
+  `reports` int(11) NOT NULL default '0',
   `featured` int(11) NOT NULL default '0',
   `featured` int(11) NOT NULL default '0',
   `cf` int(11) NOT NULL default '1',
   `cf` int(11) NOT NULL default '1',
   `data` text NOT NULL,
   `data` text NOT NULL,
@@ -287,6 +288,26 @@ CREATE TABLE IF NOT EXISTS `bx_albums_reports_track` (
   KEY `report` (`object_id`, `author_nip`)
   KEY `report` (`object_id`, `author_nip`)
 );
 );
 
 
+CREATE TABLE IF NOT EXISTS `bx_albums_reports_media` (
+  `object_id` int(11) NOT NULL default '0',
+  `count` int(11) NOT NULL default '0',
+  UNIQUE KEY `object_id` (`object_id`)
+);
+
+CREATE TABLE IF NOT EXISTS `bx_albums_reports_media_track` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `object_id` int(11) NOT NULL default '0',
+  `author_id` int(11) NOT NULL default '0',
+  `author_nip` int(11) unsigned NOT NULL default '0',
+  `type` varchar(32) NOT NULL default '',
+  `text` text NOT NULL default '',
+  `date` int(11) NOT NULL default '0',
+  `checked_by` int(11) NOT NULL default '0',
+  `status` tinyint(11) NOT NULL default '0',
+  PRIMARY KEY (`id`),
+  KEY `report` (`object_id`, `author_nip`)
+);
+
 -- TABLE: favorites
 -- TABLE: favorites
 CREATE TABLE `bx_albums_favorites_track` (
 CREATE TABLE `bx_albums_favorites_track` (
   `object_id` int(11) NOT NULL default '0',
   `object_id` int(11) NOT NULL default '0',
@@ -498,7 +519,8 @@ INSERT INTO `sys_objects_score` (`name`, `module`, `table_main`, `table_track`,
 
 
 -- REPORTS
 -- REPORTS
 INSERT INTO `sys_objects_report` (`name`, `module`, `table_main`, `table_track`, `is_on`, `base_url`, `object_comment`, `trigger_table`, `trigger_field_id`, `trigger_field_author`, `trigger_field_count`, `class_name`, `class_file`) VALUES 
 INSERT INTO `sys_objects_report` (`name`, `module`, `table_main`, `table_track`, `is_on`, `base_url`, `object_comment`, `trigger_table`, `trigger_field_id`, `trigger_field_author`, `trigger_field_count`, `class_name`, `class_file`) VALUES 
-('bx_albums', 'bx_albums', 'bx_albums_reports', 'bx_albums_reports_track', '1', 'page.php?i=view-album&id={object_id}', 'bx_albums_notes', 'bx_albums_albums', 'id', 'author', 'reports', '', '');
+('bx_albums', 'bx_albums', 'bx_albums_reports', 'bx_albums_reports_track', '1', 'page.php?i=view-album&id={object_id}', 'bx_albums_notes', 'bx_albums_albums', 'id', 'author', 'reports', '', ''),
+('bx_albums_media', 'bx_albums', 'bx_albums_reports_media', 'bx_albums_reports_media_track', '1', 'page.php?i=view-album-media&id={object_id}', '', 'bx_albums_files2albums', 'id', 'author', 'reports', '', '');
 
 
 
 
 -- VIEWS
 -- VIEWS

+ 1 - 1
modules/boonex/albums/install/sql/uninstall.sql

@@ -33,7 +33,7 @@ DELETE FROM `sys_objects_score` WHERE `name` LIKE 'bx_albums%';
 
 
 
 
 -- REPORTS
 -- REPORTS
-DELETE FROM `sys_objects_report` WHERE `name` = 'bx_albums';
+DELETE FROM `sys_objects_report` WHERE `name` LIKE 'bx_albums%';
 
 
 
 
 -- VIEWS
 -- VIEWS

+ 1 - 1
modules/boonex/payment/classes/BxPaymentTemplate.php

@@ -411,7 +411,7 @@ class BxPaymentTemplate extends BxBaseModPaymentTemplate
                     'value' => 1
                     'value' => 1
                 );
                 );
 
 
-                $aTmplVarsItems[$aItem['title']] = array(
+                $aTmplVarsItems[$aItem['name']] = array(
                     'id' => $aItem['id'],
                     'id' => $aItem['id'],
                     'price' => $fPrice,
                     'price' => $fPrice,
                     'bx_if:link' => array(
                     'bx_if:link' => array(

+ 41 - 0
plugins_public/stackedit.js/package.json

@@ -0,0 +1,41 @@
+{
+  "name": "stackedit-js",
+  "version": "1.0.7",
+  "description": "Produce universal library with webpack and es6",
+  "main": "docs/lib/stackedit.js",
+  "scripts": {
+    "lint": "eslint --ext .js src",
+    "build": "webpack --env dev && webpack --env build",
+    "dev": "webpack --progress --colors --watch --env dev",
+    "test": "npm run lint",
+    "preversion": "npm run test",
+    "postversion": "git push origin master --tags && npm publish",
+    "patch": "npm run build && npm version patch -m \"Tag v%s\"",
+    "minor": "npm run build && npm version minor -m \"Tag v%s\"",
+    "major": "npm run build && npm version major -m \"Tag v%s\""
+  },
+  "author": "Benoit Schweblin",
+  "license": "MIT",
+  "bugs": {
+    "url": "https://github.com/benweet/stackedit.js/issues"
+  },
+  "homepage": "https://github.com/benweet/stackedit.js",
+  "devDependencies": {
+    "babel-core": "^6.26.3",
+    "babel-eslint": "^8.2.3",
+    "babel-loader": "^7.1.4",
+    "babel-plugin-add-module-exports": "^0.2.1",
+    "babel-plugin-transform-class-properties": "^6.24.1",
+    "babel-preset-env": "^1.6.1",
+    "eslint": "^4.19.1",
+    "eslint-config-airbnb-base": "^12.1.0",
+    "eslint-loader": "^2.0.0",
+    "eslint-plugin-import": "^2.11.0",
+    "webpack": "^3.10.0",
+    "yargs": "^10.0.3"
+  },
+  "engines": {
+    "node": ">= 8.0.0",
+    "npm": ">= 5.0.0"
+  }
+}

+ 263 - 0
plugins_public/stackedit.js/stackedit.js

@@ -0,0 +1,263 @@
+(function webpackUniversalModuleDefinition(root, factory) {
+	if(typeof exports === 'object' && typeof module === 'object')
+		module.exports = factory();
+	else if(typeof define === 'function' && define.amd)
+		define("Stackedit", [], factory);
+	else if(typeof exports === 'object')
+		exports["Stackedit"] = factory();
+	else
+		root["Stackedit"] = factory();
+})(typeof self !== 'undefined' ? self : this, function() {
+return /******/ (function(modules) { // webpackBootstrap
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+/******/
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId]) {
+/******/ 			return installedModules[moduleId].exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			i: moduleId,
+/******/ 			l: false,
+/******/ 			exports: {}
+/******/ 		};
+/******/
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ 		// Flag the module as loaded
+/******/ 		module.l = true;
+/******/
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/
+/******/
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+/******/
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+/******/
+/******/ 	// define getter function for harmony exports
+/******/ 	__webpack_require__.d = function(exports, name, getter) {
+/******/ 		if(!__webpack_require__.o(exports, name)) {
+/******/ 			Object.defineProperty(exports, name, {
+/******/ 				configurable: false,
+/******/ 				enumerable: true,
+/******/ 				get: getter
+/******/ 			});
+/******/ 		}
+/******/ 	};
+/******/
+/******/ 	// getDefaultExport function for compatibility with non-harmony modules
+/******/ 	__webpack_require__.n = function(module) {
+/******/ 		var getter = module && module.__esModule ?
+/******/ 			function getDefault() { return module['default']; } :
+/******/ 			function getModuleExports() { return module; };
+/******/ 		__webpack_require__.d(getter, 'a', getter);
+/******/ 		return getter;
+/******/ 	};
+/******/
+/******/ 	// Object.prototype.hasOwnProperty.call
+/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "";
+/******/
+/******/ 	// Load entry module and return exports
+/******/ 	return __webpack_require__(__webpack_require__.s = 0);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+var styleContent = '\n.stackedit-no-overflow {\n  overflow: hidden;\n}\n\n.stackedit-container {\n  background-color: rgba(160, 160, 160, 0.5);\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 9999;\n}\n\n.stackedit-hidden-container {\n  position: absolute;\n  width: 10px;\n  height: 10px;\n  left: -99px;\n}\n\n.stackedit-iframe-container {\n  background-color: #fff;\n  position: absolute;\n  margin: auto;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  height: 98%;\n  width: 98%;\n  max-width: 1280px;\n  border-radius: 2px;\n  overflow: hidden;\n}\n\n.stackedit-iframe {\n  position: absolute;\n  height: 100%;\n  width: 100%;\n  border: 0;\n  border-radius: 2px;\n}\n\n@media (max-width: 740px) {\n  .stackedit-iframe-container {\n    height: 100%;\n    width: 100%;\n    border-radius: 0;\n  }\n\n  .stackedit-iframe {\n    border-radius: 0;\n  }\n}\n\n.stackedit-close-button {\n  position: absolute !important;\n  box-sizing: border-box !important;\n  width: 38px !important;\n  height: 36px !important;\n  margin: 4px !important;\n  padding: 0 4px !important;\n  text-align: center !important;\n  vertical-align: middle !important;\n  text-decoration: none !important;\n}\n';
+
+var _createStyle = function createStyle() {
+  var styleEl = document.createElement('style');
+  styleEl.type = 'text/css';
+  styleEl.innerHTML = styleContent;
+  document.head.appendChild(styleEl);
+  _createStyle = function createStyle() {}; // Create style only once
+};
+
+var containerHtml = '\n<div class="stackedit-iframe-container">\n  <iframe class="stackedit-iframe"></iframe>\n  <a href="javascript:void(0)" class="stackedit-close-button" title="Close">\n    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="100%" height="100%">\n      <path fill="#777" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" />\n    </svg>\n  </a>\n</div>\n';
+
+var origin = window.location.protocol + '//' + window.location.host;
+var urlParser = document.createElement('a');
+
+var Stackedit = function () {
+  function Stackedit() {
+    var _this = this;
+
+    var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+    _classCallCheck(this, Stackedit);
+
+    this.$options = {
+      url: 'https://stackedit.io/app'
+    };
+    this.$listeners = {};
+
+    // Override options
+    Object.keys(opts).forEach(function (key) {
+      _this.$options[key] = opts[key];
+    });
+  }
+
+  // For emitting events
+
+
+  _createClass(Stackedit, [{
+    key: '$trigger',
+    value: function $trigger(type, payload) {
+      var listeners = this.$listeners[type] || [];
+      // Use setTimeout as a way to ignore errors
+      listeners.forEach(function (listener) {
+        return setTimeout(function () {
+          return listener(payload);
+        }, 1);
+      });
+    }
+  }, {
+    key: 'on',
+    value: function on(type, listener) {
+      var listeners = this.$listeners[type] || [];
+      listeners.push(listener);
+      this.$listeners[type] = listeners;
+    }
+  }, {
+    key: 'off',
+    value: function off(type, listener) {
+      var listeners = this.$listeners[type] || [];
+      var idx = listeners.indexOf(listener);
+      if (idx >= 0) {
+        listeners.splice(idx, 1);
+        if (listeners.length) {
+          this.$listeners[type] = listeners;
+        } else {
+          delete this.$listeners[type];
+        }
+      }
+    }
+  }, {
+    key: 'openFile',
+    value: function openFile() {
+      var _this2 = this;
+
+      var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+      var silent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+      // Close before opening a new iframe
+      this.close();
+
+      // Make StackEdit URL
+      urlParser.href = this.$options.url;
+      this.$origin = urlParser.protocol + '//' + urlParser.host; // Save StackEdit origin
+      var content = file.content || {};
+      var params = {
+        origin: origin,
+        fileName: file.name,
+        contentText: content.text,
+        contentProperties: !content.yamlProperties && content.properties ? JSON.stringify(content.properties) // Use JSON serialized properties as YAML properties
+        : content.yamlProperties,
+        silent: silent
+      };
+      var serializedParams = Object.keys(params).map(function (key) {
+        return key + '=' + encodeURIComponent(params[key] || '');
+      }).join('&');
+      urlParser.hash = '#' + serializedParams;
+
+      // Make the iframe
+      _createStyle();
+      this.$containerEl = document.createElement('div');
+      this.$containerEl.className = silent ? 'stackedit-hidden-container' : 'stackedit-container';
+      this.$containerEl.innerHTML = containerHtml;
+      document.body.appendChild(this.$containerEl);
+
+      // Load StackEdit in the iframe
+      var iframeEl = this.$containerEl.querySelector('iframe');
+      iframeEl.src = urlParser.href;
+
+      // Add close button handler
+      var closeButton = this.$containerEl.querySelector('a');
+      closeButton.addEventListener('click', function () {
+        return _this2.close();
+      });
+
+      // Add message handler
+      this.$messageHandler = function (event) {
+        if (event.origin === _this2.$origin && event.source === iframeEl.contentWindow) {
+          switch (event.data.type) {
+            case 'ready':
+              // StackEdit has its own one close button
+              closeButton.parentNode.removeChild(closeButton);
+              break;
+            case 'fileChange':
+              // Trigger fileChange event
+              _this2.$trigger('fileChange', event.data.payload);
+              if (silent) {
+                _this2.close();
+              }
+              break;
+            case 'close':
+            default:
+              _this2.close();
+          }
+        }
+      };
+      window.addEventListener('message', this.$messageHandler);
+
+      if (!silent) {
+        // Remove body scrollbars
+        document.body.className += ' stackedit-no-overflow';
+      }
+    }
+  }, {
+    key: 'close',
+    value: function close() {
+      if (this.$messageHandler) {
+        // Clean everything
+        window.removeEventListener('message', this.$messageHandler);
+        document.body.removeChild(this.$containerEl);
+
+        // Release memory
+        this.$messageHandler = null;
+        this.$containerEl = null;
+
+        // Restore body scrollbars
+        document.body.className = document.body.className.replace(/\sstackedit-no-overflow\b/, '');
+
+        // Trigger close event
+        this.$trigger('close');
+      }
+    }
+  }]);
+
+  return Stackedit;
+}();
+
+exports.default = Stackedit;
+module.exports = exports['default'];
+
+/***/ })
+/******/ ]);
+});
+//# sourceMappingURL=stackedit.js.map

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
plugins_public/stackedit.js/stackedit.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
plugins_public/stackedit.js/stackedit.min.js


+ 2 - 1
template/scripts/BxBaseServiceWiki.php

@@ -137,7 +137,8 @@ class BxBaseServiceWiki extends BxDol
             $sInfo = _t('_sys_wiki_view_rev', $aWikiVer['revision'], $oProfile->getUrl(), $oProfile->getDisplayName(), bx_time_js($aWikiVer['added']));
             $sInfo = _t('_sys_wiki_view_rev', $aWikiVer['revision'], $oProfile->getUrl(), $oProfile->getDisplayName(), bx_time_js($aWikiVer['added']));
         }
         }
 
 
-        $o = BxDolTemplate::getInstance();        
+        $o = BxDolTemplate::getInstance();
+        $o->addJs('stackedit.js/stackedit.min.js');
         return $o->parseHtmlByName('wiki_controls.html', array(
         return $o->parseHtmlByName('wiki_controls.html', array(
             'obj' => $oWikiObject->getObjectName(),
             'obj' => $oWikiObject->getObjectName(),
             'block_id' => $sBlockId,
             'block_id' => $sBlockId,

Некоторые файлы не были показаны из-за большого количества измененных файлов