Version Notes
No notes
Download this release
Release Info
Developer | Nextendweb.com |
Extension | smartslider3 |
Version | 3.0.15 |
Comparing to | |
See all releases |
Version 3.0.15
- app/code/community/Nextend2/Nextend2/Helper/Data.php +5 -0
- app/code/community/Nextend2/Nextend2/Model/Observer.php +23 -0
- app/code/community/Nextend2/Nextend2/Model/Resource/Setup.php +6 -0
- app/code/community/Nextend2/Nextend2/controllers/Adminhtml/Nextend2Controller.php +34 -0
- app/code/community/Nextend2/Nextend2/etc/adminhtml.xml +35 -0
- app/code/community/Nextend2/Nextend2/etc/config.xml +58 -0
- app/code/community/Nextend2/Nextend2/sql/nextend2_setup/mysql4-install-1.0.0.php +13 -0
- app/code/community/Nextend2/SmartSlider3/Block/Slider.php +14 -0
- app/code/community/Nextend2/SmartSlider3/Helper/Data.php +5 -0
- app/code/community/Nextend2/SmartSlider3/Model/Observer.php +104 -0
- app/code/community/Nextend2/SmartSlider3/Model/Resource/Setup.php +5 -0
- app/code/community/Nextend2/SmartSlider3/Model/Sliders.php +26 -0
- app/code/community/Nextend2/SmartSlider3/controllers/Adminhtml/Smartslider3Controller.php +29 -0
- app/code/community/Nextend2/SmartSlider3/etc/adminhtml.xml +14 -0
- app/code/community/Nextend2/SmartSlider3/etc/config.xml +88 -0
- app/code/community/Nextend2/SmartSlider3/etc/system.xml +4 -0
- app/code/community/Nextend2/SmartSlider3/etc/widget.xml +16 -0
- app/code/community/Nextend2/SmartSlider3/library/magento/N2SmartsliderApplicationInfoFilter.php +13 -0
- app/code/community/Nextend2/SmartSlider3/library/magento/backend/inline/publish.php +23 -0
- app/code/community/Nextend2/SmartSlider3/library/magento/init.php +19 -0
- app/code/community/Nextend2/SmartSlider3/library/magento/install.php +4 -0
- app/code/community/Nextend2/SmartSlider3/library/magento/libraries/slider/slider.php +20 -0
- app/code/community/Nextend2/SmartSlider3/library/magento/plugins/generator/loadplugin.php +10 -0
- app/code/community/Nextend2/SmartSlider3/library/magento/plugins/generator/magento/magento.php +31 -0
- app/code/community/Nextend2/SmartSlider3/library/magento/plugins/generator/magento/product/config.xml +46 -0
- app/code/community/Nextend2/SmartSlider3/library/magento/plugins/generator/magento/product/element/magentoattributesets.php +23 -0
- app/code/community/Nextend2/SmartSlider3/library/magento/plugins/generator/magento/product/element/magentocategories.php +30 -0
- app/code/community/Nextend2/SmartSlider3/library/magento/plugins/generator/magento/product/element/magentoproducttypes.php +23 -0
- app/code/community/Nextend2/SmartSlider3/library/magento/plugins/generator/magento/product/generator.php +113 -0
- app/code/community/Nextend2/SmartSlider3/library/magento/plugins/loadplugin.php +11 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/N2SmartsliderApplication.php +26 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/N2SmartsliderApplicationInfo.php +134 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/N2SmartsliderApplicationTypeBackend.php +29 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Backgroundanimation.php +25 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Generator.php +203 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Install.php +20 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Layout.php +32 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Preview.php +82 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Settings.php +87 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Slider.php +118 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Sliders.php +167 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Slides.php +148 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Update.php +40 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/ajax/Backgroundanimation.php +21 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/ajax/Generator.php +149 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/ajax/Guide.php +19 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/ajax/Layout.php +16 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/ajax/Settings.php +11 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/ajax/Slider.php +212 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/ajax/Slides.php +296 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/helpers/controller/N2SmartSliderController.php +57 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/inline/_sidebar_settings.php +32 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/inline/_sidebar_slide.php +101 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/inline/_sliders.php +215 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/inline/font.php +6 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/inline/sidebar/backgroundanimation.php +17 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/inline/sidebar/layout.php +70 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/inline/slidemanager.php +54 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/layouts/default.php +61 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/layouts/full.php +46 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/layouts/lightbox.php +2 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/layouts/preview.php +10 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/layouts/sidebar.php +8 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/backgroundanimation/index.php +105 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/backgroundanimation/topbar.php +17 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/defaults/noaccess.php +7 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/generator/_view.php +180 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/generator/check_configuration.php +35 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/generator/create.php +58 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/generator/create_settings.php +61 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/generator/edit.php +102 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/layout/index.php +2 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/layout/topbar.php +2 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/preview/_preview.php +94 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/preview/_view.php +16 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/preview/generator.php +5 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/preview/index.php +3 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/preview/slide.php +21 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/settings/_view.php +53 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/settings/cache.php +29 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/settings/default.php +24 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/settings/defaults.php +22 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/slider/_slider_edit.php +140 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/slider/_view.php +111 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/slider/cachedslider.php +51 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/slider/edit.php +7 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/sliders/_view.php +16 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/sliders/importByUpload.php +36 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/sliders/importFromServer.php +34 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/sliders/index.php +128 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/slides/_view.php +6 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/slides/edit.php +259 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/slides/slidebox.php +2 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/form/element/backgroundanimation.php +35 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/form/element/sliderwidgetarea.php +36 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/form/element/widgetpluginmatrix.php +63 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/form/element/widgetposition.php +138 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/languages/hu_HU.mo +0 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/backgroundanimation/manager.php +26 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/backgroundanimation/storage.php +73 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/backup.php +11 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/export.php +340 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/import.php +194 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/layout/storage.php +73 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/link.php +46 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/plugins/N2SliderGeneratorPluginAbstract.php +66 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/plugins/N2SliderItemAbstract.php +208 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/plugins/N2SliderWidgetAbstract.php +99 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/settings/settings.php +34 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/abstract.php +272 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/backend.php +16 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/cache/generator.php +36 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/cache/slider.php +58 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/css.php +78 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/align.php +52 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/autoplay.php +75 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/blockrightclick.php +21 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/controls.php +38 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/fadeonload.php +100 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/features.php +172 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/layermode.php +61 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/lazyload.php +52 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/maintainsession.php +21 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/margin.php +29 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/responsive.php +437 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/slidebackground.php +227 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/spinner.php +262 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/translateUrl.php +26 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/generator/abstract.php +59 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/helper.php +33 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/manager.php +74 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/slide/generator.php +104 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/slide/item.php +145 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/slide/layer.php +307 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/slide/slide.php +484 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/slide/slides.php +183 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/slide/slidesadmin.php +193 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/type.php +68 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/widget/widgets.php +351 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/storage.php +1896 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Ajax.php +55 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Install.php +55 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Item.php +20 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Layers.php +21 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/License.php +70 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Modules.php +13 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/ModulesMenu.php +12 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Settings.php +90 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Sliders.php +224 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Slides.php +645 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Update.php +84 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/backgroundanimation.php +20 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/backgroundanimation/sets.xml +5 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/element/halign.php +30 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/element/items.php +32 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/element/layerpicker.php +15 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/element/sliderresponsive.php +37 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/element/slidertype.php +76 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/element/valign.php +30 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/generator_edit.xml +12 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/import/server.xml +7 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/import/upload.xml +6 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/layer.xml +61 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/layout/sets.xml +5 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/license.xml +6 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/multigenerator.xml +12 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/settings/default.xml +97 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/settings/joomla.xml +12 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/slide.xml +39 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/slide_generator.xml +7 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/slider.xml +81 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/translateurl.xml +8 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/models/generator.php +357 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/generator/loadplugin.php +10 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/button/button.php +138 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/button/button/configuration.xml +21 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/heading/heading.php +161 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/heading/heading/configuration.xml +21 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/image/image.php +129 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/image/image/configuration.xml +12 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/loadplugin.php +10 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/text/text.php +276 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/text/text/configuration.xml +20 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/vimeo/vimeo.php +81 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/vimeo/vimeo/configuration.xml +21 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/youtube/youtube.php +104 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/youtube/youtube/configuration.xml +43 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/loadplugin.php +10 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/responsive/auto/auto.php +39 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/responsive/auto/auto/responsive.xml +23 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/responsive/fullwidth/fullwidth.php +70 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/responsive/fullwidth/fullwidth/responsive.xml +63 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/responsive/loadplugin.php +10 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/type/loadplugin.php +10 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/type/simple/simple.php +18 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/type/simple/simple/backup.php +22 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/type/simple/simple/css.php +51 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/type/simple/simple/slide.xml +15 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/type/simple/simple/slider.xml +25 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/type/simple/simple/type.php +223 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/arrow/arrow.php +21 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/arrow/arrow/config.xml +8 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/autoplay/autoplay.php +21 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/autoplay/autoplay/config.xml +8 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/bar/bar.php +21 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/bar/bar/config.xml +8 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/bullet/bullet.php +21 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/bullet/bullet/config.xml +24 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/loadplugin.php +10 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/shadow/shadow.php +21 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/shadow/shadow/config.xml +6 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/thumbnail/thumbnail.php +21 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/thumbnail/thumbnail/config.xml +16 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetarrow/image/image.php +254 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetarrow/image/image/config.xml +14 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetarrow/loadplugin.php +10 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetautoplay/image/image.php +149 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetautoplay/image/image/config.xml +11 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetautoplay/loadplugin.php +10 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetbar/horizontal/horizontal.php +142 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetbar/horizontal/horizontal/config.xml +21 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetbar/loadplugin.php +10 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetbullet/loadplugin.php +10 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetbullet/transition/transition.php +151 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetbullet/transition/transition/config.xml +11 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetshadow/loadplugin.php +10 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetshadow/shadow/shadow.php +90 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetshadow/shadow/shadow/config.xml +6 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetthumbnail/default/default.php +291 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetthumbnail/default/default/config.xml +41 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetthumbnail/loadplugin.php +10 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/smartslider3.php +101 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/widget/N2SmartsliderApplicationTypeWidget.php +30 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/widget/controllers/Home.php +38 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/widget/layouts/default.php +4 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/widget/views/home/magento.php +5 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/widget/views/home/native.php +1 -0
- app/code/community/Nextend2/SmartSlider3/library/smartslider/widget/views/home/wordpress.php +1 -0
- app/code/community/Nextend2/SmartSlider3/sql/smartslider3_setup/mysql4-install-1.0.0.php +16 -0
- app/code/community/Nextend2/library/applications/system/N2SystemApplication.php +15 -0
- app/code/community/Nextend2/library/applications/system/N2SystemApplicationInfo.php +59 -0
- app/code/community/Nextend2/library/applications/system/backend/N2SystemApplicationTypeBackend.php +14 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/Animation.php +22 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/Browse.php +19 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/Dashboard.php +13 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/Font.php +22 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/Help.php +12 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/Image.php +26 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/Install.php +20 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/Login.php +3 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/Settings.php +100 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/Style.php +23 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Animation.php +10 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Aviary.php +69 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Browse.php +441 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Content.php +13 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Font.php +10 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Image.php +109 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Link.php +13 -0
- app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Style.php +11 -0
- app/code/community/Nextend2/library/applications/system/backend/helpers/controllers/VisualManager.php +86 -0
- app/code/community/Nextend2/library/applications/system/backend/helpers/controllers/VisualManagerAjax.php +185 -0
- app/code/community/Nextend2/library/applications/system/backend/inline/sidebar/animation.php +34 -0
- app/code/community/Nextend2/library/applications/system/backend/inline/sidebar/font.php +34 -0
- app/code/community/Nextend2/library/applications/system/backend/inline/sidebar/image.php +0 -0
- app/code/community/Nextend2/library/applications/system/backend/inline/sidebar/settings.php +30 -0
- app/code/community/Nextend2/library/applications/system/backend/inline/sidebar/style.php +34 -0
- app/code/community/Nextend2/library/applications/system/backend/layouts/default.php +59 -0
- app/code/community/Nextend2/library/applications/system/backend/layouts/full.php +63 -0
- app/code/community/Nextend2/library/applications/system/backend/layouts/fulllightbox.php +37 -0
- app/code/community/Nextend2/library/applications/system/backend/layouts/lightbox.php +35 -0
- app/code/community/Nextend2/library/applications/system/backend/layouts/modal.php +35 -0
- app/code/community/Nextend2/library/applications/system/backend/views/animation/index.php +104 -0
- app/code/community/Nextend2/library/applications/system/backend/views/animation/topbar.php +17 -0
- app/code/community/Nextend2/library/applications/system/backend/views/dashboard/index.php +22 -0
- app/code/community/Nextend2/library/applications/system/backend/views/defaults/noaccess.php +1 -0
- app/code/community/Nextend2/library/applications/system/backend/views/font/index.php +102 -0
- app/code/community/Nextend2/library/applications/system/backend/views/font/topbar.php +27 -0
- app/code/community/Nextend2/library/applications/system/backend/views/help/index.php +21 -0
- app/code/community/Nextend2/library/applications/system/backend/views/image/index.php +12 -0
- app/code/community/Nextend2/library/applications/system/backend/views/image/topbar.php +17 -0
- app/code/community/Nextend2/library/applications/system/backend/views/login/index.php +18 -0
- app/code/community/Nextend2/library/applications/system/backend/views/settings/_view.php +83 -0
- app/code/community/Nextend2/library/applications/system/backend/views/settings/aviary.php +57 -0
- app/code/community/Nextend2/library/applications/system/backend/views/settings/fonts.php +21 -0
- app/code/community/Nextend2/library/applications/system/backend/views/settings/index.php +16 -0
- app/code/community/Nextend2/library/applications/system/backend/views/style/index.php +99 -0
- app/code/community/Nextend2/library/applications/system/backend/views/style/topbar.php +27 -0
- app/code/community/Nextend2/library/applications/system/models/Install.php +40 -0
- app/code/community/Nextend2/library/applications/system/models/animation.php +23 -0
- app/code/community/Nextend2/library/applications/system/models/font.php +23 -0
- app/code/community/Nextend2/library/applications/system/models/forms/animation/extra.xml +65 -0
- app/code/community/Nextend2/library/applications/system/models/forms/animation/form.xml +63 -0
- app/code/community/Nextend2/library/applications/system/models/forms/animation/sets.xml +5 -0
- app/code/community/Nextend2/library/applications/system/models/forms/aviary.xml +7 -0
- app/code/community/Nextend2/library/applications/system/models/forms/font/element/decoration.php +36 -0
- app/code/community/Nextend2/library/applications/system/models/forms/font/element/family.php +19 -0
- app/code/community/Nextend2/library/applications/system/models/forms/font/element/fontpreset.php +26 -0
- app/code/community/Nextend2/library/applications/system/models/forms/font/element/textalign.php +31 -0
- app/code/community/Nextend2/library/applications/system/models/forms/font/extra.xml +6 -0
- app/code/community/Nextend2/library/applications/system/models/forms/font/form.xml +42 -0
- app/code/community/Nextend2/library/applications/system/models/forms/font/sets.xml +5 -0
- app/code/community/Nextend2/library/applications/system/models/forms/fonts.xml +12 -0
- app/code/community/Nextend2/library/applications/system/models/forms/globalconfig.xml +13 -0
- app/code/community/Nextend2/library/applications/system/models/forms/image/form.xml +37 -0
- app/code/community/Nextend2/library/applications/system/models/forms/login.xml +7 -0
- app/code/community/Nextend2/library/applications/system/models/forms/style/extra.xml +6 -0
- app/code/community/Nextend2/library/applications/system/models/forms/style/form.xml +58 -0
- app/code/community/Nextend2/library/applications/system/models/forms/style/sets.xml +5 -0
- app/code/community/Nextend2/library/applications/system/models/image.php +50 -0
- app/code/community/Nextend2/library/applications/system/models/login.php +19 -0
- app/code/community/Nextend2/library/applications/system/models/style.php +23 -0
- app/code/community/Nextend2/library/applications/system/models/visual.php +109 -0
- app/code/community/Nextend2/library/applications/system/plugins/loadplugin.php +10 -0
- app/code/community/Nextend2/library/applications/system/plugins/nextendfontservices/google/google.php +809 -0
- app/code/community/Nextend2/library/applications/system/plugins/nextendfontservices/google/google/config.xml +37 -0
- app/code/community/Nextend2/library/applications/system/plugins/nextendfontservices/loadplugin.php +10 -0
- app/code/community/Nextend2/library/cacert.pem +2063 -0
app/code/community/Nextend2/Nextend2/Helper/Data.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Nextend2_Nextend2_Helper_Data extends Mage_Core_Helper_Abstract {
|
4 |
+
|
5 |
+
}
|
app/code/community/Nextend2/Nextend2/Model/Observer.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Nextend2_Nextend2_Model_Observer
|
4 |
+
{
|
5 |
+
|
6 |
+
public function buildCSSJS($observer) {
|
7 |
+
/** @var Mage_Core_Controller_Response_Http $response */
|
8 |
+
$response = $observer->getResponse();
|
9 |
+
Mage::dispatchEvent('n2_http_response_send_before', array('response' => $response));
|
10 |
+
|
11 |
+
if (class_exists('N2AssetsManager', false)) {
|
12 |
+
ob_start();
|
13 |
+
if (class_exists('N2AssetsManager')) {
|
14 |
+
echo N2AssetsManager::getCSS();
|
15 |
+
echo N2AssetsManager::getJs();
|
16 |
+
}
|
17 |
+
|
18 |
+
$head = ob_get_clean();
|
19 |
+
$response->setBody(preg_replace('/<\/head>/', $head . '</head>', $response->getBody(), 1));
|
20 |
+
}
|
21 |
+
}
|
22 |
+
|
23 |
+
}
|
app/code/community/Nextend2/Nextend2/Model/Resource/Setup.php
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Nextend2_Nextend2_Model_Resource_Setup extends Mage_Core_Model_Resource_Setup
|
4 |
+
{
|
5 |
+
|
6 |
+
}
|
app/code/community/Nextend2/Nextend2/controllers/Adminhtml/Nextend2Controller.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Nextend2_Nextend2_Adminhtml_Nextend2Controller extends Mage_Adminhtml_Controller_Action
|
4 |
+
{
|
5 |
+
|
6 |
+
|
7 |
+
public function initNextend() {
|
8 |
+
require_once(Mage::getBaseDir("app") . '/code/community/Nextend2/magento/library.php');
|
9 |
+
}
|
10 |
+
|
11 |
+
|
12 |
+
public function indexAction() {
|
13 |
+
$this->initNextend();
|
14 |
+
|
15 |
+
|
16 |
+
if ($this->getRequest()
|
17 |
+
->getParam('nextendajax', 0)
|
18 |
+
) {
|
19 |
+
$controller = 'dashboard';
|
20 |
+
$action = 'index';
|
21 |
+
N2Base::getApplication("system")
|
22 |
+
->getApplicationType('backend')
|
23 |
+
->setCurrent()
|
24 |
+
->render(array(
|
25 |
+
"controller" => $controller,
|
26 |
+
"action" => $action
|
27 |
+
));
|
28 |
+
} else {
|
29 |
+
$this->loadLayout();
|
30 |
+
$this->renderLayout();
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
+
}
|
app/code/community/Nextend2/Nextend2/etc/adminhtml.xml
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<config>
|
3 |
+
<menu>
|
4 |
+
<nextend2_nextend2 translate="title" module="nextend2_nextend2">
|
5 |
+
<title>Nextend</title>
|
6 |
+
<sort_order>85</sort_order>
|
7 |
+
<action>adminhtml/nextend2/index</action>
|
8 |
+
<children>
|
9 |
+
<nextend2_nextend2 translate="title" module="nextend2_nextend2">
|
10 |
+
<title>Nextend Configuration</title>
|
11 |
+
<sort_order>87</sort_order>
|
12 |
+
<action>adminhtml/nextend2/index</action>
|
13 |
+
</nextend2_nextend2>
|
14 |
+
</children>
|
15 |
+
</nextend2_nextend2>
|
16 |
+
</menu>
|
17 |
+
<acl>
|
18 |
+
<resources>
|
19 |
+
<admin>
|
20 |
+
<children>
|
21 |
+
<nextend2library translate="title" module="nextend2_nextend2">
|
22 |
+
<title>Nextend2 Library</title>
|
23 |
+
<sort_order>-100</sort_order>
|
24 |
+
<children>
|
25 |
+
<index translate="title">
|
26 |
+
<title>Index Action</title>
|
27 |
+
<sort_order>1</sort_order>
|
28 |
+
</index>
|
29 |
+
</children>
|
30 |
+
</nextend2library>
|
31 |
+
</children>
|
32 |
+
</admin>
|
33 |
+
</resources>
|
34 |
+
</acl>
|
35 |
+
</config>
|
app/code/community/Nextend2/Nextend2/etc/config.xml
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Nextend2_Nextend2>
|
5 |
+
<version>2.0.15</version>
|
6 |
+
</Nextend2_Nextend2>
|
7 |
+
</modules>
|
8 |
+
<admin>
|
9 |
+
<routers>
|
10 |
+
<adminhtml>
|
11 |
+
<args>
|
12 |
+
<modules>
|
13 |
+
<nextend before="Mage_Adminhtml">Nextend2_Nextend2_Adminhtml</nextend>
|
14 |
+
</modules>
|
15 |
+
</args>
|
16 |
+
</adminhtml>
|
17 |
+
</routers>
|
18 |
+
</admin>
|
19 |
+
<adminhtml>
|
20 |
+
<layout>
|
21 |
+
<updates>
|
22 |
+
<nextend2>
|
23 |
+
<file>nextend2.xml</file>
|
24 |
+
</nextend2>
|
25 |
+
</updates>
|
26 |
+
</layout>
|
27 |
+
</adminhtml>
|
28 |
+
<global>
|
29 |
+
<helpers>
|
30 |
+
<nextend2_nextend2>
|
31 |
+
<class>Nextend2_Nextend2_Helper</class>
|
32 |
+
</nextend2_nextend2>
|
33 |
+
</helpers>
|
34 |
+
<models>
|
35 |
+
<nextend2>
|
36 |
+
<class>Nextend2_Nextend2_Model</class>
|
37 |
+
</nextend2>
|
38 |
+
</models>
|
39 |
+
<events>
|
40 |
+
<http_response_send_before>
|
41 |
+
<observers>
|
42 |
+
<nextend2_css_js>
|
43 |
+
<class>Nextend2_Nextend2_Model_Observer</class>
|
44 |
+
<method>buildCSSJS</method>
|
45 |
+
</nextend2_css_js>
|
46 |
+
</observers>
|
47 |
+
</http_response_send_before>
|
48 |
+
</events>
|
49 |
+
<resources>
|
50 |
+
<nextend2_setup>
|
51 |
+
<setup>
|
52 |
+
<module>Nextend2_Nextend2</module>
|
53 |
+
<class>Nextend2_Nextend2_Model_Resource_Setup</class>
|
54 |
+
</setup>
|
55 |
+
</nextend2_setup>
|
56 |
+
</resources>
|
57 |
+
</global>
|
58 |
+
</config>
|
app/code/community/Nextend2/Nextend2/sql/nextend2_setup/mysql4-install-1.0.0.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
$installer->startSetup();
|
5 |
+
|
6 |
+
defined('NEXTEND_INSTALL') || define('NEXTEND_INSTALL', true);
|
7 |
+
require_once(dirname(__FILE__) . '/../../../magento/library.php');
|
8 |
+
N2Base::getApplication("system")->getApplicationType('backend')->render(array(
|
9 |
+
"controller" => "install",
|
10 |
+
"action" => "index"
|
11 |
+
), array(true));
|
12 |
+
|
13 |
+
$installer->endSetup();
|
app/code/community/Nextend2/SmartSlider3/Block/Slider.php
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Nextend2_SmartSlider3_Block_Slider extends Mage_Core_Block_Abstract implements Mage_Widget_Block_Interface
|
4 |
+
{
|
5 |
+
|
6 |
+
protected function _toHtml() {
|
7 |
+
$sliderId = intval($this->getData('slider'));
|
8 |
+
if ($sliderId > 0) {
|
9 |
+
return 'smartslider3[' . $sliderId . ']';
|
10 |
+
}
|
11 |
+
return '';
|
12 |
+
}
|
13 |
+
|
14 |
+
}
|
app/code/community/Nextend2/SmartSlider3/Helper/Data.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Nextend2_SmartSlider3_Helper_Data extends Mage_Core_Helper_Abstract {
|
4 |
+
|
5 |
+
}
|
app/code/community/Nextend2/SmartSlider3/Model/Observer.php
ADDED
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Nextend2_SmartSlider3_Model_Observer
|
4 |
+
{
|
5 |
+
|
6 |
+
static $sliders = array();
|
7 |
+
|
8 |
+
private static $products = array();
|
9 |
+
private static $categories = array();
|
10 |
+
|
11 |
+
function buildCSS() {
|
12 |
+
if (count(self::$sliders)) {
|
13 |
+
foreach (self::$sliders AS $callable) {
|
14 |
+
if (is_callable($callable)) {
|
15 |
+
call_user_func($callable);
|
16 |
+
} else {
|
17 |
+
$css = NextendCss::getInstance();
|
18 |
+
foreach (self::$sliders AS $id) {
|
19 |
+
$css->generateCSS($id);
|
20 |
+
}
|
21 |
+
}
|
22 |
+
}
|
23 |
+
}
|
24 |
+
}
|
25 |
+
|
26 |
+
public function nextendLoaded() {
|
27 |
+
require_once(Mage::getBaseDir("app") . '/code/community/Nextend2/SmartSlider3/library/magento/init.php');
|
28 |
+
}
|
29 |
+
|
30 |
+
function shortcode($observer) {
|
31 |
+
if (Mage::app()
|
32 |
+
->getStore()
|
33 |
+
->isAdmin()
|
34 |
+
) {
|
35 |
+
return;
|
36 |
+
}
|
37 |
+
/** @var Mage_Core_Controller_Response_Http $response */
|
38 |
+
$response = $observer->getResponse();
|
39 |
+
|
40 |
+
$body = $response->getBody();
|
41 |
+
//var_dump(strpos($body, 'smartslider3'));exit;
|
42 |
+
|
43 |
+
|
44 |
+
// Simple performance check to determine whether bot should process further
|
45 |
+
if (strpos($body, 'smartslider3[') === false) {
|
46 |
+
return;
|
47 |
+
}
|
48 |
+
$parts = explode('<body', $body);
|
49 |
+
$parts[1] = preg_replace_callback('/smartslider3\[([0-9]+)\]/', 'Nextend2_SmartSlider3_Model_Observer::prepare', $parts[1]);
|
50 |
+
$response->setBody(implode('<body', $parts));
|
51 |
+
}
|
52 |
+
|
53 |
+
public static function prepare($matches) {
|
54 |
+
require_once(Mage::getBaseDir("app") . '/code/community/Nextend2/magento/library.php');
|
55 |
+
ob_start();
|
56 |
+
nextend_smartslider3($matches[1]);
|
57 |
+
|
58 |
+
return preg_replace_callback('/\[([a-z_]+) ([0-9]+)\]/', array(
|
59 |
+
'Nextend2_SmartSlider3_Model_Observer',
|
60 |
+
'makeUrl'
|
61 |
+
), ob_get_clean());
|
62 |
+
}
|
63 |
+
|
64 |
+
public static function makeUrl($out) {
|
65 |
+
$id = intval($out[2]);
|
66 |
+
if ($id) {
|
67 |
+
switch ($out[1]) {
|
68 |
+
case 'url':
|
69 |
+
return self::getProduct($id)
|
70 |
+
->getProductUrl();
|
71 |
+
break;
|
72 |
+
case 'addtocart':
|
73 |
+
return Mage::helper('checkout/cart')
|
74 |
+
->getAddUrl(self::getProduct($id));
|
75 |
+
break;
|
76 |
+
case 'wishlist_url':
|
77 |
+
return Mage::helper('wishlist')
|
78 |
+
->getAddUrl(self::getProduct($id));
|
79 |
+
break;
|
80 |
+
case 'category_url':
|
81 |
+
return self::getCategory($id)
|
82 |
+
->getUrl();
|
83 |
+
break;
|
84 |
+
}
|
85 |
+
}
|
86 |
+
return '#';
|
87 |
+
}
|
88 |
+
|
89 |
+
private static function getProduct($id) {
|
90 |
+
if (!isset(self::$products[$id])) {
|
91 |
+
self::$products[$id] = Mage::getModel('catalog/product')
|
92 |
+
->load($id);
|
93 |
+
}
|
94 |
+
return self::$products[$id];
|
95 |
+
}
|
96 |
+
|
97 |
+
private static function getCategory($id) {
|
98 |
+
if (!isset(self::$categories[$id])) {
|
99 |
+
self::$categories[$id] = Mage::getModel('catalog/category')
|
100 |
+
->load($id);
|
101 |
+
}
|
102 |
+
return self::$categories[$id];
|
103 |
+
}
|
104 |
+
}
|
app/code/community/Nextend2/SmartSlider3/Model/Resource/Setup.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Nextend2_SmartSlider3_Model_Resource_Setup extends Mage_Core_Model_Resource_Setup {
|
4 |
+
|
5 |
+
}
|
app/code/community/Nextend2/SmartSlider3/Model/Sliders.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Nextend2_SmartSlider3_Model_Sliders
|
4 |
+
{
|
5 |
+
|
6 |
+
public function toOptionArray() {
|
7 |
+
require_once(Mage::getBaseDir("app") . '/code/community/Nextend2/magento/library.php');
|
8 |
+
|
9 |
+
N2Loader::import(array(
|
10 |
+
'models.Sliders'
|
11 |
+
), 'smartslider');
|
12 |
+
|
13 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
14 |
+
$sliders = $slidersModel->getAll();
|
15 |
+
|
16 |
+
$return = array();
|
17 |
+
foreach ($sliders AS $slider) {
|
18 |
+
$return[] = array(
|
19 |
+
'value' => $slider['id'],
|
20 |
+
'label' => $slider['title'] . ' [#' . $slider['id'] . ']'
|
21 |
+
);
|
22 |
+
}
|
23 |
+
|
24 |
+
return $return;
|
25 |
+
}
|
26 |
+
}
|
app/code/community/Nextend2/SmartSlider3/controllers/Adminhtml/Smartslider3Controller.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Nextend2_SmartSlider3_Adminhtml_Smartslider3Controller extends Mage_Adminhtml_Controller_Action
|
4 |
+
{
|
5 |
+
|
6 |
+
public function initNextend() {
|
7 |
+
require_once(Mage::getBaseDir("app") . '/code/community/Nextend2/magento/library.php');
|
8 |
+
}
|
9 |
+
|
10 |
+
|
11 |
+
public function indexAction() {
|
12 |
+
$this->initNextend();
|
13 |
+
$request = $this->getRequest();
|
14 |
+
if ($request->getParam('nextendajax', 0) || $request->getParam('download', 0)) {
|
15 |
+
$controller = 'sliders';
|
16 |
+
$action = 'index';
|
17 |
+
N2Base::getApplication("smartslider")
|
18 |
+
->getApplicationType('backend')
|
19 |
+
->setCurrent()
|
20 |
+
->render(array(
|
21 |
+
"controller" => $controller,
|
22 |
+
"action" => $action
|
23 |
+
));
|
24 |
+
} else {
|
25 |
+
$this->loadLayout();
|
26 |
+
$this->renderLayout();
|
27 |
+
}
|
28 |
+
}
|
29 |
+
}
|
app/code/community/Nextend2/SmartSlider3/etc/adminhtml.xml
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<menu>
|
4 |
+
<nextend2_nextend2>
|
5 |
+
<children>
|
6 |
+
<nextend2smartslider3 translate="title" module="nextend2smartslider3">
|
7 |
+
<title>Smart Slider 3</title>
|
8 |
+
<sort_order>86</sort_order>
|
9 |
+
<action>adminhtml/smartslider3/index</action>
|
10 |
+
</nextend2smartslider3>
|
11 |
+
</children>
|
12 |
+
</nextend2_nextend2>
|
13 |
+
</menu>
|
14 |
+
</config>
|
app/code/community/Nextend2/SmartSlider3/etc/config.xml
ADDED
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Nextend2_SmartSlider3>
|
5 |
+
<version>3.0.15</version>
|
6 |
+
</Nextend2_SmartSlider3>
|
7 |
+
</modules>
|
8 |
+
<global>
|
9 |
+
<blocks>
|
10 |
+
<nextend2smartslider3>
|
11 |
+
<class>Nextend2_SmartSlider3_Block</class>
|
12 |
+
</nextend2smartslider3>
|
13 |
+
</blocks>
|
14 |
+
<helpers>
|
15 |
+
<nextend2smartslider3>
|
16 |
+
<class>Nextend2_SmartSlider3_Helper</class>
|
17 |
+
</nextend2smartslider3>
|
18 |
+
</helpers>
|
19 |
+
<models>
|
20 |
+
<nextend2smartslider3>
|
21 |
+
<class>Nextend2_SmartSlider3_Model</class>
|
22 |
+
</nextend2smartslider3>
|
23 |
+
</models>
|
24 |
+
<events>
|
25 |
+
<n2_http_response_send_before>
|
26 |
+
<observers>
|
27 |
+
<nextend2_shortcode>
|
28 |
+
<class>Nextend2_SmartSlider3_Model_Observer</class>
|
29 |
+
<method>shortcode</method>
|
30 |
+
</nextend2_shortcode>
|
31 |
+
</observers>
|
32 |
+
</n2_http_response_send_before>
|
33 |
+
|
34 |
+
<nextend_loaded>
|
35 |
+
<observers>
|
36 |
+
<nextend_loaded_smartslider3>
|
37 |
+
<class>Nextend2_SmartSlider3_Model_Observer</class>
|
38 |
+
<method>nextendLoaded</method>
|
39 |
+
</nextend_loaded_smartslider3>
|
40 |
+
</observers>
|
41 |
+
</nextend_loaded>
|
42 |
+
</events>
|
43 |
+
<resources>
|
44 |
+
<smartslider3_setup>
|
45 |
+
<setup>
|
46 |
+
<module>Nextend2_SmartSlider3</module>
|
47 |
+
<class>Nextend2_SmartSlider3_Model_Resource_Setup</class>
|
48 |
+
</setup>
|
49 |
+
</smartslider3_setup>
|
50 |
+
</resources>
|
51 |
+
</global>
|
52 |
+
<admin>
|
53 |
+
<routers>
|
54 |
+
<adminhtml>
|
55 |
+
<args>
|
56 |
+
<modules>
|
57 |
+
<smartslider3 before="Mage_Adminhtml">Nextend2_SmartSlider3_Adminhtml</smartslider3>
|
58 |
+
</modules>
|
59 |
+
</args>
|
60 |
+
</adminhtml>
|
61 |
+
</routers>
|
62 |
+
</admin>
|
63 |
+
<adminhtml>
|
64 |
+
<layout>
|
65 |
+
<updates>
|
66 |
+
<smartslider3>
|
67 |
+
<file>smartslider3.xml</file>
|
68 |
+
</smartslider3>
|
69 |
+
</updates>
|
70 |
+
</layout>
|
71 |
+
<acl>
|
72 |
+
<resources>
|
73 |
+
<admin>
|
74 |
+
<children>
|
75 |
+
<nextend2smartslider3>
|
76 |
+
<title>Smart Slider 3</title>
|
77 |
+
<children>
|
78 |
+
<sliders translate="title">
|
79 |
+
<title>Smart Slider 3 access</title>
|
80 |
+
</sliders>
|
81 |
+
</children>
|
82 |
+
</nextend2smartslider3>
|
83 |
+
</children>
|
84 |
+
</admin>
|
85 |
+
</resources>
|
86 |
+
</acl>
|
87 |
+
</adminhtml>
|
88 |
+
</config>
|
app/code/community/Nextend2/SmartSlider3/etc/system.xml
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
|
4 |
+
</config>
|
app/code/community/Nextend2/SmartSlider3/etc/widget.xml
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<widgets>
|
3 |
+
<smartslider3 type="nextend2smartslider3/slider">
|
4 |
+
<name>Smart Slider 3</name>
|
5 |
+
<description type="desc"></description>
|
6 |
+
<parameters>
|
7 |
+
<slider>
|
8 |
+
<label>Slider</label>
|
9 |
+
<visible>1</visible>
|
10 |
+
<required>1</required>
|
11 |
+
<type>select</type>
|
12 |
+
<source_model>nextend2smartslider3/sliders</source_model>
|
13 |
+
</slider>
|
14 |
+
</parameters>
|
15 |
+
</smartslider3>
|
16 |
+
</widgets>
|
app/code/community/Nextend2/SmartSlider3/library/magento/N2SmartsliderApplicationInfoFilter.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderApplicationInfoFilter
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
* @param $info N2ApplicationInfo
|
8 |
+
*/
|
9 |
+
public static function filter($info) {
|
10 |
+
$info->setAssetsPath(Mage::getBaseDir('media') . '/smartslider3/media');
|
11 |
+
$info->setUrl(Mage::helper("adminhtml")->getUrl("adminhtml/smartslider3/index"));
|
12 |
+
}
|
13 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/magento/backend/inline/publish.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="n2-table n2-table-fixed n2-ss-slider-publish">
|
2 |
+
<div class="n2-tr">
|
3 |
+
<div class="n2-td n2-first">
|
4 |
+
<div class="n2-h2"><?php n2_ex('Insert widget', 'magento'); ?></div>
|
5 |
+
|
6 |
+
<div class="n2-h4"><?php n2_e('Copy and paste this shortcode into your pages:'); ?></div>
|
7 |
+
<code><div onclick="return selectText(this);">{{widget type="nextend2smartslider3/slider" slider="<?php echo $sliderid; ?>"}}</div></code>
|
8 |
+
</div>
|
9 |
+
<div class="n2-td">
|
10 |
+
<div class="n2-h2"><?php n2_e('Page or Post editor'); ?></div>
|
11 |
+
|
12 |
+
<div class="n2-h4"><?php n2_e('Insert the slider into pages with the icon:'); ?></div>
|
13 |
+
<img
|
14 |
+
src="<?php echo N2ImageHelper::fixed('$ss$/admin/images/magento-publish.png') ?>"/>
|
15 |
+
</div>
|
16 |
+
<div class="n2-td n2-last">
|
17 |
+
<div class="n2-h2"><?php n2_e('Shortcode'); ?></div>
|
18 |
+
|
19 |
+
<div class="n2-h4"><?php n2_e('Copy and paste this shortcode anywhere:'); ?></div>
|
20 |
+
<code><div onclick="return selectText(this);">smartslider3[<?php echo $sliderid; ?>]</div></code>
|
21 |
+
</div>
|
22 |
+
</div>
|
23 |
+
</div>
|
app/code/community/Nextend2/SmartSlider3/library/magento/init.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if (!defined('N2SSPRO')) {
|
4 |
+
define('N2SSPRO', 0);
|
5 |
+
|
6 |
+
}
|
7 |
+
|
8 |
+
N2Base::registerApplication(dirname(__FILE__) . '/../smartslider/N2SmartsliderApplicationInfo.php');
|
9 |
+
|
10 |
+
function nextend_smartslider3($sliderId, $usage = 'Used in PHP') {
|
11 |
+
N2Base::getApplication("smartslider")->getApplicationType('widget')->render(array(
|
12 |
+
"controller" => 'home',
|
13 |
+
"action" => 'magento',
|
14 |
+
"useRequest" => false
|
15 |
+
), array(
|
16 |
+
$sliderId,
|
17 |
+
$usage
|
18 |
+
));
|
19 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/magento/install.php
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (class_exists('N2Platform', false)) {
|
3 |
+
|
4 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/magento/libraries/slider/slider.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSlider extends N2SmartSliderAbstract
|
4 |
+
{
|
5 |
+
|
6 |
+
public function __construct($sliderId, $parameters) {
|
7 |
+
parent::__construct($sliderId, $parameters);
|
8 |
+
}
|
9 |
+
|
10 |
+
public function parseSlider($slider) {
|
11 |
+
// TODO: Implement parseSlider() method.
|
12 |
+
return $slider;
|
13 |
+
}
|
14 |
+
|
15 |
+
public function addCMSFunctions($slider) {
|
16 |
+
return $slider;
|
17 |
+
}
|
18 |
+
|
19 |
+
|
20 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/magento/plugins/generator/loadplugin.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$dir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
5 |
+
foreach (N2Filesystem::folders($dir) AS $folder) {
|
6 |
+
$file = $dir . $folder . DIRECTORY_SEPARATOR . $folder . '.php';
|
7 |
+
if (N2Filesystem::fileexists($file)) {
|
8 |
+
require_once($file);
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/magento/plugins/generator/magento/magento.php
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.plugins.N2SliderGeneratorPluginAbstract', 'smartslider');
|
4 |
+
|
5 |
+
class N2SSPluginGeneratorMagento extends N2SliderGeneratorPluginAbstract
|
6 |
+
{
|
7 |
+
|
8 |
+
public static $group = 'magento';
|
9 |
+
public static $groupLabel = 'magento';
|
10 |
+
|
11 |
+
function onGeneratorList(&$group, &$list, $showall = false) {
|
12 |
+
|
13 |
+
$group[self::$group] = self::$groupLabel;
|
14 |
+
|
15 |
+
if (!isset($list[self::$group])) {
|
16 |
+
$list[self::$group] = array();
|
17 |
+
}
|
18 |
+
|
19 |
+
$product = new N2GeneratorInfo(self::$groupLabel, n2_('Product'), $this->getPath() . 'product');
|
20 |
+
$product->type = 'product';
|
21 |
+
|
22 |
+
$list[self::$group]['product'] = $product;
|
23 |
+
}
|
24 |
+
|
25 |
+
function getPath() {
|
26 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
27 |
+
}
|
28 |
+
|
29 |
+
}
|
30 |
+
|
31 |
+
N2Plugin::addPlugin('ssgenerator', 'N2SSPluginGeneratorMagento');
|
app/code/community/Nextend2/SmartSlider3/library/magento/plugins/generator/magento/product/config.xml
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="Magento_product_settings" label="Settings">
|
3 |
+
<param label="Image size" name="magentoimagesize" type="mixed" default="0|*|0">
|
4 |
+
<param type="text" label="Width" style="width:40px;">
|
5 |
+
<unit>pixel</unit>
|
6 |
+
</param>
|
7 |
+
<param type="text" label="Height" style="width:40px;">
|
8 |
+
<unit>pixel</unit>
|
9 |
+
</param>
|
10 |
+
</param>
|
11 |
+
</params>
|
12 |
+
<params name="Magento_product" label="Filter_by">
|
13 |
+
<param label="Source_category" name="magentocategory" size="10" multiple="1" default="0" type="magentocategories"/>
|
14 |
+
<param label="Product types" name="magentoproducttype" size="10" multiple="1" default="0" type="magentoproducttypes"/>
|
15 |
+
<param label="Attribute sets" name="magentoattributeset" size="10" multiple="1" default="0" type="magentoattributesets"/>
|
16 |
+
<param label="Only special price" name="magentoonsale" type="onoff" default="0"/>
|
17 |
+
</params>
|
18 |
+
<params name="order" label="Order_by">
|
19 |
+
<param name="magentoorder" type="mixed" label="Order_1" default="price|*|desc">
|
20 |
+
<param type="list" label="Field" translateable="1">
|
21 |
+
<option value="">None</option>
|
22 |
+
<option value="name">Product name</option>
|
23 |
+
<option value="price">Product price</option>
|
24 |
+
<option value="rand">Random</option>
|
25 |
+
<option value="created_at">Creation time</option>
|
26 |
+
</param>
|
27 |
+
<param type="radio" label="order">
|
28 |
+
<option value="asc">Ascending</option>
|
29 |
+
<option value="desc">Descending</option>
|
30 |
+
</param>
|
31 |
+
</param>
|
32 |
+
<param name="magentoorder2" type="mixed" label="Order_2" default="name|*|asc">
|
33 |
+
<param type="list" label="Field" translateable="1">
|
34 |
+
<option value="">None</option>
|
35 |
+
<option value="name">Product name</option>
|
36 |
+
<option value="price">Product price</option>
|
37 |
+
<option value="rand">Random</option>
|
38 |
+
<option value="created_at">Creation time</option>
|
39 |
+
</param>
|
40 |
+
<param type="radio" label="order">
|
41 |
+
<option value="asc">Ascending</option>
|
42 |
+
<option value="desc">Descending</option>
|
43 |
+
</param>
|
44 |
+
</param>
|
45 |
+
</params>
|
46 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/magento/plugins/generator/magento/product/element/magentoattributesets.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.form.element.list');
|
4 |
+
|
5 |
+
class N2ElementMagentoAttributesets extends N2ElementList {
|
6 |
+
|
7 |
+
|
8 |
+
function fetchElement() {
|
9 |
+
|
10 |
+
$this->_xml->addChild('option', 'All')->addAttribute('value', 0);
|
11 |
+
|
12 |
+
$entityType = Mage::getModel('catalog/product')->getResource()->getTypeId();
|
13 |
+
$collection = Mage::getResourceModel('eav/entity_attribute_set_collection')->setEntityTypeFilter($entityType);
|
14 |
+
|
15 |
+
foreach ($collection as $id => $attributeSet) {
|
16 |
+
$this->_xml->addChild('option', ' - '.$attributeSet->getAttributeSetName())->addAttribute('value', $attributeSet->getAttributeSetId());
|
17 |
+
}
|
18 |
+
|
19 |
+
$this->_value = $this->_form->get($this->_name, $this->_default);
|
20 |
+
|
21 |
+
return parent::fetchElement();
|
22 |
+
}
|
23 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/magento/plugins/generator/magento/product/element/magentocategories.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.form.element.list');
|
4 |
+
|
5 |
+
class N2ElementMagentoCategories extends N2ElementList
|
6 |
+
{
|
7 |
+
|
8 |
+
function fetchElement() {
|
9 |
+
$rootcatId = Mage::app()->getWebsite(1)->getDefaultStore()->getRootCategoryId();
|
10 |
+
$realRootcatId = Mage::getModel('catalog/category')->load($rootcatId)->getParentCategory()->getId();
|
11 |
+
$categories = Mage::getModel('catalog/category')->getCategories($realRootcatId);
|
12 |
+
$this->_xml->addChild('option', 'Root')->addAttribute('value', 0);
|
13 |
+
$this->add_categories($categories, ' - ');
|
14 |
+
|
15 |
+
$this->_value = $this->_form->get($this->_name, $this->_default);
|
16 |
+
|
17 |
+
return parent::fetchElement();
|
18 |
+
}
|
19 |
+
|
20 |
+
function add_categories($categories, $pre) {
|
21 |
+
foreach ($categories as $category) {
|
22 |
+
$this->_xml->addChild('option', htmlspecialchars($pre . $category->getName()))->addAttribute('value', $category->getId());
|
23 |
+
if ($category->hasChildren()) {
|
24 |
+
$children = Mage::getModel('catalog/category')->getCategories($category->getId());
|
25 |
+
$this->add_categories($children, $pre . '- ');
|
26 |
+
}
|
27 |
+
}
|
28 |
+
}
|
29 |
+
|
30 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/magento/plugins/generator/magento/product/element/magentoproducttypes.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.form.element.list');
|
4 |
+
|
5 |
+
class N2ElementMagentoProducttypes extends N2ElementList
|
6 |
+
{
|
7 |
+
|
8 |
+
|
9 |
+
function fetchElement() {
|
10 |
+
|
11 |
+
$this->_xml->addChild('option', 'All')->addAttribute('value', 0);
|
12 |
+
|
13 |
+
$types = Mage::getModel('catalog/product_type')->getTypes();
|
14 |
+
|
15 |
+
foreach ($types as $id => $type) {
|
16 |
+
$this->_xml->addChild('option', ' - ' . $type['label'])->addAttribute('value', $id);
|
17 |
+
}
|
18 |
+
|
19 |
+
$this->_value = $this->_form->get($this->_name, $this->_default);
|
20 |
+
|
21 |
+
return parent::fetchElement();
|
22 |
+
}
|
23 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/magento/plugins/generator/magento/product/generator.php
ADDED
@@ -0,0 +1,113 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.slider.generator.abstract', 'smartslider');
|
4 |
+
|
5 |
+
class N2GeneratorMagentoProduct extends N2GeneratorAbstract
|
6 |
+
{
|
7 |
+
|
8 |
+
protected function _getData($count, $startIndex) {
|
9 |
+
$collection = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('*')->addAttributeToFilter('status', array('eq' => 1));
|
10 |
+
|
11 |
+
$categories = array_map('intval', explode('||', $this->data->get('magentocategory', '0')));
|
12 |
+
if (is_array($categories) && !in_array(0, $categories)) {
|
13 |
+
$finset = array();
|
14 |
+
foreach ($categories AS $cat) {
|
15 |
+
$finset[] = array('finset' => $cat);
|
16 |
+
}
|
17 |
+
$collection->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left');
|
18 |
+
$collection->addAttributeToFilter('category_id', array('in' => $finset));
|
19 |
+
}
|
20 |
+
|
21 |
+
$producttype = explode('||', $this->data->get('magentoproducttype', '0'));
|
22 |
+
if (is_array($producttype) && !in_array('0', $producttype)) {
|
23 |
+
$collection->addAttributeToFilter('type_id', array('in' => $producttype));
|
24 |
+
}
|
25 |
+
|
26 |
+
$attributeset = array_map('intval', explode('||', $this->data->get('magentoattributeset', '0')));
|
27 |
+
if (is_array($attributeset) && !in_array(0, $attributeset)) {
|
28 |
+
$collection->addAttributeToFilter('attribute_set_id', array('in' => $attributeset));
|
29 |
+
}
|
30 |
+
|
31 |
+
if ($this->data->get('magentoonsale', '0')) {
|
32 |
+
$dateToday = date('m/d/y');
|
33 |
+
$tomorrow = mktime(0, 0, 0, date('m'), date('d') + 1, date('y'));
|
34 |
+
$dateTomorrow = date('m/d/y', $tomorrow);
|
35 |
+
|
36 |
+
$collection->addAttributeToFilter('special_price', array('gt' => 0))->addAttributeToFilter('special_from_date', array(
|
37 |
+
'date' => true,
|
38 |
+
'to' => $dateToday
|
39 |
+
))->addAttributeToFilter('special_to_date', array(
|
40 |
+
'or' => array(
|
41 |
+
0 => array(
|
42 |
+
'date' => true,
|
43 |
+
'from' => $dateTomorrow
|
44 |
+
),
|
45 |
+
1 => array('is' => new Zend_Db_Expr('null'))
|
46 |
+
)
|
47 |
+
), 'left');
|
48 |
+
}
|
49 |
+
|
50 |
+
$order = N2Parse::parse($this->data->get('magentoorder', 'price|*|desc'));
|
51 |
+
if ($order[0]) {
|
52 |
+
if ($order[0] == 'rand') $order[0] = 'rand()';
|
53 |
+
$collection->addAttributeToSort($order[0], $order[1]);
|
54 |
+
$order = N2Parse::parse($this->data->get('magentoorder2', 'name|*|asc'));
|
55 |
+
if ($order[0]) {
|
56 |
+
if ($order[0] == 'rand') $order[0] = 'rand()';
|
57 |
+
$collection->addAttributeToSort($order[0], $order[1]);
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
+
$imageSize = array_map('intval', N2Parse::parse($this->data->get('magentoimagesize', '0|*|0')));
|
62 |
+
$collection->getSelect()->limit($count, $startIndex);
|
63 |
+
|
64 |
+
$data = array();
|
65 |
+
$i = 0;
|
66 |
+
foreach ($collection as $product) {
|
67 |
+
|
68 |
+
$categoryIds = $product->getCategoryIds();
|
69 |
+
if (count($categoryIds)) {
|
70 |
+
$category = Mage::getModel('catalog/category')->load($categoryIds[0]);
|
71 |
+
} else {
|
72 |
+
$category = Mage::getModel('catalog/category')->load(0);
|
73 |
+
}
|
74 |
+
$image = '';
|
75 |
+
if ($product->getImage() != 'no_selection') {
|
76 |
+
if ($imageSize[0] > 0 && $imageSize[1] > 0) {
|
77 |
+
$image = Mage::helper('catalog/image')->init($product, 'image')->resize($imageSize[0], $imageSize[1]);
|
78 |
+
} else {
|
79 |
+
$image = $product->getImageUrl();
|
80 |
+
}
|
81 |
+
}
|
82 |
+
|
83 |
+
$record = array_map('strval', array(
|
84 |
+
'title' => $product->getName(),
|
85 |
+
'description' => $product->getDescription(),
|
86 |
+
'short_description' => $product->getShortDescription(),
|
87 |
+
'final_price' => Mage::helper('core')->currency($product->getFinalPrice()),
|
88 |
+
'url' => '[url ' . $product->getId() . ']',
|
89 |
+
'addtocart' => '[addtocart ' . $product->getId() . ']',
|
90 |
+
'wishlist_url' => '[wishlist_url ' . $product->getId() . ']',
|
91 |
+
'image' => $image,
|
92 |
+
'thumbnail' => $image,
|
93 |
+
'category_name' => $category->getName(),
|
94 |
+
'category_url' => '[category_url ' . $category->getId() . ']',
|
95 |
+
'addtocart_label' => 'Add to cart'
|
96 |
+
));
|
97 |
+
|
98 |
+
$attributes = $product->getAttributes();
|
99 |
+
foreach ($attributes as $attribute) {
|
100 |
+
if ($attribute->getIsVisibleOnFront() || $attribute->getIsFilterable() || $attribute->getIsSearchable() || $attribute->getIsComparable()) {
|
101 |
+
$record[$attribute->getAttributeCode()] = $attribute->getFrontend()->getValue($product);
|
102 |
+
}
|
103 |
+
}
|
104 |
+
|
105 |
+
$record['price'] = Mage::helper('core')->currency($product->getPrice());
|
106 |
+
|
107 |
+
$data[] = $record;
|
108 |
+
$i++;
|
109 |
+
}
|
110 |
+
|
111 |
+
return $data;
|
112 |
+
}
|
113 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/magento/plugins/loadplugin.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$mdir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
5 |
+
N2Filesystem::registerTranslate(realpath($mdir), N2Base::getApplicationInfo('smartslider')->getAssetsPath() . '/../' . N2Platform::getPlatform() . '/plugins');
|
6 |
+
foreach (N2Filesystem::folders($mdir) AS $mfolder) {
|
7 |
+
$mfile = $mdir . $mfolder . DIRECTORY_SEPARATOR . 'loadplugin.php';
|
8 |
+
if (N2Filesystem::fileexists($mfile)) {
|
9 |
+
require_once($mfile);
|
10 |
+
}
|
11 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/N2SmartsliderApplication.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import("smartslider3", "smartslider");
|
3 |
+
|
4 |
+
class N2SmartSliderApplication extends N2Application
|
5 |
+
{
|
6 |
+
|
7 |
+
public $name = "smartslider";
|
8 |
+
|
9 |
+
protected function autoload() {
|
10 |
+
N2Loader::import("libraries.slider.helper", "smartslider");
|
11 |
+
N2Loader::import("libraries.slider.manager", "smartslider");
|
12 |
+
N2Form::$importPaths[] = dirname(__FILE__) . '/form';
|
13 |
+
|
14 |
+
N2Filesystem::registerTranslate(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'plugins', $this->info->getAssetsPath() . '/plugins');
|
15 |
+
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'plugins' . DIRECTORY_SEPARATOR . 'loadplugin.php';
|
16 |
+
|
17 |
+
N2Loader::import('plugins.loadplugin', 'smartslider.platform');
|
18 |
+
|
19 |
+
|
20 |
+
N2Loader::import('libraries.link', 'smartslider');
|
21 |
+
}
|
22 |
+
|
23 |
+
public function hasExpertMode() {
|
24 |
+
return !!N2SSPRO;
|
25 |
+
}
|
26 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/N2SmartsliderApplicationInfo.php
ADDED
@@ -0,0 +1,134 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderApplicationInfo extends N2ApplicationInfo
|
4 |
+
{
|
5 |
+
|
6 |
+
public function __construct() {
|
7 |
+
$this->path = dirname(__FILE__);
|
8 |
+
$this->assetPath = realpath(dirname(__FILE__) . "/../media");
|
9 |
+
parent::__construct();
|
10 |
+
}
|
11 |
+
|
12 |
+
public function isPublic() {
|
13 |
+
return true;
|
14 |
+
}
|
15 |
+
|
16 |
+
public function getName() {
|
17 |
+
return 'smartslider';
|
18 |
+
}
|
19 |
+
|
20 |
+
public function getLabel() {
|
21 |
+
return 'Smart Slider';
|
22 |
+
}
|
23 |
+
|
24 |
+
public function getInstance() {
|
25 |
+
require_once $this->path . NDS . "N2SmartsliderApplication.php";
|
26 |
+
return new N2SmartSliderApplication($this);
|
27 |
+
}
|
28 |
+
|
29 |
+
public function getPathKey() {
|
30 |
+
return '$ss$';
|
31 |
+
}
|
32 |
+
|
33 |
+
public function onNextendBaseReady() {
|
34 |
+
parent::onNextendBaseReady();
|
35 |
+
|
36 |
+
require_once dirname(__FILE__) . '/libraries/storage.php';
|
37 |
+
}
|
38 |
+
|
39 |
+
public function assetsBackend() {
|
40 |
+
static $once;
|
41 |
+
if ($once != null) {
|
42 |
+
return;
|
43 |
+
}
|
44 |
+
$once = true;
|
45 |
+
|
46 |
+
$path = $this->getAssetsPath();
|
47 |
+
N2CSS::addInline('.n2-expert {display: none !important;');
|
48 |
+
|
49 |
+
|
50 |
+
N2CSS::addFile($path . "/admin/css/smartslider.css", 'smartslider-backend');
|
51 |
+
|
52 |
+
foreach (glob($path . "/admin/js/*.js") AS $file) {
|
53 |
+
N2JS::addFile($file, 'smartslider-backend');
|
54 |
+
}
|
55 |
+
if (!N2Base::getApplication('smartslider')->storage->get('free', 'rated')) {
|
56 |
+
N2JS::addFile($path . "/admin/js/free/gopro.js", 'smartslider-free');
|
57 |
+
}
|
58 |
+
|
59 |
+
|
60 |
+
foreach (glob($path . "/admin/js/element/*.js") AS $file) {
|
61 |
+
N2JS::addFile($file, 'smartslider-backend');
|
62 |
+
}
|
63 |
+
|
64 |
+
N2Localization::addJS(array(
|
65 |
+
'Insert',
|
66 |
+
'Insert variable',
|
67 |
+
'Choose the group',
|
68 |
+
'Choose the variable',
|
69 |
+
'Result',
|
70 |
+
'Filter',
|
71 |
+
'No',
|
72 |
+
'Clean HTML',
|
73 |
+
'Remove HTML',
|
74 |
+
'Split',
|
75 |
+
'Chars',
|
76 |
+
'Words',
|
77 |
+
'Start',
|
78 |
+
'Length',
|
79 |
+
'Find image',
|
80 |
+
'Index',
|
81 |
+
'Find link',
|
82 |
+
'Index'
|
83 |
+
));
|
84 |
+
foreach (glob($path . "/admin/js/generator/*.js") AS $file) {
|
85 |
+
N2JS::addFile($file, 'smartslider-backend');
|
86 |
+
}
|
87 |
+
foreach (glob($path . "/admin/js/generator/element/*.js") AS $file) {
|
88 |
+
N2JS::addFile($file, 'smartslider-backend');
|
89 |
+
}
|
90 |
+
foreach (glob($path . "/admin/js/item/*.js") AS $file) {
|
91 |
+
N2JS::addFile($file, 'smartslider-backend');
|
92 |
+
}
|
93 |
+
foreach (glob($path . "/admin/js/item/parser/*.js") AS $file) {
|
94 |
+
N2JS::addFile($file, 'smartslider-backend');
|
95 |
+
}
|
96 |
+
foreach (glob($path . "/admin/js/layer/*.js") AS $file) {
|
97 |
+
N2JS::addFile($file, 'smartslider-backend');
|
98 |
+
}
|
99 |
+
foreach (glob($path . "/admin/js/timeline/*.js") AS $file) {
|
100 |
+
N2JS::addFile($file, 'smartslider-backend');
|
101 |
+
}
|
102 |
+
|
103 |
+
N2Form::$documentation = 'http://doc.smartslider3.com/';
|
104 |
+
}
|
105 |
+
|
106 |
+
public function assetsFrontend() {
|
107 |
+
N2JS::addInline('window.N2SSPRO=' . N2SSPRO . ';', true);
|
108 |
+
N2JS::addInline('window.N2SSWHYPRO="' . N2SS3::getWhyProUrl() . '";', true);
|
109 |
+
|
110 |
+
|
111 |
+
$path = $this->getAssetsPath();
|
112 |
+
|
113 |
+
foreach (glob($path . "/js/*.js") AS $file) {
|
114 |
+
N2JS::addFile($file, 'smartslider-frontend');
|
115 |
+
}
|
116 |
+
foreach (glob($path . "/js/animation/*.js") AS $file) {
|
117 |
+
N2JS::addFile($file, 'smartslider-frontend');
|
118 |
+
}
|
119 |
+
foreach (glob($path . "/js/controls/*.js") AS $file) {
|
120 |
+
N2JS::addFile($file, 'smartslider-frontend');
|
121 |
+
}
|
122 |
+
foreach (glob($path . "/js/layers/*.js") AS $file) {
|
123 |
+
N2JS::addFile($file, 'smartslider-frontend');
|
124 |
+
}
|
125 |
+
foreach (glob($path . "/js/responsive/*.js") AS $file) {
|
126 |
+
N2JS::addFile($file, 'smartslider-frontend');
|
127 |
+
}
|
128 |
+
foreach (glob($path . "/js/item/*.js") AS $file) {
|
129 |
+
N2JS::addFile($file, 'smartslider-frontend');
|
130 |
+
}
|
131 |
+
}
|
132 |
+
}
|
133 |
+
|
134 |
+
return new N2SmartsliderApplicationInfo();
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/N2SmartsliderApplicationTypeBackend.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderApplicationTypeBackend extends N2ApplicationType
|
4 |
+
{
|
5 |
+
|
6 |
+
public $type = "backend";
|
7 |
+
|
8 |
+
protected function autoload() {
|
9 |
+
N2Loader::import(array(
|
10 |
+
'libraries.embedwidget.embedwidget',
|
11 |
+
'libraries.plugin.plugin',
|
12 |
+
'libraries.form.form',
|
13 |
+
'libraries.image.color',
|
14 |
+
'libraries.mobiledetect.Mobile_Detect',
|
15 |
+
'libraries.parse.parse'
|
16 |
+
));
|
17 |
+
|
18 |
+
N2Loader::import(array(
|
19 |
+
'libraries.settings.settings',
|
20 |
+
'libraries.settings.layout',
|
21 |
+
'libraries.settings.stylemanager',
|
22 |
+
'libraries.settings.font',
|
23 |
+
'libraries.language'
|
24 |
+
), 'smartslider');
|
25 |
+
|
26 |
+
N2Loader::import('helpers.controller.N2SmartSliderController', 'smartslider.backend');
|
27 |
+
}
|
28 |
+
|
29 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Backgroundanimation.php
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('helpers.controllers.VisualManager', 'system.backend');
|
3 |
+
|
4 |
+
class N2SmartSliderBackendBackgroundAnimationController extends N2SystemBackendVisualManagerController
|
5 |
+
{
|
6 |
+
|
7 |
+
protected $type = 'backgroundanimation';
|
8 |
+
|
9 |
+
public function __construct($appType, $defaultParams) {
|
10 |
+
$this->logoText = n2_('Background animation');
|
11 |
+
parent::__construct($appType, $defaultParams);
|
12 |
+
}
|
13 |
+
|
14 |
+
protected function loadModel() {
|
15 |
+
|
16 |
+
N2Loader::import(array(
|
17 |
+
'models.' . $this->type
|
18 |
+
), 'smartslider');
|
19 |
+
}
|
20 |
+
|
21 |
+
public function getModel() {
|
22 |
+
return new N2SmartSliderBackgroundAnimationModel();
|
23 |
+
}
|
24 |
+
|
25 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Generator.php
ADDED
@@ -0,0 +1,203 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderBackendGeneratorController extends N2SmartSliderController
|
4 |
+
{
|
5 |
+
|
6 |
+
public $layoutName = 'default';
|
7 |
+
|
8 |
+
public function initialize() {
|
9 |
+
parent::initialize();
|
10 |
+
|
11 |
+
N2Loader::import(array(
|
12 |
+
'models.generator',
|
13 |
+
'models.Sliders',
|
14 |
+
'models.Slides'
|
15 |
+
), 'smartslider');
|
16 |
+
}
|
17 |
+
|
18 |
+
public function actionCreate() {
|
19 |
+
if ($this->validatePermission('smartslider_edit')) {
|
20 |
+
|
21 |
+
$sliderID = N2Request::getInt("sliderid", 0);
|
22 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
23 |
+
$slider = $slidersModel->get($sliderID);
|
24 |
+
if ($this->validateDatabase($slider)) {
|
25 |
+
$this->addView("create", array(
|
26 |
+
"slider" => $slider
|
27 |
+
));
|
28 |
+
$this->render();
|
29 |
+
}
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
33 |
+
public function actionEdit() {
|
34 |
+
if ($this->validatePermission('smartslider_edit')) {
|
35 |
+
|
36 |
+
$generatorId = N2Request::getInt('generator_id');
|
37 |
+
|
38 |
+
$generatorModel = new N2SmartsliderGeneratorModel();
|
39 |
+
$generator = $generatorModel->get($generatorId);
|
40 |
+
if ($this->validateDatabase($generator)) {
|
41 |
+
|
42 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
43 |
+
$slides = $slidesModel->getAll(-1, 'OR generator_id = ' . $generator['id'] . '');
|
44 |
+
if (count($slides) > 0) {
|
45 |
+
$slide = $slides[0];
|
46 |
+
|
47 |
+
|
48 |
+
if (N2Request::getInt('save')) {
|
49 |
+
$request = new N2Data(N2Request::getVar('generator'));
|
50 |
+
|
51 |
+
$slideParams = new N2Data($slide['params'], true);
|
52 |
+
$slideParams->set('record-slides', $request->get('record-slides', 1));
|
53 |
+
$slidesModel->updateParams($slide['id'], $slideParams->toArray());
|
54 |
+
|
55 |
+
$request->un_set('record-slides');
|
56 |
+
$generatorModel->save($generatorId, $request->toArray());
|
57 |
+
|
58 |
+
N2SmartsliderSlidesModel::markChanged($slide['slider']);
|
59 |
+
N2Message::success(n2_('Generator updated and cache cleared.'));
|
60 |
+
|
61 |
+
$this->redirect(array(
|
62 |
+
"generator/edit",
|
63 |
+
array(
|
64 |
+
"generator_id" => $generatorId
|
65 |
+
)
|
66 |
+
), 302, true);
|
67 |
+
}
|
68 |
+
|
69 |
+
N2Request::set('sliderid', $slide['slider']);
|
70 |
+
|
71 |
+
$this->addView("../../inline/_sliders", array(
|
72 |
+
"appObj" => $this
|
73 |
+
), "sidebar");
|
74 |
+
$this->addView("edit", array(
|
75 |
+
"generatorModel" => $generatorModel,
|
76 |
+
"generator" => $generator,
|
77 |
+
"slide" => $slide
|
78 |
+
));
|
79 |
+
$this->render();
|
80 |
+
} else {
|
81 |
+
$this->redirect(array(
|
82 |
+
"sliders/index"
|
83 |
+
), 302, true);
|
84 |
+
}
|
85 |
+
} else {
|
86 |
+
$this->redirect(array(
|
87 |
+
"sliders/index"
|
88 |
+
), 302, true);
|
89 |
+
|
90 |
+
}
|
91 |
+
}
|
92 |
+
}
|
93 |
+
|
94 |
+
public function actionCreateSettings() {
|
95 |
+
if ($this->validatePermission('smartslider_edit')) {
|
96 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
97 |
+
if (!($slider = $slidersModel->get(N2Request::getInt('sliderid')))) {
|
98 |
+
$this->redirectToSliders();
|
99 |
+
}
|
100 |
+
|
101 |
+
if (N2Request::getInt('save')) {
|
102 |
+
|
103 |
+
$generatorModel = new N2SmartsliderGeneratorModel();
|
104 |
+
$result = $generatorModel->createGenerator($slider['id'], N2Request::getVar('generator'));
|
105 |
+
|
106 |
+
N2Message::success(n2_('Generator created.'));
|
107 |
+
|
108 |
+
$this->redirect(array(
|
109 |
+
"slides/edit",
|
110 |
+
array(
|
111 |
+
"sliderid" => $slider['id'],
|
112 |
+
"slideid" => $result['slideId']
|
113 |
+
)
|
114 |
+
), 302, true);
|
115 |
+
}
|
116 |
+
|
117 |
+
$this->addView("create_settings", array(
|
118 |
+
'slider' => $slider
|
119 |
+
));
|
120 |
+
$this->render();
|
121 |
+
}
|
122 |
+
}
|
123 |
+
|
124 |
+
public function actionCheckConfiguration() {
|
125 |
+
if ($this->validatePermission('smartslider_edit')) {
|
126 |
+
$this->actionConfigure(true);
|
127 |
+
}
|
128 |
+
}
|
129 |
+
|
130 |
+
public function actionConfigure($create = false) {
|
131 |
+
if ($this->validatePermission('smartslider_config')) {
|
132 |
+
|
133 |
+
$generatorModel = new N2SmartsliderGeneratorModel();
|
134 |
+
|
135 |
+
$group = N2Request::getVar('group');
|
136 |
+
$type = N2Request::getVar('type');
|
137 |
+
|
138 |
+
$info = $generatorModel->getGeneratorInfo($group, $type);
|
139 |
+
|
140 |
+
$configuration = $info->getConfiguration();
|
141 |
+
|
142 |
+
if (N2Request::getInt('save')) {
|
143 |
+
if ($this->validateToken()) {
|
144 |
+
$configuration->addData(N2Request::getVar('generator'));
|
145 |
+
$this->refresh();
|
146 |
+
} else {
|
147 |
+
$this->refresh();
|
148 |
+
}
|
149 |
+
}
|
150 |
+
|
151 |
+
|
152 |
+
$this->addView("../../inline/_sidebar_settings", array(), "sidebar");
|
153 |
+
|
154 |
+
if ($create == false || !$configuration->wellConfigured()) {
|
155 |
+
|
156 |
+
$this->addView("check_configuration", array(
|
157 |
+
'configuration' => $configuration
|
158 |
+
));
|
159 |
+
$this->render();
|
160 |
+
|
161 |
+
|
162 |
+
} else {
|
163 |
+
|
164 |
+
$this->redirect(array(
|
165 |
+
"generator/createsettings",
|
166 |
+
array(
|
167 |
+
"sliderid" => N2Request::getInt('sliderid'),
|
168 |
+
"group" => $group,
|
169 |
+
"type" => $type
|
170 |
+
)
|
171 |
+
), 302, true);
|
172 |
+
}
|
173 |
+
}
|
174 |
+
|
175 |
+
}
|
176 |
+
|
177 |
+
public function actionFinishAuth() {
|
178 |
+
if ($this->validatePermission('smartslider_config')) {
|
179 |
+
|
180 |
+
$generatorModel = new N2SmartsliderGeneratorModel();
|
181 |
+
|
182 |
+
$group = N2Request::getVar('group');
|
183 |
+
$type = N2Request::getVar('type');
|
184 |
+
|
185 |
+
$info = $generatorModel->getGeneratorInfo($group, $type);
|
186 |
+
|
187 |
+
$configuration = $info->getConfiguration();
|
188 |
+
$result = $configuration->finishAuth();
|
189 |
+
if ($result === true) {
|
190 |
+
N2Message::success(n2_('Authentication successful.'));
|
191 |
+
echo '<script>window.opener.location.reload();self.close();</script>';
|
192 |
+
} else {
|
193 |
+
if ($result instanceof Exception) {
|
194 |
+
$message = $result->getMessage();
|
195 |
+
} else {
|
196 |
+
$message = 'Something wrong with the credentials';
|
197 |
+
}
|
198 |
+
echo '<script>window.opener.nextend.notificationCenter.error("' . htmlspecialchars($message) . '");self.close();</script>';
|
199 |
+
}
|
200 |
+
n2_exit(true);
|
201 |
+
}
|
202 |
+
}
|
203 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Install.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class N2SmartsliderBackendInstallController extends N2SmartSliderController
|
5 |
+
{
|
6 |
+
|
7 |
+
public function initialize() {
|
8 |
+
|
9 |
+
}
|
10 |
+
|
11 |
+
public function actionIndex($secured = false) {
|
12 |
+
if ($secured) {
|
13 |
+
N2Loader::import('models.Install', 'smartslider');
|
14 |
+
|
15 |
+
$installModel = new N2SmartsliderInstallModel();
|
16 |
+
|
17 |
+
$installModel->install();
|
18 |
+
}
|
19 |
+
}
|
20 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Layout.php
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('helpers.controllers.VisualManager', 'system.backend');
|
3 |
+
|
4 |
+
class N2SmartSliderBackendLayoutController extends N2SystemBackendVisualManagerController
|
5 |
+
{
|
6 |
+
|
7 |
+
public $layoutName = "sidebar";
|
8 |
+
|
9 |
+
protected $type = 'layout';
|
10 |
+
|
11 |
+
public function initialize() {
|
12 |
+
parent::initialize();
|
13 |
+
|
14 |
+
N2Localization::addJS(array(
|
15 |
+
'Load layout',
|
16 |
+
'Load whole slide',
|
17 |
+
'Load only layers'
|
18 |
+
));
|
19 |
+
}
|
20 |
+
|
21 |
+
protected function loadModel() {
|
22 |
+
|
23 |
+
N2Loader::import(array(
|
24 |
+
'models.' . $this->type
|
25 |
+
), 'smartslider');
|
26 |
+
}
|
27 |
+
|
28 |
+
public function getModel() {
|
29 |
+
return new N2SmartSliderLayoutModel();
|
30 |
+
}
|
31 |
+
|
32 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Preview.php
ADDED
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderBackendPreviewController extends N2SmartSliderController
|
4 |
+
{
|
5 |
+
|
6 |
+
public $layoutName = 'preview';
|
7 |
+
|
8 |
+
private $sliderId = 0;
|
9 |
+
|
10 |
+
public function initialize() {
|
11 |
+
parent::initialize();
|
12 |
+
|
13 |
+
N2Loader::import(array(
|
14 |
+
'models.Sliders',
|
15 |
+
'models.Slides',
|
16 |
+
'models.generator'
|
17 |
+
), 'smartslider');
|
18 |
+
|
19 |
+
$this->sliderId = N2Request::getInt('sliderid');
|
20 |
+
}
|
21 |
+
|
22 |
+
public function actionIndex() {
|
23 |
+
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
24 |
+
$sliderData = N2Post::getVar('slider', false);
|
25 |
+
if (count($sliderData)) {
|
26 |
+
$this->addView("index", array(
|
27 |
+
'sliderData' => $sliderData,
|
28 |
+
'sliderId' => $this->sliderId
|
29 |
+
));
|
30 |
+
$this->render();
|
31 |
+
}
|
32 |
+
}
|
33 |
+
}
|
34 |
+
|
35 |
+
public function actionSlide() {
|
36 |
+
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
37 |
+
$sliderId = N2Request::getInt('sliderId');
|
38 |
+
$slideId = N2Request::getInt('slideId');
|
39 |
+
if ($sliderId) {
|
40 |
+
$slidesData = array();
|
41 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
42 |
+
$_slide = N2Request::getVar('slide');
|
43 |
+
if (is_array($_slide)) {
|
44 |
+
$slide = $slidesModel->getRowFromPost($sliderId, $_slide);
|
45 |
+
if ($slideId) {
|
46 |
+
$slide['id'] = $slideId;
|
47 |
+
$slidesData[$slideId] = $slide;
|
48 |
+
} else {
|
49 |
+
$slide['id'] = '-1000';
|
50 |
+
$slidesData['add'] = $slide;
|
51 |
+
}
|
52 |
+
}
|
53 |
+
$this->addView("slide", array(
|
54 |
+
'slidesData' => $slidesData,
|
55 |
+
'sliderId' => $sliderId
|
56 |
+
));
|
57 |
+
$this->render();
|
58 |
+
}
|
59 |
+
}
|
60 |
+
}
|
61 |
+
|
62 |
+
public function actionGenerator() {
|
63 |
+
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
64 |
+
$generator_id = N2Request::getInt('generator_id');
|
65 |
+
|
66 |
+
$generatorModel = new N2SmartsliderGeneratorModel();
|
67 |
+
$sliderId = $generatorModel->getSliderId($generator_id);
|
68 |
+
|
69 |
+
if ($sliderId) {
|
70 |
+
$generatorData = array();
|
71 |
+
|
72 |
+
$generatorData[$generator_id] = N2Request::getVar('generator');
|
73 |
+
|
74 |
+
$this->addView("generator", array(
|
75 |
+
'generatorData' => $generatorData,
|
76 |
+
'sliderId' => $sliderId
|
77 |
+
));
|
78 |
+
$this->render();
|
79 |
+
}
|
80 |
+
}
|
81 |
+
}
|
82 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Settings.php
ADDED
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderBackendSettingsController extends N2SmartSliderController
|
4 |
+
{
|
5 |
+
|
6 |
+
public function initialize() {
|
7 |
+
parent::initialize();
|
8 |
+
|
9 |
+
N2Loader::import(array(
|
10 |
+
'models.Settings',
|
11 |
+
'models.Sliders'
|
12 |
+
), 'smartslider');
|
13 |
+
}
|
14 |
+
|
15 |
+
public function actionDefault() {
|
16 |
+
|
17 |
+
if ($this->validatePermission('smartslider_config')) {
|
18 |
+
|
19 |
+
if (N2Request::getInt('save')) {
|
20 |
+
if ($this->validateToken()) {
|
21 |
+
$settingsModel = new N2SmartsliderSettingsModel();
|
22 |
+
if ($settingsModel->save()) {
|
23 |
+
$this->refresh();
|
24 |
+
}
|
25 |
+
} else {
|
26 |
+
$this->refresh();
|
27 |
+
}
|
28 |
+
}
|
29 |
+
|
30 |
+
$this->addView("../../inline/_sidebar_settings", array(), "sidebar");
|
31 |
+
$this->addView('default', array(
|
32 |
+
"action" => N2Request::getVar("nextendaction")
|
33 |
+
));
|
34 |
+
$this->render();
|
35 |
+
|
36 |
+
}
|
37 |
+
}
|
38 |
+
|
39 |
+
public function actionItemDefaults() {
|
40 |
+
|
41 |
+
if ($this->validatePermission('smartslider_config')) {
|
42 |
+
|
43 |
+
if (N2Request::getInt('save')) {
|
44 |
+
if ($this->validateToken()) {
|
45 |
+
$settingsModel = new N2SmartsliderSettingsModel();
|
46 |
+
if ($settingsModel->saveDefaults(N2Request::getVar('defaults', array()))) {
|
47 |
+
$this->refresh();
|
48 |
+
}
|
49 |
+
} else {
|
50 |
+
$this->refresh();
|
51 |
+
}
|
52 |
+
}
|
53 |
+
|
54 |
+
$this->addView("../../inline/_sidebar_settings", array(), "sidebar");
|
55 |
+
$this->addView("defaults");
|
56 |
+
$this->render();
|
57 |
+
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
+
public function actionJoomla() {
|
62 |
+
//if (N2Platform::$isJoomla) $this->actionDefault('joomla');
|
63 |
+
}
|
64 |
+
|
65 |
+
public function actionClearCache() {
|
66 |
+
if ($this->validatePermission('smartslider_config')) {
|
67 |
+
if ($this->validateToken()) {
|
68 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
69 |
+
foreach ($slidersModel->getAll() AS $slider) {
|
70 |
+
$slidersModel->refreshCache($slider['id']);
|
71 |
+
}
|
72 |
+
N2Cache::clearGroup('n2-ss-0');
|
73 |
+
N2Cache::clearGroup('combined');
|
74 |
+
N2Message::success(n2_('Cache cleared.'));
|
75 |
+
}
|
76 |
+
|
77 |
+
$this->redirect(array("settings/default"));
|
78 |
+
}
|
79 |
+
}
|
80 |
+
|
81 |
+
public function actionAviary() {
|
82 |
+
if ($this->validatePermission('nextend') && $this->validatePermission('nextend_config')) {
|
83 |
+
$this->redirect(N2Base::getApplication('system')->getApplicationType('backend')->router->createUrl("settings/aviary"));
|
84 |
+
}
|
85 |
+
}
|
86 |
+
|
87 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Slider.php
ADDED
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderBackendSliderController extends N2SmartSliderController
|
4 |
+
{
|
5 |
+
|
6 |
+
public $sliderId = 0;
|
7 |
+
|
8 |
+
public function initialize() {
|
9 |
+
parent::initialize();
|
10 |
+
|
11 |
+
N2Loader::import(array(
|
12 |
+
'models.Sliders',
|
13 |
+
'models.Slides',
|
14 |
+
'models.generator'
|
15 |
+
), 'smartslider');
|
16 |
+
|
17 |
+
$this->sliderId = N2Request::getInt('sliderid');
|
18 |
+
}
|
19 |
+
|
20 |
+
public function actionClearCache() {
|
21 |
+
if ($this->validateToken()) {
|
22 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
23 |
+
$slider = $slidersModel->get($this->sliderId);
|
24 |
+
if ($this->validateDatabase($slider)) {
|
25 |
+
|
26 |
+
$slidersModel->refreshCache($this->sliderId);
|
27 |
+
N2Message::success(n2_('Cache cleared.'));
|
28 |
+
$this->redirect(array(
|
29 |
+
"slider/edit",
|
30 |
+
array("sliderid" => $this->sliderId)
|
31 |
+
));
|
32 |
+
}
|
33 |
+
}
|
34 |
+
}
|
35 |
+
|
36 |
+
public function actionCachedSlider() {
|
37 |
+
if ($this->validateToken()) {
|
38 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
39 |
+
$slider = $slidersModel->get($this->sliderId);
|
40 |
+
if ($this->validateDatabase($slider)) {
|
41 |
+
|
42 |
+
$this->addView('cachedslider', array(
|
43 |
+
'slider' => $slider
|
44 |
+
));
|
45 |
+
$this->render();
|
46 |
+
|
47 |
+
}
|
48 |
+
}
|
49 |
+
}
|
50 |
+
|
51 |
+
public function actionEdit() {
|
52 |
+
|
53 |
+
if ($this->validatePermission('smartslider_edit')) {
|
54 |
+
|
55 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
56 |
+
|
57 |
+
$slider = $slidersModel->get($this->sliderId);
|
58 |
+
|
59 |
+
if (!$slider) {
|
60 |
+
$this->redirectToSliders();
|
61 |
+
}
|
62 |
+
|
63 |
+
N2Loader::import('libraries.fonts.fontmanager');
|
64 |
+
N2Loader::import('libraries.stylemanager.stylemanager');
|
65 |
+
|
66 |
+
$this->addView("edit", array(
|
67 |
+
'slider' => $slider
|
68 |
+
));
|
69 |
+
|
70 |
+
$this->render();
|
71 |
+
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
public function actionDelete() {
|
76 |
+
if ($this->validateToken() && $this->validatePermission('smartslider_delete')) {
|
77 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
78 |
+
$slidersModel->delete($this->sliderId);
|
79 |
+
N2Message::success(n2_('Slider deleted.'));
|
80 |
+
$this->redirectToSliders();
|
81 |
+
}
|
82 |
+
}
|
83 |
+
|
84 |
+
public function actionDuplicate() {
|
85 |
+
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
86 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
87 |
+
if (($sliderid = N2Request::getInt('sliderid')) && $slidersModel->get($sliderid)) {
|
88 |
+
$newSliderId = $slidersModel->duplicate($sliderid);
|
89 |
+
N2Message::success(n2_('Slider duplicated.'));
|
90 |
+
$this->redirect(array(
|
91 |
+
"slider/edit",
|
92 |
+
array("sliderid" => $newSliderId)
|
93 |
+
));
|
94 |
+
}
|
95 |
+
$this->redirectToSliders();
|
96 |
+
}
|
97 |
+
}
|
98 |
+
|
99 |
+
public function actionExport() {
|
100 |
+
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
101 |
+
N2Loader::import('libraries.export', 'smartslider');
|
102 |
+
$export = new N2SmartSliderExport($this->sliderId);
|
103 |
+
$export->create();
|
104 |
+
}
|
105 |
+
}
|
106 |
+
|
107 |
+
public function actionExportHTML() {
|
108 |
+
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
109 |
+
N2Loader::import('libraries.export', 'smartslider');
|
110 |
+
$export = new N2SmartSliderExport($this->sliderId);
|
111 |
+
$export->createHTML();
|
112 |
+
}
|
113 |
+
}
|
114 |
+
|
115 |
+
public function actionPublishHTML() {
|
116 |
+
}
|
117 |
+
|
118 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Sliders.php
ADDED
@@ -0,0 +1,167 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderBackendSlidersController extends N2SmartSliderController
|
4 |
+
{
|
5 |
+
|
6 |
+
public function initialize() {
|
7 |
+
parent::initialize();
|
8 |
+
|
9 |
+
N2Loader::import(array(
|
10 |
+
'models.Sliders',
|
11 |
+
'models.Slides'
|
12 |
+
), 'smartslider');
|
13 |
+
}
|
14 |
+
|
15 |
+
public function actionIndex() {
|
16 |
+
N2Loader::import(array(
|
17 |
+
'models.Layouts',
|
18 |
+
'models.SliderItems'
|
19 |
+
), 'smartslider');
|
20 |
+
|
21 |
+
$this->addView(null);
|
22 |
+
$this->render();
|
23 |
+
}
|
24 |
+
|
25 |
+
public function actionOrderBy() {
|
26 |
+
$time = N2Request::getCmd('time', null);
|
27 |
+
if ($time == 'DESC' || $time == 'ASC') {
|
28 |
+
N2SmartSliderSettings::set('slidersOrder', 'time');
|
29 |
+
N2SmartSliderSettings::set('slidersOrderDirection', $time);
|
30 |
+
}
|
31 |
+
$title = N2Request::getCmd('title', null);
|
32 |
+
if ($title == 'DESC' || $title == 'ASC') {
|
33 |
+
N2SmartSliderSettings::set('slidersOrder', 'title');
|
34 |
+
N2SmartSliderSettings::set('slidersOrderDirection', $title);
|
35 |
+
}
|
36 |
+
$this->redirectToSliders();
|
37 |
+
}
|
38 |
+
|
39 |
+
public function actionExportAll() {
|
40 |
+
N2Loader::import('libraries.export', 'smartslider');
|
41 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
42 |
+
$sliders = $slidersModel->getAll();
|
43 |
+
foreach ($sliders AS $slider) {
|
44 |
+
$export = new N2SmartSliderExport($slider['id']);
|
45 |
+
$export->create(true);
|
46 |
+
}
|
47 |
+
|
48 |
+
$folder = N2Platform::getPublicDir();
|
49 |
+
$folder .= '/export/';
|
50 |
+
$zip = new N2ZipFile();
|
51 |
+
|
52 |
+
foreach (N2Filesystem::files($folder) AS $file) {
|
53 |
+
$zip->addFile(file_get_contents($folder . $file), $file);
|
54 |
+
}
|
55 |
+
ob_end_clean();
|
56 |
+
header('Content-disposition: attachment; filename=sliders_unzip_to_import.zip');
|
57 |
+
header('Content-type: application/zip');
|
58 |
+
echo $zip->file();
|
59 |
+
n2_exit(true);
|
60 |
+
}
|
61 |
+
|
62 |
+
public function actionImportByUpload() {
|
63 |
+
if ($this->validatePermission('smartslider_edit')) {
|
64 |
+
if (empty($_FILES) && empty($_POST) && isset($_SERVER['REQUEST_METHOD']) && strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
|
65 |
+
N2Message::error(sprintf(n2_('You were not allowed to upload this file to the server (upload limit %s). Please you this alternative method!'), @ini_get('post_max_size')));
|
66 |
+
|
67 |
+
$this->redirect(array(
|
68 |
+
"sliders/importFromServer"
|
69 |
+
));
|
70 |
+
} else if (N2Request::getInt('save')) {
|
71 |
+
if ($this->validateToken() && isset($_FILES['slider']) && isset($_FILES['slider']['tmp_name']['import-file'])) {
|
72 |
+
|
73 |
+
switch ($_FILES['slider']['error']['import-file']) {
|
74 |
+
case UPLOAD_ERR_OK:
|
75 |
+
break;
|
76 |
+
case UPLOAD_ERR_NO_FILE:
|
77 |
+
throw new RuntimeException('No file sent.');
|
78 |
+
case UPLOAD_ERR_INI_SIZE:
|
79 |
+
case UPLOAD_ERR_FORM_SIZE:
|
80 |
+
throw new RuntimeException('Exceeded filesize limit.');
|
81 |
+
default:
|
82 |
+
throw new RuntimeException('Unknown errors.');
|
83 |
+
}
|
84 |
+
|
85 |
+
if (N2Filesystem::fileexists($_FILES['slider']['tmp_name']['import-file'])) {
|
86 |
+
|
87 |
+
$data = new N2Data(N2Request::getVar('slider'));
|
88 |
+
|
89 |
+
N2Loader::import('libraries.import', 'smartslider');
|
90 |
+
$import = new N2SmartSliderImport();
|
91 |
+
$sliderId = $import->import($_FILES['slider']['tmp_name']['import-file'], $data->get('image-mode', 'clone'), $data->get('linked-visuals', 0));
|
92 |
+
|
93 |
+
if ($sliderId !== false) {
|
94 |
+
N2Message::success(n2_('Slider imported.'));
|
95 |
+
$this->redirect(array(
|
96 |
+
"slider/edit",
|
97 |
+
array("sliderid" => $sliderId)
|
98 |
+
));
|
99 |
+
} else {
|
100 |
+
N2Message::error(n2_('Import error!'));
|
101 |
+
$this->refresh();
|
102 |
+
}
|
103 |
+
} else {
|
104 |
+
N2Message::error(n2_('The imported file is not readable!'));
|
105 |
+
$this->refresh();
|
106 |
+
}
|
107 |
+
|
108 |
+
|
109 |
+
} else {
|
110 |
+
|
111 |
+
}
|
112 |
+
}
|
113 |
+
|
114 |
+
$this->addView('importByUpload');
|
115 |
+
$this->render();
|
116 |
+
}
|
117 |
+
}
|
118 |
+
|
119 |
+
public function actionImportFromServer() {
|
120 |
+
if ($this->validatePermission('smartslider_edit')) {
|
121 |
+
|
122 |
+
|
123 |
+
if (N2Request::getInt('save')) {
|
124 |
+
|
125 |
+
if ($this->validateToken()) {
|
126 |
+
$data = new N2Data(N2Request::getVar('slider'));
|
127 |
+
$file = $data->get('import-file');
|
128 |
+
if (empty($file)) {
|
129 |
+
N2Message::error(n2_('Please select a file!'));
|
130 |
+
$this->refresh();
|
131 |
+
} else {
|
132 |
+
$dir = N2Platform::getPublicDir();
|
133 |
+
if (N2Filesystem::fileexists($dir . '/' . $file)) {
|
134 |
+
N2Loader::import('libraries.import', 'smartslider');
|
135 |
+
$import = new N2SmartSliderImport();
|
136 |
+
$sliderId = $import->import($dir . '/' . $file, $data->get('image-mode', 'clone'), $data->get('linked-visuals', 0));
|
137 |
+
|
138 |
+
if ($sliderId !== false) {
|
139 |
+
|
140 |
+
if ($data->get('delete')) {
|
141 |
+
@unlink($dir . '/' . $file);
|
142 |
+
}
|
143 |
+
|
144 |
+
N2Message::success(n2_('Slider imported.'));
|
145 |
+
$this->redirect(array(
|
146 |
+
"slider/edit",
|
147 |
+
array("sliderid" => $sliderId)
|
148 |
+
));
|
149 |
+
} else {
|
150 |
+
N2Message::error(n2_('Import error!'));
|
151 |
+
$this->refresh();
|
152 |
+
}
|
153 |
+
} else {
|
154 |
+
N2Message::error(n2_('The chosen file is missing!'));
|
155 |
+
$this->refresh();
|
156 |
+
}
|
157 |
+
}
|
158 |
+
} else {
|
159 |
+
$this->refresh();
|
160 |
+
}
|
161 |
+
}
|
162 |
+
|
163 |
+
$this->addView('importFromServer');
|
164 |
+
$this->render();
|
165 |
+
}
|
166 |
+
}
|
167 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Slides.php
ADDED
@@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderBackendSlidesController extends N2SmartSliderController
|
4 |
+
{
|
5 |
+
|
6 |
+
public $layoutName = 'default';
|
7 |
+
|
8 |
+
public function initialize() {
|
9 |
+
parent::initialize();
|
10 |
+
|
11 |
+
N2Loader::import(array(
|
12 |
+
'models.Sliders',
|
13 |
+
'models.generator',
|
14 |
+
'models.Layouts',
|
15 |
+
'models.Layers',
|
16 |
+
'models.Item',
|
17 |
+
'models.Slides'
|
18 |
+
), 'smartslider');
|
19 |
+
|
20 |
+
N2Localization::addJS(array(
|
21 |
+
'In animation',
|
22 |
+
'Loop animation',
|
23 |
+
'Out animation'
|
24 |
+
));
|
25 |
+
}
|
26 |
+
|
27 |
+
private function initAdminSlider() {
|
28 |
+
$sliderManager = new N2SmartSliderManager(N2Get::getInt('sliderid'), true, array(
|
29 |
+
'disableResponsive' => true
|
30 |
+
));
|
31 |
+
$this->appType->app->set('sliderManager', $sliderManager);
|
32 |
+
}
|
33 |
+
|
34 |
+
public function actionCreate() {
|
35 |
+
if ($this->validatePermission('smartslider_edit')) {
|
36 |
+
|
37 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
38 |
+
$sliderId = N2Request::getInt('sliderid');
|
39 |
+
$slider = $slidersModel->get($sliderId);
|
40 |
+
if ($this->validateDatabase($slider)) {
|
41 |
+
$this->initAdminSlider();
|
42 |
+
|
43 |
+
$this->addView("../../inline/_sidebar_slide", array(
|
44 |
+
"appObj" => $this,
|
45 |
+
"slider" => $slider
|
46 |
+
), "sidebar");
|
47 |
+
$this->addView("edit", array(
|
48 |
+
"slidesModel" => new N2SmartsliderSlidesModel(),
|
49 |
+
"sliderId" => $sliderId
|
50 |
+
));
|
51 |
+
$this->render();
|
52 |
+
|
53 |
+
}
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
public function actionEdit() {
|
58 |
+
if ($this->validatePermission('smartslider_edit')) {
|
59 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
60 |
+
$sliderId = N2Request::getInt('sliderid');
|
61 |
+
$slider = $slidersModel->get($sliderId);
|
62 |
+
if ($this->validateDatabase($slider)) {
|
63 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
64 |
+
if (!$slidesModel->get(N2Request::getInt('slideid'))) {
|
65 |
+
$this->redirect("sliders/index");
|
66 |
+
}
|
67 |
+
|
68 |
+
$this->initAdminSlider();
|
69 |
+
|
70 |
+
$this->addView("../../inline/_sidebar_slide", array(
|
71 |
+
"appObj" => $this,
|
72 |
+
"slider" => $slider
|
73 |
+
), "sidebar");
|
74 |
+
$this->addView("edit", array(
|
75 |
+
"slidesModel" => new N2SmartsliderSlidesModel(),
|
76 |
+
"sliderId" => $sliderId
|
77 |
+
));
|
78 |
+
$this->render();
|
79 |
+
}
|
80 |
+
}
|
81 |
+
}
|
82 |
+
|
83 |
+
|
84 |
+
public function actionDelete() {
|
85 |
+
if ($this->validateToken() && $this->validatePermission('smartslider_delete')) {
|
86 |
+
if ($slideId = N2Request::getInt('slideid')) {
|
87 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
88 |
+
$slidesModel->delete($slideId);
|
89 |
+
$this->redirect(N2Request::getUrlReferrer());
|
90 |
+
}
|
91 |
+
$this->redirect(array("sliders/index"));
|
92 |
+
}
|
93 |
+
}
|
94 |
+
|
95 |
+
public function actionDuplicate() {
|
96 |
+
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
97 |
+
if ($slideId = N2Request::getInt('slideid')) {
|
98 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
99 |
+
$newSlideId = $slidesModel->duplicate($slideId);
|
100 |
+
|
101 |
+
N2Message::success(n2_('Slide duplicated.'));
|
102 |
+
|
103 |
+
$this->redirect(array(
|
104 |
+
"slides/edit",
|
105 |
+
array(
|
106 |
+
"sliderid" => N2Request::getInt("sliderid"),
|
107 |
+
"slideid" => $newSlideId
|
108 |
+
)
|
109 |
+
));
|
110 |
+
}
|
111 |
+
$this->redirect(array("sliders/index"));
|
112 |
+
}
|
113 |
+
}
|
114 |
+
|
115 |
+
public function actionFirst() {
|
116 |
+
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
117 |
+
if (($slideId = N2Request::getInt('slideid')) && ($sliderid = N2Request::getInt('sliderid'))) {
|
118 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
119 |
+
$slidesModel->first($sliderid, $slideId);
|
120 |
+
$this->redirect(N2Request::getUrlReferrer());
|
121 |
+
}
|
122 |
+
$this->redirect(array("sliders/index"));
|
123 |
+
}
|
124 |
+
}
|
125 |
+
|
126 |
+
public function actionPublish() {
|
127 |
+
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
128 |
+
if ($slideId = N2Request::getInt('slideid')) {
|
129 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
130 |
+
$slidesModel->publish($slideId);
|
131 |
+
$this->redirect(N2Request::getUrlReferrer());
|
132 |
+
}
|
133 |
+
$this->redirect(array("sliders/index"));
|
134 |
+
}
|
135 |
+
}
|
136 |
+
|
137 |
+
public function actionUnPublish() {
|
138 |
+
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
139 |
+
if ($slideId = N2Request::getInt('slideid')) {
|
140 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
141 |
+
$slidesModel->unpublish($slideId);
|
142 |
+
$this->redirect(N2Request::getUrlReferrer());
|
143 |
+
}
|
144 |
+
$this->redirect(array("sliders/index"));
|
145 |
+
}
|
146 |
+
}
|
147 |
+
|
148 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/Update.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class N2SmartsliderBackendUpdateController extends N2SmartSliderController
|
3 |
+
{
|
4 |
+
|
5 |
+
public function actionCheck() {
|
6 |
+
if ($this->validateToken()) {
|
7 |
+
$status = N2SmartsliderUpdateModel::getInstance()
|
8 |
+
->check();
|
9 |
+
|
10 |
+
$hasError = N2SS3::hasApiError($status);
|
11 |
+
if (is_array($hasError)) {
|
12 |
+
$this->redirect($hasError);
|
13 |
+
}
|
14 |
+
|
15 |
+
$this->redirectToSliders();
|
16 |
+
} else {
|
17 |
+
$this->refresh();
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
|
22 |
+
public function actionUpdate() {
|
23 |
+
if ($this->validateToken()) {
|
24 |
+
$status = N2SmartsliderUpdateModel::getInstance()
|
25 |
+
->update();
|
26 |
+
|
27 |
+
$hasError = N2SS3::hasApiError($status);
|
28 |
+
if (is_array($hasError)) {
|
29 |
+
$this->redirect($hasError);
|
30 |
+
} else if ($hasError === false) {
|
31 |
+
N2Message::success(n2_('Smart Slider 3 updated to the latest version!'));
|
32 |
+
}
|
33 |
+
|
34 |
+
$this->redirectToSliders();
|
35 |
+
} else {
|
36 |
+
$this->refresh();
|
37 |
+
}
|
38 |
+
}
|
39 |
+
|
40 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/ajax/Backgroundanimation.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Base::getApplication('system')->getApplicationType('backend');
|
3 |
+
N2Loader::import('helpers.controllers.VisualManagerAjax', 'system.backend');
|
4 |
+
|
5 |
+
class N2SmartSliderBackendBackgroundAnimationControllerAjax extends N2SystemBackendVisualManagerControllerAjax
|
6 |
+
{
|
7 |
+
|
8 |
+
protected $type = 'backgroundanimation';
|
9 |
+
|
10 |
+
public function initialize() {
|
11 |
+
parent::initialize();
|
12 |
+
|
13 |
+
N2Loader::import(array(
|
14 |
+
'models.' . $this->type
|
15 |
+
), 'smartslider');
|
16 |
+
}
|
17 |
+
|
18 |
+
public function getModel() {
|
19 |
+
return new N2SmartSliderBackgroundAnimationModel();
|
20 |
+
}
|
21 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/ajax/Generator.php
ADDED
@@ -0,0 +1,149 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import("backend.controllers.Generator", 'smartslider');
|
4 |
+
N2Loader::import('libraries.slider.generator.abstract', 'smartslider');
|
5 |
+
|
6 |
+
class N2SmartsliderBackendGeneratorControllerAjax extends N2SmartSliderControllerAjax
|
7 |
+
{
|
8 |
+
|
9 |
+
public function initialize() {
|
10 |
+
parent::initialize();
|
11 |
+
|
12 |
+
N2Loader::import(array(
|
13 |
+
'models.generator',
|
14 |
+
'models.Sliders',
|
15 |
+
'models.Slides'
|
16 |
+
), 'smartslider');
|
17 |
+
}
|
18 |
+
|
19 |
+
public function actionRecordsTable() {
|
20 |
+
|
21 |
+
$this->validateToken();
|
22 |
+
|
23 |
+
$this->validatePermission('smartslider_edit');
|
24 |
+
|
25 |
+
$generatorId = N2Request::getInt('generator_id');
|
26 |
+
|
27 |
+
$generatorModel = new N2SmartsliderGeneratorModel();
|
28 |
+
|
29 |
+
if ($generatorId > 0) {
|
30 |
+
$generator = $generatorModel->get($generatorId);
|
31 |
+
|
32 |
+
$this->validateDatabase($generator);
|
33 |
+
} else {
|
34 |
+
$info = new N2Data(N2Request::getVar('generator'));
|
35 |
+
$generator = array(
|
36 |
+
'group' => $info->get('group'),
|
37 |
+
'type' => $info->get('type'),
|
38 |
+
'params' => '{}'
|
39 |
+
);
|
40 |
+
}
|
41 |
+
|
42 |
+
$info = $generatorModel->getGeneratorInfo($generator['group'], $generator['type']);
|
43 |
+
|
44 |
+
$generator['params'] = new N2Data($generator['params'], true);
|
45 |
+
|
46 |
+
$generator['params']->loadArray(N2Request::getVar('generator'));
|
47 |
+
|
48 |
+
require_once($info->path . '/generator.php');
|
49 |
+
$class = 'N2Generator' . $generator['group'] . $generator['type'];
|
50 |
+
/** @var N2GeneratorAbstract $dataSource */
|
51 |
+
$dataSource = new $class($info, $generator['params']);
|
52 |
+
|
53 |
+
|
54 |
+
$request = new N2Data(N2Request::getVar('generator'));
|
55 |
+
|
56 |
+
$group = max(intval($request->get('record-group', 1)), 1);
|
57 |
+
|
58 |
+
$result = $dataSource->getData(max($request->get('record-slides', 1), 1), max($request->get('record-start', 1), 1), $group);
|
59 |
+
|
60 |
+
if (count($result)) {
|
61 |
+
ob_start();
|
62 |
+
|
63 |
+
$headings = array();
|
64 |
+
|
65 |
+
for ($i = 1; $i <= $group; $i++) {
|
66 |
+
$headings[] = '#';
|
67 |
+
foreach ($result[0][0] AS $k => $v) {
|
68 |
+
$headings[] = '{' . $k . '/' . $i . '}';
|
69 |
+
}
|
70 |
+
}
|
71 |
+
|
72 |
+
$headingHTML = NHtml::tag('thead', array(), NHtml::tag('tr', array(), '<th>' . implode('</th><th>', $headings) . '</th>'));
|
73 |
+
|
74 |
+
|
75 |
+
$rows = array();
|
76 |
+
|
77 |
+
$i = 0;
|
78 |
+
foreach ($result AS $records) {
|
79 |
+
foreach ($records AS $g => $record) {
|
80 |
+
$rows[$i][] = $i + 1;
|
81 |
+
foreach ($record AS $k => $v) {
|
82 |
+
$rows[$i][] = NHtml::tag('div', array(), htmlentities($v));
|
83 |
+
}
|
84 |
+
}
|
85 |
+
$i++;
|
86 |
+
}
|
87 |
+
|
88 |
+
for ($i = 0; $i < count($rows); $i++) {
|
89 |
+
$rows[$i] = '<td>' . implode('</td><td>', $rows[$i]) . '</td>';
|
90 |
+
}
|
91 |
+
$recordHTML = NHtml::tag('tbody', array(), '<tr>' . implode('</tr><tr>', $rows) . '</tr>');
|
92 |
+
|
93 |
+
|
94 |
+
echo NHtml::tag('div', array('style' => 'width: 100%; height: 100%; overflow: auto;'), NHtml::tag('table', array(
|
95 |
+
'class' => 'n2-generator-records n2-table n2-table-fancy',
|
96 |
+
'style' => 'margin: 10px; width: auto; table-layout: fixed;'
|
97 |
+
), $headingHTML . $recordHTML));
|
98 |
+
|
99 |
+
$this->response->respond(array(
|
100 |
+
'html' => ob_get_clean()
|
101 |
+
));
|
102 |
+
|
103 |
+
} else {
|
104 |
+
N2Message::notice('No records found for the filter');
|
105 |
+
$this->response->error();
|
106 |
+
}
|
107 |
+
}
|
108 |
+
|
109 |
+
public function actionGetAuthUrl() {
|
110 |
+
$this->validateToken();
|
111 |
+
$this->validatePermission('smartslider_config');
|
112 |
+
$group = N2Request::getVar('group');
|
113 |
+
$type = N2Request::getVar('type');
|
114 |
+
|
115 |
+
$generatorModel = new N2SmartsliderGeneratorModel();
|
116 |
+
$info = $generatorModel->getGeneratorInfo($group, $type);
|
117 |
+
|
118 |
+
try {
|
119 |
+
$configuration = $info->getConfiguration();
|
120 |
+
$this->response->respond(array('authUrl' => $configuration->startAuth()));
|
121 |
+
} catch (Exception $e) {
|
122 |
+
N2Message::error($e->getMessage());
|
123 |
+
$this->response->error();
|
124 |
+
}
|
125 |
+
}
|
126 |
+
|
127 |
+
public function actionGetData() {
|
128 |
+
$this->validateToken();
|
129 |
+
$this->validatePermission('smartslider_edit');
|
130 |
+
|
131 |
+
$group = N2Request::getVar('group');
|
132 |
+
$type = N2Request::getVar('type');
|
133 |
+
|
134 |
+
|
135 |
+
$generatorModel = new N2SmartsliderGeneratorModel();
|
136 |
+
$info = $generatorModel->getGeneratorInfo($group, $type);
|
137 |
+
|
138 |
+
$configuration = $info->getConfiguration();
|
139 |
+
try {
|
140 |
+
$this->response->respond(call_user_func(array(
|
141 |
+
$configuration,
|
142 |
+
N2Request::getCmd('method')
|
143 |
+
)));
|
144 |
+
} catch (Exception $e) {
|
145 |
+
N2Message::error($e->getMessage());
|
146 |
+
$this->response->error();
|
147 |
+
}
|
148 |
+
}
|
149 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/ajax/Guide.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderBackendGuideControllerAjax extends N2SmartSliderControllerAjax
|
4 |
+
{
|
5 |
+
|
6 |
+
public function actionEnd() {
|
7 |
+
|
8 |
+
$this->validateToken();
|
9 |
+
|
10 |
+
$this->validatePermission('smartslider_edit');
|
11 |
+
|
12 |
+
$key = N2Request::getCmd('key');
|
13 |
+
N2SmartSliderSettings::set('guide-' . $key, 0);
|
14 |
+
|
15 |
+
N2Message::notice('The ' . $key . ' guide completed. If you need it again, you can turn it on in the "Settings"!');
|
16 |
+
|
17 |
+
$this->response->respond();
|
18 |
+
}
|
19 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/ajax/Layout.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Base::getApplication('system')->getApplicationType('backend');
|
3 |
+
N2Loader::import('helpers.controllers.VisualManagerAjax', 'system.backend');
|
4 |
+
|
5 |
+
class N2SmartSliderBackendLayoutControllerAjax extends N2SystemBackendVisualManagerControllerAjax
|
6 |
+
{
|
7 |
+
|
8 |
+
protected $type = 'layout';
|
9 |
+
|
10 |
+
public function getModel() {
|
11 |
+
N2Loader::import(array(
|
12 |
+
'models.' . $this->type
|
13 |
+
), 'smartslider');
|
14 |
+
return new N2SmartSliderLayoutModel();
|
15 |
+
}
|
16 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/ajax/Settings.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderBackendSettingsControllerAjax extends N2SmartSliderControllerAjax
|
4 |
+
{
|
5 |
+
|
6 |
+
public function actionRated() {
|
7 |
+
$this->validateToken();
|
8 |
+
$this->appType->app->storage->set('free', 'rated', 1);
|
9 |
+
$this->response->respond();
|
10 |
+
}
|
11 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/ajax/Slider.php
ADDED
@@ -0,0 +1,212 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderBackendSliderControllerAjax extends N2SmartSliderControllerAjax
|
4 |
+
{
|
5 |
+
|
6 |
+
public function initialize() {
|
7 |
+
parent::initialize();
|
8 |
+
|
9 |
+
N2Loader::import(array(
|
10 |
+
'models.Ajax',
|
11 |
+
'models.Sliders'
|
12 |
+
), 'smartslider');
|
13 |
+
}
|
14 |
+
|
15 |
+
public function actionCreate() {
|
16 |
+
$this->validateToken();
|
17 |
+
$this->validatePermission('smartslider_edit');
|
18 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
19 |
+
|
20 |
+
$title = N2Request::getVar('sliderTitle');
|
21 |
+
$this->validateVariable(!empty($title), 'slider name');
|
22 |
+
|
23 |
+
$slider = array(
|
24 |
+
'type' => 'simple',
|
25 |
+
'title' => N2Request::getVar('sliderTitle'),
|
26 |
+
'width' => max(N2Request::getInt('sliderSizeWidth', 800), 50),
|
27 |
+
'height' => max(N2Request::getInt('sliderSizeHeight', 500), 50)
|
28 |
+
);
|
29 |
+
|
30 |
+
$preset = N2Request::getVar('preset');
|
31 |
+
switch ($preset) {
|
32 |
+
case 'fullwidth':
|
33 |
+
$slider['responsive-mode'] = 'fullwidth';
|
34 |
+
$slider['widgetarrow'] = 'imageEmpty';
|
35 |
+
break;
|
36 |
+
case 'fullpage':
|
37 |
+
$slider['responsive-mode'] = 'fullpage';
|
38 |
+
$slider['widgetarrow'] = 'imageEmpty';
|
39 |
+
break;
|
40 |
+
case 'block':
|
41 |
+
$slider['type'] = 'block';
|
42 |
+
$slider['responsive-mode'] = 'fullwidth';
|
43 |
+
break;
|
44 |
+
case 'showcase':
|
45 |
+
$slider['type'] = 'showcase';
|
46 |
+
$slider['slide-width'] = intval($slider['width'] * 0.8);
|
47 |
+
$slider['slide-height'] = intval($slider['height'] * 0.8);
|
48 |
+
break;
|
49 |
+
case 'carousel':
|
50 |
+
$slider['responsiveScaleUp'] = 1;
|
51 |
+
$slider['type'] = 'carousel';
|
52 |
+
$slider['slide-width'] = intval(($slider['width'] - 40) * 0.32);
|
53 |
+
$slider['slide-height'] = intval($slider['height'] * 0.8);
|
54 |
+
$slider['widgetbullet'] = 'transitionRectangle';
|
55 |
+
$slider['widgetarrow'] = 'disabled';
|
56 |
+
break;
|
57 |
+
case 'thumbnailhorizontal':
|
58 |
+
$slider['widgetthumbnail'] = 'default';
|
59 |
+
break;
|
60 |
+
case 'thumbnailvertical':
|
61 |
+
$slider['widgetthumbnail'] = 'default';
|
62 |
+
$slider['widget-thumbnail-position-area'] = '8';
|
63 |
+
break;
|
64 |
+
case 'caption':
|
65 |
+
$slider['widgetarrow'] = 'imageEmpty';
|
66 |
+
$slider['widgetbar'] = 'horizontalFull';
|
67 |
+
break;
|
68 |
+
case 'horizontalaccordion':
|
69 |
+
$slider['type'] = 'accordion';
|
70 |
+
$slider['orientation'] = 'horizontal';
|
71 |
+
break;
|
72 |
+
case 'verticalaccordion':
|
73 |
+
$slider['type'] = 'accordion';
|
74 |
+
$slider['orientation'] = 'vertical';
|
75 |
+
break;
|
76 |
+
default:
|
77 |
+
$slider['widgetarrow'] = 'imageEmpty';
|
78 |
+
}
|
79 |
+
|
80 |
+
$sliderid = $slidersModel->create($slider);
|
81 |
+
|
82 |
+
N2Message::success(n2_('Slider created.'));
|
83 |
+
|
84 |
+
$this->response->redirect(array(
|
85 |
+
"slider/edit",
|
86 |
+
array("sliderid" => $sliderid)
|
87 |
+
));
|
88 |
+
}
|
89 |
+
|
90 |
+
public function actionEdit() {
|
91 |
+
$this->validateToken();
|
92 |
+
$this->validatePermission('smartslider_edit');
|
93 |
+
|
94 |
+
if (N2Request::getInt('save')) {
|
95 |
+
|
96 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
97 |
+
|
98 |
+
$slider = $slidersModel->get(N2Request::getInt('sliderid'));
|
99 |
+
$this->validateDatabase($slider);
|
100 |
+
if ($sliderid = $slidersModel->save($slider['id'], N2Request::getVar('slider'))) {
|
101 |
+
N2Message::success(n2_('Slider saved.'));
|
102 |
+
$this->response->respond();
|
103 |
+
}
|
104 |
+
}
|
105 |
+
|
106 |
+
$response = null;
|
107 |
+
|
108 |
+
$id = N2Request::getCmd('id');
|
109 |
+
|
110 |
+
$ajaxModel = new N2SmartSliderAjaxModel();
|
111 |
+
|
112 |
+
ob_start();
|
113 |
+
switch ($id) {
|
114 |
+
case 'slidertype':
|
115 |
+
$response = $ajaxModel->sliderType($this->appType);
|
116 |
+
break;
|
117 |
+
case 'sliderresponsivemode':
|
118 |
+
$response = $ajaxModel->sliderResponsiveMode($this->appType);
|
119 |
+
break;
|
120 |
+
case 'sliderwidgetarrow':
|
121 |
+
$response = $ajaxModel->sliderWidget($this->appType, 'arrow');
|
122 |
+
break;
|
123 |
+
case 'sliderwidgetbullet':
|
124 |
+
$response = $ajaxModel->sliderWidget($this->appType, 'bullet');
|
125 |
+
break;
|
126 |
+
case 'sliderwidgetautoplay':
|
127 |
+
$response = $ajaxModel->sliderWidget($this->appType, 'autoplay');
|
128 |
+
break;
|
129 |
+
case 'sliderwidgetindicator':
|
130 |
+
$response = $ajaxModel->sliderWidget($this->appType, 'indicator');
|
131 |
+
break;
|
132 |
+
case 'sliderwidgetfullscreen':
|
133 |
+
$response = $ajaxModel->sliderWidget($this->appType, 'fullscreen');
|
134 |
+
break;
|
135 |
+
case 'sliderwidgetbar':
|
136 |
+
$response = $ajaxModel->sliderWidget($this->appType, 'bar');
|
137 |
+
break;
|
138 |
+
case 'sliderwidgetthumbnail':
|
139 |
+
$response = $ajaxModel->sliderWidget($this->appType, 'thumbnail');
|
140 |
+
break;
|
141 |
+
case 'sliderwidgetshadow':
|
142 |
+
$response = $ajaxModel->sliderWidget($this->appType, 'shadow');
|
143 |
+
break;
|
144 |
+
case 'sliderwidgethtml':
|
145 |
+
$response = $ajaxModel->sliderWidget($this->appType, 'html');
|
146 |
+
break;
|
147 |
+
}
|
148 |
+
|
149 |
+
if ($response == null) {
|
150 |
+
$response = array(
|
151 |
+
'html' => '',
|
152 |
+
'script' => ''
|
153 |
+
);
|
154 |
+
}
|
155 |
+
$response['html'] .= ob_get_clean();
|
156 |
+
|
157 |
+
$this->response->respond($response);
|
158 |
+
}
|
159 |
+
|
160 |
+
public function actionImportDemo() {
|
161 |
+
$this->validateToken();
|
162 |
+
$this->validatePermission('smartslider_edit');
|
163 |
+
|
164 |
+
$key = 'http:' . base64_decode(N2Request::getVar('key'));
|
165 |
+
if (strpos($key, 'http://smartslider3.com/') !== 0) {
|
166 |
+
N2Message::error(sprintf(n2_('Import url is not valid: %s'), $key));
|
167 |
+
$this->response->error();
|
168 |
+
}
|
169 |
+
|
170 |
+
$posts = array(
|
171 |
+
'action' => 'asset',
|
172 |
+
'asset' => $key
|
173 |
+
);
|
174 |
+
$result = N2SS3::api($posts);
|
175 |
+
|
176 |
+
if (!is_string($result)) {
|
177 |
+
$hasError = N2SS3::hasApiError($result['status'], array(
|
178 |
+
'key' => $key
|
179 |
+
));
|
180 |
+
if (is_array($hasError)) {
|
181 |
+
$this->redirect($hasError);
|
182 |
+
} else if ($hasError !== false) {
|
183 |
+
$this->response->error();
|
184 |
+
}
|
185 |
+
} else {
|
186 |
+
|
187 |
+
N2Loader::import(array(
|
188 |
+
'models.Sliders',
|
189 |
+
'models.Slides'
|
190 |
+
), 'smartslider');
|
191 |
+
|
192 |
+
N2Loader::import('libraries.import', 'smartslider');
|
193 |
+
|
194 |
+
$import = new N2SmartSliderImport();
|
195 |
+
$sliderId = $import->import($result, 'clone', 1, false);
|
196 |
+
|
197 |
+
if ($sliderId !== false) {
|
198 |
+
N2Message::success(n2_('Slider imported.'));
|
199 |
+
|
200 |
+
$this->response->redirect(array(
|
201 |
+
"slider/edit",
|
202 |
+
array("sliderid" => $sliderId)
|
203 |
+
));
|
204 |
+
} else {
|
205 |
+
N2Message::error(n2_('Import error!'));
|
206 |
+
$this->response->error();
|
207 |
+
}
|
208 |
+
}
|
209 |
+
|
210 |
+
$this->response->respond();
|
211 |
+
}
|
212 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/controllers/ajax/Slides.php
ADDED
@@ -0,0 +1,296 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderBackendSlidesControllerAjax extends N2SmartSliderControllerAjax
|
4 |
+
{
|
5 |
+
|
6 |
+
public function initialize() {
|
7 |
+
parent::initialize();
|
8 |
+
|
9 |
+
N2Loader::import(array(
|
10 |
+
'models.Slides',
|
11 |
+
'models.Sliders',
|
12 |
+
'models.generator'
|
13 |
+
), 'smartslider');
|
14 |
+
}
|
15 |
+
|
16 |
+
public function actionCreate() {
|
17 |
+
$this->validateToken();
|
18 |
+
$this->validatePermission('smartslider_edit');
|
19 |
+
|
20 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
21 |
+
$sliderId = N2Request::getInt('sliderid');
|
22 |
+
$slider = $slidersModel->get($sliderId);
|
23 |
+
$this->validateDatabase($slider);
|
24 |
+
|
25 |
+
if (N2Request::getInt('save')) {
|
26 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
27 |
+
$slideId = $slidesModel->create($sliderId, N2Request::getVar('slide'));
|
28 |
+
$this->validateDatabase($slideId);
|
29 |
+
|
30 |
+
$this->response->redirect(array(
|
31 |
+
"slides/edit",
|
32 |
+
array(
|
33 |
+
"sliderid" => N2Request::getInt("sliderid"),
|
34 |
+
"slideid" => $slideId
|
35 |
+
)
|
36 |
+
));
|
37 |
+
}
|
38 |
+
}
|
39 |
+
|
40 |
+
public function actionEdit() {
|
41 |
+
$this->validateToken();
|
42 |
+
$this->validatePermission('smartslider_edit');
|
43 |
+
|
44 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
45 |
+
$sliderId = N2Request::getInt('sliderid');
|
46 |
+
$slider = $slidersModel->get($sliderId);
|
47 |
+
|
48 |
+
$this->validateDatabase($slider);
|
49 |
+
|
50 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
51 |
+
$this->validateDatabase($slidesModel->get(N2Request::getInt('slideid')));
|
52 |
+
|
53 |
+
$response = array();
|
54 |
+
|
55 |
+
if (N2Request::getInt('save')) {
|
56 |
+
if ($slideId = $slidesModel->save(N2Request::getInt('slideid'), N2Request::getVar('slide'))) {
|
57 |
+
N2Message::success(n2_('Slide saved.'));
|
58 |
+
if (N2Request::getInt('static') == 1) {
|
59 |
+
$slideCount = $slidesModel->makeStatic(N2Request::getInt('slideid'));
|
60 |
+
if ($slideCount) {
|
61 |
+
N2Message::success(sprintf(n2_('%d static slides generated.'), $slideCount));
|
62 |
+
|
63 |
+
$this->response->redirect(array(
|
64 |
+
"slider/edit",
|
65 |
+
array(
|
66 |
+
"sliderid" => $sliderId
|
67 |
+
)
|
68 |
+
));
|
69 |
+
}
|
70 |
+
}
|
71 |
+
}
|
72 |
+
}
|
73 |
+
$this->response->respond($response);
|
74 |
+
}
|
75 |
+
|
76 |
+
public function actionFirst() {
|
77 |
+
$this->validateToken();
|
78 |
+
|
79 |
+
$this->validatePermission('smartslider_edit');
|
80 |
+
|
81 |
+
$slideId = N2Request::getInt('id');
|
82 |
+
$this->validateVariable($slideId > 0, 'Slide id');
|
83 |
+
|
84 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
85 |
+
$slidesModel->first($slideId);
|
86 |
+
N2Message::success(n2_('First slide changed.'));
|
87 |
+
|
88 |
+
$this->response->respond();
|
89 |
+
}
|
90 |
+
|
91 |
+
public function actionPublish() {
|
92 |
+
$this->validateToken();
|
93 |
+
|
94 |
+
$this->validatePermission('smartslider_edit');
|
95 |
+
|
96 |
+
$ids = array_map('intval', array_filter((array)N2Request::getVar('slides'), 'is_numeric'));
|
97 |
+
|
98 |
+
$this->validateVariable(count($ids), 'Slides');
|
99 |
+
|
100 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
101 |
+
foreach ($ids AS $id) {
|
102 |
+
if ($id > 0) {
|
103 |
+
$slidesModel->publish($id);
|
104 |
+
}
|
105 |
+
}
|
106 |
+
N2Message::success(n2_('Slide published.'));
|
107 |
+
$this->response->respond();
|
108 |
+
}
|
109 |
+
|
110 |
+
public function actionUnPublish() {
|
111 |
+
$this->validateToken();
|
112 |
+
|
113 |
+
$this->validatePermission('smartslider_edit');
|
114 |
+
|
115 |
+
$ids = array_map('intval', array_filter((array)N2Request::getVar('slides'), 'is_numeric'));
|
116 |
+
$this->validateVariable(count($ids), 'Slides');
|
117 |
+
|
118 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
119 |
+
foreach ($ids AS $id) {
|
120 |
+
if ($id > 0) {
|
121 |
+
$slidesModel->unpublish($id);
|
122 |
+
}
|
123 |
+
}
|
124 |
+
N2Message::success(n2_('Slide unpublished.'));
|
125 |
+
$this->response->respond();
|
126 |
+
}
|
127 |
+
|
128 |
+
public function actionOrder() {
|
129 |
+
$this->validateToken();
|
130 |
+
|
131 |
+
$this->validatePermission('smartslider_edit');
|
132 |
+
|
133 |
+
$sliderid = N2Request::getInt('sliderid');
|
134 |
+
$this->validateVariable($sliderid > 0, 'Slider');
|
135 |
+
|
136 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
137 |
+
|
138 |
+
$result = $slidesModel->order($sliderid, N2Request::getVar('slideorder'));
|
139 |
+
$this->validateDatabase($result);
|
140 |
+
|
141 |
+
N2Message::success(n2_('Slide order saved.'));
|
142 |
+
$this->response->respond();
|
143 |
+
}
|
144 |
+
|
145 |
+
|
146 |
+
public function actionDuplicate() {
|
147 |
+
$this->validateToken();
|
148 |
+
|
149 |
+
$this->validatePermission('smartslider_edit');
|
150 |
+
|
151 |
+
$slideId = N2Request::getInt('slideid');
|
152 |
+
$this->validateVariable($slideId > 0, 'Slide');
|
153 |
+
|
154 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
155 |
+
$newSlideId = $slidesModel->duplicate($slideId);
|
156 |
+
$slide = $slidesModel->get($newSlideId);
|
157 |
+
|
158 |
+
$this->validateDatabase($slide);
|
159 |
+
|
160 |
+
N2Message::success(n2_('Slide duplicated.'));
|
161 |
+
|
162 |
+
$sliderObj = new N2SmartSlider($slide['slider'], array());
|
163 |
+
$slideObj = new N2SmartSliderSlide($sliderObj, $slide);
|
164 |
+
$slideObj->initGenerator();
|
165 |
+
$slideObj->fillSample();
|
166 |
+
|
167 |
+
$this->addView('slidebox', array(
|
168 |
+
'slider' => $sliderObj,
|
169 |
+
'slide' => $slideObj
|
170 |
+
));
|
171 |
+
ob_start();
|
172 |
+
$this->render();
|
173 |
+
$box = ob_get_clean();
|
174 |
+
$this->response->respond($box);
|
175 |
+
}
|
176 |
+
|
177 |
+
|
178 |
+
public function actionDelete() {
|
179 |
+
$this->validateToken();
|
180 |
+
|
181 |
+
$this->validatePermission('smartslider_delete');
|
182 |
+
|
183 |
+
$ids = array_map('intval', array_filter((array)N2Request::getVar('slides'), 'is_numeric'));
|
184 |
+
|
185 |
+
$this->validateVariable(count($ids), 'Slide');
|
186 |
+
|
187 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
188 |
+
foreach ($ids AS $id) {
|
189 |
+
if ($id > 0) {
|
190 |
+
$slidesModel->delete($id);
|
191 |
+
}
|
192 |
+
}
|
193 |
+
N2Message::success(n2_('Slide deleted.'));
|
194 |
+
$this->response->respond();
|
195 |
+
}
|
196 |
+
|
197 |
+
public function actionQuickImages() {
|
198 |
+
$this->validateToken();
|
199 |
+
|
200 |
+
$this->validatePermission('smartslider_edit');
|
201 |
+
|
202 |
+
$sliderId = N2Request::getInt('sliderid');
|
203 |
+
$this->validateVariable($sliderId > 0, 'Slider');
|
204 |
+
|
205 |
+
$images = json_decode(base64_decode(N2Request::getVar('images')), true);
|
206 |
+
$this->validateVariable(count($images), 'Images');
|
207 |
+
|
208 |
+
$sliderObj = new N2SmartSlider($sliderId, array());
|
209 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
210 |
+
foreach ($images AS $image) {
|
211 |
+
$newSlideId = $slidesModel->createQuickImage($image, $sliderId);
|
212 |
+
$slide = $slidesModel->get($newSlideId);
|
213 |
+
|
214 |
+
$slideObj = new N2SmartSliderSlide($sliderObj, $slide);
|
215 |
+
$slideObj->initGenerator();
|
216 |
+
$slideObj->fillSample();
|
217 |
+
|
218 |
+
$this->addView('slidebox', array(
|
219 |
+
'slider' => $sliderObj,
|
220 |
+
'slide' => $slideObj
|
221 |
+
));
|
222 |
+
}
|
223 |
+
|
224 |
+
ob_start();
|
225 |
+
$this->render();
|
226 |
+
$box = ob_get_clean();
|
227 |
+
N2Message::success(n2_n('Slide created.', 'Slides created.', count($images)));
|
228 |
+
$this->response->respond($box);
|
229 |
+
}
|
230 |
+
|
231 |
+
public function actionQuickVideo() {
|
232 |
+
$this->validateToken();
|
233 |
+
|
234 |
+
$this->validatePermission('smartslider_edit');
|
235 |
+
|
236 |
+
$sliderId = N2Request::getInt('sliderid');
|
237 |
+
$this->validateVariable($sliderId > 0, 'Slider');
|
238 |
+
|
239 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
240 |
+
$video = json_decode(base64_decode(N2Request::getVar('video')), true);
|
241 |
+
$this->validateVariable($video, 'Video');
|
242 |
+
|
243 |
+
$newSlideId = $slidesModel->createQuickVideo($video, $sliderId);
|
244 |
+
$slide = $slidesModel->get($newSlideId);
|
245 |
+
$this->validateDatabase($slide);
|
246 |
+
|
247 |
+
$sliderObj = new N2SmartSlider($slide['slider'], array());
|
248 |
+
$slideObj = new N2SmartSliderSlide($sliderObj, $slide);
|
249 |
+
$slideObj->initGenerator();
|
250 |
+
$slideObj->fillSample();
|
251 |
+
|
252 |
+
$this->addView('slidebox', array(
|
253 |
+
'slider' => $sliderObj,
|
254 |
+
'slide' => $slideObj
|
255 |
+
));
|
256 |
+
|
257 |
+
ob_start();
|
258 |
+
$this->render();
|
259 |
+
$box = ob_get_clean();
|
260 |
+
N2Message::success(n2_('Slide created.'));
|
261 |
+
$this->response->respond($box);
|
262 |
+
}
|
263 |
+
|
264 |
+
public function actionQuickPost() {
|
265 |
+
$this->validateToken();
|
266 |
+
|
267 |
+
$this->validatePermission('smartslider_edit');
|
268 |
+
|
269 |
+
$sliderId = N2Request::getInt('sliderid');
|
270 |
+
$this->validateVariable($sliderId > 0, 'Slider');
|
271 |
+
|
272 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
273 |
+
$post = N2Request::getVar('post');
|
274 |
+
$this->validateVariable($post, 'Post');
|
275 |
+
|
276 |
+
$newSlideId = $slidesModel->createQuickPost($post, $sliderId);
|
277 |
+
$slide = $slidesModel->get($newSlideId);
|
278 |
+
$this->validateDatabase($slide);
|
279 |
+
|
280 |
+
$sliderObj = new N2SmartSlider($slide['slider'], array());
|
281 |
+
$slideObj = new N2SmartSliderSlide($sliderObj, $slide);
|
282 |
+
$slideObj->initGenerator();
|
283 |
+
$slideObj->fillSample();
|
284 |
+
|
285 |
+
$this->addView('slidebox', array(
|
286 |
+
'slider' => $sliderObj,
|
287 |
+
'slide' => $slideObj
|
288 |
+
));
|
289 |
+
|
290 |
+
ob_start();
|
291 |
+
$this->render();
|
292 |
+
$box = ob_get_clean();
|
293 |
+
N2Message::success(n2_('Slide created.'));
|
294 |
+
$this->response->respond($box);
|
295 |
+
}
|
296 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/helpers/controller/N2SmartSliderController.php
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderController extends N2BackendController
|
4 |
+
{
|
5 |
+
|
6 |
+
public function initialize() {
|
7 |
+
parent::initialize();
|
8 |
+
|
9 |
+
N2JS::addFirstCode('window.ss2lang = {};');
|
10 |
+
|
11 |
+
N2Loader::import(array(
|
12 |
+
'models.GroupStorage',
|
13 |
+
'models.License',
|
14 |
+
'models.Update'
|
15 |
+
), 'smartslider');
|
16 |
+
N2JS::addInline("new NextendSmartSliderCreateSlider('" . $this->appType->router->createUrl(array('slider/create')) . "');");
|
17 |
+
|
18 |
+
N2Localization::addJS(array(
|
19 |
+
'Create Slider',
|
20 |
+
'Slider name',
|
21 |
+
'Slider',
|
22 |
+
'Width',
|
23 |
+
'Height',
|
24 |
+
'Create',
|
25 |
+
'Preset',
|
26 |
+
'Default',
|
27 |
+
'Full width',
|
28 |
+
'Full page',
|
29 |
+
'Block',
|
30 |
+
'Thumbnail - horizontal',
|
31 |
+
'Thumbnail - vertical',
|
32 |
+
'Caption',
|
33 |
+
'Horizontal accordion',
|
34 |
+
'Vertical accordion',
|
35 |
+
'Showcase',
|
36 |
+
'Saved slide'
|
37 |
+
));
|
38 |
+
}
|
39 |
+
|
40 |
+
public function redirectToSliders() {
|
41 |
+
$this->redirect(array("sliders/index"));
|
42 |
+
}
|
43 |
+
|
44 |
+
}
|
45 |
+
|
46 |
+
class N2SmartSliderControllerAjax extends N2BackendControllerAjax
|
47 |
+
{
|
48 |
+
|
49 |
+
public function initialize() {
|
50 |
+
parent::initialize();
|
51 |
+
|
52 |
+
N2Loader::import(array(
|
53 |
+
'models.GroupStorage',
|
54 |
+
'models.License'
|
55 |
+
), 'smartslider');
|
56 |
+
}
|
57 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/inline/_sidebar_settings.php
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$action = N2Request::getCmd('nextendaction', 'default');
|
3 |
+
|
4 |
+
|
5 |
+
$settings = array(
|
6 |
+
'default' => array(
|
7 |
+
'title' => n2_('General settings'),
|
8 |
+
'url' => array("settings/default")
|
9 |
+
),
|
10 |
+
'itemDefaults' => array(
|
11 |
+
'title' => n2_('Item defaults'),
|
12 |
+
'url' => array("settings/itemDefaults")
|
13 |
+
)
|
14 |
+
);
|
15 |
+
|
16 |
+
N2Plugin::callPlugin('ssgenerator', 'onSmartSliderConfigurationList', array(&$settings));
|
17 |
+
|
18 |
+
$dl = array();
|
19 |
+
|
20 |
+
foreach ($settings AS $id => $setting) {
|
21 |
+
$linkOptions = isset($setting['linkOptions']) ? $setting['linkOptions'] : array();
|
22 |
+
$linkOptions['href'] = $this->appType->router->createUrl($setting['url']);
|
23 |
+
$dl[] = array(
|
24 |
+
'title' => $setting['title'],
|
25 |
+
'class' => ($action == $id ? 'n2-active ' : ''),
|
26 |
+
'linkOptions' => $linkOptions
|
27 |
+
);
|
28 |
+
}
|
29 |
+
|
30 |
+
echo $this->widget->init("definitionlist", array(
|
31 |
+
"dl" => $dl
|
32 |
+
));
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/inline/_sidebar_slide.php
ADDED
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import("models.Layouts", "smartslider");
|
3 |
+
N2Loader::import("models.Layers", "smartslider");
|
4 |
+
N2Loader::import("models.Item", "smartslider");
|
5 |
+
?>
|
6 |
+
|
7 |
+
<div id="n2-ss-slide-sidebar" class="smartslider-slide-toolbox-slide-active smartslider-slide-layout-default-active">
|
8 |
+
<div id="n2-ss-slide-editor-main-tab" class="n2-table n2-table-fixed n2-sidebar-tab-switcher n2-sidebar-tab-bg">
|
9 |
+
<div class="n2-tr">
|
10 |
+
<div class="n2-td n2-h3 n2-uc n2-has-underline n2-slides-tab-label">
|
11 |
+
<span class="n2-underline"><?php n2_e('Slides'); ?></span>
|
12 |
+
</div>
|
13 |
+
|
14 |
+
<div style="<?php if (N2SSPRO) echo 'width:40%;'; ?>"
|
15 |
+
class="n2-td n2-h3 n2-uc n2-has-underline n2-layers-tab-label n2-active">
|
16 |
+
<span class="n2-underline"><?php n2_e('Layers'); ?></span>
|
17 |
+
</div>
|
18 |
+
<?php
|
19 |
+
?>
|
20 |
+
</div>
|
21 |
+
</div>
|
22 |
+
|
23 |
+
<div class="n2-slides-tab" style="display:none;">
|
24 |
+
<?php
|
25 |
+
$this->renderInline("_sliders");
|
26 |
+
?>
|
27 |
+
</div>
|
28 |
+
|
29 |
+
<div class="n2-layers-tab" style="display:block;">
|
30 |
+
|
31 |
+
<div id="smartslider-slide-toolbox-layer">
|
32 |
+
<?php
|
33 |
+
|
34 |
+
$class = 'N2SSPluginType' . $slider['type'];
|
35 |
+
|
36 |
+
N2Loader::importPath(call_user_func(array(
|
37 |
+
$class,
|
38 |
+
"getPath"
|
39 |
+
)) . NDS . 'type');
|
40 |
+
$itemDefaults = call_user_func(array(
|
41 |
+
'N2SmartSliderType' . $slider['type'],
|
42 |
+
'getItemDefaults'
|
43 |
+
));
|
44 |
+
?>
|
45 |
+
<script type="text/javascript">
|
46 |
+
window.ssitemmarker = true;
|
47 |
+
</script>
|
48 |
+
<div id="n2-ss-item-container" class="n2-sidebar-list-bg">
|
49 |
+
<?php
|
50 |
+
$items = array();
|
51 |
+
N2Plugin::callPlugin('ssitem', 'onNextendSliderItemList', array(&$items));
|
52 |
+
N2SSPluginItemAbstract::sortItems($items);
|
53 |
+
|
54 |
+
foreach ($items AS $type => $item) {
|
55 |
+
echo NHtml::tag('div', array(
|
56 |
+
'class' => 'n2-h5 n2-ss-core-item n2-ss-core-item-' . $type,
|
57 |
+
'data-layerproperties' => json_encode((object)array_merge($item[5], $itemDefaults)),
|
58 |
+
'data-item' => $type
|
59 |
+
), NHtml::tag('div', array(), $item[0]));
|
60 |
+
}
|
61 |
+
?>
|
62 |
+
</div>
|
63 |
+
<script type="text/javascript">
|
64 |
+
delete window.ssitemmarker;
|
65 |
+
</script>
|
66 |
+
|
67 |
+
<div id="n2-ss-layers-items-list">
|
68 |
+
<ul class="n2-list n2-h4 n2-list-orderable">
|
69 |
+
|
70 |
+
</ul>
|
71 |
+
</div>
|
72 |
+
|
73 |
+
<div class="n2-sidebar-pane-sizer">
|
74 |
+
<i class="n2-i n2-it n2-i-drag"></i>
|
75 |
+
</div>
|
76 |
+
|
77 |
+
<div id="layeritemeditorpanel" class="n2-form-dark">
|
78 |
+
<?php
|
79 |
+
|
80 |
+
$layerModel = new N2SmartsliderLayersModel();
|
81 |
+
$layerModel->renderForm();
|
82 |
+
?>
|
83 |
+
</div>
|
84 |
+
</div>
|
85 |
+
|
86 |
+
</div>
|
87 |
+
|
88 |
+
<?php
|
89 |
+
?>
|
90 |
+
|
91 |
+
|
92 |
+
<script type="text/javascript">
|
93 |
+
nextend.ready(function ($) {
|
94 |
+
new NextendHeadingPane($('#n2-ss-slide-editor-main-tab .n2-td'), [
|
95 |
+
$('.n2-slides-tab'),
|
96 |
+
$('.n2-layers-tab'),
|
97 |
+
$('.n2-layouts-tab')
|
98 |
+
]);
|
99 |
+
});
|
100 |
+
</script>
|
101 |
+
</div>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/inline/_sliders.php
ADDED
@@ -0,0 +1,215 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="n2-sidebar-inner">
|
2 |
+
<?php
|
3 |
+
N2Loader::import('libraries.browse.browse');
|
4 |
+
|
5 |
+
$app = N2Base::getApplication('smartslider');
|
6 |
+
$accessEdit = N2Acl::canDo('smartslider_edit', $app->info);
|
7 |
+
$accessDelete = N2Acl::canDo('smartslider_delete', $app->info);
|
8 |
+
|
9 |
+
$sliderid = N2Request::getInt('sliderid', 0);
|
10 |
+
$generatorId = N2Request::getInt('generator_id', 0);
|
11 |
+
$controller = N2Request::getCmd('nextendcontroller');
|
12 |
+
|
13 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
14 |
+
|
15 |
+
$showSlideManager = false;
|
16 |
+
$dl = array();
|
17 |
+
|
18 |
+
if (!$sliderid) {
|
19 |
+
|
20 |
+
$orderBy = N2SmartSliderSettings::get('slidersOrder', 'time');
|
21 |
+
$orderByDirection = N2SmartSliderSettings::get('slidersOrderDirection', 'DESC');
|
22 |
+
|
23 |
+
$actions = NHtml::tag('a', array(
|
24 |
+
"class" => 'n2-button n2-button-grey n2-button-medium' . ($orderBy == 'title' ? ' n2-active' : ''),
|
25 |
+
"href" => $this->appType->router->createUrl(array(
|
26 |
+
'sliders/orderby',
|
27 |
+
array(
|
28 |
+
'title' => ($orderBy == 'title' ? ($orderByDirection == 'ASC' ? 'DESC' : 'ASC') : 'ASC')
|
29 |
+
) + N2Form::tokenizeUrl()
|
30 |
+
))
|
31 |
+
), NHtml::tag('i', array('class' => 'n2-i n2-it n2-i-16' . ($orderBy == 'title' ? ($orderByDirection == 'ASC' ? ' n2-i-sortalphabetic1' : ' n2-i-sortalphabetic2') : ' n2-i-sortalphabetic1')), ''));
|
32 |
+
|
33 |
+
$actions .= NHtml::tag('a', array(
|
34 |
+
"class" => 'n2-button n2-button-grey n2-button-medium' . ($orderBy == 'time' ? ' n2-active' : ''),
|
35 |
+
"href" => $this->appType->router->createUrl(array(
|
36 |
+
'sliders/orderby',
|
37 |
+
array(
|
38 |
+
'time' => ($orderBy == 'time' ? ($orderByDirection == 'ASC' ? 'DESC' : 'ASC') : 'DESC')
|
39 |
+
) + N2Form::tokenizeUrl()
|
40 |
+
))
|
41 |
+
), NHtml::tag('i', array('class' => 'n2-i n2-it n2-i-16' . ($orderBy == 'time' ? ($orderByDirection == 'ASC' ? ' n2-i-sortdate1' : ' n2-i-sortdate2') : ' n2-i-sortdate2')), ''));
|
42 |
+
|
43 |
+
$dl[] = array(
|
44 |
+
'title' => '<span>' . n2_('SLIDER LIST') . '</span>',
|
45 |
+
'class' => 'n2-ss-slider-ordering n2-ss-slide2-list',
|
46 |
+
'tooltip' => null,
|
47 |
+
'actions' => $actions
|
48 |
+
);
|
49 |
+
$sliders = $slidersModel->getAll($orderBy, $orderByDirection);
|
50 |
+
} else {
|
51 |
+
// Show only one sliders's sidebar in this context
|
52 |
+
$sliders = array($slidersModel->get($sliderid));
|
53 |
+
}
|
54 |
+
|
55 |
+
if ($sliders) {
|
56 |
+
foreach ($sliders AS $slider) {
|
57 |
+
$active = $sliderid == $slider['id'];
|
58 |
+
$preUl = '';
|
59 |
+
if ($active) {
|
60 |
+
$showSlideManager = true;
|
61 |
+
ob_start();
|
62 |
+
$this->widget->init("buttonmenu", array(
|
63 |
+
"content" => NHtml::tag('div', array(
|
64 |
+
'class' => 'n2-button-menu'
|
65 |
+
), NHtml::tag('div', array(
|
66 |
+
'class' => 'n2-button-menu-inner n2-border-radius'
|
67 |
+
), NHtml::link(n2_('Add images'), '#', array(
|
68 |
+
'class' => 'n2-add-quick-image n2-h4'
|
69 |
+
)) . NHtml::link(n2_('Add video'), '#', array(
|
70 |
+
'class' => 'n2-add-quick-video n2-h4' . (N2Platform::$hasPosts ? '' : ' n2-separator')
|
71 |
+
)) . (N2Platform::$hasPosts ? NHtml::link(n2_('Add post'), '#', array(
|
72 |
+
'class' => 'n2-add-quick-post n2-h4'
|
73 |
+
)) : '') . NHtml::link(n2_('Create empty slide'), $app->router->createUrl(array(
|
74 |
+
"slides/create",
|
75 |
+
array(
|
76 |
+
"sliderid" => N2Request::getInt('sliderid'),
|
77 |
+
"static" => 0
|
78 |
+
)
|
79 |
+
)), array(
|
80 |
+
'class' => 'n2-h4 n2-separator'
|
81 |
+
)). NHtml::link(n2_('Create static slide'), $app->router->createUrl(array(
|
82 |
+
"slides/create",
|
83 |
+
array(
|
84 |
+
"sliderid" => N2Request::getInt('sliderid'),
|
85 |
+
"static" => 1
|
86 |
+
)
|
87 |
+
)), array(
|
88 |
+
'class' => 'n2-h4'
|
89 |
+
)) . NHtml::link(n2_('Create dynamic slides'), $app->router->createUrl(array(
|
90 |
+
"generator/create",
|
91 |
+
array(
|
92 |
+
"sliderid" => N2Request::getInt('sliderid')
|
93 |
+
)
|
94 |
+
)), array(
|
95 |
+
'class' => 'n2-h4'
|
96 |
+
))))
|
97 |
+
));
|
98 |
+
$buttonMenu = ob_get_clean();
|
99 |
+
|
100 |
+
ob_start();
|
101 |
+
$this->widget->init("buttonmenu", array(
|
102 |
+
"content" => NHtml::tag('div', array(
|
103 |
+
'class' => 'n2-button-menu'
|
104 |
+
), NHtml::tag('div', array(
|
105 |
+
'class' => 'n2-button-menu-inner n2-border-radius'
|
106 |
+
), NHtml::link(n2_('Select all'), '#', array(
|
107 |
+
'class' => 'n2-h4'
|
108 |
+
)) . NHtml::link(n2_('Select none'), '#', array(
|
109 |
+
'class' => 'n2-h4'
|
110 |
+
)) . NHtml::link(n2_('Select published'), '#', array(
|
111 |
+
'class' => 'n2-h4'
|
112 |
+
)) . NHtml::link(n2_('Select unpublished'), '#', array(
|
113 |
+
'class' => 'n2-h4'
|
114 |
+
))))
|
115 |
+
));
|
116 |
+
$selectButtonMenu = ob_get_clean();
|
117 |
+
|
118 |
+
ob_start();
|
119 |
+
$this->widget->init("buttonmenu", array(
|
120 |
+
"content" => NHtml::tag('div', array(
|
121 |
+
'class' => 'n2-button-menu'
|
122 |
+
), NHtml::tag('div', array(
|
123 |
+
'class' => 'n2-button-menu-inner n2-border-radius'
|
124 |
+
), NHtml::link(n2_('Duplicate'), '#', array(
|
125 |
+
'class' => 'n2-h4'
|
126 |
+
)) . NHtml::link(n2_('Publish'), '#', array(
|
127 |
+
'class' => 'n2-h4'
|
128 |
+
)) . NHtml::link(n2_('Unpublish'), '#', array(
|
129 |
+
'class' => 'n2-h4'
|
130 |
+
))))
|
131 |
+
));
|
132 |
+
$actionButtonMenu = ob_get_clean();
|
133 |
+
|
134 |
+
ob_start();
|
135 |
+
?>
|
136 |
+
<div class="n2-sidebar-list-bg n2-ss-slides-control">
|
137 |
+
<?php
|
138 |
+
echo NHtml::tag('div', array(
|
139 |
+
'class' => 'n2-button n2-button-big n2-button-grey n2-slides-bulk'
|
140 |
+
), NHtml::tag('i', array('class' => 'n2-i n2-i-bulk n2-it'), ''));
|
141 |
+
echo NHtml::tag('div', array('class' => 'n2-button n2-button-with-menu n2-button-big n2-button-green n2-slides-add'), NHtml::link(n2_('Add image slide'), '#', array(
|
142 |
+
'class' => 'n2-button-inner n2-add-quick-image n2-uc n2-h3'
|
143 |
+
)) . $buttonMenu);
|
144 |
+
|
145 |
+
echo NHtml::tag('div', array('class' => 'n2-button n2-button-with-menu n2-button-big n2-button-grey n2-bulk-select'), NHtml::link(n2_('Select'), '#', array(
|
146 |
+
'class' => 'n2-button-inner n2-uc n2-h4'
|
147 |
+
)) . $selectButtonMenu);
|
148 |
+
echo NHtml::tag('div', array('class' => 'n2-button n2-button-with-menu n2-button-big n2-button-grey n2-bulk-action'), NHtml::link(n2_('Delete'), '#', array(
|
149 |
+
'class' => 'n2-button-inner n2-uc n2-h4'
|
150 |
+
)) . $actionButtonMenu);
|
151 |
+
|
152 |
+
echo NHtml::tag('div', array(
|
153 |
+
'class' => 'n2-button n2-button-big n2-button-red n2-bulk-cancel n2-uc n2-h4'
|
154 |
+
), n2_('Cancel'));
|
155 |
+
?>
|
156 |
+
</div>
|
157 |
+
<?php
|
158 |
+
$preUl = ob_get_clean();
|
159 |
+
}
|
160 |
+
|
161 |
+
$actions = '';
|
162 |
+
if ($accessEdit) {
|
163 |
+
$actions .= NHtml::tag('a', array(
|
164 |
+
"href" => $this->appType->router->createUrl(array(
|
165 |
+
'slider/duplicate',
|
166 |
+
array(
|
167 |
+
'sliderid' => $slider["id"]
|
168 |
+
) + N2Form::tokenizeUrl()
|
169 |
+
))
|
170 |
+
), NHtml::tag('i', array('class' => 'n2-i n2-i-16 n2-i-duplicate n2-i-grey-opacity'), ''));
|
171 |
+
}
|
172 |
+
|
173 |
+
if ($accessDelete) {
|
174 |
+
$actions .= NHtml::tag('a', array(
|
175 |
+
"onclick" => "return NextendDeleteModalLink(this, 'slider-delete', " . json_encode($slider['title']) . ");",
|
176 |
+
"href" => $this->appType->router->createUrl(array(
|
177 |
+
'slider/delete',
|
178 |
+
array(
|
179 |
+
'sliderid' => $slider["id"]
|
180 |
+
) + N2Form::tokenizeUrl()
|
181 |
+
))
|
182 |
+
), NHtml::tag('i', array('class' => 'n2-i n2-i-16 n2-i-delete n2-i-grey-opacity'), ''));
|
183 |
+
}
|
184 |
+
|
185 |
+
$dl[] = array(
|
186 |
+
'title' => '<i class="n2-i n2-i-slider"></i><span>' . $slider['title'] . '</span><span class="n2-id n2-h5">#' . $slider['id'] . '</span>',
|
187 |
+
'link' => $this->appType->router->createUrl(array(
|
188 |
+
'slider/edit',
|
189 |
+
array(
|
190 |
+
'sliderid' => $slider["id"]
|
191 |
+
)
|
192 |
+
)),
|
193 |
+
'class' => 'n2-ss-slide2-list ' . ($active ? 'n2-open ' : '') . ($active && $controller == 'sliders' ? 'active ' : ''),
|
194 |
+
'preUl' => $preUl,
|
195 |
+
'tooltip' => null
|
196 |
+
/*,
|
197 |
+
'actions' => $actions*/,
|
198 |
+
'actions' => $actions
|
199 |
+
);
|
200 |
+
}
|
201 |
+
}
|
202 |
+
/**
|
203 |
+
* @see Definitionlist
|
204 |
+
*/
|
205 |
+
$this->widget->init("definitionlist", array(
|
206 |
+
"dl" => $dl
|
207 |
+
));
|
208 |
+
|
209 |
+
if ($showSlideManager) {
|
210 |
+
$this->renderInline("slidemanager", array(
|
211 |
+
'slider' => $slider
|
212 |
+
));
|
213 |
+
}
|
214 |
+
?>
|
215 |
+
</div>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/inline/font.php
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* User: David
|
4 |
+
* Date: 2014.06.10.
|
5 |
+
* Time: 9:52
|
6 |
+
*/
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/inline/sidebar/backgroundanimation.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="n2-sidebar-row n2-sidebar-header-bg n2-form-dark n2-sets-header">
|
2 |
+
<div class="n2-table">
|
3 |
+
<div class="n2-tr">
|
4 |
+
<div class="n2-td">
|
5 |
+
<div class="n2-h3 n2-uc"><?php n2_e('Set'); ?></div>
|
6 |
+
</div>
|
7 |
+
<div class="n2-td n2-manage-set">
|
8 |
+
<?php
|
9 |
+
$model->renderSetsForm();
|
10 |
+
?>
|
11 |
+
</div>
|
12 |
+
</div>
|
13 |
+
</div>
|
14 |
+
</div>
|
15 |
+
<div class="n2-lightbox-sidebar-list">
|
16 |
+
|
17 |
+
</div>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/inline/sidebar/layout.php
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="n2-sidebar-row n2-sidebar-header-bg n2-form-dark n2-sets-header">
|
2 |
+
<div class="n2-table">
|
3 |
+
<div class="n2-tr">
|
4 |
+
<div class="n2-td">
|
5 |
+
<div class="n2-h3 n2-uc"><?php n2_e('Set'); ?></div>
|
6 |
+
</div>
|
7 |
+
<div class="n2-td n2-manage-set">
|
8 |
+
<?php
|
9 |
+
$model->renderSetsForm();
|
10 |
+
?>
|
11 |
+
<div id="layoutset-manage"
|
12 |
+
class="n2-button n2-button-medium n2-button-grey n2-h5 n2-uc"><?php n2_e('Manage'); ?></div>
|
13 |
+
</div>
|
14 |
+
</div>
|
15 |
+
</div>
|
16 |
+
</div>
|
17 |
+
<?php
|
18 |
+
$ul = array();
|
19 |
+
|
20 |
+
$ul[] = array(
|
21 |
+
'class' => 'n2-button-container n2-save-as-new-container',
|
22 |
+
'contents' => NHtml::tag('a', array(
|
23 |
+
'class' => 'n2-button n2-button-big n2-button-green n2-uc n2-layout-save-as-new',
|
24 |
+
'href' => '#'
|
25 |
+
), n2_('Save as new layout')),
|
26 |
+
);
|
27 |
+
|
28 |
+
$this->widget->init("listn", array(
|
29 |
+
"ul" => $ul
|
30 |
+
));
|
31 |
+
?>
|
32 |
+
<div class="n2-lightbox-sidebar-list">
|
33 |
+
|
34 |
+
</div>
|
35 |
+
|
36 |
+
<?php
|
37 |
+
|
38 |
+
$sets = $model->getSets();
|
39 |
+
$setId = $sets[0]['id'];
|
40 |
+
|
41 |
+
$layouts = array();
|
42 |
+
$layouts[$setId] = $model->getVisuals($setId);
|
43 |
+
|
44 |
+
N2JS::addFirstCode("
|
45 |
+
new NextendLayoutManager({
|
46 |
+
setsIdentifier: '" . $model->type . "set',
|
47 |
+
sets: " . json_encode($sets) . ",
|
48 |
+
visuals: " . json_encode($layouts) . ",
|
49 |
+
ajaxUrl: '" . $this->appType->router->createAjaxUrl(array('layout/index')) . "'
|
50 |
+
});
|
51 |
+
");
|
52 |
+
|
53 |
+
?>
|
54 |
+
<div class="n2-sidebar-pane-sizer">
|
55 |
+
<i class="n2-i n2-it n2-i-drag"></i>
|
56 |
+
</div>
|
57 |
+
|
58 |
+
<div class="n2-sidebar-row n2-sidebar-header-bg n2-form-dark n2-sets-header">
|
59 |
+
<div class="n2-table">
|
60 |
+
<div class="n2-tr">
|
61 |
+
<div class="n2-td">
|
62 |
+
<div class="n2-h3 n2-uc"><?php n2_e('Local history'); ?></div>
|
63 |
+
</div>
|
64 |
+
</div>
|
65 |
+
</div>
|
66 |
+
</div>
|
67 |
+
<div class="n2-ss-history-list">
|
68 |
+
<ul class="n2-list n2-h4">
|
69 |
+
</ul>
|
70 |
+
</div>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/inline/slidemanager.php
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
3 |
+
$slides = $slidesModel->getAll($slider['id']);
|
4 |
+
$sliderObj = new N2SmartSlider($slider['id'], array());
|
5 |
+
?>
|
6 |
+
<div id="n2-ss-slides" class="<?php if (count($slides)) echo "n2-ss-has-slides"; ?>">
|
7 |
+
|
8 |
+
<div class="n2-ss-slides-container">
|
9 |
+
<?php
|
10 |
+
|
11 |
+
$parameters = array();
|
12 |
+
if (N2Platform::$isWordpress) {
|
13 |
+
$parameters['nonce'] = wp_create_nonce('internal-linking');
|
14 |
+
$parameters['wpAjaxUrl'] = admin_url('admin-ajax.php');
|
15 |
+
}
|
16 |
+
N2JS::addInline('new NextendSmartSliderAdminSidebarSlides("' . $this->appType->router->createAjaxUrl(array(
|
17 |
+
"slides/index",
|
18 |
+
array(
|
19 |
+
"sliderid" => $slider['id'],
|
20 |
+
)
|
21 |
+
)) . '","' . N2Base::getApplication('system')
|
22 |
+
->getApplicationType('backend')->router->createUrl("content/search") . '", ' . json_encode($parameters) . ', ' . (defined('N2_IMAGE_UPLOAD_DISABLE') ? 1 : 0) . ", '" . N2Base::getApplication('system')->router->createAjaxUrl(array('browse/upload')) . "', 'slider" . $slider['id'] . "');");
|
23 |
+
|
24 |
+
N2Localization::addJS(array(
|
25 |
+
'Add video',
|
26 |
+
'Video url',
|
27 |
+
'Examples',
|
28 |
+
'Add post',
|
29 |
+
'Keyword',
|
30 |
+
'No search term specified. Showing recent items.',
|
31 |
+
'Showing items match for "%s"',
|
32 |
+
'Select'
|
33 |
+
));
|
34 |
+
|
35 |
+
$slidesObj = array();
|
36 |
+
foreach ($slides AS $i => $slide) {
|
37 |
+
$slidesObj[$i] = new N2SmartSliderSlide($sliderObj, $slide);
|
38 |
+
$slidesObj[$i]->initGenerator();
|
39 |
+
}
|
40 |
+
|
41 |
+
foreach ($slidesObj AS $slideObj) {
|
42 |
+
$slideObj->fillSample();
|
43 |
+
echo N2SmartsliderSlidesModel::box($slideObj, $sliderObj, $this->widget, $this->appType);
|
44 |
+
}
|
45 |
+
?>
|
46 |
+
<a class="n2-box n2-box-slide-add n2-h3 n2-uc" href="#"><?php printf(n2_('SLIDE #%d'), 1); ?></a>
|
47 |
+
<a class="n2-box n2-box-slide-add n2-h3 n2-uc" href="#"><?php printf(n2_('SLIDE #%d'), 2); ?></a>
|
48 |
+
<a class="n2-box n2-box-slide-add n2-h3 n2-uc" href="#"><?php printf(n2_('SLIDE #%d'), 3); ?></a>
|
49 |
+
<a class="n2-box n2-box-slide-drag-upload n2-h3 n2-uc"
|
50 |
+
href="#"><?php echo n2_('Drop images to create slides'); ?></a>
|
51 |
+
|
52 |
+
<div class="n2-clear"></div>
|
53 |
+
</div>
|
54 |
+
</div>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/layouts/default.php
ADDED
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* @var $this N2Layout */
|
3 |
+
?>
|
4 |
+
|
5 |
+
<div id="n2-admin" class="n2 n2-border-radius">
|
6 |
+
|
7 |
+
<?php
|
8 |
+
$cmd = N2Request::getVar("nextendcontroller", "sliders");
|
9 |
+
/**
|
10 |
+
* @see Nav
|
11 |
+
*/
|
12 |
+
$views = array(
|
13 |
+
NHtml::tag('a', array(
|
14 |
+
'href' => $this->appType->router->createUrl("sliders/index"),
|
15 |
+
'class' => 'n2-h4 n2-uc ' . ($cmd == "sliders" ? "n2-active" : "")
|
16 |
+
), n2_('Sliders')),
|
17 |
+
NHtml::tag('a', array(
|
18 |
+
'href' => $this->appType->router->createUrl("settings/default"),
|
19 |
+
'class' => 'n2-h4 n2-uc ' . ($cmd == "settings" ? "n2-active" : "")
|
20 |
+
), n2_('Settings'))
|
21 |
+
);
|
22 |
+
$views[] = NHtml::tag('a', array(
|
23 |
+
'href' => N2SS3::getProUrlPricing(),
|
24 |
+
'target' => '_blank',
|
25 |
+
'class' => 'n2-h4 n2-uc '
|
26 |
+
), n2_('Go Pro!'));
|
27 |
+
|
28 |
+
$this->widget->init('nav', array(
|
29 |
+
'logoUrl' => $this->appType->router->createUrl("sliders/index"),
|
30 |
+
'logoImageUrl' => $this->appType->app->getLogo(),
|
31 |
+
'views' => $views,
|
32 |
+
'actions' => $this->getFragmentValue('actions')
|
33 |
+
));
|
34 |
+
?>
|
35 |
+
|
36 |
+
<div class="n2-table n2-table-fixed n2-content">
|
37 |
+
<div class="n2-tr">
|
38 |
+
<div class="n2-td n2-sidebar n2-sidebar-base-bg n2-border-radius-bl">
|
39 |
+
<?php
|
40 |
+
$this->renderFragmentBlock('nextend_sidebar', '_sliders');
|
41 |
+
?>
|
42 |
+
</div>
|
43 |
+
|
44 |
+
<div class="n2-td n2-content-base-bg n2-content-area n2-border-radius-br">
|
45 |
+
<!-- Begin Content -->
|
46 |
+
<?php
|
47 |
+
$this->renderFragmentBlock('nextend_content');
|
48 |
+
?>
|
49 |
+
<!-- End Content -->
|
50 |
+
</div>
|
51 |
+
</div>
|
52 |
+
</div>
|
53 |
+
<?php
|
54 |
+
N2Pluggable::doAction('afterApplicationContent');
|
55 |
+
?>
|
56 |
+
</div>
|
57 |
+
<?php
|
58 |
+
|
59 |
+
N2Message::show();
|
60 |
+
|
61 |
+
N2JS::addInline("new NextendExpertMode('smartslider', " . N2SSPRO . ");");
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/layouts/full.php
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* @var $this N2Layout */
|
3 |
+
?>
|
4 |
+
|
5 |
+
<div id="n2-admin" class="n2 n2-sidebar-hidden n2-border-radius">
|
6 |
+
|
7 |
+
<?php
|
8 |
+
/**
|
9 |
+
* @var $widget Nav
|
10 |
+
*/
|
11 |
+
$cmd = N2Request::getVar("nextendcontroller", "dashboard");
|
12 |
+
$this->widget->init('nav', array(
|
13 |
+
'logoUrl' => $this->appType->router->createUrl("dashboard/index"),
|
14 |
+
'logoImageUrl' => $this->appType->app->getLogo(),
|
15 |
+
'views' => array(
|
16 |
+
NHtml::tag('a', array(
|
17 |
+
'href' => $this->appType->router->createUrl("dashboard/index"),
|
18 |
+
'class' => 'n2-h4 n2-uc ' . ($cmd == "dashboard" ? "n2-active" : "")
|
19 |
+
), n2_('Dashboard')),
|
20 |
+
NHtml::tag('a', array(
|
21 |
+
'href' => $this->appType->router->createUrl("settings/index"),
|
22 |
+
'class' => 'n2-h4 n2-uc ' . ($cmd == "settings" ? "n2-active" : "")
|
23 |
+
), n2_('Settings'))
|
24 |
+
),
|
25 |
+
'actions' => $this->getFragmentValue('actions')
|
26 |
+
));
|
27 |
+
?>
|
28 |
+
|
29 |
+
<div class="n2-table n2-table-fixed n2-content">
|
30 |
+
<div class="n2-tr">
|
31 |
+
<div class="n2-td n2-content-base-bg">
|
32 |
+
<!-- Begin Content -->
|
33 |
+
<div class="n2-content-area n2-border-radius-br">
|
34 |
+
<?php
|
35 |
+
$this->renderFragmentBlock('nextend_content');
|
36 |
+
?>
|
37 |
+
</div>
|
38 |
+
<!-- End Content -->
|
39 |
+
</div>
|
40 |
+
</div>
|
41 |
+
</div>
|
42 |
+
|
43 |
+
</div>
|
44 |
+
<?php
|
45 |
+
|
46 |
+
N2Message::show();
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/layouts/lightbox.php
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
require(N2Base::getApplication('system')->getApplicationType('backend')->path . '/layouts/lightbox.php');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/layouts/preview.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* @var $this N2Layout */
|
3 |
+
?>
|
4 |
+
<div id="n2-admin" class="n2 n2-border-radius">
|
5 |
+
<?php
|
6 |
+
$this->renderFragmentBlock('nextend_content');
|
7 |
+
?>
|
8 |
+
</div>
|
9 |
+
<?php
|
10 |
+
N2JS::addInline("new NextendExpertMode('smartslider', " . N2SSPRO . ");");
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/layouts/sidebar.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* @var $this N2Layout */
|
3 |
+
?>
|
4 |
+
<div id="<?php echo $lightboxId; ?>">
|
5 |
+
<?php
|
6 |
+
$this->renderFragmentBlock('nextend_sidebar');
|
7 |
+
?>
|
8 |
+
</div>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/backgroundanimation/index.php
ADDED
@@ -0,0 +1,105 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $model N2SystemAnimationModel
|
4 |
+
*/
|
5 |
+
|
6 |
+
$sets = $model->getSets();
|
7 |
+
|
8 |
+
$backgroundAnimations = new stdClass();
|
9 |
+
N2JS::addFirstCode("
|
10 |
+
new NextendBackgroundAnimationManager({
|
11 |
+
setsIdentifier: '" . $model->type . "set',
|
12 |
+
sets: " . json_encode($sets) . ",
|
13 |
+
visuals: " . json_encode($backgroundAnimations) . ",
|
14 |
+
ajaxUrl: '" . $this->appType->router->createAjaxUrl(array('backgroundanimation/index')) . "'
|
15 |
+
});
|
16 |
+
");
|
17 |
+
?>
|
18 |
+
<div class="n2-form-tab ">
|
19 |
+
<div class="n2-heading-controls n2-content-box-title-bg">
|
20 |
+
<div class="n2-table n2-table-fixed">
|
21 |
+
<div class="n2-tr">
|
22 |
+
<div class="n2-td n2-h2">
|
23 |
+
<?php n2_e('Preview'); ?>
|
24 |
+
</div>
|
25 |
+
|
26 |
+
<div class="n2-td n2-last n2-visual-editor-tabs">
|
27 |
+
<div class="n2-form-element-radio-tab">
|
28 |
+
<div class="n2-radio-option n2-h4 n2-first n2-active">
|
29 |
+
<?php n2_e('Forward'); ?>
|
30 |
+
</div><!-- --><div class="n2-radio-option n2-h4 n2-last">
|
31 |
+
<?php n2_e('Backward'); ?>
|
32 |
+
</div>
|
33 |
+
<input type="hidden" autocomplete="off" value="0" name="n2-background-animation-preview-tabs"
|
34 |
+
id="n2-background-animation-preview-tabs">
|
35 |
+
</div>
|
36 |
+
</div>
|
37 |
+
</div>
|
38 |
+
</div>
|
39 |
+
</div>
|
40 |
+
|
41 |
+
<div>
|
42 |
+
<div class="n2-bg-animation-slider">
|
43 |
+
|
44 |
+
<div class="n2-bg-animation">
|
45 |
+
</div>
|
46 |
+
|
47 |
+
<div class="n2-bg-animation-slide">
|
48 |
+
<div class="n2-bg-animation-slide-bg">
|
49 |
+
<img
|
50 |
+
src="<?php echo N2ImageHelperAbstract::SVGToBase64('$system$/images/placeholder/image.svg'); ?>"/>
|
51 |
+
</div>
|
52 |
+
</div>
|
53 |
+
|
54 |
+
<div class="n2-bg-animation-slide" style="opacity: 0;">
|
55 |
+
<div class="n2-bg-animation-slide-bg">
|
56 |
+
<img
|
57 |
+
src="<?php echo N2ImageHelperAbstract::SVGToBase64('$system$/images/placeholder/imageback.svg'); ?>"/>
|
58 |
+
</div>
|
59 |
+
</div>
|
60 |
+
</div>
|
61 |
+
|
62 |
+
<style>
|
63 |
+
#n2-lightbox-backgroundanimation .n2-content-area {
|
64 |
+
overflow: hidden;
|
65 |
+
}
|
66 |
+
|
67 |
+
.n2-bg-animation-slider {
|
68 |
+
position: relative;
|
69 |
+
width: 770px;
|
70 |
+
height: 532px;
|
71 |
+
margin: 20px;
|
72 |
+
/*overflow: hidden;*/
|
73 |
+
z-index: 3;
|
74 |
+
}
|
75 |
+
|
76 |
+
.n2-bg-animation,
|
77 |
+
.n2-bg-animation-slide {
|
78 |
+
position: absolute;
|
79 |
+
left: 0;
|
80 |
+
top: 0;
|
81 |
+
width: 770px;
|
82 |
+
height: 532px;
|
83 |
+
}
|
84 |
+
|
85 |
+
.n2-bg-animation-slide {
|
86 |
+
z-index: 2;
|
87 |
+
}
|
88 |
+
|
89 |
+
.n2-bg-animation-slider img {
|
90 |
+
display: block;
|
91 |
+
width: 100%;
|
92 |
+
}
|
93 |
+
|
94 |
+
.n2-3d-side {
|
95 |
+
position: absolute;
|
96 |
+
left: 0;
|
97 |
+
top: 0;
|
98 |
+
overflow: hidden;
|
99 |
+
background: #333;
|
100 |
+
outline: 1px solid rgba(0, 0, 0, 0);
|
101 |
+
}
|
102 |
+
|
103 |
+
</style>
|
104 |
+
</div>
|
105 |
+
</div>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/backgroundanimation/topbar.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$this->widget->init('topbar', array(
|
3 |
+
"actions" => array(
|
4 |
+
NHtml::tag('a', array(
|
5 |
+
'href' => '#',
|
6 |
+
'id' => 'n2-backgroundanimation-editor-cancel',
|
7 |
+
'class' => 'n2-button n2-button-red n2-button-big n2-h4 n2-b n2-uc'
|
8 |
+
), n2_('Cancel')),
|
9 |
+
NHtml::tag('a', array(
|
10 |
+
'href' => '#',
|
11 |
+
'id' => 'n2-backgroundanimation-editor-save',
|
12 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
13 |
+
), n2_('Apply'))
|
14 |
+
),
|
15 |
+
'fixTo' => false
|
16 |
+
));
|
17 |
+
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/defaults/noaccess.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="n2-form-tab ">
|
2 |
+
<div class="n2-h2 n2-content-box-title-bg"><?php n2_e('Limited access'); ?></div>
|
3 |
+
|
4 |
+
<div class="n2-description">
|
5 |
+
<p><?php n2_e('Access to this resource not allowed!'); ?></p>
|
6 |
+
</div>
|
7 |
+
</div>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/generator/_view.php
ADDED
@@ -0,0 +1,180 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderBackendGeneratorView extends N2ViewBase
|
4 |
+
{
|
5 |
+
|
6 |
+
public static $sources;
|
7 |
+
|
8 |
+
public static function loadSources() {
|
9 |
+
if (!self::$sources) {
|
10 |
+
|
11 |
+
list($groups, $list) = N2SmartsliderGeneratorModel::getGenerators();
|
12 |
+
|
13 |
+
|
14 |
+
self::$sources = array(
|
15 |
+
'available' => array(),
|
16 |
+
'notavailable' => array()
|
17 |
+
);
|
18 |
+
foreach ($list AS $group => $sources) {
|
19 |
+
foreach ($sources AS $type => $info) {
|
20 |
+
/**
|
21 |
+
* @var $info N2GeneratorInfo
|
22 |
+
*/
|
23 |
+
if (is_object($info)) {
|
24 |
+
if (!$info->installed) {
|
25 |
+
if (!isset(self::$sources['notavailable'][$group])) {
|
26 |
+
self::$sources['notavailable'][$group] = array();
|
27 |
+
}
|
28 |
+
self::$sources['notavailable'][$group][$type] = $info;
|
29 |
+
} else {
|
30 |
+
if (!isset(self::$sources['available'][$group])) {
|
31 |
+
self::$sources['available'][$group] = array();
|
32 |
+
}
|
33 |
+
self::$sources['available'][$group][$type] = $info;
|
34 |
+
}
|
35 |
+
}
|
36 |
+
}
|
37 |
+
}
|
38 |
+
}
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* @param $list
|
43 |
+
*/
|
44 |
+
function _renderSourceList($list) {
|
45 |
+
foreach ($list AS $group => $sources) {
|
46 |
+
$this->renderGroupOption($group, $sources);
|
47 |
+
}
|
48 |
+
}
|
49 |
+
|
50 |
+
public function renderGroupOption($group, $sources) {
|
51 |
+
|
52 |
+
$button = false;
|
53 |
+
$buttons = array();
|
54 |
+
|
55 |
+
|
56 |
+
foreach ($sources AS $type => $info) {
|
57 |
+
/**
|
58 |
+
* @var $info N2GeneratorInfo
|
59 |
+
*/
|
60 |
+
|
61 |
+
if ($info->hasConfiguration) {
|
62 |
+
$buttons[$this->appType->router->createUrl(array(
|
63 |
+
"generator/checkConfiguration",
|
64 |
+
array(
|
65 |
+
"sliderid" => N2Request::getInt('sliderid'),
|
66 |
+
"group" => $group,
|
67 |
+
"type" => $type
|
68 |
+
)
|
69 |
+
))] = $info->title;
|
70 |
+
} elseif (!$info->installed) {
|
71 |
+
$button = NHtml::link(n2_("Visit site"), $info->readMore, array(
|
72 |
+
"target" => "_blank",
|
73 |
+
"class" => "n2-button n2-button-big n2-button-grey"
|
74 |
+
));
|
75 |
+
break;
|
76 |
+
} else {
|
77 |
+
$buttons[$this->appType->router->createUrl(array(
|
78 |
+
"generator/createSettings",
|
79 |
+
array(
|
80 |
+
"sliderid" => N2Request::getInt('sliderid'),
|
81 |
+
"group" => $group,
|
82 |
+
"type" => $type
|
83 |
+
)
|
84 |
+
))] = $info->title;
|
85 |
+
}
|
86 |
+
}
|
87 |
+
if (!$button && ($count = count($buttons))) {
|
88 |
+
if ($count == 1) {
|
89 |
+
reset($buttons);
|
90 |
+
$key = key($buttons);
|
91 |
+
$button = NHtml::link($buttons[$key], $key, array(
|
92 |
+
"class" => "n2-button n2-button-small n2-button-blue n2-h5"
|
93 |
+
));
|
94 |
+
} else {
|
95 |
+
$keys = array_keys($buttons);
|
96 |
+
$actions = array();
|
97 |
+
for ($i = 0; $i < count($keys); $i++) {
|
98 |
+
$actions[] = NHtml::link($buttons[$keys[$i]], $keys[$i], array(
|
99 |
+
'class' => 'n2-h4'
|
100 |
+
));
|
101 |
+
}
|
102 |
+
ob_start();
|
103 |
+
$this->widget->init("buttonmenu", array(
|
104 |
+
"content" => NHtml::tag('div', array(
|
105 |
+
'class' => 'n2-button-menu'
|
106 |
+
), NHtml::tag('div', array(
|
107 |
+
'class' => 'n2-button-menu-inner n2-border-radius'
|
108 |
+
), implode('', $actions)))
|
109 |
+
));
|
110 |
+
$buttonMenu = ob_get_clean();
|
111 |
+
$button = NHtml::tag('div', array('class' => 'n2-button n2-button-with-menu n2-button-small n2-h5 n2-button-blue'), NHtml::link($buttons[$keys[0]], $keys[0], array(
|
112 |
+
'class' => 'n2-button-inner'
|
113 |
+
)) . $buttonMenu);
|
114 |
+
}
|
115 |
+
}
|
116 |
+
|
117 |
+
|
118 |
+
$this->widget->init("box", array(
|
119 |
+
'attributes' => array(
|
120 |
+
'class' => 'n2-box-generator'
|
121 |
+
),
|
122 |
+
'image' => N2ImageHelper::fixed(N2Uri::pathToUri(N2Filesystem::translate($info->path . '/../dynamic.png'))),
|
123 |
+
'firstCol' => $button
|
124 |
+
));
|
125 |
+
}
|
126 |
+
|
127 |
+
public function _renderGroupOption($group, $sources) {
|
128 |
+
$options = array();
|
129 |
+
foreach ($sources AS $type => $info) {
|
130 |
+
/**
|
131 |
+
* @var $info N2GeneratorInfo
|
132 |
+
*/
|
133 |
+
$options[$type] = $info->title;
|
134 |
+
|
135 |
+
if ($info->hasConfiguration) {
|
136 |
+
$button = NHtml::link("Next", $this->appType->router->createUrl(array(
|
137 |
+
"generator/checkConfiguration",
|
138 |
+
array(
|
139 |
+
"sliderid" => N2Request::getInt('sliderid'),
|
140 |
+
"group" => $group
|
141 |
+
)
|
142 |
+
)), array(
|
143 |
+
"onclick" => "var el = n2(this); el.attr('href', el.attr('href') + '&type='+el.parents('.n2-box-placeholder').find('select').val());",
|
144 |
+
"class" => "n2-button n2-button-small n2-button-blue"
|
145 |
+
));
|
146 |
+
|
147 |
+
} elseif (!$info->installed) {
|
148 |
+
$button = NHtml::link("Check extension", $info->readMore, array(
|
149 |
+
"target" => "_blank",
|
150 |
+
"class" => "n2-button n2-button-small n2-button-grey"
|
151 |
+
));
|
152 |
+
} else {
|
153 |
+
$button = NHtml::link("Next", $this->appType->router->createUrl(array(
|
154 |
+
"generator/createSettings",
|
155 |
+
array(
|
156 |
+
"sliderid" => N2Request::getInt('sliderid'),
|
157 |
+
"group" => $group
|
158 |
+
)
|
159 |
+
)), array(
|
160 |
+
"onclick" => "var el = n2(this); el.attr('href', el.attr('href') + '&type='+el.parents('.n2-box-placeholder').find('select').val());",
|
161 |
+
"class" => "n2-button n2-button-small n2-button-blue"
|
162 |
+
));
|
163 |
+
}
|
164 |
+
}
|
165 |
+
$optionsHTML = '';
|
166 |
+
foreach ($options AS $k => $v) {
|
167 |
+
$optionsHTML .= NHtml::tag('option', array('value' => $k), $v);
|
168 |
+
}
|
169 |
+
|
170 |
+
echo NHtml::tag('div', array('class' => 'n2-box'), NHtml::image(N2Uri::pathToUri(N2Filesystem::translate($info->path . '/../dynamic.png'))) . NHtml::tag("div", array(
|
171 |
+
'class' => 'n2-box-placeholder'
|
172 |
+
), NHtml::tag("table", array(), NHtml::tag("tr", array(), NHtml::tag("td", array(
|
173 |
+
'class' => 'n2-box-label'
|
174 |
+
), NHtml::tag('select', array(
|
175 |
+
'name' => 'generator-type'
|
176 |
+
), $optionsHTML)) . NHtml::tag("td", array(
|
177 |
+
'class' => 'n2-box-button'
|
178 |
+
), $button)))));
|
179 |
+
}
|
180 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/generator/check_configuration.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$actions = array();
|
4 |
+
|
5 |
+
if (isset($slider)) {
|
6 |
+
$actions[] = NHtml::tag('a', array(
|
7 |
+
'href' => $this->appType->router->createUrl(array(
|
8 |
+
"generator/create",
|
9 |
+
array(
|
10 |
+
"sliderid" => $slider['id']
|
11 |
+
)
|
12 |
+
)),
|
13 |
+
'class' => 'n2-button n2-button-red n2-button-big n2-h4 n2-b n2-uc'
|
14 |
+
), n2_('Cancel'));
|
15 |
+
}
|
16 |
+
|
17 |
+
$actions[] = NHtml::tag('a', array(
|
18 |
+
'href' => '#',
|
19 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
20 |
+
'onclick' => 'return NextendForm.submit("#smartslider-form");'
|
21 |
+
), n2_('Save'));
|
22 |
+
|
23 |
+
$this->widget->init('topbar', array(
|
24 |
+
"actions" => $actions
|
25 |
+
));
|
26 |
+
|
27 |
+
?>
|
28 |
+
|
29 |
+
<form id="smartslider-form" action="" method="post">
|
30 |
+
<?php
|
31 |
+
echo $configuration->render();
|
32 |
+
?>
|
33 |
+
<input name="save" value="1" type="hidden"/>
|
34 |
+
</form>
|
35 |
+
<?php N2SS3::showBeacon(ucfirst(N2Request::getCmd('group')) . ' generator'); ?>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/generator/create.php
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $_class N2SmartsliderBackendGeneratorView
|
4 |
+
*/
|
5 |
+
N2SmartsliderBackendGeneratorView::loadSources();
|
6 |
+
?>
|
7 |
+
|
8 |
+
<div id="n2-tab-slide" class="n2-form-tab ">
|
9 |
+
<div class="n2-h2 n2-content-box-title-bg"><?php n2_e('Choose dynamic source'); ?></div>
|
10 |
+
<?php
|
11 |
+
$_class->_renderSourceList(N2SmartsliderBackendGeneratorView::$sources['available']);
|
12 |
+
?>
|
13 |
+
<div class="n2-clear"></div>
|
14 |
+
</div>
|
15 |
+
|
16 |
+
<?php if (count(N2SmartsliderBackendGeneratorView::$sources['notavailable'])): ?>
|
17 |
+
<div id="n2-tab-slide" class="n2-form-tab ">
|
18 |
+
<div class="n2-h2 n2-content-box-title-bg"><?php n2_e('Not installed'); ?></div>
|
19 |
+
<?php
|
20 |
+
$_class->_renderSourceList(N2SmartsliderBackendGeneratorView::$sources['notavailable']);
|
21 |
+
?>
|
22 |
+
<div class="n2-clear"></div>
|
23 |
+
</div>
|
24 |
+
<?php endif; ?>
|
25 |
+
|
26 |
+
<?php
|
27 |
+
?>
|
28 |
+
|
29 |
+
<div id="n2-tab-slide" class="n2-form-tab ">
|
30 |
+
<div class="n2-h2 n2-content-box-title-bg"><?php n2_e('Pro sources'); ?></div>
|
31 |
+
|
32 |
+
<div class="n2-description">
|
33 |
+
<?php
|
34 |
+
?>
|
35 |
+
<?php
|
36 |
+
?>
|
37 |
+
<?php
|
38 |
+
?>
|
39 |
+
<ul>
|
40 |
+
<li>Magento products</li>
|
41 |
+
<li>Images from folder</li>
|
42 |
+
<li>Facebook</li>
|
43 |
+
<li>Twitter</li>
|
44 |
+
<li>Instagram</li>
|
45 |
+
</ul>
|
46 |
+
<?php
|
47 |
+
|
48 |
+
?>
|
49 |
+
<?php
|
50 |
+
?>
|
51 |
+
</div>
|
52 |
+
</div>
|
53 |
+
<?php
|
54 |
+
|
55 |
+
?>
|
56 |
+
|
57 |
+
<?php
|
58 |
+
?>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/generator/create_settings.php
ADDED
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$this->widget->init('topbar', array(
|
3 |
+
"actions" => array(
|
4 |
+
NHtml::tag('a', array(
|
5 |
+
'href' => $this->appType->router->createUrl(array(
|
6 |
+
"slider/edit",
|
7 |
+
array(
|
8 |
+
"sliderid" => $slider['id']
|
9 |
+
)
|
10 |
+
)),
|
11 |
+
'class' => 'n2-button n2-button-red n2-button-big n2-h4 n2-b n2-uc'
|
12 |
+
), n2_('Cancel')),
|
13 |
+
NHtml::tag('a', array(
|
14 |
+
'href' => '#',
|
15 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
16 |
+
'onclick' => 'return NextendForm.submit("#smartslider-form");'
|
17 |
+
), n2_('Save'))
|
18 |
+
)
|
19 |
+
));
|
20 |
+
?>
|
21 |
+
|
22 |
+
<form id="smartslider-form" action="" method="post">
|
23 |
+
<?php
|
24 |
+
|
25 |
+
$group = N2Request::getCmd('group');
|
26 |
+
$type = N2Request::getCmd('type');
|
27 |
+
|
28 |
+
$generatorModel = new N2SmartsliderGeneratorModel();
|
29 |
+
|
30 |
+
$info = $generatorModel->getGeneratorInfo($group, $type);
|
31 |
+
$this->widget->init('heading', array(
|
32 |
+
'title' => $info->group . ' - ' . $info->title
|
33 |
+
));
|
34 |
+
|
35 |
+
$xml = $generatorModel->generatorSpecificForm($group, $type);
|
36 |
+
|
37 |
+
$generatorModel->generatorCommonForm();
|
38 |
+
?>
|
39 |
+
<input name="generator[group]" value="<?php echo $group; ?>" type="hidden"/>
|
40 |
+
<input name="generator[type]" value="<?php echo $type; ?>" type="hidden"/>
|
41 |
+
<input name="slider-id" value="<?php echo N2Request::getInt('sliderid'); ?>" type="hidden"/>
|
42 |
+
<input name="save" value="1" type="hidden"/>
|
43 |
+
</form>
|
44 |
+
<style>
|
45 |
+
#generatorrecords {
|
46 |
+
overflow: auto;
|
47 |
+
width: 100%;
|
48 |
+
}
|
49 |
+
|
50 |
+
#generatorrecords table div {
|
51 |
+
max-width: 200px;
|
52 |
+
max-height: 200px;
|
53 |
+
overflow: auto;
|
54 |
+
}
|
55 |
+
</style>
|
56 |
+
|
57 |
+
<?php
|
58 |
+
|
59 |
+
N2JS::addInline('new NextendSmartSliderGeneratorRecords("' . $this->appType->router->createAjaxUrl(array(
|
60 |
+
'generator/recordstable'
|
61 |
+
)) . '");');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/generator/edit.php
ADDED
@@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$this->widget->init('topbar', array(
|
3 |
+
"menu" => array(
|
4 |
+
NHtml::tag('a', array(
|
5 |
+
'id' => 'n2-ss-preview',
|
6 |
+
'href' => '#',
|
7 |
+
'class' => 'n2-h3 n2-uc n2-has-underline n2-button n2-button-blue n2-button-big',
|
8 |
+
'style' => 'font-size: 12px;'
|
9 |
+
), n2_('Preview'))
|
10 |
+
),
|
11 |
+
"actions" => array(
|
12 |
+
NHtml::tag('a', array(
|
13 |
+
'href' => $this->appType->router->createUrl(array(
|
14 |
+
"slider/edit",
|
15 |
+
array(
|
16 |
+
"sliderid" => N2Request::getInt('sliderid')
|
17 |
+
)
|
18 |
+
)),
|
19 |
+
'class' => 'n2-button n2-button-red n2-button-big n2-h4 n2-b n2-uc'
|
20 |
+
), n2_('Cancel')),
|
21 |
+
NHtml::tag('a', array(
|
22 |
+
'href' => '#',
|
23 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
24 |
+
'onclick' => 'return NextendForm.submit("#smartslider-form");'
|
25 |
+
), n2_('Save'))
|
26 |
+
)
|
27 |
+
));
|
28 |
+
?>
|
29 |
+
|
30 |
+
<form id="smartslider-form" action="" method="post">
|
31 |
+
<?php
|
32 |
+
$params = new N2Data($generator['params'], true);
|
33 |
+
|
34 |
+
$group = $generator['group'];
|
35 |
+
$type = $generator['type'];
|
36 |
+
|
37 |
+
$generatorModel = new N2SmartsliderGeneratorModel();
|
38 |
+
|
39 |
+
$info = $generatorModel->getGeneratorInfo($group, $type);
|
40 |
+
$this->widget->init('heading', array(
|
41 |
+
'title' => $info->group . ' - ' . $info->title
|
42 |
+
));
|
43 |
+
|
44 |
+
$xml = $generatorModel->generatorSpecificForm($group, $type, $params->toArray());
|
45 |
+
|
46 |
+
$slideParams = new N2Data($slide['params'], true);
|
47 |
+
$params->set('record-slides', $slideParams->get('record-slides', 1));
|
48 |
+
|
49 |
+
$generatorModel->generatorEditForm($params->toArray());
|
50 |
+
?>
|
51 |
+
<input name="save" value="1" type="hidden"/>
|
52 |
+
</form>
|
53 |
+
<style>
|
54 |
+
#generatorrecords {
|
55 |
+
overflow: auto;
|
56 |
+
width: 100%;
|
57 |
+
}
|
58 |
+
|
59 |
+
#generatorrecords table div {
|
60 |
+
max-width: 200px;
|
61 |
+
max-height: 200px;
|
62 |
+
overflow: auto;
|
63 |
+
}
|
64 |
+
</style>
|
65 |
+
<?php
|
66 |
+
|
67 |
+
N2JS::addInline('new NextendSmartSliderGeneratorRecords("' . $this->appType->router->createAjaxUrl(array(
|
68 |
+
'generator/recordstable',
|
69 |
+
array('generator_id' => $generator['id'])
|
70 |
+
)) . '");');
|
71 |
+
?>
|
72 |
+
<script type="text/javascript">
|
73 |
+
|
74 |
+
nextend.ready(
|
75 |
+
function ($) {
|
76 |
+
|
77 |
+
var form = $('#smartslider-form'),
|
78 |
+
formAction = form.attr('action'),
|
79 |
+
isPreview = false;
|
80 |
+
|
81 |
+
var modal = new NextendSimpleModal('<iframe name="n2-tab-preview" src="about:blank" style="width: 100%;height:100%;"></iframe>');
|
82 |
+
modal.modal.on('ModalHide', function () {
|
83 |
+
modal.modal.find('iframe').attr('src', 'about:blank');
|
84 |
+
$(window).trigger('SSPreviewHide');
|
85 |
+
});
|
86 |
+
|
87 |
+
$('#n2-ss-preview').on('click', function (e) {
|
88 |
+
isPreview = true;
|
89 |
+
e.preventDefault();
|
90 |
+
modal.show();
|
91 |
+
form.attr({
|
92 |
+
action: '<?php echo $this->appType->router->createUrl(array("preview/generator", N2Form::tokenizeUrl() + array('generator_id' => $generator['id'])))?>',
|
93 |
+
target: 'n2-tab-preview'
|
94 |
+
}).submit().attr({
|
95 |
+
action: formAction,
|
96 |
+
target: null
|
97 |
+
});
|
98 |
+
isPreview = false;
|
99 |
+
});
|
100 |
+
}
|
101 |
+
);
|
102 |
+
</script>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/layout/index.php
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/layout/topbar.php
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/preview/_preview.php
ADDED
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<style type="text/css">
|
2 |
+
|
3 |
+
#n2-admin {
|
4 |
+
margin: 0 !important;
|
5 |
+
}
|
6 |
+
|
7 |
+
.n2-form-tab {
|
8 |
+
margin: 0;
|
9 |
+
border: 0;
|
10 |
+
}
|
11 |
+
|
12 |
+
body,
|
13 |
+
.n2-form-tab {
|
14 |
+
background-color: #e9edf0;
|
15 |
+
}
|
16 |
+
|
17 |
+
<?php N2Platform::adminHideCSS(); ?>
|
18 |
+
</style>
|
19 |
+
|
20 |
+
<?php
|
21 |
+
|
22 |
+
N2JS::addFirstCode("
|
23 |
+
if(window.parent != window){
|
24 |
+
parentDocument = window.parent.n2(window.parent.document);
|
25 |
+
$(window).on('keydown keyup keypress', function(e){
|
26 |
+
if(e.keyCode == 27){
|
27 |
+
parentDocument.trigger(e);
|
28 |
+
}
|
29 |
+
});
|
30 |
+
}
|
31 |
+
|
32 |
+
var container = n2('.n2-ss-container-device'),
|
33 |
+
autoHeight = function(){
|
34 |
+
var minHeight = n2(window).height() - container.offset().top ;
|
35 |
+
container.css('height', 'auto');
|
36 |
+
if(container.height() < minHeight){
|
37 |
+
container.height(minHeight);
|
38 |
+
}
|
39 |
+
};
|
40 |
+
|
41 |
+
autoHeight();
|
42 |
+
n2(window).on('resize', autoHeight);
|
43 |
+
n2('.n2-ss-slider').on('SliderResize', autoHeight)
|
44 |
+
.data('ss').ready(autoHeight);
|
45 |
+
");
|
46 |
+
|
47 |
+
?>
|
48 |
+
|
49 |
+
|
50 |
+
<div class="n2-form-tab " style="display: block;">
|
51 |
+
<div class="n2-heading-controls n2-content-box-title-bg">
|
52 |
+
<div class="n2-table">
|
53 |
+
<div class="n2-tr">
|
54 |
+
<div class="n2-td n2-h2">
|
55 |
+
<?php
|
56 |
+
echo n2_('Preview');
|
57 |
+
?>
|
58 |
+
</div>
|
59 |
+
|
60 |
+
<div class="n2-td" id="n2-ss-zoom">
|
61 |
+
<div class="n2-ss-slider-zoom-container">
|
62 |
+
<i class="n2-i n2-i-minus"></i>
|
63 |
+
<i class="n2-i n2-i-plus"></i>
|
64 |
+
|
65 |
+
<div class="n2-ss-slider-zoom-bg"></div>
|
66 |
+
|
67 |
+
<div class="n2-ss-slider-zoom-1"></div>
|
68 |
+
|
69 |
+
<div id="n2-ss-slider-zoom"></div>
|
70 |
+
|
71 |
+
<div class="n2-expert" id="n2-ss-lock">
|
72 |
+
<i class="n2-i n2-i-unlock"></i>
|
73 |
+
</div>
|
74 |
+
</div>
|
75 |
+
</div>
|
76 |
+
|
77 |
+
<div class="n2-td" id="n2-ss-devices">
|
78 |
+
<div class="n2-controls-panel n2-table n2-table-auto">
|
79 |
+
<div class="n2-tr">
|
80 |
+
</div>
|
81 |
+
</div>
|
82 |
+
</div>
|
83 |
+
</div>
|
84 |
+
</div>
|
85 |
+
</div>
|
86 |
+
|
87 |
+
<div class="n2-ss-container-device">
|
88 |
+
<?php
|
89 |
+
echo $slider;
|
90 |
+
?>
|
91 |
+
</div>
|
92 |
+
|
93 |
+
<div class="n2-clear"></div>
|
94 |
+
</div>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/preview/_view.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class N2SmartsliderBackendPreviewView extends N2ViewBase
|
5 |
+
{
|
6 |
+
|
7 |
+
public function _renderSlider($sliderId, $extendSlider = array()) {
|
8 |
+
$slider = new N2SmartSliderManager($sliderId, false, array(
|
9 |
+
'disableResponsive' => true,
|
10 |
+
'extend' => $extendSlider,
|
11 |
+
'addDummySlidesIfEmpty' => true
|
12 |
+
));
|
13 |
+
return $slider->render();
|
14 |
+
}
|
15 |
+
|
16 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/preview/generator.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$slider = $_class->_renderSlider($sliderId, array(
|
3 |
+
'generatorData' => $generatorData
|
4 |
+
));
|
5 |
+
include(dirname(__FILE__) . '/_preview.php');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/preview/index.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$slider = $_class->_renderSlider($sliderId, array('sliderData' => $sliderData));
|
3 |
+
include(dirname(__FILE__) . '/_preview.php');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/preview/slide.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$slider = $_class->_renderSlider($sliderId, array(
|
3 |
+
'slidesData' => $slidesData
|
4 |
+
));
|
5 |
+
include(dirname(__FILE__) . '/_preview.php');
|
6 |
+
|
7 |
+
|
8 |
+
if (!empty($slidesData)) {
|
9 |
+
$slideId = key($slidesData);
|
10 |
+
if ($slideId > 0) {
|
11 |
+
?>
|
12 |
+
<script type="text/javascript">
|
13 |
+
n2ss.ready(<?php echo $sliderId; ?>, function (slider) {
|
14 |
+
slider.visible(function () {
|
15 |
+
slider.slideToID(<?php echo key($slidesData); ?>);
|
16 |
+
});
|
17 |
+
});
|
18 |
+
</script>
|
19 |
+
<?php
|
20 |
+
}
|
21 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/settings/_view.php
ADDED
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderBackendSettingsView extends N2ViewBase
|
4 |
+
{
|
5 |
+
|
6 |
+
public $xml;
|
7 |
+
public $viewName = 'default';
|
8 |
+
|
9 |
+
public function __set($name, $value) {
|
10 |
+
if (!is_null($name)) {
|
11 |
+
$this->$name = $value;
|
12 |
+
}
|
13 |
+
}
|
14 |
+
|
15 |
+
private function _renderForm() {
|
16 |
+
$settingsModel = new N2SmartsliderSettingsModel();
|
17 |
+
$settingsModel->form($this->viewName);
|
18 |
+
echo '<input name="namespace" value="' . $this->viewName . '" type="hidden" />';
|
19 |
+
}
|
20 |
+
|
21 |
+
public function _renderDefaultForm() {
|
22 |
+
$this->viewName = 'default';
|
23 |
+
$this->_renderForm();
|
24 |
+
}
|
25 |
+
|
26 |
+
public function renderDefaultsForm() {
|
27 |
+
|
28 |
+
$settings = array(
|
29 |
+
'font' => array(),
|
30 |
+
'style' => array()
|
31 |
+
);
|
32 |
+
N2Pluggable::doAction('smartsliderDefault', array(&$settings));
|
33 |
+
|
34 |
+
$xmlString = '<root>';
|
35 |
+
$this->defaultsAddTab($xmlString, $settings['font'], 'font', 'Font');
|
36 |
+
$this->defaultsAddTab($xmlString, $settings['style'], 'style', 'Style');
|
37 |
+
|
38 |
+
$xmlString .= '</root>';
|
39 |
+
|
40 |
+
$form = new N2Form();
|
41 |
+
$xml = simplexml_load_string($xmlString);
|
42 |
+
$form->setXML($xml);
|
43 |
+
$form->render('defaults');
|
44 |
+
}
|
45 |
+
|
46 |
+
public function defaultsAddTab(&$xml, $settings, $key, $label) {
|
47 |
+
$xml .= '<params name="' . $key . '" label="' . $label . '"><param type="token"/>';
|
48 |
+
foreach ($settings AS $field) {
|
49 |
+
$xml .= $field;
|
50 |
+
}
|
51 |
+
$xml .= '</params>';
|
52 |
+
}
|
53 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/settings/cache.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<h2>Cache</h2>
|
2 |
+
<?php
|
3 |
+
$buttons = array();
|
4 |
+
|
5 |
+
$buttons[] = array(
|
6 |
+
'title' => n2_('Clear sliders'),
|
7 |
+
'htmlOptions' => array(
|
8 |
+
'href' => $this->appType->router->createUrl(array(
|
9 |
+
'settings/cache',
|
10 |
+
array(
|
11 |
+
'refreshcache' => 1
|
12 |
+
)
|
13 |
+
))
|
14 |
+
),
|
15 |
+
'iconclass' => 'nii nii-24x42 nii-global-action-icon nii-refresh'
|
16 |
+
);
|
17 |
+
|
18 |
+
$buttons[] = array(
|
19 |
+
'title' => n2_('Clear generators'),
|
20 |
+
'htmlOptions' => array(
|
21 |
+
'href' => $this->appType->router->createUrl(array(
|
22 |
+
'settings/cache',
|
23 |
+
array(
|
24 |
+
'refreshcache' => 2
|
25 |
+
)
|
26 |
+
))
|
27 |
+
),
|
28 |
+
'iconclass' => 'nii nii-24x42 nii-global-action-icon nii-refresh'
|
29 |
+
);
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/settings/default.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $_class N2SmartsliderBackendSettingsView
|
4 |
+
*/
|
5 |
+
|
6 |
+
$this->widget->init('topbar', array(
|
7 |
+
"actions" => array(
|
8 |
+
NHtml::tag('a', array(
|
9 |
+
'href' => '#',
|
10 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
11 |
+
'onclick' => 'return NextendForm.submit("#smartslider-form");'
|
12 |
+
), n2_('Save'))
|
13 |
+
)
|
14 |
+
));
|
15 |
+
|
16 |
+
?>
|
17 |
+
|
18 |
+
<form id="smartslider-form" action="" method="post">
|
19 |
+
<?php
|
20 |
+
$_class->_renderDefaultForm();
|
21 |
+
?>
|
22 |
+
<input name="save" value="1" type="hidden"/>
|
23 |
+
</form>
|
24 |
+
<?php N2SS3::showBeacon('Global settings'); ?>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/settings/defaults.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $_class N2SmartsliderBackendSettingsView
|
4 |
+
*/
|
5 |
+
|
6 |
+
$this->widget->init('topbar', array(
|
7 |
+
"actions" => array(
|
8 |
+
NHtml::tag('a', array(
|
9 |
+
'href' => '#',
|
10 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
11 |
+
'onclick' => 'return NextendForm.submit("#n2-form");'
|
12 |
+
), n2_('Save'))
|
13 |
+
)
|
14 |
+
));
|
15 |
+
?>
|
16 |
+
<form id="n2-form" action="" method="post">
|
17 |
+
<?php
|
18 |
+
$_class->renderDefaultsForm();
|
19 |
+
?>
|
20 |
+
<input name="save" value="1" type="hidden"/>
|
21 |
+
</form>
|
22 |
+
<?php N2SS3::showBeacon('Item defaults'); ?>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/slider/_slider_edit.php
ADDED
@@ -0,0 +1,140 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $_class N2SmartsliderBackendSliderView
|
4 |
+
*/
|
5 |
+
|
6 |
+
// Background animations are required for simple type. We need to load the lightbox, because it is not working over AJAX slider type change.
|
7 |
+
N2Loader::import('libraries.backgroundanimation.manager', 'smartslider');
|
8 |
+
N2Loader::import('libraries.postbackgroundanimation.manager', 'smartslider');
|
9 |
+
|
10 |
+
$menu[] = NHtml::tag('a', array(
|
11 |
+
'id' => 'n2-ss-preview',
|
12 |
+
'href' => '#',
|
13 |
+
'class' => 'n2-h3 n2-uc n2-has-underline n2-button n2-button-blue n2-button-big',
|
14 |
+
'style' => 'font-size: 12px;'
|
15 |
+
), n2_('Preview'));
|
16 |
+
|
17 |
+
$this->widget->init('topbar', array(
|
18 |
+
/*'back' => $back,*/
|
19 |
+
'menu' => $menu,
|
20 |
+
"actions" => array(
|
21 |
+
NHtml::tag('a', array(
|
22 |
+
'href' => $this->appType->router->createUrl(array(
|
23 |
+
"sliders/index"
|
24 |
+
)),
|
25 |
+
'onclick' => 'return nextend.cancel(this.href);',
|
26 |
+
'class' => 'n2-button n2-button-red n2-button-big n2-h4 n2-b n2-uc',
|
27 |
+
), n2_('Cancel')),
|
28 |
+
NHtml::tag('a', array(
|
29 |
+
'href' => '#',
|
30 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
31 |
+
'onclick' => 'return NextendForm.submit("#smartslider-form");'
|
32 |
+
), n2_('Save'))
|
33 |
+
)
|
34 |
+
));
|
35 |
+
$this->widget->init('heading', array(
|
36 |
+
'title' => $slider['title'],
|
37 |
+
'actions' => $_class->getDashboardButtons($slider)
|
38 |
+
));
|
39 |
+
?>
|
40 |
+
<script type="text/javascript">
|
41 |
+
function selectText(container) {
|
42 |
+
if (document.selection) {
|
43 |
+
var range = document.body.createTextRange();
|
44 |
+
range.moveToElementText(container);
|
45 |
+
range.select();
|
46 |
+
} else if (window.getSelection) {
|
47 |
+
var range = document.createRange();
|
48 |
+
range.selectNode(container);
|
49 |
+
window.getSelection().addRange(range);
|
50 |
+
}
|
51 |
+
return false;
|
52 |
+
}
|
53 |
+
</script>
|
54 |
+
|
55 |
+
<div class="n2-form-tab " style="display: block;">
|
56 |
+
<?php
|
57 |
+
echo NHtml::tag('div', array('class' => 'n2-h2 n2-content-box-title-bg'), n2_('Publish slider'));
|
58 |
+
|
59 |
+
$this->renderInlineInNamespace("publish", 'backend.inline', 'smartslider.platform', array(
|
60 |
+
'sliderid' => $slider['id']
|
61 |
+
));
|
62 |
+
|
63 |
+
?>
|
64 |
+
|
65 |
+
</div>
|
66 |
+
|
67 |
+
<script type="text/javascript">
|
68 |
+
nextend.ready(
|
69 |
+
function ($) {
|
70 |
+
|
71 |
+
var form = $('#smartslider-form'),
|
72 |
+
formAction = form.attr('action'),
|
73 |
+
headings = $('.n2-top-bar-menu .n2-tab-heading');
|
74 |
+
|
75 |
+
var modal = new NextendSimpleModal('<iframe name="n2-tab-preview" src="about:blank" style="width: 100%;height:100%;"></iframe>');
|
76 |
+
modal.modal.on('ModalHide', function () {
|
77 |
+
modal.modal.find('iframe').attr('src', 'about:blank');
|
78 |
+
$(window).trigger('SSPreviewHide');
|
79 |
+
});
|
80 |
+
|
81 |
+
var isPreview = false;
|
82 |
+
|
83 |
+
n2('#smartslider-form').on('submit', function (e) {
|
84 |
+
if (!isPreview) {
|
85 |
+
e.preventDefault();
|
86 |
+
nextend.askToSave = false;
|
87 |
+
NextendAjaxHelper.ajax({
|
88 |
+
type: 'POST',
|
89 |
+
url: NextendAjaxHelper.makeAjaxUrl(window.location.href),
|
90 |
+
data: $('#smartslider-form').serialize(),
|
91 |
+
dataType: 'json'
|
92 |
+
}).done(function () {
|
93 |
+
$('.n2-heading-bar .n2-heading').html($('#slidertitle').val());
|
94 |
+
$('dt.n2-ss-slide2-list > a > span').eq(0).html($('#slidertitle').val());
|
95 |
+
nextend.askToSave = true;
|
96 |
+
n2('#smartslider-form').trigger('saved');
|
97 |
+
});
|
98 |
+
}
|
99 |
+
});
|
100 |
+
|
101 |
+
$('#n2-ss-preview').on('click', function (e) {
|
102 |
+
isPreview = true;
|
103 |
+
e.preventDefault();
|
104 |
+
modal.show();
|
105 |
+
form.attr({
|
106 |
+
action: '<?php echo $this->appType->router->createUrl(array("preview/index", N2Form::tokenizeUrl() + array('sliderid' => $slider['id'])))?>',
|
107 |
+
target: 'n2-tab-preview'
|
108 |
+
}).submit().attr({
|
109 |
+
action: formAction,
|
110 |
+
target: null
|
111 |
+
});
|
112 |
+
isPreview = false;
|
113 |
+
});
|
114 |
+
|
115 |
+
|
116 |
+
new NextendHeadingScrollToPane(headings, [
|
117 |
+
$('#n2-tab-slider, #n2-tab-slider-size, #n2-tab-slider-size-tablet, #n2-tab-slider-size-mobile, #n2-tab-slider-responsive, #nextend-responsive-mode-panel, #n2-tab-slides, #n2-tab-slider-layer, #n2-tab-autoplay, #n2-tab-slider-advanced'),
|
118 |
+
$('#n2-tab-widgets'),
|
119 |
+
$('#n2-tab-slider-responsive')
|
120 |
+
], 'ss-slider-edit');
|
121 |
+
|
122 |
+
|
123 |
+
$('#n2-form-matrix-slider-settings .n2-form-matrix-views').fixTo('#n2-form-matrix-slider-settings', {
|
124 |
+
top: $('#wpadminbar, .navbar-fixed-top').height() + $('.n2-main-top-bar').height()
|
125 |
+
});
|
126 |
+
|
127 |
+
$('#n2-form-matrix-sliderwidgets .n2-form-matrix-views').fixTo('#n2-form-matrix-sliderwidgets', {
|
128 |
+
top: $('#wpadminbar, .navbar-fixed-top').height() + $('.n2-main-top-bar').height()
|
129 |
+
});
|
130 |
+
}
|
131 |
+
);
|
132 |
+
</script>
|
133 |
+
|
134 |
+
<form id="smartslider-form" action="" method="post">
|
135 |
+
<?php
|
136 |
+
$_class->renderForm($slider);
|
137 |
+
?>
|
138 |
+
<input name="save" value="1" type="hidden"/>
|
139 |
+
</form>
|
140 |
+
<?php N2SS3::showBeacon('Slider settings'); ?>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/slider/_view.php
ADDED
@@ -0,0 +1,111 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class N2SmartsliderBackendSliderView extends N2ViewBase
|
5 |
+
{
|
6 |
+
|
7 |
+
public function _renderSlider($sliderId, $responsive = 'auto') {
|
8 |
+
|
9 |
+
$slider = new N2SmartSliderManager($sliderId, false, array(
|
10 |
+
'disableResponsive' => true,
|
11 |
+
'addDummySlidesIfEmpty' => true
|
12 |
+
));
|
13 |
+
echo $slider->render();
|
14 |
+
}
|
15 |
+
|
16 |
+
public function _renderSliderCached($sliderId, $responsive = 'auto') {
|
17 |
+
|
18 |
+
$slider = new N2SmartSliderManager($sliderId, false, array(
|
19 |
+
'disableResponsive' => true
|
20 |
+
));
|
21 |
+
echo $slider->render(true);
|
22 |
+
}
|
23 |
+
|
24 |
+
public function renderForm($slider) {
|
25 |
+
|
26 |
+
|
27 |
+
$values = N2SmartsliderSlidersModel::renderEditForm($slider);
|
28 |
+
|
29 |
+
// Used by AJAX widget subforms
|
30 |
+
N2JS::addFirstCode("
|
31 |
+
new NextendForm(
|
32 |
+
'smartslider-form',
|
33 |
+
'" . $this->appType->router->createAjaxUrl(array(
|
34 |
+
'slider/edit',
|
35 |
+
array('sliderid' => $slider['id'])
|
36 |
+
)) . "',
|
37 |
+
" . json_encode($values) . "
|
38 |
+
);
|
39 |
+
");
|
40 |
+
|
41 |
+
}
|
42 |
+
|
43 |
+
public function getDashboardButtons($slider) {
|
44 |
+
$sliderid = $slider['id'];
|
45 |
+
|
46 |
+
$app = N2Base::getApplication('smartslider');
|
47 |
+
$accessEdit = N2Acl::canDo('smartslider_edit', $app->info);
|
48 |
+
$accessDelete = N2Acl::canDo('smartslider_delete', $app->info);
|
49 |
+
|
50 |
+
$buttons = '';
|
51 |
+
|
52 |
+
if ($accessEdit) {
|
53 |
+
$buttons .= NHtml::tag('a', array(
|
54 |
+
'data-label' => n2_('Clear slider cache'),
|
55 |
+
'href' => $this->appType->router->createUrl(array(
|
56 |
+
'slider/clearcache',
|
57 |
+
array(
|
58 |
+
'sliderid' => $sliderid
|
59 |
+
) + N2Form::tokenizeUrl()
|
60 |
+
))
|
61 |
+
), NHtml::tag('i', array('class' => 'n2-i n2-i-a-refresh')));
|
62 |
+
|
63 |
+
$buttons .= NHtml::tag('a', array(
|
64 |
+
'data-label' => n2_('Export slider as HTML'),
|
65 |
+
'href' => $this->appType->router->createUrl(array(
|
66 |
+
'slider/exporthtml',
|
67 |
+
array(
|
68 |
+
'sliderid' => $sliderid,
|
69 |
+
) + N2Form::tokenizeUrl()
|
70 |
+
))
|
71 |
+
), NHtml::tag('i', array('class' => 'n2-i n2-i-a-html')));
|
72 |
+
|
73 |
+
$buttons .= NHtml::tag('a', array(
|
74 |
+
'data-label' => n2_('Export'),
|
75 |
+
'href' => $this->appType->router->createUrl(array(
|
76 |
+
'slider/export',
|
77 |
+
array(
|
78 |
+
'sliderid' => $sliderid,
|
79 |
+
) + N2Form::tokenizeUrl()
|
80 |
+
))
|
81 |
+
), NHtml::tag('i', array('class' => 'n2-i n2-i-a-export')));
|
82 |
+
|
83 |
+
$buttons .= NHtml::tag('a', array(
|
84 |
+
'data-label' => n2_('Duplicate slider'),
|
85 |
+
'href' => $this->appType->router->createUrl(array(
|
86 |
+
'slider/duplicate',
|
87 |
+
array(
|
88 |
+
'sliderid' => $sliderid,
|
89 |
+
) + N2Form::tokenizeUrl()
|
90 |
+
))
|
91 |
+
), NHtml::tag('i', array('class' => 'n2-i n2-i-a-duplicate')));
|
92 |
+
|
93 |
+
}
|
94 |
+
|
95 |
+
if ($accessDelete) {
|
96 |
+
$buttons .= NHtml::tag('a', array(
|
97 |
+
'data-label' => n2_('Delete slider'),
|
98 |
+
"onclick" => "return NextendDeleteModalLink(this, 'slider-delete', " . json_encode($slider['title']) . ");",
|
99 |
+
'href' => $this->appType->router->createUrl(array(
|
100 |
+
'slider/delete',
|
101 |
+
array(
|
102 |
+
'sliderid' => $sliderid,
|
103 |
+
) + N2Form::tokenizeUrl()
|
104 |
+
))
|
105 |
+
), NHtml::tag('i', array('class' => 'n2-i n2-i-a-delete')));
|
106 |
+
}
|
107 |
+
|
108 |
+
return $buttons;
|
109 |
+
}
|
110 |
+
|
111 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/slider/cachedslider.php
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $_class N2SmartsliderBackendSliderView
|
4 |
+
*/
|
5 |
+
?>
|
6 |
+
|
7 |
+
|
8 |
+
<div class="n2-form-tab " style="display: block;">
|
9 |
+
<div class="n2-heading-controls n2-content-box-title-bg">
|
10 |
+
<div class="n2-table">
|
11 |
+
<div class="n2-tr">
|
12 |
+
<div class="n2-td n2-h2">
|
13 |
+
<?php
|
14 |
+
echo n2_('Live Preview');
|
15 |
+
?>
|
16 |
+
</div>
|
17 |
+
|
18 |
+
<div class="n2-td" id="n2-ss-zoom">
|
19 |
+
<div class="n2-ss-slider-zoom-container">
|
20 |
+
<i class="n2-i n2-i-minus"></i>
|
21 |
+
<i class="n2-i n2-i-plus"></i>
|
22 |
+
|
23 |
+
<div class="n2-ss-slider-zoom-bg"></div>
|
24 |
+
|
25 |
+
<div class="n2-ss-slider-zoom-1"></div>
|
26 |
+
|
27 |
+
<div id="n2-ss-slider-zoom"></div>
|
28 |
+
|
29 |
+
<div class="n2-expert" id="n2-ss-lock">
|
30 |
+
<i class="n2-i n2-i-unlock"></i>
|
31 |
+
</div>
|
32 |
+
</div>
|
33 |
+
</div>
|
34 |
+
|
35 |
+
<div class="n2-td" id="n2-ss-devices">
|
36 |
+
<div class="n2-controls-panel n2-table n2-table-auto">
|
37 |
+
<div class="n2-tr">
|
38 |
+
</div>
|
39 |
+
</div>
|
40 |
+
</div>
|
41 |
+
</div>
|
42 |
+
</div>
|
43 |
+
</div>
|
44 |
+
|
45 |
+
<div style="margin: 20px; min-height: 1200px;">
|
46 |
+
<?php
|
47 |
+
echo $_class->_renderSliderCached($slider['id'], true);
|
48 |
+
?>
|
49 |
+
</div>
|
50 |
+
</div>
|
51 |
+
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/slider/edit.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $_class N2SmartsliderBackendSliderView
|
4 |
+
*/
|
5 |
+
$title = $slider['title'];
|
6 |
+
|
7 |
+
include dirname(__FILE__) . '/_slider_edit.php';
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/sliders/_view.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class N2SmartsliderBackendSlidersView extends N2ViewBase
|
5 |
+
{
|
6 |
+
|
7 |
+
public function renderImportByUploadForm() {
|
8 |
+
|
9 |
+
N2SmartsliderSlidersModel::renderImportByUploadForm();
|
10 |
+
}
|
11 |
+
|
12 |
+
public function renderImportFromServerForm() {
|
13 |
+
|
14 |
+
N2SmartsliderSlidersModel::renderImportFromServerForm();
|
15 |
+
}
|
16 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/sliders/importByUpload.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$this->widget->init('topbar', array(
|
4 |
+
"actions" => array(
|
5 |
+
NHtml::tag('a', array(
|
6 |
+
'href' => $this->appType->router->createUrl(array('sliders/index')),
|
7 |
+
'class' => 'n2-button n2-button-red n2-button-big n2-h4 n2-b n2-uc'
|
8 |
+
), n2_('Cancel')),
|
9 |
+
NHtml::tag('a', array(
|
10 |
+
'href' => '#',
|
11 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
12 |
+
'onclick' => 'return NextendForm.submit("#smartslider-form");'
|
13 |
+
), n2_('Import'))
|
14 |
+
)
|
15 |
+
));
|
16 |
+
?>
|
17 |
+
|
18 |
+
<form id="smartslider-form" enctype="multipart/form-data" action="" method="post">
|
19 |
+
<?php
|
20 |
+
$_class->renderImportByUploadForm();
|
21 |
+
?>
|
22 |
+
<input name="save" value="1" type="hidden"/>
|
23 |
+
</form>
|
24 |
+
|
25 |
+
<div class="n2-form ">
|
26 |
+
<div class="n2-form-tab ">
|
27 |
+
<div class="n2-h2 n2-content-box-title-bg"><?php n2_e('Instructions'); ?></div>
|
28 |
+
|
29 |
+
<div class="n2-description">
|
30 |
+
<p><?php n2_e('You can upload the files which exported by Smart Slider 3.'); ?></p>
|
31 |
+
|
32 |
+
<p><?php printf(n2_('Your server has an upload file limit at %s, so if you have bigger export file, please use the <a href="%s">alternate method</a>.'), @ini_get('post_max_size'), $this->appType->router->createUrl(array('sliders/importFromServer'))); ?></p>
|
33 |
+
</div>
|
34 |
+
</div>
|
35 |
+
</div>
|
36 |
+
<?php N2SS3::showBeacon('Import slider'); ?>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/sliders/importFromServer.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$this->widget->init('topbar', array(
|
4 |
+
"actions" => array(
|
5 |
+
NHtml::tag('a', array(
|
6 |
+
'href' => $this->appType->router->createUrl(array('sliders/index')),
|
7 |
+
'class' => 'n2-button n2-button-red n2-button-big n2-h4 n2-b n2-uc'
|
8 |
+
), n2_('Cancel')),
|
9 |
+
NHtml::tag('a', array(
|
10 |
+
'href' => '#',
|
11 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
12 |
+
'onclick' => 'return NextendForm.submit("#smartslider-form");'
|
13 |
+
), n2_('Import'))
|
14 |
+
)
|
15 |
+
));
|
16 |
+
?>
|
17 |
+
<form id="smartslider-form" action="" method="post">
|
18 |
+
<?php
|
19 |
+
$_class->renderImportFromServerForm();
|
20 |
+
?>
|
21 |
+
<input name="save" value="1" type="hidden"/>
|
22 |
+
</form>
|
23 |
+
|
24 |
+
<div class="n2-form ">
|
25 |
+
<div class="n2-form-tab ">
|
26 |
+
<div class="n2-h2 n2-content-box-title-bg"><?php n2_e('Instructions'); ?></div>
|
27 |
+
|
28 |
+
<div class="n2-description">
|
29 |
+
<p><?php printf(n2_('Smart Slider export files are listed from the directory only with <i>ss3</i> extension: %s'), N2Platform::getPublicDir()); ?>
|
30 |
+
</p>
|
31 |
+
</div>
|
32 |
+
</div>
|
33 |
+
</div>
|
34 |
+
<?php N2SS3::showBeacon('Import slider'); ?>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/sliders/index.php
ADDED
@@ -0,0 +1,128 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $this N2View
|
4 |
+
* @var $_class N2SmartsliderBackendSlidersView
|
5 |
+
*/
|
6 |
+
|
7 |
+
$this->widget->init('topbar', array());
|
8 |
+
?>
|
9 |
+
<div class="n2-ss-dashboard">
|
10 |
+
<div class="n2-box n2-box-border n2-box-huge n2-ss-create-slider">
|
11 |
+
<img src="<?php echo N2ImageHelper::fixed('$ss$/admin/images/create-slider.png') ?>">
|
12 |
+
|
13 |
+
<div class="n2-box-placeholder">
|
14 |
+
<table>
|
15 |
+
<tbody>
|
16 |
+
<tr>
|
17 |
+
<td class="n2-box-button">
|
18 |
+
<div class="n2-h2"><?php n2_e('It\'s a great day to start something new.'); ?></div>
|
19 |
+
|
20 |
+
<div
|
21 |
+
class="n2-h3"><?php n2_e('Click on the \'Create Slider\' button to get started.'); ?></div>
|
22 |
+
<a href="#"
|
23 |
+
class="n2-button n2-button-x-big n2-button-green n2-uc n2-h3 n2-ss-create-slider"><?php n2_e('Create slider'); ?></a>
|
24 |
+
</td>
|
25 |
+
</tr>
|
26 |
+
</tbody>
|
27 |
+
</table>
|
28 |
+
</div>
|
29 |
+
</div>
|
30 |
+
|
31 |
+
<?php
|
32 |
+
|
33 |
+
function n2GetBox($class, $image, $html, $hasBorder = true) {
|
34 |
+
echo NHtml::tag('div', array(
|
35 |
+
'class' => 'n2-box n2-box-title ' . $class . ($hasBorder ? ' n2-box-border' : '')
|
36 |
+
), NHtml::image(N2ImageHelper::fixed('$ss$/admin/images/' . $image)) . NHtml::tag("div", array(
|
37 |
+
'class' => 'n2-box-placeholder'
|
38 |
+
), NHtml::tag("table", array(), NHtml::tag("tr", array(), NHtml::tag("td", array(
|
39 |
+
'class' => 'n2-box-button'
|
40 |
+
), $html)))));
|
41 |
+
}
|
42 |
+
|
43 |
+
n2GetBox('n2-ss-demo-slider', 'add-demo.png', '<div>' . n2_('100+ Sample slide with one click.') . '</div><a href="#" class="n2-button n2-button-small n2-button-green n2-uc n2-h5">' . n2_('add sample slider') . '</a>');
|
44 |
+
|
45 |
+
ob_start();
|
46 |
+
$this->widget->init("buttonmenu", array(
|
47 |
+
"content" => NHtml::tag('div', array(
|
48 |
+
'class' => 'n2-button-menu'
|
49 |
+
), NHtml::tag('div', array(
|
50 |
+
'class' => 'n2-button-menu-inner n2-border-radius'
|
51 |
+
), NHtml::link(n2_('Import by upload'), $this->appType->router->createUrl(array('sliders/importbyupload')), array(
|
52 |
+
'class' => 'n2-h4'
|
53 |
+
)) . NHtml::link(n2_('Import from server'), $this->appType->router->createUrl(array('sliders/importfromserver')), array(
|
54 |
+
'class' => 'n2-h4'
|
55 |
+
)) . NHtml::link(n2_('Export all slider'), $this->appType->router->createUrl(array('sliders/exportall')), array(
|
56 |
+
'class' => 'n2-h4',
|
57 |
+
'target' => '_blank'
|
58 |
+
))))
|
59 |
+
));
|
60 |
+
|
61 |
+
n2GetBox('', 'import-upload.png', '<div>' . n2_('Import slider from different sources.') . '</div>' . NHtml::tag('div', array('class' => 'n2-button n2-button-with-menu n2-button-small n2-button-green'), NHtml::link(n2_('Import by upload'), $this->appType->router->createUrl(array('sliders/importbyupload')), array(
|
62 |
+
'class' => 'n2-button-inner n2-uc n2-h5'
|
63 |
+
)) . ob_get_clean()));
|
64 |
+
|
65 |
+
n2GetBox('n2-box-wide n2-box-overflow n2-box-free', 'free/box2.png', NHtml::tag('div', array(), 'Take your slider to the next level with Smart Slider 3 PRO!') . NHtml::link('See all features', N2SS3::getWhyProUrl(), array(
|
66 |
+
'target' => '_blank',
|
67 |
+
'class' => 'n2-button n2-button-blue n2-button-medium n2-h5 n2-uc'
|
68 |
+
)), false);
|
69 |
+
|
70 |
+
$updateModel = N2SmartsliderUpdateModel::getInstance();
|
71 |
+
$hasUpdate = $updateModel->hasUpdate();
|
72 |
+
$this->appType->router->setMultiSite();
|
73 |
+
$updateUrl = $this->appType->router->createUrl(array(
|
74 |
+
'update/update',
|
75 |
+
N2Form::tokenizeUrl() + array('download' => 1)
|
76 |
+
));
|
77 |
+
$this->appType->router->unSetMultiSite();
|
78 |
+
|
79 |
+
$versionsTXT = '<div>' . sprintf(n2_('Installed version: %s'), N2SS3::$version . (N2SSPRO ? ' Pro' : '')) . ($hasUpdate ? '<br/>' . sprintf(n2_('Latest version: %s'), $updateModel->getVersion() . (N2SSPRO ? ' Pro' : '')) : '<br/>' . sprintf(n2_('Last check: %s'), $updateModel->lastCheck())) . '</div>';
|
80 |
+
|
81 |
+
n2GetBox('', 'Update.png', $versionsTXT . ($hasUpdate ? '<a href="' . $updateUrl . '" class="n2-button n2-button-small n2-button-blue n2-uc n2-h5">' . n2_('Update') . '</a>' : '') . (!$hasUpdate ? '<a href="' . $this->appType->router->createUrl(array(
|
82 |
+
'update/check',
|
83 |
+
N2Form::tokenizeUrl()
|
84 |
+
)) . '" class="n2-button n2-button-small n2-button-blue n2-uc n2-h5">' . n2_('Check') . '</a>' : '') . '<a href="#" onclick="NextendModalDocumentation(\'' . n2_('Changelog') . '\', \'http://doc.smartslider3.com/article/432-changelog\');return false;" class="n2-button n2-button-small n2-button-grey n2-uc n2-h5">' . n2_('Changelog') . '</a>');
|
85 |
+
if ($hasUpdate) {
|
86 |
+
?>
|
87 |
+
<script type="text/javascript">
|
88 |
+
n2(window).ready(function ($) {
|
89 |
+
$('.n2-main-top-bar').append('<div class="n2-left n2-top-bar-menu"><span><?php printf(n2_('Version %s available!'), $updateModel->getVersion()); ?></span> <a style="font-size: 12px;margin-right: 10px;" class="n2-h3 n2-uc n2-has-underline n2-button n2-button-blue n2-button-medium" href="<?php echo $updateUrl; ?>"><?php n2_e('Update'); ?></a> <a style="font-size: 12px;" class="n2-h3 n2-uc n2-has-underline n2-button n2-button-grey n2-button-medium" href="#" onclick="NextendModalDocumentation(\'<?php n2_e('Changelog'); ?>\', \'http://doc.smartslider3.com/article/432-changelog\');return false;"><?php n2_e('Changelog'); ?></a></div>');
|
90 |
+
});
|
91 |
+
</script>
|
92 |
+
<?php
|
93 |
+
}
|
94 |
+
|
95 |
+
n2GetBox('', 'Documentation.png', NHtml::tag('div', array(), 'Interactive online documentation.') . NHtml::link('Read', 'http://doc.smartslider3.com', array(
|
96 |
+
'target' => '_blank',
|
97 |
+
'class' => 'n2-button n2-button-grey n2-button-small n2-h5 n2-uc'
|
98 |
+
)));
|
99 |
+
n2GetBox('', 'Videos.png', NHtml::tag('div', array(), 'Helpful tutorial videos.') . NHtml::link('Watch', 'https://www.youtube.com/watch?v=MKmIwHAFjSU&list=PLSawiBnEUNfvzcI3pBHs4iKcbtMCQU0dB', array(
|
100 |
+
'target' => '_blank',
|
101 |
+
'class' => 'n2-button n2-button-grey n2-button-small n2-h5 n2-uc'
|
102 |
+
)));
|
103 |
+
n2GetBox('', 'Help.png', NHtml::tag('div', array(), 'First class support with real people. ') . NHtml::link('Write', 'http://smartslider3.com/contact-us/', array(
|
104 |
+
'target' => '_blank',
|
105 |
+
'class' => 'n2-button n2-button-grey n2-button-small n2-h5 n2-uc'
|
106 |
+
)));
|
107 |
+
n2GetBox('', 'Newsletter.png', NHtml::tag('div', array(), 'Receive the latest news.') . NHtml::link('Subscribe', 'http://eepurl.com/bDp_8b', array(
|
108 |
+
'target' => '_blank',
|
109 |
+
'class' => 'n2-button n2-button-grey n2-button-small n2-h5 n2-uc'
|
110 |
+
)));
|
111 |
+
|
112 |
+
n2GetBox('', 'Facebook.png', NHtml::tag('div', array(), 'Join the community on Facebook.') . NHtml::link('Join', 'https://www.facebook.com/nextendweb', array(
|
113 |
+
'class' => 'n2-button n2-button-grey n2-button-small n2-h5 n2-uc',
|
114 |
+
'target' => '_blank'
|
115 |
+
)));
|
116 |
+
n2GetBox('', 'Love.png', NHtml::tag('div', array(), 'Are you satisfied with Smart Slider 3?') . NHtml::link('Yes', 'http://smartslider3.com/satisfied-customer/', array(
|
117 |
+
'target' => '_blank',
|
118 |
+
'class' => 'n2-button n2-button-green n2-button-small n2-h5 n2-uc'
|
119 |
+
)) . NHtml::link('No', 'http://smartslider3.com/suggestion/', array(
|
120 |
+
'target' => '_blank',
|
121 |
+
'class' => 'n2-button n2-button-red n2-button-small n2-h5 n2-uc'
|
122 |
+
)));
|
123 |
+
|
124 |
+
?>
|
125 |
+
|
126 |
+
<div class="n2-clear"></div>
|
127 |
+
</div>
|
128 |
+
<?php N2SS3::showBeacon('Main page, Import, Update'); ?>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/slides/_view.php
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderBackendSlidesView extends N2ViewBase
|
4 |
+
{
|
5 |
+
|
6 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/slides/edit.php
ADDED
@@ -0,0 +1,259 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $slidesModel N2SmartsliderSlidesModel
|
4 |
+
*/
|
5 |
+
$slide = $slidesModel->get(N2Request::getInt('slideid', 0));
|
6 |
+
|
7 |
+
$actions = array(
|
8 |
+
NHtml::tag('a', array(
|
9 |
+
'href' => $this->appType->router->createUrl(array(
|
10 |
+
"slider/edit",
|
11 |
+
array(
|
12 |
+
"sliderid" => $sliderId
|
13 |
+
)
|
14 |
+
)),
|
15 |
+
'class' => 'n2-button n2-button-red n2-button-big n2-h4 n2-b n2-uc',
|
16 |
+
'onclick' => 'return nextend.cancel(this.href);'
|
17 |
+
), n2_('Cancel'))
|
18 |
+
);
|
19 |
+
|
20 |
+
if ($slide && $slide['generator_id'] > 0) {
|
21 |
+
$actions[] = NHtml::tag('a', array(
|
22 |
+
'href' => '#',
|
23 |
+
'class' => 'n2-button n2-button-blue n2-button-big n2-h4 n2-b n2-uc',
|
24 |
+
'onclick' => 'nextend.askToSave = false;setTimeout(function() {var static = n2("<input name=\'static\' value=\'1\' />"); n2(\'#smartslider-form\').append(static).submit(); static.remove();}, 300); return false;'
|
25 |
+
), n2_('Static save'));
|
26 |
+
}
|
27 |
+
|
28 |
+
$actions[] = NHtml::tag('a', array(
|
29 |
+
'href' => '#',
|
30 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
31 |
+
'onclick' => 'return NextendForm.submit("#smartslider-form");'
|
32 |
+
), n2_('Save'));
|
33 |
+
|
34 |
+
$this->widget->init('topbar', array(
|
35 |
+
'back' => NHtml::tag('a', array(
|
36 |
+
'class' => 'n2-h4 n2-uc',
|
37 |
+
'href' => $this->appType->router->createUrl(array(
|
38 |
+
"slider/edit",
|
39 |
+
array(
|
40 |
+
"sliderid" => $sliderId
|
41 |
+
)
|
42 |
+
))
|
43 |
+
), n2_('Slider settings')),
|
44 |
+
"actions" => $actions,
|
45 |
+
'menu' => array(
|
46 |
+
NHtml::tag('a', array(
|
47 |
+
'id' => 'n2-ss-preview',
|
48 |
+
'href' => '#',
|
49 |
+
'class' => 'n2-h3 n2-uc n2-has-underline n2-button n2-button-blue n2-button-big',
|
50 |
+
'style' => 'font-size: 12px;'
|
51 |
+
), n2_('Preview'))
|
52 |
+
),
|
53 |
+
"hideSidebar" => true
|
54 |
+
));
|
55 |
+
?>
|
56 |
+
|
57 |
+
<script type="text/javascript">
|
58 |
+
nextend.isPreview = false;
|
59 |
+
nextend.ready(
|
60 |
+
function ($) {
|
61 |
+
|
62 |
+
var form = $('#smartslider-form'),
|
63 |
+
formAction = form.attr('action');
|
64 |
+
|
65 |
+
var modal = new NextendSimpleModal('<iframe name="n2-tab-preview" src="" style="width: 100%;height:100%;"></iframe>');
|
66 |
+
modal.modal.on('ModalHide', function () {
|
67 |
+
modal.modal.find('iframe').attr('src', 'about:blank');
|
68 |
+
$(window).trigger('SSPreviewHide');
|
69 |
+
});
|
70 |
+
|
71 |
+
$('#n2-ss-preview').on('click', function (e) {
|
72 |
+
nextend.isPreview = true;
|
73 |
+
e.preventDefault();
|
74 |
+
nextend.smartSlider.slide.prepareForm();
|
75 |
+
modal.show();
|
76 |
+
//var currentRequest = form.serialize();
|
77 |
+
form.attr({
|
78 |
+
action: '<?php echo $this->appType->router->createUrl(array("preview/slide", N2Form::tokenizeUrl() + array('slideId' => $slide ? $slide['id'] : 0, 'sliderId' => $sliderId)))?>',
|
79 |
+
target: 'n2-tab-preview'
|
80 |
+
}).submit().attr({
|
81 |
+
action: formAction,
|
82 |
+
target: null
|
83 |
+
});
|
84 |
+
nextend.isPreview = false;
|
85 |
+
});
|
86 |
+
|
87 |
+
}
|
88 |
+
);
|
89 |
+
</script>
|
90 |
+
|
91 |
+
<form id="smartslider-form" action="" method="post">
|
92 |
+
<?php
|
93 |
+
$slideData = $slidesModel->renderEditForm($slide);
|
94 |
+
?>
|
95 |
+
<input name="save" value="1" type="hidden"/>
|
96 |
+
</form>
|
97 |
+
|
98 |
+
<script type="text/javascript">
|
99 |
+
|
100 |
+
nextend.ready(
|
101 |
+
function ($) {
|
102 |
+
var topOffset = $('#wpadminbar, .navbar-fixed-top').height() + $('.n2-top-bar').height() + 2;
|
103 |
+
$('#n2-tab-smartslider-editor .n2-heading-controls').each(function () {
|
104 |
+
var bar = $(this);
|
105 |
+
bar.fixTo(bar.parent(), {
|
106 |
+
top: topOffset
|
107 |
+
});
|
108 |
+
});
|
109 |
+
}
|
110 |
+
);
|
111 |
+
|
112 |
+
</script>
|
113 |
+
|
114 |
+
<div id='n2-tab-smartslider-editor' class='n2-form-tab'>
|
115 |
+
<div class="n2-heading-controls n2-content-box-title-bg">
|
116 |
+
<div class="">
|
117 |
+
<div class="n2-table" style="table-layout:fixed;">
|
118 |
+
<div class="n2-tr">
|
119 |
+
<div class="n2-td">
|
120 |
+
<div class="n2-ss-snap-to-parent">
|
121 |
+
<div id="n2-ss-control-line" class="n2-content-box-title-bg">
|
122 |
+
<div class="n2-form-element-onoff-button n2-onoff-on">
|
123 |
+
<div class="n2-onoffb-label"><?php n2_e('Snap'); ?></div>
|
124 |
+
|
125 |
+
<div class="n2-onoffb-container">
|
126 |
+
<div class="n2-onoffb-slider"><!--
|
127 |
+
--><div class="n2-onoffb-round"></div><!--
|
128 |
+
--></div>
|
129 |
+
</div>
|
130 |
+
<input type="hidden" autocomplete="off" value="1" id="n2-ss-snap">
|
131 |
+
</div>
|
132 |
+
|
133 |
+
<div id="n2-ss-theme" href="#" class="n2-button n2-button-grey n2-button-small"
|
134 |
+
title="<?php n2_e('Light | Dark'); ?>"><i class="n2-i n2-it n2-i-16 n2-i-sun"></i>
|
135 |
+
</div>
|
136 |
+
|
137 |
+
<div id="n2-ss-horizontal-align"
|
138 |
+
class="n2-form-element-radio-tab n2-form-element-icon-radio"
|
139 |
+
title="<?php n2_e('Horizontal align'); ?>">
|
140 |
+
<div
|
141 |
+
class="n2-radio-option n2-first" data-align="left"><i
|
142 |
+
class="n2-i n2-it n2-i-horizontal-left"></i></div>
|
143 |
+
|
144 |
+
<div class="n2-radio-option" data-align="center"><i
|
145 |
+
class="n2-i n2-it n2-i-horizontal-center"></i>
|
146 |
+
</div>
|
147 |
+
|
148 |
+
<div class="n2-radio-option n2-last" data-align="right"><i
|
149 |
+
class="n2-i n2-it n2-i-horizontal-right"></i></div>
|
150 |
+
</div>
|
151 |
+
|
152 |
+
<div id="n2-ss-vertical-align" title="<?php n2_e('Vertical align'); ?>"
|
153 |
+
class="n2-form-element-radio-tab n2-form-element-icon-radio">
|
154 |
+
<div
|
155 |
+
class="n2-radio-option n2-first" data-align="top"><i
|
156 |
+
class="n2-i n2-it n2-i-vertical-top"></i></div>
|
157 |
+
|
158 |
+
<div class="n2-radio-option" data-align="middle"><i
|
159 |
+
class="n2-i n2-it n2-i-vertical-middle"></i>
|
160 |
+
</div>
|
161 |
+
|
162 |
+
<div class="n2-radio-option n2-last" data-align="bottom"><i
|
163 |
+
class="n2-i n2-it n2-i-vertical-bottom"></i></div></div>
|
164 |
+
|
165 |
+
<?php
|
166 |
+
?>
|
167 |
+
|
168 |
+
<div id="n2-ss-show-on-device" class="n2-button n2-button-grey n2-button-small"
|
169 |
+
title="<?php n2_e('Show on device'); ?>"><i
|
170 |
+
class="n2-i n2-it n2-i-16 n2-i-hide"></i></div>
|
171 |
+
|
172 |
+
<div id="n2-ss-adaptive-font" class="n2-button n2-button-grey n2-button-small"
|
173 |
+
title="<?php n2_e('Adaptive font'); ?>"><i
|
174 |
+
class="n2-i n2-it n2-i-16 n2-i-adaptive"></i></div>
|
175 |
+
|
176 |
+
<div title="<?php n2_e('Font size modifier'); ?>"
|
177 |
+
class="n2-form-element-text n2-form-element-autocomplete ui-front n2-form-element-number n2-text-has-unit n2-border-radius">
|
178 |
+
<div class="n2-text-sub-label n2-h5 n2-uc"><i
|
179 |
+
class="n2-i n2-it n2-i-16 n2-i-fontmodifier"></i></div>
|
180 |
+
<input type="text" autocomplete="off" style="width:32px"
|
181 |
+
class="n2-h5 ui-autocomplete-input" value="100" name="n2-ss-font-size"
|
182 |
+
id="n2-ss-font-size">
|
183 |
+
|
184 |
+
<div class="n2-text-unit n2-h5 n2-uc">%</div></div>
|
185 |
+
<div id="n2-ss-reset-to-desktop" class="n2-button n2-button-grey n2-button-small"
|
186 |
+
title="<?php n2_e('Reset to desktop'); ?>"><i
|
187 |
+
class="n2-i n2-it n2-i-16 n2-i-reset"></i></div>
|
188 |
+
</div>
|
189 |
+
</div>
|
190 |
+
</div>
|
191 |
+
<div class="n2-td" id="n2-ss-zoom">
|
192 |
+
<div class="n2-ss-slider-zoom-container">
|
193 |
+
<i class="n2-i n2-i-minus"></i>
|
194 |
+
<i class="n2-i n2-i-plus"></i>
|
195 |
+
|
196 |
+
<div class="n2-ss-slider-zoom-bg"></div>
|
197 |
+
|
198 |
+
<div class="n2-ss-slider-zoom-1"></div>
|
199 |
+
|
200 |
+
<div id="n2-ss-slider-zoom"></div>
|
201 |
+
|
202 |
+
<div class="n2-expert" id="n2-ss-lock">
|
203 |
+
<i class="n2-i n2-i-unlock"></i>
|
204 |
+
</div>
|
205 |
+
</div>
|
206 |
+
</div>
|
207 |
+
|
208 |
+
<div class="n2-td" id="n2-ss-devices">
|
209 |
+
<div class="n2-controls-panel n2-table n2-table-auto">
|
210 |
+
<div class="n2-tr">
|
211 |
+
</div>
|
212 |
+
</div>
|
213 |
+
</div>
|
214 |
+
</div>
|
215 |
+
</div>
|
216 |
+
</div>
|
217 |
+
</div>
|
218 |
+
<?php
|
219 |
+
|
220 |
+
$sliderManager = $this->appType->app->get('sliderManager');
|
221 |
+
$slider = $sliderManager->getSlider();
|
222 |
+
|
223 |
+
$slider->setStatic($slideData->get('static-slide', 0));
|
224 |
+
|
225 |
+
echo NHtml::tag('div', array(
|
226 |
+
'id' => 'smartslider-adjust-height',
|
227 |
+
'style' => 'overflow: auto; margin: 5px; padding: 5px'
|
228 |
+
), NHtml::tag('div', array(), $sliderManager->render()));
|
229 |
+
|
230 |
+
N2Localization::addJS(array(
|
231 |
+
'Add',
|
232 |
+
'Clear',
|
233 |
+
'in',
|
234 |
+
'loop',
|
235 |
+
'out'
|
236 |
+
));
|
237 |
+
|
238 |
+
echo NHtml::script("
|
239 |
+
nextend.ready(function($){
|
240 |
+
var cb = function(){
|
241 |
+
nextend.smartSlider.startEditor('" . $slider->elementId . "', 'slideslide', " . (defined('N2_IMAGE_UPLOAD_DISABLE') ? 1 : 0) . ", '" . N2Base::getApplication('system')->router->createAjaxUrl(array('browse/upload')) . "', 'slider" . $slider->sliderId . "');
|
242 |
+
};
|
243 |
+
if(typeof nextend.fontsDeferred !== 'undefined'){
|
244 |
+
nextend.fontsDeferred.done(cb);
|
245 |
+
}else {
|
246 |
+
cb();
|
247 |
+
}
|
248 |
+
});
|
249 |
+
");
|
250 |
+
?>
|
251 |
+
</div>
|
252 |
+
<?php
|
253 |
+
?>
|
254 |
+
<?php
|
255 |
+
?>
|
256 |
+
<div style="height: 600px;"></div>
|
257 |
+
<?php
|
258 |
+
|
259 |
+
?>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/backend/views/slides/slidebox.php
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
echo N2SmartsliderSlidesModel::box($slide, $slider, $this->widget, $this->appType);
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/form/element/backgroundanimation.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Form::importElement('hidden');
|
3 |
+
N2Loader::import('libraries.backgroundanimation.manager', 'smartslider');
|
4 |
+
|
5 |
+
class N2ElementBackgroundAnimation extends N2ElementHidden
|
6 |
+
{
|
7 |
+
|
8 |
+
public $_tooltip = true;
|
9 |
+
|
10 |
+
function fetchElement() {
|
11 |
+
|
12 |
+
N2Localization::addJS(array(
|
13 |
+
'Disabled',
|
14 |
+
'Multiple animations',
|
15 |
+
'Single animation'
|
16 |
+
));
|
17 |
+
|
18 |
+
N2JS::addInline('new NextendElementAnimationManager("' . $this->_id . '", "backgroundanimationManager");');
|
19 |
+
|
20 |
+
return NHtml::tag('div', array(
|
21 |
+
'class' => 'n2-form-element-option-chooser n2-border-radius'
|
22 |
+
), parent::fetchElement() . NHtml::tag('input', array(
|
23 |
+
'type' => 'text',
|
24 |
+
'class' => 'n2-h5',
|
25 |
+
'style' => 'width: 130px;' . N2XmlHelper::getAttribute($this->_xml, 'css'),
|
26 |
+
'disabled' => 'disabled'
|
27 |
+
), false) . NHtml::tag('a', array(
|
28 |
+
'href' => '#',
|
29 |
+
'class' => 'n2-form-element-clear'
|
30 |
+
), NHtml::tag('i', array('class' => 'n2-i n2-it n2-i-empty n2-i-grey-opacity'), '')) . NHtml::tag('a', array(
|
31 |
+
'href' => '#',
|
32 |
+
'class' => 'n2-form-element-button n2-h5 n2-uc'
|
33 |
+
), n2_('Animations')));
|
34 |
+
}
|
35 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/form/element/sliderwidgetarea.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.form.element.hidden');
|
3 |
+
|
4 |
+
class N2ElementSliderWidgetArea extends N2ElementHidden
|
5 |
+
{
|
6 |
+
|
7 |
+
function fetchElement() {
|
8 |
+
|
9 |
+
$areas = '';
|
10 |
+
for ($i = 1; $i <= 12; $i++) {
|
11 |
+
$areas .= NHtml::tag('div', array(
|
12 |
+
'class' => 'n2-area n2-area-' . $i . $this->isSelected($i),
|
13 |
+
'data-area' => $i
|
14 |
+
));
|
15 |
+
}
|
16 |
+
|
17 |
+
$html = NHtml::tag('div', array(
|
18 |
+
'id' => $this->_id . '_area',
|
19 |
+
'class' => 'n2-widget-area'
|
20 |
+
), NHtml::tag('div', array(
|
21 |
+
'class' => 'n2-widget-area-inner'
|
22 |
+
)) . $areas);
|
23 |
+
$html .= parent::fetchElement();
|
24 |
+
|
25 |
+
N2JS::addInline('new NextendElementSliderWidgetArea("' . $this->_id . '");');
|
26 |
+
|
27 |
+
return $html;
|
28 |
+
}
|
29 |
+
|
30 |
+
function isSelected($i) {
|
31 |
+
if ($i == $this->getValue()) {
|
32 |
+
return ' n2-active';
|
33 |
+
}
|
34 |
+
return '';
|
35 |
+
}
|
36 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/form/element/widgetpluginmatrix.php
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.form.element.subpluginmatrix');
|
4 |
+
|
5 |
+
class N2ElementWidgetPluginMatrix extends N2ElementSubPluginMatrix
|
6 |
+
{
|
7 |
+
|
8 |
+
private $group = '';
|
9 |
+
|
10 |
+
private function getWidgetClass($key) {
|
11 |
+
return 'N2SSPluginWidget' . $this->getGroup() . $key;
|
12 |
+
}
|
13 |
+
|
14 |
+
private function getGroup() {
|
15 |
+
if (empty($this->group)) {
|
16 |
+
$this->group = N2XmlHelper::getAttribute($this->_xml, 'method');
|
17 |
+
}
|
18 |
+
return $this->group;
|
19 |
+
}
|
20 |
+
|
21 |
+
function fetchElement() {
|
22 |
+
return parent::fetchElement();
|
23 |
+
}
|
24 |
+
|
25 |
+
function loadList() {
|
26 |
+
parent::loadList();
|
27 |
+
$this->_list = array_merge(array('disabled' => $this->_form->xmlFolder . '/'), $this->_list);
|
28 |
+
}
|
29 |
+
|
30 |
+
function renderForm() {
|
31 |
+
$value = $this->getValue();
|
32 |
+
if ($value == 'disabled') {
|
33 |
+
return '';
|
34 |
+
} else {
|
35 |
+
$class = $this->getWidgetClass($value);
|
36 |
+
if (class_exists($class, false)) {
|
37 |
+
$this->_form->fillDefault(call_user_func(array(
|
38 |
+
$class,
|
39 |
+
'getDefaults'
|
40 |
+
)));
|
41 |
+
}
|
42 |
+
|
43 |
+
return parent::renderForm();
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
function getImage($path, $key) {
|
48 |
+
return N2Uri::pathToUri(N2Filesystem::translate($path . $key . '.png'));
|
49 |
+
}
|
50 |
+
|
51 |
+
function getOptionHtml($path, $k) {
|
52 |
+
return NHtml::tag('div', array(
|
53 |
+
'class' => 'n2-subform-image-option n2-subform-image-option-simple ' . $this->isActive($k)
|
54 |
+
), NHtml::tag('div', array(
|
55 |
+
'class' => 'n2-subform-image-element',
|
56 |
+
'style' => 'background-image: url(' . $this->getImage($path, $k) . ');'
|
57 |
+
)));
|
58 |
+
}
|
59 |
+
|
60 |
+
protected function getClass() {
|
61 |
+
return 'n2-subform-2-rows';
|
62 |
+
}
|
63 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/form/element/widgetposition.php
ADDED
@@ -0,0 +1,138 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.form.element.group');
|
4 |
+
|
5 |
+
class N2ElementWidgetPosition extends N2ElementGroup
|
6 |
+
{
|
7 |
+
|
8 |
+
function fetchElement() {
|
9 |
+
$values = explode('|*|', $this->getValue());
|
10 |
+
if (!isset($values[6]) || $values[6] == '') {
|
11 |
+
$values[6] = 1;
|
12 |
+
}
|
13 |
+
$values[6] = intval($values[6]);
|
14 |
+
$this->_form->set($this->_name, implode('|*|', $values));
|
15 |
+
|
16 |
+
$mode = $this->_xml->addChild('param');
|
17 |
+
$mode->addAttribute('name', $this->_name . '-mode');
|
18 |
+
$mode->addAttribute('type', 'switcher');
|
19 |
+
$mode->addAttribute('label', 'Mode');
|
20 |
+
$mode->addAttribute('default', 'simple');
|
21 |
+
$mode->addAttribute('translateable', '1');
|
22 |
+
$mode->addAttribute('class', 'n2-expert');
|
23 |
+
$mode->addAttribute('post', 'break');
|
24 |
+
|
25 |
+
$simple = $mode->addChild('unit', 'Simple');
|
26 |
+
$simple->addAttribute('value', 'simple');
|
27 |
+
$advanced = $mode->addChild('unit', 'Advanced');
|
28 |
+
$advanced->addAttribute('value', 'advanced');
|
29 |
+
|
30 |
+
$this->addSimple();
|
31 |
+
|
32 |
+
$this->addAdvanced();
|
33 |
+
|
34 |
+
N2JS::addInline('new NextendElementWidgetPosition("' . $this->_id . '");');
|
35 |
+
|
36 |
+
return parent::fetchElement();
|
37 |
+
}
|
38 |
+
|
39 |
+
protected function addSimple() {
|
40 |
+
|
41 |
+
$simple = $this->_xml->addChild('param');
|
42 |
+
$simple->addAttribute('type', 'group');
|
43 |
+
|
44 |
+
$area = $simple->addChild('param');
|
45 |
+
$area->addAttribute('type', 'sliderwidgetarea');
|
46 |
+
$area->addAttribute('name', $this->_name . '-area');
|
47 |
+
$area->addAttribute('default', N2XmlHelper::getAttribute($this->_xml, 'area'));
|
48 |
+
|
49 |
+
$priority = $simple->addChild('param');
|
50 |
+
$priority->addAttribute('type', 'list');
|
51 |
+
$priority->addAttribute('name', $this->_name . '-stack');
|
52 |
+
$priority->addAttribute('label', n2_('Stack'));
|
53 |
+
$priority->addAttribute('default', N2XmlHelper::getAttribute($this->_xml, 'stack', '1'));
|
54 |
+
$priority->addAttribute('class', 'n2-expert');
|
55 |
+
|
56 |
+
for ($i = 1; $i < 5; $i++) {
|
57 |
+
$pri = $priority->addChild('option', $i);
|
58 |
+
$pri->addAttribute('value', $i);
|
59 |
+
}
|
60 |
+
|
61 |
+
$offset = $simple->addChild('param');
|
62 |
+
$offset->addAttribute('type', 'text');
|
63 |
+
$offset->addAttribute('name', $this->_name . '-offset');
|
64 |
+
$offset->addAttribute('label', 'Offset');
|
65 |
+
$offset->addAttribute('style', 'width:30px;');
|
66 |
+
$offset->addAttribute('default', N2XmlHelper::getAttribute($this->_xml, 'offset', '0'));
|
67 |
+
|
68 |
+
$offset->addChild('unit', 'px')->addAttribute('value', 'px');
|
69 |
+
}
|
70 |
+
|
71 |
+
protected function addAdvanced() {
|
72 |
+
|
73 |
+
$advanced = $this->_xml->addChild('param');
|
74 |
+
$advanced->addAttribute('type', 'group');
|
75 |
+
$advanced->addAttribute('style', 'width:350px;');
|
76 |
+
|
77 |
+
$horizontal = $advanced->addChild('param');
|
78 |
+
$horizontal->addAttribute('name', $this->_name . '-horizontal');
|
79 |
+
$horizontal->addAttribute('type', 'switcher');
|
80 |
+
$horizontal->addAttribute('label', 'Horizontal');
|
81 |
+
$horizontal->addAttribute('default', 'left');
|
82 |
+
$horizontal->addAttribute('translateable', '1');
|
83 |
+
|
84 |
+
$left = $horizontal->addChild('unit', 'Left');
|
85 |
+
$left->addAttribute('value', 'left');
|
86 |
+
$right = $horizontal->addChild('unit', 'Right');
|
87 |
+
$right->addAttribute('value', 'right');
|
88 |
+
|
89 |
+
$position = $advanced->addChild('param');
|
90 |
+
$position->addAttribute('name', $this->_name . '-horizontal-position');
|
91 |
+
$position->addAttribute('type', 'text');
|
92 |
+
$position->addAttribute('label', n2_x('Position', "position for controls"));
|
93 |
+
$position->addAttribute('default', '0');
|
94 |
+
$position->addAttribute('style', 'width:30px;');
|
95 |
+
|
96 |
+
$switcher = $advanced->addChild('param');
|
97 |
+
$switcher->addAttribute('name', $this->_name . '-horizontal-unit');
|
98 |
+
$switcher->addAttribute('type', 'switcher');
|
99 |
+
$switcher->addAttribute('label', n2_('Unit'));
|
100 |
+
$switcher->addAttribute('default', 'px');
|
101 |
+
|
102 |
+
$px = $switcher->addChild('unit', 'px');
|
103 |
+
$px->addAttribute('value', 'px');
|
104 |
+
$percent = $switcher->addChild('unit', n2_('%'));
|
105 |
+
$percent->addAttribute('value', '%');
|
106 |
+
|
107 |
+
|
108 |
+
$vertical = $advanced->addChild('param');
|
109 |
+
$vertical->addAttribute('name', $this->_name . '-vertical');
|
110 |
+
$vertical->addAttribute('type', 'switcher');
|
111 |
+
$vertical->addAttribute('label', 'Vertical');
|
112 |
+
$vertical->addAttribute('default', 'top');
|
113 |
+
$vertical->addAttribute('translateable', '1');
|
114 |
+
|
115 |
+
$left = $vertical->addChild('unit', 'Top');
|
116 |
+
$left->addAttribute('value', 'top');
|
117 |
+
$right = $vertical->addChild('unit', 'Bottom');
|
118 |
+
$right->addAttribute('value', 'bottom');
|
119 |
+
|
120 |
+
$position = $advanced->addChild('param');
|
121 |
+
$position->addAttribute('name', $this->_name . '-vertical-position');
|
122 |
+
$position->addAttribute('type', 'text');
|
123 |
+
$position->addAttribute('label', n2_x('Position', "position for controls"));
|
124 |
+
$position->addAttribute('default', '0');
|
125 |
+
$position->addAttribute('style', 'width:30px;');
|
126 |
+
|
127 |
+
$switcher = $advanced->addChild('param');
|
128 |
+
$switcher->addAttribute('name', $this->_name . '-vertical-unit');
|
129 |
+
$switcher->addAttribute('type', 'switcher');
|
130 |
+
$switcher->addAttribute('label', n2_('Unit'));
|
131 |
+
$switcher->addAttribute('default', 'px');
|
132 |
+
|
133 |
+
$px = $switcher->addChild('unit', 'px');
|
134 |
+
$px->addAttribute('value', 'px');
|
135 |
+
$percent = $switcher->addChild('unit', n2_('%'));
|
136 |
+
$percent->addAttribute('value', '%');
|
137 |
+
}
|
138 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/languages/hu_HU.mo
ADDED
Binary file
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/backgroundanimation/manager.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.backgroundanimation.storage', 'smartslider');
|
3 |
+
|
4 |
+
class N2BackgroundAnimationManager
|
5 |
+
{
|
6 |
+
|
7 |
+
public static function init() {
|
8 |
+
static $inited = false;
|
9 |
+
if (!$inited) {
|
10 |
+
|
11 |
+
N2Pluggable::addAction('afterApplicationContent', 'N2BackgroundAnimationManager::load');
|
12 |
+
$inited = true;
|
13 |
+
}
|
14 |
+
}
|
15 |
+
|
16 |
+
public static function load() {
|
17 |
+
N2Base::getApplication('system')->getApplicationType('backend');
|
18 |
+
N2Base::getApplication('smartslider')->getApplicationType('backend')->run(array(
|
19 |
+
'useRequest' => false,
|
20 |
+
'controller' => 'backgroundanimation',
|
21 |
+
'action' => 'index'
|
22 |
+
));
|
23 |
+
}
|
24 |
+
}
|
25 |
+
|
26 |
+
N2BackgroundAnimationManager::init();
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/backgroundanimation/storage.php
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderBackgroundAnimationStorage
|
4 |
+
{
|
5 |
+
|
6 |
+
private static $sets = array();
|
7 |
+
|
8 |
+
private static $animation = array();
|
9 |
+
|
10 |
+
private static $animationBySet = array();
|
11 |
+
|
12 |
+
private static $animationById = array();
|
13 |
+
|
14 |
+
public static function init() {
|
15 |
+
N2Pluggable::addAction('smartsliderbackgroundanimationset', 'N2SmartSliderBackgroundAnimationStorage::animationSet');
|
16 |
+
N2Pluggable::addAction('smartsliderbackgroundanimation', 'N2SmartSliderBackgroundAnimationStorage::animations');
|
17 |
+
N2Pluggable::addAction('backgroundanimation', 'N2SmartSliderBackgroundAnimationStorage::animation');
|
18 |
+
}
|
19 |
+
|
20 |
+
private static function load() {
|
21 |
+
static $loaded;
|
22 |
+
if (!$loaded) {
|
23 |
+
N2Pluggable::doAction('backgroundAnimationStorage', array(
|
24 |
+
&self::$sets,
|
25 |
+
&self::$animation
|
26 |
+
));
|
27 |
+
|
28 |
+
for ($i = 0; $i < count(self::$animation); $i++) {
|
29 |
+
if (!isset(self::$animationBySet[self::$animation[$i]['referencekey']])) {
|
30 |
+
self::$animationBySet[self::$animation[$i]['referencekey']] = array();
|
31 |
+
}
|
32 |
+
self::$animationBySet[self::$animation[$i]['referencekey']][] = &self::$animation[$i];
|
33 |
+
self::$animationById[self::$animation[$i]['id']] = &self::$animation[$i];
|
34 |
+
}
|
35 |
+
$loaded = true;
|
36 |
+
}
|
37 |
+
}
|
38 |
+
|
39 |
+
public static function animationSet($referenceKey, &$sets) {
|
40 |
+
self::load();
|
41 |
+
|
42 |
+
for ($i = count(self::$sets) - 1; $i >= 0; $i--) {
|
43 |
+
self::$sets[$i]['system'] = 1;
|
44 |
+
self::$sets[$i]['editable'] = 0;
|
45 |
+
array_unshift($sets, self::$sets[$i]);
|
46 |
+
}
|
47 |
+
|
48 |
+
}
|
49 |
+
|
50 |
+
public static function animations($referenceKey, &$animation) {
|
51 |
+
self::load();
|
52 |
+
if (isset(self::$animationBySet[$referenceKey])) {
|
53 |
+
$_animation = &self::$animationBySet[$referenceKey];
|
54 |
+
for ($i = count($_animation) - 1; $i >= 0; $i--) {
|
55 |
+
$_animation[$i]['system'] = 1;
|
56 |
+
$_animation[$i]['editable'] = 0;
|
57 |
+
array_unshift($animation, $_animation[$i]);
|
58 |
+
}
|
59 |
+
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
63 |
+
public static function animation($id, &$animation) {
|
64 |
+
self::load();
|
65 |
+
if (isset(self::$animationById[$id])) {
|
66 |
+
self::$animationById[$id]['system'] = 1;
|
67 |
+
self::$animationById[$id]['editable'] = 0;
|
68 |
+
$animation = self::$animationById[$id];
|
69 |
+
}
|
70 |
+
}
|
71 |
+
}
|
72 |
+
|
73 |
+
N2SmartSliderBackgroundAnimationStorage::init();
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/backup.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderBackup
|
4 |
+
{
|
5 |
+
|
6 |
+
public $NextendImageHelper_Export, $slider, $slides, $generators = array(), $NextendImageManager_ImageData = array(), $imageTranslation = array(), $visuals = array();
|
7 |
+
|
8 |
+
public function __construct() {
|
9 |
+
$this->NextendImageHelper_Export = N2ImageHelper::export();
|
10 |
+
}
|
11 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/export.php
ADDED
@@ -0,0 +1,340 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.zip.zip_lib');
|
3 |
+
N2Loader::import('libraries.backup', 'smartslider');
|
4 |
+
|
5 |
+
class N2SmartSliderExport
|
6 |
+
{
|
7 |
+
|
8 |
+
private $uniqueCounter = 1;
|
9 |
+
|
10 |
+
/**
|
11 |
+
* @var N2SmartSliderBackup
|
12 |
+
*/
|
13 |
+
private $backup;
|
14 |
+
private $sliderId = 0;
|
15 |
+
|
16 |
+
public $images = array(), $visuals = array();
|
17 |
+
|
18 |
+
private $files, $usedNames = array(), $imageTranslation = array();
|
19 |
+
|
20 |
+
public function __construct($sliderId) {
|
21 |
+
$this->sliderId = $sliderId;
|
22 |
+
}
|
23 |
+
|
24 |
+
public function create($saveAsFile = false) {
|
25 |
+
$this->backup = new N2SmartSliderBackup();
|
26 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
27 |
+
if ($this->backup->slider = $slidersModel->get($this->sliderId)) {
|
28 |
+
$this->backup->slider['params'] = new N2Data($this->backup->slider['params'], true);
|
29 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
30 |
+
$this->backup->slides = $slidesModel->getAll($this->backup->slider['id']);
|
31 |
+
|
32 |
+
if (empty($this->backup->slider['type'])) {
|
33 |
+
$this->backup->slider['type'] = 'simple';
|
34 |
+
}
|
35 |
+
|
36 |
+
$class = 'N2SSPluginType' . $this->backup->slider['type'];
|
37 |
+
N2Loader::importPath(call_user_func(array(
|
38 |
+
$class,
|
39 |
+
"getPath"
|
40 |
+
)) . NDS . 'backup');
|
41 |
+
|
42 |
+
$class = 'N2SmartSliderBackup' . $this->backup->slider['type'];
|
43 |
+
call_user_func_array(array(
|
44 |
+
$class,
|
45 |
+
'export'
|
46 |
+
), array(
|
47 |
+
$this,
|
48 |
+
$this->backup->slider
|
49 |
+
));
|
50 |
+
|
51 |
+
$enabledWidgets = array();
|
52 |
+
$plugins = array();
|
53 |
+
N2Plugin::callPlugin('sswidget', 'onWidgetList', array(&$plugins));
|
54 |
+
|
55 |
+
$params = $this->backup->slider['params'];
|
56 |
+
foreach ($plugins AS $k => $v) {
|
57 |
+
$widget = $params->get('widget' . $k);
|
58 |
+
if ($widget && $widget != 'disabled') {
|
59 |
+
$enabledWidgets[$k] = $widget;
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
63 |
+
foreach ($enabledWidgets AS $k => $v) {
|
64 |
+
$class = 'N2SSPluginWidget' . $k . $v;
|
65 |
+
if (class_exists($class, false)) {
|
66 |
+
$params->fillDefault(call_user_func(array(
|
67 |
+
$class,
|
68 |
+
'getDefaults'
|
69 |
+
)));
|
70 |
+
|
71 |
+
call_user_func_array(array(
|
72 |
+
$class,
|
73 |
+
'prepareExport'
|
74 |
+
), array(
|
75 |
+
$this,
|
76 |
+
&$params
|
77 |
+
));
|
78 |
+
} else {
|
79 |
+
unset($enabledWidgets);
|
80 |
+
}
|
81 |
+
}
|
82 |
+
|
83 |
+
for ($i = 0; $i < count($this->backup->slides); $i++) {
|
84 |
+
$slide = $this->backup->slides[$i];
|
85 |
+
self::addImage($slide['thumbnail']);
|
86 |
+
$slide['params'] = new N2Data($slide['params'], true);
|
87 |
+
|
88 |
+
self::addImage($slide['params']->get('backgroundImage'));
|
89 |
+
self::addLightbox($slide['params']->get('link'));
|
90 |
+
|
91 |
+
|
92 |
+
N2SmartSliderLayer::prepareExport($this, $slide['slide']);
|
93 |
+
|
94 |
+
if (!empty($slide['generator_id'])) {
|
95 |
+
N2Loader::import("models.generator", "smartslider");
|
96 |
+
$generatorModel = new N2SmartsliderGeneratorModel();
|
97 |
+
$this->backup->generators[] = $generatorModel->get($slide['generator_id']);
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
$zip = new N2ZipFile();
|
102 |
+
|
103 |
+
$this->images = array_unique($this->images);
|
104 |
+
$this->visuals = array_unique($this->visuals);
|
105 |
+
|
106 |
+
foreach ($this->images AS $image) {
|
107 |
+
$this->backup->NextendImageManager_ImageData[$image] = N2ImageManager::getImageData($image, true);
|
108 |
+
if ($this->backup->NextendImageManager_ImageData[$image]) {
|
109 |
+
self::addImage($this->backup->NextendImageManager_ImageData[$image]['tablet']['image']);
|
110 |
+
self::addImage($this->backup->NextendImageManager_ImageData[$image]['mobile']['image']);
|
111 |
+
} else {
|
112 |
+
unset($this->backup->NextendImageManager_ImageData[$image]);
|
113 |
+
}
|
114 |
+
}
|
115 |
+
|
116 |
+
$this->images = array_unique($this->images);
|
117 |
+
|
118 |
+
$usedNames = array();
|
119 |
+
foreach ($this->images AS $image) {
|
120 |
+
$file = N2ImageHelper::fixed($image, true);
|
121 |
+
if (N2Filesystem::fileexists($file)) {
|
122 |
+
$fileName = strtolower(basename($file));
|
123 |
+
while (in_array($fileName, $usedNames)) {
|
124 |
+
$fileName = $this->uniqueCounter . $fileName;
|
125 |
+
$this->uniqueCounter++;
|
126 |
+
}
|
127 |
+
$usedNames[] = $fileName;
|
128 |
+
|
129 |
+
$this->backup->imageTranslation[$image] = $fileName;
|
130 |
+
$zip->addFile(file_get_contents($file), 'images/' . $fileName);
|
131 |
+
}
|
132 |
+
}
|
133 |
+
|
134 |
+
foreach ($this->visuals AS $visual) {
|
135 |
+
$this->backup->visuals[] = N2StorageSectionAdmin::getById($visual);
|
136 |
+
}
|
137 |
+
$zip->addFile(serialize($this->backup), 'data');
|
138 |
+
if (!$saveAsFile) {
|
139 |
+
ob_end_clean();
|
140 |
+
header('Content-disposition: attachment; filename=' . preg_replace('/[^a-zA-Z0-9_-]/', '', $this->backup->slider['title']) . '.ss3');
|
141 |
+
header('Content-type: application/zip');
|
142 |
+
echo $zip->file();
|
143 |
+
n2_exit(true);
|
144 |
+
} else {
|
145 |
+
$file = preg_replace('/[^a-zA-Z0-9_-]/', '', $this->backup->slider['title']) . '.ss3';
|
146 |
+
$folder = N2Platform::getPublicDir();
|
147 |
+
$folder .= '/export/';
|
148 |
+
if (!N2Filesystem::existsFolder($folder)) {
|
149 |
+
N2Filesystem::createFolder($folder);
|
150 |
+
}
|
151 |
+
N2Filesystem::createFile($folder . $file, $zip->file());
|
152 |
+
}
|
153 |
+
}
|
154 |
+
}
|
155 |
+
|
156 |
+
public function createHTML($isZIP = true) {
|
157 |
+
$this->files = array();
|
158 |
+
ob_end_clean();
|
159 |
+
N2AssetsManager::createStack();
|
160 |
+
|
161 |
+
N2AssetsPredefined::frontend(true);
|
162 |
+
|
163 |
+
ob_start();
|
164 |
+
N2Base::getApplication("smartslider")
|
165 |
+
->getApplicationType('widget')
|
166 |
+
->render(array(
|
167 |
+
"controller" => 'home',
|
168 |
+
"action" => N2Platform::getPlatform(),
|
169 |
+
"useRequest" => false
|
170 |
+
), array(
|
171 |
+
$this->sliderId,
|
172 |
+
'Export as HTML'
|
173 |
+
));
|
174 |
+
|
175 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
176 |
+
$slider = $slidersModel->get($this->sliderId);
|
177 |
+
$sliderHTML = ob_get_clean();
|
178 |
+
$headHTML = '';
|
179 |
+
|
180 |
+
$css = N2AssetsManager::getCSS(true);
|
181 |
+
foreach ($css['url'] AS $url) {
|
182 |
+
$headHTML .= NHtml::style($url, true, array(
|
183 |
+
'media' => 'screen, print'
|
184 |
+
)) . "\n";
|
185 |
+
}
|
186 |
+
array_unshift($css['files'], N2LIBRARYASSETS . '/normalize.css');
|
187 |
+
foreach ($css['files'] AS $file) {
|
188 |
+
$path = 'css/' . basename($file);
|
189 |
+
$this->files[$path] = file_get_contents($file);
|
190 |
+
$headHTML .= NHtml::style($path, true, array(
|
191 |
+
'media' => 'screen, print'
|
192 |
+
)) . "\n";
|
193 |
+
}
|
194 |
+
|
195 |
+
if ($css['inline'] != '') {
|
196 |
+
$headHTML .= NHtml::style($css['inline']) . "\n";
|
197 |
+
}
|
198 |
+
|
199 |
+
$js = N2AssetsManager::getJs(true);
|
200 |
+
|
201 |
+
if ($js['globalInline'] != '') {
|
202 |
+
$headHTML .= NHtml::script($js['globalInline']) . "\n";
|
203 |
+
}
|
204 |
+
|
205 |
+
foreach ($js['url'] AS $url) {
|
206 |
+
$headHTML .= NHtml::script($url, true) . "\n";
|
207 |
+
}
|
208 |
+
foreach ($js['files'] AS $file) {
|
209 |
+
$path = 'js/' . basename($file);
|
210 |
+
$this->files[$path] = file_get_contents($file);
|
211 |
+
$headHTML .= NHtml::script($path, true) . "\n";
|
212 |
+
}
|
213 |
+
|
214 |
+
if ($js['inline'] != '') {
|
215 |
+
$headHTML .= NHtml::script($js['inline']) . "\n";
|
216 |
+
}
|
217 |
+
|
218 |
+
$sliderHTML = preg_replace_callback('/(src|data-desktop|data-tablet|data-mobile)=["|\'](.*?)["|\']/i', array(
|
219 |
+
$this,
|
220 |
+
'replaceHTMLImage'
|
221 |
+
), $sliderHTML);
|
222 |
+
|
223 |
+
$sliderHTML = preg_replace_callback('/url\(\s*([\'"]|('))?(\S*\.(?:jpe?g|gif|png))([\'"]|('))?\s*\)[^;}]*?/i', array(
|
224 |
+
$this,
|
225 |
+
'replaceHTMLBGImage'
|
226 |
+
), $sliderHTML);
|
227 |
+
|
228 |
+
$sliderHTML = preg_replace_callback('/(n2-lightbox-urls)=["|\'](.*?)["|\']/i', array(
|
229 |
+
$this,
|
230 |
+
'replaceLightboxImages'
|
231 |
+
), $sliderHTML);
|
232 |
+
|
233 |
+
$headHTML = preg_replace_callback('/"([^"]*?\.(jpg|png|gif|jpeg))"/i', array(
|
234 |
+
$this,
|
235 |
+
'replaceJSON'
|
236 |
+
), $headHTML);
|
237 |
+
|
238 |
+
$this->files['index.html'] = "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge, chrome=1\">\n<title>" . $slider['title'] . "</title>\n" . $headHTML . "</head>\n<body>\n" . $sliderHTML . "</body>\n</html>";
|
239 |
+
|
240 |
+
if (!$isZIP) {
|
241 |
+
return $this->files;
|
242 |
+
}
|
243 |
+
|
244 |
+
$zip = new N2ZipFile();
|
245 |
+
foreach ($this->files AS $path => $content) {
|
246 |
+
$zip->addFile($content, $path);
|
247 |
+
}
|
248 |
+
ob_end_clean();
|
249 |
+
header('Content-disposition: attachment; filename=' . preg_replace('/[^a-zA-Z0-9_-]/', '', $slider['title']) . '.zip');
|
250 |
+
header('Content-type: application/zip');
|
251 |
+
echo $zip->file();
|
252 |
+
n2_exit(true);
|
253 |
+
}
|
254 |
+
|
255 |
+
private static function addProtocol($image) {
|
256 |
+
if (substr($image, 0, 2) == '//') {
|
257 |
+
return 'http:' . $image;
|
258 |
+
}
|
259 |
+
return $image;
|
260 |
+
}
|
261 |
+
|
262 |
+
public function replaceHTMLImage($found) {
|
263 |
+
$path = N2Filesystem::absoluteURLToPath(self::addProtocol($found[2]));
|
264 |
+
if ($path == $found[2]) {
|
265 |
+
return $found[0];
|
266 |
+
}
|
267 |
+
if (N2Filesystem::fileexists($path)) {
|
268 |
+
if (!isset($this->imageTranslation[$path])) {
|
269 |
+
$fileName = strtolower(basename($path));
|
270 |
+
while (in_array($fileName, $this->usedNames)) {
|
271 |
+
$fileName = $this->uniqueCounter . $fileName;
|
272 |
+
$this->uniqueCounter++;
|
273 |
+
}
|
274 |
+
$this->usedNames[] = $fileName;
|
275 |
+
$this->files['images/' . $fileName] = file_get_contents($path);
|
276 |
+
$this->imageTranslation[$path] = $fileName;
|
277 |
+
} else {
|
278 |
+
$fileName = $this->imageTranslation[$path];
|
279 |
+
}
|
280 |
+
return str_replace($found[2], 'images/' . $fileName, $found[0]);
|
281 |
+
} else {
|
282 |
+
return $found[0];
|
283 |
+
}
|
284 |
+
}
|
285 |
+
|
286 |
+
public function replaceLightboxImages($found) {
|
287 |
+
$images = explode(',', $found[2]);
|
288 |
+
foreach ($images AS $k => $image) {
|
289 |
+
$images[$k] = $this->replaceHTMLImage(array(
|
290 |
+
$image,
|
291 |
+
'',
|
292 |
+
$image
|
293 |
+
));
|
294 |
+
}
|
295 |
+
return 'n2-lightbox-urls="' . implode(',', $images) . '"';
|
296 |
+
}
|
297 |
+
|
298 |
+
public function replaceHTMLBGImage($found) {
|
299 |
+
$path = $this->replaceHTMLImage(array(
|
300 |
+
$found[3],
|
301 |
+
'',
|
302 |
+
$found[3]
|
303 |
+
));
|
304 |
+
return str_replace($found[3], $path, $found[0]);
|
305 |
+
}
|
306 |
+
|
307 |
+
public function replaceJSON($found) {
|
308 |
+
$image = str_replace('\\/', '/', $found[1]);
|
309 |
+
$path = $this->replaceHTMLImage(array(
|
310 |
+
$image,
|
311 |
+
'',
|
312 |
+
$image
|
313 |
+
));
|
314 |
+
return str_replace($found[1], str_replace('/', '\\/', $path), $found[0]);
|
315 |
+
}
|
316 |
+
|
317 |
+
public function addImage($image) {
|
318 |
+
if (!empty($image)) {
|
319 |
+
$this->images[] = $image;
|
320 |
+
}
|
321 |
+
}
|
322 |
+
|
323 |
+
public function addLightbox($url) {
|
324 |
+
preg_match('/^([a-zA-Z]+)\[(.*)]/', $url, $matches);
|
325 |
+
if (!empty($matches)) {
|
326 |
+
if ($matches[1] == 'lightbox') {
|
327 |
+
$images = explode(',', $matches[2]);
|
328 |
+
foreach ($images AS $image) {
|
329 |
+
$this->addImage($image);
|
330 |
+
}
|
331 |
+
}
|
332 |
+
}
|
333 |
+
}
|
334 |
+
|
335 |
+
public function addVisual($id) {
|
336 |
+
if (is_numeric($id) && $id > 10000) {
|
337 |
+
$this->visuals[] = $id;
|
338 |
+
}
|
339 |
+
}
|
340 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/import.php
ADDED
@@ -0,0 +1,194 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.zip.zip_read');
|
3 |
+
N2Loader::import('libraries.backup', 'smartslider');
|
4 |
+
|
5 |
+
class N2SmartSliderImport
|
6 |
+
{
|
7 |
+
|
8 |
+
/**
|
9 |
+
* @var N2SmartSliderBackup
|
10 |
+
*/
|
11 |
+
private $backup;
|
12 |
+
private $imageTranslation = array();
|
13 |
+
private $sectionTranslation = array();
|
14 |
+
|
15 |
+
private $sliderId = 0;
|
16 |
+
|
17 |
+
public function import($filePathOrData, $imageImportMode = 'clone', $linkedVisuals = 1, $isFilePath = true) {
|
18 |
+
$zip = new N2ZipRead();
|
19 |
+
$importData = $zip->read_zip($filePathOrData, $isFilePath);
|
20 |
+
if (!isset($importData['data'])) {
|
21 |
+
return false;
|
22 |
+
}
|
23 |
+
$this->backup = unserialize($importData['data']);
|
24 |
+
|
25 |
+
$this->sectionTranslation = array();
|
26 |
+
$this->importVisuals($this->backup->visuals, $linkedVisuals);
|
27 |
+
|
28 |
+
|
29 |
+
$sliderModel = new N2SmartsliderSlidersModel();
|
30 |
+
$this->sliderId = $sliderModel->import($this->backup->slider);
|
31 |
+
if (!$this->sliderId) {
|
32 |
+
return false;
|
33 |
+
}
|
34 |
+
switch ($imageImportMode) {
|
35 |
+
case 'clone':
|
36 |
+
$images = $importData['images'];
|
37 |
+
$imageStore = new N2StoreImage('slider' . $this->sliderId, true);
|
38 |
+
foreach ($images AS $file => $content) {
|
39 |
+
$localImage = $imageStore->makeCache($file, $content);
|
40 |
+
if ($localImage) {
|
41 |
+
$this->imageTranslation[$file] = N2ImageHelper::dynamic(N2Uri::pathToUri($localImage));
|
42 |
+
} else {
|
43 |
+
$this->imageTranslation[$file] = $file;
|
44 |
+
}
|
45 |
+
if (!$this->imageTranslation[$file]) {
|
46 |
+
$this->imageTranslation[$file] = array_search($file, $this->backup->imageTranslation);
|
47 |
+
}
|
48 |
+
}
|
49 |
+
break;
|
50 |
+
case 'update':
|
51 |
+
$keys = array_keys($this->backup->NextendImageHelper_Export);
|
52 |
+
$values = array_values($this->backup->NextendImageHelper_Export);
|
53 |
+
foreach ($this->backup->imageTranslation AS $image => $value) {
|
54 |
+
$this->imageTranslation[$value] = str_replace($keys, $values, $image);
|
55 |
+
}
|
56 |
+
break;
|
57 |
+
default:
|
58 |
+
break;
|
59 |
+
}
|
60 |
+
|
61 |
+
foreach ($this->backup->NextendImageManager_ImageData AS $image => $data) {
|
62 |
+
$data['tablet']['image'] = $this->fixImage($data['tablet']['image']);
|
63 |
+
$data['mobile']['image'] = $this->fixImage($data['mobile']['image']);
|
64 |
+
N2ImageManager::addImageData($this->fixImage($image), $data);
|
65 |
+
}
|
66 |
+
|
67 |
+
unset($importData);
|
68 |
+
|
69 |
+
if (empty($this->backup->slider['type'])) {
|
70 |
+
$this->backup->slider['type'] = 'simple';
|
71 |
+
}
|
72 |
+
|
73 |
+
$class = 'N2SSPluginType' . $this->backup->slider['type'];
|
74 |
+
N2Loader::importPath(call_user_func(array(
|
75 |
+
$class,
|
76 |
+
"getPath"
|
77 |
+
)) . NDS . 'backup');
|
78 |
+
|
79 |
+
$class = 'N2SmartSliderBackup' . $this->backup->slider['type'];
|
80 |
+
call_user_func_array(array(
|
81 |
+
$class,
|
82 |
+
'import'
|
83 |
+
), array(
|
84 |
+
$this,
|
85 |
+
&$this->backup->slider
|
86 |
+
));
|
87 |
+
|
88 |
+
|
89 |
+
$enabledWidgets = array();
|
90 |
+
$plugins = array();
|
91 |
+
N2Plugin::callPlugin('sswidget', 'onWidgetList', array(&$plugins));
|
92 |
+
|
93 |
+
$params = $this->backup->slider['params'];
|
94 |
+
foreach ($plugins AS $k => $v) {
|
95 |
+
$widget = $params->get('widget' . $k);
|
96 |
+
if ($widget && $widget != 'disabled') {
|
97 |
+
$enabledWidgets[$k] = $widget;
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
foreach ($enabledWidgets AS $k => $v) {
|
102 |
+
$class = 'N2SSPluginWidget' . $k . $v;
|
103 |
+
if (class_exists($class, false)) {
|
104 |
+
$params->fillDefault(call_user_func(array(
|
105 |
+
$class,
|
106 |
+
'getDefaults'
|
107 |
+
)));
|
108 |
+
|
109 |
+
call_user_func_array(array(
|
110 |
+
$class,
|
111 |
+
'prepareImport'
|
112 |
+
), array(
|
113 |
+
$this,
|
114 |
+
$params
|
115 |
+
));
|
116 |
+
} else {
|
117 |
+
unset($enabledWidgets);
|
118 |
+
}
|
119 |
+
}
|
120 |
+
|
121 |
+
$sliderModel->importUpdate($this->sliderId, $params);
|
122 |
+
|
123 |
+
$generatorTranslation = array();
|
124 |
+
N2Loader::import("models.generator", "smartslider");
|
125 |
+
$generatorModel = new N2SmartsliderGeneratorModel();
|
126 |
+
foreach ($this->backup->generators as $generator) {
|
127 |
+
$generatorTranslation[$generator['id']] = $generatorModel->import($generator);
|
128 |
+
}
|
129 |
+
|
130 |
+
|
131 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
132 |
+
for ($i = 0; $i < count($this->backup->slides); $i++) {
|
133 |
+
$slide = $this->backup->slides[$i];
|
134 |
+
$slide['params'] = new N2Data($slide['params'], true);
|
135 |
+
$slide['thumbnail'] = $this->fixImage($slide['thumbnail']);
|
136 |
+
$slide['params']->set('backgroundImage', $this->fixImage($slide['params']->get('backgroundImage')));
|
137 |
+
$slide['params']->set('link', $this->fixLightbox($slide['params']->get('link')));
|
138 |
+
|
139 |
+
$slide['slide'] = N2SmartSliderLayer::prepareImport($this, $slide['slide']);
|
140 |
+
|
141 |
+
if (isset($generatorTranslation[$slide['generator_id']])) {
|
142 |
+
$slide['generator_id'] = $generatorTranslation[$slide['generator_id']];
|
143 |
+
}
|
144 |
+
$slidesModel->import($slide, $this->sliderId);
|
145 |
+
}
|
146 |
+
return $this->sliderId;
|
147 |
+
}
|
148 |
+
|
149 |
+
public function fixImage($image) {
|
150 |
+
if (isset($this->backup->imageTranslation[$image]) && isset($this->imageTranslation[$this->backup->imageTranslation[$image]])) {
|
151 |
+
return $this->imageTranslation[$this->backup->imageTranslation[$image]];
|
152 |
+
}
|
153 |
+
return $image;
|
154 |
+
}
|
155 |
+
|
156 |
+
public function fixSection($idOrRaw) {
|
157 |
+
if (isset($this->sectionTranslation[$idOrRaw])) {
|
158 |
+
return $this->sectionTranslation[$idOrRaw];
|
159 |
+
}
|
160 |
+
return $idOrRaw;
|
161 |
+
}
|
162 |
+
|
163 |
+
public function fixLightbox($url) {
|
164 |
+
preg_match('/^([a-zA-Z]+)\[(.*)](.*)/', $url, $matches);
|
165 |
+
if (!empty($matches) && $matches[1] == 'lightbox') {
|
166 |
+
$images = explode(',', $matches[2]);
|
167 |
+
$newImages = array();
|
168 |
+
foreach ($images AS $image) {
|
169 |
+
$newImages[] = $this->fixImage($image);
|
170 |
+
}
|
171 |
+
$url = 'lightbox[' . implode(',', $newImages) . ']' . $matches[3];
|
172 |
+
}
|
173 |
+
return $url;
|
174 |
+
}
|
175 |
+
|
176 |
+
private function importVisuals($records, $linkedVisuals) {
|
177 |
+
if (count($records)) {
|
178 |
+
if (!$linkedVisuals) {
|
179 |
+
foreach ($records AS $record) {
|
180 |
+
$this->sectionTranslation[$record['id']] = $record['value'];
|
181 |
+
}
|
182 |
+
} else {
|
183 |
+
$sets = array();
|
184 |
+
foreach ($records AS $record) {
|
185 |
+
$storage = N2Base::getApplication($record['application'])->storage;
|
186 |
+
if (!isset($sets[$record['application'] . '_' . $record['section']])) {
|
187 |
+
$sets[$record['application'] . '_' . $record['section']] = $storage->add($record['section'] . 'set', null, $this->backup->slider['title']);
|
188 |
+
}
|
189 |
+
$this->sectionTranslation[$record['id']] = $storage->add($record['section'], $sets[$record['application'] . '_' . $record['section']], $record['value']);
|
190 |
+
}
|
191 |
+
}
|
192 |
+
}
|
193 |
+
}
|
194 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/layout/storage.php
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderLayoutStorage
|
4 |
+
{
|
5 |
+
|
6 |
+
private static $sets = array();
|
7 |
+
|
8 |
+
private static $visual = array();
|
9 |
+
|
10 |
+
private static $visualBySet = array();
|
11 |
+
|
12 |
+
private static $visualById = array();
|
13 |
+
|
14 |
+
public static function init() {
|
15 |
+
N2Pluggable::addAction('smartsliderlayoutset', 'N2SmartSliderLayoutStorage::visualSet');
|
16 |
+
N2Pluggable::addAction('smartsliderlayout', 'N2SmartSliderLayoutStorage::visuals');
|
17 |
+
N2Pluggable::addAction('layout', 'N2SmartSliderLayoutStorage::visual');
|
18 |
+
}
|
19 |
+
|
20 |
+
private static function load() {
|
21 |
+
static $loaded;
|
22 |
+
if (!$loaded) {
|
23 |
+
N2Pluggable::doAction('layoutStorage', array(
|
24 |
+
&self::$sets,
|
25 |
+
&self::$visual
|
26 |
+
));
|
27 |
+
|
28 |
+
for ($i = 0; $i < count(self::$visual); $i++) {
|
29 |
+
if (!is_array(self::$visualBySet[self::$visual[$i]['referencekey']])) {
|
30 |
+
self::$visualBySet[self::$visual[$i]['referencekey']] = array();
|
31 |
+
}
|
32 |
+
self::$visualBySet[self::$visual[$i]['referencekey']][] = &self::$visual[$i];
|
33 |
+
self::$visualById[self::$visual[$i]['id']] = &self::$visual[$i];
|
34 |
+
}
|
35 |
+
$loaded = true;
|
36 |
+
}
|
37 |
+
}
|
38 |
+
|
39 |
+
public static function visualSet($referenceKey, &$sets) {
|
40 |
+
self::load();
|
41 |
+
|
42 |
+
for ($i = count(self::$sets) - 1; $i >= 0; $i--) {
|
43 |
+
self::$sets[$i]['system'] = 1;
|
44 |
+
self::$sets[$i]['editable'] = 0;
|
45 |
+
array_unshift($sets, self::$sets[$i]);
|
46 |
+
}
|
47 |
+
|
48 |
+
}
|
49 |
+
|
50 |
+
public static function visuals($referenceKey, &$visuals) {
|
51 |
+
self::load();
|
52 |
+
if (isset(self::$visualBySet[$referenceKey])) {
|
53 |
+
$_visual = &self::$visualBySet[$referenceKey];
|
54 |
+
for ($i = count($_visual) - 1; $i >= 0; $i--) {
|
55 |
+
$_visual[$i]['system'] = 1;
|
56 |
+
$_visual[$i]['editable'] = 0;
|
57 |
+
array_unshift($visuals, $_visual[$i]);
|
58 |
+
}
|
59 |
+
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
63 |
+
public static function visual($id, &$visual) {
|
64 |
+
self::load();
|
65 |
+
if (isset(self::$visualById[$id])) {
|
66 |
+
self::$visualById[$id]['system'] = 1;
|
67 |
+
self::$visualById[$id]['editable'] = 0;
|
68 |
+
$visual = self::$visualById[$id];
|
69 |
+
}
|
70 |
+
}
|
71 |
+
}
|
72 |
+
|
73 |
+
N2SmartSliderLayoutStorage::init();
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/link.php
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.link.link');
|
3 |
+
|
4 |
+
class N2LinkNextSlide
|
5 |
+
{
|
6 |
+
|
7 |
+
public static function parse($argument, &$attributes, $isEditor = false) {
|
8 |
+
if (!$isEditor) {
|
9 |
+
$attributes['onclick'] = "n2ss.applyAction(this, 'next'); return false";
|
10 |
+
}
|
11 |
+
return '#';
|
12 |
+
}
|
13 |
+
}
|
14 |
+
|
15 |
+
class N2LinkPreviousSlide
|
16 |
+
{
|
17 |
+
|
18 |
+
public static function parse($argument, &$attributes, $isEditor = false) {
|
19 |
+
if (!$isEditor) {
|
20 |
+
$attributes['onclick'] = "n2ss.applyAction(this, 'previous'); return false";
|
21 |
+
}
|
22 |
+
return '#';
|
23 |
+
}
|
24 |
+
}
|
25 |
+
|
26 |
+
class N2LinkGoToSlide
|
27 |
+
{
|
28 |
+
|
29 |
+
public static function parse($argument, &$attributes, $isEditor = false) {
|
30 |
+
if (!$isEditor) {
|
31 |
+
$attributes['onclick'] = "n2ss.applyAction(this, 'slide', " . intval($argument) . "); return false";
|
32 |
+
}
|
33 |
+
return '#';
|
34 |
+
}
|
35 |
+
}
|
36 |
+
|
37 |
+
class N2LinkSlideEvent
|
38 |
+
{
|
39 |
+
|
40 |
+
public static function parse($argument, &$attributes, $isEditor = false) {
|
41 |
+
if (!$isEditor) {
|
42 |
+
$attributes['onclick'] = "n2ss.trigger(this, '" . $argument . "'); return false";
|
43 |
+
}
|
44 |
+
return '#';
|
45 |
+
}
|
46 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/plugins/N2SliderGeneratorPluginAbstract.php
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.parse.parse');
|
4 |
+
|
5 |
+
abstract class N2SliderGeneratorPluginAbstract extends N2PluginBase
|
6 |
+
{
|
7 |
+
|
8 |
+
public abstract function onGeneratorList(&$group, &$list);
|
9 |
+
}
|
10 |
+
|
11 |
+
class N2GeneratorInfo
|
12 |
+
{
|
13 |
+
|
14 |
+
public $group, $title, $path, $installed = true, $type = '', $readMore = '', $hasConfiguration = false, $configurationClass = '';
|
15 |
+
|
16 |
+
private $configuration;
|
17 |
+
|
18 |
+
public static function getInstance($group, $title, $path) {
|
19 |
+
return new N2GeneratorInfo($group, $title, $path);
|
20 |
+
}
|
21 |
+
|
22 |
+
public function __construct($group, $title, $path) {
|
23 |
+
$this->group = $group;
|
24 |
+
$this->title = $title;
|
25 |
+
$this->path = $path;
|
26 |
+
}
|
27 |
+
|
28 |
+
public function getConfiguration() {
|
29 |
+
if (!$this->configuration) {
|
30 |
+
require_once $this->path . '/../configuration.php';
|
31 |
+
$class = $this->configurationClass;
|
32 |
+
$this->configuration = new $class($this);
|
33 |
+
}
|
34 |
+
return $this->configuration;
|
35 |
+
}
|
36 |
+
|
37 |
+
public function setInstalled($installed = true) {
|
38 |
+
$this->installed = $installed;
|
39 |
+
return $this;
|
40 |
+
}
|
41 |
+
|
42 |
+
public function isInstalled() {
|
43 |
+
return $this->installed;
|
44 |
+
}
|
45 |
+
|
46 |
+
public function setUrl($url) {
|
47 |
+
$this->readMore = $url;
|
48 |
+
return $this;
|
49 |
+
}
|
50 |
+
|
51 |
+
public function setType($type) {
|
52 |
+
$this->type = $type;
|
53 |
+
return $this;
|
54 |
+
}
|
55 |
+
|
56 |
+
public function setConfiguration($configurationClass) {
|
57 |
+
$this->configurationClass = $configurationClass;
|
58 |
+
$this->hasConfiguration = true;
|
59 |
+
return $this;
|
60 |
+
}
|
61 |
+
|
62 |
+
public function setData($key, $value) {
|
63 |
+
$this->{$key} = $value;
|
64 |
+
return $this;
|
65 |
+
}
|
66 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/plugins/N2SliderItemAbstract.php
ADDED
@@ -0,0 +1,208 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.parse.parse');
|
4 |
+
|
5 |
+
abstract class N2SSPluginItemAbstract extends N2PluginBase
|
6 |
+
{
|
7 |
+
|
8 |
+
public $_identifier = 'identifier';
|
9 |
+
|
10 |
+
public $_title = '';
|
11 |
+
|
12 |
+
protected $layerProperties = array();
|
13 |
+
|
14 |
+
protected $priority = 1;
|
15 |
+
|
16 |
+
protected $isEditor = false;
|
17 |
+
|
18 |
+
public function onNextendSliderItemList(&$list) {
|
19 |
+
$slider = N2Base::getApplication('smartslider')
|
20 |
+
->get('sliderManager')
|
21 |
+
->getSlider();
|
22 |
+
$list[$this->_identifier] = array(
|
23 |
+
$this->_title,
|
24 |
+
$this->getTemplate($slider),
|
25 |
+
$this->getPrefilledTemplate($slider),
|
26 |
+
json_encode($this->getValues()),
|
27 |
+
$this->getPath(),
|
28 |
+
$this->layerProperties,
|
29 |
+
$this->priority
|
30 |
+
);
|
31 |
+
}
|
32 |
+
|
33 |
+
public function onNextendSliderItemShortcode(&$list) {
|
34 |
+
$list[$this->_identifier] = $this;
|
35 |
+
}
|
36 |
+
|
37 |
+
public function getLayerProperties() {
|
38 |
+
return $this->layerProperties;
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Here comes the HTML source of the item. {param_name} are identifier for the parameters in the configuration.xml params(linked with the parameter name).
|
43 |
+
* Parser.js may define custom variables for this.
|
44 |
+
*
|
45 |
+
* @param $slider N2SmartSliderAbstract
|
46 |
+
*
|
47 |
+
* @return string
|
48 |
+
*/
|
49 |
+
public function getTemplate($slider) {
|
50 |
+
return "{nothing}";
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* @param $data
|
55 |
+
* @param $id
|
56 |
+
* @param $slider N2SmartSliderAbstract
|
57 |
+
* @param $slide
|
58 |
+
*
|
59 |
+
* @return string
|
60 |
+
*/
|
61 |
+
public function render($data, $id, $slider, $slide) {
|
62 |
+
return $this->_render($data, $id, $slider, $slide);
|
63 |
+
}
|
64 |
+
|
65 |
+
public function renderAdmin($data, $id, $slider, $slide) {
|
66 |
+
$this->isEditor = true;
|
67 |
+
|
68 |
+
$json = $data->toJson();
|
69 |
+
return NHtml::tag("div", array(
|
70 |
+
"class" => "n2-ss-item n2-ss-item-" . $this->_identifier,
|
71 |
+
"data-item" => $this->_identifier,
|
72 |
+
"data-itemvalues" => $json
|
73 |
+
), $this->_renderAdmin($data, $id, $slider, $slide));
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* @param $data
|
78 |
+
* @param $itemId
|
79 |
+
* @param $slider N2SmartSliderAbstract
|
80 |
+
* @param $slide N2SmartSliderSlide
|
81 |
+
*
|
82 |
+
* @return string
|
83 |
+
*/
|
84 |
+
public function _render($data, $itemId, $slider, $slide) {
|
85 |
+
return $this->getTemplate($slider);
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* @param $data
|
90 |
+
* @param $itemId
|
91 |
+
* @param $slider N2SmartSliderAbstract
|
92 |
+
* @param $slide N2SmartSliderSlide
|
93 |
+
*
|
94 |
+
* @return string
|
95 |
+
*/
|
96 |
+
public function _renderAdmin($data, $itemId, $slider, $slide) {
|
97 |
+
return $this->getTemplate($slider);
|
98 |
+
}
|
99 |
+
|
100 |
+
/*
|
101 |
+
* Set default values into the template
|
102 |
+
*/
|
103 |
+
public function getPrefilledTemplate($slider) {
|
104 |
+
$html = $this->getTemplate($slider);
|
105 |
+
foreach ($this->getValues() AS $k => $v) {
|
106 |
+
$html = str_replace('{' . $k . '}', $v, $html);
|
107 |
+
}
|
108 |
+
return $html;
|
109 |
+
}
|
110 |
+
|
111 |
+
/*
|
112 |
+
* Default values, which will be parsed by JS on the admin for default values. It should contain only the fields from the configuration.xml.
|
113 |
+
*/
|
114 |
+
public function getValues() {
|
115 |
+
return array(
|
116 |
+
'nothing' => 'Abstract'
|
117 |
+
);
|
118 |
+
}
|
119 |
+
|
120 |
+
public function getPath() {
|
121 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . $this->_identifier . DIRECTORY_SEPARATOR;
|
122 |
+
}
|
123 |
+
|
124 |
+
public static function sortItems(&$items) {
|
125 |
+
uasort($items, 'N2SSPluginItemAbstract::compareItems');
|
126 |
+
}
|
127 |
+
|
128 |
+
public static function compareItems($a, $b) {
|
129 |
+
return ($a[6] < $b[6]) ? -1 : 1;
|
130 |
+
}
|
131 |
+
|
132 |
+
protected function getLink($slide, $data, $content, $attributes = array(), $renderEmpty = false) {
|
133 |
+
|
134 |
+
N2Loader::import('libraries.link.link');
|
135 |
+
|
136 |
+
list($link, $target) = (array)N2Parse::parse($data->get('link', '#|*|'));
|
137 |
+
if (!$target) {
|
138 |
+
$target = '';
|
139 |
+
}
|
140 |
+
|
141 |
+
if ($link != '#' || $renderEmpty === true) {
|
142 |
+
$link = N2LinkParser::parse($slide->fill($link), $attributes, $this->isEditor);
|
143 |
+
return NHtml::link($content, $link, $attributes + array(
|
144 |
+
"target" => $target
|
145 |
+
));
|
146 |
+
}
|
147 |
+
return $content;
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* @param $slide N2SmartSliderSlide
|
152 |
+
* @param $data N2Data
|
153 |
+
*
|
154 |
+
* @return N2Data
|
155 |
+
*/
|
156 |
+
public function getFilled($slide, $data) {
|
157 |
+
return $data;
|
158 |
+
}
|
159 |
+
|
160 |
+
/**
|
161 |
+
* @param N2SmartSliderExport $export
|
162 |
+
* @param $data
|
163 |
+
*/
|
164 |
+
public function prepareExport($export, $data) {
|
165 |
+
}
|
166 |
+
|
167 |
+
/**
|
168 |
+
* @param N2SmartSliderImport $import
|
169 |
+
* @param N2Data $data
|
170 |
+
*
|
171 |
+
* @return N2Data
|
172 |
+
*/
|
173 |
+
public function prepareImport($import, $data) {
|
174 |
+
return $data;
|
175 |
+
}
|
176 |
+
|
177 |
+
protected static function optimizeImage($image, $data, $slider) {
|
178 |
+
$lazyLoad = $slider->features->lazyLoad;
|
179 |
+
|
180 |
+
$imagePath = N2ImageHelper::fixed($image, true);
|
181 |
+
if ($imagePath[0] == '/' && $imagePath[1] != '/' && $lazyLoad->layerImageSizeBase64 && $lazyLoad->layerImageSizeBase64Size && filesize($imagePath) < $lazyLoad->layerImageSizeBase64Size) {
|
182 |
+
return array(
|
183 |
+
'src' => N2Image::base64($imagePath, $image)
|
184 |
+
);
|
185 |
+
}
|
186 |
+
if (!$lazyLoad->layerImageOptimize || !$data->get('image-optimize', 1)) {
|
187 |
+
return array(
|
188 |
+
'src' => N2ImageHelper::fixed($image)
|
189 |
+
);
|
190 |
+
}
|
191 |
+
|
192 |
+
$tablet = N2Image::scaleImage('image', $image, $lazyLoad->layerImageTablet);
|
193 |
+
$mobile = N2Image::scaleImage('image', $image, $lazyLoad->layerImageMobile);
|
194 |
+
|
195 |
+
if ($image == $tablet && $image == $mobile) {
|
196 |
+
return array(
|
197 |
+
'src' => N2ImageHelper::fixed($image)
|
198 |
+
);
|
199 |
+
}
|
200 |
+
return array(
|
201 |
+
'src' => N2Image::base64Transparent(),
|
202 |
+
'data-desktop' => N2ImageHelper::fixed($image),
|
203 |
+
'data-tablet' => N2ImageHelper::fixed($tablet),
|
204 |
+
'data-mobile' => N2ImageHelper::fixed($mobile),
|
205 |
+
'data-device' => '1'
|
206 |
+
);
|
207 |
+
}
|
208 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/plugins/N2SliderWidgetAbstract.php
ADDED
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.parse.parse');
|
4 |
+
|
5 |
+
class N2SSPluginWidgetAbstract extends N2PluginBase
|
6 |
+
{
|
7 |
+
|
8 |
+
static function getDefaults() {
|
9 |
+
return array();
|
10 |
+
}
|
11 |
+
|
12 |
+
public static function getDisplayAttributes(&$params, $key) {
|
13 |
+
$class = 'n2-ss-widget ';
|
14 |
+
|
15 |
+
if ($params->get($key . 'display-desktop', 1)) $class .= 'n2-ss-widget-display-desktop ';
|
16 |
+
if ($params->get($key . 'display-tablet', 1)) $class .= 'n2-ss-widget-display-tablet ';
|
17 |
+
if ($params->get($key . 'display-mobile', 1)) $class .= 'n2-ss-widget-display-mobile ';
|
18 |
+
|
19 |
+
if ($params->get($key . 'display-hover', 0)) $class .= 'n2-ss-widget-display-hover ';
|
20 |
+
|
21 |
+
$attributes = array();
|
22 |
+
|
23 |
+
$excludeSlides = $params->get($key . 'exclude-slides', '');
|
24 |
+
if (!empty($excludeSlides)) {
|
25 |
+
$attributes['data-exclude-slides'] = $excludeSlides;
|
26 |
+
}
|
27 |
+
|
28 |
+
return array(
|
29 |
+
$class,
|
30 |
+
$attributes
|
31 |
+
);
|
32 |
+
}
|
33 |
+
|
34 |
+
static function getPositions(&$params) {
|
35 |
+
return array();
|
36 |
+
}
|
37 |
+
|
38 |
+
public static function getPosition(&$params, $key) {
|
39 |
+
$attributes = array();
|
40 |
+
$style = 'position: absolute;';
|
41 |
+
|
42 |
+
$side = $params->get($key . 'position-horizontal', 'left');
|
43 |
+
$position = $params->get($key . 'position-horizontal-position', 0);
|
44 |
+
$unit = $params->get($key . 'position-horizontal-unit', 'px');
|
45 |
+
|
46 |
+
if (!is_numeric($position)) {
|
47 |
+
$attributes['data-ss' . $side] = $position;
|
48 |
+
} else {
|
49 |
+
$style .= $side . ':' . $position . $unit . ';';
|
50 |
+
}
|
51 |
+
|
52 |
+
$side = $params->get($key . 'position-vertical', 'top');
|
53 |
+
$position = $params->get($key . 'position-vertical-position', 0);
|
54 |
+
$unit = $params->get($key . 'position-vertical-unit', 'px');
|
55 |
+
|
56 |
+
if (!is_numeric($position)) {
|
57 |
+
$attributes['data-ss' . $side] = $position;
|
58 |
+
} else {
|
59 |
+
$style .= $side . ':' . $position . $unit . ';';
|
60 |
+
}
|
61 |
+
|
62 |
+
return array(
|
63 |
+
$style,
|
64 |
+
$attributes
|
65 |
+
);
|
66 |
+
}
|
67 |
+
|
68 |
+
public static function getOrientationByPosition($mode, $area, $default = 'horizontal') {
|
69 |
+
if ($mode == 'advanced') {
|
70 |
+
return $default;
|
71 |
+
}
|
72 |
+
switch ($area) {
|
73 |
+
case '5':
|
74 |
+
case '6':
|
75 |
+
case '7':
|
76 |
+
case '8':
|
77 |
+
return 'vertical';
|
78 |
+
break;
|
79 |
+
}
|
80 |
+
return 'horizontal';
|
81 |
+
}
|
82 |
+
|
83 |
+
public static function prepareExport($export, $params) {
|
84 |
+
}
|
85 |
+
|
86 |
+
public static function prepareImport($import, $params) {
|
87 |
+
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* @param N2SmartSlider $slider
|
92 |
+
* @param $id
|
93 |
+
* @param $params
|
94 |
+
*/
|
95 |
+
static function render($slider, $id, $params) {
|
96 |
+
|
97 |
+
}
|
98 |
+
|
99 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/settings/settings.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderSettings
|
4 |
+
{
|
5 |
+
|
6 |
+
static $settings = null;
|
7 |
+
|
8 |
+
private static $_type = "settings";
|
9 |
+
|
10 |
+
static function getAll() {
|
11 |
+
if (self::$settings === null) {
|
12 |
+
self::$settings = json_decode(N2Base::getApplication('smartslider')->storage->get(self::$_type), true);
|
13 |
+
if (self::$settings === null) self::$settings = array();
|
14 |
+
}
|
15 |
+
return self::$settings;
|
16 |
+
}
|
17 |
+
|
18 |
+
static function get($key, $default = null) {
|
19 |
+
if (self::$settings === null) self::getAll();
|
20 |
+
if (!array_key_exists($key, self::$settings)) return $default;
|
21 |
+
return self::$settings[$key];
|
22 |
+
}
|
23 |
+
|
24 |
+
static function set($key, $value) {
|
25 |
+
self::getAll();
|
26 |
+
self::$settings[$key] = $value;
|
27 |
+
N2SmartSliderSettings::store(self::$_type, json_encode(self::$settings));
|
28 |
+
}
|
29 |
+
|
30 |
+
static function store($key, $value) {
|
31 |
+
N2Base::getApplication('smartslider')->storage->set($key, '', $value);
|
32 |
+
}
|
33 |
+
|
34 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/abstract.php
ADDED
@@ -0,0 +1,272 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.mobiledetect.Mobile_Detect');
|
4 |
+
N2Loader::import('libraries.parse.font');
|
5 |
+
|
6 |
+
N2Loader::import('libraries.slider.type', 'smartslider');
|
7 |
+
N2Loader::import('libraries.slider.css', 'smartslider');
|
8 |
+
N2Loader::importAll('libraries.slider.features', 'smartslider');
|
9 |
+
N2Loader::import('libraries.slider.javascript', 'smartslider');
|
10 |
+
N2Loader::importAll('libraries.slider.slide', 'smartslider');
|
11 |
+
N2Loader::import('libraries.settings.settings', 'smartslider');
|
12 |
+
N2Loader::import('libraries.slider.widget.widgets', 'smartslider');
|
13 |
+
|
14 |
+
abstract class N2SmartSliderAbstract
|
15 |
+
{
|
16 |
+
|
17 |
+
public $sliderId = 0;
|
18 |
+
|
19 |
+
public $elementId = '';
|
20 |
+
|
21 |
+
public $cacheId = '';
|
22 |
+
|
23 |
+
public $data;
|
24 |
+
|
25 |
+
public $params;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* @var N2SmartSliderFeatures
|
29 |
+
*/
|
30 |
+
public $features;
|
31 |
+
|
32 |
+
public $disableResponsive = false;
|
33 |
+
|
34 |
+
protected $parameters = null;
|
35 |
+
|
36 |
+
/**
|
37 |
+
* @var N2SmartSliderSlides
|
38 |
+
*/
|
39 |
+
public $slidesBuilder;
|
40 |
+
|
41 |
+
/**
|
42 |
+
* @var N2SmartSliderSlide[]
|
43 |
+
*/
|
44 |
+
public $slides;
|
45 |
+
|
46 |
+
public $isAdmin = false;
|
47 |
+
|
48 |
+
public $_activeSlide = 0;
|
49 |
+
/**
|
50 |
+
* @var Mobile_Detect
|
51 |
+
*/
|
52 |
+
protected $device;
|
53 |
+
/**
|
54 |
+
* @var NextendSmartSliderCSS
|
55 |
+
*/
|
56 |
+
public $assets;
|
57 |
+
protected $cache = false;
|
58 |
+
|
59 |
+
public static $_identifier = 'n2-ss';
|
60 |
+
|
61 |
+
public $fontSize = 16;
|
62 |
+
|
63 |
+
/** @var N2SmartSliderSlide[] */
|
64 |
+
public $staticSlides = array();
|
65 |
+
|
66 |
+
/** @var N2SmartSliderType */
|
67 |
+
protected $sliderType;
|
68 |
+
|
69 |
+
public $staticHtml = '';
|
70 |
+
|
71 |
+
public $isStaticEdited = false;
|
72 |
+
|
73 |
+
public function __construct($sliderId, $parameters) {
|
74 |
+
|
75 |
+
$this->sliderId = $sliderId;
|
76 |
+
|
77 |
+
$this->setElementId();
|
78 |
+
|
79 |
+
if ($this->isAdmin) {
|
80 |
+
$this->cacheId = self::getAdminCacheId($this->sliderId);
|
81 |
+
} else {
|
82 |
+
$this->cacheId = self::getCacheId($this->sliderId);
|
83 |
+
}
|
84 |
+
|
85 |
+
$this->parameters = array_merge(array(
|
86 |
+
'extend' => array(),
|
87 |
+
'disableResponsive' => false,
|
88 |
+
'addDummySlidesIfEmpty' => false
|
89 |
+
), $parameters);
|
90 |
+
|
91 |
+
$this->disableResponsive = $this->parameters['disableResponsive'];
|
92 |
+
|
93 |
+
|
94 |
+
$this->device = new Mobile_Detect();
|
95 |
+
|
96 |
+
N2Loader::import("models.Sliders", "smartslider");
|
97 |
+
|
98 |
+
}
|
99 |
+
|
100 |
+
public function setElementId() {
|
101 |
+
$this->elementId = self::$_identifier . '-' . $this->sliderId;
|
102 |
+
}
|
103 |
+
|
104 |
+
public static function getCacheId($sliderId) {
|
105 |
+
return self::$_identifier . '-' . $sliderId;
|
106 |
+
}
|
107 |
+
|
108 |
+
public static function getAdminCacheId($sliderId) {
|
109 |
+
return self::$_identifier . '-admin-' . $sliderId;
|
110 |
+
}
|
111 |
+
|
112 |
+
|
113 |
+
public function getSliderTypeResource($resourceName) {
|
114 |
+
|
115 |
+
$type = $this->data->get('type', 'simple');
|
116 |
+
|
117 |
+
$class = 'N2SSPluginType' . $type;
|
118 |
+
|
119 |
+
N2Loader::importPath(call_user_func(array(
|
120 |
+
$class,
|
121 |
+
"getPath"
|
122 |
+
)) . NDS . $resourceName);
|
123 |
+
|
124 |
+
$class = 'N2SmartSlider' . $resourceName . $type;
|
125 |
+
return new $class($this);
|
126 |
+
}
|
127 |
+
|
128 |
+
abstract public function parseSlider($slider);
|
129 |
+
|
130 |
+
abstract public function addCMSFunctions($slider);
|
131 |
+
|
132 |
+
public function loadSlider() {
|
133 |
+
|
134 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
135 |
+
$slider = $slidersModel->get($this->sliderId);
|
136 |
+
if (empty($slider)) {
|
137 |
+
return false;
|
138 |
+
}
|
139 |
+
if (isset($this->parameters['extend']['sliderData']) && is_array($this->parameters['extend']['sliderData'])) {
|
140 |
+
$sliderData = $this->parameters['extend']['sliderData'];
|
141 |
+
$slider['title'] = $sliderData['title'];
|
142 |
+
unset($sliderData['title']);
|
143 |
+
$slider['type'] = $sliderData['type'];
|
144 |
+
unset($sliderData['type']);
|
145 |
+
|
146 |
+
$this->data = new N2Data($slider);
|
147 |
+
$this->params = new N2Data($sliderData);
|
148 |
+
} else {
|
149 |
+
$this->data = new N2Data($slider);
|
150 |
+
$this->params = new N2Data($slider['params'], true);
|
151 |
+
}
|
152 |
+
|
153 |
+
$this->sliderType = $this->getSliderTypeResource('type');
|
154 |
+
$this->params->fillDefault($this->sliderType->getDefaults());
|
155 |
+
$this->sliderType->limitParams($this->params);
|
156 |
+
|
157 |
+
$this->features = new N2SmartSliderFeatures($this);
|
158 |
+
|
159 |
+
$this->initSlides();
|
160 |
+
return true;
|
161 |
+
}
|
162 |
+
|
163 |
+
private function initSlides() {
|
164 |
+
if ($this->isAdmin) {
|
165 |
+
$this->slidesBuilder = new N2SmartSliderSlidesAdmin($this);
|
166 |
+
} else {
|
167 |
+
$this->slidesBuilder = new N2SmartSliderSlides($this);
|
168 |
+
}
|
169 |
+
$this->slides = $this->slidesBuilder->getSlides(isset($this->parameters['extend']) ? $this->parameters['extend'] : array(), $this->parameters['addDummySlidesIfEmpty']);
|
170 |
+
}
|
171 |
+
|
172 |
+
public function render() {
|
173 |
+
|
174 |
+
if (!$this->loadSlider()) {
|
175 |
+
return false;
|
176 |
+
}
|
177 |
+
|
178 |
+
if (count($this->slides) == 0) {
|
179 |
+
return false;
|
180 |
+
}
|
181 |
+
|
182 |
+
$this->assets = $this->getSliderTypeResource('css');
|
183 |
+
$this->assets->render();
|
184 |
+
$this->slides[$this->_activeSlide]->setActive();
|
185 |
+
for ($i = 0; $i < count($this->slides); $i++) {
|
186 |
+
$this->slides[$i]->prepare();
|
187 |
+
$this->slides[$i]->setSlidesParams();
|
188 |
+
}
|
189 |
+
|
190 |
+
$this->renderStaticSlide();
|
191 |
+
$slider = $this->sliderType->render();
|
192 |
+
|
193 |
+
if (!$this->isAdmin) {
|
194 |
+
N2Plugin::callPlugin('ssitem', 'onNextendSliderRender', array(
|
195 |
+
&$slider,
|
196 |
+
$this->elementId
|
197 |
+
));
|
198 |
+
}
|
199 |
+
|
200 |
+
|
201 |
+
$slider = str_replace('n2-ss-0', $this->elementId, $slider);
|
202 |
+
|
203 |
+
$dependency = intval($this->params->get('dependency'));
|
204 |
+
if (!N2Platform::$isAdmin && $dependency > 0) {
|
205 |
+
$slider = '<script id="' . $this->elementId . '" data-dependency="' . $dependency . '" type="rocket/slider">' . str_replace(array(
|
206 |
+
'<script',
|
207 |
+
'</script'
|
208 |
+
), array(
|
209 |
+
'<_s_c_r_i_p_t',
|
210 |
+
'<_/_s_c_r_i_p_t'
|
211 |
+
), $slider) . '</script>';
|
212 |
+
}
|
213 |
+
|
214 |
+
$slider = $this->features->translateUrl->renderSlider($slider);
|
215 |
+
|
216 |
+
$slider = $this->features->align->renderSlider($slider, $this->assets->sizes['width']);
|
217 |
+
$slider = $this->features->margin->renderSlider($slider);
|
218 |
+
|
219 |
+
$slider .= $this->features->fadeOnLoad->renderPlaceholder($this->assets->sizes);
|
220 |
+
|
221 |
+
return "\n<!-- Nextend Smart Slider 3 #" . $this->sliderId . " - BEGIN -->\n" . $slider . "\n<!-- Nextend Smart Slider 3 #" . $this->sliderId . " - END -->\n";
|
222 |
+
}
|
223 |
+
|
224 |
+
public function addStaticSlide($slide) {
|
225 |
+
$this->staticSlides[] = $slide;
|
226 |
+
}
|
227 |
+
|
228 |
+
public function renderStaticSlide() {
|
229 |
+
$this->staticHtml = '';
|
230 |
+
if (count($this->staticSlides)) {
|
231 |
+
for ($i = 0; $i < count($this->staticSlides); $i++) {
|
232 |
+
$this->staticHtml .= $this->staticSlides[$i]->getAsStatic();
|
233 |
+
}
|
234 |
+
}
|
235 |
+
}
|
236 |
+
|
237 |
+
/**
|
238 |
+
* @return N2SmartSliderSlide
|
239 |
+
*/
|
240 |
+
public function getPreviousSlide() {
|
241 |
+
$length = count($this->slides);
|
242 |
+
|
243 |
+
if ($this->_activeSlide == 0) {
|
244 |
+
return $this->slides[$length - 1];
|
245 |
+
}
|
246 |
+
return $this->slides[$this->_activeSlide - 1];
|
247 |
+
}
|
248 |
+
|
249 |
+
/**
|
250 |
+
* @return N2SmartSliderSlide
|
251 |
+
*/
|
252 |
+
public function getNextSlide() {
|
253 |
+
$length = count($this->slides);
|
254 |
+
if ($this->_activeSlide == $length - 1) {
|
255 |
+
return $this->slides[0];
|
256 |
+
}
|
257 |
+
return $this->slides[$this->_activeSlide + 1];
|
258 |
+
}
|
259 |
+
|
260 |
+
public static function removeShortcode($content) {
|
261 |
+
$content = preg_replace('/smartslider3\[([0-9]+)\]/', '', $content);
|
262 |
+
$content = preg_replace('/\[smartslider3 slider="([0-9]+)"\]/', '', $content);
|
263 |
+
$content = preg_replace('/\[smartslider3 slider=([0-9]+)\]/', '', $content);
|
264 |
+
return $content;
|
265 |
+
}
|
266 |
+
|
267 |
+
public function setStatic($isStaticEdited) {
|
268 |
+
$this->isStaticEdited = $isStaticEdited;
|
269 |
+
}
|
270 |
+
}
|
271 |
+
|
272 |
+
N2Loader::import("libraries.slider.slider", "smartslider.platform");
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/backend.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import("libraries.slider.abstract", "smartslider");
|
3 |
+
|
4 |
+
class N2SmartSliderBackend extends N2SmartSlider
|
5 |
+
{
|
6 |
+
|
7 |
+
public $isAdmin = true;
|
8 |
+
|
9 |
+
public function setElementId() {
|
10 |
+
$this->elementId = self::$_identifier . '-' . 0;
|
11 |
+
}
|
12 |
+
|
13 |
+
public function setCacheId() {
|
14 |
+
$this->cacheId = self::$_identifier . '-' . $this->sliderId . '-backend';
|
15 |
+
}
|
16 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/cache/generator.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2CacheManifestGenerator extends N2CacheManifest
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
* @var N2SmartSliderAbstract
|
8 |
+
*/
|
9 |
+
private $slider;
|
10 |
+
|
11 |
+
private $generator;
|
12 |
+
|
13 |
+
/**
|
14 |
+
* @param N2SmartSliderAbstract $slider
|
15 |
+
* @param N2SmartSliderSlidesGenerator $generator
|
16 |
+
*/
|
17 |
+
public function __construct($slider, $generator) {
|
18 |
+
parent::__construct($slider->cacheId, false);
|
19 |
+
$this->slider = $slider;
|
20 |
+
$this->generator = $generator;
|
21 |
+
}
|
22 |
+
|
23 |
+
protected function isCacheValid(&$manifestData) {
|
24 |
+
$nextRefresh = $manifestData['cacheTime'] + max(0, $this->generator->currentGenerator['params']->get('cache-expiration', 1)) * 60 * 60;
|
25 |
+
if ($manifestData['cacheTime'] + max(0, $this->generator->currentGenerator['params']->get('cache-expiration', 1)) * 60 * 60 < N2Platform::getTime()) {
|
26 |
+
return false;
|
27 |
+
}
|
28 |
+
$this->generator->setNextCacheRefresh($nextRefresh);
|
29 |
+
return true;
|
30 |
+
}
|
31 |
+
|
32 |
+
protected function addManifestData(&$manifestData) {
|
33 |
+
$manifestData['cacheTime'] = N2Platform::getTime();
|
34 |
+
$this->generator->setNextCacheRefresh($manifestData['cacheTime'] + max(0, $this->generator->currentGenerator['params']->get('cache-expiration', 1)) * 60 * 60);
|
35 |
+
}
|
36 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/cache/slider.php
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2CacheManifestSlider extends N2CacheManifest
|
4 |
+
{
|
5 |
+
|
6 |
+
private $parameters = array();
|
7 |
+
|
8 |
+
public function __construct($cacheId, $parameters = array()) {
|
9 |
+
parent::__construct($cacheId, false);
|
10 |
+
$this->parameters = $parameters;
|
11 |
+
|
12 |
+
}
|
13 |
+
|
14 |
+
public function makeCache($fileName, $hash, $callable) {
|
15 |
+
$variations = 1;
|
16 |
+
if (N2Filesystem::existsFile($this->getManifestFilePath('variations'))) {
|
17 |
+
$variations = intval(N2Filesystem::readFile($this->getManifestFilePath('variations')));
|
18 |
+
}
|
19 |
+
return parent::makeCache($fileName . mt_rand(1, $variations), $hash, $callable);
|
20 |
+
}
|
21 |
+
|
22 |
+
protected function isCacheValid(&$manifestData) {
|
23 |
+
|
24 |
+
if (N2SmartSliderHelper::getInstance()
|
25 |
+
->isSliderChanged($this->parameters['slider']->sliderId, 1)
|
26 |
+
) {
|
27 |
+
$this->clearCurrentGroup();
|
28 |
+
N2SmartSliderHelper::getInstance()
|
29 |
+
->setSliderChanged($this->parameters['slider']->sliderId, 0);
|
30 |
+
return false;
|
31 |
+
}
|
32 |
+
|
33 |
+
$time = N2Platform::getTime();
|
34 |
+
|
35 |
+
if ($manifestData['nextCacheRefresh'] < $time) {
|
36 |
+
return false;
|
37 |
+
}
|
38 |
+
|
39 |
+
return true;
|
40 |
+
}
|
41 |
+
|
42 |
+
protected function addManifestData(&$manifestData) {
|
43 |
+
|
44 |
+
$manifestData['nextCacheRefresh'] = N2Pluggable::applyFilters('SSNextCacheRefresh', $this->parameters['slider']->slidesBuilder->getNextCacheRefresh(), array($this->parameters['slider']));
|
45 |
+
|
46 |
+
$variations = 1;
|
47 |
+
|
48 |
+
$params = $this->parameters['slider']->params;
|
49 |
+
if ($params->get('randomize', 0) || $params->get('randomizeFirst', 0)) {
|
50 |
+
$variations = intval($params->get('variations', 5));
|
51 |
+
if ($variations < 1) {
|
52 |
+
$variations = 1;
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
N2Filesystem::createFile($this->getManifestFilePath('variations'), $variations);
|
57 |
+
}
|
58 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/css.php
ADDED
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.parse.font');
|
4 |
+
N2Loader::import('libraries.parse.style');
|
5 |
+
|
6 |
+
abstract class N2SmartSliderCSSAbstract
|
7 |
+
{
|
8 |
+
|
9 |
+
/**
|
10 |
+
* @var N2SmartSliderAbstract
|
11 |
+
*/
|
12 |
+
protected $slider;
|
13 |
+
|
14 |
+
public $sizes = array();
|
15 |
+
|
16 |
+
public function __construct($slider) {
|
17 |
+
$this->slider = $slider;
|
18 |
+
}
|
19 |
+
|
20 |
+
public function render() {
|
21 |
+
$slider = $this->slider;
|
22 |
+
$params = $slider->params;
|
23 |
+
|
24 |
+
$width = intval($params->get('width', 900));
|
25 |
+
$height = intval($params->get('height', 500));
|
26 |
+
if ($width < 10) {
|
27 |
+
N2Message::error(n2_('Slider width is not valid number!'));
|
28 |
+
}
|
29 |
+
if ($height < 10) {
|
30 |
+
N2Message::error(n2_('Slider height is not valid number!'));
|
31 |
+
}
|
32 |
+
$context = array(
|
33 |
+
'id' => "~'#{$slider->elementId}'",
|
34 |
+
'width' => $width . 'px',
|
35 |
+
'height' => $height . 'px',
|
36 |
+
'canvas' => 0,
|
37 |
+
'count' => count($slider->slides),
|
38 |
+
'margin' => '0px 0px 0px 0px'
|
39 |
+
);
|
40 |
+
|
41 |
+
$this->renderType($context);
|
42 |
+
|
43 |
+
if ($params->get('imageload', 0)) {
|
44 |
+
N2LESS::addFile(NEXTEND_SMARTSLIDER_ASSETS . '/less/spinner.less', $slider->cacheId, $context, NEXTEND_SMARTSLIDER_ASSETS . '/less' . NDS);
|
45 |
+
}
|
46 |
+
|
47 |
+
$this->sizes['marginVertical'] = 0;
|
48 |
+
$this->sizes['marginHorizontal'] = 0;
|
49 |
+
|
50 |
+
$this->sizes['width'] = intval($context['width']);
|
51 |
+
$this->sizes['height'] = intval($context['height']);
|
52 |
+
$this->sizes['canvasWidth'] = intval($context['canvaswidth']);
|
53 |
+
$this->sizes['canvasHeight'] = intval($context['canvasheight']);
|
54 |
+
}
|
55 |
+
|
56 |
+
protected abstract function renderType(&$context);
|
57 |
+
|
58 |
+
protected function setContextFonts($matches, &$context, $fonts, $value) {
|
59 |
+
$context['font' . $fonts] = '~".' . $matches[0] . '"';
|
60 |
+
|
61 |
+
$font = new N2ParseFont($value);
|
62 |
+
$context['font' . $fonts . 'text'] = '";' . $font->printTab() . '"';
|
63 |
+
$font->mixinTab('Link');
|
64 |
+
$context['font' . $fonts . 'link'] = '";' . $font->printTab('Link') . '"';
|
65 |
+
$font->mixinTab('Link:Hover', 'Link');
|
66 |
+
$context['font' . $fonts . 'hover'] = '";' . $font->printTab('Link:Hover') . '"';
|
67 |
+
}
|
68 |
+
|
69 |
+
protected function setContextStyles($selector, &$context, $styles, $value) {
|
70 |
+
$context['style' . $styles] = '~".' . $selector . '"';
|
71 |
+
|
72 |
+
$style = new N2ParseStyle($value);
|
73 |
+
$context['style' . $styles . 'normal'] = '";' . $style->printTab('Normal') . '"';
|
74 |
+
$context['style' . $styles . 'hover'] = '";' . $style->printTab('Hover') . '"';
|
75 |
+
|
76 |
+
}
|
77 |
+
|
78 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/align.php
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderFeatureAlign
|
4 |
+
{
|
5 |
+
|
6 |
+
private $slider;
|
7 |
+
|
8 |
+
public $align = 'normal';
|
9 |
+
|
10 |
+
public function __construct($slider) {
|
11 |
+
|
12 |
+
$this->slider = $slider;
|
13 |
+
|
14 |
+
$this->align = $slider->params->get('align', 'normal');
|
15 |
+
}
|
16 |
+
|
17 |
+
public function renderSlider($sliderHTML, $maxWidth) {
|
18 |
+
$aligned = false;
|
19 |
+
|
20 |
+
$htmlOptions = array(
|
21 |
+
"id" => $this->slider->elementId . '-align',
|
22 |
+
"class" => "n2-ss-align",
|
23 |
+
"encode" => false
|
24 |
+
);
|
25 |
+
|
26 |
+
$htmlOptionsPadding = array(
|
27 |
+
"class" => 'n2-padding'
|
28 |
+
);
|
29 |
+
|
30 |
+
if (!$this->slider->features->responsive->scaleUp && $this->align != 'normal') {
|
31 |
+
switch ($this->align) {
|
32 |
+
case 'left':
|
33 |
+
case 'right':
|
34 |
+
$width = $this->slider->assets->sizes['width'];
|
35 |
+
$htmlOptions["style"] = "float: {$this->align}; width: {$width}px;";
|
36 |
+
break;
|
37 |
+
case 'center':
|
38 |
+
$htmlOptions["style"] = "margin: 0 auto; max-width: {$maxWidth}px;";
|
39 |
+
break;
|
40 |
+
}
|
41 |
+
$aligned = true;
|
42 |
+
}
|
43 |
+
|
44 |
+
$sliderHTML = NHtml::tag("div", $htmlOptions, NHtml::tag("div", $htmlOptionsPadding, $sliderHTML));
|
45 |
+
|
46 |
+
if ($aligned == true) {
|
47 |
+
$sliderHTML .= NHtml::tag("div", array("style" => "clear: both"), "");
|
48 |
+
}
|
49 |
+
|
50 |
+
return $sliderHTML;
|
51 |
+
}
|
52 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/autoplay.php
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderFeatureAutoplay
|
4 |
+
{
|
5 |
+
|
6 |
+
private $slider;
|
7 |
+
|
8 |
+
public $isEnabled = 0, $isStart = 0, $duration = 8000;
|
9 |
+
public $interval = 0, $intervalModifier = 'loop', $intervalSlide = 'current';
|
10 |
+
public $stopOnClick = 1, $stopOnMouseEnter = 1, $stopOnMediaStarted = 1;
|
11 |
+
public $resumeOnMouseLeave = 0, $resumeOnMediaEnded = 1, $resumeOnSlideChanged = 0;
|
12 |
+
|
13 |
+
|
14 |
+
public function __construct($slider) {
|
15 |
+
|
16 |
+
$this->slider = $slider;
|
17 |
+
$params = $slider->params;
|
18 |
+
|
19 |
+
$this->isEnabled = intval($params->get('autoplay', 0));
|
20 |
+
$this->isStart = intval($params->get('autoplayStart', 1));
|
21 |
+
$this->duration = intval($params->get('autoplayDuration', 8000));
|
22 |
+
if ($this->duration < 1500) {
|
23 |
+
$this->duration = 1500;
|
24 |
+
}
|
25 |
+
|
26 |
+
list($this->interval, $this->intervalModifier, $this->intervalSlide) = (array)N2Parse::parse($slider->params->get('autoplayfinish', '0|*|loop|*|current'));
|
27 |
+
$this->interval = intval($this->interval);
|
28 |
+
|
29 |
+
$this->stopOnClick = intval($params->get('autoplayStopClick', 1));
|
30 |
+
$this->stopOnMouse = $params->get('autoplayStopMouse', 'enter');
|
31 |
+
$this->stopOnMediaStarted = intval($params->get('autoplayStopMedia', 1));
|
32 |
+
|
33 |
+
|
34 |
+
$this->resumeOnClick = $params->get('autoplayResumeClick', 0);
|
35 |
+
$this->resumeOnMouse = $params->get('autoplayResumeMouse', 0);
|
36 |
+
$this->resumeOnMediaEnded = intval($params->get('autoplayResumeMedia', 1));
|
37 |
+
|
38 |
+
}
|
39 |
+
|
40 |
+
public function makeJavaScriptProperties(&$properties) {
|
41 |
+
$autoplayToSlide = 0;
|
42 |
+
|
43 |
+
switch ($this->intervalModifier) {
|
44 |
+
case 'slide':
|
45 |
+
$autoplayToSlide = $this->interval;
|
46 |
+
if ($this->intervalSlide == 'next') {
|
47 |
+
$autoplayToSlide++;
|
48 |
+
}
|
49 |
+
break;
|
50 |
+
default:
|
51 |
+
$autoplayToSlide = $this->interval * count($this->slider->slides);
|
52 |
+
if ($this->intervalSlide == 'next') {
|
53 |
+
$autoplayToSlide++;
|
54 |
+
}
|
55 |
+
break;
|
56 |
+
}
|
57 |
+
$properties['autoplay'] = array(
|
58 |
+
'enabled' => $this->isEnabled,
|
59 |
+
'start' => $this->isStart,
|
60 |
+
'duration' => $this->duration,
|
61 |
+
'autoplayToSlide' => $autoplayToSlide,
|
62 |
+
'pause' => array(
|
63 |
+
'click' => $this->stopOnClick,
|
64 |
+
'mouse' => $this->stopOnMouse,
|
65 |
+
'mediaStarted' => $this->stopOnMediaStarted
|
66 |
+
),
|
67 |
+
'resume' => array(
|
68 |
+
'click' => $this->resumeOnClick,
|
69 |
+
'mouse' => $this->resumeOnMouse,
|
70 |
+
'mediaEnded' => $this->resumeOnMediaEnded,
|
71 |
+
'slidechanged' => $this->resumeOnSlideChanged
|
72 |
+
)
|
73 |
+
);
|
74 |
+
}
|
75 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/blockrightclick.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderFeatureBlockRightClick
|
4 |
+
{
|
5 |
+
|
6 |
+
private $slider;
|
7 |
+
|
8 |
+
public $isEnabled = 0;
|
9 |
+
|
10 |
+
public function __construct($slider) {
|
11 |
+
|
12 |
+
$this->slider = $slider;
|
13 |
+
|
14 |
+
$this->isEnabled = intval($slider->params->get('blockrightclick', 0));
|
15 |
+
}
|
16 |
+
|
17 |
+
public function makeJavaScriptProperties(&$properties) {
|
18 |
+
|
19 |
+
$properties['blockrightclick'] = $this->isEnabled;
|
20 |
+
}
|
21 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/controls.php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderFeatureControls
|
4 |
+
{
|
5 |
+
|
6 |
+
private $slider;
|
7 |
+
|
8 |
+
public $scroll = 0;
|
9 |
+
|
10 |
+
public $drag = 0;
|
11 |
+
|
12 |
+
public $touch = 1;
|
13 |
+
|
14 |
+
public $keyboard = 0;
|
15 |
+
|
16 |
+
public $tilt = 0;
|
17 |
+
|
18 |
+
public function __construct($slider) {
|
19 |
+
|
20 |
+
$this->slider = $slider;
|
21 |
+
|
22 |
+
$this->scroll = intval($slider->params->get('controlsScroll', 0));
|
23 |
+
$this->drag = intval($slider->params->get('controlsDrag', 1));
|
24 |
+
$this->touch = $slider->params->get('controlsTouch', 'horizontal');
|
25 |
+
$this->keyboard = intval($slider->params->get('controlsKeyboard', 1));
|
26 |
+
$this->tilt = intval($slider->params->get('controlsTilt', 0));
|
27 |
+
}
|
28 |
+
|
29 |
+
public function makeJavaScriptProperties(&$properties) {
|
30 |
+
$properties['controls'] = array(
|
31 |
+
'scroll' => $this->scroll,
|
32 |
+
'drag' => $this->drag,
|
33 |
+
'touch' => $this->touch,
|
34 |
+
'keyboard' => $this->keyboard,
|
35 |
+
'tilt' => $this->tilt
|
36 |
+
);
|
37 |
+
}
|
38 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/fadeonload.php
ADDED
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderFeatureFadeOnLoad
|
4 |
+
{
|
5 |
+
|
6 |
+
private $slider;
|
7 |
+
|
8 |
+
public $fadeOnLoad = 1;
|
9 |
+
|
10 |
+
public $fadeOnScroll = 0;
|
11 |
+
|
12 |
+
public $playWhenVisible = 1;
|
13 |
+
|
14 |
+
public function __construct($slider) {
|
15 |
+
|
16 |
+
$this->slider = $slider;
|
17 |
+
|
18 |
+
$this->fadeOnLoad = intval($slider->params->get('fadeOnLoad', 1));
|
19 |
+
$this->fadeOnScroll = intval($slider->params->get('fadeOnScroll', 0));
|
20 |
+
$this->playWhenVisible = intval($slider->params->get('playWhenVisible', 1));
|
21 |
+
|
22 |
+
|
23 |
+
|
24 |
+
if (!empty($this->fadeOnScroll) && $this->fadeOnScroll) {
|
25 |
+
$this->fadeOnLoad = 1;
|
26 |
+
$this->fadeOnScroll = 1;
|
27 |
+
} else {
|
28 |
+
$this->fadeOnScroll = 0;
|
29 |
+
}
|
30 |
+
}
|
31 |
+
|
32 |
+
public function forceFadeOnLoad() {
|
33 |
+
if (!$this->fadeOnScroll && !$this->fadeOnLoad) {
|
34 |
+
$this->fadeOnLoad = 1;
|
35 |
+
}
|
36 |
+
}
|
37 |
+
|
38 |
+
public function getSliderClass() {
|
39 |
+
if ($this->fadeOnLoad) {
|
40 |
+
return 'n2-ss-load-fade ';
|
41 |
+
}
|
42 |
+
return '';
|
43 |
+
}
|
44 |
+
|
45 |
+
public function renderPlaceholder($sizes) {
|
46 |
+
|
47 |
+
if (!$this->slider->isAdmin && $this->fadeOnLoad && ($this->slider->features->responsive->scaleDown || $this->slider->features->responsive->scaleUp)) {
|
48 |
+
|
49 |
+
if (N2SystemHelper::testMemoryLimit()) {
|
50 |
+
if ($sizes['width'] + $sizes['marginHorizontal'] > 0 && $sizes['height'] > 0 && function_exists('imagecreatetruecolor')) {
|
51 |
+
return NHtml::tag("div", array(
|
52 |
+
"id" => $this->slider->elementId . "-placeholder",
|
53 |
+
"encode" => false,
|
54 |
+
"style" => 'position: relative;z-index:2;'
|
55 |
+
), $this->makeImage($sizes));
|
56 |
+
} else {
|
57 |
+
N2CSS::addCode("#{$this->slider->elementId} .n2-ss-load-fade{position: relative !important;}", $this->slider->cacheId);
|
58 |
+
}
|
59 |
+
|
60 |
+
} else {
|
61 |
+
N2Message::error(n2_("It seems like the <a href='http://php.net/manual/en/ini.core.php#ini.memory-limit'>memory_limit</a> on the server is too low for the fade on load feature. Please set it minimum 60M and reload the page! You can disable this message in <a href='" . N2Form::$documentation . "#Troubleshooting-G-Server'>global configuration</a> 'Frontend debug message' option."));
|
62 |
+
}
|
63 |
+
} else {
|
64 |
+
N2CSS::addCode("#{$this->slider->elementId}.n2-ss-load-fade{position: relative !important;}", $this->slider->cacheId);
|
65 |
+
}
|
66 |
+
return '';
|
67 |
+
}
|
68 |
+
|
69 |
+
public function makeJavaScriptProperties(&$properties) {
|
70 |
+
$properties['load'] = array(
|
71 |
+
'fade' => $this->fadeOnLoad,
|
72 |
+
'scroll' => ($this->fadeOnScroll & !$this->slider->isAdmin)
|
73 |
+
);
|
74 |
+
$properties['playWhenVisible'] = $this->playWhenVisible;
|
75 |
+
}
|
76 |
+
|
77 |
+
|
78 |
+
private function makeImage($sizes) {
|
79 |
+
$html = NHtml::image("data:image/svg+xml;base64," . $this->transparentImage($sizes['width'] + $sizes['marginHorizontal'], $sizes['height']), '', array(
|
80 |
+
'style' => 'width: 100%; max-width:' . ($this->slider->features->responsive->maximumSlideWidth + $sizes['marginHorizontal']) . 'px;'
|
81 |
+
));
|
82 |
+
|
83 |
+
if ($sizes['marginVertical'] > 0) {
|
84 |
+
$html .= NHtml::image("data:image/svg+xml;base64," . $this->transparentImage($sizes['width'] + $sizes['marginHorizontal'], $sizes['marginVertical']), '', array(
|
85 |
+
'style' => 'width: 100%;'
|
86 |
+
));
|
87 |
+
}
|
88 |
+
|
89 |
+
return $html;
|
90 |
+
}
|
91 |
+
|
92 |
+
private function transparentImage($width, $height) {
|
93 |
+
|
94 |
+
return base64_encode('<svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="' . $width . '" height="' . $height . '" ></svg>');
|
95 |
+
}
|
96 |
+
|
97 |
+
private static function gcd($a, $b) {
|
98 |
+
return ($a % $b) ? self::gcd($b, $a % $b) : $b;
|
99 |
+
}
|
100 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/features.php
ADDED
@@ -0,0 +1,172 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.image.image');
|
4 |
+
N2Loader::import('libraries.image.manager');
|
5 |
+
|
6 |
+
class N2SmartSliderFeatures
|
7 |
+
{
|
8 |
+
|
9 |
+
private $slider;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @var N2SmartSliderFeatureFadeOnLoad
|
13 |
+
*/
|
14 |
+
public $fadeOnLoad;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* @var N2SmartSliderFeatureResponsive
|
18 |
+
*/
|
19 |
+
public $responsive;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @var N2SmartSliderFeatureControls
|
23 |
+
*/
|
24 |
+
public $controls;
|
25 |
+
|
26 |
+
/**
|
27 |
+
* @var N2SmartSliderFeatureLazyLoad
|
28 |
+
*/
|
29 |
+
public $lazyLoad;
|
30 |
+
|
31 |
+
/**
|
32 |
+
* @var N2SmartSliderFeatureAlign
|
33 |
+
*/
|
34 |
+
public $align;
|
35 |
+
|
36 |
+
/**
|
37 |
+
* @var N2SmartSliderFeatureBlockRightClick
|
38 |
+
*/
|
39 |
+
public $blockRightClick;
|
40 |
+
/**
|
41 |
+
* @var N2SmartSliderFeatureAutoplay
|
42 |
+
*/
|
43 |
+
public $autoplay;
|
44 |
+
|
45 |
+
/**
|
46 |
+
* @var N2SmartSliderFeatureTranslateUrl
|
47 |
+
*/
|
48 |
+
public $translateUrl;
|
49 |
+
|
50 |
+
/**
|
51 |
+
* @var N2SmartSliderFeatureLayerMode
|
52 |
+
*/
|
53 |
+
public $layerMode;
|
54 |
+
|
55 |
+
/**
|
56 |
+
* @var N2SmartSliderFeatureSlideBackground
|
57 |
+
*/
|
58 |
+
public $slideBackground;
|
59 |
+
|
60 |
+
public $slideBackgroundVideo;
|
61 |
+
|
62 |
+
/**
|
63 |
+
* @var N2SmartSliderFeaturePostBackgroundAnimation
|
64 |
+
*/
|
65 |
+
public $postBackgroundAnimation;
|
66 |
+
|
67 |
+
/**
|
68 |
+
* @var N2SmartSliderFeatureSpinner
|
69 |
+
*/
|
70 |
+
public $loadSpinner;
|
71 |
+
|
72 |
+
private $initCallbacks = array();
|
73 |
+
|
74 |
+
public function __construct($slider) {
|
75 |
+
$this->slider = $slider;
|
76 |
+
|
77 |
+
$this->fadeOnLoad = new N2SmartSliderFeatureFadeOnLoad($slider);
|
78 |
+
$this->responsive = new N2SmartSliderFeatureResponsive($slider);
|
79 |
+
$this->controls = new N2SmartSliderFeatureControls($slider);
|
80 |
+
$this->lazyLoad = new N2SmartSliderFeatureLazyLoad($slider);
|
81 |
+
$this->margin = new N2SmartSliderFeatureMargin($slider);
|
82 |
+
$this->align = new N2SmartSliderFeatureAlign($slider);
|
83 |
+
$this->blockRightClick = new N2SmartSliderFeatureBlockRightClick($slider);
|
84 |
+
$this->maintainSession = new N2SmartSliderFeatureMaintainSession($slider);
|
85 |
+
$this->autoplay = new N2SmartSliderFeatureAutoplay($slider);
|
86 |
+
$this->translateUrl = new N2SmartSliderFeatureTranslateUrl($slider);
|
87 |
+
$this->layerMode = new N2SmartSliderFeatureLayerMode($slider);
|
88 |
+
$this->slideBackground = new N2SmartSliderFeatureSlideBackground($slider);
|
89 |
+
$this->loadSpinner = new N2SmartSliderFeatureSpinner($slider);
|
90 |
+
}
|
91 |
+
|
92 |
+
public function generateJSProperties() {
|
93 |
+
|
94 |
+
$return = array(
|
95 |
+
'admin' => $this->slider->isAdmin,
|
96 |
+
'isStaticEdited' => intval($this->slider->isStaticEdited),
|
97 |
+
'translate3d' => intval(N2SmartSliderSettings::get('hardware-acceleration', 1)),
|
98 |
+
'randomize' => intval(!$this->slider->isAdmin && $this->slider->params->get('randomize', 0))
|
99 |
+
);
|
100 |
+
|
101 |
+
$this->makeJavaScriptProperties($return);
|
102 |
+
|
103 |
+
return $return;
|
104 |
+
}
|
105 |
+
|
106 |
+
protected function makeJavaScriptProperties(&$properties) {
|
107 |
+
$this->fadeOnLoad->makeJavaScriptProperties($properties);
|
108 |
+
$this->responsive->makeJavaScriptProperties($properties);
|
109 |
+
$this->controls->makeJavaScriptProperties($properties);
|
110 |
+
$this->lazyLoad->makeJavaScriptProperties($properties);
|
111 |
+
$this->blockRightClick->makeJavaScriptProperties($properties);
|
112 |
+
$this->maintainSession->makeJavaScriptProperties($properties);
|
113 |
+
$this->autoplay->makeJavaScriptProperties($properties);
|
114 |
+
$this->layerMode->makeJavaScriptProperties($properties);
|
115 |
+
$this->loadSpinner->makeJavaScriptProperties($properties);
|
116 |
+
$properties['initCallbacks'] = $this->initCallbacks;
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* @param $slide N2SmartSliderSlide
|
121 |
+
*/
|
122 |
+
public function makeSlide($slide) {
|
123 |
+
}
|
124 |
+
|
125 |
+
/**
|
126 |
+
* @param $slide N2SmartSliderSlide
|
127 |
+
*
|
128 |
+
* @return string
|
129 |
+
*/
|
130 |
+
public function makeBackground($slide) {
|
131 |
+
|
132 |
+
$background = $this->slideBackground->make($slide);
|
133 |
+
|
134 |
+
return $background;
|
135 |
+
}
|
136 |
+
|
137 |
+
protected function setDevices() {
|
138 |
+
|
139 |
+
if (intval($this->_data->get('showmobile', 1)) == 0) {
|
140 |
+
if (!$this->device->isTablet() && $this->device->isMobile()) {
|
141 |
+
$this->norender = true;
|
142 |
+
return;
|
143 |
+
}
|
144 |
+
}
|
145 |
+
|
146 |
+
$custommobile = N2Parse::parse($this->_data->get('showcustommobile', '0|*|'));
|
147 |
+
if ($custommobile[0] == 1) {
|
148 |
+
if (!$this->device->isTablet() && $this->device->isMobile()) {
|
149 |
+
$this->_data->set('slider', $custommobile[1]);
|
150 |
+
}
|
151 |
+
}
|
152 |
+
|
153 |
+
if (intval($this->_data->get('showtablet', 1)) == 0) {
|
154 |
+
if ($this->device->isTablet()) {
|
155 |
+
$this->norender = true;
|
156 |
+
return;
|
157 |
+
}
|
158 |
+
}
|
159 |
+
|
160 |
+
$customtablet = N2Parse::parse($this->_data->get('showcustomtablet', '0|*|'));
|
161 |
+
if ($customtablet[0] == 1) {
|
162 |
+
if ($this->device->isTablet()) {
|
163 |
+
$this->_data->set('slider', $customtablet[1]);
|
164 |
+
}
|
165 |
+
}
|
166 |
+
|
167 |
+
}
|
168 |
+
|
169 |
+
public function addInitCallback($callback) {
|
170 |
+
$this->initCallbacks[] = $callback;
|
171 |
+
}
|
172 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/layermode.php
ADDED
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderFeatureLayerMode
|
4 |
+
{
|
5 |
+
|
6 |
+
private $slider;
|
7 |
+
|
8 |
+
public $playOnce = 0;
|
9 |
+
|
10 |
+
public $playFirstLayer = 1;
|
11 |
+
|
12 |
+
public $mode = 'skippable';
|
13 |
+
|
14 |
+
public $inAnimation = 'mainInEnd';
|
15 |
+
|
16 |
+
public function __construct($slider) {
|
17 |
+
|
18 |
+
$this->slider = $slider;
|
19 |
+
|
20 |
+
$this->playOnce = intval($slider->params->get('playonce', 0));
|
21 |
+
|
22 |
+
$this->playFirstLayer = intval($slider->params->get('playfirstlayer', 1));
|
23 |
+
|
24 |
+
switch ($slider->params->get('layer-animation-play-mode', 'skippable')) {
|
25 |
+
case 'forced':
|
26 |
+
$this->mode = 'forced';
|
27 |
+
break;
|
28 |
+
default:
|
29 |
+
$this->mode = 'skippable';
|
30 |
+
}
|
31 |
+
|
32 |
+
switch ($slider->params->get('layer-animation-play-in', 'end')) {
|
33 |
+
case 'end':
|
34 |
+
$this->inAnimation = 'mainInEnd';
|
35 |
+
break;
|
36 |
+
default:
|
37 |
+
$this->inAnimation = 'mainInStart';
|
38 |
+
}
|
39 |
+
}
|
40 |
+
|
41 |
+
public function makeJavaScriptProperties(&$properties) {
|
42 |
+
$properties['layerMode'] = array(
|
43 |
+
'playOnce' => $this->playOnce,
|
44 |
+
'playFirstLayer' => $this->playFirstLayer,
|
45 |
+
'mode' => $this->mode,
|
46 |
+
'inAnimation' => $this->inAnimation
|
47 |
+
);
|
48 |
+
|
49 |
+
$params = $this->slider->params;
|
50 |
+
$properties['parallax'] = array(
|
51 |
+
'enabled' => intval($params->get('parallax-enabled', 1)),
|
52 |
+
'mobile' => intval($params->get('parallax-enabled-mobile', 0)),
|
53 |
+
'is3D' => intval($params->get('parallax-3d', 0)),
|
54 |
+
'animate' => intval($params->get('parallax-animate', 1)),
|
55 |
+
'horizontal' => $params->get('parallax-horizontal', 'mouse'),
|
56 |
+
'vertical' => $params->get('parallax-vertical', 'mouse'),
|
57 |
+
'origin' => $params->get('parallax-mouse-origin', 'slider'),
|
58 |
+
'scrollmove' => $params->get('parallax-scroll-move', 'both')
|
59 |
+
);
|
60 |
+
}
|
61 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/lazyload.php
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderFeatureLazyLoad
|
4 |
+
{
|
5 |
+
|
6 |
+
private $slider;
|
7 |
+
|
8 |
+
public $isEnabled = 0, $neighborCount = 0, $layerImageOptimize = 0, $layerImageTablet = 50, $layerImageMobile = 30;
|
9 |
+
|
10 |
+
public function __construct($slider) {
|
11 |
+
|
12 |
+
$this->slider = $slider;
|
13 |
+
|
14 |
+
$this->isEnabled = intval($slider->params->get('imageload', 0));
|
15 |
+
$this->neighborCount = intval($slider->params->get('imageloadNeighborSlides', 0));
|
16 |
+
|
17 |
+
$this->layerImageOptimize = intval($slider->params->get('layer-image-optimize', 0)) && !$slider->isAdmin;
|
18 |
+
$this->layerImageTablet = min(100, max(1, intval($slider->params->get('layer-image-tablet', 50)))) / 100;
|
19 |
+
$this->layerImageMobile = min(100, max(1, intval($slider->params->get('layer-image-mobile', 30)))) / 100;
|
20 |
+
|
21 |
+
$this->layerImageSizeBase64 = intval($slider->params->get('layer-image-base64', 0)) && !$slider->isAdmin;
|
22 |
+
$this->layerImageSizeBase64Size = max(0, intval($slider->params->get('layer-image-base64-size', 5))) * 1024;
|
23 |
+
|
24 |
+
}
|
25 |
+
|
26 |
+
public function makeJavaScriptProperties(&$properties) {
|
27 |
+
|
28 |
+
$properties['lazyLoad'] = $this->isEnabled;
|
29 |
+
$properties['lazyLoadNeighbor'] = $this->neighborCount;
|
30 |
+
}
|
31 |
+
|
32 |
+
public function isSlideLazyLoaded($slideIndex) {
|
33 |
+
if ($this->isEnabled == 0) {
|
34 |
+
return false;
|
35 |
+
}
|
36 |
+
if ($this->slider->_activeSlide == $slideIndex) {
|
37 |
+
return false;
|
38 |
+
}
|
39 |
+
|
40 |
+
if ($this->lazyLoad->neighborCount) {
|
41 |
+
$dist = abs($this->slider->_activeSlide - $slideIndex);
|
42 |
+
$distanceBack = abs($slideIndex - count($this->_slides) - 1);
|
43 |
+
if ($distanceBack < $dist) {
|
44 |
+
$dist = $distanceBack;
|
45 |
+
}
|
46 |
+
if ($dist <= $this->lazyLoad->neighborCount) {
|
47 |
+
return false;
|
48 |
+
}
|
49 |
+
}
|
50 |
+
return true;
|
51 |
+
}
|
52 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/maintainsession.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderFeatureMaintainSession
|
4 |
+
{
|
5 |
+
|
6 |
+
private $slider;
|
7 |
+
|
8 |
+
public $isEnabled = 0;
|
9 |
+
|
10 |
+
public function __construct($slider) {
|
11 |
+
|
12 |
+
$this->slider = $slider;
|
13 |
+
|
14 |
+
$this->isEnabled = intval($slider->params->get('maintain-session', 0));
|
15 |
+
}
|
16 |
+
|
17 |
+
public function makeJavaScriptProperties(&$properties) {
|
18 |
+
|
19 |
+
$properties['maintainSession'] = $this->isEnabled;
|
20 |
+
}
|
21 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/margin.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderFeatureMargin
|
4 |
+
{
|
5 |
+
|
6 |
+
private $slider;
|
7 |
+
|
8 |
+
public function __construct($slider) {
|
9 |
+
|
10 |
+
$this->slider = $slider;
|
11 |
+
|
12 |
+
$this->margin = explode('|*|', $slider->params->get('margin', '0|*|0|*|0|*|0'));
|
13 |
+
}
|
14 |
+
|
15 |
+
public function renderSlider($sliderHTML) {
|
16 |
+
if (!N2Platform::$isAdmin && count($this->margin) >= 4) {
|
17 |
+
array_splice($this->margin, 4);
|
18 |
+
if ($this->margin[0] != 0 || $this->margin[1] != 0 || $this->margin[2] != 0 || $this->margin[3] != 0) {
|
19 |
+
$sliderHTML = NHtml::tag("div", array(
|
20 |
+
"class" => "n2-ss-margin",
|
21 |
+
"encode" => false,
|
22 |
+
"style" => "margin: " . implode('px ', $this->margin) . "px;"
|
23 |
+
), $sliderHTML);
|
24 |
+
}
|
25 |
+
}
|
26 |
+
|
27 |
+
return $sliderHTML;
|
28 |
+
}
|
29 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/responsive.php
ADDED
@@ -0,0 +1,437 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderFeatureResponsive
|
4 |
+
{
|
5 |
+
|
6 |
+
private $slider;
|
7 |
+
|
8 |
+
public $desktop = 1;
|
9 |
+
|
10 |
+
public $tablet = 1;
|
11 |
+
|
12 |
+
public $mobile = 1;
|
13 |
+
|
14 |
+
public $onResizeEnabled = 1;
|
15 |
+
|
16 |
+
public $type = 'auto';
|
17 |
+
|
18 |
+
public $modeObject = null;
|
19 |
+
|
20 |
+
public $scaleDown = 0;
|
21 |
+
|
22 |
+
public $scaleUp = 0;
|
23 |
+
|
24 |
+
public $forceFull = 0;
|
25 |
+
|
26 |
+
public $minimumHeight = -1;
|
27 |
+
|
28 |
+
public $maximumHeight = -1;
|
29 |
+
|
30 |
+
public $maximumSlideWidth = 10000;
|
31 |
+
public $maximumSlideWidthLandscape = -1;
|
32 |
+
|
33 |
+
public $maximumSlideWidthTablet = -1;
|
34 |
+
public $maximumSlideWidthTabletLandscape = -1;
|
35 |
+
|
36 |
+
public $maximumSlideWidthMobile = -1;
|
37 |
+
public $maximumSlideWidthMobileLandscape = -1;
|
38 |
+
|
39 |
+
public $maximumSlideWidthConstrainHeight = 0;
|
40 |
+
|
41 |
+
public $verticalOffsetSelectors = '';
|
42 |
+
|
43 |
+
public $basedOn = 'combined';
|
44 |
+
|
45 |
+
public $desktopPortraitScreenWidth = 1200;
|
46 |
+
|
47 |
+
public $tabletPortraitScreenWidth = 800;
|
48 |
+
|
49 |
+
public $mobilePortraitScreenWidth = 440;
|
50 |
+
|
51 |
+
public $tabletLandscapeScreenWidth = 1024;
|
52 |
+
|
53 |
+
public $mobileLandscapeScreenWidth = 740;
|
54 |
+
|
55 |
+
public $focusUser = 0, $focusAutoplay = 0;
|
56 |
+
|
57 |
+
public $orientationMode = 'width_and_height';
|
58 |
+
|
59 |
+
public function __construct($slider) {
|
60 |
+
|
61 |
+
$this->slider = $slider;
|
62 |
+
|
63 |
+
$this->desktop = intval($slider->params->get('desktop', 1));
|
64 |
+
$this->tablet = intval($slider->params->get('tablet', 1));
|
65 |
+
$this->mobile = intval($slider->params->get('mobile', 1));
|
66 |
+
|
67 |
+
$this->type = $slider->params->get('responsive-mode', 'auto');
|
68 |
+
$class = 'N2SSResponsive' . $this->type;
|
69 |
+
if (!class_exists($class)) {
|
70 |
+
$class = 'N2SSResponsiveAuto';
|
71 |
+
}
|
72 |
+
$this->modeObject = new $class($slider->params, $this);
|
73 |
+
$this->onResizeEnabled = !$slider->disableResponsive;
|
74 |
+
|
75 |
+
if (!$this->scaleDown && !$this->scaleUp) {
|
76 |
+
$this->onResizeEnabled = 0;
|
77 |
+
}
|
78 |
+
|
79 |
+
|
80 |
+
$this->basedOn = N2SmartSliderSettings::get('responsive-basedon', 'combined');
|
81 |
+
|
82 |
+
$this->desktopPortraitScreenWidth = intval(N2SmartSliderSettings::get('responsive-screen-width-desktop-portrait', 1200));
|
83 |
+
|
84 |
+
$this->tabletPortraitScreenWidth = intval(N2SmartSliderSettings::get('responsive-screen-width-tablet-portrait', 800));
|
85 |
+
$this->mobilePortraitScreenWidth = intval(N2SmartSliderSettings::get('responsive-screen-width-mobile-portrait', 440));
|
86 |
+
|
87 |
+
if ($this->tabletPortraitScreenWidth < $this->mobilePortraitScreenWidth) {
|
88 |
+
$this->mobilePortraitScreenWidth = $this->tabletPortraitScreenWidth;
|
89 |
+
}
|
90 |
+
|
91 |
+
$this->tabletLandscapeScreenWidth = intval(N2SmartSliderSettings::get('responsive-screen-width-tablet-landscape', 1024));
|
92 |
+
$this->mobileLandscapeScreenWidth = intval(N2SmartSliderSettings::get('responsive-screen-width-mobile-landscape', 740));
|
93 |
+
|
94 |
+
if ($this->tabletLandscapeScreenWidth < $this->mobileLandscapeScreenWidth) {
|
95 |
+
$this->mobileLandscapeScreenWidth = $this->tabletLandscapeScreenWidth;
|
96 |
+
}
|
97 |
+
|
98 |
+
$modes = array(
|
99 |
+
'desktopPortrait' => 1,
|
100 |
+
'desktopLandscape' => 0,
|
101 |
+
'tabletPortrait' => 0,
|
102 |
+
'tabletLandscape' => 0,
|
103 |
+
'mobilePortrait' => 0,
|
104 |
+
'mobileLandscape' => 0
|
105 |
+
);
|
106 |
+
$min = intval($slider->params->get('desktop-portrait-minimum-font-size', 4));
|
107 |
+
$minimumFontSize = array(
|
108 |
+
'desktopPortrait' => $min,
|
109 |
+
'desktopLandscape' => $min,
|
110 |
+
'tabletPortrait' => $min,
|
111 |
+
'tabletLandscape' => $min,
|
112 |
+
'mobilePortrait' => $min,
|
113 |
+
'mobileLandscape' => $min
|
114 |
+
);
|
115 |
+
$ratioModifiers = array(
|
116 |
+
'unknownUnknown' => 1,
|
117 |
+
'desktopPortrait' => 1,
|
118 |
+
'desktopLandscape' => 1,
|
119 |
+
'tabletPortrait' => 1,
|
120 |
+
'tabletLandscape' => 1,
|
121 |
+
'mobilePortrait' => 1,
|
122 |
+
'mobileLandscape' => 1
|
123 |
+
);
|
124 |
+
|
125 |
+
$sliderWidth = intval($slider->params->get('width', 1000));
|
126 |
+
$sliderHeight = intval($slider->params->get('height', 500));
|
127 |
+
|
128 |
+
$modeSwitchWidth = array(
|
129 |
+
'desktopPortrait' => $sliderWidth,
|
130 |
+
'desktopLandscape' => $sliderWidth,
|
131 |
+
'tabletPortrait' => 0,
|
132 |
+
'tabletLandscape' => 0,
|
133 |
+
'mobilePortrait' => 0,
|
134 |
+
'mobileLandscape' => 0
|
135 |
+
);
|
136 |
+
|
137 |
+
if ($slider->params->get('desktop-landscape', 0)) {
|
138 |
+
$modes['desktopLandscape'] = 1;
|
139 |
+
|
140 |
+
$landscapeWidth = intval($slider->params->get('desktop-landscape-width', 1440));
|
141 |
+
$modeSwitchWidth['desktopLandscape'] = $landscapeWidth;
|
142 |
+
|
143 |
+
$landscapeHeight = intval($slider->params->get('desktop-landscape-height'));
|
144 |
+
if ($landscapeHeight) {
|
145 |
+
$ratioModifiers['desktopLandscape'] = $landscapeHeight / ($modeSwitchWidth['desktopLandscape'] / $sliderWidth * $sliderHeight);
|
146 |
+
}
|
147 |
+
$minimumFontSize['desktopLandscape'] = intval($slider->params->get('desktop-landscape-minimum-font-size', 4));
|
148 |
+
}
|
149 |
+
|
150 |
+
if ($slider->params->get('tablet-portrait', 0)) {
|
151 |
+
$tabletWidth = intval($slider->params->get('tablet-portrait-width', 800));
|
152 |
+
} else {
|
153 |
+
$tabletWidth = intval($sliderWidth * N2SmartSliderSettings::get('responsive-default-ratio-tablet-portrait', 70) / 100);
|
154 |
+
}
|
155 |
+
if ($tabletWidth > 0) {
|
156 |
+
if ($tabletWidth >= $modeSwitchWidth['desktopPortrait']) {
|
157 |
+
$tabletWidth = $modeSwitchWidth['desktopPortrait'] - 1;
|
158 |
+
}
|
159 |
+
if ($tabletWidth > 0) {
|
160 |
+
$modes['tabletPortrait'] = 1;
|
161 |
+
$modeSwitchWidth['tabletPortrait'] = $tabletWidth;
|
162 |
+
$portraitHeight = intval($slider->params->get('tablet-portrait-height'));
|
163 |
+
if ($portraitHeight) {
|
164 |
+
$ratioModifiers['tabletPortrait'] = $portraitHeight / ($modeSwitchWidth['tabletPortrait'] / $sliderWidth * $sliderHeight);
|
165 |
+
} else {
|
166 |
+
$ratioModifiers['tabletPortrait'] = $ratioModifiers['desktopPortrait'];
|
167 |
+
}
|
168 |
+
$minimumFontSize['tabletPortrait'] = intval($slider->params->get('tablet-portrait-minimum-font-size', 4));
|
169 |
+
}
|
170 |
+
}
|
171 |
+
|
172 |
+
if ($slider->params->get('tablet-landscape', 0)) {
|
173 |
+
$tabletWidth = intval($slider->params->get('tablet-landscape-width', 1024));
|
174 |
+
if ($tabletWidth >= $modeSwitchWidth['desktopLandscape']) {
|
175 |
+
$tabletWidth = $modeSwitchWidth['desktopLandscape'] - 1;
|
176 |
+
}
|
177 |
+
if ($tabletWidth > 0) {
|
178 |
+
$modes['tabletLandscape'] = 1;
|
179 |
+
$modeSwitchWidth['tabletLandscape'] = $tabletWidth;
|
180 |
+
$landscapeHeight = intval($slider->params->get('tablet-landscape-height'));
|
181 |
+
if ($landscapeHeight) {
|
182 |
+
$ratioModifiers['tabletLandscape'] = $landscapeHeight / ($modeSwitchWidth['tabletLandscape'] / $sliderWidth * $sliderHeight);
|
183 |
+
} else {
|
184 |
+
$ratioModifiers['tabletLandscape'] = $ratioModifiers['desktopLandscape'];
|
185 |
+
}
|
186 |
+
$minimumFontSize['tabletLandscape'] = intval($slider->params->get('tablet-landscape-minimum-font-size', 4));
|
187 |
+
}
|
188 |
+
} else {
|
189 |
+
$this->tabletLandscapeScreenWidth = $this->tabletPortraitScreenWidth;
|
190 |
+
$ratioModifiers['tabletLandscape'] = $ratioModifiers['tabletPortrait'];
|
191 |
+
}
|
192 |
+
|
193 |
+
|
194 |
+
if ($slider->params->get('mobile-portrait', 0)) {
|
195 |
+
$mobileWidth = intval($slider->params->get('mobile-portrait-width', 440));
|
196 |
+
} else {
|
197 |
+
$mobileWidth = intval($sliderWidth * N2SmartSliderSettings::get('responsive-default-ratio-mobile-portrait', 50) / 100);
|
198 |
+
}
|
199 |
+
if ($mobileWidth > 0) {
|
200 |
+
if ($modeSwitchWidth['tabletPortrait'] > 0) {
|
201 |
+
if ($mobileWidth >= $modeSwitchWidth['tabletPortrait']) {
|
202 |
+
$mobileWidth = $modeSwitchWidth['tabletPortrait'] - 1;
|
203 |
+
}
|
204 |
+
} else {
|
205 |
+
if ($mobileWidth >= $modeSwitchWidth['desktopPortrait']) {
|
206 |
+
$mobileWidth = $modeSwitchWidth['desktopPortrait'] - 1;
|
207 |
+
}
|
208 |
+
}
|
209 |
+
if ($mobileWidth > 0) {
|
210 |
+
$modes['mobilePortrait'] = 1;
|
211 |
+
$modeSwitchWidth['mobilePortrait'] = $mobileWidth;
|
212 |
+
$portraitHeight = intval($slider->params->get('mobile-portrait-height'));
|
213 |
+
if ($portraitHeight) {
|
214 |
+
$ratioModifiers['mobilePortrait'] = $portraitHeight / ($modeSwitchWidth['mobilePortrait'] / $sliderWidth * $sliderHeight);
|
215 |
+
} else {
|
216 |
+
$ratioModifiers['mobilePortrait'] = $ratioModifiers['tabletPortrait'];
|
217 |
+
}
|
218 |
+
$minimumFontSize['mobilePortrait'] = intval($slider->params->get('mobile-portrait-minimum-font-size', 4));
|
219 |
+
}
|
220 |
+
}
|
221 |
+
|
222 |
+
if ($slider->params->get('mobile-landscape', 0)) {
|
223 |
+
$mobileWidth = intval($slider->params->get('mobile-landscape-width', 740));
|
224 |
+
if ($modeSwitchWidth['tabletLandscape'] > 0) {
|
225 |
+
if ($mobileWidth >= $modeSwitchWidth['tabletLandscape']) {
|
226 |
+
$mobileWidth = $modeSwitchWidth['tabletLandscape'] - 1;
|
227 |
+
}
|
228 |
+
} else {
|
229 |
+
if ($mobileWidth >= $modeSwitchWidth['desktopLandscape']) {
|
230 |
+
$mobileWidth = $modeSwitchWidth['desktopLandscape'] - 1;
|
231 |
+
}
|
232 |
+
}
|
233 |
+
if ($mobileWidth > 0) {
|
234 |
+
$modes['mobileLandscape'] = 1;
|
235 |
+
$modeSwitchWidth['mobileLandscape'] = $mobileWidth;
|
236 |
+
$landscapeHeight = intval($slider->params->get('mobile-landscape-height'));
|
237 |
+
if ($landscapeHeight) {
|
238 |
+
$ratioModifiers['mobileLandscape'] = $landscapeHeight / ($modeSwitchWidth['mobileLandscape'] / $sliderWidth * $sliderHeight);
|
239 |
+
} else {
|
240 |
+
$ratioModifiers['mobileLandscape'] = $ratioModifiers['tabletLandscape'];
|
241 |
+
}
|
242 |
+
$minimumFontSize['mobileLandscape'] = intval($slider->params->get('mobile-landscape-minimum-font-size', 4));
|
243 |
+
}
|
244 |
+
} else {
|
245 |
+
$this->mobileLandscapeScreenWidth = $this->mobilePortraitScreenWidth;
|
246 |
+
$ratioModifiers['mobileLandscape'] = $ratioModifiers['mobilePortrait'];
|
247 |
+
}
|
248 |
+
$this->modes = $modes;
|
249 |
+
$this->sliderWidthToDevice = $modeSwitchWidth;
|
250 |
+
$this->sliderRatioToDevice = array(
|
251 |
+
'Portrait' => array(
|
252 |
+
'tablet' => $modeSwitchWidth['tabletPortrait'] / $modeSwitchWidth['desktopPortrait'],
|
253 |
+
'mobile' => $modeSwitchWidth['mobilePortrait'] / $modeSwitchWidth['desktopPortrait']
|
254 |
+
),
|
255 |
+
'Landscape' => array(
|
256 |
+
'tablet' => $modeSwitchWidth['tabletLandscape'] / $modeSwitchWidth['desktopPortrait'],
|
257 |
+
'mobile' => $modeSwitchWidth['mobileLandscape'] / $modeSwitchWidth['desktopPortrait']
|
258 |
+
)
|
259 |
+
);
|
260 |
+
$this->minimumFontSizes = $minimumFontSize;
|
261 |
+
$this->verticalRatioModifiers = $ratioModifiers;
|
262 |
+
|
263 |
+
}
|
264 |
+
|
265 |
+
public function makeJavaScriptProperties(&$properties) {
|
266 |
+
$normalizedDeviceModes = array(
|
267 |
+
'unknownUnknown' => array(
|
268 |
+
'unknown',
|
269 |
+
'Unknown'
|
270 |
+
),
|
271 |
+
'desktopPortrait' => array(
|
272 |
+
'desktop',
|
273 |
+
'Portrait'
|
274 |
+
)
|
275 |
+
);
|
276 |
+
if ($this->orientationMode == 'width') {
|
277 |
+
if (!$this->modes['desktopLandscape']) {
|
278 |
+
$normalizedDeviceModes['desktopLandscape'] = $normalizedDeviceModes['desktopPortrait'];
|
279 |
+
} else {
|
280 |
+
$normalizedDeviceModes['desktopLandscape'] = array(
|
281 |
+
'desktop',
|
282 |
+
'Landscape'
|
283 |
+
);
|
284 |
+
}
|
285 |
+
if (!$this->modes['tabletLandscape']) {
|
286 |
+
$normalizedDeviceModes['tabletLandscape'] = $normalizedDeviceModes['desktopPortrait'];
|
287 |
+
|
288 |
+
} else {
|
289 |
+
$normalizedDeviceModes['tabletLandscape'] = array(
|
290 |
+
'tablet',
|
291 |
+
'Landscape'
|
292 |
+
);
|
293 |
+
}
|
294 |
+
if (!$this->modes['tabletPortrait']) {
|
295 |
+
$normalizedDeviceModes['tabletPortrait'] = $normalizedDeviceModes['tabletLandscape'];
|
296 |
+
} else {
|
297 |
+
$normalizedDeviceModes['tabletPortrait'] = array(
|
298 |
+
'tablet',
|
299 |
+
'Portrait'
|
300 |
+
);
|
301 |
+
}
|
302 |
+
if (!$this->modes['mobileLandscape']) {
|
303 |
+
$normalizedDeviceModes['mobileLandscape'] = $normalizedDeviceModes['tabletPortrait'];
|
304 |
+
} else {
|
305 |
+
$normalizedDeviceModes['mobileLandscape'] = array(
|
306 |
+
'mobile',
|
307 |
+
'Landscape'
|
308 |
+
);
|
309 |
+
}
|
310 |
+
if (!$this->modes['mobilePortrait']) {
|
311 |
+
$normalizedDeviceModes['mobilePortrait'] = $normalizedDeviceModes['mobileLandscape'];
|
312 |
+
} else {
|
313 |
+
$normalizedDeviceModes['mobilePortrait'] = array(
|
314 |
+
'mobile',
|
315 |
+
'Portrait'
|
316 |
+
);
|
317 |
+
}
|
318 |
+
} else {
|
319 |
+
if (!$this->modes['desktopLandscape']) {
|
320 |
+
$normalizedDeviceModes['desktopLandscape'] = $normalizedDeviceModes['desktopPortrait'];
|
321 |
+
} else {
|
322 |
+
$normalizedDeviceModes['desktopLandscape'] = array(
|
323 |
+
'desktop',
|
324 |
+
'Landscape'
|
325 |
+
);
|
326 |
+
}
|
327 |
+
if (!$this->modes['tabletPortrait']) {
|
328 |
+
$normalizedDeviceModes['tabletPortrait'] = $normalizedDeviceModes['desktopPortrait'];
|
329 |
+
} else {
|
330 |
+
$normalizedDeviceModes['tabletPortrait'] = array(
|
331 |
+
'tablet',
|
332 |
+
'Portrait'
|
333 |
+
);
|
334 |
+
}
|
335 |
+
if (!$this->modes['tabletLandscape']) {
|
336 |
+
if ($normalizedDeviceModes['desktopLandscape'][1] == 'Landscape') {
|
337 |
+
$normalizedDeviceModes['tabletLandscape'] = $normalizedDeviceModes['desktopLandscape'];
|
338 |
+
} else {
|
339 |
+
$normalizedDeviceModes['tabletLandscape'] = $normalizedDeviceModes['tabletPortrait'];
|
340 |
+
}
|
341 |
+
} else {
|
342 |
+
$normalizedDeviceModes['tabletLandscape'] = array(
|
343 |
+
'tablet',
|
344 |
+
'Landscape'
|
345 |
+
);
|
346 |
+
}
|
347 |
+
if (!$this->modes['mobilePortrait']) {
|
348 |
+
$normalizedDeviceModes['mobilePortrait'] = $normalizedDeviceModes['tabletPortrait'];
|
349 |
+
} else {
|
350 |
+
$normalizedDeviceModes['mobilePortrait'] = array(
|
351 |
+
'mobile',
|
352 |
+
'Portrait'
|
353 |
+
);
|
354 |
+
}
|
355 |
+
if (!$this->modes['mobileLandscape']) {
|
356 |
+
if ($normalizedDeviceModes['tabletLandscape'][1] == 'Landscape') {
|
357 |
+
$normalizedDeviceModes['mobileLandscape'] = $normalizedDeviceModes['tabletLandscape'];
|
358 |
+
} else {
|
359 |
+
$normalizedDeviceModes['mobileLandscape'] = $normalizedDeviceModes['mobilePortrait'];
|
360 |
+
}
|
361 |
+
} else {
|
362 |
+
$normalizedDeviceModes['mobileLandscape'] = array(
|
363 |
+
'mobile',
|
364 |
+
'Landscape'
|
365 |
+
);
|
366 |
+
}
|
367 |
+
}
|
368 |
+
|
369 |
+
if ($this->maximumSlideWidthLandscape <= 0) {
|
370 |
+
$this->maximumSlideWidthLandscape = $this->maximumSlideWidth;
|
371 |
+
}
|
372 |
+
|
373 |
+
if ($this->maximumSlideWidthTablet <= 0) {
|
374 |
+
$this->maximumSlideWidthTablet = $this->maximumSlideWidth;
|
375 |
+
}
|
376 |
+
|
377 |
+
if ($this->maximumSlideWidthTabletLandscape <= 0) {
|
378 |
+
$this->maximumSlideWidthTabletLandscape = $this->maximumSlideWidthTablet;
|
379 |
+
}
|
380 |
+
|
381 |
+
if ($this->maximumSlideWidthMobile <= 0) {
|
382 |
+
$this->maximumSlideWidthMobile = $this->maximumSlideWidth;
|
383 |
+
}
|
384 |
+
|
385 |
+
if ($this->maximumSlideWidthMobileLandscape <= 0) {
|
386 |
+
$this->maximumSlideWidthMobileLandscape = $this->maximumSlideWidthMobile;
|
387 |
+
}
|
388 |
+
|
389 |
+
|
390 |
+
$properties['responsive'] = array(
|
391 |
+
'desktop' => $this->desktop,
|
392 |
+
'tablet' => $this->tablet,
|
393 |
+
'mobile' => $this->mobile,
|
394 |
+
|
395 |
+
'onResizeEnabled' => $this->onResizeEnabled,
|
396 |
+
'type' => $this->type,
|
397 |
+
'downscale' => $this->scaleDown,
|
398 |
+
'upscale' => $this->scaleUp,
|
399 |
+
'minimumHeight' => $this->minimumHeight,
|
400 |
+
'maximumHeight' => $this->maximumHeight,
|
401 |
+
'maximumSlideWidth' => $this->maximumSlideWidth,
|
402 |
+
'maximumSlideWidthLandscape' => $this->maximumSlideWidthLandscape,
|
403 |
+
'maximumSlideWidthTablet' => $this->maximumSlideWidthTablet,
|
404 |
+
'maximumSlideWidthTabletLandscape' => $this->maximumSlideWidthTabletLandscape,
|
405 |
+
'maximumSlideWidthMobile' => $this->maximumSlideWidthMobile,
|
406 |
+
'maximumSlideWidthMobileLandscape' => $this->maximumSlideWidthMobileLandscape,
|
407 |
+
'maximumSlideWidthConstrainHeight' => intval($this->maximumSlideWidthConstrainHeight),
|
408 |
+
'forceFull' => $this->forceFull,
|
409 |
+
'verticalOffsetSelectors' => $this->verticalOffsetSelectors,
|
410 |
+
|
411 |
+
'focusUser' => $this->focusUser,
|
412 |
+
'focusAutoplay' => $this->focusAutoplay,
|
413 |
+
|
414 |
+
'deviceModes' => $this->modes,
|
415 |
+
'normalizedDeviceModes' => $normalizedDeviceModes,
|
416 |
+
'verticalRatioModifiers' => $this->verticalRatioModifiers,
|
417 |
+
'minimumFontSizes' => $this->minimumFontSizes,
|
418 |
+
'ratioToDevice' => $this->sliderRatioToDevice,
|
419 |
+
'sliderWidthToDevice' => $this->sliderWidthToDevice,
|
420 |
+
|
421 |
+
'basedOn' => $this->basedOn,
|
422 |
+
'tabletPortraitScreenWidth' => $this->tabletPortraitScreenWidth,
|
423 |
+
'mobilePortraitScreenWidth' => $this->mobilePortraitScreenWidth,
|
424 |
+
'tabletLandscapeScreenWidth' => $this->tabletLandscapeScreenWidth,
|
425 |
+
'mobileLandscapeScreenWidth' => $this->mobileLandscapeScreenWidth,
|
426 |
+
'orientationMode' => $this->orientationMode
|
427 |
+
);
|
428 |
+
}
|
429 |
+
|
430 |
+
public function getMinimumFontSizeAttributes() {
|
431 |
+
$return = array();
|
432 |
+
foreach ($this->minimumFontSizes AS $k => $v) {
|
433 |
+
$return['data-minFontSize' . $k] = $v;
|
434 |
+
}
|
435 |
+
return $return;
|
436 |
+
}
|
437 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/slidebackground.php
ADDED
@@ -0,0 +1,227 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderFeatureSlideBackground
|
4 |
+
{
|
5 |
+
|
6 |
+
private $slider;
|
7 |
+
|
8 |
+
public function __construct($slider) {
|
9 |
+
|
10 |
+
$this->slider = $slider;
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* @param $slide N2SmartSliderSlide
|
15 |
+
*
|
16 |
+
* @return string
|
17 |
+
*/
|
18 |
+
public function make($slide) {
|
19 |
+
|
20 |
+
$dynamicHeight = intval($this->slider->params->get('dynamic-height', 0));
|
21 |
+
|
22 |
+
$backgroundImage = $slide->fill($slide->parameters->get('backgroundImage', ''));
|
23 |
+
$backgroundImageOpacity = min(100, max(0, $slide->parameters->get('backgroundImageOpacity', 100))) / 100;
|
24 |
+
$imageData = N2ImageManager::getImageData($backgroundImage);
|
25 |
+
$sizes = $this->slider->assets->sizes;
|
26 |
+
|
27 |
+
$backgroundColor = '';
|
28 |
+
$color = $slide->parameters->get('backgroundColor', '');
|
29 |
+
if (strlen($color) == 8 && substr($color, 6, 2) != '00') {
|
30 |
+
$backgroundColor = 'background-color: #' . substr($color, 0, 6) . ';';
|
31 |
+
|
32 |
+
if (!class_exists('N2Color')) {
|
33 |
+
N2Loader::import("libraries.image.color");
|
34 |
+
}
|
35 |
+
|
36 |
+
$rgba = N2Color::hex2rgba($color);
|
37 |
+
$rgba[3] = round($rgba[3] / 127, 2);
|
38 |
+
$backgroundColor .= "background-color: RGBA({$rgba[0]}, {$rgba[1]}, {$rgba[2]}, {$rgba[3]});";
|
39 |
+
}
|
40 |
+
|
41 |
+
if (empty($backgroundImage)) {
|
42 |
+
$src = N2Image::base64Transparent();
|
43 |
+
} else {
|
44 |
+
$src = $backgroundImage;
|
45 |
+
}
|
46 |
+
$alt = $slide->parameters->get('backgroundAlt', '');
|
47 |
+
$fillMode = $slide->parameters->get('backgroundMode', 'fill');
|
48 |
+
|
49 |
+
if ($dynamicHeight) {
|
50 |
+
return $this->simple($backgroundColor, $backgroundImageOpacity, $src, $imageData, $alt, $sizes);
|
51 |
+
}
|
52 |
+
|
53 |
+
switch ($fillMode) {
|
54 |
+
case 'fit':
|
55 |
+
return $this->fit($backgroundColor, $backgroundImageOpacity, $src, $imageData, $alt, $sizes);
|
56 |
+
case 'stretch':
|
57 |
+
return $this->stretch($backgroundColor, $backgroundImageOpacity, $src, $imageData, $alt);
|
58 |
+
case 'center':
|
59 |
+
return $this->center($backgroundColor, $backgroundImageOpacity, $src, $imageData);
|
60 |
+
case 'tile':
|
61 |
+
return $this->tile($backgroundColor, $backgroundImageOpacity, $src, $imageData);
|
62 |
+
}
|
63 |
+
return $this->fill($backgroundColor, $backgroundImageOpacity, $src, $imageData, $alt, $sizes);
|
64 |
+
}
|
65 |
+
|
66 |
+
private function getSize($image, $imageData) {
|
67 |
+
$size = N2Parse::parse($imageData['desktop']['size']);
|
68 |
+
if ($size[0] > 0 && $size[1] > 0) {
|
69 |
+
return $size;
|
70 |
+
} else {
|
71 |
+
list($width, $height) = @getimagesize($image);
|
72 |
+
if ($width != null && $height != null) {
|
73 |
+
$imageData['desktop']['size'] = $width . '|*|' . $height;
|
74 |
+
N2ImageManager::setImageData($image, $imageData);
|
75 |
+
return array(
|
76 |
+
$width,
|
77 |
+
$height
|
78 |
+
);
|
79 |
+
}
|
80 |
+
}
|
81 |
+
return null;
|
82 |
+
}
|
83 |
+
|
84 |
+
private function getDeviceAttributes($image, $imageData) {
|
85 |
+
$attributes = array();
|
86 |
+
$attributes['data-hash'] = md5($image);
|
87 |
+
$attributes['data-desktop'] = N2ImageHelper::fixed($image);
|
88 |
+
if ($imageData['tablet']['image'] == '' && $imageData['mobile']['image'] == '') {
|
89 |
+
|
90 |
+
} else {
|
91 |
+
if ($imageData['tablet']['image'] != '') {
|
92 |
+
$attributes['data-tablet'] = N2ImageHelper::fixed($imageData['tablet']['image']);
|
93 |
+
}
|
94 |
+
if ($imageData['mobile']['image'] != '') {
|
95 |
+
$attributes['data-mobile'] = N2ImageHelper::fixed($imageData['mobile']['image']);
|
96 |
+
}
|
97 |
+
|
98 |
+
//We have to force the fade on load enabled to make sure the user get great result.
|
99 |
+
$this->slider->features->fadeOnLoad->forceFadeOnLoad();
|
100 |
+
}
|
101 |
+
return $attributes;
|
102 |
+
}
|
103 |
+
|
104 |
+
private function getDefaultImage($src, $deviceAttributes) {
|
105 |
+
if (count($deviceAttributes) > 2 || $this->slider->features->lazyLoad->isEnabled > 0) {
|
106 |
+
return N2Image::base64Transparent();
|
107 |
+
} else {
|
108 |
+
return N2ImageHelper::fixed($src);
|
109 |
+
}
|
110 |
+
}
|
111 |
+
|
112 |
+
private function fill($backgroundColor, $backgroundImageOpacity, $src, $imageData, $alt, $sizes) {
|
113 |
+
|
114 |
+
$outerRatio = $sizes['canvasWidth'] / $sizes['canvasHeight'];
|
115 |
+
|
116 |
+
list($width, $height) = $this->getSize($src, $imageData);
|
117 |
+
if (!$width || !$height) {
|
118 |
+
$style = '';
|
119 |
+
} else {
|
120 |
+
$ratio = $width / $height;
|
121 |
+
|
122 |
+
if ($outerRatio > $ratio) {
|
123 |
+
$style = 'width: 100%;height: auto;';
|
124 |
+
$height = ($sizes['canvasHeight'] - $sizes['canvasWidth'] / $width * $height) / 2;
|
125 |
+
$style .= 'margin-top: ' . $height . 'px;';
|
126 |
+
} else {
|
127 |
+
$style = 'width: auto;height: 100%;';
|
128 |
+
$width = ($sizes['canvasWidth'] - $sizes['canvasHeight'] / $height * $width) / 2;
|
129 |
+
$style .= 'margin-left: ' . $width . 'px;';
|
130 |
+
}
|
131 |
+
}
|
132 |
+
|
133 |
+
$deviceAttributes = $this->getDeviceAttributes($src, $imageData);
|
134 |
+
|
135 |
+
return NHtml::tag('div', $deviceAttributes + array(
|
136 |
+
"style" => $backgroundColor,
|
137 |
+
"class" => "n2-ss-slide-background",
|
138 |
+
"data-opacity" => $backgroundImageOpacity
|
139 |
+
), NHtml::image($this->getDefaultImage($src, $deviceAttributes), $alt, array(
|
140 |
+
"style" => $style . 'opacity:' . $backgroundImageOpacity . ';',
|
141 |
+
"class" => "n2-ss-slide-background-image n2-ss-slide-fill"
|
142 |
+
)));
|
143 |
+
}
|
144 |
+
|
145 |
+
private function simple($backgroundColor, $backgroundImageOpacity, $src, $imageData, $alt, $sizes) {
|
146 |
+
|
147 |
+
$style = 'width: 100%;height: auto;';
|
148 |
+
|
149 |
+
|
150 |
+
$deviceAttributes = $this->getDeviceAttributes($src, $imageData);
|
151 |
+
return NHtml::tag('div', $deviceAttributes + array(
|
152 |
+
"style" => $backgroundColor,
|
153 |
+
"class" => "n2-ss-slide-background",
|
154 |
+
"data-opacity" => $backgroundImageOpacity
|
155 |
+
), NHtml::image($this->getDefaultImage($src, $deviceAttributes), $alt, array(
|
156 |
+
"style" => $style . 'opacity:' . $backgroundImageOpacity . ';',
|
157 |
+
"class" => "n2-ss-slide-background-image n2-ss-slide-simple"
|
158 |
+
)));
|
159 |
+
}
|
160 |
+
|
161 |
+
private function fit($backgroundColor, $backgroundImageOpacity, $src, $imageData, $alt, $sizes) {
|
162 |
+
|
163 |
+
$outerRatio = $sizes['canvasWidth'] / $sizes['canvasHeight'];
|
164 |
+
|
165 |
+
list($width, $height) = $this->getSize($src, $imageData);
|
166 |
+
if (!$width || !$height) {
|
167 |
+
$style = '';
|
168 |
+
} else {
|
169 |
+
$ratio = $width / $height;
|
170 |
+
if ($outerRatio < $ratio) {
|
171 |
+
$style = 'width: 100%;height: auto;';
|
172 |
+
$height = ($sizes['canvasHeight'] - $sizes['canvasWidth'] / $width * $height) / 2;
|
173 |
+
$style .= 'margin-top: ' . $height . 'px;';
|
174 |
+
} else {
|
175 |
+
$style = 'width: auto;height: 100%;';
|
176 |
+
$width = ($sizes['canvasWidth'] - $sizes['canvasHeight'] / $height * $width) / 2;
|
177 |
+
$style .= 'margin-left: ' . $width . 'px;';
|
178 |
+
}
|
179 |
+
}
|
180 |
+
|
181 |
+
$deviceAttributes = $this->getDeviceAttributes($src, $imageData);
|
182 |
+
return NHtml::tag('div', $deviceAttributes + array(
|
183 |
+
"style" => $backgroundColor,
|
184 |
+
"class" => "n2-ss-slide-background",
|
185 |
+
"data-opacity" => $backgroundImageOpacity
|
186 |
+
), NHtml::image($this->getDefaultImage($src, $deviceAttributes), $alt, array(
|
187 |
+
"style" => $style . 'opacity:' . $backgroundImageOpacity . ';',
|
188 |
+
"class" => "n2-ss-slide-background-image n2-ss-slide-fit"
|
189 |
+
)));
|
190 |
+
}
|
191 |
+
|
192 |
+
private function stretch($backgroundColor, $backgroundImageOpacity, $src, $imageData, $alt) {
|
193 |
+
$deviceAttributes = $this->getDeviceAttributes($src, $imageData);
|
194 |
+
return NHtml::tag('div', $deviceAttributes + array(
|
195 |
+
"style" => $backgroundColor,
|
196 |
+
"class" => "n2-ss-slide-background",
|
197 |
+
"data-opacity" => $backgroundImageOpacity
|
198 |
+
), NHtml::image($this->getDefaultImage($src, $deviceAttributes), $alt, array(
|
199 |
+
"style" => 'opacity:' . $backgroundImageOpacity . ';',
|
200 |
+
"class" => "n2-ss-slide-background-image n2-ss-slide-stretch"
|
201 |
+
)));
|
202 |
+
}
|
203 |
+
|
204 |
+
private function center($backgroundColor, $backgroundImageOpacity, $src, $imageData) {
|
205 |
+
$deviceAttributes = $this->getDeviceAttributes($src, $imageData);
|
206 |
+
return NHtml::tag('div', $deviceAttributes + array(
|
207 |
+
"style" => $backgroundColor,
|
208 |
+
"class" => "n2-ss-slide-background",
|
209 |
+
"data-opacity" => $backgroundImageOpacity
|
210 |
+
), NHtml::tag('div', array(
|
211 |
+
"class" => "n2-ss-slide-background-image n2-ss-slide-center",
|
212 |
+
"style" => "background-image: url(" . $this->getDefaultImage($src, $deviceAttributes) . ");" . 'opacity:' . $backgroundImageOpacity . ';'
|
213 |
+
)));
|
214 |
+
}
|
215 |
+
|
216 |
+
private function tile($backgroundColor, $backgroundImageOpacity, $src, $imageData) {
|
217 |
+
$deviceAttributes = $this->getDeviceAttributes($src, $imageData);
|
218 |
+
return NHtml::tag('div', $deviceAttributes + array(
|
219 |
+
"style" => $backgroundColor,
|
220 |
+
"class" => "n2-ss-slide-background",
|
221 |
+
"data-opacity" => $backgroundImageOpacity
|
222 |
+
), NHtml::tag('div', array(
|
223 |
+
"class" => "n2-ss-slide-background-image n2-ss-slide-tile",
|
224 |
+
"style" => "background-image: url('" . $this->getDefaultImage($src, $deviceAttributes) . "');" . 'opacity:' . $backgroundImageOpacity . ';'
|
225 |
+
)));
|
226 |
+
}
|
227 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/spinner.php
ADDED
@@ -0,0 +1,262 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderFeatureSpinner
|
4 |
+
{
|
5 |
+
|
6 |
+
private $slider;
|
7 |
+
|
8 |
+
private static $spinners = array(
|
9 |
+
'-1' => '',
|
10 |
+
'0' => '',
|
11 |
+
'rectangleDark' => '<div><div class="n2-ss-spinner-rectangle-dark-container"><div class="n2-ss-spinner-rectangle-dark"><div class="n2-ss-spinner-rectangle-1"></div><div class="n2-ss-spinner-rectangle-2"></div><div class="n2-ss-spinner-rectangle-3"></div><div class="n2-ss-spinner-rectangle-4"></div></div></div>
|
12 |
+
<style type="text/css">
|
13 |
+
.n2-ss-spinner-rectangle-dark-container {
|
14 |
+
position: absolute;
|
15 |
+
top: 50%;
|
16 |
+
left: 50%;
|
17 |
+
margin: -20px -30px;
|
18 |
+
background: RGBA(0,0,0,0.8);
|
19 |
+
width: 50px;
|
20 |
+
height: 30px;
|
21 |
+
padding: 5px;
|
22 |
+
border-radius: 3px;
|
23 |
+
z-index: 1000;
|
24 |
+
}
|
25 |
+
.n2-ss-spinner-rectangle-dark {
|
26 |
+
width:100%;
|
27 |
+
height: 100%;
|
28 |
+
outline: 1px solid RGBA(0,0,0,0);
|
29 |
+
text-align: center;
|
30 |
+
font-size: 10px;
|
31 |
+
}
|
32 |
+
|
33 |
+
.n2-ss-spinner-rectangle-dark > div {
|
34 |
+
background-color: #fff;
|
35 |
+
margin: 0 1px;
|
36 |
+
height: 100%;
|
37 |
+
width: 6px;
|
38 |
+
display: inline-block;
|
39 |
+
-webkit-animation: n2RectangleDark 1.2s infinite ease-in-out;
|
40 |
+
animation: n2RectangleDark 1.2s infinite ease-in-out;
|
41 |
+
}
|
42 |
+
div.n2-ss-spinner-rectangle-2 {
|
43 |
+
-webkit-animation-delay: -1.1s;
|
44 |
+
animation-delay: -1.1s;
|
45 |
+
}
|
46 |
+
div.n2-ss-spinner-rectangle-3 {
|
47 |
+
-webkit-animation-delay: -1.0s;
|
48 |
+
animation-delay: -1.0s;
|
49 |
+
}
|
50 |
+
div.n2-ss-spinner-rectangle-4 {
|
51 |
+
-webkit-animation-delay: -0.9s;
|
52 |
+
animation-delay: -0.9s;
|
53 |
+
}
|
54 |
+
|
55 |
+
@-webkit-keyframes n2RectangleDark {
|
56 |
+
0%, 40%, 100% { -webkit-transform: scaleY(0.4) }
|
57 |
+
20% { -webkit-transform: scaleY(1.0) }
|
58 |
+
}
|
59 |
+
|
60 |
+
@keyframes n2RectangleDark {
|
61 |
+
0%, 40%, 100% {
|
62 |
+
transform: scaleY(0.4);
|
63 |
+
-webkit-transform: scaleY(0.4);
|
64 |
+
} 20% {
|
65 |
+
transform: scaleY(1.0);
|
66 |
+
-webkit-transform: scaleY(1.0);
|
67 |
+
}
|
68 |
+
}
|
69 |
+
</style>',
|
70 |
+
'simpleDark' => '<div><div class="n2-ss-spinner-simple-dark-container"><div class="n2-ss-spinner-simple-dark"></div></div>
|
71 |
+
<style type="text/css">
|
72 |
+
.n2-ss-spinner-simple-dark-container {
|
73 |
+
position: absolute;
|
74 |
+
top: 50%;
|
75 |
+
left: 50%;
|
76 |
+
margin: -20px;
|
77 |
+
background: RGBA(0,0,0,0.8);
|
78 |
+
width: 20px;
|
79 |
+
height: 20px;
|
80 |
+
padding: 10px;
|
81 |
+
border-radius: 50%;
|
82 |
+
z-index: 1000;
|
83 |
+
}
|
84 |
+
|
85 |
+
.n2-ss-spinner-simple-dark {
|
86 |
+
outline: 1px solid RGBA(0,0,0,0);
|
87 |
+
width:100%;
|
88 |
+
height: 100%;
|
89 |
+
}
|
90 |
+
|
91 |
+
.n2-ss-spinner-simple-dark:before {
|
92 |
+
position: absolute;
|
93 |
+
top: 50%;
|
94 |
+
left: 50%;
|
95 |
+
width: 20px;
|
96 |
+
height: 20px;
|
97 |
+
margin-top: -11px;
|
98 |
+
margin-left: -11px;
|
99 |
+
}
|
100 |
+
|
101 |
+
.n2-ss-spinner-simple-dark:not(:required):before {
|
102 |
+
content: \'\';
|
103 |
+
border-radius: 50%;
|
104 |
+
border-top: 2px solid #fff;
|
105 |
+
border-right: 2px solid transparent;
|
106 |
+
animation: n2SimpleDark .6s linear infinite;
|
107 |
+
-webkit-animation: n2SimpleDark .6s linear infinite;
|
108 |
+
}
|
109 |
+
@keyframes n2SimpleDark {
|
110 |
+
to {transform: rotate(360deg);}
|
111 |
+
}
|
112 |
+
|
113 |
+
@-webkit-keyframes n2SimpleDark {
|
114 |
+
to {-webkit-transform: rotate(360deg);}
|
115 |
+
}
|
116 |
+
|
117 |
+
</style>',
|
118 |
+
'simpleWhite' => '<div><div class="n2-ss-spinner-simple-white-container"><div class="n2-ss-spinner-simple-white"></div></div>
|
119 |
+
<style type="text/css">
|
120 |
+
.n2-ss-spinner-simple-white-container {
|
121 |
+
position: absolute;
|
122 |
+
top: 50%;
|
123 |
+
left: 50%;
|
124 |
+
margin: -20px;
|
125 |
+
background: #fff;
|
126 |
+
width: 20px;
|
127 |
+
height: 20px;
|
128 |
+
padding: 10px;
|
129 |
+
border-radius: 50%;
|
130 |
+
z-index: 1000;
|
131 |
+
}
|
132 |
+
|
133 |
+
.n2-ss-spinner-simple-white {
|
134 |
+
outline: 1px solid RGBA(0,0,0,0);
|
135 |
+
width:100%;
|
136 |
+
height: 100%;
|
137 |
+
}
|
138 |
+
|
139 |
+
.n2-ss-spinner-simple-white:before {
|
140 |
+
position: absolute;
|
141 |
+
top: 50%;
|
142 |
+
left: 50%;
|
143 |
+
width: 20px;
|
144 |
+
height: 20px;
|
145 |
+
margin-top: -11px;
|
146 |
+
margin-left: -11px;
|
147 |
+
}
|
148 |
+
|
149 |
+
.n2-ss-spinner-simple-white:not(:required):before {
|
150 |
+
content: \'\';
|
151 |
+
border-radius: 50%;
|
152 |
+
border-top: 2px solid #333;
|
153 |
+
border-right: 2px solid transparent;
|
154 |
+
animation: n2SimpleWhite .6s linear infinite;
|
155 |
+
-webkit-animation: n2SimpleWhite .6s linear infinite;
|
156 |
+
}
|
157 |
+
@keyframes n2SimpleWhite {
|
158 |
+
to {transform: rotate(360deg);}
|
159 |
+
}
|
160 |
+
|
161 |
+
@-webkit-keyframes n2SimpleWhite {
|
162 |
+
to {-webkit-transform: rotate(360deg);}
|
163 |
+
}
|
164 |
+
|
165 |
+
</style>',
|
166 |
+
'infiniteDark' => '<div><div class="n2-ss-spinner-infinite-dark-container"><div class="n2-ss-spinner-infinite-dark"></div></div>
|
167 |
+
<style type="text/css">
|
168 |
+
.n2-ss-spinner-infinite-dark-container {
|
169 |
+
position: absolute;
|
170 |
+
top: 50%;
|
171 |
+
left: 50%;
|
172 |
+
margin: -15px;
|
173 |
+
background: RGBA(0,0,0,0.8);
|
174 |
+
width: 20px;
|
175 |
+
height: 20px;
|
176 |
+
padding: 5px;
|
177 |
+
border-radius: 50%;
|
178 |
+
z-index: 1000;
|
179 |
+
}
|
180 |
+
.n2-ss-spinner-infinite-dark {
|
181 |
+
outline: 1px solid RGBA(0,0,0,0);
|
182 |
+
width:100%;
|
183 |
+
height: 100%;
|
184 |
+
}
|
185 |
+
.n2-ss-spinner-infinite-dark:before {
|
186 |
+
position: absolute;
|
187 |
+
top: 50%;
|
188 |
+
left: 50%;
|
189 |
+
width: 16px;
|
190 |
+
height: 16px;
|
191 |
+
margin-top: -10px;
|
192 |
+
margin-left: -10px;
|
193 |
+
}
|
194 |
+
.n2-ss-spinner-infinite-dark:not(:required):before {
|
195 |
+
content: \'\';
|
196 |
+
border-radius: 50%;
|
197 |
+
border: 2px solid rgba(255, 255, 255, .3);
|
198 |
+
border-top-color: #fff;
|
199 |
+
animation: n2InfiniteDark .6s linear infinite;
|
200 |
+
-webkit-animation: n2InfiniteDark .6s linear infinite;
|
201 |
+
}
|
202 |
+
@keyframes n2InfiniteDark {
|
203 |
+
to {transform: rotate(360deg);}
|
204 |
+
}
|
205 |
+
@-webkit-keyframes n2InfiniteDark {
|
206 |
+
to {-webkit-transform: rotate(360deg);}
|
207 |
+
}
|
208 |
+
</style></div>',
|
209 |
+
'infiniteWhite' => '<div><div class="n2-ss-spinner-infinite-white-container"><div class="n2-ss-spinner-infinite-white"></div></div>
|
210 |
+
<style type="text/css">
|
211 |
+
.n2-ss-spinner-infinite-white-container {
|
212 |
+
position: absolute;
|
213 |
+
top: 50%;
|
214 |
+
left: 50%;
|
215 |
+
margin: -10px;
|
216 |
+
background: #fff;
|
217 |
+
width: 20px;
|
218 |
+
height: 20px;
|
219 |
+
padding: 5px;
|
220 |
+
border-radius: 50%;
|
221 |
+
z-index: 1000;
|
222 |
+
}
|
223 |
+
.n2-ss-spinner-infinite-white {
|
224 |
+
outline: 1px solid RGBA(0,0,0,0);
|
225 |
+
width:100%;
|
226 |
+
height: 100%;
|
227 |
+
}
|
228 |
+
.n2-ss-spinner-infinite-white:before {
|
229 |
+
position: absolute;
|
230 |
+
top: 50%;
|
231 |
+
left: 50%;
|
232 |
+
width: 16px;
|
233 |
+
height: 16px;
|
234 |
+
margin-top: -10px;
|
235 |
+
margin-left: -10px;
|
236 |
+
}
|
237 |
+
.n2-ss-spinner-infinite-white:not(:required):before {
|
238 |
+
content: \'\';
|
239 |
+
border-radius: 50%;
|
240 |
+
border: 2px solid rgba(0, 0, 0, .3);
|
241 |
+
border-top-color: rgba(0, 0, 0, .6);
|
242 |
+
animation: n2InfiniteWhite .6s linear infinite;
|
243 |
+
-webkit-animation: n2InfiniteWhite .6s linear infinite;
|
244 |
+
}
|
245 |
+
@keyframes n2InfiniteWhite {
|
246 |
+
to {transform: rotate(360deg);}
|
247 |
+
}
|
248 |
+
@-webkit-keyframes n2InfiniteWhite {
|
249 |
+
to {-webkit-transform: rotate(360deg);}
|
250 |
+
}
|
251 |
+
</style></div>'
|
252 |
+
);
|
253 |
+
|
254 |
+
public function __construct($slider) {
|
255 |
+
|
256 |
+
$this->slider = $slider;
|
257 |
+
}
|
258 |
+
|
259 |
+
public function makeJavaScriptProperties(&$properties) {
|
260 |
+
$properties['load']['spinner'] = self::$spinners[$this->slider->params->get('spinner', 'simpleWhite')];
|
261 |
+
}
|
262 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/features/translateUrl.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderFeatureTranslateUrl
|
4 |
+
{
|
5 |
+
|
6 |
+
private $slider;
|
7 |
+
|
8 |
+
public $from = '';
|
9 |
+
|
10 |
+
public $to = '';
|
11 |
+
|
12 |
+
public function __construct($slider) {
|
13 |
+
|
14 |
+
$this->slider = $slider;
|
15 |
+
list($this->from, $this->to) = (array)N2Parse::parse(N2SmartSliderSettings::get('translate-url', '||'));
|
16 |
+
}
|
17 |
+
|
18 |
+
public function renderSlider($sliderHTML) {
|
19 |
+
|
20 |
+
if (!$this->slider->isAdmin && !empty($this->from) && !empty($this->to)) {
|
21 |
+
return str_replace($this->from, $this->to, $sliderHTML);
|
22 |
+
}
|
23 |
+
|
24 |
+
return $sliderHTML;
|
25 |
+
}
|
26 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/generator/abstract.php
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
abstract class N2GeneratorAbstract
|
4 |
+
{
|
5 |
+
|
6 |
+
/** @var N2GeneratorInfo */
|
7 |
+
protected $info;
|
8 |
+
|
9 |
+
protected $data;
|
10 |
+
|
11 |
+
public function __construct($info, $data) {
|
12 |
+
$this->info = $info;
|
13 |
+
$this->data = $data;
|
14 |
+
}
|
15 |
+
|
16 |
+
public final function getData($slides, $startIndex, $group) {
|
17 |
+
$data = array();
|
18 |
+
$linearData = $this->_getData($slides * $group, $startIndex - 1);
|
19 |
+
$keys = array();
|
20 |
+
for ($i = 0; $i < count($linearData); $i++) {
|
21 |
+
$keys = array_merge($keys, array_keys($linearData[$i]));
|
22 |
+
}
|
23 |
+
|
24 |
+
$columns = array_fill_keys($keys, '');
|
25 |
+
|
26 |
+
for ($i = 0; $i < count($linearData); $i++) {
|
27 |
+
$firstIndex = intval($i / $group);
|
28 |
+
if (!isset($data[$firstIndex])) {
|
29 |
+
$data[$firstIndex] = array();
|
30 |
+
}
|
31 |
+
$data[$firstIndex][$i % $group] = array_merge($columns, $linearData[$i]);
|
32 |
+
}
|
33 |
+
|
34 |
+
if (count($data) && count($data[count($data) - 1]) != $group) {
|
35 |
+
if (count($data) - 1 == 0 && count($data[count($data) - 1]) > 0) {
|
36 |
+
for ($i = 0; count($data[0]) < $group; $i++) {
|
37 |
+
$data[0][] = $data[0][$i];
|
38 |
+
}
|
39 |
+
} else {
|
40 |
+
array_pop($data);
|
41 |
+
}
|
42 |
+
}
|
43 |
+
return $data;
|
44 |
+
}
|
45 |
+
|
46 |
+
protected abstract function _getData($count, $startIndex);
|
47 |
+
|
48 |
+
function makeClickableLinks($s) {
|
49 |
+
return preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href="$1" target="_blank">$1</a>', $s);
|
50 |
+
}
|
51 |
+
|
52 |
+
protected function getIDs() {
|
53 |
+
return array_map('intval', explode("\n", str_replace(array(
|
54 |
+
"\r\n",
|
55 |
+
"\n\r",
|
56 |
+
"\r"
|
57 |
+
), "\n", $this->data->get('ids'))));
|
58 |
+
}
|
59 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/helper.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderHelper
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
* @var N2Application
|
8 |
+
*/
|
9 |
+
private $application;
|
10 |
+
|
11 |
+
public function __construct($application) {
|
12 |
+
$this->application = $application;
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @return N2SmartSliderHelper
|
17 |
+
*/
|
18 |
+
public static function getInstance() {
|
19 |
+
static $instance = null;
|
20 |
+
if ($instance === null) {
|
21 |
+
$instance = new self(N2Base::getApplication('smartslider'));
|
22 |
+
}
|
23 |
+
return $instance;
|
24 |
+
}
|
25 |
+
|
26 |
+
public function isSliderChanged($sliderId, $value = 1) {
|
27 |
+
return intval($this->application->storage->get('sliderChanged', $sliderId, $value));
|
28 |
+
}
|
29 |
+
|
30 |
+
public function setSliderChanged($sliderId, $value = 1) {
|
31 |
+
$this->application->storage->set('sliderChanged', $sliderId, $value);
|
32 |
+
}
|
33 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/manager.php
ADDED
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderManager
|
4 |
+
{
|
5 |
+
|
6 |
+
protected $usage = 'Unknown';
|
7 |
+
|
8 |
+
public $slider;
|
9 |
+
|
10 |
+
public function __construct($sliderId, $backend = false, $parameters = array()) {
|
11 |
+
|
12 |
+
|
13 |
+
if ($backend) {
|
14 |
+
N2Loader::import("libraries.slider.backend", "smartslider");
|
15 |
+
$this->slider = new N2SmartSliderBackend($sliderId, $parameters);
|
16 |
+
} else {
|
17 |
+
N2Loader::import("libraries.slider.abstract", "smartslider");
|
18 |
+
$this->slider = new N2SmartSlider($sliderId, $parameters);
|
19 |
+
}
|
20 |
+
|
21 |
+
N2AssetsManager::addCachedGroup($this->slider->cacheId);
|
22 |
+
}
|
23 |
+
|
24 |
+
public function setUsage($usage) {
|
25 |
+
$this->usage = $usage;
|
26 |
+
}
|
27 |
+
|
28 |
+
public function getSlider() {
|
29 |
+
return $this->slider;
|
30 |
+
}
|
31 |
+
|
32 |
+
public function render($cache = false) {
|
33 |
+
if (!$cache) {
|
34 |
+
return $this->slider->render();
|
35 |
+
}
|
36 |
+
N2Loader::import("libraries.slider.cache.slider", "smartslider");
|
37 |
+
|
38 |
+
return $this->slider->addCMSFunctions($this->cacheSlider());
|
39 |
+
}
|
40 |
+
|
41 |
+
private function cacheSlider() {
|
42 |
+
$cache = new N2CacheManifestSlider($this->slider->cacheId, array(
|
43 |
+
'slider' => $this->slider
|
44 |
+
));
|
45 |
+
$cachedSlider = $cache->makeCache('slider', '', array(
|
46 |
+
$this,
|
47 |
+
'renderCachedSlider'
|
48 |
+
));
|
49 |
+
|
50 |
+
if ($cachedSlider === false) {
|
51 |
+
return '<h3>Smart Slider with ID #' . $this->slider->sliderId . ' does NOT EXIST or has NO SLIDES!</h3><h4>Usage: ' . $this->usage . '</h4>';
|
52 |
+
}
|
53 |
+
N2AssetsManager::loadFromArray($cachedSlider['assets']);
|
54 |
+
|
55 |
+
return $cachedSlider['html'];
|
56 |
+
}
|
57 |
+
|
58 |
+
public function renderCachedSlider() {
|
59 |
+
N2AssetsManager::createStack();
|
60 |
+
|
61 |
+
$content = array();
|
62 |
+
$content['html'] = $this->slider->render();
|
63 |
+
|
64 |
+
$assets = N2AssetsManager::removeStack();
|
65 |
+
|
66 |
+
if ($content['html'] === false) {
|
67 |
+
return false;
|
68 |
+
}
|
69 |
+
|
70 |
+
$content['assets'] = $assets;
|
71 |
+
|
72 |
+
return $content;
|
73 |
+
}
|
74 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/slide/generator.php
ADDED
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.slider.generator.abstract', 'smartslider');
|
3 |
+
|
4 |
+
class N2SmartSliderSlidesGenerator
|
5 |
+
{
|
6 |
+
|
7 |
+
private static $localCache = array();
|
8 |
+
|
9 |
+
/**
|
10 |
+
* @var N2SmartSliderSlide
|
11 |
+
*/
|
12 |
+
private $slide;
|
13 |
+
|
14 |
+
private $generatorModel;
|
15 |
+
|
16 |
+
public $currentGenerator;
|
17 |
+
|
18 |
+
private $slider;
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @param $slide N2SmartSliderSlide
|
22 |
+
* @param $slider
|
23 |
+
* @param $extend
|
24 |
+
*/
|
25 |
+
public function __construct($slide, $slider, $extend) {
|
26 |
+
N2Loader::import("libraries.slider.cache.generator", "smartslider");
|
27 |
+
N2Loader::import("models.generator", "smartslider");
|
28 |
+
|
29 |
+
$this->slide = $slide;
|
30 |
+
$this->slider = $slider;
|
31 |
+
|
32 |
+
$this->generatorModel = new N2SmartsliderGeneratorModel();
|
33 |
+
$this->currentGenerator = $this->generatorModel->get($this->slide->generator_id);
|
34 |
+
$this->currentGenerator['params'] = new N2Data($this->currentGenerator['params'], true);
|
35 |
+
|
36 |
+
if (isset($extend[$this->slide->generator_id])) {
|
37 |
+
$extend = new N2Data($extend[$this->slide->generator_id]);
|
38 |
+
$slide->parameters->set('record-slides', $extend->get('record-slides', 1));
|
39 |
+
$extend->un_set('record-slides');
|
40 |
+
$this->currentGenerator['params']->loadArray($extend->toArray());
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
+
public function getSlides() {
|
45 |
+
$slides = array();
|
46 |
+
$data = $this->getData();
|
47 |
+
for ($i = 0; $i < count($data); $i++) {
|
48 |
+
$newSlide = clone $this->slide;
|
49 |
+
$newSlide->setVariables($data[$i]);
|
50 |
+
$slides[] = $newSlide;
|
51 |
+
}
|
52 |
+
if (count($slides) == 0) {
|
53 |
+
$slides[] = $this->slide;
|
54 |
+
}
|
55 |
+
return $slides;
|
56 |
+
}
|
57 |
+
|
58 |
+
public function fillSample() {
|
59 |
+
$data = $this->getData();
|
60 |
+
if (count($data) > 0) {
|
61 |
+
$this->slide->setVariables($data[0]);
|
62 |
+
}
|
63 |
+
}
|
64 |
+
|
65 |
+
private function getData() {
|
66 |
+
if (!isset(self::$localCache[$this->slide->generator_id])) {
|
67 |
+
$cache = new N2CacheManifestGenerator($this->slider, $this);
|
68 |
+
self::$localCache[$this->slide->generator_id] = $cache->makeCache('generator' . $this->currentGenerator['id'], md5(json_encode($this->currentGenerator) . max($this->slide->parameters->get('record-slides'), 1)), array(
|
69 |
+
$this,
|
70 |
+
'getNotCachedData'
|
71 |
+
));
|
72 |
+
}
|
73 |
+
|
74 |
+
return self::$localCache[$this->slide->generator_id];
|
75 |
+
}
|
76 |
+
|
77 |
+
public function getNotCachedData() {
|
78 |
+
|
79 |
+
$info = $this->generatorModel->getGeneratorInfo($this->currentGenerator['group'], $this->currentGenerator['type']);
|
80 |
+
|
81 |
+
require_once($info->path . '/generator.php');
|
82 |
+
$class = 'N2Generator' . $this->currentGenerator['group'] . $this->currentGenerator['type'];
|
83 |
+
/** @var N2GeneratorAbstract $dataSource */
|
84 |
+
$dataSource = new $class($info, $this->currentGenerator['params']);
|
85 |
+
|
86 |
+
return $dataSource->getData(max($this->slide->parameters->get('record-slides'), 1), max($this->currentGenerator['params']->get('record-start'), 1), $this->getSlideGroup());
|
87 |
+
}
|
88 |
+
|
89 |
+
public function setNextCacheRefresh($time) {
|
90 |
+
$this->slide->setNextCacheRefresh($time);
|
91 |
+
}
|
92 |
+
|
93 |
+
public function getSlideCount() {
|
94 |
+
return max($this->slide->parameters->get('record-slides'), 1);
|
95 |
+
}
|
96 |
+
|
97 |
+
public function getSlideGroup() {
|
98 |
+
return max($this->currentGenerator['params']->get('record-group'), 1);
|
99 |
+
}
|
100 |
+
|
101 |
+
public function getSlideStat() {
|
102 |
+
return count($this->getData()) . '/' . $this->getSlideCount();
|
103 |
+
}
|
104 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/slide/item.php
ADDED
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderItem
|
4 |
+
{
|
5 |
+
|
6 |
+
public static $i = array();
|
7 |
+
|
8 |
+
public $slider, $slide;
|
9 |
+
|
10 |
+
/**
|
11 |
+
* @var N2SSPluginItemAbstract[]
|
12 |
+
*/
|
13 |
+
private static $items = array();
|
14 |
+
|
15 |
+
private static function _load() {
|
16 |
+
static $loaded;
|
17 |
+
if (!$loaded) {
|
18 |
+
N2Plugin::callPlugin('ssitem', 'onNextendSliderItemShortcode', array(&self::$items));
|
19 |
+
$loaded = true;
|
20 |
+
}
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @param $slider N2SmartSliderAbstract
|
25 |
+
* @param $slide N2SmartSliderSlide
|
26 |
+
*/
|
27 |
+
public function __construct($slider, $slide) {
|
28 |
+
self::_load();
|
29 |
+
|
30 |
+
$this->slider = $slider;
|
31 |
+
$this->slide = $slide;
|
32 |
+
|
33 |
+
if (!isset(self::$i[$slider->elementId])) {
|
34 |
+
self::$i[$slider->elementId] = 0;
|
35 |
+
}
|
36 |
+
|
37 |
+
}
|
38 |
+
|
39 |
+
public function render($item) {
|
40 |
+
$type = $item['type'];
|
41 |
+
if (isset(self::$items[$type])) {
|
42 |
+
$data = new N2Data($item['values']);
|
43 |
+
self::$i[$this->slider->elementId]++;
|
44 |
+
|
45 |
+
|
46 |
+
$itemId = $this->slider->elementId . 'item' . self::$i[$this->slider->elementId];
|
47 |
+
/**
|
48 |
+
* @var N2SSPluginItemAbstract
|
49 |
+
*/
|
50 |
+
if ($this->slider->isAdmin) {
|
51 |
+
return self::$items[$type]->renderAdmin($data, $itemId, $this->slider, $this->slide);
|
52 |
+
}
|
53 |
+
|
54 |
+
return self::$items[$type]->render($data, $itemId, $this->slider, $this->slide);
|
55 |
+
}
|
56 |
+
|
57 |
+
return '';
|
58 |
+
}
|
59 |
+
|
60 |
+
public function getFilled($item) {
|
61 |
+
$type = $item['type'];
|
62 |
+
if (isset(self::$items[$type])) {
|
63 |
+
$item['values'] = self::$items[$type]->getFilled($this->slide, new N2Data($item['values']))
|
64 |
+
->toArray();
|
65 |
+
}
|
66 |
+
return $item;
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* @param N2SmartSliderExport $export
|
71 |
+
* @param $item
|
72 |
+
*/
|
73 |
+
public static function prepareExport($export, $item) {
|
74 |
+
self::_load();
|
75 |
+
$type = $item['type'];
|
76 |
+
if (isset(self::$items[$type])) {
|
77 |
+
self::$items[$type]->prepareExport($export, new N2Data($item['values']));
|
78 |
+
}
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* @param N2SmartSliderImport $import
|
83 |
+
* @param $item
|
84 |
+
*
|
85 |
+
* @return mixed
|
86 |
+
*/
|
87 |
+
public static function prepareImport($import, $item) {
|
88 |
+
self::_load();
|
89 |
+
$type = $item['type'];
|
90 |
+
if (isset(self::$items[$type])) {
|
91 |
+
$item['values'] = self::$items[$type]->prepareImport($import, new N2Data($item['values']))
|
92 |
+
->toArray();
|
93 |
+
}
|
94 |
+
return $item;
|
95 |
+
}
|
96 |
+
}
|
97 |
+
|
98 |
+
|
99 |
+
class N2SmartSliderItemHelper
|
100 |
+
{
|
101 |
+
|
102 |
+
public $layer;
|
103 |
+
public $data = array(
|
104 |
+
'type' => null,
|
105 |
+
'values' => array()
|
106 |
+
);
|
107 |
+
|
108 |
+
public function __construct($slide, $type, $layerProperties = array(), $properties = array()) {
|
109 |
+
|
110 |
+
$this->layer = new N2SmartSliderLayerHelper();
|
111 |
+
$this->set('type', $type);
|
112 |
+
$class = 'N2SSPluginItem' . $type;
|
113 |
+
$item = new $class();
|
114 |
+
$properties = array_merge($item->getValues(), $properties);
|
115 |
+
foreach ($properties as $k => $v) {
|
116 |
+
$this->setValues($k, $v);
|
117 |
+
}
|
118 |
+
foreach ($item->getLayerProperties() AS $k => $v) {
|
119 |
+
if ($k == 'width' || $k == 'height' || $k == 'top' || $k == 'left') {
|
120 |
+
|
121 |
+
$this->layer->set('desktopportrait' . $k, $v);
|
122 |
+
} else {
|
123 |
+
$this->layer->set($k, $v);
|
124 |
+
}
|
125 |
+
}
|
126 |
+
$this->layer->set('name', $item->_title . ' layer')
|
127 |
+
->set('items', array($this->data));
|
128 |
+
|
129 |
+
foreach ($layerProperties AS $k => $v) {
|
130 |
+
$this->layer->set($k, $v);
|
131 |
+
}
|
132 |
+
$slide->addLayer($this->layer);
|
133 |
+
}
|
134 |
+
|
135 |
+
public function set($key, $value) {
|
136 |
+
$this->data[$key] = $value;
|
137 |
+
return $this;
|
138 |
+
}
|
139 |
+
|
140 |
+
public function setValues($key, $value) {
|
141 |
+
$this->data['values'][$key] = $value;
|
142 |
+
return $this;
|
143 |
+
}
|
144 |
+
|
145 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/slide/layer.php
ADDED
@@ -0,0 +1,307 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderLayer
|
4 |
+
{
|
5 |
+
|
6 |
+
private $slider, $slide, $item;
|
7 |
+
|
8 |
+
/**
|
9 |
+
* @param $slider N2SmartSliderAbstract
|
10 |
+
* @param $slide N2SmartSliderSlide
|
11 |
+
*/
|
12 |
+
public function __construct($slider, $slide) {
|
13 |
+
$this->slider = $slider;
|
14 |
+
$this->slide = $slide;
|
15 |
+
$this->item = new N2SmartSliderItem($slider, $slide);
|
16 |
+
}
|
17 |
+
|
18 |
+
private function WHUnit($value) {
|
19 |
+
if ($value == 'auto' || substr($value, -1) == '%') {
|
20 |
+
return $value;
|
21 |
+
}
|
22 |
+
return $value . 'px';
|
23 |
+
}
|
24 |
+
|
25 |
+
public function render($layer) {
|
26 |
+
|
27 |
+
$innerHTML = '';
|
28 |
+
for ($i = 0; $i < count($layer['items']); $i++) {
|
29 |
+
$innerHTML .= $this->item->render($layer['items'][$i]);
|
30 |
+
}
|
31 |
+
unset($layer['items']);
|
32 |
+
|
33 |
+
$cropStyle = $layer['crop'];
|
34 |
+
|
35 |
+
if ($this->slider->isAdmin) {
|
36 |
+
if ($layer['crop'] == 'auto') {
|
37 |
+
$cropStyle = 'hidden';
|
38 |
+
}
|
39 |
+
}
|
40 |
+
|
41 |
+
if ($layer['crop'] == 'mask') {
|
42 |
+
$cropStyle = 'hidden';
|
43 |
+
$innerHTML = NHtml::tag('div', array('class' => 'n2-ss-layer-mask'), $innerHTML);
|
44 |
+
} else if (!$this->slider->isAdmin && $layer['parallax'] > 0) {
|
45 |
+
$innerHTML = NHtml::tag('div', array(
|
46 |
+
'class' => 'n2-ss-layer-parallax'
|
47 |
+
), $innerHTML);
|
48 |
+
}
|
49 |
+
|
50 |
+
if (!isset($layer['responsiveposition'])) {
|
51 |
+
$layer['responsiveposition'] = 1;
|
52 |
+
}
|
53 |
+
|
54 |
+
if (!isset($layer['responsivesize'])) {
|
55 |
+
$layer['responsivesize'] = 1;
|
56 |
+
}
|
57 |
+
|
58 |
+
|
59 |
+
$style = '';
|
60 |
+
/*if (isset($layer['adaptivefont']) && $layer['adaptivefont']) {
|
61 |
+
$style .= 'font-size: ' . $this->slider->fontSize . 'px;';
|
62 |
+
}*/
|
63 |
+
if (isset($layer['inneralign'])) {
|
64 |
+
$style .= 'text-align:' . $layer['inneralign'];
|
65 |
+
}
|
66 |
+
|
67 |
+
$style .= ';left:' . $layer['desktopportraitleft'] . 'px';
|
68 |
+
$style .= ';top:' . $layer['desktopportraittop'] . 'px';
|
69 |
+
$style .= ';width:' . $this->WHUnit($layer['desktopportraitwidth']);
|
70 |
+
$style .= ';height:' . $this->WHUnit($layer['desktopportraitheight']);
|
71 |
+
|
72 |
+
if (isset($layer['zIndex'])) {
|
73 |
+
$zIndex = $layer['zIndex'];
|
74 |
+
unset($layer['zIndex']);
|
75 |
+
} else {
|
76 |
+
preg_match('/z\-index:.*?([0-9]+);/', $layer['style'], $out);
|
77 |
+
$zIndex = $out[1];
|
78 |
+
unset($layer['style']);
|
79 |
+
}
|
80 |
+
|
81 |
+
$attributes = array(
|
82 |
+
'class' => 'n2-ss-layer',
|
83 |
+
'style' => 'z-index:' . $zIndex . ';overflow:' . $cropStyle . ';' . $style . ';',
|
84 |
+
'data-animations' => base64_encode(json_encode($layer['animations']))
|
85 |
+
);
|
86 |
+
|
87 |
+
if (!empty($layer['id'])) {
|
88 |
+
$attributes['id'] = $layer['id'];
|
89 |
+
unset($layer['id']);
|
90 |
+
}
|
91 |
+
|
92 |
+
unset($layer['animations']);
|
93 |
+
|
94 |
+
if (!$this->slider->isAdmin && $layer['parallax'] < 1) {
|
95 |
+
unset($layer['parallax']);
|
96 |
+
}
|
97 |
+
|
98 |
+
if (!$this->slider->isAdmin) {
|
99 |
+
$this->getEventAttributes($attributes, $layer, $this->slider->elementId);
|
100 |
+
}
|
101 |
+
|
102 |
+
foreach ($layer AS $k => $data) {
|
103 |
+
$attributes['data-' . $k] = $data;
|
104 |
+
}
|
105 |
+
return NHtml::tag('div', $attributes, $innerHTML);
|
106 |
+
}
|
107 |
+
|
108 |
+
public function getFilled($layer) {
|
109 |
+
$items = array();
|
110 |
+
for ($i = 0; $i < count($layer['items']); $i++) {
|
111 |
+
$items [] = $this->item->getFilled($layer['items'][$i]);
|
112 |
+
}
|
113 |
+
$layer['items'] = $items;
|
114 |
+
return $layer;
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* @param N2SmartSliderExport $export
|
119 |
+
* @param $rawLayers
|
120 |
+
*/
|
121 |
+
public static function prepareExport($export, $rawLayers) {
|
122 |
+
$layers = json_decode($rawLayers, true);
|
123 |
+
foreach ($layers AS $layer) {
|
124 |
+
|
125 |
+
foreach ($layer['items'] AS $item) {
|
126 |
+
N2SmartSliderItem::prepareExport($export, $item);
|
127 |
+
}
|
128 |
+
}
|
129 |
+
}
|
130 |
+
|
131 |
+
/**
|
132 |
+
* @param N2SmartSliderImport $import
|
133 |
+
* @param $rawLayers
|
134 |
+
*
|
135 |
+
* @return mixed|string|void
|
136 |
+
*/
|
137 |
+
public static function prepareImport($import, $rawLayers) {
|
138 |
+
$layers = json_decode($rawLayers, true);
|
139 |
+
for ($i = 0; $i < count($layers); $i++) {
|
140 |
+
for ($j = 0; $j < count($layers[$i]['items']); $j++) {
|
141 |
+
$layers[$i]['items'][$j] = N2SmartSliderItem::prepareImport($import, $layers[$i]['items'][$j]);
|
142 |
+
}
|
143 |
+
}
|
144 |
+
return json_encode($layers);
|
145 |
+
}
|
146 |
+
|
147 |
+
public static function sort($layers) {
|
148 |
+
$children = array();
|
149 |
+
for ($i = count($layers) - 1; $i >= 0; $i--) {
|
150 |
+
if (!empty($layers[$i]['parentid'])) {
|
151 |
+
$parentId = $layers[$i]['parentid'];
|
152 |
+
if (!isset($children[$parentId])) {
|
153 |
+
$children[$parentId] = array();
|
154 |
+
}
|
155 |
+
$children[$parentId][] = $layers[$i];
|
156 |
+
array_splice($layers, $i, 1);
|
157 |
+
}
|
158 |
+
}
|
159 |
+
|
160 |
+
for ($i = 0; $i < count($layers); $i++) {
|
161 |
+
if (isset($layers[$i]['id']) && isset($children[$layers[$i]['id']])) {
|
162 |
+
array_splice($layers, $i + 1, 0, $children[$layers[$i]['id']]);
|
163 |
+
unset($children[$layers[$i]['id']]);
|
164 |
+
}
|
165 |
+
}
|
166 |
+
return $layers;
|
167 |
+
}
|
168 |
+
|
169 |
+
private static function uid($length = 12) {
|
170 |
+
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
171 |
+
$charactersLength = strlen($characters);
|
172 |
+
$randomString = '';
|
173 |
+
for ($i = 0; $i < $length; $i++) {
|
174 |
+
$randomString .= $characters[mt_rand(0, $charactersLength - 1)];
|
175 |
+
}
|
176 |
+
return $randomString;
|
177 |
+
}
|
178 |
+
|
179 |
+
public static function translateIds($layers) {
|
180 |
+
$layers = self::sort($layers);
|
181 |
+
$idTranslation = array();
|
182 |
+
for ($i = 0; $i < count($layers); $i++) {
|
183 |
+
if (!empty($layers[$i]['id'])) {
|
184 |
+
$newId = 'd' . self::uid();
|
185 |
+
$idTranslation[$layers[$i]['id']] = $newId;
|
186 |
+
$layers[$i]['id'] = $newId;
|
187 |
+
}
|
188 |
+
if (!empty($layers[$i]['parentid'])) {
|
189 |
+
if (isset($idTranslation[$layers[$i]['parentid']])) {
|
190 |
+
$layers[$i]['parentid'] = $idTranslation[$layers[$i]['parentid']];
|
191 |
+
} else {
|
192 |
+
$layers[$i]['parentid'] = '';
|
193 |
+
}
|
194 |
+
}
|
195 |
+
}
|
196 |
+
return $layers;
|
197 |
+
}
|
198 |
+
|
199 |
+
protected function getEventAttributes(&$attributes, &$layer, $sliderId) {
|
200 |
+
if (!empty($layer['mouseenter'])) {
|
201 |
+
$attributes['data-mouseenter'] = $this->parseEventCode($layer['mouseenter'], $sliderId);
|
202 |
+
unset($layer['mouseenter']);
|
203 |
+
}
|
204 |
+
if (!empty($layer['click'])) {
|
205 |
+
$attributes['data-click'] = $this->parseEventCode($layer['click'], $sliderId);
|
206 |
+
$attributes['style'] .= 'cursor:pointer;';
|
207 |
+
unset($layer['click']);
|
208 |
+
}
|
209 |
+
if (!empty($layer['mouseleave'])) {
|
210 |
+
$attributes['data-mouseleave'] = $this->parseEventCode($layer['mouseleave'], $sliderId);
|
211 |
+
unset($layer['mouseleave']);
|
212 |
+
}
|
213 |
+
if (!empty($layer['play'])) {
|
214 |
+
$attributes['data-play'] = $this->parseEventCode($layer['play'], $sliderId);
|
215 |
+
unset($layer['play']);
|
216 |
+
}
|
217 |
+
if (!empty($layer['pause'])) {
|
218 |
+
$attributes['data-pause'] = $this->parseEventCode($layer['pause'], $sliderId);
|
219 |
+
unset($layer['pause']);
|
220 |
+
}
|
221 |
+
if (!empty($layer['stop'])) {
|
222 |
+
$attributes['data-stop'] = $this->parseEventCode($layer['stop'], $sliderId);
|
223 |
+
unset($layer['stop']);
|
224 |
+
}
|
225 |
+
}
|
226 |
+
|
227 |
+
protected function parseEventCode($code, $elementId) {
|
228 |
+
if (preg_match('/^[a-zA-Z0-9_\-,]+$/', $code)) {
|
229 |
+
if (is_numeric($code)) {
|
230 |
+
$code = "window['" . $elementId . "'].changeTo(" . ($code - 1) . ");";
|
231 |
+
} else if ($code == 'next') {
|
232 |
+
$code = "window['" . $elementId . "'].next();";
|
233 |
+
} else if ($code == 'previous') {
|
234 |
+
$code = "window['" . $elementId . "'].previous();";
|
235 |
+
} else {
|
236 |
+
$code = "n2ss.trigger(this, '" . $code . "');";
|
237 |
+
}
|
238 |
+
}
|
239 |
+
return $code;
|
240 |
+
}
|
241 |
+
}
|
242 |
+
|
243 |
+
|
244 |
+
class N2SmartSliderLayerHelper
|
245 |
+
{
|
246 |
+
|
247 |
+
public $data = array(
|
248 |
+
"zIndex" => 1,
|
249 |
+
"eye" => false,
|
250 |
+
"lock" => false,
|
251 |
+
"animations" => array(
|
252 |
+
"specialZeroIn" => 0,
|
253 |
+
"transformOriginIn" => "50|*|50|*|0",
|
254 |
+
"inPlayEvent" => "",
|
255 |
+
"repeatCount" => 0,
|
256 |
+
"repeatStartDelay" => 0,
|
257 |
+
"transformOriginLoop" => "50|*|50|*|0",
|
258 |
+
"loopPlayEvent" => "",
|
259 |
+
"loopPauseEvent" => "",
|
260 |
+
"loopStopEvent" => "",
|
261 |
+
"transformOriginOut" => "50|*|50|*|0",
|
262 |
+
"outPlayEvent" => "",
|
263 |
+
"instantOut" => 1,
|
264 |
+
"in" => array(),
|
265 |
+
"loop" => array(),
|
266 |
+
"out" => array()
|
267 |
+
),
|
268 |
+
"id" => null,
|
269 |
+
"parentid" => null,
|
270 |
+
"name" => "Layer",
|
271 |
+
"namesynced" => 1,
|
272 |
+
"crop" => "visible",
|
273 |
+
"inneralign" => "left",
|
274 |
+
"parallax" => 0,
|
275 |
+
"adaptivefont" => 0,
|
276 |
+
"desktopportrait" => 1,
|
277 |
+
"desktoplandscape" => 1,
|
278 |
+
"tabletportrait" => 1,
|
279 |
+
"tabletlandscape" => 1,
|
280 |
+
"mobileportrait" => 1,
|
281 |
+
"mobilelandscape" => 1,
|
282 |
+
"responsiveposition" => 1,
|
283 |
+
"responsivesize" => 1,
|
284 |
+
"desktopportraitleft" => 0,
|
285 |
+
"desktopportraittop" => 0,
|
286 |
+
"desktopportraitwidth" => "auto",
|
287 |
+
"desktopportraitheight" => "auto",
|
288 |
+
"desktopportraitalign" => "center",
|
289 |
+
"desktopportraitvalign" => "middle",
|
290 |
+
"desktopportraitparentalign" => "center",
|
291 |
+
"desktopportraitparentvalign" => "middle",
|
292 |
+
"desktopportraitfontsize" => 100,
|
293 |
+
"items" => array()
|
294 |
+
|
295 |
+
);
|
296 |
+
|
297 |
+
public function __construct($properties = array()) {
|
298 |
+
foreach ($properties as $k => $v) {
|
299 |
+
$this->data[$k] = $v;
|
300 |
+
}
|
301 |
+
}
|
302 |
+
|
303 |
+
public function set($key, $value) {
|
304 |
+
$this->data[$key] = $value;
|
305 |
+
return $this;
|
306 |
+
}
|
307 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/slide/slide.php
ADDED
@@ -0,0 +1,484 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderSlide
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
* @var N2SmartSliderAbstract
|
8 |
+
*/
|
9 |
+
protected $sliderObject;
|
10 |
+
public $id = 0, $slider = 0, $publish_up, $publish_down, $published = 1, $first = 0, $slide = '', $ordering = 0, $generator_id = 0;
|
11 |
+
|
12 |
+
protected $title = '', $description = '', $thumbnail = '';
|
13 |
+
|
14 |
+
public $parameters, $background = '';
|
15 |
+
|
16 |
+
protected $active = false;
|
17 |
+
|
18 |
+
protected $html = '';
|
19 |
+
|
20 |
+
protected $visible = 1;
|
21 |
+
|
22 |
+
protected $underEdit = false;
|
23 |
+
|
24 |
+
/**
|
25 |
+
* @var bool|N2SmartSliderSlidesGenerator
|
26 |
+
*/
|
27 |
+
protected $generator = false;
|
28 |
+
protected $variables = array();
|
29 |
+
|
30 |
+
public $index = -1;
|
31 |
+
|
32 |
+
public $attributes = array(), $containerAttributes = array(
|
33 |
+
'class' => 'n2-ss-layers-container',
|
34 |
+
'style' => ''
|
35 |
+
), $classes = '', $style = '';
|
36 |
+
|
37 |
+
public $nextCacheRefresh = 2145916800; // 2038
|
38 |
+
|
39 |
+
public function __construct($slider, $data) {
|
40 |
+
$this->parameters = new N2Data($data['params'], true);
|
41 |
+
unset($data['params']);
|
42 |
+
foreach ($data as $key => $value) {
|
43 |
+
$this->$key = $value;
|
44 |
+
}
|
45 |
+
|
46 |
+
$this->sliderObject = $slider;
|
47 |
+
$this->onCreate();
|
48 |
+
}
|
49 |
+
|
50 |
+
protected function onCreate() {
|
51 |
+
N2Pluggable::doAction('ssSlide', array($this));
|
52 |
+
}
|
53 |
+
|
54 |
+
public function initGenerator($extend = array()) {
|
55 |
+
if ($this->generator_id > 0) {
|
56 |
+
$this->generator = new N2SmartSliderSlidesGenerator($this, $this->sliderObject, $extend);
|
57 |
+
}
|
58 |
+
}
|
59 |
+
|
60 |
+
public function hasGenerator() {
|
61 |
+
return !!$this->generator;
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* @return N2SmartSliderSlide[]
|
66 |
+
*/
|
67 |
+
public function expandSlide() {
|
68 |
+
return $this->generator->getSlides();
|
69 |
+
}
|
70 |
+
|
71 |
+
public function fillSample() {
|
72 |
+
if ($this->hasGenerator()) {
|
73 |
+
$this->generator->fillSample();
|
74 |
+
}
|
75 |
+
}
|
76 |
+
|
77 |
+
public function setVariables($variables) {
|
78 |
+
$this->variables = array_merge($this->variables, (array)$variables);
|
79 |
+
}
|
80 |
+
|
81 |
+
public function isFirst() {
|
82 |
+
return !!$this->first;
|
83 |
+
}
|
84 |
+
|
85 |
+
public function isActive() {
|
86 |
+
return $this->active;
|
87 |
+
}
|
88 |
+
|
89 |
+
public function isCurrentlyEdited() {
|
90 |
+
return N2Request::getInt('slideid') == $this->id;
|
91 |
+
}
|
92 |
+
|
93 |
+
public function setIndex($index) {
|
94 |
+
$this->index = $index;
|
95 |
+
}
|
96 |
+
|
97 |
+
public function setActive() {
|
98 |
+
$this->classes .= ' n2-ss-slide-active';
|
99 |
+
$this->active = true;
|
100 |
+
}
|
101 |
+
|
102 |
+
public function prepare() {
|
103 |
+
$this->variables['slide'] = array(
|
104 |
+
'name' => $this->getTitle(),
|
105 |
+
'description' => $this->getDescription()
|
106 |
+
);
|
107 |
+
}
|
108 |
+
|
109 |
+
public function setSlidesParams() {
|
110 |
+
|
111 |
+
$this->background = $this->sliderObject->features->makeBackground($this);
|
112 |
+
|
113 |
+
$this->addSlideLink();
|
114 |
+
|
115 |
+
$this->attributes['data-slide-duration'] = floatval($this->parameters->get('slide-duration', 0) / 1000);
|
116 |
+
$this->attributes['data-id'] = $this->id;
|
117 |
+
|
118 |
+
$this->sliderObject->features->makeSlide($this);
|
119 |
+
|
120 |
+
$this->renderHtml();
|
121 |
+
}
|
122 |
+
|
123 |
+
protected function addSlideLink() {
|
124 |
+
list($url, $target) = (array)N2Parse::parse($this->parameters->getIfEmpty('link', '|*|'));
|
125 |
+
|
126 |
+
if (!empty($url) && $url != '#') {
|
127 |
+
|
128 |
+
if (empty($target)) {
|
129 |
+
$target = '_self';
|
130 |
+
}
|
131 |
+
|
132 |
+
$url = $this->fill($url);
|
133 |
+
|
134 |
+
$this->containerAttributes['onclick'] = '';
|
135 |
+
if (strpos($url, 'javascript:') === 0) {
|
136 |
+
$this->containerAttributes['onclick'] = $url;
|
137 |
+
} else {
|
138 |
+
|
139 |
+
N2Loader::import('libraries.link.link');
|
140 |
+
$url = N2LinkParser::parse($url, $this->containerAttributes);
|
141 |
+
|
142 |
+
$this->containerAttributes['data-href'] = (N2Platform::$isJoomla ? JRoute::_($url, false) : $url);
|
143 |
+
if (empty($this->containerAttributes['onclick'])) {
|
144 |
+
if ($target == '_blank') {
|
145 |
+
$this->containerAttributes['n2click'] = "window.open(this.getAttribute('data-href'),'_blank');";
|
146 |
+
} else {
|
147 |
+
$this->containerAttributes['n2click'] = "window.location=this.getAttribute('data-href')";
|
148 |
+
}
|
149 |
+
}
|
150 |
+
}
|
151 |
+
$this->containerAttributes['style'] .= 'cursor:pointer;';
|
152 |
+
}
|
153 |
+
}
|
154 |
+
|
155 |
+
protected function renderHtml() {
|
156 |
+
if (empty($this->html)) {
|
157 |
+
|
158 |
+
$layerRenderer = new N2SmartSliderLayer($this->sliderObject, $this);
|
159 |
+
|
160 |
+
$html = '';
|
161 |
+
$layers = json_decode($this->slide, true);
|
162 |
+
if (!$this->underEdit) {
|
163 |
+
$layers = N2SmartSliderLayer::translateIds($layers);
|
164 |
+
}
|
165 |
+
if (is_array($layers)) {
|
166 |
+
foreach ($layers AS $layer) {
|
167 |
+
$html .= $layerRenderer->render($layer);
|
168 |
+
}
|
169 |
+
}
|
170 |
+
$this->html = NHtml::tag('div', $this->containerAttributes, $html);
|
171 |
+
}
|
172 |
+
}
|
173 |
+
|
174 |
+
public function getHTML() {
|
175 |
+
return $this->html;
|
176 |
+
}
|
177 |
+
|
178 |
+
public function getAsStatic() {
|
179 |
+
|
180 |
+
$layerRenderer = new N2SmartSliderLayer($this->sliderObject, $this);
|
181 |
+
|
182 |
+
$html = '';
|
183 |
+
$layers = json_decode($this->slide, true);
|
184 |
+
if (!$this->underEdit) {
|
185 |
+
$layers = N2SmartSliderLayer::translateIds($layers);
|
186 |
+
}
|
187 |
+
if (is_array($layers)) {
|
188 |
+
foreach ($layers AS $layer) {
|
189 |
+
$html .= $layerRenderer->render($layer);
|
190 |
+
}
|
191 |
+
}
|
192 |
+
return NHtml::tag('div', array('class' => 'n2-ss-static-slide'), $html);
|
193 |
+
}
|
194 |
+
|
195 |
+
public function isStatic() {
|
196 |
+
if ($this->parameters->get('static-slide', 0)) {
|
197 |
+
return true;
|
198 |
+
}
|
199 |
+
return false;
|
200 |
+
}
|
201 |
+
|
202 |
+
public function fill($value) {
|
203 |
+
if (!empty($this->variables)) {
|
204 |
+
return preg_replace_callback('/{((([a-z]+)\(([0-9a-zA-Z_,\/\(\)]+)\))|([a-zA-Z0-9_\/]+))}/', array(
|
205 |
+
$this,
|
206 |
+
'parseFunction'
|
207 |
+
), $value);
|
208 |
+
}
|
209 |
+
return $value;
|
210 |
+
}
|
211 |
+
|
212 |
+
private function parseFunction($match) {
|
213 |
+
if (!isset($match[5])) {
|
214 |
+
$args = preg_split('/,(?!.*\))/', $match[4]);
|
215 |
+
for ($i = 0; $i < count($args); $i++) {
|
216 |
+
$args[$i] = $this->parseVariable($args[$i]);
|
217 |
+
}
|
218 |
+
return call_user_func_array(array(
|
219 |
+
$this,
|
220 |
+
'__' . $match[3]
|
221 |
+
), $args);
|
222 |
+
|
223 |
+
} else {
|
224 |
+
return $this->parseVariable($match[5]);
|
225 |
+
}
|
226 |
+
}
|
227 |
+
|
228 |
+
private function parseVariable($variable) {
|
229 |
+
preg_match('/((([a-z]+)\(([0-9a-zA-Z_,\/\(\)]+)\)))/', $variable, $match);
|
230 |
+
if (!empty($match)) {
|
231 |
+
return call_user_func(array(
|
232 |
+
$this,
|
233 |
+
'parseFunction'
|
234 |
+
), $match);
|
235 |
+
} else {
|
236 |
+
preg_match('/([a-zA-Z][0-9a-zA-Z_]*)(\/([0-9a-z]+))?/', $variable, $match);
|
237 |
+
if ($match) {
|
238 |
+
$index = empty($match[3]) ? 0 : $match[3];
|
239 |
+
if (is_numeric($index)) {
|
240 |
+
$index = max(1, intval($index)) - 1;
|
241 |
+
}
|
242 |
+
|
243 |
+
if (isset($this->variables[$index]) && isset($this->variables[$index][$match[1]])) {
|
244 |
+
return $this->variables[$index][$match[1]];
|
245 |
+
} else {
|
246 |
+
return '';
|
247 |
+
}
|
248 |
+
}
|
249 |
+
return $variable;
|
250 |
+
}
|
251 |
+
}
|
252 |
+
|
253 |
+
private function __cleanhtml($s) {
|
254 |
+
return strip_tags($s, '<p><a><b><br><br/><i>');
|
255 |
+
}
|
256 |
+
|
257 |
+
private function __removehtml($s) {
|
258 |
+
return strip_tags($s);
|
259 |
+
}
|
260 |
+
|
261 |
+
private function __splitbychars($s, $start, $length) {
|
262 |
+
return substr($s, $start, $length);
|
263 |
+
}
|
264 |
+
|
265 |
+
private function __splitbywords($s, $start, $length) {
|
266 |
+
$len = strlen($s);
|
267 |
+
$posStart = max(0, $start == 0 ? 0 : strpos($s, ' ', $start));
|
268 |
+
$posEnd = max(0, $length > $len ? $len : strpos($s, ' ', $length));
|
269 |
+
return substr($s, $posStart, $posEnd);
|
270 |
+
}
|
271 |
+
|
272 |
+
private function __findimage($s, $index) {
|
273 |
+
$index = isset($index) ? intval($index) - 1 : 0;
|
274 |
+
preg_match_all('/(<img.*?src=[\'"](.*?)[\'"][^>]*>)|(background(-image)??\s*?:.*?url\((["|\']?)?(.+?)(["|\']?)?\))/i', $s, $r);
|
275 |
+
if (isset($r[2]) && !empty($r[2][$index])) {
|
276 |
+
$s = $r[2][$index];
|
277 |
+
} else if (isset($r[6]) && !empty($r[6][$index])) {
|
278 |
+
$s = trim($r[6][$index], "'\" \t\n\r\0\x0B");
|
279 |
+
} else {
|
280 |
+
$s = '';
|
281 |
+
}
|
282 |
+
return $s;
|
283 |
+
}
|
284 |
+
|
285 |
+
private function __findlink($s, $index) {
|
286 |
+
$index = isset($index) ? intval($index) - 1 : 0;
|
287 |
+
preg_match_all('/href=["\']?([^"\'>]+)["\']?/i', $s, $r);
|
288 |
+
if (isset($r[1]) && !empty($r[1][$index])) {
|
289 |
+
$s = $r[1][$index];
|
290 |
+
} else {
|
291 |
+
$s = '';
|
292 |
+
}
|
293 |
+
return $s;
|
294 |
+
}
|
295 |
+
|
296 |
+
/*
|
297 |
+
public function fill($value) {
|
298 |
+
if (!empty($this->variables)) {
|
299 |
+
return preg_replace_callback('/{(.*?)(\/([0-9]+))?}/', array(
|
300 |
+
$this,
|
301 |
+
'replaceVariable'
|
302 |
+
), $value);
|
303 |
+
}
|
304 |
+
return $value;
|
305 |
+
}
|
306 |
+
|
307 |
+
private function replaceVariable($match) {
|
308 |
+
if (!isset($match[3])) {
|
309 |
+
$match[3] = 1;
|
310 |
+
}
|
311 |
+
if ($this->variables[$match[3] - 1][$match[1]]) {
|
312 |
+
return $this->variables[$match[3] - 1][$match[1]];
|
313 |
+
}
|
314 |
+
return '';
|
315 |
+
}
|
316 |
+
*/
|
317 |
+
|
318 |
+
public function getTitle() {
|
319 |
+
return $this->fill($this->title);
|
320 |
+
}
|
321 |
+
|
322 |
+
public function getDescription() {
|
323 |
+
return $this->fill($this->description);
|
324 |
+
}
|
325 |
+
|
326 |
+
public function getThumbnail() {
|
327 |
+
$image = $this->thumbnail;
|
328 |
+
if (empty($image)) {
|
329 |
+
$image = $this->parameters->get('backgroundImage');
|
330 |
+
}
|
331 |
+
return N2ImageHelper::fixed($this->fill($image));
|
332 |
+
}
|
333 |
+
|
334 |
+
public function getRow() {
|
335 |
+
$this->fillParameters();
|
336 |
+
return array(
|
337 |
+
'title' => $this->getTitle(),
|
338 |
+
'slide' => $this->getFilledSlide(),
|
339 |
+
'description' => $this->getDescription(),
|
340 |
+
'thumbnail' => $this->getThumbnail(),
|
341 |
+
'published' => $this->published,
|
342 |
+
'publish_up' => $this->publish_up,
|
343 |
+
'publish_down' => $this->publish_down,
|
344 |
+
'first' => $this->first,
|
345 |
+
'params' => $this->parameters->toJSON(),
|
346 |
+
'slider' => $this->slider,
|
347 |
+
'ordering' => $this->ordering,
|
348 |
+
'generator_id' => 0
|
349 |
+
);
|
350 |
+
}
|
351 |
+
|
352 |
+
public function fillParameters() {
|
353 |
+
$this->parameters->set('backgroundImage', $this->fill($this->parameters->get('backgroundImage')));
|
354 |
+
$this->parameters->set('backgroundAlt', $this->fill($this->parameters->get('backgroundAlt')));
|
355 |
+
$this->parameters->set('backgroundVideoMp4', $this->fill($this->parameters->get('backgroundVideoMp4')));
|
356 |
+
$this->parameters->set('backgroundVideoWebm', $this->fill($this->parameters->get('backgroundVideoWebm')));
|
357 |
+
$this->parameters->set('backgroundVideoOgg', $this->fill($this->parameters->get('backgroundVideoOgg')));
|
358 |
+
$this->parameters->set('link', $this->fill($this->parameters->get('link')));
|
359 |
+
}
|
360 |
+
|
361 |
+
public function getFilledSlide() {
|
362 |
+
$layerRenderer = new N2SmartSliderLayer($this->sliderObject, $this);
|
363 |
+
|
364 |
+
$rawSlide = array();
|
365 |
+
$layers = json_decode($this->slide, true);
|
366 |
+
if (!$this->underEdit) {
|
367 |
+
$layers = N2SmartSliderLayer::translateIds($layers);
|
368 |
+
}
|
369 |
+
if (is_array($layers)) {
|
370 |
+
foreach ($layers AS $layer) {
|
371 |
+
$rawSlide[] = $layerRenderer->getFilled($layer);
|
372 |
+
}
|
373 |
+
}
|
374 |
+
return json_encode($rawSlide);
|
375 |
+
}
|
376 |
+
|
377 |
+
public function setNextCacheRefresh($time) {
|
378 |
+
$this->nextCacheRefresh = min($this->nextCacheRefresh, $time);
|
379 |
+
}
|
380 |
+
|
381 |
+
public function setVisibility($visibility) {
|
382 |
+
$this->visible = $visibility;
|
383 |
+
}
|
384 |
+
|
385 |
+
public function isVisible() {
|
386 |
+
|
387 |
+
if (!$this->visible) {
|
388 |
+
return false;
|
389 |
+
}
|
390 |
+
|
391 |
+
$time = N2Platform::getTime();
|
392 |
+
|
393 |
+
$publish_up = strtotime($this->publish_up);
|
394 |
+
$publish_down = strtotime($this->publish_down);
|
395 |
+
|
396 |
+
if ($publish_down) {
|
397 |
+
if ($publish_down > $time) {
|
398 |
+
$this->setNextCacheRefresh($publish_down);
|
399 |
+
} else {
|
400 |
+
return false;
|
401 |
+
}
|
402 |
+
}
|
403 |
+
|
404 |
+
if ($publish_up) {
|
405 |
+
if ($publish_up > $time) {
|
406 |
+
$this->setNextCacheRefresh($publish_up);
|
407 |
+
return false;
|
408 |
+
}
|
409 |
+
}
|
410 |
+
return true;
|
411 |
+
}
|
412 |
+
|
413 |
+
public function getSlideCount() {
|
414 |
+
if ($this->hasGenerator()) {
|
415 |
+
return $this->generator->getSlideCount();
|
416 |
+
}
|
417 |
+
return 1;
|
418 |
+
}
|
419 |
+
|
420 |
+
public function getSlideStat() {
|
421 |
+
if ($this->hasGenerator()) {
|
422 |
+
return $this->generator->getSlideStat();
|
423 |
+
}
|
424 |
+
return '1/1';
|
425 |
+
}
|
426 |
+
|
427 |
+
public function setCurrentlyEdited() {
|
428 |
+
$this->underEdit = true;
|
429 |
+
}
|
430 |
+
}
|
431 |
+
|
432 |
+
class N2SmartSliderSlideHelper
|
433 |
+
{
|
434 |
+
|
435 |
+
public $data = array(
|
436 |
+
'id' => 0,
|
437 |
+
'title' => '',
|
438 |
+
'publishdates' => '|*|',
|
439 |
+
'published' => 1,
|
440 |
+
'first' => 0,
|
441 |
+
'slide' => array(),
|
442 |
+
'description' => '',
|
443 |
+
'thumbnail' => '',
|
444 |
+
'ordering' => 0,
|
445 |
+
'generator_id' => 0,
|
446 |
+
"static-slide" => 0,
|
447 |
+
"backgroundColor" => "ffffff00",
|
448 |
+
"backgroundImage" => "",
|
449 |
+
"backgroundImageOpacity" => 100,
|
450 |
+
"backgroundAlt" => "",
|
451 |
+
"backgroundMode" => "fill",
|
452 |
+
"backgroundVideoMp4" => "",
|
453 |
+
"backgroundVideoWebm" => "",
|
454 |
+
"backgroundVideoOgg" => "",
|
455 |
+
"backgroundVideoMuted" => 1,
|
456 |
+
"backgroundVideoLoop" => 1,
|
457 |
+
"backgroundVideoMode" => "fill",
|
458 |
+
"link" => "|*|_self",
|
459 |
+
"slide-duration" => 0
|
460 |
+
);
|
461 |
+
|
462 |
+
public function __construct($properties = array()) {
|
463 |
+
foreach ($properties as $k => $v) {
|
464 |
+
$this->data[$k] = $v;
|
465 |
+
}
|
466 |
+
}
|
467 |
+
|
468 |
+
public function set($key, $value) {
|
469 |
+
$this->data[$key] = $value;
|
470 |
+
return $this;
|
471 |
+
}
|
472 |
+
|
473 |
+
/**
|
474 |
+
* @param $layer N2SmartSliderLayerHelper
|
475 |
+
*/
|
476 |
+
public function addLayer($layer) {
|
477 |
+
$this->data['slide'][] = &$layer->data;
|
478 |
+
$layer->set('zIndex', count($this->data['slide']));
|
479 |
+
}
|
480 |
+
|
481 |
+
public function toArray() {
|
482 |
+
return $this->data;
|
483 |
+
}
|
484 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/slide/slides.php
ADDED
@@ -0,0 +1,183 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderSlides
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
* @var N2SmartSlider
|
8 |
+
*/
|
9 |
+
protected $slider;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @var N2SmartSliderSlide[]
|
13 |
+
*/
|
14 |
+
protected $slides = array();
|
15 |
+
|
16 |
+
/**
|
17 |
+
* @var N2SmartSliderSlide[]
|
18 |
+
*/
|
19 |
+
protected $allEnabledSlides = array();
|
20 |
+
|
21 |
+
private $randomize = false;
|
22 |
+
private $randomizeFirst = false;
|
23 |
+
protected $maximumSlideCount = 100;
|
24 |
+
|
25 |
+
public function __construct($slider) {
|
26 |
+
$this->slider = $slider;
|
27 |
+
|
28 |
+
$params = $slider->params;
|
29 |
+
$this->randomize = intval($params->get('randomize', 0));
|
30 |
+
$this->randomizeFirst = intval($params->get('randomizeFirst', 0));
|
31 |
+
$this->maximumSlideCount = intval($params->get('maximumslidecount', '100'));
|
32 |
+
$this->maximumSlideCount = 10000;
|
33 |
+
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* @return mixed
|
38 |
+
*/
|
39 |
+
public function getSlides($extend = array(), $dummy = false) {
|
40 |
+
|
41 |
+
$this->loadSlides(isset($extend['slidesData']) ? $extend['slidesData'] : array(), $dummy);
|
42 |
+
|
43 |
+
if (!$this->hasSlides()) {
|
44 |
+
return array();
|
45 |
+
}
|
46 |
+
|
47 |
+
$this->makeSlides(isset($extend['generatorData']) ? $extend['generatorData'] : array());
|
48 |
+
|
49 |
+
return $this->slides;
|
50 |
+
}
|
51 |
+
|
52 |
+
public function hasSlides() {
|
53 |
+
//check slide number
|
54 |
+
if (count($this->slides) === 0) {
|
55 |
+
if (N2Platform::$isAdmin) {
|
56 |
+
N2Message::error(n2_('0 slides available for this slider.'));
|
57 |
+
}
|
58 |
+
$this->slider->norender = true;
|
59 |
+
return false;
|
60 |
+
}
|
61 |
+
return true;
|
62 |
+
}
|
63 |
+
|
64 |
+
public function makeSlides($extend = array()) {
|
65 |
+
|
66 |
+
$slides = &$this->slides;
|
67 |
+
|
68 |
+
for ($i = 0; $i < count($slides); $i++) {
|
69 |
+
$slides[$i]->initGenerator($extend);
|
70 |
+
}
|
71 |
+
|
72 |
+
for ($i = count($slides) - 1; $i >= 0; $i--) {
|
73 |
+
if ($slides[$i]->hasGenerator()) {
|
74 |
+
array_splice($slides, $i, 1, $slides[$i]->expandSlide());
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
for ($i = 0; $i < count($slides) && count($slides) > 1; $i++) {
|
79 |
+
if ($slides[$i]->isStatic()) {
|
80 |
+
$this->slider->addStaticSlide($slides[$i]);
|
81 |
+
array_splice($slides, $i, 1);
|
82 |
+
$i--;
|
83 |
+
}
|
84 |
+
}
|
85 |
+
|
86 |
+
if ($this->randomize) {
|
87 |
+
shuffle($slides);
|
88 |
+
}
|
89 |
+
if ($this->maximumSlideCount > 0) {
|
90 |
+
array_splice($slides, $this->maximumSlideCount);
|
91 |
+
}
|
92 |
+
|
93 |
+
if ($this->randomizeFirst) {
|
94 |
+
$this->slider->_activeSlide = mt_rand(0, count($slides) - 1);
|
95 |
+
} else {
|
96 |
+
for ($i = 0; $i < count($slides); $i++) {
|
97 |
+
if ($slides[$i]->isFirst()) {
|
98 |
+
$this->slider->_activeSlide = $i;
|
99 |
+
break;
|
100 |
+
}
|
101 |
+
}
|
102 |
+
}
|
103 |
+
|
104 |
+
if (count($slides) == 1 && $this->slider->params->get('loop-single-slide', 0)) {
|
105 |
+
$slides[1] = clone $slides[0];
|
106 |
+
}
|
107 |
+
|
108 |
+
for ($i = 0; $i < count($slides); $i++) {
|
109 |
+
$slides[$i]->setIndex($i);
|
110 |
+
}
|
111 |
+
}
|
112 |
+
|
113 |
+
protected function loadSlides($extend, $dummy) {
|
114 |
+
$this->slider->_activeSlide = 0;
|
115 |
+
|
116 |
+
$where = $this->slidesWhereQuery();
|
117 |
+
|
118 |
+
N2Loader::import("models.Slides", "smartslider");
|
119 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
120 |
+
$slideRows = $slidesModel->getAll($this->slider->sliderId, $where);
|
121 |
+
|
122 |
+
if (isset($extend['add'])) {
|
123 |
+
if (!is_array($slideRows)) {
|
124 |
+
$slideRows = array();
|
125 |
+
}
|
126 |
+
array_push($slideRows, $extend['add']);
|
127 |
+
}
|
128 |
+
|
129 |
+
if (count($slideRows) == 0 && $dummy) {
|
130 |
+
$images = array(
|
131 |
+
'$ss$/admin/images/dummyslide.png',
|
132 |
+
'$ss$/admin/images/dummyslide.png',
|
133 |
+
'$ss$/admin/images/dummyslide.png',
|
134 |
+
);
|
135 |
+
for ($i = 0; $i <= 7; $i++) {
|
136 |
+
$index = $i % count($images);
|
137 |
+
$slideRows[] = $slidesModel->getRowFromPost($this->slider->sliderId, array(
|
138 |
+
'title' => 'Dummy slide #' . $i,
|
139 |
+
'publish_up' => '',
|
140 |
+
'publish_down' => '',
|
141 |
+
'generator_id' => 0,
|
142 |
+
'slide' => '',
|
143 |
+
'description' => '',
|
144 |
+
'thumbnail' => $images[$index],
|
145 |
+
'published' => 1,
|
146 |
+
'first' => 0,
|
147 |
+
'backgroundImage' => $images[$index]
|
148 |
+
), false);
|
149 |
+
$slideRows[$i]['id'] = $i;
|
150 |
+
}
|
151 |
+
}
|
152 |
+
for ($i = 0; $i < count($slideRows); $i++) {
|
153 |
+
if (isset($extend[$slideRows[$i]['id']])) {
|
154 |
+
$slideRows[$i] = $extend[$slideRows[$i]['id']];
|
155 |
+
}
|
156 |
+
$slide = $this->createSlide($slideRows[$i]);
|
157 |
+
if ($slide->isVisible()) {
|
158 |
+
$this->slides[] = $slide;
|
159 |
+
}
|
160 |
+
$this->allEnabledSlides[$i] = $slide;
|
161 |
+
}
|
162 |
+
}
|
163 |
+
|
164 |
+
protected function createSlide($slideRow) {
|
165 |
+
return new N2SmartSliderSlide($this->slider, $slideRow);
|
166 |
+
}
|
167 |
+
|
168 |
+
protected function slidesWhereQuery() {
|
169 |
+
return " AND published = 1 ";
|
170 |
+
}
|
171 |
+
|
172 |
+
public function getNextCacheRefresh() {
|
173 |
+
$earlier = 2145916800;
|
174 |
+
for ($i = 0; $i < count($this->allEnabledSlides); $i++) {
|
175 |
+
$earlier = min($this->allEnabledSlides[$i]->nextCacheRefresh, $earlier);
|
176 |
+
}
|
177 |
+
return $earlier;
|
178 |
+
}
|
179 |
+
|
180 |
+
public function getDummySlides($count) {
|
181 |
+
|
182 |
+
}
|
183 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/slide/slidesadmin.php
ADDED
@@ -0,0 +1,193 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.slider.slide.slides', 'smartslider');
|
4 |
+
|
5 |
+
class N2SmartSliderSlidesAdmin extends N2SmartSliderSlides
|
6 |
+
{
|
7 |
+
|
8 |
+
protected function slidesWhereQuery() {
|
9 |
+
$date = N2Platform::getDate();
|
10 |
+
return " AND ((published = 1 AND (publish_up = '0000-00-00 00:00:00' OR publish_up < '{$date}')
|
11 |
+
AND (publish_down = '0000-00-00 00:00:00' OR publish_down > '{$date}'))
|
12 |
+
OR id = " . N2Request::getInt('slideid') . ") ";
|
13 |
+
}
|
14 |
+
|
15 |
+
public function hasSlides() {
|
16 |
+
return true;
|
17 |
+
}
|
18 |
+
|
19 |
+
protected function createSlide($slideRow) {
|
20 |
+
return new N2SmartSliderSlideAdmin($this->slider, $slideRow);
|
21 |
+
}
|
22 |
+
|
23 |
+
public function makeSlides($extend = array()) {
|
24 |
+
|
25 |
+
if (N2Request::getCmd('nextendcontroller') == 'slides') {
|
26 |
+
|
27 |
+
$slides = &$this->slides;
|
28 |
+
|
29 |
+
if (N2Request::getCmd('nextendaction') == 'create') {
|
30 |
+
if ($this->maximumSlideCount > 0) {
|
31 |
+
array_splice($slides, $this->maximumSlideCount - 1);
|
32 |
+
}
|
33 |
+
|
34 |
+
$staticSlide = N2Request::getInt('static', 0);
|
35 |
+
$slide = $this->createSlide(array(
|
36 |
+
'id' => 0,
|
37 |
+
'title' => 'Title',
|
38 |
+
'slider' => N2Request::getInt('sliderid'),
|
39 |
+
'publish_up' => '0000-00-00 00:00:00',
|
40 |
+
'publish_down' => '0000-00-00 00:00:00',
|
41 |
+
'published' => 1,
|
42 |
+
'first' => 0,
|
43 |
+
'slide' => '',
|
44 |
+
'description' => '',
|
45 |
+
'thumbnail' => '',
|
46 |
+
'background' => 'ffffff00|*|',
|
47 |
+
'params' => json_encode(array('static-slide' => $staticSlide)),
|
48 |
+
'ordering' => count($slides),
|
49 |
+
'generator_id' => 0
|
50 |
+
));
|
51 |
+
if ($slide->isStatic()) {
|
52 |
+
$this->slider->addStaticSlide($slide);
|
53 |
+
if (count($slides) == 0) {
|
54 |
+
$slide2 = $this->createSlide(array(
|
55 |
+
'id' => 0,
|
56 |
+
'title' => 'Title',
|
57 |
+
'slider' => N2Request::getInt('sliderid'),
|
58 |
+
'publish_up' => '0000-00-00 00:00:00',
|
59 |
+
'publish_down' => '0000-00-00 00:00:00',
|
60 |
+
'published' => 1,
|
61 |
+
'first' => 0,
|
62 |
+
'slide' => '',
|
63 |
+
'description' => '',
|
64 |
+
'thumbnail' => '',
|
65 |
+
'background' => 'ffffff00|*|',
|
66 |
+
'params' => '',
|
67 |
+
'ordering' => count($slides),
|
68 |
+
'generator_id' => 0
|
69 |
+
));
|
70 |
+
array_push($slides, $slide2);
|
71 |
+
}
|
72 |
+
} else {
|
73 |
+
for ($i = 0; $i < count($slides); $i++) {
|
74 |
+
if ($slides[$i]->isStatic()) {
|
75 |
+
$this->slider->addStaticSlide($slides[$i]);
|
76 |
+
array_splice($slides, $i, 1);
|
77 |
+
$i--;
|
78 |
+
}
|
79 |
+
}
|
80 |
+
|
81 |
+
array_push($slides, $slide);
|
82 |
+
$this->slider->_activeSlide = count($slides) - 1;
|
83 |
+
}
|
84 |
+
} else {
|
85 |
+
|
86 |
+
$currentlyEdited = N2Request::getInt('slideid');
|
87 |
+
$currentlyEditedSlide = null;
|
88 |
+
$isStatic = false;
|
89 |
+
|
90 |
+
for ($i = 0; $i < count($slides); $i++) {
|
91 |
+
if ($slides[$i]->isStatic()) {
|
92 |
+
if ($slides[$i]->id == $currentlyEdited) {
|
93 |
+
$isStatic = true;
|
94 |
+
}
|
95 |
+
$this->slider->addStaticSlide($slides[$i]);
|
96 |
+
array_splice($slides, $i, 1);
|
97 |
+
$i--;
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
if ($isStatic) {
|
102 |
+
for ($i = 0; $i < count($this->slider->staticSlides); $i++) {
|
103 |
+
if ($this->slider->staticSlides[$i]->id != $currentlyEdited) {
|
104 |
+
array_splice($this->slider->staticSlides, $i, 1);
|
105 |
+
$i--;
|
106 |
+
}
|
107 |
+
}
|
108 |
+
}
|
109 |
+
|
110 |
+
for ($i = 0; $i < count($slides); $i++) {
|
111 |
+
$slides[$i]->initGenerator($extend);
|
112 |
+
}
|
113 |
+
|
114 |
+
for ($i = count($slides) - 1; $i >= 0; $i--) {
|
115 |
+
if ($slides[$i]->hasGenerator()) {
|
116 |
+
array_splice($slides, $i, 1, $slides[$i]->expandSlide());
|
117 |
+
}
|
118 |
+
}
|
119 |
+
|
120 |
+
if (!$isStatic) {
|
121 |
+
for ($i = 0; $i < count($slides); $i++) {
|
122 |
+
if ($slides[$i]->id == $currentlyEdited) {
|
123 |
+
$this->slider->_activeSlide = $i;
|
124 |
+
$currentlyEditedSlide = $slides[$i];
|
125 |
+
break;
|
126 |
+
}
|
127 |
+
}
|
128 |
+
} else {
|
129 |
+
if (count($slides) == 0) {
|
130 |
+
if (count($slides) == 0) {
|
131 |
+
$slide2 = $this->createSlide(array(
|
132 |
+
'id' => 0,
|
133 |
+
'title' => 'Title',
|
134 |
+
'slider' => N2Request::getInt('sliderid'),
|
135 |
+
'publish_up' => '0000-00-00 00:00:00',
|
136 |
+
'publish_down' => '0000-00-00 00:00:00',
|
137 |
+
'published' => 1,
|
138 |
+
'first' => 0,
|
139 |
+
'slide' => '',
|
140 |
+
'description' => '',
|
141 |
+
'thumbnail' => '',
|
142 |
+
'background' => 'ffffff00|*|',
|
143 |
+
'params' => '',
|
144 |
+
'ordering' => count($slides),
|
145 |
+
'generator_id' => 0
|
146 |
+
));
|
147 |
+
array_push($slides, $slide2);
|
148 |
+
}
|
149 |
+
}
|
150 |
+
$this->slider->_activeSlide = 0;
|
151 |
+
$currentlyEditedSlide = $slides[0];
|
152 |
+
}
|
153 |
+
if ($this->maximumSlideCount > 0) {
|
154 |
+
array_splice($slides, $this->maximumSlideCount);
|
155 |
+
$found = false;
|
156 |
+
for ($i = 0; $i < count($slides); $i++) {
|
157 |
+
if ($slides[$i] == $currentlyEditedSlide) {
|
158 |
+
$found = true;
|
159 |
+
break;
|
160 |
+
}
|
161 |
+
}
|
162 |
+
if (!$found) {
|
163 |
+
$this->slider->_activeSlide = count($slides) - 1;
|
164 |
+
$slides[$this->slider->_activeSlide] = $currentlyEditedSlide;
|
165 |
+
}
|
166 |
+
}
|
167 |
+
if ($currentlyEditedSlide) {
|
168 |
+
$currentlyEditedSlide->setCurrentlyEdited();
|
169 |
+
}
|
170 |
+
}
|
171 |
+
}
|
172 |
+
}
|
173 |
+
}
|
174 |
+
|
175 |
+
class N2SmartSliderSlideAdmin extends N2SmartSliderSlide
|
176 |
+
{
|
177 |
+
|
178 |
+
public function setSlidesParams() {
|
179 |
+
$this->attributes['data-variables'] = json_encode($this->variables);
|
180 |
+
parent::setSlidesParams();
|
181 |
+
}
|
182 |
+
|
183 |
+
protected function addSlideLink() {
|
184 |
+
|
185 |
+
}
|
186 |
+
|
187 |
+
public function isVisible() {
|
188 |
+
return true;
|
189 |
+
}
|
190 |
+
|
191 |
+
protected function onCreate() {
|
192 |
+
}
|
193 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/type.php
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
abstract class N2SmartSliderType
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
* @var N2SmartSliderAbstract
|
8 |
+
*/
|
9 |
+
protected $slider;
|
10 |
+
|
11 |
+
protected $javaScriptProperties;
|
12 |
+
|
13 |
+
protected $widgets;
|
14 |
+
|
15 |
+
public function __construct($slider) {
|
16 |
+
$this->slider = $slider;
|
17 |
+
$slider->fontSize = intval($slider->params->get('fontsize', '16'));
|
18 |
+
}
|
19 |
+
|
20 |
+
public static function getItemDefaults() {
|
21 |
+
return array();
|
22 |
+
}
|
23 |
+
|
24 |
+
public function render() {
|
25 |
+
|
26 |
+
$this->javaScriptProperties = $this->slider->features->generateJSProperties();
|
27 |
+
|
28 |
+
$this->widgets = new N2SmartSliderWidgets($this->slider);
|
29 |
+
|
30 |
+
ob_start();
|
31 |
+
$this->renderType();
|
32 |
+
return ob_get_clean();
|
33 |
+
}
|
34 |
+
|
35 |
+
protected abstract function renderType();
|
36 |
+
|
37 |
+
protected function getSliderClasses() {
|
38 |
+
return $this->slider->features->fadeOnLoad->getSliderClass();
|
39 |
+
}
|
40 |
+
|
41 |
+
protected function openSliderElement() {
|
42 |
+
return NHtml::openTag('div', array(
|
43 |
+
'id' => $this->slider->elementId,
|
44 |
+
'class' => 'n2-ss-slider ' . $this->getSliderClasses(),
|
45 |
+
|
46 |
+
) + $this->getFontSizeAttributes());
|
47 |
+
}
|
48 |
+
|
49 |
+
private function getFontSizeAttributes() {
|
50 |
+
$params = $this->slider->params;
|
51 |
+
|
52 |
+
return $this->slider->features->responsive->getMinimumFontSizeAttributes() + array(
|
53 |
+
'style' => "font-size: " . $this->slider->fontSize . "px;",
|
54 |
+
'data-fontsize' => $this->slider->fontSize
|
55 |
+
);
|
56 |
+
}
|
57 |
+
|
58 |
+
public function getDefaults() {
|
59 |
+
return array();
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* @param $params N2Data
|
64 |
+
*/
|
65 |
+
public function limitParams($params) {
|
66 |
+
|
67 |
+
}
|
68 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/slider/widget/widgets.php
ADDED
@@ -0,0 +1,351 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderWidgets
|
4 |
+
{
|
5 |
+
|
6 |
+
public $enabledWidgets = array();
|
7 |
+
|
8 |
+
public $widgets = array();
|
9 |
+
|
10 |
+
private $positions = array(
|
11 |
+
1 => array(
|
12 |
+
'side' => 'vertical',
|
13 |
+
'modifierH' => 1,
|
14 |
+
'modifierV' => 1,
|
15 |
+
'stack' => 'vertical',
|
16 |
+
'horizontal' => array(
|
17 |
+
'side' => 'left',
|
18 |
+
'position' => 'width/2-{widgetname}width/2'
|
19 |
+
),
|
20 |
+
|
21 |
+
'vertical' => array(
|
22 |
+
'side' => 'bottom',
|
23 |
+
'position' => 'height'
|
24 |
+
)
|
25 |
+
),
|
26 |
+
2 => array(
|
27 |
+
'side' => 'both',
|
28 |
+
'modifierH' => 1,
|
29 |
+
'modifierV' => 1,
|
30 |
+
'stack' => 'horizontal',
|
31 |
+
'horizontal' => array(
|
32 |
+
'side' => 'left',
|
33 |
+
'position' => '0'
|
34 |
+
),
|
35 |
+
|
36 |
+
'vertical' => array(
|
37 |
+
'side' => 'top',
|
38 |
+
'position' => '0'
|
39 |
+
)
|
40 |
+
),
|
41 |
+
3 => array(
|
42 |
+
'side' => 'vertical',
|
43 |
+
'modifierH' => 1,
|
44 |
+
'modifierV' => 1,
|
45 |
+
'stack' => 'vertical',
|
46 |
+
'horizontal' => array(
|
47 |
+
'side' => 'left',
|
48 |
+
'position' => 'width/2-{widgetname}width/2'
|
49 |
+
),
|
50 |
+
|
51 |
+
'vertical' => array(
|
52 |
+
'side' => 'top',
|
53 |
+
'position' => '0'
|
54 |
+
)
|
55 |
+
),
|
56 |
+
4 => array(
|
57 |
+
'side' => 'both',
|
58 |
+
'modifierH' => 1,
|
59 |
+
'modifierV' => 1,
|
60 |
+
'stack' => 'horizontal',
|
61 |
+
'horizontal' => array(
|
62 |
+
'side' => 'right',
|
63 |
+
'position' => '0'
|
64 |
+
),
|
65 |
+
|
66 |
+
'vertical' => array(
|
67 |
+
'side' => 'top',
|
68 |
+
'position' => '0'
|
69 |
+
)
|
70 |
+
),
|
71 |
+
5 => array(
|
72 |
+
'side' => 'horizontal',
|
73 |
+
'modifierH' => 1,
|
74 |
+
'modifierV' => 1,
|
75 |
+
'stack' => 'horizontal',
|
76 |
+
'horizontal' => array(
|
77 |
+
'side' => 'right',
|
78 |
+
'position' => 'width'
|
79 |
+
),
|
80 |
+
|
81 |
+
'vertical' => array(
|
82 |
+
'side' => 'top',
|
83 |
+
'position' => 'height/2-{widgetname}height/2'
|
84 |
+
)
|
85 |
+
),
|
86 |
+
6 => array(
|
87 |
+
'side' => 'horizontal',
|
88 |
+
'modifierH' => 1,
|
89 |
+
'modifierV' => 1,
|
90 |
+
'stack' => 'horizontal',
|
91 |
+
'horizontal' => array(
|
92 |
+
'side' => 'left',
|
93 |
+
'position' => '0'
|
94 |
+
),
|
95 |
+
|
96 |
+
'vertical' => array(
|
97 |
+
'side' => 'top',
|
98 |
+
'position' => 'height/2-{widgetname}height/2'
|
99 |
+
)
|
100 |
+
),
|
101 |
+
7 => array(
|
102 |
+
'side' => 'horizontal',
|
103 |
+
'modifierH' => 1,
|
104 |
+
'modifierV' => 1,
|
105 |
+
'stack' => 'horizontal',
|
106 |
+
'horizontal' => array(
|
107 |
+
'side' => 'right',
|
108 |
+
'position' => '0'
|
109 |
+
),
|
110 |
+
|
111 |
+
'vertical' => array(
|
112 |
+
'side' => 'top',
|
113 |
+
'position' => 'height/2-{widgetname}height/2'
|
114 |
+
)
|
115 |
+
),
|
116 |
+
8 => array(
|
117 |
+
'side' => 'horizontal',
|
118 |
+
'modifierH' => 1,
|
119 |
+
'modifierV' => 1,
|
120 |
+
'stack' => 'horizontal',
|
121 |
+
'horizontal' => array(
|
122 |
+
'side' => 'left',
|
123 |
+
'position' => 'width'
|
124 |
+
),
|
125 |
+
|
126 |
+
'vertical' => array(
|
127 |
+
'side' => 'top',
|
128 |
+
'position' => 'height/2-{widgetname}height/2'
|
129 |
+
)
|
130 |
+
),
|
131 |
+
9 => array(
|
132 |
+
'side' => 'both',
|
133 |
+
'modifierH' => 1,
|
134 |
+
'modifierV' => 1,
|
135 |
+
'stack' => 'horizontal',
|
136 |
+
'horizontal' => array(
|
137 |
+
'side' => 'left',
|
138 |
+
'position' => '0'
|
139 |
+
),
|
140 |
+
|
141 |
+
'vertical' => array(
|
142 |
+
'side' => 'bottom',
|
143 |
+
'position' => '0'
|
144 |
+
)
|
145 |
+
),
|
146 |
+
10 => array(
|
147 |
+
'side' => 'vertical',
|
148 |
+
'modifierH' => 1,
|
149 |
+
'modifierV' => 1,
|
150 |
+
'stack' => 'vertical',
|
151 |
+
'horizontal' => array(
|
152 |
+
'side' => 'left',
|
153 |
+
'position' => 'width/2-{widgetname}width/2'
|
154 |
+
),
|
155 |
+
|
156 |
+
'vertical' => array(
|
157 |
+
'side' => 'bottom',
|
158 |
+
'position' => '0'
|
159 |
+
)
|
160 |
+
),
|
161 |
+
11 => array(
|
162 |
+
'side' => 'both',
|
163 |
+
'modifierH' => 1,
|
164 |
+
'modifierV' => 1,
|
165 |
+
'stack' => 'horizontal',
|
166 |
+
'horizontal' => array(
|
167 |
+
'side' => 'right',
|
168 |
+
'position' => '0'
|
169 |
+
),
|
170 |
+
|
171 |
+
'vertical' => array(
|
172 |
+
'side' => 'bottom',
|
173 |
+
'position' => '0'
|
174 |
+
)
|
175 |
+
),
|
176 |
+
12 => array(
|
177 |
+
'side' => 'vertical',
|
178 |
+
'modifierH' => 1,
|
179 |
+
'modifierV' => 1,
|
180 |
+
'stack' => 'vertical',
|
181 |
+
'horizontal' => array(
|
182 |
+
'side' => 'left',
|
183 |
+
'position' => 'width/2-{widgetname}width/2'
|
184 |
+
),
|
185 |
+
|
186 |
+
'vertical' => array(
|
187 |
+
'side' => 'top',
|
188 |
+
'position' => 'height'
|
189 |
+
)
|
190 |
+
)
|
191 |
+
);
|
192 |
+
|
193 |
+
/**
|
194 |
+
* @param $slider N2SmartSlider
|
195 |
+
*/
|
196 |
+
public function __construct($slider) {
|
197 |
+
|
198 |
+
if (!$slider->isAdmin) {
|
199 |
+
$params = $slider->params;
|
200 |
+
$plugins = array();
|
201 |
+
|
202 |
+
N2Plugin::callPlugin('sswidget', 'onWidgetList', array(&$plugins));
|
203 |
+
|
204 |
+
foreach ($plugins AS $k => $v) {
|
205 |
+
$widget = $params->get('widget' . $k);
|
206 |
+
if ($widget && $widget != 'disabled') {
|
207 |
+
$this->enabledWidgets[$k] = $widget;
|
208 |
+
}
|
209 |
+
}
|
210 |
+
|
211 |
+
$positions = array();
|
212 |
+
foreach ($this->enabledWidgets AS $k => $v) {
|
213 |
+
$class = 'N2SSPluginWidget' . $k . $v;
|
214 |
+
if (class_exists($class, false)) {
|
215 |
+
$params->fillDefault(call_user_func(array(
|
216 |
+
$class,
|
217 |
+
'getDefaults'
|
218 |
+
)));
|
219 |
+
|
220 |
+
$positions += call_user_func_array(array(
|
221 |
+
$class,
|
222 |
+
'getPositions'
|
223 |
+
), array(&$params));
|
224 |
+
} else {
|
225 |
+
unset($this->enabledWidgets[$k]);
|
226 |
+
}
|
227 |
+
}
|
228 |
+
|
229 |
+
$this->makePositions($positions, $params);
|
230 |
+
foreach ($this->enabledWidgets AS $k => $v) {
|
231 |
+
$class = 'N2SSPluginWidget' . $k . $v;
|
232 |
+
|
233 |
+
$this->widgets[$k] = call_user_func(array(
|
234 |
+
$class,
|
235 |
+
'render'
|
236 |
+
), $slider, $slider->elementId, $params);
|
237 |
+
}
|
238 |
+
}
|
239 |
+
}
|
240 |
+
|
241 |
+
function echoOnce($k) {
|
242 |
+
if (isset($this->widgets[$k])) {
|
243 |
+
echo $this->widgets[$k];
|
244 |
+
unset($this->widgets[$k]);
|
245 |
+
}
|
246 |
+
}
|
247 |
+
|
248 |
+
function echoOne($k) {
|
249 |
+
if (isset($this->widgets[$k])) {
|
250 |
+
echo $this->widgets[$k];
|
251 |
+
}
|
252 |
+
}
|
253 |
+
|
254 |
+
function echoRemainder() {
|
255 |
+
foreach ($this->widgets AS $v) {
|
256 |
+
echo $v . "\n";
|
257 |
+
}
|
258 |
+
}
|
259 |
+
|
260 |
+
function makePositions($positions, &$params) {
|
261 |
+
$priority = array(
|
262 |
+
array(),
|
263 |
+
array(),
|
264 |
+
array(),
|
265 |
+
array()
|
266 |
+
);
|
267 |
+
foreach ($positions AS $k => $v) {
|
268 |
+
list($key, $name) = $v;
|
269 |
+
if ($params->get($key . 'mode') == 'simple') {
|
270 |
+
$priority[intval($params->get($key . 'stack', 1)) - 1][] = array(
|
271 |
+
$k => $positions[$k]
|
272 |
+
);
|
273 |
+
} else {
|
274 |
+
unset($positions[$k]);
|
275 |
+
}
|
276 |
+
}
|
277 |
+
|
278 |
+
foreach ($priority AS $current) {
|
279 |
+
foreach ($current AS $positions) {
|
280 |
+
foreach ($positions AS $k => $v) {
|
281 |
+
$this->makePositionByIndex($params, $v[0], $v[1]);
|
282 |
+
}
|
283 |
+
}
|
284 |
+
}
|
285 |
+
}
|
286 |
+
|
287 |
+
function makePositionByIndex(&$params, $key, $name) {
|
288 |
+
|
289 |
+
$values = array();
|
290 |
+
|
291 |
+
$area = intval($params->get($key . 'area'));
|
292 |
+
|
293 |
+
$position = $this->positions[$area];
|
294 |
+
|
295 |
+
$values['horizontal'] = $position['horizontal']['side'];
|
296 |
+
$values['horizontal-position'] = str_replace('{widgetname}', $name, $position['horizontal']['position']);
|
297 |
+
$values['horizontal-unit'] = 'px';
|
298 |
+
|
299 |
+
$values['vertical'] = $position['vertical']['side'];
|
300 |
+
$values['vertical-position'] = str_replace('{widgetname}', $name, $position['vertical']['position']);
|
301 |
+
$values['vertical-unit'] = 'px';
|
302 |
+
|
303 |
+
$offset = intval($params->get($key . 'offset', 0));
|
304 |
+
|
305 |
+
if ($offset != 0 && ($position['side'] == 'vertical' || $position['side'] == 'both')) {
|
306 |
+
$values['vertical-position'] .= "+" . $position['modifierV'] * $offset;
|
307 |
+
}
|
308 |
+
|
309 |
+
if ($offset != 0 && ($position['side'] == 'horizontal' || $position['side'] == 'both')) {
|
310 |
+
$values['horizontal-position'] .= "+" . $position['modifierH'] * $offset;
|
311 |
+
}
|
312 |
+
|
313 |
+
if ($position['stack'] == 'vertical') {
|
314 |
+
if ($offset > 0) {
|
315 |
+
$calc = "({$name}height > 0 ? {$name}height+{$offset} : 0)";
|
316 |
+
} else {
|
317 |
+
$calc = "{$name}height";
|
318 |
+
}
|
319 |
+
if ($position['modifierV'] != 1) {
|
320 |
+
$calc = $position['modifierV'] . "*{$calc}";
|
321 |
+
}
|
322 |
+
$this->positions[$area]['vertical']['position'] .= '+' . $calc;
|
323 |
+
/* check if we need stacking on both side
|
324 |
+
if ($position['side'] == 'both') {
|
325 |
+
$this->positions[$area]['horizontal']['position'] .= '+(' . $position['modifierH'] . "*{$offset})";
|
326 |
+
}
|
327 |
+
*/
|
328 |
+
}
|
329 |
+
|
330 |
+
if ($position['stack'] == 'horizontal') {
|
331 |
+
if ($offset > 0) {
|
332 |
+
$calc = "({$name}width > 0 ? {$name}width+{$offset} : 0)";
|
333 |
+
} else {
|
334 |
+
$calc = "{$name}width";
|
335 |
+
}
|
336 |
+
if ($position['modifierH'] != 1) {
|
337 |
+
$calc = $position['modifierH'] . "*{$calc}";
|
338 |
+
}
|
339 |
+
$this->positions[$area]['horizontal']['position'] .= '+' . $calc;
|
340 |
+
/* check if we need stacking on both side
|
341 |
+
if ($position['side'] == 'both') {
|
342 |
+
$this->positions[$area]['vertical']['position'] .= '+(' . $position['modifierV'] . "*{$offset})";
|
343 |
+
}
|
344 |
+
*/
|
345 |
+
}
|
346 |
+
|
347 |
+
foreach ($values AS $k => $v) {
|
348 |
+
$params->set($key . $k, $v);
|
349 |
+
}
|
350 |
+
}
|
351 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/libraries/storage.php
ADDED
@@ -0,0 +1,1896 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderStorage
|
4 |
+
{
|
5 |
+
|
6 |
+
|
7 |
+
public static function init() {
|
8 |
+
N2Pluggable::addAction('fontStorage', 'N2SmartSliderStorage::fontStorage');
|
9 |
+
N2Pluggable::addAction('styleStorage', 'N2SmartSliderStorage::styleStorage');
|
10 |
+
N2Pluggable::addAction('animationStorage', 'N2SmartSliderStorage::animationStorage');
|
11 |
+
N2Pluggable::addAction('splitTextAnimationStorage', 'N2SmartSliderStorage::splitTextAnimationStorage');
|
12 |
+
N2Pluggable::addAction('backgroundAnimationStorage', 'N2SmartSliderStorage::backgroundAnimationStorage');
|
13 |
+
N2Pluggable::addAction('postBackgroundAnimationStorage', 'N2SmartSliderStorage::postBackgroundAnimationStorage');
|
14 |
+
N2Pluggable::addAction('layoutStorage', 'N2SmartSliderStorage::layoutStorage');
|
15 |
+
}
|
16 |
+
|
17 |
+
public static function styleStorage(&$sets, &$styles) {
|
18 |
+
N2Base::getApplicationInfo('smartslider')
|
19 |
+
->loadLocale();
|
20 |
+
|
21 |
+
array_push($sets, array(
|
22 |
+
'id' => 1000,
|
23 |
+
'referencekey' => '',
|
24 |
+
'value' => n2_('Heading')
|
25 |
+
));
|
26 |
+
|
27 |
+
array_push($styles, array(
|
28 |
+
'id' => 1001,
|
29 |
+
'referencekey' => 1000,
|
30 |
+
'value' => array(
|
31 |
+
'name' => n2_('Blue'),
|
32 |
+
'data' => array(
|
33 |
+
array(
|
34 |
+
'backgroundcolor' => '01add3ff',
|
35 |
+
'padding' => '5|*|20|*|5|*|20|*|px',
|
36 |
+
),
|
37 |
+
|
38 |
+
),
|
39 |
+
)
|
40 |
+
));
|
41 |
+
|
42 |
+
array_push($styles, array(
|
43 |
+
'id' => 1002,
|
44 |
+
'referencekey' => 1000,
|
45 |
+
'value' => array(
|
46 |
+
'name' => n2_('White'),
|
47 |
+
'data' => array(
|
48 |
+
array(
|
49 |
+
'backgroundcolor' => 'ffffffcc',
|
50 |
+
'padding' => '5|*|20|*|5|*|20|*|px',
|
51 |
+
),
|
52 |
+
|
53 |
+
),
|
54 |
+
)
|
55 |
+
));
|
56 |
+
|
57 |
+
array_push($styles, array(
|
58 |
+
'id' => 1003,
|
59 |
+
'referencekey' => 1000,
|
60 |
+
'value' => array(
|
61 |
+
'name' => n2_('Green'),
|
62 |
+
'data' => array(
|
63 |
+
array(
|
64 |
+
'backgroundcolor' => '5cba3cff',
|
65 |
+
'padding' => '5|*|20|*|5|*|20|*|px',
|
66 |
+
),
|
67 |
+
|
68 |
+
),
|
69 |
+
)
|
70 |
+
));
|
71 |
+
|
72 |
+
array_push($styles, array(
|
73 |
+
'id' => 1004,
|
74 |
+
'referencekey' => 1000,
|
75 |
+
'value' => array(
|
76 |
+
'name' => n2_('Purple'),
|
77 |
+
'data' => array(
|
78 |
+
array(
|
79 |
+
'backgroundcolor' => '8757b2ff',
|
80 |
+
'padding' => '5|*|20|*|5|*|20|*|px',
|
81 |
+
),
|
82 |
+
|
83 |
+
),
|
84 |
+
)
|
85 |
+
));
|
86 |
+
|
87 |
+
array_push($styles, array(
|
88 |
+
'id' => 1005,
|
89 |
+
'referencekey' => 1000,
|
90 |
+
'value' => array(
|
91 |
+
'name' => n2_('Grey'),
|
92 |
+
'data' => array(
|
93 |
+
array(
|
94 |
+
'backgroundcolor' => '81898dff',
|
95 |
+
'padding' => '5|*|20|*|5|*|20|*|px',
|
96 |
+
),
|
97 |
+
|
98 |
+
),
|
99 |
+
)
|
100 |
+
));
|
101 |
+
|
102 |
+
array_push($styles, array(
|
103 |
+
'id' => 1006,
|
104 |
+
'referencekey' => 1000,
|
105 |
+
'value' => array(
|
106 |
+
'name' => n2_('Black'),
|
107 |
+
'data' => array(
|
108 |
+
array(
|
109 |
+
'backgroundcolor' => '000000cc',
|
110 |
+
'padding' => '5|*|20|*|5|*|20|*|px',
|
111 |
+
),
|
112 |
+
|
113 |
+
),
|
114 |
+
)
|
115 |
+
));
|
116 |
+
|
117 |
+
array_push($styles, array(
|
118 |
+
'id' => 1007,
|
119 |
+
'referencekey' => 1000,
|
120 |
+
'value' => array(
|
121 |
+
'name' => n2_('Rounded Blue'),
|
122 |
+
'data' => array(
|
123 |
+
array(
|
124 |
+
'backgroundcolor' => '01add3ff',
|
125 |
+
'padding' => '5|*|20|*|5|*|20|*|px',
|
126 |
+
'borderradius' => '3',
|
127 |
+
),
|
128 |
+
|
129 |
+
),
|
130 |
+
)
|
131 |
+
));
|
132 |
+
|
133 |
+
array_push($styles, array(
|
134 |
+
'id' => 1008,
|
135 |
+
'referencekey' => 1000,
|
136 |
+
'value' => array(
|
137 |
+
'name' => n2_('Rounded Green'),
|
138 |
+
'data' => array(
|
139 |
+
array(
|
140 |
+
'backgroundcolor' => '5cba3cff',
|
141 |
+
'padding' => '5|*|20|*|5|*|20|*|px',
|
142 |
+
'borderradius' => '3',
|
143 |
+
),
|
144 |
+
|
145 |
+
),
|
146 |
+
)
|
147 |
+
));
|
148 |
+
|
149 |
+
array_push($styles, array(
|
150 |
+
'id' => 1009,
|
151 |
+
'referencekey' => 1000,
|
152 |
+
'value' => array(
|
153 |
+
'name' => n2_('Rounded Purple'),
|
154 |
+
'data' => array(
|
155 |
+
array(
|
156 |
+
'backgroundcolor' => '8757b2ff',
|
157 |
+
'padding' => '5|*|20|*|5|*|20|*|px',
|
158 |
+
'borderradius' => '3',
|
159 |
+
),
|
160 |
+
|
161 |
+
),
|
162 |
+
)
|
163 |
+
));
|
164 |
+
|
165 |
+
array_push($styles, array(
|
166 |
+
'id' => 1010,
|
167 |
+
'referencekey' => 1000,
|
168 |
+
'value' => array(
|
169 |
+
'name' => n2_('Rounded Grey'),
|
170 |
+
'data' => array(
|
171 |
+
array(
|
172 |
+
'backgroundcolor' => '81898dff',
|
173 |
+
'padding' => '5|*|20|*|5|*|20|*|px',
|
174 |
+
'borderradius' => '3',
|
175 |
+
),
|
176 |
+
|
177 |
+
),
|
178 |
+
)
|
179 |
+
));
|
180 |
+
|
181 |
+
array_push($styles, array(
|
182 |
+
'id' => 1011,
|
183 |
+
'referencekey' => 1000,
|
184 |
+
'value' => array(
|
185 |
+
'name' => n2_('Rounded White'),
|
186 |
+
'data' => array(
|
187 |
+
array(
|
188 |
+
'backgroundcolor' => 'ffffffcc',
|
189 |
+
'padding' => '5|*|20|*|5|*|20|*|px',
|
190 |
+
'borderradius' => '3',
|
191 |
+
),
|
192 |
+
|
193 |
+
),
|
194 |
+
)
|
195 |
+
));
|
196 |
+
|
197 |
+
array_push($styles, array(
|
198 |
+
'id' => 1012,
|
199 |
+
'referencekey' => 1000,
|
200 |
+
'value' => array(
|
201 |
+
'name' => n2_('Rounded Black'),
|
202 |
+
'data' => array(
|
203 |
+
array(
|
204 |
+
'backgroundcolor' => '000000cc',
|
205 |
+
'padding' => '5|*|20|*|5|*|20|*|px',
|
206 |
+
'borderradius' => '3',
|
207 |
+
),
|
208 |
+
|
209 |
+
),
|
210 |
+
)
|
211 |
+
));
|
212 |
+
|
213 |
+
array_push($styles, array(
|
214 |
+
'id' => 1013,
|
215 |
+
'referencekey' => 1000,
|
216 |
+
'value' => array(
|
217 |
+
'name' => n2_('Border White'),
|
218 |
+
'data' => array(
|
219 |
+
array(
|
220 |
+
'backgroundcolor' => '00000000',
|
221 |
+
'padding' => '5|*|20|*|5|*|20|*|px',
|
222 |
+
'border' => '2|*|solid|*|ffffffff',
|
223 |
+
),
|
224 |
+
|
225 |
+
),
|
226 |
+
)
|
227 |
+
));
|
228 |
+
|
229 |
+
array_push($styles, array(
|
230 |
+
'id' => 1014,
|
231 |
+
'referencekey' => 1000,
|
232 |
+
'value' => array(
|
233 |
+
'name' => n2_('Border Dark'),
|
234 |
+
'data' => array(
|
235 |
+
array(
|
236 |
+
'backgroundcolor' => '00000000',
|
237 |
+
'padding' => '5|*|20|*|5|*|20|*|px',
|
238 |
+
'border' => '2|*|solid|*|000000cc',
|
239 |
+
),
|
240 |
+
|
241 |
+
),
|
242 |
+
)
|
243 |
+
));
|
244 |
+
|
245 |
+
|
246 |
+
array_push($sets, array(
|
247 |
+
'id' => 1100,
|
248 |
+
'referencekey' => '',
|
249 |
+
'value' => n2_('Button')
|
250 |
+
));
|
251 |
+
|
252 |
+
array_push($styles, array(
|
253 |
+
'id' => 1101,
|
254 |
+
'referencekey' => 1100,
|
255 |
+
'value' => array(
|
256 |
+
'name' => n2_('Rectangle Green'),
|
257 |
+
'data' => array(
|
258 |
+
array(
|
259 |
+
'backgroundcolor' => '5cba3cff',
|
260 |
+
'padding' => '10|*|30|*|10|*|30|*|px',
|
261 |
+
),
|
262 |
+
|
263 |
+
),
|
264 |
+
)
|
265 |
+
));
|
266 |
+
|
267 |
+
array_push($styles, array(
|
268 |
+
'id' => 1102,
|
269 |
+
'referencekey' => 1100,
|
270 |
+
'value' => array(
|
271 |
+
'name' => n2_('Rectangle Blue'),
|
272 |
+
'data' => array(
|
273 |
+
array(
|
274 |
+
'backgroundcolor' => '01add3ff',
|
275 |
+
'padding' => '10|*|30|*|10|*|30|*|px',
|
276 |
+
),
|
277 |
+
|
278 |
+
),
|
279 |
+
)
|
280 |
+
));
|
281 |
+
|
282 |
+
array_push($styles, array(
|
283 |
+
'id' => 1103,
|
284 |
+
'referencekey' => 1100,
|
285 |
+
'value' => array(
|
286 |
+
'name' => n2_('Rectangle Purple'),
|
287 |
+
'data' => array(
|
288 |
+
array(
|
289 |
+
'backgroundcolor' => '8757b2ff',
|
290 |
+
'padding' => '10|*|30|*|10|*|30|*|px',
|
291 |
+
),
|
292 |
+
|
293 |
+
),
|
294 |
+
)
|
295 |
+
));
|
296 |
+
|
297 |
+
array_push($styles, array(
|
298 |
+
'id' => 1104,
|
299 |
+
'referencekey' => 1100,
|
300 |
+
'value' => array(
|
301 |
+
'name' => n2_('Rectangle Grey'),
|
302 |
+
'data' => array(
|
303 |
+
array(
|
304 |
+
'backgroundcolor' => '81898dff',
|
305 |
+
'padding' => '10|*|30|*|10|*|30|*|px',
|
306 |
+
),
|
307 |
+
|
308 |
+
),
|
309 |
+
)
|
310 |
+
));
|
311 |
+
|
312 |
+
array_push($styles, array(
|
313 |
+
'id' => 1105,
|
314 |
+
'referencekey' => 1100,
|
315 |
+
'value' => array(
|
316 |
+
'name' => n2_('Rounded Rectangle Green'),
|
317 |
+
'data' => array(
|
318 |
+
array(
|
319 |
+
'backgroundcolor' => '5cba3cff',
|
320 |
+
'padding' => '10|*|30|*|10|*|30|*|px',
|
321 |
+
'borderradius' => '3',
|
322 |
+
),
|
323 |
+
array(
|
324 |
+
'backgroundcolor' => '58ad3bff',
|
325 |
+
),
|
326 |
+
),
|
327 |
+
)
|
328 |
+
));
|
329 |
+
|
330 |
+
array_push($styles, array(
|
331 |
+
'id' => 1106,
|
332 |
+
'referencekey' => 1100,
|
333 |
+
'value' => array(
|
334 |
+
'name' => n2_('Rounded Rectangle Blue'),
|
335 |
+
'data' => array(
|
336 |
+
array(
|
337 |
+
'backgroundcolor' => '01add3ff',
|
338 |
+
'padding' => '10|*|30|*|10|*|30|*|px',
|
339 |
+
'borderradius' => '3',
|
340 |
+
),
|
341 |
+
array(
|
342 |
+
'backgroundcolor' => '04a0c3ff',
|
343 |
+
),
|
344 |
+
),
|
345 |
+
)
|
346 |
+
));
|
347 |
+
|
348 |
+
array_push($styles, array(
|
349 |
+
'id' => 1107,
|
350 |
+
'referencekey' => 1100,
|
351 |
+
'value' => array(
|
352 |
+
'name' => n2_('Rounded Rectangle Purple'),
|
353 |
+
'data' => array(
|
354 |
+
array(
|
355 |
+
'backgroundcolor' => '8757b2ff',
|
356 |
+
'padding' => '10|*|30|*|10|*|30|*|px',
|
357 |
+
'borderradius' => '3',
|
358 |
+
),
|
359 |
+
array(
|
360 |
+
'backgroundcolor' => '7b51a1ff',
|
361 |
+
),
|
362 |
+
),
|
363 |
+
)
|
364 |
+
));
|
365 |
+
|
366 |
+
array_push($styles, array(
|
367 |
+
'id' => 1108,
|
368 |
+
'referencekey' => 1100,
|
369 |
+
'value' => array(
|
370 |
+
'name' => n2_('Rounded Grey'),
|
371 |
+
'data' => array(
|
372 |
+
array(
|
373 |
+
'backgroundcolor' => '81898dff',
|
374 |
+
'padding' => '10|*|30|*|10|*|30|*|px',
|
375 |
+
'borderradius' => '3',
|
376 |
+
),
|
377 |
+
|
378 |
+
),
|
379 |
+
)
|
380 |
+
));
|
381 |
+
|
382 |
+
array_push($styles, array(
|
383 |
+
'id' => 1109,
|
384 |
+
'referencekey' => 1100,
|
385 |
+
'value' => array(
|
386 |
+
'name' => n2_('Rounded Green'),
|
387 |
+
'data' => array(
|
388 |
+
array(
|
389 |
+
'backgroundcolor' => '5cba3cff',
|
390 |
+
'padding' => '10|*|30|*|10|*|30|*|px',
|
391 |
+
'borderradius' => '30',
|
392 |
+
),
|
393 |
+
|
394 |
+
),
|
395 |
+
)
|
396 |
+
));
|
397 |
+
|
398 |
+
array_push($styles, array(
|
399 |
+
'id' => 1110,
|
400 |
+
'referencekey' => 1100,
|
401 |
+
'value' => array(
|
402 |
+
'name' => n2_('Rounded Blue'),
|
403 |
+
'data' => array(
|
404 |
+
array(
|
405 |
+
'backgroundcolor' => '01add3ff',
|
406 |
+
'padding' => '10|*|30|*|10|*|30|*|px',
|
407 |
+
'borderradius' => '30',
|
408 |
+
),
|
409 |
+
|
410 |
+
),
|
411 |
+
)
|
412 |
+
));
|
413 |
+
|
414 |
+
array_push($styles, array(
|
415 |
+
'id' => 1111,
|
416 |
+
'referencekey' => 1100,
|
417 |
+
'value' => array(
|
418 |
+
'name' => n2_('Rounded Purple'),
|
419 |
+
'data' => array(
|
420 |
+
array(
|
421 |
+
'backgroundcolor' => '8757b2ff',
|
422 |
+
'padding' => '10|*|30|*|10|*|30|*|px',
|
423 |
+
'borderradius' => '30',
|
424 |
+
),
|
425 |
+
|
426 |
+
),
|
427 |
+
)
|
428 |
+
));
|
429 |
+
|
430 |
+
array_push($styles, array(
|
431 |
+
'id' => 1112,
|
432 |
+
'referencekey' => 1100,
|
433 |
+
'value' => array(
|
434 |
+
'name' => n2_('Rounded Grey'),
|
435 |
+
'data' => array(
|
436 |
+
array(
|
437 |
+
'backgroundcolor' => '81898dff',
|
438 |
+
'padding' => '10|*|30|*|10|*|30|*|px',
|
439 |
+
'borderradius' => '30',
|
440 |
+
),
|
441 |
+
|
442 |
+
),
|
443 |
+
)
|
444 |
+
));
|
445 |
+
|
446 |
+
array_push($styles, array(
|
447 |
+
'id' => 1113,
|
448 |
+
'referencekey' => 1100,
|
449 |
+
'value' => array(
|
450 |
+
'name' => n2_('Border Dark'),
|
451 |
+
'data' => array(
|
452 |
+
array(
|
453 |
+
'backgroundcolor' => '00000000',
|
454 |
+
'padding' => '10|*|30|*|10|*|30|*|px',
|
455 |
+
'border' => '2|*|solid|*|000000cc',
|
456 |
+
),
|
457 |
+
|
458 |
+
),
|
459 |
+
)
|
460 |
+
));
|
461 |
+
|
462 |
+
array_push($styles, array(
|
463 |
+
'id' => 1114,
|
464 |
+
'referencekey' => 1100,
|
465 |
+
'value' => array(
|
466 |
+
'name' => n2_('Border Light'),
|
467 |
+
'data' => array(
|
468 |
+
array(
|
469 |
+
'backgroundcolor' => '00000000',
|
470 |
+
'padding' => '10|*|30|*|10|*|30|*|px',
|
471 |
+
'border' => '2|*|solid|*|ffffffff',
|
472 |
+
),
|
473 |
+
|
474 |
+
),
|
475 |
+
)
|
476 |
+
));
|
477 |
+
|
478 |
+
array_push($sets, array(
|
479 |
+
'id' => 1800,
|
480 |
+
'referencekey' => '',
|
481 |
+
'value' => n2_('Other')
|
482 |
+
));
|
483 |
+
|
484 |
+
array_push($styles, array(
|
485 |
+
'id' => 1801,
|
486 |
+
'referencekey' => 1800,
|
487 |
+
'value' => array(
|
488 |
+
'name' => n2_('List'),
|
489 |
+
'data' => array(
|
490 |
+
array(
|
491 |
+
'padding' => '10|*|20|*|10|*|20|*|px',
|
492 |
+
'extra' => 'margin:0;'
|
493 |
+
),
|
494 |
+
|
495 |
+
),
|
496 |
+
)
|
497 |
+
));
|
498 |
+
|
499 |
+
array_push($sets, array(
|
500 |
+
'id' => 1900,
|
501 |
+
'referencekey' => '',
|
502 |
+
'value' => n2_('My styles')
|
503 |
+
));
|
504 |
+
}
|
505 |
+
|
506 |
+
public static function fontStorage(&$sets, &$fonts) {
|
507 |
+
N2Base::getApplicationInfo('smartslider')
|
508 |
+
->loadLocale();
|
509 |
+
|
510 |
+
array_push($sets, array(
|
511 |
+
'id' => 1000,
|
512 |
+
'referencekey' => '',
|
513 |
+
'value' => n2_('Default')
|
514 |
+
));
|
515 |
+
|
516 |
+
array_push($fonts, array(
|
517 |
+
'id' => 1001,
|
518 |
+
'referencekey' => 1000,
|
519 |
+
'value' => array(
|
520 |
+
'name' => n2_('X-small Light'),
|
521 |
+
'data' => array(
|
522 |
+
array(
|
523 |
+
'color' => 'ffffffff',
|
524 |
+
'size' => '12||px',
|
525 |
+
),
|
526 |
+
|
527 |
+
|
528 |
+
),
|
529 |
+
)
|
530 |
+
));
|
531 |
+
array_push($fonts, array(
|
532 |
+
'id' => 1002,
|
533 |
+
'referencekey' => 1000,
|
534 |
+
'value' => array(
|
535 |
+
'name' => n2_('X-small Dark'),
|
536 |
+
'data' => array(
|
537 |
+
array(
|
538 |
+
'color' => '282828ff',
|
539 |
+
'size' => '12||px',
|
540 |
+
),
|
541 |
+
|
542 |
+
|
543 |
+
),
|
544 |
+
)
|
545 |
+
));
|
546 |
+
array_push($fonts, array(
|
547 |
+
'id' => 1003,
|
548 |
+
'referencekey' => 1000,
|
549 |
+
'value' => array(
|
550 |
+
'name' => n2_('Small Light'),
|
551 |
+
'data' => array(
|
552 |
+
array(
|
553 |
+
'color' => 'ffffffff',
|
554 |
+
'size' => '14||px',
|
555 |
+
),
|
556 |
+
|
557 |
+
|
558 |
+
),
|
559 |
+
)
|
560 |
+
));
|
561 |
+
array_push($fonts, array(
|
562 |
+
'id' => 1004,
|
563 |
+
'referencekey' => 1000,
|
564 |
+
'value' => array(
|
565 |
+
'name' => n2_('Small Dark'),
|
566 |
+
'data' => array(
|
567 |
+
array(
|
568 |
+
'color' => '282828ff',
|
569 |
+
'size' => '14||px',
|
570 |
+
),
|
571 |
+
|
572 |
+
|
573 |
+
),
|
574 |
+
)
|
575 |
+
));
|
576 |
+
array_push($fonts, array(
|
577 |
+
'id' => 1005,
|
578 |
+
'referencekey' => 1000,
|
579 |
+
'value' => array(
|
580 |
+
'name' => n2_('Medium Light'),
|
581 |
+
'data' => array(
|
582 |
+
array(
|
583 |
+
'color' => 'ffffffff',
|
584 |
+
'size' => '24||px',
|
585 |
+
),
|
586 |
+
|
587 |
+
|
588 |
+
),
|
589 |
+
)
|
590 |
+
));
|
591 |
+
array_push($fonts, array(
|
592 |
+
'id' => 1006,
|
593 |
+
'referencekey' => 1000,
|
594 |
+
'value' => array(
|
595 |
+
'name' => n2_('Medium Dark'),
|
596 |
+
'data' => array(
|
597 |
+
array(
|
598 |
+
'color' => '282828ff',
|
599 |
+
'size' => '24||px',
|
600 |
+
),
|
601 |
+
|
602 |
+
|
603 |
+
),
|
604 |
+
)
|
605 |
+
));
|
606 |
+
array_push($fonts, array(
|
607 |
+
'id' => 1007,
|
608 |
+
'referencekey' => 1000,
|
609 |
+
'value' => array(
|
610 |
+
'name' => n2_('Large Light'),
|
611 |
+
'data' => array(
|
612 |
+
array(
|
613 |
+
'color' => 'ffffffff',
|
614 |
+
'size' => '30||px',
|
615 |
+
),
|
616 |
+
|
617 |
+
|
618 |
+
),
|
619 |
+
)
|
620 |
+
));
|
621 |
+
array_push($fonts, array(
|
622 |
+
'id' => 1008,
|
623 |
+
'referencekey' => 1000,
|
624 |
+
'value' => array(
|
625 |
+
'name' => n2_('Large Dark'),
|
626 |
+
'data' => array(
|
627 |
+
array(
|
628 |
+
'color' => '282828ff',
|
629 |
+
'size' => '30||px',
|
630 |
+
),
|
631 |
+
|
632 |
+
|
633 |
+
),
|
634 |
+
)
|
635 |
+
));
|
636 |
+
array_push($fonts, array(
|
637 |
+
'id' => 1009,
|
638 |
+
'referencekey' => 1000,
|
639 |
+
'value' => array(
|
640 |
+
'name' => n2_('X-large Light'),
|
641 |
+
'data' => array(
|
642 |
+
array(
|
643 |
+
'color' => 'ffffffff',
|
644 |
+
'size' => '36||px',
|
645 |
+
),
|
646 |
+
|
647 |
+
|
648 |
+
),
|
649 |
+
)
|
650 |
+
));
|
651 |
+
array_push($fonts, array(
|
652 |
+
'id' => 1010,
|
653 |
+
'referencekey' => 1000,
|
654 |
+
'value' => array(
|
655 |
+
'name' => n2_('X-large Dark'),
|
656 |
+
'data' => array(
|
657 |
+
array(
|
658 |
+
'color' => '282828ff',
|
659 |
+
'size' => '36||px',
|
660 |
+
),
|
661 |
+
|
662 |
+
|
663 |
+
),
|
664 |
+
)
|
665 |
+
));
|
666 |
+
|
667 |
+
array_push($sets, array(
|
668 |
+
'id' => 1100,
|
669 |
+
'referencekey' => '',
|
670 |
+
'value' => n2_('Center')
|
671 |
+
));
|
672 |
+
|
673 |
+
array_push($fonts, array(
|
674 |
+
'id' => 1101,
|
675 |
+
'referencekey' => 1100,
|
676 |
+
'value' => array(
|
677 |
+
'name' => n2_('X-small Light'),
|
678 |
+
'data' => array(
|
679 |
+
array(
|
680 |
+
'color' => 'ffffffff',
|
681 |
+
'size' => '12||px',
|
682 |
+
'align' => 'center'
|
683 |
+
),
|
684 |
+
|
685 |
+
|
686 |
+
),
|
687 |
+
)
|
688 |
+
));
|
689 |
+
array_push($fonts, array(
|
690 |
+
'id' => 1102,
|
691 |
+
'referencekey' => 1100,
|
692 |
+
'value' => array(
|
693 |
+
'name' => n2_('X-small Dark'),
|
694 |
+
'data' => array(
|
695 |
+
array(
|
696 |
+
'color' => '282828ff',
|
697 |
+
'size' => '12||px',
|
698 |
+
'align' => 'center'
|
699 |
+
),
|
700 |
+
|
701 |
+
|
702 |
+
),
|
703 |
+
)
|
704 |
+
));
|
705 |
+
array_push($fonts, array(
|
706 |
+
'id' => 1103,
|
707 |
+
'referencekey' => 1100,
|
708 |
+
'value' => array(
|
709 |
+
'name' => n2_('Small Light'),
|
710 |
+
'data' => array(
|
711 |
+
array(
|
712 |
+
'color' => 'ffffffff',
|
713 |
+
'size' => '14||px',
|
714 |
+
'align' => 'center'
|
715 |
+
),
|
716 |
+
|
717 |
+
|
718 |
+
),
|
719 |
+
)
|
720 |
+
));
|
721 |
+
array_push($fonts, array(
|
722 |
+
'id' => 1104,
|
723 |
+
'referencekey' => 1100,
|
724 |
+
'value' => array(
|
725 |
+
'name' => n2_('Small Dark'),
|
726 |
+
'data' => array(
|
727 |
+
array(
|
728 |
+
'color' => '282828ff',
|
729 |
+
'size' => '14||px',
|
730 |
+
'align' => 'center'
|
731 |
+
),
|
732 |
+
|
733 |
+
|
734 |
+
),
|
735 |
+
)
|
736 |
+
));
|
737 |
+
array_push($fonts, array(
|
738 |
+
'id' => 1105,
|
739 |
+
'referencekey' => 1100,
|
740 |
+
'value' => array(
|
741 |
+
'name' => n2_('Medium Light'),
|
742 |
+
'data' => array(
|
743 |
+
array(
|
744 |
+
'color' => 'ffffffff',
|
745 |
+
'size' => '24||px',
|
746 |
+
'align' => 'center'
|
747 |
+
),
|
748 |
+
|
749 |
+
|
750 |
+
),
|
751 |
+
)
|
752 |
+
));
|
753 |
+
array_push($fonts, array(
|
754 |
+
'id' => 1106,
|
755 |
+
'referencekey' => 1100,
|
756 |
+
'value' => array(
|
757 |
+
'name' => n2_('Medium Dark'),
|
758 |
+
'data' => array(
|
759 |
+
array(
|
760 |
+
'color' => '282828ff',
|
761 |
+
'size' => '24||px',
|
762 |
+
'align' => 'center'
|
763 |
+
),
|
764 |
+
|
765 |
+
|
766 |
+
),
|
767 |
+
)
|
768 |
+
));
|
769 |
+
array_push($fonts, array(
|
770 |
+
'id' => 1107,
|
771 |
+
'referencekey' => 1100,
|
772 |
+
'value' => array(
|
773 |
+
'name' => n2_('Large Light'),
|
774 |
+
'data' => array(
|
775 |
+
array(
|
776 |
+
'color' => 'ffffffff',
|
777 |
+
'size' => '30||px',
|
778 |
+
'align' => 'center'
|
779 |
+
),
|
780 |
+
|
781 |
+
|
782 |
+
),
|
783 |
+
)
|
784 |
+
));
|
785 |
+
array_push($fonts, array(
|
786 |
+
'id' => 1108,
|
787 |
+
'referencekey' => 1100,
|
788 |
+
'value' => array(
|
789 |
+
'name' => n2_('Large Dark'),
|
790 |
+
'data' => array(
|
791 |
+
array(
|
792 |
+
'color' => '282828ff',
|
793 |
+
'size' => '30||px',
|
794 |
+
'align' => 'center'
|
795 |
+
),
|
796 |
+
|
797 |
+
|
798 |
+
),
|
799 |
+
)
|
800 |
+
));
|
801 |
+
array_push($fonts, array(
|
802 |
+
'id' => 1109,
|
803 |
+
'referencekey' => 1100,
|
804 |
+
'value' => array(
|
805 |
+
'name' => n2_('X-large Light'),
|
806 |
+
'data' => array(
|
807 |
+
array(
|
808 |
+
'color' => 'ffffffff',
|
809 |
+
'size' => '36||px',
|
810 |
+
'align' => 'center'
|
811 |
+
),
|
812 |
+
|
813 |
+
|
814 |
+
),
|
815 |
+
)
|
816 |
+
));
|
817 |
+
array_push($fonts, array(
|
818 |
+
'id' => 1110,
|
819 |
+
'referencekey' => 1100,
|
820 |
+
'value' => array(
|
821 |
+
'name' => n2_('X-large Dark'),
|
822 |
+
'data' => array(
|
823 |
+
array(
|
824 |
+
'color' => '282828ff',
|
825 |
+
'size' => '36||px',
|
826 |
+
'align' => 'center'
|
827 |
+
),
|
828 |
+
|
829 |
+
|
830 |
+
),
|
831 |
+
)
|
832 |
+
));
|
833 |
+
|
834 |
+
array_push($sets, array(
|
835 |
+
'id' => 1300,
|
836 |
+
'referencekey' => '',
|
837 |
+
'value' => n2_('Link')
|
838 |
+
));
|
839 |
+
array_push($fonts, array(
|
840 |
+
'id' => 1303,
|
841 |
+
'referencekey' => 1300,
|
842 |
+
'value' => array(
|
843 |
+
'name' => n2_('Small Light'),
|
844 |
+
'data' => array(
|
845 |
+
array(
|
846 |
+
'color' => 'ffffffff',
|
847 |
+
'size' => '14||px',
|
848 |
+
'align' => 'left'
|
849 |
+
),
|
850 |
+
array(
|
851 |
+
'color' => '1890d7ff'
|
852 |
+
),
|
853 |
+
|
854 |
+
),
|
855 |
+
)
|
856 |
+
));
|
857 |
+
array_push($fonts, array(
|
858 |
+
'id' => 1304,
|
859 |
+
'referencekey' => 1300,
|
860 |
+
'value' => array(
|
861 |
+
'name' => n2_('Small Dark'),
|
862 |
+
'data' => array(
|
863 |
+
array(
|
864 |
+
'color' => '282828ff',
|
865 |
+
'size' => '14||px',
|
866 |
+
'align' => 'left'
|
867 |
+
),
|
868 |
+
array(
|
869 |
+
'color' => '1890d7ff'
|
870 |
+
),
|
871 |
+
|
872 |
+
),
|
873 |
+
)
|
874 |
+
));
|
875 |
+
|
876 |
+
array_push($sets, array(
|
877 |
+
'id' => 1900,
|
878 |
+
'referencekey' => '',
|
879 |
+
'value' => n2_('My fonts')
|
880 |
+
));
|
881 |
+
}
|
882 |
+
|
883 |
+
public static function animationStorage(&$sets, &$animations) {
|
884 |
+
N2Base::getApplicationInfo('smartslider')
|
885 |
+
->loadLocale();
|
886 |
+
|
887 |
+
array_push($sets, array(
|
888 |
+
'id' => 1000,
|
889 |
+
'referencekey' => '',
|
890 |
+
'value' => n2_('Simple')
|
891 |
+
));
|
892 |
+
}
|
893 |
+
|
894 |
+
public static function splitTextAnimationStorage(&$sets, &$animations) {
|
895 |
+
N2Base::getApplicationInfo('smartslider')
|
896 |
+
->loadLocale();
|
897 |
+
|
898 |
+
array_push($sets, array(
|
899 |
+
'id' => 1000,
|
900 |
+
'referencekey' => '',
|
901 |
+
'value' => n2_('Default')
|
902 |
+
));
|
903 |
+
|
904 |
+
array_push($animations, array(
|
905 |
+
'id' => 1001,
|
906 |
+
'referencekey' => 1000,
|
907 |
+
'value' => array(
|
908 |
+
'name' => n2_('Fade'),
|
909 |
+
'data' => array(
|
910 |
+
'transformOrigin' => '50|*|50|*|0',
|
911 |
+
'animation' => array(
|
912 |
+
'opacity' => 0
|
913 |
+
)
|
914 |
+
)
|
915 |
+
)
|
916 |
+
));
|
917 |
+
|
918 |
+
array_push($animations, array(
|
919 |
+
'id' => 1002,
|
920 |
+
'referencekey' => 1000,
|
921 |
+
'value' => array(
|
922 |
+
'name' => n2_('Left'),
|
923 |
+
'data' => array(
|
924 |
+
'transformOrigin' => '50|*|50|*|0',
|
925 |
+
'animation' => array(
|
926 |
+
'opacity' => 0,
|
927 |
+
'x' => -100
|
928 |
+
)
|
929 |
+
)
|
930 |
+
)
|
931 |
+
));
|
932 |
+
|
933 |
+
array_push($animations, array(
|
934 |
+
'id' => 1003,
|
935 |
+
'referencekey' => 1000,
|
936 |
+
'value' => array(
|
937 |
+
'name' => n2_('Right'),
|
938 |
+
'data' => array(
|
939 |
+
'transformOrigin' => '50|*|50|*|0',
|
940 |
+
'animation' => array(
|
941 |
+
'opacity' => 0,
|
942 |
+
'x' => 100
|
943 |
+
)
|
944 |
+
)
|
945 |
+
)
|
946 |
+
));
|
947 |
+
|
948 |
+
array_push($animations, array(
|
949 |
+
'id' => 1004,
|
950 |
+
'referencekey' => 1000,
|
951 |
+
'value' => array(
|
952 |
+
'name' => n2_('Top'),
|
953 |
+
'data' => array(
|
954 |
+
'transformOrigin' => '50|*|50|*|0',
|
955 |
+
'animation' => array(
|
956 |
+
'opacity' => 0,
|
957 |
+
'y' => -80
|
958 |
+
)
|
959 |
+
)
|
960 |
+
)
|
961 |
+
));
|
962 |
+
|
963 |
+
array_push($animations, array(
|
964 |
+
'id' => 1005,
|
965 |
+
'referencekey' => 1000,
|
966 |
+
'value' => array(
|
967 |
+
'name' => n2_('Bottom'),
|
968 |
+
'data' => array(
|
969 |
+
'transformOrigin' => '50|*|50|*|0',
|
970 |
+
'animation' => array(
|
971 |
+
'opacity' => 0,
|
972 |
+
'y' => 80
|
973 |
+
)
|
974 |
+
)
|
975 |
+
)
|
976 |
+
));
|
977 |
+
|
978 |
+
array_push($animations, array(
|
979 |
+
'id' => 1006,
|
980 |
+
'referencekey' => 1000,
|
981 |
+
'value' => array(
|
982 |
+
'name' => n2_('Scale up'),
|
983 |
+
'data' => array(
|
984 |
+
'transformOrigin' => '50|*|50|*|0',
|
985 |
+
'animation' => array(
|
986 |
+
'opacity' => 0,
|
987 |
+
'scale' => 0
|
988 |
+
)
|
989 |
+
)
|
990 |
+
)
|
991 |
+
));
|
992 |
+
|
993 |
+
array_push($animations, array(
|
994 |
+
'id' => 1007,
|
995 |
+
'referencekey' => 1000,
|
996 |
+
'value' => array(
|
997 |
+
'name' => n2_('Scale down'),
|
998 |
+
'data' => array(
|
999 |
+
'transformOrigin' => '50|*|50|*|0',
|
1000 |
+
'animation' => array(
|
1001 |
+
'opacity' => 0,
|
1002 |
+
'scale' => 5
|
1003 |
+
)
|
1004 |
+
)
|
1005 |
+
)
|
1006 |
+
));
|
1007 |
+
|
1008 |
+
array_push($animations, array(
|
1009 |
+
'id' => 1008,
|
1010 |
+
'referencekey' => 1000,
|
1011 |
+
'value' => array(
|
1012 |
+
'name' => n2_('Warp'),
|
1013 |
+
'data' => array(
|
1014 |
+
'transformOrigin' => '50|*|50|*|0',
|
1015 |
+
'animation' => array(
|
1016 |
+
'ease' => 'easeInBack',
|
1017 |
+
'opacity' => 0,
|
1018 |
+
'x' => 20,
|
1019 |
+
'scale' => 5,
|
1020 |
+
'rotationX' => 90
|
1021 |
+
)
|
1022 |
+
)
|
1023 |
+
)
|
1024 |
+
));
|
1025 |
+
|
1026 |
+
array_push($animations, array(
|
1027 |
+
'id' => 1009,
|
1028 |
+
'referencekey' => 1000,
|
1029 |
+
'value' => array(
|
1030 |
+
'name' => n2_('Twirl'),
|
1031 |
+
'data' => array(
|
1032 |
+
'transformOrigin' => '100|*|100|*|0',
|
1033 |
+
'animation' => array(
|
1034 |
+
'ease' => 'easeInOutBack',
|
1035 |
+
'opacity' => 0,
|
1036 |
+
'scale' => 5,
|
1037 |
+
'rotationX' => 360,
|
1038 |
+
'rotationY' => -360,
|
1039 |
+
'rotationZ' => 360
|
1040 |
+
)
|
1041 |
+
)
|
1042 |
+
)
|
1043 |
+
));
|
1044 |
+
|
1045 |
+
array_push($animations, array(
|
1046 |
+
'id' => 1010,
|
1047 |
+
'referencekey' => 1000,
|
1048 |
+
'value' => array(
|
1049 |
+
'name' => n2_('Domino'),
|
1050 |
+
'data' => array(
|
1051 |
+
'transformOrigin' => '0|*|0|*|0',
|
1052 |
+
'animation' => array(
|
1053 |
+
'ease' => 'easeInBack',
|
1054 |
+
'rotationY' => 90
|
1055 |
+
)
|
1056 |
+
)
|
1057 |
+
)
|
1058 |
+
));
|
1059 |
+
|
1060 |
+
array_push($animations, array(
|
1061 |
+
'id' => 1011,
|
1062 |
+
'referencekey' => 1000,
|
1063 |
+
'value' => array(
|
1064 |
+
'name' => n2_('Stand up'),
|
1065 |
+
'data' => array(
|
1066 |
+
'transformOrigin' => '100|*|100|*|0',
|
1067 |
+
'animation' => array(
|
1068 |
+
'ease' => 'easeInOutBack',
|
1069 |
+
'opacity' => 0,
|
1070 |
+
'rotationZ' => 90
|
1071 |
+
)
|
1072 |
+
)
|
1073 |
+
)
|
1074 |
+
));
|
1075 |
+
|
1076 |
+
array_push($animations, array(
|
1077 |
+
'id' => 1012,
|
1078 |
+
'referencekey' => 1000,
|
1079 |
+
'value' => array(
|
1080 |
+
'name' => n2_('Rotate down'),
|
1081 |
+
'data' => array(
|
1082 |
+
'transformOrigin' => '50|*|0|*|0',
|
1083 |
+
'animation' => array(
|
1084 |
+
'ease' => 'easeInBack',
|
1085 |
+
'rotationX' => 90
|
1086 |
+
)
|
1087 |
+
)
|
1088 |
+
)
|
1089 |
+
));
|
1090 |
+
|
1091 |
+
array_push($sets, array(
|
1092 |
+
'id' => 1900,
|
1093 |
+
'referencekey' => '',
|
1094 |
+
'value' => n2_('My split text animations')
|
1095 |
+
));
|
1096 |
+
}
|
1097 |
+
|
1098 |
+
public static function backgroundAnimationStorage(&$sets, &$animations) {
|
1099 |
+
N2Base::getApplicationInfo('smartslider')
|
1100 |
+
->loadLocale();
|
1101 |
+
|
1102 |
+
array_push($sets, array(
|
1103 |
+
'id' => 1000,
|
1104 |
+
'referencekey' => '',
|
1105 |
+
'value' => n2_('Default')
|
1106 |
+
));
|
1107 |
+
|
1108 |
+
array_push($animations, array(
|
1109 |
+
"id" => 1402,
|
1110 |
+
'referencekey' => 1000,
|
1111 |
+
"value" => array(
|
1112 |
+
'name' => n2_('Scale to left'),
|
1113 |
+
'data' => array(
|
1114 |
+
'type' => 'Flat',
|
1115 |
+
'tiles' => array(
|
1116 |
+
'crop' => true,
|
1117 |
+
'delay' => 0,
|
1118 |
+
'sequence' => 'ForwardDiagonal'
|
1119 |
+
),
|
1120 |
+
'main' => array(
|
1121 |
+
'type' => 'both',
|
1122 |
+
'duration' => 1,
|
1123 |
+
'current' => array(
|
1124 |
+
'ease' => 'easeOutCubic',
|
1125 |
+
'scale' => 0.7
|
1126 |
+
),
|
1127 |
+
'next' => array(
|
1128 |
+
'ease' => 'easeOutCubic',
|
1129 |
+
'left' => "100%"
|
1130 |
+
)
|
1131 |
+
),
|
1132 |
+
'invert' => array(
|
1133 |
+
'zIndex' => 2,
|
1134 |
+
'current' => array(
|
1135 |
+
'left' => "100%",
|
1136 |
+
'scale' => 1
|
1137 |
+
),
|
1138 |
+
'next' => array(
|
1139 |
+
'scale' => 0.7,
|
1140 |
+
'left' => 0
|
1141 |
+
)
|
1142 |
+
)
|
1143 |
+
)
|
1144 |
+
)
|
1145 |
+
));
|
1146 |
+
|
1147 |
+
array_push($animations, array(
|
1148 |
+
"id" => 1012,
|
1149 |
+
'referencekey' => 1000,
|
1150 |
+
"value" => array(
|
1151 |
+
'name' => n2_('Zoom'),
|
1152 |
+
'data' => array(
|
1153 |
+
'type' => 'Flat',
|
1154 |
+
'tiles' => array(
|
1155 |
+
'crop' => false,
|
1156 |
+
'delay' => 0,
|
1157 |
+
'sequence' => 'ForwardDiagonal'
|
1158 |
+
),
|
1159 |
+
'main' => array(
|
1160 |
+
'type' => 'both',
|
1161 |
+
'duration' => .75,
|
1162 |
+
'current' => array(
|
1163 |
+
'ease' => 'easeOutCubic',
|
1164 |
+
'scale' => 0.5,
|
1165 |
+
'opacity' => 0
|
1166 |
+
),
|
1167 |
+
'next' => array(
|
1168 |
+
'ease' => 'easeOutCubic',
|
1169 |
+
'opacity' => 0,
|
1170 |
+
'scale' => 1.5
|
1171 |
+
)
|
1172 |
+
),
|
1173 |
+
'invert' => array(
|
1174 |
+
'current' => array(
|
1175 |
+
'scale' => 1.5
|
1176 |
+
),
|
1177 |
+
'next' => array(
|
1178 |
+
'scale' => 0.5
|
1179 |
+
)
|
1180 |
+
)
|
1181 |
+
)
|
1182 |
+
)
|
1183 |
+
));
|
1184 |
+
|
1185 |
+
array_push($animations, array(
|
1186 |
+
"id" => 1013,
|
1187 |
+
'referencekey' => 1000,
|
1188 |
+
"value" => array(
|
1189 |
+
'name' => n2_('Fade'),
|
1190 |
+
'data' => array(
|
1191 |
+
'type' => 'Flat',
|
1192 |
+
'tiles' => array(
|
1193 |
+
'delay' => 0,
|
1194 |
+
'sequence' => 'ForwardDiagonal'
|
1195 |
+
),
|
1196 |
+
'main' => array(
|
1197 |
+
'type' => 'both',
|
1198 |
+
'duration' => 1,
|
1199 |
+
'zIndex' => 2,
|
1200 |
+
'current' => array(
|
1201 |
+
'ease' => 'easeOutCubic',
|
1202 |
+
'opacity' => 0
|
1203 |
+
)
|
1204 |
+
)
|
1205 |
+
)
|
1206 |
+
)
|
1207 |
+
));
|
1208 |
+
|
1209 |
+
array_push($animations, array(
|
1210 |
+
"id" => 1014,
|
1211 |
+
'referencekey' => 1000,
|
1212 |
+
"value" => array(
|
1213 |
+
'name' => n2_('Curtain to left'),
|
1214 |
+
'data' => array(
|
1215 |
+
'type' => 'Flat',
|
1216 |
+
'rows' => 1,
|
1217 |
+
'columns' => 25,
|
1218 |
+
'tiles' => array(
|
1219 |
+
'delay' => .03,
|
1220 |
+
'sequence' => 'BackwardCol'
|
1221 |
+
),
|
1222 |
+
'main' => array(
|
1223 |
+
'type' => 'next',
|
1224 |
+
'duration' => .35,
|
1225 |
+
'next' => array(
|
1226 |
+
'ease' => 'easeInOutQuart',
|
1227 |
+
'opacity' => "0",
|
1228 |
+
'left' => '-100%'
|
1229 |
+
)
|
1230 |
+
),
|
1231 |
+
'invert' => array(
|
1232 |
+
'next' => array(
|
1233 |
+
'left' => '100%'
|
1234 |
+
)
|
1235 |
+
),
|
1236 |
+
'invertTiles' => array(
|
1237 |
+
'sequence' => 'ForwardCol'
|
1238 |
+
)
|
1239 |
+
)
|
1240 |
+
)
|
1241 |
+
));
|
1242 |
+
|
1243 |
+
array_push($animations, array(
|
1244 |
+
"id" => 1024,
|
1245 |
+
'referencekey' => 1000,
|
1246 |
+
"value" => array(
|
1247 |
+
'name' => n2_('Puzzle'),
|
1248 |
+
'data' => array(
|
1249 |
+
'type' => 'Flat',
|
1250 |
+
'rows' => 5,
|
1251 |
+
'columns' => 7,
|
1252 |
+
'tiles' => array(
|
1253 |
+
'delay' => 1,
|
1254 |
+
'sequence' => 'Random'
|
1255 |
+
),
|
1256 |
+
'main' => array(
|
1257 |
+
'type' => 'next',
|
1258 |
+
'duration' => 0.8,
|
1259 |
+
'next' => array(
|
1260 |
+
'ease' => 'easeInOutQuart',
|
1261 |
+
'opacity' => 0
|
1262 |
+
)
|
1263 |
+
)
|
1264 |
+
)
|
1265 |
+
)
|
1266 |
+
));
|
1267 |
+
|
1268 |
+
array_push($sets, array(
|
1269 |
+
'id' => 1100,
|
1270 |
+
'referencekey' => '',
|
1271 |
+
'value' => n2_('Vertical')
|
1272 |
+
));
|
1273 |
+
|
1274 |
+
array_push($animations, array(
|
1275 |
+
"id" => 1404,
|
1276 |
+
'referencekey' => 1100,
|
1277 |
+
"value" => array(
|
1278 |
+
'name' => n2_('Scale to top'),
|
1279 |
+
'data' => array(
|
1280 |
+
'type' => 'Flat',
|
1281 |
+
'tiles' => array(
|
1282 |
+
'crop' => true,
|
1283 |
+
'delay' => 0,
|
1284 |
+
'sequence' => 'ForwardDiagonal'
|
1285 |
+
),
|
1286 |
+
'main' => array(
|
1287 |
+
'type' => 'both',
|
1288 |
+
'duration' => 1,
|
1289 |
+
'current' => array(
|
1290 |
+
'ease' => 'easeOutCubic',
|
1291 |
+
'scale' => 0.7
|
1292 |
+
),
|
1293 |
+
'next' => array(
|
1294 |
+
'ease' => 'easeOutCubic',
|
1295 |
+
'top' => "100%"
|
1296 |
+
)
|
1297 |
+
),
|
1298 |
+
'invert' => array(
|
1299 |
+
'zIndex' => 2,
|
1300 |
+
'current' => array(
|
1301 |
+
'top' => "100%",
|
1302 |
+
'scale' => 1
|
1303 |
+
),
|
1304 |
+
'next' => array(
|
1305 |
+
'scale' => 0.7,
|
1306 |
+
'top' => 0
|
1307 |
+
)
|
1308 |
+
)
|
1309 |
+
)
|
1310 |
+
)
|
1311 |
+
));
|
1312 |
+
|
1313 |
+
array_push($animations, array(
|
1314 |
+
"id" => 1403,
|
1315 |
+
'referencekey' => 1100,
|
1316 |
+
"value" => array(
|
1317 |
+
'name' => n2_('Scale to bottom'),
|
1318 |
+
'data' => array(
|
1319 |
+
'type' => 'Flat',
|
1320 |
+
'tiles' => array(
|
1321 |
+
'crop' => true,
|
1322 |
+
'delay' => 0,
|
1323 |
+
'sequence' => 'ForwardDiagonal'
|
1324 |
+
),
|
1325 |
+
'main' => array(
|
1326 |
+
'type' => 'both',
|
1327 |
+
'duration' => 1,
|
1328 |
+
'current' => array(
|
1329 |
+
'ease' => 'easeOutCubic',
|
1330 |
+
'scale' => 0.7
|
1331 |
+
),
|
1332 |
+
'next' => array(
|
1333 |
+
'ease' => 'easeOutCubic',
|
1334 |
+
'top' => "-100%"
|
1335 |
+
)
|
1336 |
+
),
|
1337 |
+
'invert' => array(
|
1338 |
+
'zIndex' => 2,
|
1339 |
+
'current' => array(
|
1340 |
+
'top' => "-100%",
|
1341 |
+
'scale' => 1
|
1342 |
+
),
|
1343 |
+
'next' => array(
|
1344 |
+
'scale' => 0.7,
|
1345 |
+
'top' => 0
|
1346 |
+
)
|
1347 |
+
)
|
1348 |
+
)
|
1349 |
+
)
|
1350 |
+
));
|
1351 |
+
|
1352 |
+
array_push($animations, array(
|
1353 |
+
"id" => 1016,
|
1354 |
+
'referencekey' => 1100,
|
1355 |
+
"value" => array(
|
1356 |
+
'name' => n2_('Curtain to bottom'),
|
1357 |
+
'data' => array(
|
1358 |
+
'type' => 'Flat',
|
1359 |
+
'rows' => 25,
|
1360 |
+
'columns' => 1,
|
1361 |
+
'tiles' => array(
|
1362 |
+
'delay' => .03,
|
1363 |
+
'sequence' => 'ForwardRow'
|
1364 |
+
),
|
1365 |
+
'main' => array(
|
1366 |
+
'type' => 'next',
|
1367 |
+
'duration' => .35,
|
1368 |
+
'next' => array(
|
1369 |
+
'ease' => 'easeInOutQuart',
|
1370 |
+
'opacity' => "0",
|
1371 |
+
'top' => '100%'
|
1372 |
+
)
|
1373 |
+
),
|
1374 |
+
'invert' => array(
|
1375 |
+
'next' => array(
|
1376 |
+
'top' => '-100%'
|
1377 |
+
)
|
1378 |
+
),
|
1379 |
+
'invertTiles' => array(
|
1380 |
+
'sequence' => 'BackwardRow'
|
1381 |
+
)
|
1382 |
+
)
|
1383 |
+
)
|
1384 |
+
));
|
1385 |
+
|
1386 |
+
array_push($animations, array(
|
1387 |
+
"id" => 1017,
|
1388 |
+
'referencekey' => 1100,
|
1389 |
+
"value" => array(
|
1390 |
+
'name' => n2_('Curtain to top'),
|
1391 |
+
'data' => array(
|
1392 |
+
'type' => 'Flat',
|
1393 |
+
'rows' => 25,
|
1394 |
+
'columns' => 1,
|
1395 |
+
'tiles' => array(
|
1396 |
+
'delay' => .03,
|
1397 |
+
'sequence' => 'BackwardRow'
|
1398 |
+
),
|
1399 |
+
'main' => array(
|
1400 |
+
'type' => 'next',
|
1401 |
+
'duration' => .35,
|
1402 |
+
'next' => array(
|
1403 |
+
'ease' => 'easeInOutQuart',
|
1404 |
+
'opacity' => "0",
|
1405 |
+
'top' => '-100%'
|
1406 |
+
)
|
1407 |
+
),
|
1408 |
+
'invert' => array(
|
1409 |
+
'next' => array(
|
1410 |
+
'top' => '100%'
|
1411 |
+
)
|
1412 |
+
),
|
1413 |
+
'invertTiles' => array(
|
1414 |
+
'sequence' => 'ForwardRow'
|
1415 |
+
)
|
1416 |
+
)
|
1417 |
+
)
|
1418 |
+
));
|
1419 |
+
|
1420 |
+
array_push($sets, array(
|
1421 |
+
'id' => 1200,
|
1422 |
+
'referencekey' => '',
|
1423 |
+
'value' => 'RTL'
|
1424 |
+
));
|
1425 |
+
|
1426 |
+
array_push($animations, array(
|
1427 |
+
"id" => 1401,
|
1428 |
+
'referencekey' => 1200,
|
1429 |
+
"value" => array(
|
1430 |
+
'name' => n2_('Scale to right'),
|
1431 |
+
'data' => array(
|
1432 |
+
'type' => 'Flat',
|
1433 |
+
'tiles' => array(
|
1434 |
+
'crop' => true,
|
1435 |
+
'delay' => 0,
|
1436 |
+
'sequence' => 'ForwardDiagonal'
|
1437 |
+
),
|
1438 |
+
'main' => array(
|
1439 |
+
'type' => 'both',
|
1440 |
+
'duration' => 1,
|
1441 |
+
'current' => array(
|
1442 |
+
'ease' => 'easeOutCubic',
|
1443 |
+
'scale' => 0.7
|
1444 |
+
),
|
1445 |
+
'next' => array(
|
1446 |
+
'ease' => 'easeOutCubic',
|
1447 |
+
'left' => "-100%"
|
1448 |
+
)
|
1449 |
+
),
|
1450 |
+
'invert' => array(
|
1451 |
+
'zIndex' => 2,
|
1452 |
+
'current' => array(
|
1453 |
+
'left' => "-100%",
|
1454 |
+
'scale' => 1
|
1455 |
+
),
|
1456 |
+
'next' => array(
|
1457 |
+
'scale' => 0.7,
|
1458 |
+
'left' => 0
|
1459 |
+
)
|
1460 |
+
)
|
1461 |
+
)
|
1462 |
+
)
|
1463 |
+
));
|
1464 |
+
|
1465 |
+
array_push($animations, array(
|
1466 |
+
"id" => 1015,
|
1467 |
+
'referencekey' => 1200,
|
1468 |
+
"value" => array(
|
1469 |
+
'name' => n2_('Curtain to right'),
|
1470 |
+
'data' => array(
|
1471 |
+
'type' => 'Flat',
|
1472 |
+
'rows' => 1,
|
1473 |
+
'columns' => 25,
|
1474 |
+
'tiles' => array(
|
1475 |
+
'delay' => .03,
|
1476 |
+
'sequence' => 'ForwardCol'
|
1477 |
+
),
|
1478 |
+
'main' => array(
|
1479 |
+
'type' => 'next',
|
1480 |
+
'duration' => .35,
|
1481 |
+
'next' => array(
|
1482 |
+
'ease' => 'easeInOutQuart',
|
1483 |
+
'opacity' => "0",
|
1484 |
+
'left' => '100%'
|
1485 |
+
)
|
1486 |
+
),
|
1487 |
+
'invert' => array(
|
1488 |
+
'next' => array(
|
1489 |
+
'left' => '-100%'
|
1490 |
+
)
|
1491 |
+
),
|
1492 |
+
'invertTiles' => array(
|
1493 |
+
'sequence' => 'BackwardCol'
|
1494 |
+
)
|
1495 |
+
)
|
1496 |
+
)
|
1497 |
+
));
|
1498 |
+
|
1499 |
+
}
|
1500 |
+
|
1501 |
+
public static function postBackgroundAnimationStorage(&$sets, &$animations) {
|
1502 |
+
N2Base::getApplicationInfo('smartslider')
|
1503 |
+
->loadLocale();
|
1504 |
+
|
1505 |
+
array_push($sets, array(
|
1506 |
+
'id' => 1000,
|
1507 |
+
'referencekey' => '',
|
1508 |
+
'value' => n2_('Default')
|
1509 |
+
));
|
1510 |
+
|
1511 |
+
array_push($animations, array(
|
1512 |
+
"id" => 1001,
|
1513 |
+
'referencekey' => 1000,
|
1514 |
+
"value" => array(
|
1515 |
+
'name' => n2_('Downscale'),
|
1516 |
+
'data' => array(
|
1517 |
+
'duration' => 5,
|
1518 |
+
'strength' => array('scale'),
|
1519 |
+
'from' => array(
|
1520 |
+
'scale' => 1.5
|
1521 |
+
),
|
1522 |
+
'to' => array(
|
1523 |
+
'scale' => 1.2
|
1524 |
+
)
|
1525 |
+
)
|
1526 |
+
)
|
1527 |
+
));
|
1528 |
+
|
1529 |
+
array_push($animations, array(
|
1530 |
+
"id" => 1002,
|
1531 |
+
'referencekey' => 1000,
|
1532 |
+
"value" => array(
|
1533 |
+
'name' => n2_('Downscale left'),
|
1534 |
+
'data' => array(
|
1535 |
+
'duration' => 5,
|
1536 |
+
'strength' => array('scale','x'),
|
1537 |
+
'from' => array(
|
1538 |
+
'scale' => 1.5,
|
1539 |
+
'x' => 0
|
1540 |
+
|
1541 |
+
),
|
1542 |
+
'to' => array(
|
1543 |
+
'scale' => 1.2,
|
1544 |
+
'x' => -100
|
1545 |
+
)
|
1546 |
+
)
|
1547 |
+
)
|
1548 |
+
));
|
1549 |
+
|
1550 |
+
array_push($animations, array(
|
1551 |
+
"id" => 1003,
|
1552 |
+
'referencekey' => 1000,
|
1553 |
+
"value" => array(
|
1554 |
+
'name' => n2_('Downscale right'),
|
1555 |
+
'data' => array(
|
1556 |
+
'duration' => 5,
|
1557 |
+
'strength' => array('scale','x'),
|
1558 |
+
'from' => array(
|
1559 |
+
'scale' => 1.5,
|
1560 |
+
'x' => 0
|
1561 |
+
|
1562 |
+
),
|
1563 |
+
'to' => array(
|
1564 |
+
'scale' => 1.2,
|
1565 |
+
'x' => 100
|
1566 |
+
)
|
1567 |
+
)
|
1568 |
+
)
|
1569 |
+
));
|
1570 |
+
|
1571 |
+
array_push($animations, array(
|
1572 |
+
"id" => 1004,
|
1573 |
+
'referencekey' => 1000,
|
1574 |
+
"value" => array(
|
1575 |
+
'name' => n2_('Downscale top'),
|
1576 |
+
'data' => array(
|
1577 |
+
'duration' => 5,
|
1578 |
+
'strength' => array('scale','y'),
|
1579 |
+
'from' => array(
|
1580 |
+
'scale' => 1.5,
|
1581 |
+
'y' => 0
|
1582 |
+
|
1583 |
+
),
|
1584 |
+
'to' => array(
|
1585 |
+
'scale' => 1.2,
|
1586 |
+
'y' => -100
|
1587 |
+
)
|
1588 |
+
)
|
1589 |
+
)
|
1590 |
+
));
|
1591 |
+
|
1592 |
+
array_push($animations, array(
|
1593 |
+
"id" => 1005,
|
1594 |
+
'referencekey' => 1000,
|
1595 |
+
"value" => array(
|
1596 |
+
'name' => n2_('Downscale bottom'),
|
1597 |
+
'data' => array(
|
1598 |
+
'duration' => 5,
|
1599 |
+
'strength' => array('scale','y'),
|
1600 |
+
'from' => array(
|
1601 |
+
'scale' => 1.5,
|
1602 |
+
'y' => 0
|
1603 |
+
|
1604 |
+
),
|
1605 |
+
'to' => array(
|
1606 |
+
'scale' => 1.2,
|
1607 |
+
'y' => 100
|
1608 |
+
)
|
1609 |
+
)
|
1610 |
+
)
|
1611 |
+
));
|
1612 |
+
|
1613 |
+
array_push($animations, array(
|
1614 |
+
"id" => 1006,
|
1615 |
+
'referencekey' => 1000,
|
1616 |
+
"value" => array(
|
1617 |
+
'name' => n2_('Upscale'),
|
1618 |
+
'data' => array(
|
1619 |
+
'duration' => 5,
|
1620 |
+
'strength' => array('scale'),
|
1621 |
+
'from' => array(
|
1622 |
+
'scale' => 1.2
|
1623 |
+
),
|
1624 |
+
'to' => array(
|
1625 |
+
'scale' => 1.5
|
1626 |
+
)
|
1627 |
+
)
|
1628 |
+
)
|
1629 |
+
));
|
1630 |
+
|
1631 |
+
array_push($animations, array(
|
1632 |
+
"id" => 1007,
|
1633 |
+
'referencekey' => 1000,
|
1634 |
+
"value" => array(
|
1635 |
+
'name' => n2_('Upscale left'),
|
1636 |
+
'data' => array(
|
1637 |
+
'duration' => 5,
|
1638 |
+
'strength' => array('scale','x'),
|
1639 |
+
'from' => array(
|
1640 |
+
'scale' => 1.2,
|
1641 |
+
'x' => 0
|
1642 |
+
|
1643 |
+
),
|
1644 |
+
'to' => array(
|
1645 |
+
'scale' => 1.5,
|
1646 |
+
'x' => 100
|
1647 |
+
)
|
1648 |
+
)
|
1649 |
+
)
|
1650 |
+
));
|
1651 |
+
|
1652 |
+
array_push($animations, array(
|
1653 |
+
"id" => 1008,
|
1654 |
+
'referencekey' => 1000,
|
1655 |
+
"value" => array(
|
1656 |
+
'name' => n2_('Upscale right'),
|
1657 |
+
'data' => array(
|
1658 |
+
'duration' => 5,
|
1659 |
+
'strength' => array('scale','x'),
|
1660 |
+
'from' => array(
|
1661 |
+
'scale' => 1.2,
|
1662 |
+
'x' => 0
|
1663 |
+
|
1664 |
+
),
|
1665 |
+
'to' => array(
|
1666 |
+
'scale' => 1.5,
|
1667 |
+
'x' => -100
|
1668 |
+
)
|
1669 |
+
)
|
1670 |
+
)
|
1671 |
+
));
|
1672 |
+
|
1673 |
+
array_push($animations, array(
|
1674 |
+
"id" => 1009,
|
1675 |
+
'referencekey' => 1000,
|
1676 |
+
"value" => array(
|
1677 |
+
'name' => n2_('Upscale top'),
|
1678 |
+
'data' => array(
|
1679 |
+
'duration' => 5,
|
1680 |
+
'strength' => array('scale','y'),
|
1681 |
+
'from' => array(
|
1682 |
+
'scale' => 1.2,
|
1683 |
+
'y' => 0
|
1684 |
+
|
1685 |
+
),
|
1686 |
+
'to' => array(
|
1687 |
+
'scale' => 1.5,
|
1688 |
+
'y' => 100
|
1689 |
+
)
|
1690 |
+
)
|
1691 |
+
)
|
1692 |
+
));
|
1693 |
+
|
1694 |
+
array_push($animations, array(
|
1695 |
+
"id" => 1010,
|
1696 |
+
'referencekey' => 1000,
|
1697 |
+
"value" => array(
|
1698 |
+
'name' => n2_('Upscale bottom'),
|
1699 |
+
'data' => array(
|
1700 |
+
'duration' => 5,
|
1701 |
+
'strength' => array('scale','y'),
|
1702 |
+
'from' => array(
|
1703 |
+
'scale' => 1.2,
|
1704 |
+
'y' => 0
|
1705 |
+
|
1706 |
+
),
|
1707 |
+
'to' => array(
|
1708 |
+
'scale' => 1.5,
|
1709 |
+
'y' => -100
|
1710 |
+
)
|
1711 |
+
)
|
1712 |
+
)
|
1713 |
+
));
|
1714 |
+
|
1715 |
+
array_push($animations, array(
|
1716 |
+
"id" => 1011,
|
1717 |
+
'referencekey' => 1000,
|
1718 |
+
"value" => array(
|
1719 |
+
'name' => n2_('To left'),
|
1720 |
+
'data' => array(
|
1721 |
+
'duration' => 5,
|
1722 |
+
'strength' => array('x'),
|
1723 |
+
'from' => array(
|
1724 |
+
'scale' => 1.5,
|
1725 |
+
'x' => 0
|
1726 |
+
),
|
1727 |
+
'to' => array(
|
1728 |
+
'scale' => 1.5,
|
1729 |
+
'x' => 100
|
1730 |
+
)
|
1731 |
+
)
|
1732 |
+
)
|
1733 |
+
));
|
1734 |
+
|
1735 |
+
array_push($animations, array(
|
1736 |
+
"id" => 1012,
|
1737 |
+
'referencekey' => 1000,
|
1738 |
+
"value" => array(
|
1739 |
+
'name' => n2_('To right'),
|
1740 |
+
'data' => array(
|
1741 |
+
'duration' => 5,
|
1742 |
+
'strength' => array('x'),
|
1743 |
+
'from' => array(
|
1744 |
+
'scale' => 1.5,
|
1745 |
+
'x' => 0
|
1746 |
+
),
|
1747 |
+
'to' => array(
|
1748 |
+
'scale' => 1.5,
|
1749 |
+
'x' => -100
|
1750 |
+
)
|
1751 |
+
)
|
1752 |
+
)
|
1753 |
+
));
|
1754 |
+
|
1755 |
+
array_push($animations, array(
|
1756 |
+
"id" => 1013,
|
1757 |
+
'referencekey' => 1000,
|
1758 |
+
"value" => array(
|
1759 |
+
'name' => n2_('To top'),
|
1760 |
+
'data' => array(
|
1761 |
+
'duration' => 5,
|
1762 |
+
'strength' => array('y'),
|
1763 |
+
'from' => array(
|
1764 |
+
'scale' => 1.5,
|
1765 |
+
'y' => 0
|
1766 |
+
),
|
1767 |
+
'to' => array(
|
1768 |
+
'scale' => 1.5,
|
1769 |
+
'y' => 100
|
1770 |
+
)
|
1771 |
+
)
|
1772 |
+
)
|
1773 |
+
));
|
1774 |
+
|
1775 |
+
array_push($animations, array(
|
1776 |
+
"id" => 1014,
|
1777 |
+
'referencekey' => 1000,
|
1778 |
+
"value" => array(
|
1779 |
+
'name' => n2_('To bottom'),
|
1780 |
+
'data' => array(
|
1781 |
+
'duration' => 5,
|
1782 |
+
'strength' => array('y'),
|
1783 |
+
'from' => array(
|
1784 |
+
'scale' => 1.5,
|
1785 |
+
'y' => 0
|
1786 |
+
),
|
1787 |
+
'to' => array(
|
1788 |
+
'scale' => 1.5,
|
1789 |
+
'y' => -100
|
1790 |
+
)
|
1791 |
+
)
|
1792 |
+
)
|
1793 |
+
));
|
1794 |
+
|
1795 |
+
array_push($animations, array(
|
1796 |
+
"id" => 1015,
|
1797 |
+
'referencekey' => 1000,
|
1798 |
+
"value" => array(
|
1799 |
+
'name' => n2_('To bottom left'),
|
1800 |
+
'data' => array(
|
1801 |
+
'duration' => 5,
|
1802 |
+
'strength' => array('x', 'y'),
|
1803 |
+
'from' => array(
|
1804 |
+
'scale' => 1.5,
|
1805 |
+
'x' => 0,
|
1806 |
+
'y' => 0
|
1807 |
+
),
|
1808 |
+
'to' => array(
|
1809 |
+
'scale' => 1.5,
|
1810 |
+
'x' => 100,
|
1811 |
+
'y' => -100
|
1812 |
+
)
|
1813 |
+
)
|
1814 |
+
)
|
1815 |
+
));
|
1816 |
+
|
1817 |
+
array_push($animations, array(
|
1818 |
+
"id" => 1016,
|
1819 |
+
'referencekey' => 1000,
|
1820 |
+
"value" => array(
|
1821 |
+
'name' => n2_('To top right'),
|
1822 |
+
'data' => array(
|
1823 |
+
'duration' => 5,
|
1824 |
+
'strength' => array('x', 'y'),
|
1825 |
+
'from' => array(
|
1826 |
+
'scale' => 1.5,
|
1827 |
+
'x' => 0,
|
1828 |
+
'y' => 0
|
1829 |
+
),
|
1830 |
+
'to' => array(
|
1831 |
+
'scale' => 1.5,
|
1832 |
+
'x' => -100,
|
1833 |
+
'y' => 100
|
1834 |
+
)
|
1835 |
+
)
|
1836 |
+
)
|
1837 |
+
));
|
1838 |
+
|
1839 |
+
array_push($animations, array(
|
1840 |
+
"id" => 1017,
|
1841 |
+
'referencekey' => 1000,
|
1842 |
+
"value" => array(
|
1843 |
+
'name' => n2_('To bottom left'),
|
1844 |
+
'data' => array(
|
1845 |
+
'duration' => 5,
|
1846 |
+
'strength' => array('x', 'y'),
|
1847 |
+
'from' => array(
|
1848 |
+
'scale' => 1.5,
|
1849 |
+
'x' => 0,
|
1850 |
+
'y' => 0
|
1851 |
+
),
|
1852 |
+
'to' => array(
|
1853 |
+
'scale' => 1.5,
|
1854 |
+
'x' => 100,
|
1855 |
+
'y' => -100
|
1856 |
+
)
|
1857 |
+
)
|
1858 |
+
)
|
1859 |
+
));
|
1860 |
+
|
1861 |
+
array_push($animations, array(
|
1862 |
+
"id" => 1018,
|
1863 |
+
'referencekey' => 1000,
|
1864 |
+
"value" => array(
|
1865 |
+
'name' => n2_('To bottom right'),
|
1866 |
+
'data' => array(
|
1867 |
+
'duration' => 5,
|
1868 |
+
'strength' => array('x', 'y'),
|
1869 |
+
'from' => array(
|
1870 |
+
'scale' => 1.5,
|
1871 |
+
'x' => 0,
|
1872 |
+
'y' => 0
|
1873 |
+
),
|
1874 |
+
'to' => array(
|
1875 |
+
'scale' => 1.5,
|
1876 |
+
'x' => -100,
|
1877 |
+
'y' => -100
|
1878 |
+
)
|
1879 |
+
)
|
1880 |
+
)
|
1881 |
+
));
|
1882 |
+
}
|
1883 |
+
|
1884 |
+
public static function layoutStorage(&$sets, &$layouts) {
|
1885 |
+
N2Base::getApplicationInfo('smartslider')
|
1886 |
+
->loadLocale();
|
1887 |
+
|
1888 |
+
array_push($sets, array(
|
1889 |
+
'id' => 1900,
|
1890 |
+
'referencekey' => '',
|
1891 |
+
'value' => n2_('My layouts')
|
1892 |
+
));
|
1893 |
+
}
|
1894 |
+
}
|
1895 |
+
|
1896 |
+
N2SmartSliderStorage::init();
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Ajax.php
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
N2Loader::import("libraries.ajax.ajax");
|
5 |
+
N2Loader::import('libraries.form.form');
|
6 |
+
|
7 |
+
class N2SmartSliderAjaxModel extends N2Ajax
|
8 |
+
{
|
9 |
+
|
10 |
+
public function sliderType($appType) {
|
11 |
+
$configurationXmlFile = dirname(__FILE__) . '/forms/slider.xml';
|
12 |
+
|
13 |
+
$values = N2Request::getVar('values', array());
|
14 |
+
$values['type'] = N2Post::getVar('value');
|
15 |
+
|
16 |
+
return $this->subform($appType, $configurationXmlFile, $values, 'slider', 'type');
|
17 |
+
}
|
18 |
+
|
19 |
+
public function sliderResponsiveMode($appType) {
|
20 |
+
$configurationXmlFile = dirname(__FILE__) . '/forms/slider.xml';
|
21 |
+
|
22 |
+
$values = N2Request::getVar('values', array());
|
23 |
+
$values['responsive-mode'] = N2Post::getVar('value');
|
24 |
+
|
25 |
+
return $this->subform($appType, $configurationXmlFile, $values, 'slider', 'responsive-mode');
|
26 |
+
}
|
27 |
+
|
28 |
+
private function getWidgetPath($name) {
|
29 |
+
$list = array();
|
30 |
+
N2Plugin::callPlugin('sswidget', 'onWidgetList', array(&$list));
|
31 |
+
if (isset($list[$name])) {
|
32 |
+
return $list[$name][1];
|
33 |
+
}
|
34 |
+
|
35 |
+
return false;
|
36 |
+
}
|
37 |
+
|
38 |
+
public function sliderWidget($appType, $name) {
|
39 |
+
|
40 |
+
$configurationXmlFile = $this->getWidgetPath($name) . 'config.xml';
|
41 |
+
|
42 |
+
$values = (array)N2Request::getVar('values', array());
|
43 |
+
$values['widget' . $name] = N2Post::getVar('value');
|
44 |
+
|
45 |
+
$class = 'N2SSPluginWidget' . $name . N2Post::getVar('value');
|
46 |
+
if (class_exists($class, false)) {
|
47 |
+
$values = array_merge(call_user_func(array(
|
48 |
+
$class,
|
49 |
+
'getDefaults'
|
50 |
+
)), $values);
|
51 |
+
}
|
52 |
+
|
53 |
+
return $this->subform($appType, $configurationXmlFile, $values, 'slider', 'widget' . $name);
|
54 |
+
}
|
55 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Install.php
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class N2SmartsliderInstallModel extends N2Model
|
5 |
+
{
|
6 |
+
|
7 |
+
private static $sql = array(
|
8 |
+
"CREATE TABLE IF NOT EXISTS `#__nextend2_smartslider3_generators` (
|
9 |
+
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
10 |
+
`group` VARCHAR(254) NOT NULL,
|
11 |
+
`type` VARCHAR(254) NOT NULL,
|
12 |
+
`params` TEXT NOT NULL,
|
13 |
+
PRIMARY KEY (`id`)
|
14 |
+
)
|
15 |
+
DEFAULT CHARSET = utf8;",
|
16 |
+
"CREATE TABLE IF NOT EXISTS `#__nextend2_smartslider3_sliders` (
|
17 |
+
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
18 |
+
`title` VARCHAR(100) NOT NULL,
|
19 |
+
`type` VARCHAR(30) NOT NULL,
|
20 |
+
`params` MEDIUMTEXT NOT NULL,
|
21 |
+
`time` DATETIME NOT NULL,
|
22 |
+
PRIMARY KEY (`id`)
|
23 |
+
)
|
24 |
+
DEFAULT CHARSET = utf8;",
|
25 |
+
"CREATE TABLE IF NOT EXISTS `#__nextend2_smartslider3_slides` (
|
26 |
+
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
27 |
+
`title` VARCHAR(200) NOT NULL,
|
28 |
+
`slider` INT(11) NOT NULL,
|
29 |
+
`publish_up` DATETIME NOT NULL,
|
30 |
+
`publish_down` DATETIME NOT NULL,
|
31 |
+
`published` TINYINT(1) NOT NULL,
|
32 |
+
`first` INT(11) NOT NULL,
|
33 |
+
`slide` LONGTEXT,
|
34 |
+
`description` TEXT NOT NULL,
|
35 |
+
`thumbnail` VARCHAR(255) NOT NULL,
|
36 |
+
`params` TEXT NOT NULL,
|
37 |
+
`ordering` INT(11) NOT NULL,
|
38 |
+
`generator_id` INT(11) NOT NULL,
|
39 |
+
PRIMARY KEY (`id`)
|
40 |
+
)
|
41 |
+
DEFAULT CHARSET = utf8;"
|
42 |
+
|
43 |
+
);
|
44 |
+
|
45 |
+
public function install() {
|
46 |
+
foreach (self::$sql AS $query) {
|
47 |
+
$this->db->query($this->db->parsePrefix($query));
|
48 |
+
}
|
49 |
+
/*
|
50 |
+
$storageDefaults = <<<EODEOD;
|
51 |
+
$this->db->query($this->db->parsePrefix($storageDefaults));
|
52 |
+
*/
|
53 |
+
N2Loader::import('install', 'smartslider.platform');
|
54 |
+
}
|
55 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Item.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.form.form');
|
4 |
+
|
5 |
+
class N2SmartsliderItemModel extends N2Model
|
6 |
+
{
|
7 |
+
|
8 |
+
function renderForm($type, $item, $data = array()) {
|
9 |
+
|
10 |
+
$configurationXmlFile = $item[4] . 'configuration.xml';
|
11 |
+
|
12 |
+
$form = new N2Form(N2Base::getApplication('smartslider')->getApplicationType('backend'));
|
13 |
+
$form->loadArray($data);
|
14 |
+
|
15 |
+
$form->loadXMLFile($configurationXmlFile);
|
16 |
+
|
17 |
+
echo $form->render('item_' . $type);
|
18 |
+
}
|
19 |
+
|
20 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Layers.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderLayersModel extends N2Model
|
4 |
+
{
|
5 |
+
|
6 |
+
function renderForm($data = array()) {
|
7 |
+
|
8 |
+
N2Loader::import('libraries.animations.manager');
|
9 |
+
|
10 |
+
$configurationXmlFile = dirname(__FILE__) . '/forms/layer.xml';
|
11 |
+
|
12 |
+
N2Loader::import('libraries.form.form');
|
13 |
+
$form = new N2Form();
|
14 |
+
$form->loadArray($data);
|
15 |
+
|
16 |
+
$form->loadXMLFile($configurationXmlFile);
|
17 |
+
|
18 |
+
echo $form->render('layer');
|
19 |
+
}
|
20 |
+
|
21 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/License.php
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderLicenseModel
|
4 |
+
{
|
5 |
+
|
6 |
+
private $key;
|
7 |
+
|
8 |
+
public function __construct() {
|
9 |
+
$this->key = N2Base::getApplication('smartslider')->storage->get('license', 'key');
|
10 |
+
}
|
11 |
+
|
12 |
+
public static function getInstance() {
|
13 |
+
static $ins;
|
14 |
+
if (!$ins) {
|
15 |
+
$ins = new N2SmartsliderLicenseModel();
|
16 |
+
}
|
17 |
+
return $ins;
|
18 |
+
}
|
19 |
+
|
20 |
+
public function hasKey() {
|
21 |
+
return !empty($this->key);
|
22 |
+
}
|
23 |
+
|
24 |
+
public function maybeActive() {
|
25 |
+
$lastActive = N2Base::getApplication('smartslider')->storage->get('license', 'isActive');
|
26 |
+
if ($lastActive && $lastActive > strtotime("-1 week")) {
|
27 |
+
return true;
|
28 |
+
}
|
29 |
+
return false;
|
30 |
+
}
|
31 |
+
|
32 |
+
public function getKey() {
|
33 |
+
return $this->key;
|
34 |
+
}
|
35 |
+
|
36 |
+
public function setKey($licenseKey) {
|
37 |
+
N2Base::getApplication('smartslider')->storage->set('license', 'key', $licenseKey);
|
38 |
+
$this->key = $licenseKey;
|
39 |
+
}
|
40 |
+
|
41 |
+
public function checkKey($license, $action = 'licensecheck') {
|
42 |
+
return 0;
|
43 |
+
|
44 |
+
}
|
45 |
+
|
46 |
+
public function isActive($cacheAccepted = true) {
|
47 |
+
if ($cacheAccepted && $this->maybeActive()) {
|
48 |
+
return 'OK';
|
49 |
+
}
|
50 |
+
$status = $this->checkKey($this->key);
|
51 |
+
if ($this->hasKey() && $status == 'OK') {
|
52 |
+
N2Base::getApplication('smartslider')->storage->set('license', 'isActive', time());
|
53 |
+
return $status;
|
54 |
+
}
|
55 |
+
N2Base::getApplication('smartslider')->storage->set('license', 'isActive', 0);
|
56 |
+
return $status;
|
57 |
+
}
|
58 |
+
|
59 |
+
public function deAuthorize() {
|
60 |
+
if ($this->hasKey()) {
|
61 |
+
$status = $this->checkKey($this->key, 'licensedeauthorize');
|
62 |
+
if ($status == 'OK' || $status == 'LICENSE_EXPIRED' || $status == 'PLATFORM_NOT_ALLOWED') {
|
63 |
+
$this->setKey('');
|
64 |
+
N2Message::notice('Smart Slider deauthorized on this site!');
|
65 |
+
}
|
66 |
+
return $status;
|
67 |
+
}
|
68 |
+
return false;
|
69 |
+
}
|
70 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Modules.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderModulesModel extends NextendModel
|
4 |
+
{
|
5 |
+
|
6 |
+
public function __construct() {
|
7 |
+
parent::__construct();
|
8 |
+
|
9 |
+
$this->db->setTableName("modules");
|
10 |
+
}
|
11 |
+
|
12 |
+
|
13 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/ModulesMenu.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderModulesMenuModel extends NextendModel
|
4 |
+
{
|
5 |
+
|
6 |
+
public function __construct() {
|
7 |
+
parent::__construct();
|
8 |
+
|
9 |
+
$this->db->setTableName("modules_menu");
|
10 |
+
}
|
11 |
+
|
12 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Settings.php
ADDED
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderSettingsModel extends N2Model
|
4 |
+
{
|
5 |
+
|
6 |
+
public function form($xml) {
|
7 |
+
|
8 |
+
/** @noinspection PhpUnusedLocalVariableInspection */
|
9 |
+
$data = array();
|
10 |
+
switch ($xml) {
|
11 |
+
case 'joomla':
|
12 |
+
$data = N2SmartSliderJoomlaSettings::getAll();
|
13 |
+
break;
|
14 |
+
default:
|
15 |
+
$data = N2SmartSliderSettings::getAll();
|
16 |
+
break;
|
17 |
+
}
|
18 |
+
$this->render(dirname(__FILE__) . '/forms/settings/' . $xml . '.xml', $data);
|
19 |
+
}
|
20 |
+
|
21 |
+
public function render($xmlpath, $data) {
|
22 |
+
N2Loader::import('libraries.form.form');
|
23 |
+
$form = new N2Form(N2Base::getApplication('smartslider')->getApplicationType('backend'));
|
24 |
+
|
25 |
+
$form->loadArray($data);
|
26 |
+
|
27 |
+
$form->loadXMLFile($xmlpath);
|
28 |
+
|
29 |
+
echo $form->render('settings');
|
30 |
+
|
31 |
+
N2JS::addFirstCode('
|
32 |
+
new NextendForm("smartslider-form", ' . json_encode($form->_data) . ', null, "' . N2Filesystem::toLinux(N2Filesystem::pathToRelativePath($xmlpath)) . '", "settings", "' . N2Uri::ajaxUri('nextend', 'smartslider') . '");
|
33 |
+
');
|
34 |
+
}
|
35 |
+
|
36 |
+
public function save() {
|
37 |
+
$namespace = N2Request::getCmd('namespace', 'default');
|
38 |
+
$settings = N2Request::getVar('settings');
|
39 |
+
if ($namespace && $settings) {
|
40 |
+
if ($namespace == 'default') $namespace = 'settings';
|
41 |
+
if ($namespace == 'font' && N2Request::getInt('sliderid')) {
|
42 |
+
$namespace .= N2Request::getInt('sliderid');
|
43 |
+
self::markChanged(N2Request::getInt('sliderid'));
|
44 |
+
}
|
45 |
+
if ($namespace == 'joomla') {
|
46 |
+
$license = empty($settings['license']) ? '' : $settings['license'];
|
47 |
+
|
48 |
+
$updates = $this->db->queryAll("SELECT b.update_site_id FROM " . $this->db->tableAlias("extensions") . " AS a LEFT JOIN " . $this->db->tableAlias("update_sites_extensions") . " AS b ON a.extension_id = b.extension_id WHERE a.element = 'com_smartslider3'");
|
49 |
+
|
50 |
+
if (count($updates)) {
|
51 |
+
$id = $updates[0]['update_site_id'];
|
52 |
+
unset($updates[0]);
|
53 |
+
if (count($updates)) {
|
54 |
+
foreach ($updates AS $u) {
|
55 |
+
$this->db->setTableName("update_sites");
|
56 |
+
$this->db->deleteByAttributes(array(
|
57 |
+
"update_site_id" => $u['update_site_id']
|
58 |
+
));
|
59 |
+
$this->db->setTableName("update_sites_extensions");
|
60 |
+
$this->db->deleteByAttributes(array(
|
61 |
+
"update_site_id" => $u['update_site_id']
|
62 |
+
));
|
63 |
+
}
|
64 |
+
}
|
65 |
+
$this->db->setTableName("update_sites");
|
66 |
+
$this->db->update(array(
|
67 |
+
"location" => 'http://www.nextendweb.com/update2/joomla/update.php?license=' . urlencode($license) . '&fake=extension.xml',
|
68 |
+
), array(
|
69 |
+
"update_site_id" => $id
|
70 |
+
));
|
71 |
+
}
|
72 |
+
}
|
73 |
+
N2SmartSliderSettings::store($namespace, json_encode($settings));
|
74 |
+
}
|
75 |
+
}
|
76 |
+
|
77 |
+
public static function markChanged($id) {
|
78 |
+
N2SmartSliderHelper::getInstance()->setSliderChanged($id, 1);
|
79 |
+
}
|
80 |
+
|
81 |
+
public function saveDefaults($defaults) {
|
82 |
+
if (!empty($defaults)) {
|
83 |
+
foreach ($defaults AS $referenceKey => $value) {
|
84 |
+
N2StorageSectionAdmin::set('smartslider', 'default', $referenceKey, $value);
|
85 |
+
}
|
86 |
+
}
|
87 |
+
return true;
|
88 |
+
}
|
89 |
+
|
90 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Sliders.php
ADDED
@@ -0,0 +1,224 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import("libraries.slider.abstract", "smartslider");
|
4 |
+
|
5 |
+
class N2SmartsliderSlidersModel extends N2Model
|
6 |
+
{
|
7 |
+
|
8 |
+
public function __construct() {
|
9 |
+
parent::__construct("nextend2_smartslider3_sliders");
|
10 |
+
}
|
11 |
+
|
12 |
+
public function get($id) {
|
13 |
+
return $this->db->queryRow("SELECT * FROM " . $this->db->tableName . " WHERE id = :id", array(
|
14 |
+
":id" => $id
|
15 |
+
));
|
16 |
+
}
|
17 |
+
|
18 |
+
public function refreshCache($sliderid) {
|
19 |
+
N2Cache::clearGroup(N2SmartSliderAbstract::getCacheId($sliderid));
|
20 |
+
N2Cache::clearGroup(N2SmartSliderAbstract::getAdminCacheId($sliderid));
|
21 |
+
self::markChanged($sliderid);
|
22 |
+
}
|
23 |
+
|
24 |
+
|
25 |
+
/**
|
26 |
+
* @return mixed
|
27 |
+
*/
|
28 |
+
public function getAll($orderBy = 'time', $orderByDirection = 'DESC') {
|
29 |
+
return $this->db->findAll($orderBy . ' ' . $orderByDirection);
|
30 |
+
}
|
31 |
+
|
32 |
+
public static function renderAddForm($data = array()) {
|
33 |
+
return self::editForm($data);
|
34 |
+
}
|
35 |
+
|
36 |
+
public static function renderEditForm($slider) {
|
37 |
+
|
38 |
+
$data = json_decode($slider['params'], true);
|
39 |
+
if ($data == null) $data = array();
|
40 |
+
$data['title'] = $slider['title'];
|
41 |
+
$data['type'] = $slider['type'];
|
42 |
+
return self::editForm($data);
|
43 |
+
}
|
44 |
+
|
45 |
+
private static function editForm($data = array()) {
|
46 |
+
|
47 |
+
$configurationXmlFile = dirname(__FILE__) . '/forms/slider.xml';
|
48 |
+
|
49 |
+
N2Loader::import('libraries.form.form');
|
50 |
+
$form = new N2Form(N2Base::getApplication('smartslider')
|
51 |
+
->getApplicationType('backend'));
|
52 |
+
$form->set('class', 'nextend-smart-slider-admin');
|
53 |
+
|
54 |
+
$form->loadArray($data);
|
55 |
+
|
56 |
+
$form->loadXMLFile($configurationXmlFile);
|
57 |
+
|
58 |
+
echo $form->render('slider');
|
59 |
+
|
60 |
+
return $data;
|
61 |
+
}
|
62 |
+
|
63 |
+
public static function renderImportByUploadForm() {
|
64 |
+
|
65 |
+
$configurationXmlFile = dirname(__FILE__) . '/forms/import/upload.xml';
|
66 |
+
|
67 |
+
N2Loader::import('libraries.form.form');
|
68 |
+
$form = new N2Form(N2Base::getApplication('smartslider')
|
69 |
+
->getApplicationType('backend'));
|
70 |
+
|
71 |
+
$form->loadXMLFile($configurationXmlFile);
|
72 |
+
|
73 |
+
echo $form->render('slider');
|
74 |
+
}
|
75 |
+
|
76 |
+
public static function renderImportFromServerForm() {
|
77 |
+
|
78 |
+
$configurationXmlFile = dirname(__FILE__) . '/forms/import/server.xml';
|
79 |
+
|
80 |
+
N2Loader::import('libraries.form.form');
|
81 |
+
$form = new N2Form(N2Base::getApplication('smartslider')
|
82 |
+
->getApplicationType('backend'));
|
83 |
+
|
84 |
+
$form->loadXMLFile($configurationXmlFile);
|
85 |
+
|
86 |
+
echo $form->render('slider');
|
87 |
+
}
|
88 |
+
|
89 |
+
function import($slider) {
|
90 |
+
try {
|
91 |
+
$this->db->insert(array(
|
92 |
+
'title' => $slider['title'],
|
93 |
+
'type' => $slider['type'],
|
94 |
+
'params' => $slider['params']->toJSON(),
|
95 |
+
'time' => date('Y-m-d H:i:s', N2Platform::getTime())
|
96 |
+
));
|
97 |
+
|
98 |
+
return $this->db->insertId();
|
99 |
+
} catch (Exception $e) {
|
100 |
+
throw new Exception($e->getMessage());
|
101 |
+
}
|
102 |
+
}
|
103 |
+
|
104 |
+
/**
|
105 |
+
* @param $sliderId
|
106 |
+
* @param $params N2Data
|
107 |
+
*/
|
108 |
+
function importUpdate($sliderId, $params) {
|
109 |
+
|
110 |
+
$this->db->update(array(
|
111 |
+
'params' => $params->toJson()
|
112 |
+
), array(
|
113 |
+
"id" => $sliderId
|
114 |
+
));
|
115 |
+
}
|
116 |
+
|
117 |
+
function create($slider) {
|
118 |
+
if (!isset($slider['title'])) return false;
|
119 |
+
if ($slider['title'] == '') $slider['title'] = n2_('New slider');
|
120 |
+
|
121 |
+
$title = $slider['title'];
|
122 |
+
unset($slider['title']);
|
123 |
+
$type = $slider['type'];
|
124 |
+
unset($slider['type']);
|
125 |
+
|
126 |
+
try {
|
127 |
+
$this->db->insert(array(
|
128 |
+
'title' => $title,
|
129 |
+
'type' => $type,
|
130 |
+
'params' => json_encode($slider),
|
131 |
+
'time' => date('Y-m-d H:i:s', N2Platform::getTime())
|
132 |
+
));
|
133 |
+
|
134 |
+
return $this->db->insertId();
|
135 |
+
} catch (Exception $e) {
|
136 |
+
throw new Exception($e->getMessage());
|
137 |
+
}
|
138 |
+
}
|
139 |
+
|
140 |
+
function save($id, $slider) {
|
141 |
+
if (!isset($slider['title']) || $id <= 0) return false;
|
142 |
+
if ($slider['title'] == '') $slider['title'] = n2_('New slider');
|
143 |
+
|
144 |
+
$title = $slider['title'];
|
145 |
+
unset($slider['title']);
|
146 |
+
$type = $slider['type'];
|
147 |
+
unset($slider['type']);
|
148 |
+
|
149 |
+
$this->db->update(array(
|
150 |
+
'title' => $title,
|
151 |
+
'type' => $type,
|
152 |
+
'params' => json_encode($slider)
|
153 |
+
), array(
|
154 |
+
"id" => $id
|
155 |
+
));
|
156 |
+
|
157 |
+
self::markChanged($id);
|
158 |
+
|
159 |
+
return $id;
|
160 |
+
}
|
161 |
+
|
162 |
+
function delete($id) {
|
163 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
164 |
+
$slidesModel->deleteBySlider($id);
|
165 |
+
|
166 |
+
$this->db->deleteByPk($id);
|
167 |
+
|
168 |
+
N2Cache::clearGroup(N2SmartSliderAbstract::getCacheId($id));
|
169 |
+
N2Cache::clearGroup(N2SmartSliderAbstract::getAdminCacheId($id));
|
170 |
+
|
171 |
+
self::markChanged($id);
|
172 |
+
}
|
173 |
+
|
174 |
+
function deleteSlides($id) {
|
175 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
176 |
+
$slidesModel->deleteBySlider($id);
|
177 |
+
self::markChanged($id);
|
178 |
+
}
|
179 |
+
|
180 |
+
function duplicate($id) {
|
181 |
+
$slider = $this->get($id);
|
182 |
+
unset($slider['id']);
|
183 |
+
|
184 |
+
$slider['title'] .= ' - copy';
|
185 |
+
$slider['time'] = date('Y-m-d H:i:s', N2Platform::getTime());
|
186 |
+
|
187 |
+
try {
|
188 |
+
$this->db->insert($slider);
|
189 |
+
$newSliderId = $this->db->insertId();
|
190 |
+
} catch (Exception $e) {
|
191 |
+
throw new Exception($e->getMessage());
|
192 |
+
}
|
193 |
+
|
194 |
+
if (!$newSliderId) {
|
195 |
+
return false;
|
196 |
+
}
|
197 |
+
|
198 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
199 |
+
|
200 |
+
foreach ($slidesModel->getAll($id) AS $slide) {
|
201 |
+
$slidesModel->copy($slide['id'], $newSliderId);
|
202 |
+
}
|
203 |
+
|
204 |
+
return $newSliderId;
|
205 |
+
|
206 |
+
}
|
207 |
+
|
208 |
+
function redirectToCreate() {
|
209 |
+
N2Request::redirect($this->appType->router->createUrl(array("sliders/create")), 302, true);
|
210 |
+
}
|
211 |
+
|
212 |
+
function exportSlider($id) {
|
213 |
+
|
214 |
+
}
|
215 |
+
|
216 |
+
function exportSliderAsHTML($id) {
|
217 |
+
|
218 |
+
}
|
219 |
+
|
220 |
+
public static function markChanged($sliderid) {
|
221 |
+
N2SmartSliderHelper::getInstance()
|
222 |
+
->setSliderChanged($sliderid, 1);
|
223 |
+
}
|
224 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Slides.php
ADDED
@@ -0,0 +1,645 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* User: David
|
5 |
+
* Date: 2014.06.03.
|
6 |
+
* Time: 8:32
|
7 |
+
*/
|
8 |
+
class N2SmartsliderSlidesModel extends N2Model
|
9 |
+
{
|
10 |
+
|
11 |
+
public function __construct() {
|
12 |
+
parent::__construct("nextend2_smartslider3_slides");
|
13 |
+
}
|
14 |
+
|
15 |
+
public function get($id) {
|
16 |
+
return $this->db->findByPk($id);
|
17 |
+
}
|
18 |
+
|
19 |
+
public function getAll($sliderid = 0, $where = '') {
|
20 |
+
return $this->db->queryAll('SELECT * FROM ' . $this->db->tableName . ' WHERE slider = ' . $sliderid . ' ' . $where . ' ORDER BY ordering', false, "assoc", null);
|
21 |
+
}
|
22 |
+
|
23 |
+
public function getRowFromPost($sliderId, $slide, $base64 = true) {
|
24 |
+
|
25 |
+
if (!isset($slide['title'])) return false;
|
26 |
+
if ($slide['title'] == '') $slide['title'] = n2_('New slide');
|
27 |
+
|
28 |
+
if (isset($slide['publishdates'])) {
|
29 |
+
$date = explode('|*|', $slide['publishdates']);
|
30 |
+
} else {
|
31 |
+
$date[0] = isset($slide['publish_up']) ? $slide['publish_up'] : null;
|
32 |
+
$date[1] = isset($slide['publish_down']) ? $slide['publish_down'] : null;
|
33 |
+
unset($slide['publish_up']);
|
34 |
+
unset($slide['publish_down']);
|
35 |
+
}
|
36 |
+
$up = strtotime(isset($date[0]) ? $date[0] : '');
|
37 |
+
$down = strtotime(isset($date[1]) ? $date[1] : '');
|
38 |
+
|
39 |
+
$generator_id = isset($slide['generator_id']) ? intval($slide['generator_id']) : 0;
|
40 |
+
|
41 |
+
$params = $slide;
|
42 |
+
unset($params['title']);
|
43 |
+
unset($params['slide']);
|
44 |
+
unset($params['description']);
|
45 |
+
unset($params['thumbnail']);
|
46 |
+
unset($params['published']);
|
47 |
+
unset($params['first']);
|
48 |
+
unset($params['publishdates']);
|
49 |
+
|
50 |
+
if (isset($params['generator_id'])) {
|
51 |
+
unset($params['generator_id']);
|
52 |
+
}
|
53 |
+
|
54 |
+
return array(
|
55 |
+
'title' => $slide['title'],
|
56 |
+
'slide' => ($base64 ? base64_decode($slide['slide']) : $slide['slide']),
|
57 |
+
'description' => $slide['description'],
|
58 |
+
'thumbnail' => $slide['thumbnail'],
|
59 |
+
'published' => (isset($slide['published']) ? $slide['published'] : 0),
|
60 |
+
'publish_up' => date('Y-m-d H:i:s', ($up && $up > 0 ? $up : strtotime('-1 day'))),
|
61 |
+
'publish_down' => date('Y-m-d H:i:s', ($down && $down > 0 ? $down : strtotime('+10 years'))),
|
62 |
+
'first' => (isset($slide['first']) ? $slide['first'] : 0),
|
63 |
+
'params' => json_encode($params),
|
64 |
+
'slider' => $sliderId,
|
65 |
+
'ordering' => $this->getMaximalOrderValue($sliderId) + 1,
|
66 |
+
'generator_id' => $generator_id
|
67 |
+
);
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* @param $sliderId
|
72 |
+
* @param $slide
|
73 |
+
* @param bool $base64
|
74 |
+
*
|
75 |
+
* @return bool
|
76 |
+
*/
|
77 |
+
public function create($sliderId, $slide, $base64 = true) {
|
78 |
+
|
79 |
+
$row = $this->getRowFromPost($sliderId, $slide, $base64);
|
80 |
+
|
81 |
+
$slideId = $this->_create($row['title'], $row['slide'], $row['description'], $row['thumbnail'], $row['published'], $row['publish_up'], $row['publish_down'], 0, $row['params'], $row['slider'], $row['ordering'], $row['generator_id']);
|
82 |
+
|
83 |
+
self::markChanged($sliderId);
|
84 |
+
|
85 |
+
return $slideId;
|
86 |
+
}
|
87 |
+
|
88 |
+
protected function getMaximalOrderValue($sliderid = 0) {
|
89 |
+
|
90 |
+
$query = "SELECT MAX(ordering) AS ordering FROM " . $this->db->tableName . " WHERE slider = :id";
|
91 |
+
$result = $this->db->queryRow($query, array(
|
92 |
+
":id" => $sliderid
|
93 |
+
));
|
94 |
+
|
95 |
+
if (isset($result['ordering'])) return $result['ordering'] + 1;
|
96 |
+
return 0;
|
97 |
+
}
|
98 |
+
|
99 |
+
public function renderEditForm($slide) {
|
100 |
+
if ($slide) {
|
101 |
+
|
102 |
+
$data = json_decode($slide['params'], true);
|
103 |
+
if ($data == null) $data = array();
|
104 |
+
$data += $slide;
|
105 |
+
$data['sliderid'] = $slide['slider'];
|
106 |
+
echo '<input name="slide[generator_id]" value="' . $slide['generator_id'] . '" type="hidden" />';
|
107 |
+
} else {
|
108 |
+
$data = array(
|
109 |
+
'static-slide' => N2Request::getInt('static')
|
110 |
+
);
|
111 |
+
}
|
112 |
+
|
113 |
+
$data['first'] = isset($slide['first']) ? $slide['first'] : 0;
|
114 |
+
$this->editForm($data);
|
115 |
+
return new N2Data($data);
|
116 |
+
}
|
117 |
+
|
118 |
+
public function simpleEditForm($data = array()) {
|
119 |
+
$configurationXmlFile = dirname(__FILE__) . '/forms/slide.xml';
|
120 |
+
N2Loader::import('libraries.form.form');
|
121 |
+
$form = new N2Form(N2Base::getApplication('smartslider')
|
122 |
+
->getApplicationType('backend'));
|
123 |
+
|
124 |
+
$data['publishdates'] = isset($data['publishdates']) ? $data['publishdates'] : ((isset($data['publish_up']) ? $data['publish_up'] : '') . '|*|' . (isset($data['publish_down']) ? $data['publish_down'] : ''));
|
125 |
+
|
126 |
+
if (isset($data['slide'])) {
|
127 |
+
$data['slide'] = base64_encode($data['slide']);
|
128 |
+
}
|
129 |
+
|
130 |
+
$form->loadArray($data);
|
131 |
+
|
132 |
+
$form->loadXMLFile($configurationXmlFile);
|
133 |
+
|
134 |
+
echo $form->render('slide');
|
135 |
+
}
|
136 |
+
|
137 |
+
/**
|
138 |
+
* @param array $data
|
139 |
+
*/
|
140 |
+
private function editForm($data = array()) {
|
141 |
+
$this->simpleEditForm($data);
|
142 |
+
|
143 |
+
$slidersModel = new N2SmartsliderSlidersModel();
|
144 |
+
$slider = $slidersModel->get(N2Request::getInt('sliderid', 0));
|
145 |
+
|
146 |
+
$slidersSliderXml = call_user_func(array(
|
147 |
+
'N2SSPluginType' . $slider['type'],
|
148 |
+
"getPath"
|
149 |
+
)) . '/slide.xml';
|
150 |
+
if ((!isset($data['static-slide']) || $data['static-slide'] != 1) && N2Filesystem::existsFile($slidersSliderXml)) {
|
151 |
+
$form = new N2Form();
|
152 |
+
|
153 |
+
$form->loadArray($data);
|
154 |
+
|
155 |
+
$form->loadXMLFile($slidersSliderXml);
|
156 |
+
|
157 |
+
echo $form->render('slide');
|
158 |
+
}
|
159 |
+
|
160 |
+
if (isset($data['generator_id']) && $data['generator_id'] > 0) {
|
161 |
+
$form = new N2Form();
|
162 |
+
$form->loadArray($data);
|
163 |
+
|
164 |
+
$form->loadXMLFile(dirname(__FILE__) . '/forms/slide_generator.xml');
|
165 |
+
echo $form->render('slide');
|
166 |
+
}
|
167 |
+
|
168 |
+
N2JS::addFirstCode("new NextendForm('smartslider-form','', {});");
|
169 |
+
}
|
170 |
+
|
171 |
+
/**
|
172 |
+
* @param int $id
|
173 |
+
* @param $slide
|
174 |
+
* @param bool $base64
|
175 |
+
*
|
176 |
+
* @return bool
|
177 |
+
*/
|
178 |
+
public function save($id, $slide, $base64 = true) {
|
179 |
+
if (!isset($slide['title']) || $id <= 0) return false;
|
180 |
+
if ($slide['title'] == '') $slide['title'] = n2_('New slide');
|
181 |
+
|
182 |
+
|
183 |
+
if (isset($slide['publishdates'])) {
|
184 |
+
$date = explode('|*|', $slide['publishdates']);
|
185 |
+
} else {
|
186 |
+
$date[0] = $slide['publish_up'];
|
187 |
+
$date[1] = $slide['publish_down'];
|
188 |
+
unset($slide['publish_up']);
|
189 |
+
unset($slide['publish_down']);
|
190 |
+
}
|
191 |
+
$up = strtotime(isset($date[0]) ? $date[0] : '');
|
192 |
+
$down = strtotime(isset($date[1]) ? $date[1] : '');
|
193 |
+
|
194 |
+
$tmpslide = $slide;
|
195 |
+
unset($tmpslide['title']);
|
196 |
+
unset($tmpslide['slide']);
|
197 |
+
unset($tmpslide['description']);
|
198 |
+
unset($tmpslide['thumbnail']);
|
199 |
+
unset($tmpslide['published']);
|
200 |
+
unset($tmpslide['publishdates']);
|
201 |
+
|
202 |
+
$this->db->update(array(
|
203 |
+
'title' => $slide['title'],
|
204 |
+
'slide' => ($base64 ? base64_decode($slide['slide']) : $slide['slide']),
|
205 |
+
'description' => $slide['description'],
|
206 |
+
'thumbnail' => $slide['thumbnail'],
|
207 |
+
'published' => (isset($slide['published']) ? $slide['published'] : 0),
|
208 |
+
'publish_up' => date('Y-m-d H:i:s', ($up && $up > 0 ? $up : strtotime('-1 day'))),
|
209 |
+
'publish_down' => date('Y-m-d H:i:s', ($down && $down > 0 ? $down : strtotime('+10 years'))),
|
210 |
+
'params' => json_encode($tmpslide)
|
211 |
+
), array('id' => $id));
|
212 |
+
|
213 |
+
self::markChanged(N2Request::getInt('sliderid'));
|
214 |
+
|
215 |
+
return $id;
|
216 |
+
}
|
217 |
+
|
218 |
+
public function updateParams($id, $params) {
|
219 |
+
|
220 |
+
$this->db->update(array(
|
221 |
+
'params' => json_encode($params)
|
222 |
+
), array('id' => $id));
|
223 |
+
|
224 |
+
return $id;
|
225 |
+
}
|
226 |
+
|
227 |
+
public function delete($id) {
|
228 |
+
|
229 |
+
$slide = $this->get($id);
|
230 |
+
|
231 |
+
if ($slide['generator_id'] > 0) {
|
232 |
+
$slidesWithSameGenerator = $this->getAll($slide['slider'], 'AND generator_id = ' . intval($slide['generator_id']));
|
233 |
+
if (count($slidesWithSameGenerator) == 1) {
|
234 |
+
$generatorModel = new N2SmartsliderGeneratorModel();
|
235 |
+
$generatorModel->delete($slide['generator_id']);
|
236 |
+
}
|
237 |
+
}
|
238 |
+
|
239 |
+
$this->db->deleteByAttributes(array(
|
240 |
+
"id" => intval($id)
|
241 |
+
));
|
242 |
+
|
243 |
+
self::markChanged($slide['slider']);
|
244 |
+
|
245 |
+
}
|
246 |
+
|
247 |
+
public function createQuickImage($image, $sliderId) {
|
248 |
+
$publish_up = date('Y-m-d H:i:s', strtotime('-1 day'));
|
249 |
+
$publish_down = date('Y-m-d H:i:s', strtotime('+10 years'));
|
250 |
+
|
251 |
+
$parameters = array(
|
252 |
+
'backgroundImage' => $image['image']
|
253 |
+
);
|
254 |
+
|
255 |
+
return $this->_create($image['title'], json_encode(array()), $image['description'], $image['image'], 1, $publish_up, $publish_down, 0, json_encode($parameters), $sliderId, $this->getMaximalOrderValue($sliderId), '');
|
256 |
+
}
|
257 |
+
|
258 |
+
public function createQuickVideo($video, $sliderId) {
|
259 |
+
$publish_up = date('Y-m-d H:i:s', strtotime('-1 day'));
|
260 |
+
$publish_down = date('Y-m-d H:i:s', strtotime('+10 years'));
|
261 |
+
|
262 |
+
$parameters = array();
|
263 |
+
|
264 |
+
$slide = new N2SmartSliderSlideHelper();
|
265 |
+
|
266 |
+
switch ($video['type']) {
|
267 |
+
case 'youtube':
|
268 |
+
new N2SmartSliderItemHelper($slide, 'youtube', array(
|
269 |
+
'desktopportraitwidth' => '100%',
|
270 |
+
'desktopportraitheight' => '100%',
|
271 |
+
'desktopportraitalign' => 'left',
|
272 |
+
'desktopportraitvalign' => 'top'
|
273 |
+
), array(
|
274 |
+
"code" => $video['video'],
|
275 |
+
"youtubeurl" => $video['video'],
|
276 |
+
"image" => $video['image']
|
277 |
+
));
|
278 |
+
break;
|
279 |
+
case 'vimeo':
|
280 |
+
new N2SmartSliderItemHelper($slide, 'vimeo', array(
|
281 |
+
'desktopportraitwidth' => '100%',
|
282 |
+
'desktopportraitheight' => '100%',
|
283 |
+
'desktopportraitalign' => 'left',
|
284 |
+
'desktopportraitvalign' => 'top'
|
285 |
+
), array(
|
286 |
+
"vimeourl" => $video['video'],
|
287 |
+
"image" => ''
|
288 |
+
));
|
289 |
+
break;
|
290 |
+
default:
|
291 |
+
return false;
|
292 |
+
}
|
293 |
+
$layers = $slide->data['slide'];
|
294 |
+
|
295 |
+
return $this->_create($video['title'], json_encode($layers), $video['description'], $video['image'], 1, $publish_up, $publish_down, 0, json_encode($parameters), $sliderId, $this->getMaximalOrderValue($sliderId), '');
|
296 |
+
}
|
297 |
+
|
298 |
+
public function createQuickPost($post, $sliderId) {
|
299 |
+
$publish_up = date('Y-m-d H:i:s', strtotime('-1 day'));
|
300 |
+
$publish_down = date('Y-m-d H:i:s', strtotime('+10 years'));
|
301 |
+
|
302 |
+
$data = new N2Data($post);
|
303 |
+
|
304 |
+
$parameters = array(
|
305 |
+
'backgroundImage' => $data->get('image'),
|
306 |
+
'link' => $data->get('link') . '|*|_self'
|
307 |
+
);
|
308 |
+
|
309 |
+
$title = $data->get('title');
|
310 |
+
$description = $data->get('description');
|
311 |
+
|
312 |
+
return $this->_create($title, json_encode($this->getSlideLayers($title, $description)), $description, $data->get('image'), 1, $publish_up, $publish_down, 0, json_encode($parameters), $sliderId, $this->getMaximalOrderValue($sliderId), '');
|
313 |
+
}
|
314 |
+
|
315 |
+
private function getSlideLayers($hasTitle = false, $hasDescription = false) {
|
316 |
+
$slide = new N2SmartSliderSlideHelper();
|
317 |
+
if ($hasTitle && $hasDescription) {
|
318 |
+
new N2SmartSliderItemHelper($slide, 'heading', array(
|
319 |
+
'desktopportraitleft' => 30,
|
320 |
+
'desktopportraittop' => 12,
|
321 |
+
'desktopportraitalign' => 'left',
|
322 |
+
'desktopportraitvalign' => 'top'
|
323 |
+
), array(
|
324 |
+
'heading' => '{name/slide}'
|
325 |
+
));
|
326 |
+
new N2SmartSliderItemHelper($slide, 'text', array(
|
327 |
+
'desktopportraitleft' => 30,
|
328 |
+
'desktopportraittop' => 70,
|
329 |
+
'desktopportraitalign' => 'left',
|
330 |
+
'desktopportraitvalign' => 'top'
|
331 |
+
), array(
|
332 |
+
'content' => '{description/slide}'
|
333 |
+
));
|
334 |
+
return $slide->data['slide'];
|
335 |
+
} else if ($hasTitle) {
|
336 |
+
|
337 |
+
new N2SmartSliderItemHelper($slide, 'heading', array(
|
338 |
+
'desktopportraitleft' => 30,
|
339 |
+
'desktopportraittop' => -12,
|
340 |
+
'desktopportraitalign' => 'left',
|
341 |
+
'desktopportraitvalign' => 'bottom'
|
342 |
+
), array(
|
343 |
+
'heading' => '{name/slide}'
|
344 |
+
));
|
345 |
+
return $slide->data['slide'];
|
346 |
+
}
|
347 |
+
return array();
|
348 |
+
}
|
349 |
+
|
350 |
+
public function import($slide, $sliderId) {
|
351 |
+
return $this->_create($slide['title'], $slide['slide'], $slide['description'], $slide['thumbnail'], $slide['published'], $slide['publish_up'], $slide['publish_down'], $slide['first'], $slide['params']->toJson(), $sliderId, $slide['ordering'], $slide['generator_id']);
|
352 |
+
}
|
353 |
+
|
354 |
+
private function _create($title, $slide, $description, $thumbnail, $published, $publish_up, $publish_down, $first, $params, $slider, $ordering, $generator_id) {
|
355 |
+
$this->db->insert(array(
|
356 |
+
'title' => $title,
|
357 |
+
'slide' => $slide,
|
358 |
+
'description' => $description,
|
359 |
+
'thumbnail' => $thumbnail,
|
360 |
+
'published' => $published,
|
361 |
+
'publish_up' => $publish_up,
|
362 |
+
'publish_down' => $publish_down,
|
363 |
+
'first' => $first,
|
364 |
+
'params' => $params,
|
365 |
+
'slider' => $slider,
|
366 |
+
'ordering' => $ordering,
|
367 |
+
'generator_id' => $generator_id
|
368 |
+
));
|
369 |
+
|
370 |
+
return $this->db->insertId();
|
371 |
+
}
|
372 |
+
|
373 |
+
public function duplicate($id) {
|
374 |
+
$slide = $this->get($id);
|
375 |
+
|
376 |
+
// Shift the afterwards slides ++
|
377 |
+
$this->db->query("UPDATE {$this->db->tableName} SET ordering = ordering + 1 WHERE slider = :sliderid AND ordering > :ordering", array(
|
378 |
+
":sliderid" => intval($slide['slider']),
|
379 |
+
":ordering" => intval($slide['ordering'])
|
380 |
+
), '');
|
381 |
+
|
382 |
+
if (!empty($slide['generator_id'])) {
|
383 |
+
$generatorModel = new N2SmartsliderGeneratorModel();
|
384 |
+
$slide['generator_id'] = $generatorModel->duplicate($slide['generator_id']);
|
385 |
+
}
|
386 |
+
|
387 |
+
$slide['slide'] = N2Data::json_encode(N2SmartSliderLayer::translateIds(json_decode($slide['slide'], true)));
|
388 |
+
|
389 |
+
$slideId = $this->_create($slide['title'] . ' - copy', $slide['slide'], $slide['description'], $slide['thumbnail'], $slide['published'], $slide['publish_up'], $slide['publish_down'], 0, $slide['params'], $slide['slider'], $slide['ordering'] + 1, $slide['generator_id']);
|
390 |
+
|
391 |
+
self::markChanged($slide['slider']);
|
392 |
+
return $slideId;
|
393 |
+
}
|
394 |
+
|
395 |
+
public function copy($id, $targetSliderId) {
|
396 |
+
$id = intval($id);
|
397 |
+
$slide = $this->get($id);
|
398 |
+
if ($slide['generator_id'] > 0) {
|
399 |
+
$generatorModel = new N2SmartSliderGeneratorModel();
|
400 |
+
$slide['generator_id'] = $generatorModel->duplicate($slide['generator_id'], $targetSliderId);
|
401 |
+
}
|
402 |
+
|
403 |
+
$slide['slide'] = N2Data::json_encode(N2SmartSliderLayer::translateIds(json_decode($slide['slide'], true)));
|
404 |
+
|
405 |
+
$slideId = $this->_create($slide['title'] . ' - copy', $slide['slide'], $slide['description'], $slide['thumbnail'], $slide['published'], $slide['publish_up'], $slide['publish_down'], 0, $slide['params'], $targetSliderId, $slide['ordering'], $slide['generator_id']);
|
406 |
+
self::markChanged($slide['slider']);
|
407 |
+
return $slideId;
|
408 |
+
}
|
409 |
+
|
410 |
+
public function first($id) {
|
411 |
+
$slide = $this->get($id);
|
412 |
+
|
413 |
+
$this->db->update(array("first" => 0), array(
|
414 |
+
"slider" => $slide['slider']
|
415 |
+
));
|
416 |
+
|
417 |
+
$this->db->update(array(
|
418 |
+
"first" => 1
|
419 |
+
), array(
|
420 |
+
"id" => $id
|
421 |
+
));
|
422 |
+
|
423 |
+
self::markChanged($slide['slider']);
|
424 |
+
}
|
425 |
+
|
426 |
+
public function publish($id) {
|
427 |
+
|
428 |
+
self::markChanged(N2Request::getInt('sliderid'));
|
429 |
+
|
430 |
+
return $this->db->update(array(
|
431 |
+
"published" => 1
|
432 |
+
), array("id" => intval($id)));
|
433 |
+
}
|
434 |
+
|
435 |
+
public function unPublish($id) {
|
436 |
+
$this->db->update(array(
|
437 |
+
"published" => 0
|
438 |
+
), array(
|
439 |
+
"id" => intval($id)
|
440 |
+
));
|
441 |
+
|
442 |
+
self::markChanged(N2Request::getInt('sliderid'));
|
443 |
+
|
444 |
+
}
|
445 |
+
|
446 |
+
public function deleteBySlider($sliderid) {
|
447 |
+
|
448 |
+
$slides = $this->getAll($sliderid);
|
449 |
+
foreach ($slides as $slide) {
|
450 |
+
$this->delete($slide['id']);
|
451 |
+
}
|
452 |
+
self::markChanged($sliderid);
|
453 |
+
}
|
454 |
+
|
455 |
+
/**
|
456 |
+
* @param $sliderid
|
457 |
+
* @param $ids
|
458 |
+
*
|
459 |
+
* @return bool|int
|
460 |
+
*/
|
461 |
+
public function order($sliderid, $ids) {
|
462 |
+
if (is_array($ids) && count($ids) > 0) {
|
463 |
+
$i = 0;
|
464 |
+
foreach ($ids AS $id) {
|
465 |
+
$id = intval($id);
|
466 |
+
if ($id > 0) {
|
467 |
+
$update = $this->db->update(array(
|
468 |
+
'ordering' => $i,
|
469 |
+
), array(
|
470 |
+
"id" => $id,
|
471 |
+
"slider" => $sliderid
|
472 |
+
));
|
473 |
+
|
474 |
+
$i++;
|
475 |
+
}
|
476 |
+
}
|
477 |
+
|
478 |
+
self::markChanged($sliderid);
|
479 |
+
|
480 |
+
return $i;
|
481 |
+
}
|
482 |
+
return false;
|
483 |
+
}
|
484 |
+
|
485 |
+
public function markChanged($sliderid) {
|
486 |
+
N2SmartSliderHelper::getInstance()
|
487 |
+
->setSliderChanged($sliderid, 1);
|
488 |
+
}
|
489 |
+
|
490 |
+
public function makeStatic($slideId) {
|
491 |
+
$slideData = $this->get($slideId);
|
492 |
+
if ($slideData['generator_id'] > 0) {
|
493 |
+
$sliderObj = new N2SmartSlider($slideData['slider'], array());
|
494 |
+
$rootSlide = new N2SmartSliderSlide($sliderObj, $slideData);
|
495 |
+
$rootSlide->initGenerator(array());
|
496 |
+
$slides = $rootSlide->expandSlide();
|
497 |
+
|
498 |
+
// Shift the afterwards slides with the slides count
|
499 |
+
$this->db->query("UPDATE {$this->db->tableName} SET ordering = ordering + " . count($slides) . " WHERE slider = :sliderid AND ordering > :ordering", array(
|
500 |
+
":sliderid" => intval($slideData['slider']),
|
501 |
+
":ordering" => intval($slideData['ordering'])
|
502 |
+
), '');
|
503 |
+
|
504 |
+
$firstUsed = false;
|
505 |
+
$i = 1;
|
506 |
+
foreach ($slides AS $slide) {
|
507 |
+
$row = $slide->getRow();
|
508 |
+
// set the proper ordering
|
509 |
+
$row['ordering'] += $i;
|
510 |
+
if ($row['first']) {
|
511 |
+
// Make sure to mark only one slide as start slide
|
512 |
+
if ($firstUsed) {
|
513 |
+
$row['first'] = 0;
|
514 |
+
} else {
|
515 |
+
$firstUsed = true;
|
516 |
+
}
|
517 |
+
}
|
518 |
+
$this->db->insert($row);
|
519 |
+
$i++;
|
520 |
+
}
|
521 |
+
|
522 |
+
$this->db->query("UPDATE {$this->db->tableName} SET published = 0, first = 0 WHERE id = :id", array(
|
523 |
+
":id" => $slideData['id']
|
524 |
+
), '');
|
525 |
+
|
526 |
+
return count($slides);
|
527 |
+
} else {
|
528 |
+
return false;
|
529 |
+
}
|
530 |
+
}
|
531 |
+
|
532 |
+
/**
|
533 |
+
* @param $slide N2SmartSliderSlide
|
534 |
+
* @param $slider N2SmartSliderAbstract
|
535 |
+
* @param $widget
|
536 |
+
* @param $appType
|
537 |
+
*
|
538 |
+
* @throws Exception
|
539 |
+
*/
|
540 |
+
public static function box($slide, $slider, $widget, $appType) {
|
541 |
+
|
542 |
+
$lt = array();
|
543 |
+
|
544 |
+
if ($slide->isStatic()) {
|
545 |
+
$lt[] = NHtml::tag('div', array(
|
546 |
+
'class' => 'n2-button-tag n2-button n2-button-x-small n2-sidebar-list-bg n2-uc n2-h5',
|
547 |
+
), n2_('Static slide'));
|
548 |
+
} else {
|
549 |
+
|
550 |
+
$lt[] = NHtml::tag('div', array(
|
551 |
+
'class' => 'n2-button-tag n2-button n2-button-x-small n2-button-green n2-uc n2-h5 n2-slide-is-first',
|
552 |
+
), n2_('First'));
|
553 |
+
|
554 |
+
$lt[] = NHtml::tag('a', array(
|
555 |
+
'class' => 'n2-button n2-button-x-small n2-sidebar-list-bg n2-uc n2-h5 n2-slide-first',
|
556 |
+
'href' => $appType->router->createUrl(array(
|
557 |
+
'slides/first',
|
558 |
+
array(
|
559 |
+
'sliderid' => $slider->sliderId,
|
560 |
+
'slideid' => $slide->id
|
561 |
+
) + N2Form::tokenizeUrl()
|
562 |
+
))
|
563 |
+
), n2_('Set First'));
|
564 |
+
}
|
565 |
+
|
566 |
+
$rt = array();
|
567 |
+
|
568 |
+
$rt[] = NHtml::tag('a', array(
|
569 |
+
'class' => 'n2-button n2-button-small n2-sidebar-list-bg n2-sidebar-list-bg n2-slide-duplicate',
|
570 |
+
'href' => $appType->router->createUrl(array(
|
571 |
+
'slides/duplicate',
|
572 |
+
array(
|
573 |
+
'sliderid' => $slider->sliderId,
|
574 |
+
'slideid' => $slide->id
|
575 |
+
) + N2Form::tokenizeUrl()
|
576 |
+
))
|
577 |
+
), NHtml::tag('i', array('class' => 'n2-i n2-it n2-i-duplicate'), ''));
|
578 |
+
|
579 |
+
$rt[] = NHtml::tag('a', array(
|
580 |
+
'class' => 'n2-button n2-button-small n2-sidebar-list-bg n2-slide-delete',
|
581 |
+
'href' => $appType->router->createUrl(array(
|
582 |
+
'slides/delete',
|
583 |
+
array(
|
584 |
+
'sliderid' => $slider->sliderId,
|
585 |
+
'slideid' => $slide->id
|
586 |
+
) + N2Form::tokenizeUrl()
|
587 |
+
))
|
588 |
+
), NHtml::tag('i', array('class' => 'n2-i n2-it n2-i-delete'), ''));
|
589 |
+
|
590 |
+
$rt[] = NHtml::tag('div', array(
|
591 |
+
'class' => 'n2-button n2-button-small n2-button-blue n2-slide-selected',
|
592 |
+
), NHtml::tag('i', array('class' => 'n2-i n2-it n2-i-tick'), ''));
|
593 |
+
|
594 |
+
$rb = array();
|
595 |
+
|
596 |
+
if ($slide->hasGenerator()) {
|
597 |
+
$rb[] = NHtml::tag('a', array(
|
598 |
+
'class' => 'n2-button n2-button-x-small n2-sidebar-list-bg n2-uc n2-h5 n2-slide-generator' . (N2Request::getVar('generator_id') == $slide->generator_id ? ' n2-button-blue' : ''),
|
599 |
+
'href' => $appType->router->createUrl(array(
|
600 |
+
'generator/edit',
|
601 |
+
array(
|
602 |
+
'generator_id' => $slide->generator_id
|
603 |
+
)
|
604 |
+
))
|
605 |
+
), 'Edit generator');
|
606 |
+
}
|
607 |
+
|
608 |
+
$image = $slide->getThumbnail();
|
609 |
+
if (empty($image)) {
|
610 |
+
$image = '$system$/images/placeholder/image.png';
|
611 |
+
}
|
612 |
+
|
613 |
+
$editUrl = $appType->router->createUrl(array(
|
614 |
+
'slides/edit',
|
615 |
+
array(
|
616 |
+
'sliderid' => $slider->sliderId,
|
617 |
+
'slideid' => $slide->id
|
618 |
+
)
|
619 |
+
));
|
620 |
+
|
621 |
+
$widget->init("box", array(
|
622 |
+
'attributes' => array(
|
623 |
+
'class' => 'n2-box-slide n2-box-overflow' . ($slide->isFirst() ? ' n2-first-slide' : '') . ($slide->isCurrentlyEdited() ? ' n2-ss-slide-active' : ''),
|
624 |
+
'data-slideid' => $slide->id,
|
625 |
+
'data-editUrl' => $editUrl
|
626 |
+
),
|
627 |
+
'image' => N2ImageHelper::fixed($image),
|
628 |
+
'firstCol' => Nhtml::link($slide->getTitle() . ($slide->hasGenerator() ? ' [' . $slide->getSlideStat() . ']' : ''), $editUrl, array('class' => 'n2-h4')),
|
629 |
+
'lt' => implode('', $lt),
|
630 |
+
'rt' => implode('', $rt),
|
631 |
+
'rtAttributes' => array('class' => 'n2-on-hover'),
|
632 |
+
'rb' => implode('', $rb),
|
633 |
+
'placeholderContent' => NHtml::tag('a', array(
|
634 |
+
'class' => 'n2-slide-published' . ($slide->published ? ' n2-active' : ''),
|
635 |
+
'href' => $appType->router->createUrl(array(
|
636 |
+
'slides/publish',
|
637 |
+
array(
|
638 |
+
'sliderid' => $slider->sliderId,
|
639 |
+
'slideid' => $slide->id
|
640 |
+
) + N2Form::tokenizeUrl()
|
641 |
+
))
|
642 |
+
), NHtml::tag('i', array('class' => 'n2-i n2-it n2-i-unpublished'), ''))
|
643 |
+
));
|
644 |
+
}
|
645 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/Update.php
ADDED
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderUpdateModel
|
4 |
+
{
|
5 |
+
|
6 |
+
private $storage, $version;
|
7 |
+
|
8 |
+
public function __construct() {
|
9 |
+
$this->storage = N2Base::getApplication('smartslider')->storage;
|
10 |
+
$this->version = $this->storage->get('update', 'version');
|
11 |
+
}
|
12 |
+
|
13 |
+
public static function getInstance() {
|
14 |
+
static $ins;
|
15 |
+
if (!$ins) {
|
16 |
+
$ins = new N2SmartsliderUpdateModel();
|
17 |
+
}
|
18 |
+
return $ins;
|
19 |
+
}
|
20 |
+
|
21 |
+
public function getVersion() {
|
22 |
+
return $this->version;
|
23 |
+
}
|
24 |
+
|
25 |
+
public function setVersion($version) {
|
26 |
+
$this->storage->set('update', 'version', $version);
|
27 |
+
$this->storage->set('update', 'lastcheck', time());
|
28 |
+
$this->version = $version;
|
29 |
+
}
|
30 |
+
|
31 |
+
public function hasUpdate() {
|
32 |
+
$this->autoCheck();
|
33 |
+
if (version_compare(N2SS3::$version, $this->version) == -1) {
|
34 |
+
return true;
|
35 |
+
}
|
36 |
+
return false;
|
37 |
+
}
|
38 |
+
|
39 |
+
private function autoCheck() {
|
40 |
+
if (intval(N2SmartSliderSettings::get('autoupdatecheck', 1))) {
|
41 |
+
$time = $this->storage->get('update', 'lastcheck');
|
42 |
+
if (!$time || strtotime("+1 week", $time) < time()) {
|
43 |
+
$this->check();
|
44 |
+
}
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
public function check() {
|
49 |
+
|
50 |
+
$posts = array(
|
51 |
+
'action' => 'version'
|
52 |
+
);
|
53 |
+
$response = N2SS3::api($posts);
|
54 |
+
if ($response['status'] == 'OK') {
|
55 |
+
$this->setVersion($response['data']['latestVersion']);
|
56 |
+
}
|
57 |
+
return $response['status'];
|
58 |
+
}
|
59 |
+
|
60 |
+
public function lastCheck() {
|
61 |
+
$time = $this->storage->get('update', 'lastcheck');
|
62 |
+
if (empty($time)) {
|
63 |
+
return n2_('never');
|
64 |
+
}
|
65 |
+
return date("Y-m-d H:i", $time);
|
66 |
+
}
|
67 |
+
|
68 |
+
public function update() {
|
69 |
+
|
70 |
+
$posts = array(
|
71 |
+
'action' => 'update'
|
72 |
+
);
|
73 |
+
|
74 |
+
$response = N2SS3::api($posts);
|
75 |
+
if (is_string($response)) {
|
76 |
+
if (N2Platform::updateFromZip($response, N2SS3::getUpdateInfo())) {
|
77 |
+
return 'OK';
|
78 |
+
}
|
79 |
+
return 'UPDATE_ERROR';
|
80 |
+
}
|
81 |
+
|
82 |
+
return $response['status'];
|
83 |
+
}
|
84 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/backgroundanimation.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import(array(
|
3 |
+
'libraries.backgroundanimation.storage'
|
4 |
+
), 'smartslider');
|
5 |
+
|
6 |
+
class N2SmartSliderBackgroundAnimationModel extends N2SystemVisualModel
|
7 |
+
{
|
8 |
+
|
9 |
+
public $type = 'backgroundanimation';
|
10 |
+
|
11 |
+
public function __construct($tableName = null) {
|
12 |
+
|
13 |
+
parent::__construct($tableName);
|
14 |
+
$this->storage = N2Base::getApplication('smartslider')->storage;
|
15 |
+
}
|
16 |
+
|
17 |
+
protected function getPath() {
|
18 |
+
return dirname(__FILE__);
|
19 |
+
}
|
20 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/backgroundanimation/sets.xml
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="layout-sets" label="Layout sets" type="naked">
|
3 |
+
<param type="list" name="sets" default=""/>
|
4 |
+
</params>
|
5 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/element/halign.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.form.element.radiotab');
|
3 |
+
|
4 |
+
class N2ElementHAlign extends N2ElementRadioTab
|
5 |
+
{
|
6 |
+
|
7 |
+
protected $class = 'n2-form-element-radio-tab n2-form-element-icon-radio';
|
8 |
+
|
9 |
+
function generateOptions(&$xml) {
|
10 |
+
$options = array(
|
11 |
+
'left' => 'n2-i n2-it n2-i-horizontal-left',
|
12 |
+
'center' => 'n2-i n2-it n2-i-horizontal-center',
|
13 |
+
'right' => 'n2-i n2-it n2-i-horizontal-right'
|
14 |
+
);
|
15 |
+
$length = count($options) - 1;
|
16 |
+
|
17 |
+
$this->values = array();
|
18 |
+
$html = '';
|
19 |
+
$i = 0;
|
20 |
+
foreach ($options AS $value => $class) {
|
21 |
+
$this->values[] = $value;
|
22 |
+
|
23 |
+
$html .= NHtml::tag('div', array(
|
24 |
+
'class' => 'n2-radio-option' . ($this->isSelected($value) ? ' n2-active' : '') . ($i == 0 ? ' n2-first' : '') . ($i == $length ? ' n2-last' : '')
|
25 |
+
), NHtml::tag('i', array('class' => $class)));
|
26 |
+
$i++;
|
27 |
+
}
|
28 |
+
return $html;
|
29 |
+
}
|
30 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/element/items.php
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Form::importElement('hidden');
|
3 |
+
|
4 |
+
class N2ElementItems extends N2ElementHidden
|
5 |
+
{
|
6 |
+
|
7 |
+
|
8 |
+
function fetchElement() {
|
9 |
+
$items = array();
|
10 |
+
N2Plugin::callPlugin('ssitem', 'onNextendSliderItemList', array(&$items));
|
11 |
+
ob_start();
|
12 |
+
?>
|
13 |
+
<div id="smartslider-slide-toolbox-item" class="nextend-clearfix smartslider-slide-toolbox-view">
|
14 |
+
<?php
|
15 |
+
$itemModel = new N2SmartsliderItemModel();
|
16 |
+
|
17 |
+
foreach ($items AS $type => $item) {
|
18 |
+
echo NHtml::openTag("div", array(
|
19 |
+
"id" => "smartslider-slide-toolbox-item-type-{$type}",
|
20 |
+
"style" => "display:none",
|
21 |
+
"data-itemtemplate" => $item[1],
|
22 |
+
"data-itemvalues" => $item[3]
|
23 |
+
));
|
24 |
+
$itemModel->renderForm($type, $item);
|
25 |
+
echo NHtml::closeTag("div");
|
26 |
+
}
|
27 |
+
?>
|
28 |
+
</div>
|
29 |
+
<?php
|
30 |
+
return ob_get_clean();
|
31 |
+
}
|
32 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/element/layerpicker.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.form.element.hidden');
|
3 |
+
|
4 |
+
class N2ElementLayerPicker extends N2ElementHidden
|
5 |
+
{
|
6 |
+
|
7 |
+
public $_tooltip = true;
|
8 |
+
|
9 |
+
function fetchElement() {
|
10 |
+
|
11 |
+
N2JS::addInline('new NextendElementLayerPicker("' . $this->_id . '");');
|
12 |
+
|
13 |
+
return parent::fetchElement() . NHtml::tag('div', array('class' => 'n2-ss-layer-picker'), '<i class="n2-i n2-it n2-i-16 n2-i-layerlink"></i>');
|
14 |
+
}
|
15 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/element/sliderresponsive.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.form.element.subformImage');
|
3 |
+
|
4 |
+
class N2ElementSliderResponsive extends N2ElementSubformImage
|
5 |
+
{
|
6 |
+
|
7 |
+
var $_list = null;
|
8 |
+
|
9 |
+
function getOptions() {
|
10 |
+
if ($this->_list == null) {
|
11 |
+
$this->loadList();
|
12 |
+
}
|
13 |
+
$list = array_keys($this->_list);
|
14 |
+
return $list;
|
15 |
+
}
|
16 |
+
|
17 |
+
function getSubFormFolder($value) {
|
18 |
+
if ($this->_list == null) {
|
19 |
+
$this->loadList();
|
20 |
+
}
|
21 |
+
if (!isset($this->_list[$value])) list($value) = array_keys($this->_list);
|
22 |
+
return $this->_list[$value];
|
23 |
+
}
|
24 |
+
|
25 |
+
function loadList() {
|
26 |
+
$_list = array();
|
27 |
+
N2Plugin::callPlugin('ssresponsive', 'onResponsiveList', array(
|
28 |
+
&$_list,
|
29 |
+
&$this->labels
|
30 |
+
));
|
31 |
+
|
32 |
+
$this->_list = array();
|
33 |
+
|
34 |
+
$this->_list += $_list;
|
35 |
+
}
|
36 |
+
|
37 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/element/slidertype.php
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.form.element.subformImage');
|
3 |
+
|
4 |
+
class N2ElementSliderType extends N2ElementSubformImage
|
5 |
+
{
|
6 |
+
|
7 |
+
var $_list = null;
|
8 |
+
|
9 |
+
function renderSelector() {
|
10 |
+
|
11 |
+
N2JS::addInline('
|
12 |
+
new NextendElementSliderType(
|
13 |
+
"' . $this->_id . '"
|
14 |
+
);
|
15 |
+
');
|
16 |
+
|
17 |
+
return parent::renderSelector();
|
18 |
+
}
|
19 |
+
|
20 |
+
function getOptions() {
|
21 |
+
if ($this->_list == null) {
|
22 |
+
$this->loadList();
|
23 |
+
}
|
24 |
+
$list = array_keys($this->_list);
|
25 |
+
return $list;
|
26 |
+
}
|
27 |
+
|
28 |
+
function getSubFormfolder($value) {
|
29 |
+
if ($this->_list == null) {
|
30 |
+
$this->loadList();
|
31 |
+
}
|
32 |
+
if (!isset($this->_list[$value])) list($value) = array_keys($this->_list);
|
33 |
+
return $this->_list[$value];
|
34 |
+
}
|
35 |
+
|
36 |
+
function loadList() {
|
37 |
+
$_list = array();
|
38 |
+
N2Plugin::callPlugin('sstype', 'onTypeList', array(
|
39 |
+
&$_list,
|
40 |
+
&$this->labels
|
41 |
+
));
|
42 |
+
|
43 |
+
$this->_list = array();
|
44 |
+
|
45 |
+
/**
|
46 |
+
* We have to force the proper order in the slider types
|
47 |
+
*/
|
48 |
+
if (isset($_list['simple'])) {
|
49 |
+
$this->_list['simple'] = $_list['simple'];
|
50 |
+
unset($_list['simple']);
|
51 |
+
}
|
52 |
+
|
53 |
+
if (isset($_list['carousel'])) {
|
54 |
+
$this->_list['carousel'] = $_list['carousel'];
|
55 |
+
unset($_list['carousel']);
|
56 |
+
}
|
57 |
+
|
58 |
+
if (isset($_list['showcase'])) {
|
59 |
+
$this->_list['showcase'] = $_list['showcase'];
|
60 |
+
unset($_list['showcase']);
|
61 |
+
}
|
62 |
+
|
63 |
+
if (isset($_list['horizontalaccordion'])) {
|
64 |
+
$this->_list['horizontalaccordion'] = $_list['horizontalaccordion'];
|
65 |
+
unset($_list['horizontalaccordion']);
|
66 |
+
}
|
67 |
+
|
68 |
+
if (isset($_list['verticalaccordion'])) {
|
69 |
+
$this->_list['verticalaccordion'] = $_list['verticalaccordion'];
|
70 |
+
unset($_list['verticalaccordion']);
|
71 |
+
}
|
72 |
+
|
73 |
+
$this->_list += $_list;
|
74 |
+
}
|
75 |
+
|
76 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/element/valign.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.form.element.radiotab');
|
3 |
+
|
4 |
+
class N2ElementVAlign extends N2ElementRadioTab
|
5 |
+
{
|
6 |
+
|
7 |
+
protected $class = 'n2-form-element-radio-tab n2-form-element-icon-radio';
|
8 |
+
|
9 |
+
function generateOptions(&$xml) {
|
10 |
+
$options = array(
|
11 |
+
'top' => 'n2-i n2-it n2-i-vertical-top',
|
12 |
+
'middle' => 'n2-i n2-it n2-i-vertical-middle',
|
13 |
+
'bottom' => 'n2-i n2-it n2-i-vertical-bottom'
|
14 |
+
);
|
15 |
+
$length = count($options) - 1;
|
16 |
+
|
17 |
+
$this->values = array();
|
18 |
+
$html = '';
|
19 |
+
$i = 0;
|
20 |
+
foreach ($options AS $value => $class) {
|
21 |
+
$this->values[] = $value;
|
22 |
+
|
23 |
+
$html .= NHtml::tag('div', array(
|
24 |
+
'class' => 'n2-radio-option' . ($this->isSelected($value) ? ' n2-active' : '') . ($i == 0 ? ' n2-first' : '') . ($i == $length ? ' n2-last' : '')
|
25 |
+
), NHtml::tag('i', array('class' => $class)));
|
26 |
+
$i++;
|
27 |
+
}
|
28 |
+
return $html;
|
29 |
+
}
|
30 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/generator_edit.xml
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="generator" label="Generator settings">
|
3 |
+
<param type="number" name="record-slides" label="Slides" default="1" style="width:30px;">
|
4 |
+
<unit>slides</unit>
|
5 |
+
</param>
|
6 |
+
<param type="button" name="record-viewer" label="Record viewer" default="View records"/>
|
7 |
+
<param type="number" name="cache-expiration" label="Cache expiration" default="24" style="width:30px;">
|
8 |
+
<unit>hours</unit>
|
9 |
+
</param>
|
10 |
+
<param type="token"/>
|
11 |
+
</params>
|
12 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/import/server.xml
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="import-from-server" label="Import slider from server">
|
3 |
+
<param name="import-file" type="tmplist" extension="ss3" label="Import file"/>
|
4 |
+
<param name="delete" type="onoff" label="Delete file after import" default="0"/>
|
5 |
+
<param type="token"/>
|
6 |
+
</params>
|
7 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/import/upload.xml
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="import-by-upload" label="Import slider by upload">
|
3 |
+
<param name="import-file" type="upload" label="Import file"/>
|
4 |
+
<param type="token"/>
|
5 |
+
</params>
|
6 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/layer.xml
ADDED
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="layer-item-animation-tabs" classes="n2-sidebar-tab-switcher n2-tab-bordered n2-sidebar-tab-bg" type="tabbedsidebar" active="1" underlined="1">
|
3 |
+
<params name="item" type="grouppedsidebar" label="Item">
|
4 |
+
<params name="itemproperties" type="raw" label="Item properties" hidetitle="1">
|
5 |
+
<param name="items" type="items" label="" default=""/>
|
6 |
+
</params>
|
7 |
+
</params>
|
8 |
+
<params name="position" type="grouppedsidebar" label="Layer">
|
9 |
+
<params name="layerproperties" label="Layer properties" hidetitle="1">
|
10 |
+
<param name="crop" type="radio" label="Crop" default="visible">
|
11 |
+
<option value="visible">Off</option>
|
12 |
+
<option value="hidden">On</option>
|
13 |
+
<option value="auto">Scroll</option>
|
14 |
+
<option value="mask">Mask</option>
|
15 |
+
</param>
|
16 |
+
<param name="inneralign" type="radio" label="Inner align" default="left">
|
17 |
+
<option value="left">Left</option>
|
18 |
+
<option value="center">Center</option>
|
19 |
+
<option value="right">Right</option>
|
20 |
+
</param>
|
21 |
+
<param class="n2-expert" type="group" label="Font">
|
22 |
+
<param name="font-size" type="numberautocomplete" label="#Size modifier" default="100" style="width:32px" values="60,80,100,120,140,160,180">
|
23 |
+
<unit value="%">%</unit>
|
24 |
+
</param>
|
25 |
+
<param name="adaptive-font" type="onoff" label="Adaptive sizing" default="0"/></param>
|
26 |
+
<param class="n2-expert" type="group" label="#Align">
|
27 |
+
<param type="halign" name="align" label="Horizontal" default="left"/>
|
28 |
+
<param type="valign" name="valign" label="Vertical" default="top"/></param>
|
29 |
+
<param type="group" label="Position">
|
30 |
+
<param name="left" type="text" label="#X" default="" style="width:32px;">
|
31 |
+
<unit value="px">px</unit>
|
32 |
+
</param>
|
33 |
+
<param name="top" type="text" label="#Y" default="" style="width:32px;">
|
34 |
+
<unit value="px">px</unit>
|
35 |
+
</param>
|
36 |
+
<param name="responsive-position" type="onoff" label="Responsive" default="1"/></param>
|
37 |
+
<param type="group" label="Size">
|
38 |
+
<param name="width" type="text" label="#Width" default="" style="width:32px;">
|
39 |
+
<unit value="px">px</unit>
|
40 |
+
</param>
|
41 |
+
<param name="height" type="text" label="#Height" default="" style="width:32px;">
|
42 |
+
<unit value="px">px</unit>
|
43 |
+
</param>
|
44 |
+
<param name="responsive-size" type="onoff" label="Responsive" default="1"/></param>
|
45 |
+
<param type="text" name="id" label="ID" default="" class="n2-hidden"/>
|
46 |
+
<param type="group" label="Relative point" class="n2-expert">
|
47 |
+
<param type="layerpicker" name="parentid" label="Layer" default=""/>
|
48 |
+
<param type="halign" name="parentalign" label="#Horizontal" default="left"/>
|
49 |
+
<param type="valign" name="parentvalign" label="#Vertical" default="top"/></param>
|
50 |
+
<param type="group" label="Show on">
|
51 |
+
<param name="show-desktop-portrait" type="onoff" label="Desktop portrait" default="1"/>
|
52 |
+
<param name="show-desktop-landscape" type="onoff" label="Desktop landscape" default="1"/>
|
53 |
+
<param name="show-tablet-portrait" type="onoff" label="Tablet portrait" default="1"/>
|
54 |
+
<param name="show-tablet-landscape" type="onoff" label="Tablet landscape" default="1"/>
|
55 |
+
<param name="show-mobile-portrait" type="onoff" label="Mobile portrait" default="1"/>
|
56 |
+
<param name="show-mobile-landscape" type="onoff" label="Mobile landscape" default="1"/></param>
|
57 |
+
<param name="resettodesktop" type="button" label="Reset position" default="Reset"/>
|
58 |
+
</params>
|
59 |
+
</params>
|
60 |
+
</params>
|
61 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/layout/sets.xml
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="layout-sets" label="Layout sets" type="naked">
|
3 |
+
<param type="list" name="sets" default=""/>
|
4 |
+
</params>
|
5 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/license.xml
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="license" label="License">
|
3 |
+
<param name="license" type="text" label="License key" default="" style="width: 300px;"/>
|
4 |
+
<param type="token"/>
|
5 |
+
</params>
|
6 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/multigenerator.xml
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="generator" label="Generator settings">
|
3 |
+
<param type="number" name="record-slides" label="Slides" default="1" style="width:30px;">
|
4 |
+
<unit>slides</unit>
|
5 |
+
</param>
|
6 |
+
<param type="number" name="cache-expiration" label="Cache expiration" default="24" style="width:30px;">
|
7 |
+
<unit>hours</unit>
|
8 |
+
</param>
|
9 |
+
<param type="button" name="record-viewer" label="Record viewer" default="View records"/>
|
10 |
+
<param type="token"/>
|
11 |
+
</params>
|
12 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/settings/default.xml
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="general" label="General settings">
|
3 |
+
<param type="token"/>
|
4 |
+
<param type="onoff" name="beacon" label="Show help beacon" default="1"/>
|
5 |
+
<param type="onoff" name="autoupdatecheck" label="Automatic update check" default="1"/>
|
6 |
+
<param type="mixed" label="Translate url" name="translate-url" default="|*|">
|
7 |
+
<param type="text" label="From" style="width:200px;"/>
|
8 |
+
<param type="text" label="To" style="width:200px;"/>
|
9 |
+
</param>
|
10 |
+
<param type="textarea" name="external-css-files" label="Additional CSS files" default=""
|
11 |
+
style2="width:400px; height: 100px; resize: vertical;" class="n2-hidden"/>
|
12 |
+
<param type="onoff" name="hardware-acceleration" label="Hardware acceleration on sliders" default="1"/>
|
13 |
+
</params>
|
14 |
+
<params name="reponsive" label="Responsive mode">
|
15 |
+
<param type="radio" label="Based on" name="responsive-basedon" default="combined">
|
16 |
+
<option value="device">Real device detection</option>
|
17 |
+
<option value="screen">Maximum screen width</option>
|
18 |
+
<option value="combined">Combined</option>
|
19 |
+
</param>
|
20 |
+
<param type="group" label="Maximum screen width">
|
21 |
+
<param type="text" name="responsive-screen-width-desktop-portrait" label="Desktop portrait"
|
22 |
+
style="width:40px;" default="1200">
|
23 |
+
<unit>px</unit>
|
24 |
+
</param>
|
25 |
+
<param type="text" name="responsive-screen-width-tablet-landscape" label="Tablet landscape"
|
26 |
+
style="width:40px;" default="1024">
|
27 |
+
<unit>px</unit>
|
28 |
+
</param>
|
29 |
+
<param type="text" name="responsive-screen-width-tablet-portrait" label="Tablet portrait"
|
30 |
+
style="width:40px;" default="800">
|
31 |
+
<unit>px</unit>
|
32 |
+
</param>
|
33 |
+
<param type="text" name="responsive-screen-width-mobile-LANDSCAPE" label="Mobile landscape"
|
34 |
+
style="width:40px;" default="740">
|
35 |
+
<unit>px</unit>
|
36 |
+
</param>
|
37 |
+
<param type="text" name="responsive-screen-width-mobile-portrait" label="Mobile portrait"
|
38 |
+
style="width:40px;" default="440">
|
39 |
+
<unit>px</unit>
|
40 |
+
</param>
|
41 |
+
</param>
|
42 |
+
<param type="group" label="Default width percentage">
|
43 |
+
<param type="number" name="responsive-default-ratio-tablet-portrait" label="Tablet portrait"
|
44 |
+
style="width:40px;" default="70" max="100" min="0">
|
45 |
+
<unit>%</unit>
|
46 |
+
</param>
|
47 |
+
<param type="number" name="responsive-default-ratio-mobile-portrait" label="Mobile portrait"
|
48 |
+
style="width:40px;" default="50" max="100" min="0">
|
49 |
+
<unit>%</unit>
|
50 |
+
</param>
|
51 |
+
</param>
|
52 |
+
</params>
|
53 |
+
<params name="cache" label="Cache">
|
54 |
+
<param type="button" label="Clear" name="clear-cache" default="Clear cache">
|
55 |
+
<app>smartslider</app>
|
56 |
+
<queries>
|
57 |
+
<controller>settings</controller>
|
58 |
+
<action>clearcache</action>
|
59 |
+
</queries>
|
60 |
+
</param>
|
61 |
+
</params>
|
62 |
+
|
63 |
+
<params name="tidy" label="Tidy settings">
|
64 |
+
<param type="list" default="utf8" name="tidy-input-encoding" label="Input encoding">
|
65 |
+
<option value="raw">raw</option>
|
66 |
+
<option value="ascii">ascii</option>
|
67 |
+
<option value="latin0">latin0</option>
|
68 |
+
<option value="latin1">latin1</option>
|
69 |
+
<option value="utf8">utf8</option>
|
70 |
+
<option value="iso2022">iso2022</option>
|
71 |
+
<option value="mac">mac</option>
|
72 |
+
<option value="win1252">win1252</option>
|
73 |
+
<option value="ibm858">ibm858</option>
|
74 |
+
<option value="utf16le">utf16le</option>
|
75 |
+
<option value="utf16be">utf16be</option>
|
76 |
+
<option value="utf16">utf16</option>
|
77 |
+
<option value="big5">big5</option>
|
78 |
+
<option value="shiftjis">shiftjis</option>
|
79 |
+
</param>
|
80 |
+
<param type="list" default="utf8" name="tidy-output-encoding" label="Output encoding">
|
81 |
+
<option value="raw">raw</option>
|
82 |
+
<option value="ascii">ascii</option>
|
83 |
+
<option value="latin0">latin0</option>
|
84 |
+
<option value="latin1">latin1</option>
|
85 |
+
<option value="utf8">utf8</option>
|
86 |
+
<option value="iso2022">iso2022</option>
|
87 |
+
<option value="mac">mac</option>
|
88 |
+
<option value="win1252">win1252</option>
|
89 |
+
<option value="ibm858">ibm858</option>
|
90 |
+
<option value="utf16le">utf16le</option>
|
91 |
+
<option value="utf16be">utf16be</option>
|
92 |
+
<option value="utf16">utf16</option>
|
93 |
+
<option value="big5">big5</option>
|
94 |
+
<option value="shiftjis">shiftjis</option>
|
95 |
+
</param>
|
96 |
+
</params>
|
97 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/settings/joomla.xml
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="joomla" label="Joomla settings">
|
3 |
+
<param name="license" type="text" label="License" value=""/>
|
4 |
+
<param type="radio" name="imageurl" label="Image URL" default="1">
|
5 |
+
<option value="0">Absolute</option>
|
6 |
+
<option value="1">Relative</option>
|
7 |
+
</param>
|
8 |
+
<param name="acl" type="joomlacomponentoptions" component="com_smartslider3" label="Component options"
|
9 |
+
default=""/>
|
10 |
+
<param name="loadposition" type="onoff" label="Load module position" default="0"/>
|
11 |
+
</params>
|
12 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/slide.xml
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="slide" label="Slide settings">
|
3 |
+
<param name="title" type="text" label="Name" default="Slide 1" style="width: 400px;"/>
|
4 |
+
<param name="description" type="textarea" label="Description" default="" style="display: block;" style2="width:100%; resize: vertical; height: 50px;"/>
|
5 |
+
<param type="group" name="Properties" class="n2-expert">
|
6 |
+
<param name="published" type="onoff" label="Published" default="1"/>
|
7 |
+
<param name="first" type="onoff" label="First" default="0" class="n2-hidden"/>
|
8 |
+
<param type="onoff" name="static-slide" label="Static slide" default="0" class="n2-expert"/></param>
|
9 |
+
<param name="publishdates" type="mixed" label="Published between" class="n2-expert" default="0000-00-00 00:00:00|*|0000-00-00 00:00:00">
|
10 |
+
<param type="date" label="Publish up"/>
|
11 |
+
<param type="date" label="Publish down"/></param>
|
12 |
+
<param name="thumbnail" type="image" label="Thumbnail url" default=""/>
|
13 |
+
<param type="group" label="Background">
|
14 |
+
<param name="backgroundColor" type="color" alpha="1" label="Color" default="ffffff00"/>
|
15 |
+
<param name="backgroundImage" type="imagemanager" label="Image" default=""/>
|
16 |
+
<param name="backgroundImageOpacity" label="Opacity" type="numberautocomplete" default="100" style="width: 22px;" min="0" max="100" values="100,80,60,40,20,0">
|
17 |
+
<unit value="%">%</unit>
|
18 |
+
</param>
|
19 |
+
<param name="backgroundMode" type="list" label="Fill mode" default="fill" translateable="1">
|
20 |
+
<option value="fill">Fill</option>
|
21 |
+
<option value="fit">Fit</option>
|
22 |
+
<option value="stretch">Stretch</option>
|
23 |
+
<option value="center">Center</option>
|
24 |
+
<option value="tile">Tile</option>
|
25 |
+
</param>
|
26 |
+
</param>
|
27 |
+
<param type="mixed" name="link" label="Link" default="|*|_self">
|
28 |
+
<param type="url" label="Link"/>
|
29 |
+
<param type="list" label="Target" translateable="1">
|
30 |
+
<option value="_self">Self</option>
|
31 |
+
<option value="_blank">Blank</option>
|
32 |
+
</param>
|
33 |
+
</param>
|
34 |
+
<param name="slide-duration" type="text" label="Slide duration" style="width:40px;" default="0">
|
35 |
+
<unit value="ms">ms</unit>
|
36 |
+
</param>
|
37 |
+
<param name="slide" type="hidden" label="Slide" default="W10=" class="n2-hidden"/>
|
38 |
+
</params>
|
39 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/slide_generator.xml
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="generator-parameters" label="Generator">
|
3 |
+
<param type="number" name="record-slides" label="Slides" default="1" style="width:30px;">
|
4 |
+
<unit>slides</unit>
|
5 |
+
</param>
|
6 |
+
</params>
|
7 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/slider.xml
ADDED
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="slider-settings" type="tabbed" active="1" underlined="1">
|
3 |
+
<params name="general" type="groupped" label="General">
|
4 |
+
<params name="slider" label="Slider settings" hidetitle="1">
|
5 |
+
<param name="title" type="text" label="Name" default="Slider" style="width:400px;"/>
|
6 |
+
<param label="Controls" type="group">
|
7 |
+
<param name="controlsScroll" type="onoff" label="Mouse scroll" default="0"/>
|
8 |
+
<param name="controlsDrag" type="onoff" label="Mouse drag" default="1"/>
|
9 |
+
<param name="controlsTouch" type="radio" label="Touch" default="horizontal">
|
10 |
+
<option value="0">Disabled</option>
|
11 |
+
<option value="horizontal">Horizontal</option>
|
12 |
+
<option value="vertical">Vertical</option>
|
13 |
+
</param>
|
14 |
+
<param name="controlsKeyboard" type="onoff" label="Keyboard" default="1"/></param>
|
15 |
+
<param name="align" type="radio" label="Align" default="normal">
|
16 |
+
<option value="normal">Normal</option>
|
17 |
+
<option value="left">Left</option>
|
18 |
+
<option value="center">Center</option>
|
19 |
+
<option value="right">Right</option>
|
20 |
+
</param>
|
21 |
+
</params>
|
22 |
+
<params name="slidertype" label="Slider Type" class="n2-expert">
|
23 |
+
<param name="type" type="slidertype" ajaxurl="slider/renderform" label="Type" default="simple" file="slider.xml"/>
|
24 |
+
</params>
|
25 |
+
<params name="slidertypeplaceholder" label="Slider Type placeholder" id="nextend-type-panel" type="placeholder"></params>
|
26 |
+
</params>
|
27 |
+
<params name="size" type="groupped" label="Size">
|
28 |
+
<params name="slider-responsive" label="Responsive" hidetitle="1">
|
29 |
+
<param type="group" label="Slider size">
|
30 |
+
<param name="width" type="numberautocomplete" label="Width" default="900" style="width:35px" values="1920,1400,1000,800,600,400">
|
31 |
+
<unit>px</unit>
|
32 |
+
</param>
|
33 |
+
<param name="height" type="numberautocomplete" label="Height" default="500" style="width:35px" values="800,600,500,400,300,200">
|
34 |
+
<unit>px</unit>
|
35 |
+
</param>
|
36 |
+
</param>
|
37 |
+
<param type="number" name="fontsize" label="Font size" default="16" style="width:20px" class="n2-hidden">
|
38 |
+
<unit>px</unit>
|
39 |
+
</param>
|
40 |
+
<param name="margin" label="Margin" type="mixed" default="0|*|0|*|0|*|0" translateable="0">
|
41 |
+
<param type="text" style="width: 22px;" label="Top">
|
42 |
+
<unit value="px">px</unit>
|
43 |
+
</param>
|
44 |
+
<param type="text" style="width: 22px;" label="Right">
|
45 |
+
<unit value="px">px</unit>
|
46 |
+
</param>
|
47 |
+
<param type="text" style="width: 22px;" label="Bottom">
|
48 |
+
<unit value="px">px</unit>
|
49 |
+
</param>
|
50 |
+
<param type="text" style="width: 22px;" label="Left">
|
51 |
+
<unit value="px">px</unit>
|
52 |
+
</param>
|
53 |
+
</param>
|
54 |
+
</params>
|
55 |
+
<params name="slider-responsive1" label="Responsive mode">
|
56 |
+
<param name="responsive-mode" type="sliderresponsive" ajaxurl="slider/renderform" default="auto" file="responsive.xml"/>
|
57 |
+
</params>
|
58 |
+
<params name="slider-responsive-placeholder" id="nextend-responsive-mode-panel" type="placeholder"/></params>
|
59 |
+
<params name="autoplay" type="groupped" label="Autoplay">
|
60 |
+
<params name="autoplay" label="Autoplay settings" hidetitle="1">
|
61 |
+
<param type="group" label="Autoplay">
|
62 |
+
<param name="autoplay" type="onoff" label="Enabled" default="0"/>
|
63 |
+
<param name="autoplayDuration" type="number" label="Interval" default="8000" style="width:35px;">
|
64 |
+
<unit>ms</unit>
|
65 |
+
</param>
|
66 |
+
</param>
|
67 |
+
<param type="group" label="Stop autoplay on">
|
68 |
+
<param name="autoplayStopClick" type="onoff" label="Click" default="1"/>
|
69 |
+
<param name="autoplayStopMouse" type="list" label="Mouse" default="0" translateable="1">
|
70 |
+
<option value="0">Off</option>
|
71 |
+
<option value="enter">Enter</option>
|
72 |
+
<option value="leave">Leave</option>
|
73 |
+
</param>
|
74 |
+
<param name="autoplayStopMedia" type="onoff" label="Media started" default="1"/></param>
|
75 |
+
</params>
|
76 |
+
</params>
|
77 |
+
</params>
|
78 |
+
<params name="widgets" label="Widgets" type="raw" hidetitle="1">
|
79 |
+
<param name="widgets" type="pluginmatrix" label="" group="sswidget" method="onWidgetList" default="arrow"/>
|
80 |
+
</params>
|
81 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/forms/translateurl.xml
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="slider" label="Configuration">
|
3 |
+
<param type="mixed" label="Translate url" name="translateurl" default="|*|">
|
4 |
+
<param type="text" label="From"/>
|
5 |
+
<param type="text" label="To"/>
|
6 |
+
</param>
|
7 |
+
</params>
|
8 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/models/generator.php
ADDED
@@ -0,0 +1,357 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import("libraries.slider.abstract", "smartslider");
|
3 |
+
|
4 |
+
class N2SmartsliderGeneratorModel extends N2Model
|
5 |
+
{
|
6 |
+
|
7 |
+
private static $layouts = array(
|
8 |
+
'image' => '{"title":"{title}","description":"","thumbnail":"{thumbnail}","backgroundColor":"ffffff00","backgroundImage":"{image}","backgroundAlt":"","backgroundMode":"fill","backgroundVideoMp4":"","backgroundVideoWebm":"","backgroundVideoOgg":"","backgroundVideoMuted":"1","backgroundVideoLoop":"1","backgroundVideoMode":"fill","link":"|*|_self","slidedurationin":"0","slidedurationout":"0","slide":[]}',
|
9 |
+
'image_extended' => '{"title":"{title}","description":"{description}","thumbnail":"{image}","backgroundColor":"ffffff00","backgroundImage":"{image}","backgroundAlt":"","backgroundMode":"fill","backgroundVideoMp4":"","backgroundVideoWebm":"","backgroundVideoOgg":"","backgroundVideoMuted":"1","backgroundVideoLoop":"1","backgroundVideoMode":"fill","link":"|*|_self","slidedurationin":"0","slidedurationout":"0","slide":[]}',
|
10 |
+
'article' => '{"title":"{title}","description":"{description}","thumbnail":"{thumbnail}","backgroundColor":"ffffff00","backgroundImage":"{featured_image}","backgroundAlt":"","backgroundMode":"fill","backgroundVideoMp4":"","backgroundVideoWebm":"","backgroundVideoOgg":"","backgroundVideoMuted":"1","backgroundVideoLoop":"1","backgroundVideoMode":"fill","link":"{url}|*|_self","slidedurationin":"0","slidedurationout":"0","slide":[]}',
|
11 |
+
'youtube' => '{"title":"{title/1}","description":"{removehtml(description/1)}","thumbnail":"{thumbnail_medium/1}","backgroundColor":"ffffff00","backgroundImage":"","backgroundAlt":"","backgroundMode":"fill","backgroundVideoMp4":"","backgroundVideoWebm":"","backgroundVideoOgg":"","backgroundVideoMuted":"1","backgroundVideoLoop":"1","backgroundVideoMode":"fill","link":"|*|_self","slidedurationin":"0","slidedurationout":"0","simplebganimation":"","kenburns":"50|*|50|*|","slide":[{"style":"position: absolute; z-index: 1;left:0%;top:0%;width:100%;height:100%;","animations":{},"name":"youtube","crop":"visible","align":"left","desktopportrait":1,"desktoplandscape":1,"tabletportrait":1,"tabletlandscape":1,"mobileportrait":1,"mobilelandscape":1,"desktopportraitleft":0,"desktopportraittop":0,"desktopportraitwidth":100,"desktopportraitheight":100,"items":[{"type":"youtube","values":{"youtubeurl":"{video_id/1}","volume":"-1","autoplay":"1","center":"0","loop":"0","theme":"dark","related":"0","vq":"default"}}]}]}'
|
12 |
+
);
|
13 |
+
|
14 |
+
private static function getLayout($type) {
|
15 |
+
|
16 |
+
|
17 |
+
$slide = new N2SmartSliderSlideHelper();
|
18 |
+
|
19 |
+
switch ($type) {
|
20 |
+
case 'image':
|
21 |
+
$slide->set('title', "{title}")
|
22 |
+
->set('thumbnail', "{thumbnail}")
|
23 |
+
->set('backgroundImage', "{image}");
|
24 |
+
break;
|
25 |
+
|
26 |
+
case 'image_extended':
|
27 |
+
$slide->set('title', "{title}")
|
28 |
+
->set('thumbnail', "{thumbnail}")
|
29 |
+
->set('backgroundImage', "{image}");
|
30 |
+
|
31 |
+
new N2SmartSliderItemHelper($slide, 'heading', array(
|
32 |
+
'desktopportraitleft' => 30,
|
33 |
+
'desktopportraittop' => -12,
|
34 |
+
'desktopportraitalign' => 'left',
|
35 |
+
'desktopportraitvalign' => 'bottom'
|
36 |
+
), array(
|
37 |
+
'heading' => '{title/1}'
|
38 |
+
));
|
39 |
+
break;
|
40 |
+
|
41 |
+
case 'article':
|
42 |
+
$slide->set('title', "{title}")
|
43 |
+
->set('description', "{description}")
|
44 |
+
->set('link', '{url}|*|_self')
|
45 |
+
->set('thumbnail', "{thumbnail}")
|
46 |
+
->set('backgroundImage', "{image}");
|
47 |
+
|
48 |
+
new N2SmartSliderItemHelper($slide, 'heading', array(
|
49 |
+
'desktopportraitleft' => 30,
|
50 |
+
'desktopportraittop' => -12,
|
51 |
+
'desktopportraitalign' => 'left',
|
52 |
+
'desktopportraitvalign' => 'bottom'
|
53 |
+
), array(
|
54 |
+
'heading' => '{title}'
|
55 |
+
));
|
56 |
+
break;
|
57 |
+
|
58 |
+
case 'product':
|
59 |
+
$slide->set('title', "{title}")
|
60 |
+
->set('description', "{description}")
|
61 |
+
->set('link', '{url}|*|_self')
|
62 |
+
->set('thumbnail', "{thumbnail}")
|
63 |
+
->set('backgroundImage', "{image}");
|
64 |
+
|
65 |
+
new N2SmartSliderItemHelper($slide, 'heading', array(
|
66 |
+
'desktopportraitleft' => 30,
|
67 |
+
'desktopportraittop' => -12,
|
68 |
+
'desktopportraitalign' => 'left',
|
69 |
+
'desktopportraitvalign' => 'bottom'
|
70 |
+
), array(
|
71 |
+
'heading' => '{title}'
|
72 |
+
));
|
73 |
+
|
74 |
+
new N2SmartSliderItemHelper($slide, 'heading', array(
|
75 |
+
'desktopportraitleft' => -30,
|
76 |
+
'desktopportraittop' => -12,
|
77 |
+
'desktopportraitalign' => 'right',
|
78 |
+
'desktopportraitvalign' => 'bottom'
|
79 |
+
), array(
|
80 |
+
'heading' => '{price}'
|
81 |
+
));
|
82 |
+
break;
|
83 |
+
|
84 |
+
case 'event':
|
85 |
+
$slide->set('title', "{title}")
|
86 |
+
->set('description', "{description}")
|
87 |
+
->set('link', '{url}|*|_self')
|
88 |
+
->set('thumbnail', "{thumbnail}")
|
89 |
+
->set('backgroundImage', "{image}");
|
90 |
+
|
91 |
+
new N2SmartSliderItemHelper($slide, 'heading', array(
|
92 |
+
'desktopportraitleft' => 30,
|
93 |
+
'desktopportraittop' => -12,
|
94 |
+
'desktopportraitalign' => 'left',
|
95 |
+
'desktopportraitvalign' => 'bottom'
|
96 |
+
), array(
|
97 |
+
'heading' => '{title}'
|
98 |
+
));
|
99 |
+
|
100 |
+
new N2SmartSliderItemHelper($slide, 'heading', array(
|
101 |
+
'desktopportraitleft' => -30,
|
102 |
+
'desktopportraittop' => -12,
|
103 |
+
'desktopportraitalign' => 'right',
|
104 |
+
'desktopportraitvalign' => 'bottom'
|
105 |
+
), array(
|
106 |
+
'heading' => '{start_date}'
|
107 |
+
));
|
108 |
+
break;
|
109 |
+
|
110 |
+
case 'youtube':
|
111 |
+
$slide->set('title', "{title}")
|
112 |
+
->set('description', "{description}")
|
113 |
+
->set('thumbnail', "{thumbnail}");
|
114 |
+
|
115 |
+
new N2SmartSliderItemHelper($slide, 'youtube', array(
|
116 |
+
'desktopportraitwidth' => '100%',
|
117 |
+
'desktopportraitheight' => '100%',
|
118 |
+
'desktopportraitleft' => 0,
|
119 |
+
'desktopportraittop' => 0
|
120 |
+
), array(
|
121 |
+
'youtubeurl' => '{video_url}',
|
122 |
+
'image' => ''
|
123 |
+
));
|
124 |
+
break;
|
125 |
+
|
126 |
+
case 'social_post':
|
127 |
+
$slide->set('title', "{title}")
|
128 |
+
->set('description', "{description}")
|
129 |
+
->set('link', '{url}|*|_self')
|
130 |
+
->set('thumbnail', "{author_image}");
|
131 |
+
|
132 |
+
new N2SmartSliderItemHelper($slide, 'heading', array(
|
133 |
+
'desktopportraittop' => 20,
|
134 |
+
'desktopportraitalign' => 'center',
|
135 |
+
'desktopportraitvalign' => 'top',
|
136 |
+
'desktopportraitwidth' => '80%',
|
137 |
+
), array(
|
138 |
+
'nowrap' => 0,
|
139 |
+
'heading' => '{message}'
|
140 |
+
));
|
141 |
+
|
142 |
+
new N2SmartSliderItemHelper($slide, 'image', array(
|
143 |
+
'desktopportraittop' => 50,
|
144 |
+
'desktopportraitwidth' => 200,
|
145 |
+
'desktopportraitheight' => 200
|
146 |
+
), array(
|
147 |
+
'image' => '{author_image}'
|
148 |
+
));
|
149 |
+
|
150 |
+
new N2SmartSliderItemHelper($slide, 'button', array(
|
151 |
+
'desktopportraittop' => 150
|
152 |
+
), array(
|
153 |
+
'content' => '{url_label}'
|
154 |
+
));
|
155 |
+
break;
|
156 |
+
|
157 |
+
default:
|
158 |
+
return array(
|
159 |
+
'title' => 'title',
|
160 |
+
'slide' => array(),
|
161 |
+
'description' => '',
|
162 |
+
'thumbnail' => '',
|
163 |
+
'published' => 1
|
164 |
+
);
|
165 |
+
}
|
166 |
+
return $slide->toArray();
|
167 |
+
}
|
168 |
+
|
169 |
+
public function __construct() {
|
170 |
+
parent::__construct("nextend2_smartslider3_generators");
|
171 |
+
}
|
172 |
+
|
173 |
+
public function createGenerator($sliderId, $params) {
|
174 |
+
|
175 |
+
$data = new N2Data($params);
|
176 |
+
|
177 |
+
unset($params['type']);
|
178 |
+
unset($params['group']);
|
179 |
+
unset($params['record-slides']);
|
180 |
+
|
181 |
+
try {
|
182 |
+
$generatorId = $this->_create($data->get('type'), $data->get('group'), json_encode($params));
|
183 |
+
|
184 |
+
$info = $this->getGeneratorInfo($data->get('group'), $data->get('type'));
|
185 |
+
$slideData = self::getLayout($info->type);
|
186 |
+
/*if (self::$layouts[$info->type]) {
|
187 |
+
$slideData = json_decode(self::$layouts[$info->type], true);
|
188 |
+
} else {
|
189 |
+
$slideData = array(
|
190 |
+
'title' => 'title',
|
191 |
+
'slide' => array(),
|
192 |
+
'description' => '',
|
193 |
+
'thumbnail' => '',
|
194 |
+
'published' => 1
|
195 |
+
);
|
196 |
+
}*/
|
197 |
+
|
198 |
+
$slideData['published'] = '1';
|
199 |
+
$slideData['publishdates'] = '|*|';
|
200 |
+
$slideData['generator_id'] = $generatorId;
|
201 |
+
$slideData['record-slides'] = intval($data->get('record-slides', 1));
|
202 |
+
$slideData['slide'] = json_encode($slideData['slide']);
|
203 |
+
$slidesModel = new N2SmartsliderSlidesModel();
|
204 |
+
$slideId = $slidesModel->create($sliderId, $slideData, false);
|
205 |
+
|
206 |
+
|
207 |
+
return array(
|
208 |
+
'slideId' => $slideId,
|
209 |
+
'generatorId' => $generatorId
|
210 |
+
);
|
211 |
+
} catch (Exception $e) {
|
212 |
+
throw new Exception($e->getMessage());
|
213 |
+
}
|
214 |
+
}
|
215 |
+
|
216 |
+
public function generatorCommonForm($data = array()) {
|
217 |
+
$configurationXmlFile = dirname(__FILE__) . '/forms/multigenerator.xml';
|
218 |
+
|
219 |
+
N2Loader::import('libraries.form.form');
|
220 |
+
$form = new N2Form();
|
221 |
+
$form->set('class', 'nextend-smart-slider-admin');
|
222 |
+
$form->loadArray($data);
|
223 |
+
|
224 |
+
$form->loadXMLFile($configurationXmlFile);
|
225 |
+
|
226 |
+
echo $form->render('generator');
|
227 |
+
}
|
228 |
+
|
229 |
+
public function generatorEditForm($data = array()) {
|
230 |
+
$configurationXmlFile = dirname(__FILE__) . '/forms/generator_edit.xml';
|
231 |
+
|
232 |
+
N2Loader::import('libraries.form.form');
|
233 |
+
$form = new N2Form();
|
234 |
+
$form->set('class', 'nextend-smart-slider-admin');
|
235 |
+
$form->loadArray($data);
|
236 |
+
|
237 |
+
$form->loadXMLFile($configurationXmlFile);
|
238 |
+
|
239 |
+
echo $form->render('generator');
|
240 |
+
}
|
241 |
+
|
242 |
+
public function generatorSpecificForm($group, $type, $data = array()) {
|
243 |
+
|
244 |
+
$info = $this->getGeneratorInfo($group, $type);
|
245 |
+
|
246 |
+
$xmlPath = $info->path . '/config.xml';
|
247 |
+
|
248 |
+
$form = new N2Form();
|
249 |
+
$form->loadArray($data);
|
250 |
+
|
251 |
+
$form->loadXMLFile($xmlPath);
|
252 |
+
|
253 |
+
$form->set('info', $info);
|
254 |
+
|
255 |
+
echo $form->render('generator');
|
256 |
+
|
257 |
+
return $xmlPath;
|
258 |
+
}
|
259 |
+
|
260 |
+
/**
|
261 |
+
* @param $group
|
262 |
+
* @param $type
|
263 |
+
*
|
264 |
+
* @return N2GeneratorInfo
|
265 |
+
* @throws Exception
|
266 |
+
*/
|
267 |
+
public function getGeneratorInfo($group, $type = null) {
|
268 |
+
|
269 |
+
list($groups, $list) = self::getGenerators();
|
270 |
+
|
271 |
+
if (isset($list[$group])) {
|
272 |
+
if (isset($list[$group][$type])) {
|
273 |
+
return $list[$group][$type];
|
274 |
+
} else {
|
275 |
+
return $list[$group][key($list[$group])];
|
276 |
+
}
|
277 |
+
}
|
278 |
+
throw new Exception('Generator not found: ' . $group . ' - ' . $type);
|
279 |
+
}
|
280 |
+
|
281 |
+
public static function getGenerators() {
|
282 |
+
|
283 |
+
static $groups;
|
284 |
+
static $list;
|
285 |
+
|
286 |
+
if (!$list) {
|
287 |
+
$groups = array();
|
288 |
+
$list = array();
|
289 |
+
N2Plugin::callPlugin('ssgenerator', 'onGeneratorList', array(
|
290 |
+
&$groups,
|
291 |
+
&$list
|
292 |
+
));
|
293 |
+
}
|
294 |
+
|
295 |
+
return array(
|
296 |
+
&$groups,
|
297 |
+
&$list
|
298 |
+
);
|
299 |
+
}
|
300 |
+
|
301 |
+
public function get($id) {
|
302 |
+
return $this->db->queryRow("SELECT * FROM " . $this->db->tableName . " WHERE id = :id", array(
|
303 |
+
":id" => $id
|
304 |
+
));
|
305 |
+
}
|
306 |
+
|
307 |
+
public function import($generator) {
|
308 |
+
$this->db->insert(array(
|
309 |
+
'type' => $generator['type'],
|
310 |
+
'group' => $generator['group'],
|
311 |
+
'params' => $generator['params']
|
312 |
+
));
|
313 |
+
|
314 |
+
return $this->db->insertId();
|
315 |
+
}
|
316 |
+
|
317 |
+
private function _create($type, $group, $params) {
|
318 |
+
$this->db->insert(array(
|
319 |
+
'type' => $type,
|
320 |
+
'group' => $group,
|
321 |
+
'params' => $params
|
322 |
+
));
|
323 |
+
|
324 |
+
return $this->db->insertId();
|
325 |
+
}
|
326 |
+
|
327 |
+
public function save($generatorId, $params) {
|
328 |
+
|
329 |
+
$this->db->update(array(
|
330 |
+
'params' => json_encode($params)
|
331 |
+
), array('id' => $generatorId));
|
332 |
+
|
333 |
+
return $generatorId;
|
334 |
+
}
|
335 |
+
|
336 |
+
public function delete($id) {
|
337 |
+
$this->db->deleteByAttributes(array(
|
338 |
+
"id" => intval($id)
|
339 |
+
));
|
340 |
+
}
|
341 |
+
|
342 |
+
public function duplicate($id) {
|
343 |
+
$generatorRow = $this->get($id);
|
344 |
+
$generatorId = $this->_create($generatorRow['type'], $generatorRow['group'], $generatorRow['params']);
|
345 |
+
return $generatorId;
|
346 |
+
}
|
347 |
+
|
348 |
+
public function getSliderId($generatorId) {
|
349 |
+
|
350 |
+
$slidesModal = new N2SmartsliderSlidesModel();
|
351 |
+
$slideData = $this->db->queryRow("SELECT slider FROM " . $slidesModal->db->tableName . " WHERE generator_id = :id", array(
|
352 |
+
":id" => $generatorId
|
353 |
+
));
|
354 |
+
|
355 |
+
return $slideData['slider'];
|
356 |
+
}
|
357 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/generator/loadplugin.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$dir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
5 |
+
foreach (N2Filesystem::folders($dir) AS $folder) {
|
6 |
+
$file = $dir . $folder . DIRECTORY_SEPARATOR . $folder . '.php';
|
7 |
+
if (N2Filesystem::fileexists($file)) {
|
8 |
+
require_once($file);
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/button/button.php
ADDED
@@ -0,0 +1,138 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.plugins.N2SliderItemAbstract', 'smartslider');
|
4 |
+
|
5 |
+
class N2SSPluginItemButton extends N2SSPluginItemAbstract
|
6 |
+
{
|
7 |
+
|
8 |
+
public $_identifier = 'button';
|
9 |
+
|
10 |
+
protected $priority = 4;
|
11 |
+
|
12 |
+
private static $font = 1103;
|
13 |
+
|
14 |
+
public function __construct() {
|
15 |
+
$this->_title = n2_x('Button', 'Slide item');
|
16 |
+
}
|
17 |
+
|
18 |
+
private static function initDefaultFont() {
|
19 |
+
static $inited = false;
|
20 |
+
if (!$inited) {
|
21 |
+
$res = N2StorageSectionAdmin::get('smartslider', 'default', 'item-button-font');
|
22 |
+
if (is_array($res)) {
|
23 |
+
self::$font = $res['value'];
|
24 |
+
}
|
25 |
+
if (is_numeric(self::$font)) {
|
26 |
+
N2FontRenderer::preLoad(self::$font);
|
27 |
+
}
|
28 |
+
$inited = true;
|
29 |
+
}
|
30 |
+
}
|
31 |
+
|
32 |
+
private static $style = 1101;
|
33 |
+
|
34 |
+
private static function initDefaultStyle() {
|
35 |
+
static $inited = false;
|
36 |
+
if (!$inited) {
|
37 |
+
$res = N2StorageSectionAdmin::get('smartslider', 'default', 'item-button-style');
|
38 |
+
if (is_array($res)) {
|
39 |
+
self::$style = $res['value'];
|
40 |
+
}
|
41 |
+
if (is_numeric(self::$style)) {
|
42 |
+
N2StyleRenderer::preLoad(self::$style);
|
43 |
+
}
|
44 |
+
$inited = true;
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
public static function onSmartsliderDefaultSettings(&$settings) {
|
49 |
+
self::initDefaultFont();
|
50 |
+
$settings['font'][] = '<param name="item-button-font" type="font" previewmode="link" set="1100" label="' . n2_('Item') . ' - ' . n2_('Button') . '" default="' . self::$font . '" />';
|
51 |
+
|
52 |
+
self::initDefaultStyle();
|
53 |
+
$settings['style'][] = '<param name="item-button-style" type="style" previewmode="button" set="1100" label="' . n2_('Item') . ' - ' . n2_('Button') . '" default="' . self::$style . '" />';
|
54 |
+
}
|
55 |
+
|
56 |
+
public function getTemplate($slider) {
|
57 |
+
return NHtml::tag("div", array(
|
58 |
+
"class" => "nextend-smartslider-button-container {fontclass}",
|
59 |
+
"style" => "cursor: pointer; display: {display}; {extrastyle};"
|
60 |
+
), NHtml::link("{content}", "{url}", array(
|
61 |
+
"onclick" => 'return false;',
|
62 |
+
"target" => "{target}",
|
63 |
+
"style" => "display: {display}",
|
64 |
+
"class" => "{styleclass} {class}"
|
65 |
+
)));
|
66 |
+
}
|
67 |
+
|
68 |
+
public function _render($data, $itemId, $slider, $slide) {
|
69 |
+
return $this->getHtml($data, $itemId, $slider, $slide);
|
70 |
+
}
|
71 |
+
|
72 |
+
function _renderAdmin($data, $itemId, $slider, $slide) {
|
73 |
+
return $this->getHtml($data, $itemId, $slider, $slide);
|
74 |
+
}
|
75 |
+
|
76 |
+
private function getHtml($data, $id, $slider, $slide) {
|
77 |
+
|
78 |
+
$font = N2FontRenderer::render($data->get('font'), 'link', $slider->elementId, 'div#' . $slider->elementId . ' ', $slider->fontSize);
|
79 |
+
|
80 |
+
$html = NHtml::openTag("div", array(
|
81 |
+
"class" => "nextend-smartslider-button-container {$font}",
|
82 |
+
"style" => "cursor: pointer; display:" . ($data->get('fullwidth', 0) ? 'block' : 'inline-block') . ";" . ($data->get('nowrap', 1) ? 'white-space:nowrap;' : '')
|
83 |
+
));
|
84 |
+
|
85 |
+
$style = N2StyleRenderer::render($data->get('style'), 'heading', $slider->elementId, 'div#' . $slider->elementId . ' ');
|
86 |
+
|
87 |
+
$html .= $this->getLink($slide, $data, $slide->fill($data->get("content")), array(
|
88 |
+
"style" => "display:" . ($data->get('fullwidth', 0) ? 'block' : 'inline-block') . ";",
|
89 |
+
"class" => "{$style} {$data->get('class', '')}"
|
90 |
+
), true);
|
91 |
+
|
92 |
+
$html .= NHtml::closeTag("div");
|
93 |
+
|
94 |
+
return $html;
|
95 |
+
}
|
96 |
+
|
97 |
+
function getValues() {
|
98 |
+
self::initDefaultFont();
|
99 |
+
self::initDefaultStyle();
|
100 |
+
|
101 |
+
return array(
|
102 |
+
'content' => n2_('MORE'),
|
103 |
+
'nowrap' => 1,
|
104 |
+
'fullwidth' => 0,
|
105 |
+
'link' => '#|*|_self',
|
106 |
+
'font' => self::$font,
|
107 |
+
'style' => self::$style,
|
108 |
+
'class' => ''
|
109 |
+
);
|
110 |
+
}
|
111 |
+
|
112 |
+
function getPath() {
|
113 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . $this->_identifier . DIRECTORY_SEPARATOR;
|
114 |
+
}
|
115 |
+
|
116 |
+
public function getFilled($slide, $data) {
|
117 |
+
$data->set('content', $slide->fill($data->get('content', '')));
|
118 |
+
$data->set('link', $slide->fill($data->get('link', '#|*|')));
|
119 |
+
return $data;
|
120 |
+
}
|
121 |
+
|
122 |
+
public function prepareExport($export, $data) {
|
123 |
+
$export->addVisual($data->get('font'));
|
124 |
+
$export->addVisual($data->get('style'));
|
125 |
+
$export->addLightbox($data->get('link'));
|
126 |
+
}
|
127 |
+
|
128 |
+
public function prepareImport($import, $data) {
|
129 |
+
$data->set('font', $import->fixSection($data->get('font')));
|
130 |
+
$data->set('style', $import->fixSection($data->get('style')));
|
131 |
+
$data->set('link', $import->fixLightbox($data->get('link')));
|
132 |
+
return $data;
|
133 |
+
}
|
134 |
+
}
|
135 |
+
|
136 |
+
N2Plugin::addPlugin('ssitem', 'N2SSPluginItemButton');
|
137 |
+
|
138 |
+
N2Pluggable::addAction('smartsliderDefault', 'N2SSPluginItemButton::onSmartsliderDefaultSettings');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/button/button/configuration.xml
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="button-item" label="Button item settings" hidetitle="1">
|
3 |
+
<param name="content" type="text" label="Text" default="Button"/>
|
4 |
+
<param name="font" type="font" previewmode="link" set="1100" style="item_buttonstyle" label="Font" css="width: 140px;">
|
5 |
+
<![CDATA[ <div class="{fontClassName}" style="width:{nextend.activeLayer.prop('style').width};"><a style="display:{$('#item_buttonfullwidth').val() == 1 ? 'block' : 'inline-block'};" href="#" class="{styleClassName}" onclick="return false;">{$('#item_buttoncontent').val();}</a></div> ]]>
|
6 |
+
</param>
|
7 |
+
<param name="style" type="style" previewmode="button" set="1100" font="item_buttonfont" label="Style" css="width: 140px;">
|
8 |
+
<![CDATA[ <div class="{fontClassName}" style="width:{nextend.activeLayer.prop('style').width};"><a style="display:{$('#item_buttonfullwidth').val() == 1 ? 'block' : 'inline-block'};" href="#" class="{styleClassName}" onclick="return false;">{$('#item_buttoncontent').val();}</a></div> ]]>
|
9 |
+
</param>
|
10 |
+
<param name="link" type="mixed" label="Link" default="#|*|_self">
|
11 |
+
<param type="url" label="Link" style="width:140px;"/>
|
12 |
+
<param type="list" label="Target" translateable="1">
|
13 |
+
<option value="_self">Self</option>
|
14 |
+
<option value="_blank">Blank</option>
|
15 |
+
</param>
|
16 |
+
</param>
|
17 |
+
<param type="group" label="Sizing">
|
18 |
+
<param name="fullwidth" type="onoff" label="Full width" default="1"/>
|
19 |
+
<param name="nowrap" type="onoff" label="No wrap" default="1"/></param>
|
20 |
+
</params>
|
21 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/heading/heading.php
ADDED
@@ -0,0 +1,161 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.plugins.N2SliderItemAbstract', 'smartslider');
|
4 |
+
|
5 |
+
class N2SSPluginItemHeading extends N2SSPluginItemAbstract
|
6 |
+
{
|
7 |
+
|
8 |
+
var $_identifier = 'heading';
|
9 |
+
|
10 |
+
protected $priority = 2;
|
11 |
+
|
12 |
+
private static $font = 1009;
|
13 |
+
|
14 |
+
public function __construct() {
|
15 |
+
$this->_title = n2_x('Heading', 'Slide item');
|
16 |
+
}
|
17 |
+
|
18 |
+
private static function initDefaultFont() {
|
19 |
+
static $inited = false;
|
20 |
+
if (!$inited) {
|
21 |
+
$res = N2StorageSectionAdmin::get('smartslider', 'default', 'item-heading-font');
|
22 |
+
if (is_array($res)) {
|
23 |
+
self::$font = $res['value'];
|
24 |
+
}
|
25 |
+
if (is_numeric(self::$font)) {
|
26 |
+
N2FontRenderer::preLoad(self::$font);
|
27 |
+
}
|
28 |
+
$inited = true;
|
29 |
+
}
|
30 |
+
}
|
31 |
+
|
32 |
+
private static $style = '';
|
33 |
+
|
34 |
+
private static function initDefaultStyle() {
|
35 |
+
static $inited = false;
|
36 |
+
if (!$inited) {
|
37 |
+
$res = N2StorageSectionAdmin::get('smartslider', 'default', 'item-heading-style');
|
38 |
+
if (is_array($res)) {
|
39 |
+
self::$style = $res['value'];
|
40 |
+
}
|
41 |
+
if (is_numeric(self::$style)) {
|
42 |
+
N2StyleRenderer::preLoad(self::$style);
|
43 |
+
}
|
44 |
+
$inited = true;
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
public static function onSmartsliderDefaultSettings(&$settings) {
|
49 |
+
self::initDefaultFont();
|
50 |
+
$settings['font'][] = '<param name="item-heading-font" type="font" previewmode="hover" label="' . n2_('Item') . ' - ' . n2_('Heading') . '" default="' . self::$font . '" />';
|
51 |
+
|
52 |
+
self::initDefaultStyle();
|
53 |
+
$settings['style'][] = '<param name="item-heading-style" type="style" set="heading" previewmode="heading" label="' . n2_('Item') . ' - ' . n2_('Heading') . '" default="' . self::$style . '" />';
|
54 |
+
}
|
55 |
+
|
56 |
+
function getTemplate($slider) {
|
57 |
+
|
58 |
+
return "<div><h{priority} id='{uid}' class='{fontclass} {styleclass} {class}' style='display: {display}; {extrastyle};'><a href='#' class='{afontclass}' onclick='return false;'>{heading}</a></h{priority}>" . NHtml::scriptTemplate($this->getJs($slider->elementId, "{uid}")) . "</div>";
|
59 |
+
}
|
60 |
+
|
61 |
+
function getJs($sliderId, $id) {
|
62 |
+
return '';
|
63 |
+
|
64 |
+
}
|
65 |
+
|
66 |
+
function _render($data, $itemId, $slider, $slide) {
|
67 |
+
return $this->getHtml($data, $itemId, $slider, $slide);
|
68 |
+
}
|
69 |
+
|
70 |
+
function _renderAdmin($data, $itemId, $slider, $slide) {
|
71 |
+
return $this->getHtml($data, $itemId, $slider, $slide);
|
72 |
+
}
|
73 |
+
|
74 |
+
private function getHtml($data, $id, $slider, $slide) {
|
75 |
+
$attributes = array();
|
76 |
+
|
77 |
+
$font = N2FontRenderer::render($data->get('font'), 'hover', $slider->elementId, 'div#' . $slider->elementId . ' ', $slider->fontSize);
|
78 |
+
$style = N2StyleRenderer::render($data->get('style'), 'heading', $slider->elementId, 'div#' . $slider->elementId . ' ');
|
79 |
+
|
80 |
+
$linkAttributes = array();
|
81 |
+
if ($this->isEditor) {
|
82 |
+
$linkAttributes['onclick'] = 'return false;';
|
83 |
+
}
|
84 |
+
|
85 |
+
$title = $data->get('title', '');
|
86 |
+
if (!empty($title)) {
|
87 |
+
$attributes['title'] = $title;
|
88 |
+
}
|
89 |
+
|
90 |
+
list($link) = (array)N2Parse::parse($data->get('link', '#|*|'));
|
91 |
+
if (!empty($link) && $link != '#') {
|
92 |
+
$linkAttributes['class'] = $font;
|
93 |
+
$font = '';
|
94 |
+
}
|
95 |
+
|
96 |
+
return $this->heading($data->get('priority', 2), $attributes + array(
|
97 |
+
"id" => $id,
|
98 |
+
"class" => $font . $style . " " . $data->get('class', ''),
|
99 |
+
"style" => "display:" . ($data->get('fullwidth', 1) ? 'block' : 'inline-block') . ";" . ($data->get('nowrap', 1) ? 'white-space:nowrap;' : '')
|
100 |
+
), $this->getLink($slide, $data, str_replace("\n", '<br />', strip_tags($slide->fill($data->get('heading', '')))), $linkAttributes));
|
101 |
+
}
|
102 |
+
|
103 |
+
private function heading($type, $attributes, $content) {
|
104 |
+
return NHtml::tag("h{$type}", $attributes, $content);
|
105 |
+
}
|
106 |
+
|
107 |
+
function getValues() {
|
108 |
+
self::initDefaultFont();
|
109 |
+
self::initDefaultStyle();
|
110 |
+
return array(
|
111 |
+
'priority' => '2',
|
112 |
+
'fullwidth' => 1,
|
113 |
+
'nowrap' => 1,
|
114 |
+
'heading' => n2_('Heading layer'),
|
115 |
+
'title' => '',
|
116 |
+
'link' => '#|*|_self',
|
117 |
+
'font' => self::$font,
|
118 |
+
'style' => self::$style,
|
119 |
+
|
120 |
+
'split-text-transform-origin' => '50|*|50|*|0',
|
121 |
+
'split-text-backface-visibility' => 1,
|
122 |
+
|
123 |
+
'split-text-animation-in' => '',
|
124 |
+
'split-text-delay-in' => 0,
|
125 |
+
|
126 |
+
'split-text-animation-out' => '',
|
127 |
+
'split-text-delay-out' => 0,
|
128 |
+
|
129 |
+
'class' => ''
|
130 |
+
);
|
131 |
+
}
|
132 |
+
|
133 |
+
function getPath() {
|
134 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . $this->_identifier . DIRECTORY_SEPARATOR;
|
135 |
+
}
|
136 |
+
|
137 |
+
public function getFilled($slide, $data) {
|
138 |
+
$data->set('heading', $slide->fill($data->get('heading', '')));
|
139 |
+
$data->set('link', $slide->fill($data->get('link', '#|*|')));
|
140 |
+
return $data;
|
141 |
+
}
|
142 |
+
|
143 |
+
public function prepareExport($export, $data) {
|
144 |
+
$export->addVisual($data->get('font'));
|
145 |
+
$export->addVisual($data->get('style'));
|
146 |
+
$export->addLightbox($data->get('link'));
|
147 |
+
}
|
148 |
+
|
149 |
+
public function prepareImport($import, $data) {
|
150 |
+
$data->set('font', $import->fixSection($data->get('font')));
|
151 |
+
$data->set('style', $import->fixSection($data->get('style')));
|
152 |
+
$data->set('link', $import->fixLightbox($data->get('link')));
|
153 |
+
return $data;
|
154 |
+
}
|
155 |
+
|
156 |
+
}
|
157 |
+
|
158 |
+
N2Plugin::addPlugin('ssitem', 'N2SSPluginItemHeading');
|
159 |
+
|
160 |
+
N2Pluggable::addAction('smartsliderDefault', 'N2SSPluginItemHeading::onSmartsliderDefaultSettings');
|
161 |
+
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/heading/heading/configuration.xml
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="heading-item" label="Heading item settings" hidetitle="1">
|
3 |
+
<param name="heading" type="textarea" label="Text" default="Heading" style2="width: 230px;resize: vertical;"/>
|
4 |
+
<param name="font" type="font" previewmode="hover" set="1000" style="item_headingstyle" label="Font" css="width: 140px;">
|
5 |
+
<![CDATA[ <div style="width:{nextend.activeLayer.prop('style').width};"><div class="{styleClassName} {fontClassName}">{$('#item_headingheading').val().replace(/\\n/g, '<br />');}</div></div> ]]>
|
6 |
+
</param>
|
7 |
+
<param name="style" type="style" previewmode="heading" set="1000" font="item_headingfont" label="Style" css="width: 140px;">
|
8 |
+
<![CDATA[ <div style="width:{nextend.activeLayer.prop('style').width};"><div class="{styleClassName} {fontClassName}">{$('#item_headingheading').val().replace(/\\n/g, '<br />');}</div></div> ]]>
|
9 |
+
</param>
|
10 |
+
<param name="link" type="mixed" label="Link" default="#|*|_self">
|
11 |
+
<param type="url" label="Link" style="width:140px;"/>
|
12 |
+
<param type="list" label="Target" translateable="1">
|
13 |
+
<option value="_self">Self</option>
|
14 |
+
<option value="_blank">Blank</option>
|
15 |
+
</param>
|
16 |
+
</param>
|
17 |
+
<param type="group" label="Sizing">
|
18 |
+
<param name="fullwidth" type="onoff" label="Full width" default="1"/>
|
19 |
+
<param name="nowrap" type="onoff" label="No wrap" default="1"/></param>
|
20 |
+
</params>
|
21 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/image/image.php
ADDED
@@ -0,0 +1,129 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.plugins.N2SliderItemAbstract', 'smartslider');
|
4 |
+
|
5 |
+
class N2SSPluginItemImage extends N2SSPluginItemAbstract
|
6 |
+
{
|
7 |
+
|
8 |
+
var $_identifier = 'image';
|
9 |
+
|
10 |
+
protected $priority = 1;
|
11 |
+
|
12 |
+
protected $layerProperties = array("width" => 200);
|
13 |
+
|
14 |
+
private static $style = '';
|
15 |
+
|
16 |
+
public function __construct() {
|
17 |
+
$this->_title = n2_x('Image', 'Slide item');
|
18 |
+
}
|
19 |
+
|
20 |
+
private static function initDefaultStyle() {
|
21 |
+
static $inited = false;
|
22 |
+
if (!$inited) {
|
23 |
+
$res = N2StorageSectionAdmin::get('smartslider', 'default', 'item-image-style');
|
24 |
+
if (is_array($res)) {
|
25 |
+
self::$style = $res['value'];
|
26 |
+
}
|
27 |
+
if (is_numeric(self::$style)) {
|
28 |
+
N2StyleRenderer::preLoad(self::$style);
|
29 |
+
}
|
30 |
+
$inited = true;
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
+
public static function onSmartsliderDefaultSettings(&$settings) {
|
35 |
+
self::initDefaultStyle();
|
36 |
+
$settings['style'][] = '<param name="item-image-style" type="style" previewmode="box" label="Item - Image" default="' . self::$style . '" />';
|
37 |
+
}
|
38 |
+
|
39 |
+
function getTemplate($slider) {
|
40 |
+
$html = NHtml::openTag("div", array(
|
41 |
+
'class' => '{styleclass}',
|
42 |
+
'style' => 'overflow:hidden;'
|
43 |
+
));
|
44 |
+
$html .= NHtml::openTag("a", array(
|
45 |
+
"href" => "{url}",
|
46 |
+
"onclick" => 'return false;',
|
47 |
+
"style" => "display: block;background: none !important;"
|
48 |
+
));
|
49 |
+
|
50 |
+
$html .= '<img src="{image}" style="display: inline-block; max-width: 100%;width:{width};height:{height};" class="{cssclass}">';
|
51 |
+
|
52 |
+
$html .= NHtml::closeTag("a");
|
53 |
+
$html .= NHtml::closeTag("div");
|
54 |
+
|
55 |
+
return $html;
|
56 |
+
}
|
57 |
+
|
58 |
+
function _render($data, $itemId, $slider, $slide) {
|
59 |
+
return $this->getHtml($data, $itemId, $slider, $slide);
|
60 |
+
}
|
61 |
+
|
62 |
+
function _renderAdmin($data, $itemId, $slider, $slide) {
|
63 |
+
return $this->getHtml($data, $itemId, $slider, $slide);
|
64 |
+
}
|
65 |
+
|
66 |
+
private function getHtml($data, $id, $slider, $slide) {
|
67 |
+
|
68 |
+
$size = (array)N2Parse::parse($data->get('size', ''));
|
69 |
+
if (!isset($size[0])) $size[0] = 'auto';
|
70 |
+
if (!isset($size[1])) $size[1] = 'auto';
|
71 |
+
|
72 |
+
$html = NHtml::tag('img', self::optimizeImage($slide->fill($data->get('image', '')), $data, $slider) + array(
|
73 |
+
"id" => $id,
|
74 |
+
"alt" => htmlspecialchars($slide->fill($data->get('alt', ''))),
|
75 |
+
"style" => "display: inline-block; max-width: 100%; width: {$size[0]};height: {$size[1]};",
|
76 |
+
"class" => $data->get('cssclass', ''),
|
77 |
+
"title" => htmlspecialchars($slide->fill($data->get('title', '')))
|
78 |
+
));
|
79 |
+
|
80 |
+
$style = N2StyleRenderer::render($data->get('style'), 'heading', $slider->elementId, 'div#' . $slider->elementId . ' ');
|
81 |
+
return NHtml::tag("div", array(
|
82 |
+
"class" => $style,
|
83 |
+
'style' => 'overflow:hidden;'
|
84 |
+
), $this->getLink($slide, $data, $html));
|
85 |
+
}
|
86 |
+
|
87 |
+
function getValues() {
|
88 |
+
self::initDefaultStyle();
|
89 |
+
return array(
|
90 |
+
'image' => '$system$/images/placeholder/image.png',
|
91 |
+
'alt' => n2_('Image is not available'),
|
92 |
+
'title' => '',
|
93 |
+
'link' => '#|*|_self',
|
94 |
+
'size' => '100%|*|auto',
|
95 |
+
'style' => self::$style,
|
96 |
+
'cssclass' => '',
|
97 |
+
'image-optimize' => 1
|
98 |
+
);
|
99 |
+
}
|
100 |
+
|
101 |
+
function getPath() {
|
102 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . $this->_identifier . DIRECTORY_SEPARATOR;
|
103 |
+
}
|
104 |
+
|
105 |
+
public function getFilled($slide, $data) {
|
106 |
+
$data->set('image', $slide->fill($data->get('image', '')));
|
107 |
+
$data->set('alt', $slide->fill($data->get('alt', '')));
|
108 |
+
$data->set('title', $slide->fill($data->get('title', '')));
|
109 |
+
$data->set('link', $slide->fill($data->get('link', '#|*|')));
|
110 |
+
return $data;
|
111 |
+
}
|
112 |
+
|
113 |
+
public function prepareExport($export, $data) {
|
114 |
+
$export->addImage($data->get('image'));
|
115 |
+
$export->addVisual($data->get('style'));
|
116 |
+
$export->addLightbox($data->get('link'));
|
117 |
+
}
|
118 |
+
|
119 |
+
public function prepareImport($import, $data) {
|
120 |
+
$data->set('image', $import->fixImage($data->get('image')));
|
121 |
+
$data->set('style', $import->fixSection($data->get('style')));
|
122 |
+
$data->set('link', $import->fixLightbox($data->get('link')));
|
123 |
+
return $data;
|
124 |
+
}
|
125 |
+
}
|
126 |
+
|
127 |
+
N2Plugin::addPlugin('ssitem', 'N2SSPluginItemImage');
|
128 |
+
|
129 |
+
N2Pluggable::addAction('smartsliderDefault', 'N2SSPluginItemImage::onSmartsliderDefaultSettings');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/image/image/configuration.xml
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="image-item" label="Image item settings" hidetitle="1">
|
3 |
+
<param name="image" type="image" label="Image" default="" fixed="1" style="width: 144px;"/>
|
4 |
+
<param name="link" type="mixed" label="Link" default="#|*|_self">
|
5 |
+
<param type="url" label="Link" style="width:140px;"/>
|
6 |
+
<param type="list" label="Target" translateable="1">
|
7 |
+
<option value="_self">Self</option>
|
8 |
+
<option value="_blank">Blank</option>
|
9 |
+
</param>
|
10 |
+
</param>
|
11 |
+
</params>
|
12 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/loadplugin.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$dir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
5 |
+
foreach (N2Filesystem::folders($dir) AS $folder) {
|
6 |
+
$file = $dir . $folder . DIRECTORY_SEPARATOR . $folder . '.php';
|
7 |
+
if (N2Filesystem::fileexists($file)) {
|
8 |
+
require_once($file);
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/text/text.php
ADDED
@@ -0,0 +1,276 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.plugins.N2SliderItemAbstract', 'smartslider');
|
4 |
+
|
5 |
+
class N2SSPluginItemText extends N2SSPluginItemAbstract
|
6 |
+
{
|
7 |
+
|
8 |
+
var $_identifier = 'text';
|
9 |
+
|
10 |
+
protected $priority = 3;
|
11 |
+
|
12 |
+
private static $font = 1304;
|
13 |
+
|
14 |
+
protected $layerProperties = array(
|
15 |
+
"left" => 0,
|
16 |
+
"top" => 0,
|
17 |
+
"width" => 400,
|
18 |
+
"align" => "left",
|
19 |
+
"valign" => "top"
|
20 |
+
);
|
21 |
+
|
22 |
+
public function __construct() {
|
23 |
+
$this->_title = n2_x('Text', 'Slide item');
|
24 |
+
}
|
25 |
+
|
26 |
+
private static function initDefaultFont() {
|
27 |
+
static $inited = false;
|
28 |
+
if (!$inited) {
|
29 |
+
$res = N2StorageSectionAdmin::get('smartslider', 'default', 'item-text-font');
|
30 |
+
if (is_array($res)) {
|
31 |
+
self::$font = $res['value'];
|
32 |
+
}
|
33 |
+
if (is_numeric(self::$font)) {
|
34 |
+
N2FontRenderer::preLoad(self::$font);
|
35 |
+
}
|
36 |
+
$inited = true;
|
37 |
+
}
|
38 |
+
}
|
39 |
+
|
40 |
+
private static $style = '';
|
41 |
+
|
42 |
+
private static function initDefaultStyle() {
|
43 |
+
static $inited = false;
|
44 |
+
if (!$inited) {
|
45 |
+
$res = N2StorageSectionAdmin::get('smartslider', 'default', 'item-text-style');
|
46 |
+
if (is_array($res)) {
|
47 |
+
self::$style = $res['value'];
|
48 |
+
}
|
49 |
+
if (is_numeric(self::$style)) {
|
50 |
+
N2StyleRenderer::preLoad(self::$style);
|
51 |
+
}
|
52 |
+
$inited = true;
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
public static function onSmartsliderDefaultSettings(&$settings) {
|
57 |
+
self::initDefaultFont();
|
58 |
+
$settings['font'][] = '<param name="item-text-font" type="font" previewmode="paragraph" label="' . n2_('Item') . ' - ' . n2_('Text') . '" default="' . self::$font . '" />';
|
59 |
+
|
60 |
+
self::initDefaultStyle();
|
61 |
+
$settings['style'][] = '<param name="item-text-style" type="style" set="heading" previewmode="heading" label="' . n2_('Item') . ' - ' . n2_('Text') . '" default="' . self::$style . '" />';
|
62 |
+
}
|
63 |
+
|
64 |
+
function getTemplate($slider) {
|
65 |
+
return '<div class="n2-ss-desktop">{p}</div><div class="n2-ss-tablet">{ptablet}</div><div class="n2-ss-mobile">{pmobile}</div>';
|
66 |
+
}
|
67 |
+
|
68 |
+
function _render($data, $id, $slider, $slide) {
|
69 |
+
return $this->getHTML($data, $slider, $slide);
|
70 |
+
}
|
71 |
+
|
72 |
+
function _renderAdmin($data, $id, $slider, $slide) {
|
73 |
+
return $this->getHTML($data, $slider, $slide);
|
74 |
+
}
|
75 |
+
|
76 |
+
private function getHTML($data, $slider, $slide) {
|
77 |
+
|
78 |
+
$font = N2FontRenderer::render($data->get('font'), 'paragraph', $slider->elementId, 'div#' . $slider->elementId . ' ', $slider->fontSize);
|
79 |
+
$style = N2StyleRenderer::render($data->get('style'), 'heading', $slider->elementId, 'div#' . $slider->elementId . ' ');
|
80 |
+
|
81 |
+
|
82 |
+
$html = '';
|
83 |
+
$content = str_replace('<p>', '<p class="' . $font . ' ' . $style . '">', $this->wpautop(self::closeTags($slide->fill($data->get('content', '')))));
|
84 |
+
$contentTablet = str_replace('<p>', '<p class="' . $font . ' ' . $style . '">', $this->wpautop(self::closeTags($slide->fill($data->get('contenttablet', '')))));
|
85 |
+
$contentMobile = str_replace('<p>', '<p class="' . $font . ' ' . $style . '">', $this->wpautop(self::closeTags($slide->fill($data->get('contentmobile', '')))));
|
86 |
+
$class = '';
|
87 |
+
|
88 |
+
if ($contentMobile == '') {
|
89 |
+
$class .= ' n2-ss-mobile';
|
90 |
+
} else {
|
91 |
+
$html .= NHtml::tag('div', array(
|
92 |
+
'class' => 'n2-ss-mobile'
|
93 |
+
), $contentMobile);
|
94 |
+
}
|
95 |
+
|
96 |
+
if ($contentTablet == '') {
|
97 |
+
$class .= ' n2-ss-tablet';
|
98 |
+
} else {
|
99 |
+
$html .= NHtml::tag('div', array(
|
100 |
+
'class' => 'n2-ss-tablet' . $class
|
101 |
+
), $contentTablet);
|
102 |
+
$class = '';
|
103 |
+
}
|
104 |
+
|
105 |
+
$html .= NHtml::tag('div', array(
|
106 |
+
'class' => 'n2-ss-desktop' . $class
|
107 |
+
), $content);
|
108 |
+
|
109 |
+
return $html;
|
110 |
+
}
|
111 |
+
|
112 |
+
function getValues() {
|
113 |
+
self::initDefaultFont();
|
114 |
+
self::initDefaultStyle();
|
115 |
+
return array(
|
116 |
+
'content' => 'Lorem ipsum dolor sit amet, <a href="#">consectetur adipiscing</a> elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
|
117 |
+
'contenttablet' => '',
|
118 |
+
'contentmobile' => '',
|
119 |
+
'font' => self::$font,
|
120 |
+
'style' => self::$style
|
121 |
+
);
|
122 |
+
}
|
123 |
+
|
124 |
+
function getPath() {
|
125 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . $this->_identifier . DIRECTORY_SEPARATOR;
|
126 |
+
}
|
127 |
+
|
128 |
+
public function getFilled($slide, $data) {
|
129 |
+
$data->set('content', $slide->fill($data->get('content', '')));
|
130 |
+
$data->set('contenttablet', $slide->fill($data->get('contenttablet', '')));
|
131 |
+
$data->set('contentmobile', $slide->fill($data->get('contentmobile', '')));
|
132 |
+
return $data;
|
133 |
+
}
|
134 |
+
|
135 |
+
public function prepareExport($export, $data) {
|
136 |
+
$export->addVisual($data->get('font'));
|
137 |
+
$export->addVisual($data->get('style'));
|
138 |
+
}
|
139 |
+
|
140 |
+
public function prepareImport($import, $data) {
|
141 |
+
$data->set('font', $import->fixSection($data->get('font')));
|
142 |
+
$data->set('style', $import->fixSection($data->get('style')));
|
143 |
+
return $data;
|
144 |
+
}
|
145 |
+
|
146 |
+
public static function closeTags($html) {
|
147 |
+
$html = str_replace(array(
|
148 |
+
'<>',
|
149 |
+
'</>'
|
150 |
+
), array(
|
151 |
+
'',
|
152 |
+
''
|
153 |
+
), $html);
|
154 |
+
// Put all opened tags into an array
|
155 |
+
preg_match_all('#<([a-z]+)(?: .*)?(?<![/|/ ])>#iU', $html, $result);
|
156 |
+
$openedtags = $result[1]; #put all closed tags into an array
|
157 |
+
preg_match_all('#</([a-z]+)>#iU', $html, $result);
|
158 |
+
$closedtags = $result[1];
|
159 |
+
$len_opened = count($openedtags);
|
160 |
+
# Check if all tags are closed
|
161 |
+
if (count($closedtags) == $len_opened) {
|
162 |
+
return $html;
|
163 |
+
}
|
164 |
+
$openedtags = array_reverse($openedtags);
|
165 |
+
# close tags
|
166 |
+
for ($i = 0; $i < $len_opened; $i++) {
|
167 |
+
if (!in_array($openedtags[$i], $closedtags)) {
|
168 |
+
if ($openedtags[$i] != 'br') {
|
169 |
+
// Ignores <br> tags to avoid unnessary spacing
|
170 |
+
// at the end of the string
|
171 |
+
$html .= '</' . $openedtags[$i] . '>';
|
172 |
+
}
|
173 |
+
} else {
|
174 |
+
unset($closedtags[array_search($openedtags[$i], $closedtags)]);
|
175 |
+
}
|
176 |
+
}
|
177 |
+
return $html;
|
178 |
+
}
|
179 |
+
|
180 |
+
private function wpautop($pee, $br = true) {
|
181 |
+
$pre_tags = array();
|
182 |
+
|
183 |
+
if (trim($pee) === '') return '';
|
184 |
+
|
185 |
+
$pee = $pee . "\n"; // just to make things a little easier, pad the end
|
186 |
+
|
187 |
+
if (strpos($pee, '<pre') !== false) {
|
188 |
+
$pee_parts = explode('</pre>', $pee);
|
189 |
+
$last_pee = array_pop($pee_parts);
|
190 |
+
$pee = '';
|
191 |
+
$i = 0;
|
192 |
+
|
193 |
+
foreach ($pee_parts as $pee_part) {
|
194 |
+
$start = strpos($pee_part, '<pre');
|
195 |
+
|
196 |
+
// Malformed html?
|
197 |
+
if ($start === false) {
|
198 |
+
$pee .= $pee_part;
|
199 |
+
continue;
|
200 |
+
}
|
201 |
+
|
202 |
+
$name = "<pre wp-pre-tag-$i></pre>";
|
203 |
+
$pre_tags[$name] = substr($pee_part, $start) . '</pre>';
|
204 |
+
|
205 |
+
$pee .= substr($pee_part, 0, $start) . $name;
|
206 |
+
$i++;
|
207 |
+
}
|
208 |
+
|
209 |
+
$pee .= $last_pee;
|
210 |
+
}
|
211 |
+
|
212 |
+
$pee = preg_replace('|<br />\s*<br />|', "\n\n", $pee);
|
213 |
+
// Space things out a little
|
214 |
+
$allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|noscript|legend|section|article|aside|hgroup|header|footer|nav|figure|details|menu|summary)';
|
215 |
+
$pee = preg_replace('!(<' . $allblocks . '[^>]*>)!', "\n$1", $pee);
|
216 |
+
$pee = preg_replace('!(</' . $allblocks . '>)!', "$1\n\n", $pee);
|
217 |
+
$pee = str_replace(array(
|
218 |
+
"\r\n",
|
219 |
+
"\r"
|
220 |
+
), "\n", $pee); // cross-platform newlines
|
221 |
+
|
222 |
+
if (strpos($pee, '</object>') !== false) {
|
223 |
+
// no P/BR around param and embed
|
224 |
+
$pee = preg_replace('|(<object[^>]*>)\s*|', '$1', $pee);
|
225 |
+
$pee = preg_replace('|\s*</object>|', '</object>', $pee);
|
226 |
+
$pee = preg_replace('%\s*(</?(?:param|embed)[^>]*>)\s*%', '$1', $pee);
|
227 |
+
}
|
228 |
+
|
229 |
+
if (strpos($pee, '<source') !== false || strpos($pee, '<track') !== false) {
|
230 |
+
// no P/BR around source and track
|
231 |
+
$pee = preg_replace('%([<\[](?:audio|video)[^>\]]*[>\]])\s*%', '$1', $pee);
|
232 |
+
$pee = preg_replace('%\s*([<\[]/(?:audio|video)[>\]])%', '$1', $pee);
|
233 |
+
$pee = preg_replace('%\s*(<(?:source|track)[^>]*>)\s*%', '$1', $pee);
|
234 |
+
}
|
235 |
+
|
236 |
+
$pee = preg_replace("/\n\n+/", "\n\n", $pee); // take care of duplicates
|
237 |
+
// make paragraphs, including one at the end
|
238 |
+
$pees = preg_split('/\n\s*\n/', $pee, -1, PREG_SPLIT_NO_EMPTY);
|
239 |
+
$pee = '';
|
240 |
+
|
241 |
+
foreach ($pees as $tinkle) {
|
242 |
+
$pee .= '<p>' . trim($tinkle, "\n") . "</p>\n";
|
243 |
+
}
|
244 |
+
|
245 |
+
$pee = preg_replace('|<p>\s*</p>|', '', $pee); // under certain strange conditions it could create a P of entirely whitespace
|
246 |
+
$pee = preg_replace('!<p>([^<]+)</(div|address|form)>!', "<p>$1</p></$2>", $pee);
|
247 |
+
$pee = preg_replace('!<p>\s*(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee); // don't pee all over a tag
|
248 |
+
$pee = preg_replace("|<p>(<li.+?)</p>|", "$1", $pee); // problem with nested lists
|
249 |
+
$pee = preg_replace('|<p><blockquote([^>]*)>|i', "<blockquote$1><p>", $pee);
|
250 |
+
$pee = str_replace('</blockquote></p>', '</p></blockquote>', $pee);
|
251 |
+
$pee = preg_replace('!<p>\s*(</?' . $allblocks . '[^>]*>)!', "$1", $pee);
|
252 |
+
$pee = preg_replace('!(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee);
|
253 |
+
|
254 |
+
if ($br) {
|
255 |
+
$pee = preg_replace_callback('/<(script|style).*?<\/\\1>/s', 'N2SSPluginItemText::_autop_newline_preservation_helper', $pee);
|
256 |
+
$pee = preg_replace('|(?<!<br />)\s*\n|', "<br />\n", $pee); // optionally make line breaks
|
257 |
+
$pee = str_replace('<WPPreserveNewline />', "\n", $pee);
|
258 |
+
}
|
259 |
+
|
260 |
+
$pee = preg_replace('!(</?' . $allblocks . '[^>]*>)\s*<br />!', "$1", $pee);
|
261 |
+
$pee = preg_replace('!<br />(\s*</?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)!', '$1', $pee);
|
262 |
+
$pee = preg_replace("|\n</p>$|", '</p>', $pee);
|
263 |
+
|
264 |
+
if (!empty($pre_tags)) $pee = str_replace(array_keys($pre_tags), array_values($pre_tags), $pee);
|
265 |
+
|
266 |
+
return $pee;
|
267 |
+
}
|
268 |
+
|
269 |
+
public static function _autop_newline_preservation_helper($matches) {
|
270 |
+
return str_replace("\n", "<WPPreserveNewline />", $matches[0]);
|
271 |
+
}
|
272 |
+
}
|
273 |
+
|
274 |
+
N2Plugin::addPlugin('ssitem', 'N2SSPluginItemText');
|
275 |
+
|
276 |
+
N2Pluggable::addAction('smartsliderDefault', 'N2SSPluginItemText::onSmartsliderDefaultSettings');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/text/text/configuration.xml
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="text-item" label="Text item settings" hidetitle="1">
|
3 |
+
<param name="content" type="richtextarea" label="Text" default=""
|
4 |
+
style2="height: 120px; width: 230px;resize: vertical;"/>
|
5 |
+
<param name="font" type="font" previewmode="paragraph" set="1000" style="item_textstyle" label="Font"
|
6 |
+
css="width: 140px;"><![CDATA[
|
7 |
+
<div style="width:{nextend.activeLayer.width()}px;"><p class="{styleClassName} {fontClassName}">{$('#item_textcontent').val();}</p></div>
|
8 |
+
]]>
|
9 |
+
</param>
|
10 |
+
<param name="style" type="style" previewmode="heading" set="1000" font="item_textfont" label="Style"
|
11 |
+
css="width: 140px;"><![CDATA[
|
12 |
+
<div style="width:{nextend.activeLayer.width()}px;"><p class="{styleClassName} {fontClassName}">{$('#item_textcontent').val();}</p></div>
|
13 |
+
]]>
|
14 |
+
</param>
|
15 |
+
<param name="contenttablet" type="richtextarea" label="Tablet text" default=""
|
16 |
+
style2="height: 120px; width: 230px;resize: vertical;"/>
|
17 |
+
<param name="contentmobile" type="richtextarea" label="Mobile text" default=""
|
18 |
+
style2="height: 120px; width: 230px;resize: vertical;"/>
|
19 |
+
</params>
|
20 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/vimeo/vimeo.php
ADDED
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.plugins.N2SliderItemAbstract', 'smartslider');
|
4 |
+
|
5 |
+
class N2SSPluginItemVimeo extends N2SSPluginItemAbstract
|
6 |
+
{
|
7 |
+
|
8 |
+
var $_identifier = 'vimeo';
|
9 |
+
|
10 |
+
protected $priority = 20;
|
11 |
+
|
12 |
+
protected $layerProperties = array(
|
13 |
+
"width" => 300,
|
14 |
+
"height" => 180
|
15 |
+
);
|
16 |
+
|
17 |
+
public function __construct() {
|
18 |
+
$this->_title = n2_x('Vimeo', 'Slide item');
|
19 |
+
}
|
20 |
+
|
21 |
+
function getTemplate($slider) {
|
22 |
+
return NHtml::tag('div', array(
|
23 |
+
"style" => 'width: 100%; height: 100%; min-height: 50px; background: url({image}) no-repeat 50% 50%; background-size: cover;'
|
24 |
+
));
|
25 |
+
}
|
26 |
+
|
27 |
+
function _render($data, $itemId, $slider, $slide) {
|
28 |
+
|
29 |
+
$data->set("vimeocode", preg_replace('/\D/', '', $slide->fill($data->get("vimeourl"))));
|
30 |
+
|
31 |
+
$style = '';
|
32 |
+
|
33 |
+
$hasImage = 0;
|
34 |
+
$image = $data->get('image');
|
35 |
+
if (!empty($image)) {
|
36 |
+
$style = 'cursor:pointer; background: url(' . N2ImageHelper::fixed($data->get('image')) . ') no-repeat 50% 50%; background-size: cover';
|
37 |
+
$hasImage = 1;
|
38 |
+
}
|
39 |
+
|
40 |
+
N2JS::addInline('window["' . $slider->elementId . '"].ready(function() {
|
41 |
+
var vimeo = new NextendSmartSliderVimeoItem(this, "' . $itemId . '", "' . $slider->elementId . '", ' . $data->toJSON() . ', ' . $hasImage . ');
|
42 |
+
});
|
43 |
+
');
|
44 |
+
|
45 |
+
return NHtml::tag('div', array(
|
46 |
+
'id' => $itemId,
|
47 |
+
'style' => 'position: absolute; top: 0; left: 0; width: 100%; height: 100%;' . $style
|
48 |
+
));
|
49 |
+
}
|
50 |
+
|
51 |
+
function _renderAdmin($data, $itemId, $slider, $slide) {
|
52 |
+
return NHtml::tag('div', array(
|
53 |
+
"style" => 'width: 100%; height: 100%; background: url(' . N2ImageHelper::fixed($data->getIfEmpty('image', '$system$/images/placeholder/video.png')) . ') no-repeat 50% 50%; background-size: cover;'
|
54 |
+
));
|
55 |
+
}
|
56 |
+
|
57 |
+
function getValues() {
|
58 |
+
return array(
|
59 |
+
'vimeourl' => '75251217',
|
60 |
+
'image' => '$system$/images/placeholder/video.png',
|
61 |
+
'center' => 0,
|
62 |
+
'autoplay' => 0,
|
63 |
+
'title' => 1,
|
64 |
+
'byline' => 1,
|
65 |
+
'portrait' => 0,
|
66 |
+
'color' => '00adef',
|
67 |
+
'loop' => 0
|
68 |
+
);
|
69 |
+
}
|
70 |
+
|
71 |
+
function getPath() {
|
72 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . $this->_identifier . DIRECTORY_SEPARATOR;
|
73 |
+
}
|
74 |
+
|
75 |
+
public function getFilled($slide, $data) {
|
76 |
+
$data->set('vimeourl', $slide->fill($data->get('vimeourl', '')));
|
77 |
+
return $data;
|
78 |
+
}
|
79 |
+
}
|
80 |
+
|
81 |
+
N2Plugin::addPlugin('ssitem', 'N2SSPluginItemVimeo');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/vimeo/vimeo/configuration.xml
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="vimeo-item" label="Vimeo item settings" hidetitle="1">
|
3 |
+
<param name="vimeourl" type="text" label="Vimeo url"/>
|
4 |
+
<param name="image" type="image" label="Cover image" fixed="1" style="width: 144px;"/>
|
5 |
+
<param name="volume" type="list" label="Volume" default="-1" translateable="1">
|
6 |
+
<option value="0">Mute</option>
|
7 |
+
<option value="0.25">25%</option>
|
8 |
+
<option value="0.5">50%</option>
|
9 |
+
<option value="0.75">75%</option>
|
10 |
+
<option value="1">100%</option>
|
11 |
+
<option value="-1">Default</option>
|
12 |
+
</param>
|
13 |
+
<param name="autoplay" type="onoff" label="Autoplay" default="0"/>
|
14 |
+
<param name="center" type="onoff" label="Centered" default="0" class="n2-hidden"/>
|
15 |
+
<param name="reset" type="onoff" label="Reset video when lose focus" default="0"/>
|
16 |
+
<param name="title" type="onoff" label="Title" default="1"/>
|
17 |
+
<param name="byline" type="onoff" label="Users byline" default="1"/>
|
18 |
+
<param name="portrait" type="onoff" label="Portrait" default="1"/>
|
19 |
+
<param name="color" type="color" label="Color" default="00adef"/>
|
20 |
+
</params>
|
21 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/youtube/youtube.php
ADDED
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.plugins.N2SliderItemAbstract', 'smartslider');
|
4 |
+
|
5 |
+
class N2SSPluginItemYouTube extends N2SSPluginItemAbstract
|
6 |
+
{
|
7 |
+
|
8 |
+
var $_identifier = 'youtube';
|
9 |
+
|
10 |
+
protected $priority = 20;
|
11 |
+
|
12 |
+
protected $layerProperties = array(
|
13 |
+
"width" => 300,
|
14 |
+
"height" => 180
|
15 |
+
);
|
16 |
+
|
17 |
+
public function __construct() {
|
18 |
+
$this->_title = n2_x('YouTube', 'Slide item');
|
19 |
+
}
|
20 |
+
|
21 |
+
function getTemplate($slider) {
|
22 |
+
return NHtml::tag('div', array(
|
23 |
+
"style" => 'width: 100%; height: 100%; min-height: 50px; background: url({image}) no-repeat 50% 50%; background-size: cover;'
|
24 |
+
));
|
25 |
+
}
|
26 |
+
|
27 |
+
function _render($data, $itemId, $slider, $slide) {
|
28 |
+
/**
|
29 |
+
* @var $data N2Data
|
30 |
+
*/
|
31 |
+
$data->fillDefault(array(
|
32 |
+
'image' => '',
|
33 |
+
'start' => 0,
|
34 |
+
'volume' => -1,
|
35 |
+
'autoplay' => 0,
|
36 |
+
'center' => 0,
|
37 |
+
'loop' => 0,
|
38 |
+
'theme' => 'dark',
|
39 |
+
'related' => 0,
|
40 |
+
'vq' => 'default'
|
41 |
+
));
|
42 |
+
$youTubeUrl = $this->parseYoutubeUrl($slide->fill($data->get('youtubeurl', '')));
|
43 |
+
$data->set("youtubecode", $youTubeUrl);
|
44 |
+
|
45 |
+
$style = '';
|
46 |
+
|
47 |
+
$hasImage = 0;
|
48 |
+
$image = $data->get('image');
|
49 |
+
if (!empty($image)) {
|
50 |
+
$style = 'cursor:pointer; background: url(' . N2ImageHelper::fixed($data->get('image')) . ') no-repeat 50% 50%; background-size: cover';
|
51 |
+
$hasImage = 1;
|
52 |
+
}
|
53 |
+
|
54 |
+
N2JS::addInline('window["' . $slider->elementId . '"].ready(function(){
|
55 |
+
new NextendSmartSliderYouTubeItem(this, "' . $itemId . '", ' . $data->toJSON() . ', ' . $hasImage . ');
|
56 |
+
});');
|
57 |
+
|
58 |
+
return NHtml::tag('div', array(
|
59 |
+
'id' => $itemId,
|
60 |
+
'style' => 'position: absolute; top: 0; left: 0; width: 100%; height: 100%;' . $style
|
61 |
+
));
|
62 |
+
}
|
63 |
+
|
64 |
+
function _renderAdmin($data, $itemId, $slider, $slide) {
|
65 |
+
return NHtml::tag('div', array(
|
66 |
+
"style" => 'width: 100%; height: 100%; background: url(' . N2ImageHelper::fixed($data->getIfEmpty('image', '$system$/images/placeholder/video.png')) . ') no-repeat 50% 50%; background-size: cover;'
|
67 |
+
));
|
68 |
+
}
|
69 |
+
|
70 |
+
function parseYoutubeUrl($youTubeUrl) {
|
71 |
+
preg_match('/^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/', $youTubeUrl, $matches);
|
72 |
+
|
73 |
+
if ($matches && isset($matches[7]) && strlen($matches[7]) == 11) {
|
74 |
+
return $matches[7];
|
75 |
+
}
|
76 |
+
|
77 |
+
return $youTubeUrl;
|
78 |
+
}
|
79 |
+
|
80 |
+
function getValues() {
|
81 |
+
return array(
|
82 |
+
'code' => 'qesNtYIBDfs',
|
83 |
+
'youtubeurl' => 'https://www.youtube.com/watch?v=MKmIwHAFjSU',
|
84 |
+
'image' => '$system$/images/placeholder/video.png',
|
85 |
+
'autoplay' => 0,
|
86 |
+
'defaultimage' => 'maxresdefault',
|
87 |
+
'related' => '0',
|
88 |
+
'vq' => 'default',
|
89 |
+
'center' => 0,
|
90 |
+
'loop' => 0
|
91 |
+
);
|
92 |
+
}
|
93 |
+
|
94 |
+
function getPath() {
|
95 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . $this->_identifier . DIRECTORY_SEPARATOR;
|
96 |
+
}
|
97 |
+
|
98 |
+
public function getFilled($slide, $data) {
|
99 |
+
$data->set('youtubeurl', $slide->fill($data->get('youtubeurl', '')));
|
100 |
+
return $data;
|
101 |
+
}
|
102 |
+
}
|
103 |
+
|
104 |
+
N2Plugin::addPlugin('ssitem', 'N2SSPluginItemYouTube');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/item/youtube/youtube/configuration.xml
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="youtube-item" label="Youtube item settings" hidetitle="1">
|
3 |
+
<param name="youtubeurl" type="text" label="Youtube url"
|
4 |
+
/>
|
5 |
+
<param name="image" type="image" label="Cover image" fixed="1" style="width: 144px;"
|
6 |
+
/>
|
7 |
+
<param name="start" type="number" label="Start time" default="0" style="width:36px;">
|
8 |
+
<unit>sec</unit>
|
9 |
+
</param>
|
10 |
+
|
11 |
+
<param name="volume" type="list" label="Volume" default="-1" translateable="1"
|
12 |
+
>
|
13 |
+
<option value="0">Mute</option>
|
14 |
+
<option value="0.25">25%</option>
|
15 |
+
<option value="0.5">50%</option>
|
16 |
+
<option value="0.75">75%</option>
|
17 |
+
<option value="1">100%</option>
|
18 |
+
<option value="-1">Default</option>
|
19 |
+
</param>
|
20 |
+
<param name="autoplay" type="onoff" label="Autoplay" default="0"
|
21 |
+
/>
|
22 |
+
<param name="center" type="onoff" label="Centered" default="0"/>
|
23 |
+
<param name="loop" type="onoff" label="Loop" default="0"
|
24 |
+
/>
|
25 |
+
|
26 |
+
<param name="theme" type="list" label="Theme" default="dark" translateable="1">
|
27 |
+
<option value="light">Light</option>
|
28 |
+
<option value="dark">Dark</option>
|
29 |
+
</param>
|
30 |
+
<param name="related" type="onoff" label="Show related videos" default="0"
|
31 |
+
/>
|
32 |
+
<param name="vq" type="list" label="Video quality" default="default" translateable="1"
|
33 |
+
>
|
34 |
+
<option value="small">240p</option>
|
35 |
+
<option value="medium">360p</option>
|
36 |
+
<option value="large">480p</option>
|
37 |
+
<option value="hd720">720p</option>
|
38 |
+
<option value="hd1080">1080p</option>
|
39 |
+
<option value="highres">High res</option>
|
40 |
+
<option value="default">Default</option>
|
41 |
+
</param>
|
42 |
+
</params>
|
43 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/loadplugin.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$mdir = dirname(__FILE__).DIRECTORY_SEPARATOR;
|
5 |
+
foreach(N2Filesystem::folders($mdir) AS $mfolder){
|
6 |
+
$mfile = $mdir.$mfolder.DIRECTORY_SEPARATOR.'loadplugin.php';
|
7 |
+
if(N2Filesystem::fileexists($mfile)){
|
8 |
+
require_once($mfile);
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/responsive/auto/auto.php
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SSPluginResponsiveAuto extends N2PluginBase
|
4 |
+
{
|
5 |
+
|
6 |
+
private static $name = 'auto';
|
7 |
+
|
8 |
+
function onResponsiveList(&$list, &$labels) {
|
9 |
+
$list[self::$name] = $this->getPath();
|
10 |
+
$labels[self::$name] = n2_x('Auto', 'Slider responsive mode');
|
11 |
+
}
|
12 |
+
|
13 |
+
static function getPath() {
|
14 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . self::$name . DIRECTORY_SEPARATOR;
|
15 |
+
}
|
16 |
+
}
|
17 |
+
|
18 |
+
N2Plugin::addPlugin('ssresponsive', 'N2SSPluginResponsiveAuto');
|
19 |
+
|
20 |
+
class N2SSResponsiveAuto
|
21 |
+
{
|
22 |
+
|
23 |
+
private $params, $responsive;
|
24 |
+
|
25 |
+
public function __construct($params, $responsive) {
|
26 |
+
$this->params = $params;
|
27 |
+
$this->responsive = $responsive;
|
28 |
+
|
29 |
+
$this->responsive->scaleDown = intval($this->params->get('responsiveScaleDown', 1));
|
30 |
+
$this->responsive->scaleUp = intval($this->params->get('responsiveScaleUp', 0));
|
31 |
+
|
32 |
+
|
33 |
+
$this->responsive->minimumHeight = intval($this->params->get('responsiveSliderHeightMin', 0));
|
34 |
+
$this->responsive->maximumHeight = intval($this->params->get('responsiveSliderHeightMax', 3000));
|
35 |
+
|
36 |
+
$this->responsive->maximumSlideWidth = intval($this->params->get('responsiveSlideWidthMax', 3000));
|
37 |
+
|
38 |
+
}
|
39 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/responsive/auto/auto/responsive.xml
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="smartslider-responsive-auto" label="Responsive - Auto width" >
|
3 |
+
<param type="group" label="Mode" default="1|*|0"
|
4 |
+
>
|
5 |
+
<param name="responsiveScaleDown" type="onoff" label="Down scale" default="1"/>
|
6 |
+
<param name="responsiveScaleUp" type="onoff" label="Up scale" default="0"/>
|
7 |
+
</param>
|
8 |
+
<param type="group" label="Slider height">
|
9 |
+
<param name="responsiveSliderHeightMin" type="number" label="Min" style="width:40px" default="0">
|
10 |
+
<unit>px</unit>
|
11 |
+
</param>
|
12 |
+
<param name="responsiveSliderHeightMax" type="number" label="Max" style="width:40px" default="3000">
|
13 |
+
<unit>px</unit>
|
14 |
+
</param>
|
15 |
+
</param>
|
16 |
+
<param type="group" label="Slide width" >
|
17 |
+
<param name="responsiveSlideWidthMax" type="numberautocomplete" label="Max" default="3000" values="3000,980"
|
18 |
+
style="width:40px">
|
19 |
+
<unit>px</unit>
|
20 |
+
</param>
|
21 |
+
</param>
|
22 |
+
</params>
|
23 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/responsive/fullwidth/fullwidth.php
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SSPluginResponsiveFullWidth extends N2PluginBase
|
4 |
+
{
|
5 |
+
|
6 |
+
private static $name = 'fullwidth';
|
7 |
+
|
8 |
+
function onResponsiveList(&$list, &$labels) {
|
9 |
+
$list[self::$name] = $this->getPath();
|
10 |
+
$labels[self::$name] = n2_x('Fullwidth', 'Slider responsive mode');
|
11 |
+
}
|
12 |
+
|
13 |
+
static function getPath() {
|
14 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . self::$name . DIRECTORY_SEPARATOR;
|
15 |
+
}
|
16 |
+
}
|
17 |
+
|
18 |
+
N2Plugin::addPlugin('ssresponsive', 'N2SSPluginResponsiveFullWidth');
|
19 |
+
|
20 |
+
class N2SSResponsiveFullWidth
|
21 |
+
{
|
22 |
+
|
23 |
+
private $params, $responsive;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* @param $params
|
27 |
+
* @param $responsive N2SmartSliderFeatureResponsive
|
28 |
+
*/
|
29 |
+
public function __construct($params, $responsive) {
|
30 |
+
$this->params = $params;
|
31 |
+
$this->responsive = $responsive;
|
32 |
+
|
33 |
+
$this->responsive->scaleDown = 1;
|
34 |
+
$this->responsive->scaleUp = 1;
|
35 |
+
|
36 |
+
$this->responsive->minimumHeight = intval($this->params->get('responsiveSliderHeightMin', 0));
|
37 |
+
$this->responsive->maximumHeight = intval($this->params->get('responsiveSliderHeightMax', 3000));
|
38 |
+
|
39 |
+
|
40 |
+
if ($this->params->get('responsiveSlideWidth', 1)) {
|
41 |
+
$this->responsive->maximumSlideWidth = intval($this->params->get('responsiveSlideWidthMax', 3000));
|
42 |
+
}
|
43 |
+
|
44 |
+
if ($this->params->get('responsiveSlideWidthDesktopLandscape', 1)) {
|
45 |
+
$this->responsive->maximumSlideWidthLandscape = intval($this->params->get('responsiveSlideWidthMaxDesktopLandscape', 1600));
|
46 |
+
}
|
47 |
+
|
48 |
+
if ($this->params->get('responsiveSlideWidthTablet', 0)) {
|
49 |
+
$this->responsive->maximumSlideWidthTablet = intval($this->params->get('responsiveSlideWidthMaxTablet', 980));
|
50 |
+
}
|
51 |
+
|
52 |
+
if ($this->params->get('responsiveSlideWidthTabletLandscape', 0)) {
|
53 |
+
$this->responsive->maximumSlideWidthTabletLandscape = intval($this->params->get('responsiveSlideWidthMaxTabletLandscape', 1200));
|
54 |
+
}
|
55 |
+
|
56 |
+
if ($this->params->get('responsiveSlideWidthMobile', 0)) {
|
57 |
+
$this->responsive->maximumSlideWidthMobile = intval($this->params->get('responsiveSlideWidthMaxMobile', 480));
|
58 |
+
}
|
59 |
+
|
60 |
+
if ($this->params->get('responsiveSlideWidthMobileLandscape', 0)) {
|
61 |
+
$this->responsive->maximumSlideWidthMobileLandscape = intval($this->params->get('responsiveSlideWidthMaxMobileLandscape', 780));
|
62 |
+
}
|
63 |
+
|
64 |
+
$this->responsive->maximumSlideWidthConstrainHeight = intval($this->params->get('responsiveSlideWidthConstrainHeight', 0));
|
65 |
+
|
66 |
+
$this->responsive->orientationMode = $this->params->get('responsiveSliderOrientation', 'width_and_height');
|
67 |
+
|
68 |
+
$this->responsive->forceFull = intval($this->params->get('responsiveForceFull', 1));
|
69 |
+
}
|
70 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/responsive/fullwidth/fullwidth/responsive.xml
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="smartslider-responsive-full-width" label="Responsive - Full width">
|
3 |
+
<param type="group" label="Slider height">
|
4 |
+
<param name="responsiveSliderHeightMin" type="number" label="Min" style="width:40px" default="0">
|
5 |
+
<unit>px</unit>
|
6 |
+
</param>
|
7 |
+
<param name="responsiveSliderHeightMax" type="number" label="Max" style="width:40px" default="3000">
|
8 |
+
<unit>px</unit>
|
9 |
+
</param>
|
10 |
+
</param>
|
11 |
+
<param type="onoff" name="responsiveSlideWidthConstrainHeight" label="Constrain slider height to slide width"
|
12 |
+
default="0"/>
|
13 |
+
<param type="radio" name="responsiveSliderOrientation" label="Portrait or Landscape algorithm"
|
14 |
+
default="width_and_height">
|
15 |
+
<option value="width_and_height">Screen width and height</option>
|
16 |
+
<option value="width">Screen width only</option>
|
17 |
+
</param>
|
18 |
+
<param type="group" label="Slide width - desktop">
|
19 |
+
<param type="onoff" name="responsiveSlideWidth" label="Portrait" default="1"/>
|
20 |
+
<param name="responsiveSlideWidthMax" type="numberautocomplete" label="Max" default="3000"
|
21 |
+
style="width:40px" values="3000,980">
|
22 |
+
<unit>px</unit>
|
23 |
+
</param>
|
24 |
+
|
25 |
+
<param type="onoff" name="responsiveSlideWidthDesktopLandscape" label="Landscape" default="0"
|
26 |
+
class="n2-expert"/>
|
27 |
+
<param name="responsiveSlideWidthMaxDesktopLandscape" type="numberautocomplete" label="Max" default="1600"
|
28 |
+
style="width:40px" values="3000,1600" class="n2-expert">
|
29 |
+
<unit>px</unit>
|
30 |
+
</param>
|
31 |
+
</param>
|
32 |
+
<param type="group" label="Slide width - Tablet">
|
33 |
+
|
34 |
+
<param type="onoff" name="responsiveSlideWidthTablet" label="Portrait" default="0"/>
|
35 |
+
<param name="responsiveSlideWidthMaxTablet" type="numberautocomplete" label="Max" default="980"
|
36 |
+
style="width:40px" values="3000,980">
|
37 |
+
<unit>px</unit>
|
38 |
+
</param>
|
39 |
+
|
40 |
+
<param type="onoff" name="responsiveSlideWidthTabletLandscape" label="Landscape" default="0"
|
41 |
+
class="n2-expert"/>
|
42 |
+
<param name="responsiveSlideWidthMaxTabletLandscape" type="numberautocomplete" label="Max" default="1200"
|
43 |
+
style="width:40px" values="3000,1200" class="n2-expert">
|
44 |
+
<unit>px</unit>
|
45 |
+
</param>
|
46 |
+
</param>
|
47 |
+
<param type="group" label="Slide width - Mobile">
|
48 |
+
|
49 |
+
<param type="onoff" name="responsiveSlideWidthMobile" label="Portrait" default="0"/>
|
50 |
+
<param name="responsiveSlideWidthMaxMobile" type="numberautocomplete" label="Max" default="480"
|
51 |
+
style="width:40px" values="3000,480">
|
52 |
+
<unit>px</unit>
|
53 |
+
</param>
|
54 |
+
<param type="onoff" name="responsiveSlideWidthMobileLandscape" label="Landscape" default="0"
|
55 |
+
class="n2-expert"/>
|
56 |
+
<param name="responsiveSlideWidthMaxMobileLandscape" type="numberautocomplete" label="Max" default="740"
|
57 |
+
style="width:40px" values="3000,740" class="n2-expert">
|
58 |
+
<unit>px</unit>
|
59 |
+
</param>
|
60 |
+
</param>
|
61 |
+
<param type="onoff" name="responsiveForceFull" label="Force full width" default="1"/>
|
62 |
+
</params>
|
63 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/responsive/loadplugin.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$dir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
5 |
+
foreach (N2Filesystem::folders($dir) AS $folder) {
|
6 |
+
$file = $dir . $folder . DIRECTORY_SEPARATOR . $folder . '.php';
|
7 |
+
if (N2Filesystem::fileexists($file)) {
|
8 |
+
require_once($file);
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/type/loadplugin.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$dir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
5 |
+
foreach (N2Filesystem::folders($dir) AS $folder) {
|
6 |
+
$file = $dir . $folder . DIRECTORY_SEPARATOR . $folder . '.php';
|
7 |
+
if (N2Filesystem::fileexists($file)) {
|
8 |
+
require_once($file);
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/type/simple/simple.php
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SSPluginTypeSimple extends N2PluginBase
|
4 |
+
{
|
5 |
+
|
6 |
+
private static $name = 'simple';
|
7 |
+
|
8 |
+
function onTypeList(&$list, &$labels) {
|
9 |
+
$list[self::$name] = $this->getPath();
|
10 |
+
$labels[self::$name] = n2_x('Simple', 'Slider type');
|
11 |
+
}
|
12 |
+
|
13 |
+
static function getPath() {
|
14 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . self::$name . DIRECTORY_SEPARATOR;
|
15 |
+
}
|
16 |
+
}
|
17 |
+
|
18 |
+
N2Plugin::addPlugin('sstype', 'N2SSPluginTypeSimple');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/type/simple/simple/backup.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderBackupSimple
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
* @param N2SmartSliderExport $export
|
8 |
+
* @param $slider
|
9 |
+
*/
|
10 |
+
public static function export($export, $slider) {
|
11 |
+
$export->addImage($slider['params']->get('background', ''));
|
12 |
+
}
|
13 |
+
|
14 |
+
/**
|
15 |
+
* @param N2SmartSliderImport $import
|
16 |
+
* @param $slider
|
17 |
+
*/
|
18 |
+
public static function import($import, $slider) {
|
19 |
+
|
20 |
+
$slider['params']->set('background', $import->fixImage($slider['params']->get('background', '')));
|
21 |
+
}
|
22 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/type/simple/simple/css.php
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderCSSSimple extends N2SmartSliderCSSAbstract
|
4 |
+
{
|
5 |
+
|
6 |
+
protected function renderType(&$context) {
|
7 |
+
$params = $this->slider->params;
|
8 |
+
N2Loader::import('libraries.image.color');
|
9 |
+
|
10 |
+
$width = intval($context['width']);
|
11 |
+
$height = intval($context['height']);
|
12 |
+
|
13 |
+
$context['backgroundSize'] = $params->get('background-size');
|
14 |
+
$context['backgroundAttachment'] = $params->get('background-fixed') ? 'fixed' : 'scroll';
|
15 |
+
|
16 |
+
$borderWidth = $params->get('border-width');
|
17 |
+
$borderColor = $params->get('border-color');
|
18 |
+
$context['borderRadius'] = $params->get('border-radius') . 'px';
|
19 |
+
|
20 |
+
$padding = N2Parse::parse($params->get('padding'));
|
21 |
+
$context['paddingt'] = $padding[0] . 'px';
|
22 |
+
$context['paddingr'] = $padding[1] . 'px';
|
23 |
+
$context['paddingb'] = $padding[2] . 'px';
|
24 |
+
$context['paddingl'] = $padding[3] . 'px';
|
25 |
+
|
26 |
+
if ($context['canvas']) {
|
27 |
+
$width += 2 * $borderWidth + $padding[1] + $padding[3];
|
28 |
+
$height += 2 * $borderWidth + $padding[0] + $padding[2];
|
29 |
+
|
30 |
+
$context['width'] = $width . "px";
|
31 |
+
$context['height'] = $height . "px";
|
32 |
+
}
|
33 |
+
|
34 |
+
|
35 |
+
$context['border'] = $borderWidth . 'px';
|
36 |
+
|
37 |
+
$rgba = N2Color::hex2rgba($borderColor);
|
38 |
+
$context['borderrgba'] = 'RGBA(' . $rgba[0] . ',' . $rgba[1] . ',' . $rgba[2] . ',' . round($rgba[3] / 127, 2) . ')';
|
39 |
+
$context['borderhex'] = '#' . substr($borderColor, 0, 6);
|
40 |
+
|
41 |
+
$width = $width - ($padding[1] + $padding[3]) - $borderWidth * 2;
|
42 |
+
$height = $height - ($padding[0] + $padding[2]) - $borderWidth * 2;
|
43 |
+
$context['inner1height'] = $height . 'px';
|
44 |
+
|
45 |
+
$context['canvaswidth'] = $width . "px";
|
46 |
+
$context['canvasheight'] = $height . "px";
|
47 |
+
|
48 |
+
N2LESS::addFile(N2Filesystem::translate(dirname(__FILE__) . NDS . 'style.less'), $this->slider->cacheId, $context, NEXTEND_SMARTSLIDER_ASSETS . '/less' . NDS);
|
49 |
+
}
|
50 |
+
|
51 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/type/simple/simple/slide.xml
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="simpleslidertypeanimation" label="Animation settings">
|
3 |
+
<param type="group" label="Background animation">
|
4 |
+
<param type="backgroundanimation" name="background-animation" label="Animation(s)" default=""/>
|
5 |
+
<param type="list" name="background-animation-speed" label="Speed" default="default" translateable="1">
|
6 |
+
<option value="default">Default</option>
|
7 |
+
<option value="superSlow">Super slow</option>
|
8 |
+
<option value="slow">Slow</option>
|
9 |
+
<option value="normal">Normal</option>
|
10 |
+
<option value="fast">Fast</option>
|
11 |
+
<option value="superFast">Super fast</option>
|
12 |
+
</param>
|
13 |
+
</param>
|
14 |
+
</params>
|
15 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/type/simple/simple/slider.xml
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="simpledefaultslidertypeanimation" label="Animation settings">
|
3 |
+
<param name="animation" type="radio" label="Animation" default="horizontal" translateable="1">
|
4 |
+
<option value="no">No animation</option>
|
5 |
+
<option value="horizontal">Horizontal</option>
|
6 |
+
<option value="vertical">Vertical</option>
|
7 |
+
<option value="fade">Fade</option>
|
8 |
+
</param>
|
9 |
+
<param type="group" label="Properties">
|
10 |
+
<param name="animation-duration" type="numberautocomplete" label="Duration" style="width:35px;" default="800" values="800,1500,2000">
|
11 |
+
<unit>ms</unit>
|
12 |
+
</param>
|
13 |
+
</param>
|
14 |
+
<param type="group" label="Background animation">
|
15 |
+
<param type="backgroundanimation" name="background-animation" label="Animation(s)" default=""/>
|
16 |
+
<param type="list" name="background-animation-speed" label="Speed" default="normal" translateable="1">
|
17 |
+
<option value="superSlow">Super slow</option>
|
18 |
+
<option value="slow">Slow</option>
|
19 |
+
<option value="normal">Normal</option>
|
20 |
+
<option value="fast">Fast</option>
|
21 |
+
<option value="superFast">Super fast</option>
|
22 |
+
</param>
|
23 |
+
</param>
|
24 |
+
</params>
|
25 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/type/simple/simple/type.php
ADDED
@@ -0,0 +1,223 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderTypeSimple extends N2SmartSliderType
|
4 |
+
{
|
5 |
+
|
6 |
+
private $backgroundAnimation = false;
|
7 |
+
|
8 |
+
public function getDefaults() {
|
9 |
+
return array(
|
10 |
+
'background' => '',
|
11 |
+
'background-size' => 'cover',
|
12 |
+
'background-fixed' => 0,
|
13 |
+
'padding' => '0|*|0|*|0|*|0',
|
14 |
+
'border-width' => 0,
|
15 |
+
'border-color' => '3E3E3Eff',
|
16 |
+
'border-radius' => 0,
|
17 |
+
'slider-css' => '',
|
18 |
+
'animation' => 'horizontal',
|
19 |
+
'animation-duration' => 800,
|
20 |
+
'animation-delay' => 0,
|
21 |
+
'animation-easing' => 'easeOutQuad',
|
22 |
+
'animation-parallax' => 1,
|
23 |
+
'animation-shifted-background-animation' => 'auto',
|
24 |
+
'carousel' => 1,
|
25 |
+
|
26 |
+
'background-animation' => '',
|
27 |
+
'kenburns-animation' => ''
|
28 |
+
);
|
29 |
+
}
|
30 |
+
|
31 |
+
protected function renderType() {
|
32 |
+
|
33 |
+
$params = $this->slider->params;
|
34 |
+
|
35 |
+
N2JS::addFiles(N2Filesystem::translate(dirname(__FILE__) . "/gsap"), array(
|
36 |
+
"MainAnimationSimple.js",
|
37 |
+
"TypeSimple.js",
|
38 |
+
"ResponsiveSimple.js"
|
39 |
+
), "smartslider-simple-type-frontend");
|
40 |
+
|
41 |
+
N2JS::addFiles(N2Filesystem::translate(dirname(__FILE__) . "/gsap"), array(
|
42 |
+
"BackgroundAnimation.js"
|
43 |
+
), "smartslider-simple-type-frontend");
|
44 |
+
|
45 |
+
N2JS::addFiles(NEXTEND_SMARTSLIDER_ASSETS . "/js/animation", array(
|
46 |
+
"BackgroundAnimationAbstract.js",
|
47 |
+
'Flux.js'
|
48 |
+
), "smartslider-simple-type-frontend");
|
49 |
+
|
50 |
+
$background = $params->get('background');
|
51 |
+
$css = $params->get('slider-css');
|
52 |
+
if (!empty($background)) {
|
53 |
+
$css = 'background-image: url(' . N2ImageHelper::fixed($background) . ');';
|
54 |
+
}
|
55 |
+
|
56 |
+
$this->initBackgroundAnimation();
|
57 |
+
echo $this->openSliderElement();
|
58 |
+
?>
|
59 |
+
|
60 |
+
<div class="n2-ss-slider-1" style="<?php echo $css; ?>">
|
61 |
+
<?php
|
62 |
+
echo $this->getBackgroundVideo($params);
|
63 |
+
?>
|
64 |
+
<div class="n2-ss-slider-2">
|
65 |
+
<?php if ($this->backgroundAnimation): ?>
|
66 |
+
<div class="n2-ss-background-animation"></div>
|
67 |
+
<?php endif; ?>
|
68 |
+
<div class="n2-ss-slider-3">
|
69 |
+
|
70 |
+
<?php
|
71 |
+
$staticSlideEdit = false;
|
72 |
+
if ($this->slider->isAdmin && count($this->slider->staticSlides)) {
|
73 |
+
$staticSlideEdit = true;
|
74 |
+
}
|
75 |
+
echo $this->slider->staticHtml;
|
76 |
+
foreach ($this->slider->slides AS $i => $slide) {
|
77 |
+
|
78 |
+
echo NHtml::tag('div', $slide->attributes + array(
|
79 |
+
'class' => 'n2-ss-slide n2-ss-canvas ' . $slide->classes,
|
80 |
+
'style' => $slide->style
|
81 |
+
), $slide->background . $slide->getHTML());
|
82 |
+
}
|
83 |
+
?>
|
84 |
+
</div>
|
85 |
+
</div>
|
86 |
+
</div>
|
87 |
+
<?php
|
88 |
+
$this->widgets->echoRemainder();
|
89 |
+
echo NHtml::closeTag('div');
|
90 |
+
|
91 |
+
$this->javaScriptProperties['mainanimation'] = array(
|
92 |
+
'type' => $params->get('animation'),
|
93 |
+
'duration' => intval($params->get('animation-duration')),
|
94 |
+
'delay' => intval($params->get('animation-delay')),
|
95 |
+
'ease' => $params->get('animation-easing'),
|
96 |
+
'parallax' => floatval($params->get('animation-parallax')),
|
97 |
+
'shiftedBackgroundAnimation' => $params->get('animation-shifted-background-animation')
|
98 |
+
);
|
99 |
+
$this->javaScriptProperties['mainanimation']['shiftedBackgroundAnimation'] = 0;
|
100 |
+
|
101 |
+
|
102 |
+
$this->javaScriptProperties['carousel'] = intval($params->get('carousel'));
|
103 |
+
|
104 |
+
$this->javaScriptProperties['dynamicHeight'] = intval($params->get('dynamic-height', '0'));
|
105 |
+
$this->javaScriptProperties['dynamicHeight'] = 0;
|
106 |
+
|
107 |
+
|
108 |
+
N2Plugin::callPlugin('nextendslider', 'onNextendSliderProperties', array(&$this->javaScriptProperties));
|
109 |
+
|
110 |
+
N2JS::addFirstCode("new NextendSmartSliderSimple(n2('#{$this->slider->elementId}'), " . json_encode($this->javaScriptProperties) . ");");
|
111 |
+
|
112 |
+
echo NHtml::clear();
|
113 |
+
}
|
114 |
+
|
115 |
+
private function initBackgroundAnimation() {
|
116 |
+
$speed = $this->slider->params->get('background-animation-speed', 'normal');
|
117 |
+
$this->javaScriptProperties['bgAnimations'] = array(
|
118 |
+
'global' => $this->parseBackgroundAnimations($this->slider->params->get('background-animation', '')),
|
119 |
+
'speed' => $speed
|
120 |
+
);
|
121 |
+
|
122 |
+
$slides = array();
|
123 |
+
$hasCustom = false;
|
124 |
+
|
125 |
+
foreach ($this->slider->slides AS $i => $slide) {
|
126 |
+
$animation = $this->parseBackgroundAnimations($slide->parameters->get('background-animation'));
|
127 |
+
if ($animation) {
|
128 |
+
$slideSpeed = $slide->parameters->get('background-animation-speed', 'default');
|
129 |
+
if ($slideSpeed == 'default') {
|
130 |
+
$slideSpeed = $speed;
|
131 |
+
}
|
132 |
+
$slides[$i] = array(
|
133 |
+
'animation' => $this->parseBackgroundAnimations($slide->parameters->get('background-animation')),
|
134 |
+
'speed' => $slideSpeed
|
135 |
+
);
|
136 |
+
if ($slides[$i]) {
|
137 |
+
$hasCustom = true;
|
138 |
+
}
|
139 |
+
}
|
140 |
+
}
|
141 |
+
if ($hasCustom) {
|
142 |
+
$this->javaScriptProperties['bgAnimations']['slides'] = $slides;
|
143 |
+
} else if (!$this->javaScriptProperties['bgAnimations']['global']) {
|
144 |
+
$this->javaScriptProperties['bgAnimations'] = 0;
|
145 |
+
}
|
146 |
+
}
|
147 |
+
|
148 |
+
private function parseBackgroundAnimations($backgroundAnimation) {
|
149 |
+
$backgroundAnimations = array_unique(array_map('intval', explode('||', $backgroundAnimation)));
|
150 |
+
|
151 |
+
$jsProps = array();
|
152 |
+
|
153 |
+
if (count($backgroundAnimations)) {
|
154 |
+
N2Loader::import('libraries.backgroundanimation.storage', 'smartslider');
|
155 |
+
|
156 |
+
foreach ($backgroundAnimations AS $animationId) {
|
157 |
+
$animation = N2StorageSectionAdmin::getById($animationId, 'backgroundanimation');
|
158 |
+
if (isset($animation)) {
|
159 |
+
$jsProps[] = $animation['value']['data'];
|
160 |
+
}
|
161 |
+
|
162 |
+
}
|
163 |
+
|
164 |
+
if (count($jsProps)) {
|
165 |
+
$this->backgroundAnimation = true;
|
166 |
+
return $jsProps;
|
167 |
+
}
|
168 |
+
}
|
169 |
+
return 0;
|
170 |
+
}
|
171 |
+
|
172 |
+
private function getBackgroundVideo($params) {
|
173 |
+
$mp4 = $params->get('backgroundVideoMp4', '');
|
174 |
+
$webm = $params->get('backgroundVideoWebm', '');
|
175 |
+
$ogg = $params->get('backgroundVideoOgg', '');
|
176 |
+
|
177 |
+
if (empty($mp4) && empty($webm) && empty($ogg)) {
|
178 |
+
return '';
|
179 |
+
}
|
180 |
+
|
181 |
+
$sources = '';
|
182 |
+
|
183 |
+
if ($mp4) {
|
184 |
+
$sources .= NHtml::tag("source", array(
|
185 |
+
"src" => $mp4,
|
186 |
+
"type" => "video/mp4"
|
187 |
+
));
|
188 |
+
}
|
189 |
+
|
190 |
+
if ($webm) {
|
191 |
+
$sources .= NHtml::tag("source", array(
|
192 |
+
"src" => $webm,
|
193 |
+
"type" => "video/webm"
|
194 |
+
));
|
195 |
+
}
|
196 |
+
|
197 |
+
if ($ogg) {
|
198 |
+
$sources .= NHtml::tag("source", array(
|
199 |
+
"src" => $ogg,
|
200 |
+
"type" => "video/ogg"
|
201 |
+
));
|
202 |
+
}
|
203 |
+
|
204 |
+
$attributes = array(
|
205 |
+
'autoplay' => 1
|
206 |
+
);
|
207 |
+
|
208 |
+
if ($params->get('backgroundVideoMuted', 1)) {
|
209 |
+
$attributes['muted'] = 'muted';
|
210 |
+
}
|
211 |
+
|
212 |
+
if ($params->get('backgroundVideoLoop', 1)) {
|
213 |
+
$attributes['loop'] = 'loop';
|
214 |
+
}
|
215 |
+
|
216 |
+
return NHtml::tag('video', $attributes + array(
|
217 |
+
'class' => 'n2-ss-slider-background-video',
|
218 |
+
'data-mode' => $params->get('backgroundVideoMode', 'fill')
|
219 |
+
), $sources);
|
220 |
+
|
221 |
+
}
|
222 |
+
}
|
223 |
+
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/arrow/arrow.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SSPluginWidgetArrow extends N2PluginBase
|
4 |
+
{
|
5 |
+
|
6 |
+
private static $group = 'arrow';
|
7 |
+
|
8 |
+
function onWidgetList(&$list) {
|
9 |
+
$list[self::$group] = array(
|
10 |
+
n2_('Arrows'),
|
11 |
+
$this->getPath(),
|
12 |
+
1
|
13 |
+
);
|
14 |
+
}
|
15 |
+
|
16 |
+
function getPath() {
|
17 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . self::$group . DIRECTORY_SEPARATOR;
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
N2Plugin::addPlugin('sswidget', 'N2SSPluginWidgetArrow');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/arrow/arrow/config.xml
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="widgetsarrow" label="" hidetitle="1">
|
3 |
+
<param name="widgetarrow" ajaxurl="slider/renderform" type="widgetpluginmatrix" label="Arrow" group="sswidgetarrow" method="arrow" file="config.xml" default="imageEmpty"/>
|
4 |
+
<param type="group" label="Shows on">
|
5 |
+
<param name="widget-arrow-display-hover" type="onoff" label="Hover" default="0"/></param>
|
6 |
+
</params>
|
7 |
+
<params name="widget-arrow-placeholder" label="Slider Type placeholder" id="nextend-widgetarrow-panel" type="placeholder"></params>
|
8 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/autoplay/autoplay.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SSPluginWidgetAutoplay extends N2PluginBase
|
4 |
+
{
|
5 |
+
|
6 |
+
private static $group = 'autoplay';
|
7 |
+
|
8 |
+
function onWidgetList(&$list) {
|
9 |
+
$list[self::$group] = array(
|
10 |
+
n2_('Autoplay'),
|
11 |
+
$this->getPath(),
|
12 |
+
3
|
13 |
+
);
|
14 |
+
}
|
15 |
+
|
16 |
+
function getPath() {
|
17 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . self::$group . DIRECTORY_SEPARATOR;
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
N2Plugin::addPlugin('sswidget', 'N2SSPluginWidgetAutoplay');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/autoplay/autoplay/config.xml
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="widgetsautoplay" label="" hidetitle="1">
|
3 |
+
<param name="widgetautoplay" type="widgetpluginmatrix" ajaxurl="slider/renderform" label="Autoplay" group="sswidgetautoplay" method="autoplay" file="config.xml" default="disabled"/>
|
4 |
+
<param type="group" label="Shows on">
|
5 |
+
<param name="widget-autoplay-display-hover" type="onoff" label="Hover" default="0"/></param>
|
6 |
+
</params>
|
7 |
+
<params name="widget-autoplay-placeholder" label="" id="nextend-widgetautoplay-panel" type="placeholder"></params>
|
8 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/bar/bar.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SSPluginWidgetBar extends N2PluginBase
|
4 |
+
{
|
5 |
+
|
6 |
+
private static $group = 'bar';
|
7 |
+
|
8 |
+
function onWidgetList(&$list) {
|
9 |
+
$list[self::$group] = array(
|
10 |
+
n2_('Bar'),
|
11 |
+
$this->getPath(),
|
12 |
+
5
|
13 |
+
);
|
14 |
+
}
|
15 |
+
|
16 |
+
function getPath() {
|
17 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . self::$group . DIRECTORY_SEPARATOR;
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
N2Plugin::addPlugin('sswidget', 'N2SSPluginWidgetBar');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/bar/bar/config.xml
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="widgetsbar" label="" hidetitle="1">
|
3 |
+
<param name="widgetbar" type="widgetpluginmatrix" ajaxurl="slider/renderform" label="Bar" group="sswidgetbar" method="bar" file="config.xml" default=""/>
|
4 |
+
<param type="group" label="Shows on">
|
5 |
+
<param name="widget-bar-display-hover" type="onoff" label="Hover" default="0"/></param>
|
6 |
+
</params>
|
7 |
+
<params name="widget-bar-placeholder" label="" id="nextend-widgetbar-panel" type="placeholder"></params>
|
8 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/bullet/bullet.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SSPluginWidgetBullet extends N2PluginBase
|
4 |
+
{
|
5 |
+
|
6 |
+
private static $group = 'bullet';
|
7 |
+
|
8 |
+
function onWidgetList(&$list) {
|
9 |
+
$list[self::$group] = array(
|
10 |
+
n2_('Bullets'),
|
11 |
+
$this->getPath(),
|
12 |
+
2
|
13 |
+
);
|
14 |
+
}
|
15 |
+
|
16 |
+
function getPath() {
|
17 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . self::$group . DIRECTORY_SEPARATOR;
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
N2Plugin::addPlugin('sswidget', 'N2SSPluginWidgetBullet');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/bullet/bullet/config.xml
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="widgetsbullet" label="" hidetitle="1">
|
3 |
+
<param name="widgetbullet" type="widgetpluginmatrix" ajaxurl="slider/renderform" label="Bullet" group="sswidgetbullet" method="bullet" file="config.xml" default="disabled"/>
|
4 |
+
<param type="group" label="Shows on">
|
5 |
+
<param name="widget-bullet-display-hover" type="onoff" label="Hover" default="0"/></param>
|
6 |
+
<param type="group" label="Thumbnail">
|
7 |
+
<param type="onoff" label="Enabled" name="widget-bullet-thumbnail-show-image" default="0"/>
|
8 |
+
<param name="widget-bullet-thumbnail-width" type="numberautocomplete" label="Width" default="100" style="width:30px" values="60,100,150,200">
|
9 |
+
<unit>px</unit>
|
10 |
+
</param>
|
11 |
+
<param name="widget-bullet-thumbnail-height" type="numberautocomplete" label="Height" default="60" style="width:30px" values="60,100,150,200">
|
12 |
+
<unit>px</unit>
|
13 |
+
</param>
|
14 |
+
<param name="widget-bullet-thumbnail-style" type="style" previewmode="simple" default="eyJuYW1lIjoiU3RhdGljIiwiZGF0YSI6W3siYmFja2dyb3VuZGNvbG9yIjoiMDAwMDAwODAiLCJwYWRkaW5nIjoiM3wqfDN8KnwzfCp8M3wqfHB4IiwiYm94c2hhZG93IjoiMHwqfDB8KnwwfCp8MHwqfDAwMDAwMGZmIiwiYm9yZGVyIjoiMHwqfHNvbGlkfCp8MDAwMDAwZmYiLCJib3JkZXJyYWRpdXMiOiIzIiwiZXh0cmEiOiJtYXJnaW46IDVweDsifV19" label="Style">
|
15 |
+
<![CDATA[ <div class="{styleClassName}" style="display: inline-block;"><div style="width:{$('#sliderwidget-bullet-thumbnail-width').val()}px; height: {$('#sliderwidget-bullet-thumbnail-height').val()}px; overflow: hidden; background: url('$system$/images/placeholder/image.png');background-size: cover;"></div></div> ]]>
|
16 |
+
</param>
|
17 |
+
<param name="widget-bullet-thumbnail-side" type="switcher" label="Side" default="before" translateable="1">
|
18 |
+
<unit value="before">Before</unit>
|
19 |
+
<unit value="after">After</unit>
|
20 |
+
</param>
|
21 |
+
</param>
|
22 |
+
</params>
|
23 |
+
<params name="widget-bullet-placeholder" label="" id="nextend-widgetbullet-panel" type="placeholder"></params>
|
24 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/loadplugin.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$dir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
5 |
+
foreach (N2Filesystem::folders($dir) AS $folder) {
|
6 |
+
$file = $dir . $folder . DIRECTORY_SEPARATOR . $folder . '.php';
|
7 |
+
if (N2Filesystem::fileexists($file)) {
|
8 |
+
require_once($file);
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/shadow/shadow.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SSPluginWidgetShadow extends N2PluginBase
|
4 |
+
{
|
5 |
+
|
6 |
+
private static $group = 'shadow';
|
7 |
+
|
8 |
+
function onWidgetList(&$list) {
|
9 |
+
$list[self::$group] = array(
|
10 |
+
n2_('Shadows'),
|
11 |
+
$this->getPath(),
|
12 |
+
7
|
13 |
+
);
|
14 |
+
}
|
15 |
+
|
16 |
+
function getPath() {
|
17 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . self::$group . DIRECTORY_SEPARATOR;
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
N2Plugin::addPlugin('sswidget', 'N2SSPluginWidgetShadow');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/shadow/shadow/config.xml
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="widgetsshadow" label="" hidetitle="1">
|
3 |
+
<param name="widgetshadow" type="widgetpluginmatrix" ajaxurl="slider/renderform" label="Shadow" group="sswidgetshadow" method="shadow" file="config.xml" default="disabled"/>
|
4 |
+
</params>
|
5 |
+
<params name="widget-shadow-placeholder" label="" id="nextend-widgetshadow-panel" type="placeholder"></params>
|
6 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/thumbnail/thumbnail.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SSPluginWidgetThumbnail extends N2PluginBase
|
4 |
+
{
|
5 |
+
|
6 |
+
private static $group = 'thumbnail';
|
7 |
+
|
8 |
+
function onWidgetList(&$list) {
|
9 |
+
$list[self::$group] = array(
|
10 |
+
n2_('Thumbnails'),
|
11 |
+
$this->getPath(),
|
12 |
+
6
|
13 |
+
);
|
14 |
+
}
|
15 |
+
|
16 |
+
function getPath() {
|
17 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . self::$group . DIRECTORY_SEPARATOR;
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
N2Plugin::addPlugin('sswidget', 'N2SSPluginWidgetThumbnail');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widget/thumbnail/thumbnail/config.xml
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="widgetsthumbnail" label="" hidetitle="1">
|
3 |
+
<param name="widgetthumbnail" type="widgetpluginmatrix" ajaxurl="slider/renderform" label="Thumbnail" group="sswidgetthumbnail" method="thumbnail" file="config.xml" default="disabled"/>
|
4 |
+
<param type="group" label="Shows on">
|
5 |
+
<param name="widget-thumbnail-display-hover" type="onoff" label="Hover" default="0"/></param>
|
6 |
+
<param type="group" label="Thumbnail size">
|
7 |
+
<param name="widget-thumbnail-width" type="numberautocomplete" label="Width" default="100" style="width:30px" values="60,100,150,200">
|
8 |
+
<unit>px</unit>
|
9 |
+
</param>
|
10 |
+
<param name="widget-thumbnail-height" type="numberautocomplete" label="Height" default="60" style="width:30px" values="60,100,150,200">
|
11 |
+
<unit>px</unit>
|
12 |
+
</param>
|
13 |
+
</param>
|
14 |
+
</params>
|
15 |
+
<params name="widget-thumbnail-placeholder" label="" id="nextend-widgetthumbnail-panel" type="placeholder"></params>
|
16 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetarrow/image/image.php
ADDED
@@ -0,0 +1,254 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.plugins.N2SliderWidgetAbstract', 'smartslider');
|
4 |
+
|
5 |
+
class N2SSPluginWidgetArrowImage extends N2SSPluginWidgetAbstract
|
6 |
+
{
|
7 |
+
|
8 |
+
private static $key = 'widget-arrow-';
|
9 |
+
|
10 |
+
var $_name = 'image';
|
11 |
+
|
12 |
+
static function getDefaults() {
|
13 |
+
return array(
|
14 |
+
'widget-arrow-responsive-desktop' => 1,
|
15 |
+
'widget-arrow-responsive-tablet' => 0.7,
|
16 |
+
'widget-arrow-responsive-mobile' => 0.5,
|
17 |
+
'widget-arrow-previous-image' => '',
|
18 |
+
'widget-arrow-previous' => '$ss$/plugins/widgetarrow/image/image/previous/normal.svg',
|
19 |
+
'widget-arrow-previous-color' => 'ffffffcc',
|
20 |
+
'widget-arrow-previous-hover' => 0,
|
21 |
+
'widget-arrow-previous-hover-color' => 'ffffffcc',
|
22 |
+
'widget-arrow-style' => 'eyJuYW1lIjoiU3RhdGljIiwiZGF0YSI6W3siYmFja2dyb3VuZGNvbG9yIjoiMDAwMDAwYWIiLCJwYWRkaW5nIjoiMjB8KnwxMHwqfDIwfCp8MTB8KnxweCIsImJveHNoYWRvdyI6IjB8KnwwfCp8MHwqfDB8KnwwMDAwMDBmZiIsImJvcmRlciI6IjB8Knxzb2xpZHwqfDAwMDAwMGZmIiwiYm9yZGVycmFkaXVzIjoiNSIsImV4dHJhIjoiIn0seyJiYWNrZ3JvdW5kY29sb3IiOiIwMDAwMDBjZiJ9XX0=',
|
23 |
+
'widget-arrow-previous-position-mode' => 'simple',
|
24 |
+
'widget-arrow-previous-position-area' => 6,
|
25 |
+
'widget-arrow-previous-position-offset' => 15,
|
26 |
+
'widget-arrow-next-position-mode' => 'simple',
|
27 |
+
'widget-arrow-next-position-area' => 7,
|
28 |
+
'widget-arrow-next-position-offset' => 15,
|
29 |
+
'widget-arrow-animation' => 'fade',
|
30 |
+
'widget-arrow-mirror' => 1,
|
31 |
+
'widget-arrow-next-image' => '',
|
32 |
+
'widget-arrow-next' => '$ss$/plugins/widgetarrow/image/image/next/normal.svg',
|
33 |
+
'widget-arrow-next-color' => 'ffffffcc',
|
34 |
+
'widget-arrow-next-hover' => 0,
|
35 |
+
'widget-arrow-next-hover-color' => 'ffffffcc'
|
36 |
+
);
|
37 |
+
}
|
38 |
+
|
39 |
+
|
40 |
+
function onArrowList(&$list) {
|
41 |
+
$list[$this->_name] = $this->getPath();
|
42 |
+
}
|
43 |
+
|
44 |
+
function getPath() {
|
45 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . 'image' . DIRECTORY_SEPARATOR;
|
46 |
+
}
|
47 |
+
|
48 |
+
static function getPositions(&$params) {
|
49 |
+
$positions = array();
|
50 |
+
|
51 |
+
if (self::isRenderable('previous', $params)) {
|
52 |
+
$positions['previous-position'] = array(
|
53 |
+
self::$key . 'previous-position-',
|
54 |
+
'previous'
|
55 |
+
);
|
56 |
+
}
|
57 |
+
|
58 |
+
if (self::isRenderable('next', $params)) {
|
59 |
+
$positions['next-position'] = array(
|
60 |
+
self::$key . 'next-position-',
|
61 |
+
'next'
|
62 |
+
);
|
63 |
+
}
|
64 |
+
return $positions;
|
65 |
+
}
|
66 |
+
|
67 |
+
private static function isRenderable($side, &$params) {
|
68 |
+
$arrow = $params->get(self::$key . $side . '-image');
|
69 |
+
if (empty($arrow)) {
|
70 |
+
$arrow = $params->get(self::$key . $side);
|
71 |
+
if ($arrow == -1) {
|
72 |
+
$arrow = null;
|
73 |
+
}
|
74 |
+
}
|
75 |
+
return !!$arrow;
|
76 |
+
}
|
77 |
+
|
78 |
+
static function render($slider, $id, $params) {
|
79 |
+
$html = '';
|
80 |
+
|
81 |
+
$previous = $params->get(self::$key . 'previous-image');
|
82 |
+
$previousColor = $params->get(self::$key . 'previous-color');
|
83 |
+
$previousHover = $params->get(self::$key . 'previous-hover');
|
84 |
+
$previousHoverColor = $params->get(self::$key . 'previous-hover-color');
|
85 |
+
if (empty($previous)) {
|
86 |
+
$previous = $params->get(self::$key . 'previous');
|
87 |
+
|
88 |
+
if ($previous == -1) {
|
89 |
+
$previous = null;
|
90 |
+
} elseif ($previous[0] != '$') {
|
91 |
+
$previous = N2Uri::pathToUri(dirname(__FILE__) . '/image/previous/' . $previous);
|
92 |
+
}
|
93 |
+
}
|
94 |
+
|
95 |
+
if ($params->get(self::$key . 'mirror')) {
|
96 |
+
$next = str_replace('image/previous/', 'image/next/', $previous);
|
97 |
+
$nextColor = $previousColor;
|
98 |
+
$nextHover = $previousHover;
|
99 |
+
$nextHoverColor = $previousHoverColor;
|
100 |
+
} else {
|
101 |
+
$next = $params->get(self::$key . 'next-image');
|
102 |
+
$nextColor = $params->get(self::$key . 'next-color');
|
103 |
+
$nextHover = $params->get(self::$key . 'next-hover');
|
104 |
+
$nextHoverColor = $params->get(self::$key . 'next-hover-color');
|
105 |
+
if (empty($next)) {
|
106 |
+
$next = $params->get(self::$key . 'next');
|
107 |
+
if ($next == -1) {
|
108 |
+
$next = null;
|
109 |
+
} elseif ($next[0] != '$') {
|
110 |
+
$next = N2Uri::pathToUri(dirname(__FILE__) . '/image/next/' . $next);
|
111 |
+
}
|
112 |
+
}
|
113 |
+
}
|
114 |
+
if ($previous || $next) {
|
115 |
+
|
116 |
+
N2LESS::addFile(N2Filesystem::translate(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'image' . DIRECTORY_SEPARATOR . 'style.less'), $slider->cacheId, array(
|
117 |
+
"sliderid" => $slider->elementId
|
118 |
+
), NEXTEND_SMARTSLIDER_ASSETS . '/less' . NDS);
|
119 |
+
|
120 |
+
N2JS::addFile(N2Filesystem::translate(dirname(__FILE__) . '/image/arrow.js'), $id);
|
121 |
+
|
122 |
+
list($displayClass, $displayAttributes) = self::getDisplayAttributes($params, self::$key);
|
123 |
+
|
124 |
+
$animation = $params->get(self::$key . 'animation');
|
125 |
+
|
126 |
+
if ($animation == 'none' || $animation == 'fade') {
|
127 |
+
$styleClass = N2StyleRenderer::render($params->get(self::$key . 'style'), 'heading', $slider->elementId, 'div#' . $slider->elementId . ' ');
|
128 |
+
} else {
|
129 |
+
$styleClass = N2StyleRenderer::render($params->get(self::$key . 'style'), 'heading-active', $slider->elementId, 'div#' . $slider->elementId . ' ');
|
130 |
+
}
|
131 |
+
|
132 |
+
if ($previous) {
|
133 |
+
$html .= self::getHTML($id, $params, $animation, 'previous', $previous, $displayClass, $displayAttributes, $styleClass, $previousColor, $previousHover, $previousHoverColor);
|
134 |
+
}
|
135 |
+
|
136 |
+
if ($next) {
|
137 |
+
$html .= self::getHTML($id, $params, $animation, 'next', $next, $displayClass, $displayAttributes, $styleClass, $nextColor, $nextHover, $nextHoverColor);
|
138 |
+
}
|
139 |
+
|
140 |
+
N2JS::addInline('new NextendSmartSliderWidgetArrowImage("' . $id . '", ' . floatval($params->get(self::$key . 'responsive-desktop')) . ', ' . floatval($params->get(self::$key . 'responsive-tablet')) . ', ' . floatval($params->get(self::$key . 'responsive-mobile')) . ');');
|
141 |
+
}
|
142 |
+
|
143 |
+
return $html;
|
144 |
+
}
|
145 |
+
|
146 |
+
private static function getHTML($id, &$params, $animation, $side, $image, $displayClass, $displayAttributes, $styleClass, $color = 'ffffffcc', $hover = 0, $hoverColor = 'ffffffcc') {
|
147 |
+
|
148 |
+
list($style, $attributes) = self::getPosition($params, self::$key . $side . '-');
|
149 |
+
|
150 |
+
$imageHover = null;
|
151 |
+
|
152 |
+
$ext = pathinfo($image, PATHINFO_EXTENSION);
|
153 |
+
if (substr($image, 0, 1) == '$' && $ext == 'svg') {
|
154 |
+
list($color, $opacity) = N2Color::colorToSVG($color);
|
155 |
+
$content = N2Filesystem::readFile(N2ImageHelper::fixed($image, true));
|
156 |
+
$image = 'data:image/svg+xml;base64,' . base64_encode(str_replace(array(
|
157 |
+
'fill="#FFF"',
|
158 |
+
'opacity="1"'
|
159 |
+
), array(
|
160 |
+
'fill="#' . $color . '"',
|
161 |
+
'opacity="' . $opacity . '"'
|
162 |
+
), $content));
|
163 |
+
|
164 |
+
if ($hover) {
|
165 |
+
list($color, $opacity) = N2Color::colorToSVG($hoverColor);
|
166 |
+
$imageHover = 'data:image/svg+xml;base64,' . base64_encode(str_replace(array(
|
167 |
+
'fill="#FFF"',
|
168 |
+
'opacity="1"'
|
169 |
+
), array(
|
170 |
+
'fill="#' . $color . '"',
|
171 |
+
'opacity="' . $opacity . '"'
|
172 |
+
), $content));
|
173 |
+
}
|
174 |
+
} else {
|
175 |
+
$image = N2ImageHelper::fixed($image);
|
176 |
+
}
|
177 |
+
|
178 |
+
if ($imageHover === null) {
|
179 |
+
$image = NHtml::image($image, 'arrow');
|
180 |
+
} else {
|
181 |
+
$image = NHtml::image($image, 'arrow', array('class' => 'n2-arrow-normal-img')) . NHtml::image($imageHover, 'arrow', array('class' => 'n2-arrow-hover-img'));
|
182 |
+
}
|
183 |
+
|
184 |
+
if ($animation == 'none' || $animation == 'fade') {
|
185 |
+
return NHtml::tag('div', $displayAttributes + $attributes + array(
|
186 |
+
'id' => $id . '-arrow-' . $side,
|
187 |
+
'class' => $displayClass . $styleClass . 'nextend-arrow n2-ib nextend-arrow-' . $side . ' nextend-arrow-animated-' . $animation,
|
188 |
+
'style' => $style
|
189 |
+
), $image);
|
190 |
+
}
|
191 |
+
|
192 |
+
|
193 |
+
return NHtml::tag('div', $displayAttributes + $attributes + array(
|
194 |
+
'id' => $id . '-arrow-' . $side,
|
195 |
+
'class' => $displayClass . 'nextend-arrow n2-ib nextend-arrow-animated nextend-arrow-animated-' . $animation . ' nextend-arrow-' . $side,
|
196 |
+
'style' => $style
|
197 |
+
), NHtml::tag('div', array(
|
198 |
+
'class' => $styleClass . ' n2-resize'
|
199 |
+
), $image) . NHtml::tag('div', array(
|
200 |
+
'class' => $styleClass . ' n2-active n2-resize'
|
201 |
+
), $image));
|
202 |
+
}
|
203 |
+
|
204 |
+
public static function prepareExport($export, $params) {
|
205 |
+
$export->addImage($params->get(self::$key . 'previous-image', ''));
|
206 |
+
$export->addImage($params->get(self::$key . 'next-image', ''));
|
207 |
+
|
208 |
+
$export->addVisual($params->get(self::$key . 'style'));
|
209 |
+
}
|
210 |
+
|
211 |
+
public static function prepareImport($import, $params) {
|
212 |
+
|
213 |
+
$params->set(self::$key . 'previous-image', $import->fixImage($params->get(self::$key . 'previous-image', '')));
|
214 |
+
$params->set(self::$key . 'next-image', $import->fixImage($params->get(self::$key . 'next-image', '')));
|
215 |
+
|
216 |
+
$params->set(self::$key . 'style', $import->fixSection($params->get(self::$key . 'style', '')));
|
217 |
+
}
|
218 |
+
}
|
219 |
+
|
220 |
+
|
221 |
+
class N2SSPluginWidgetArrowImageSmallRectangle extends N2SSPluginWidgetArrowImage
|
222 |
+
{
|
223 |
+
|
224 |
+
var $_name = 'imageSmallRectangle';
|
225 |
+
|
226 |
+
static function getDefaults() {
|
227 |
+
return array_merge(N2SSPluginWidgetArrowImage::getDefaults(), array(
|
228 |
+
'widget-arrow-responsive-desktop' => 0.8,
|
229 |
+
'widget-arrow-previous' => '$ss$/plugins/widgetarrow/image/image/previous/full.svg',
|
230 |
+
'widget-arrow-next' => '$ss$/plugins/widgetarrow/image/image/next/full.svg',
|
231 |
+
'widget-arrow-style' => 'eyJuYW1lIjoiU3RhdGljIiwiZGF0YSI6W3siYmFja2dyb3VuZGNvbG9yIjoiMDAwMDAwYWIiLCJwYWRkaW5nIjoiMnwqfDJ8KnwyfCp8MnwqfHB4IiwiYm94c2hhZG93IjoiMHwqfDB8KnwwfCp8MHwqfDAwMDAwMGZmIiwiYm9yZGVyIjoiMHwqfHNvbGlkfCp8MDAwMDAwZmYiLCJib3JkZXJyYWRpdXMiOiIzIiwiZXh0cmEiOiIifSx7ImJhY2tncm91bmRjb2xvciI6IjAxYWRkM2Q5In1dfQ=='
|
232 |
+
));
|
233 |
+
}
|
234 |
+
}
|
235 |
+
|
236 |
+
N2Plugin::addPlugin('sswidgetarrow', 'N2SSPluginWidgetArrowImageSmallRectangle');
|
237 |
+
|
238 |
+
|
239 |
+
class N2SSPluginWidgetArrowImageEmpty extends N2SSPluginWidgetArrowImage
|
240 |
+
{
|
241 |
+
|
242 |
+
var $_name = 'imageEmpty';
|
243 |
+
|
244 |
+
static function getDefaults() {
|
245 |
+
return array_merge(N2SSPluginWidgetArrowImage::getDefaults(), array(
|
246 |
+
'widget-arrow-previous' => '$ss$/plugins/widgetarrow/image/image/previous/thin-horizontal.svg',
|
247 |
+
'widget-arrow-next' => '$ss$/plugins/widgetarrow/image/image/next/thin-horizontal.svg',
|
248 |
+
'widget-arrow-style' => ''
|
249 |
+
));
|
250 |
+
}
|
251 |
+
}
|
252 |
+
|
253 |
+
N2Plugin::addPlugin('sswidgetarrow', 'N2SSPluginWidgetArrowImageEmpty');
|
254 |
+
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetarrow/image/image/config.xml
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="image" label="Image settings" hidetitle="1">
|
3 |
+
<param type="group" label="Previous">
|
4 |
+
<param type="imagelistfromfolder" name="widget-arrow-previous" label="Shape" folder="previous" post="break"/>
|
5 |
+
<param type="color" name="widget-arrow-previous-color" label="Color" alpha="1"/>
|
6 |
+
<param type="onoff" name="widget-arrow-previous-hover" label="Hover"/>
|
7 |
+
<param type="color" name="widget-arrow-previous-hover-color" label="Hover color" alpha="1"/></param>
|
8 |
+
<param name="widget-arrow-style" type="style" previewmode="button" set="1900" label="Style">
|
9 |
+
<![CDATA[ <div><div class="{styleClassName}" style="display: inline-block;"><img style="display: block;" src="{nextend.imageHelper.fixed($('#sliderwidget-arrow-previous-image').val() || N2Color.colorizeSVG($('[data-image="'+$('#sliderwidget-arrow-previous').val()+'"]').attr('src'), $('#sliderwidget-arrow-previous-color').val()));}" /></div></div> ]]>
|
10 |
+
</param>
|
11 |
+
<param type="widgetposition" name="widget-arrow-previous-position" label="Previous position"/>
|
12 |
+
<param type="widgetposition" name="widget-arrow-next-position" label="Next position"/>
|
13 |
+
</params>
|
14 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetarrow/loadplugin.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$dir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
5 |
+
foreach (N2Filesystem::folders($dir) AS $folder) {
|
6 |
+
$file = $dir . $folder . DIRECTORY_SEPARATOR . $folder . '.php';
|
7 |
+
if (N2Filesystem::fileexists($file)) {
|
8 |
+
require_once($file);
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetautoplay/image/image.php
ADDED
@@ -0,0 +1,149 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.plugins.N2SliderWidgetAbstract', 'smartslider');
|
4 |
+
|
5 |
+
class N2SSPluginWidgetAutoplayImage extends N2SSPluginWidgetAbstract
|
6 |
+
{
|
7 |
+
|
8 |
+
private static $key = 'widget-autoplay-';
|
9 |
+
|
10 |
+
var $_name = 'image';
|
11 |
+
|
12 |
+
static function getDefaults() {
|
13 |
+
return array(
|
14 |
+
'widget-autoplay-responsive-desktop' => 1,
|
15 |
+
'widget-autoplay-responsive-tablet' => 0.7,
|
16 |
+
'widget-autoplay-responsive-mobile' => 0.5,
|
17 |
+
'widget-autoplay-play-image' => '',
|
18 |
+
'widget-autoplay-play-color' => 'ffffffcc',
|
19 |
+
'widget-autoplay-play' => '$ss$/plugins/widgetautoplay/image/image/play/small-light.svg',
|
20 |
+
'widget-autoplay-style' => 'eyJuYW1lIjoiU3RhdGljIiwiZGF0YSI6W3siYmFja2dyb3VuZGNvbG9yIjoiMDAwMDAwYWIiLCJwYWRkaW5nIjoiMTB8KnwxMHwqfDEwfCp8MTB8KnxweCIsImJveHNoYWRvdyI6IjB8KnwwfCp8MHwqfDB8KnwwMDAwMDBmZiIsImJvcmRlciI6IjB8Knxzb2xpZHwqfDAwMDAwMGZmIiwiYm9yZGVycmFkaXVzIjoiMyIsImV4dHJhIjoiIn0seyJiYWNrZ3JvdW5kY29sb3IiOiIwMDAwMDBhYiJ9XX0=',
|
21 |
+
'widget-autoplay-position-mode' => 'simple',
|
22 |
+
'widget-autoplay-position-area' => 4,
|
23 |
+
'widget-autoplay-position-offset' => 15,
|
24 |
+
'widget-autoplay-mirror' => 1,
|
25 |
+
'widget-autoplay-pause-image' => '',
|
26 |
+
'widget-autoplay-pause-color' => 'ffffffcc',
|
27 |
+
'widget-autoplay-pause' => '$ss$/plugins/widgetautoplay/image/image/pause/small-light.svg'
|
28 |
+
);
|
29 |
+
}
|
30 |
+
|
31 |
+
function onAutoplayList(&$list) {
|
32 |
+
$list[$this->_name] = $this->getPath();
|
33 |
+
}
|
34 |
+
|
35 |
+
function getPath() {
|
36 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . 'image' . DIRECTORY_SEPARATOR;
|
37 |
+
}
|
38 |
+
|
39 |
+
static function getPositions(&$params) {
|
40 |
+
$positions = array();
|
41 |
+
|
42 |
+
$positions['autoplay-position'] = array(
|
43 |
+
self::$key . 'position-',
|
44 |
+
'autoplay'
|
45 |
+
);
|
46 |
+
return $positions;
|
47 |
+
}
|
48 |
+
|
49 |
+
static function render($slider, $id, $params) {
|
50 |
+
$html = '';
|
51 |
+
|
52 |
+
$play = $params->get(self::$key . 'play-image');
|
53 |
+
$playColor = $params->get(self::$key . 'play-color');
|
54 |
+
if (empty($play)) {
|
55 |
+
$play = $params->get(self::$key . 'play');
|
56 |
+
if ($play == -1) {
|
57 |
+
$play = null;
|
58 |
+
} elseif ($play[0] != '$') {
|
59 |
+
$play = N2Uri::pathToUri(dirname(__FILE__) . '/image/play/' . $play);
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
63 |
+
if ($params->get(self::$key . 'mirror')) {
|
64 |
+
$pause = str_replace('image/play/', 'image/pause/', $play);
|
65 |
+
$pauseColor = $playColor;
|
66 |
+
} else {
|
67 |
+
$pause = $params->get(self::$key . 'pause-image');
|
68 |
+
$pauseColor = $params->get(self::$key . 'pause-color');
|
69 |
+
if (empty($pause)) {
|
70 |
+
$pause = $params->get(self::$key . 'pause');
|
71 |
+
if ($pause == -1) {
|
72 |
+
$pause = null;
|
73 |
+
} elseif ($pause[0] != '$') {
|
74 |
+
$pause = N2Uri::pathToUri(dirname(__FILE__) . '/image/pause/' . $pause);
|
75 |
+
}
|
76 |
+
}
|
77 |
+
}
|
78 |
+
|
79 |
+
$ext = pathinfo($play, PATHINFO_EXTENSION);
|
80 |
+
if (substr($play, 0, 1) == '$' && $ext == 'svg') {
|
81 |
+
list($color, $opacity) = N2Color::colorToSVG($playColor);
|
82 |
+
$play = 'data:image/svg+xml;base64,' . base64_encode(str_replace(array(
|
83 |
+
'fill="#FFF"',
|
84 |
+
'opacity="1"'
|
85 |
+
), array(
|
86 |
+
'fill="#' . $color . '"',
|
87 |
+
'opacity="' . $opacity . '"'
|
88 |
+
), N2Filesystem::readFile(N2ImageHelper::fixed($play, true))));
|
89 |
+
} else {
|
90 |
+
$play = N2ImageHelper::fixed($play);
|
91 |
+
}
|
92 |
+
|
93 |
+
$ext = pathinfo($pause, PATHINFO_EXTENSION);
|
94 |
+
if (substr($pause, 0, 1) == '$' && $ext == 'svg') {
|
95 |
+
list($color, $opacity) = N2Color::colorToSVG($pauseColor);
|
96 |
+
$pause = 'data:image/svg+xml;base64,' . base64_encode(str_replace(array(
|
97 |
+
'fill="#FFF"',
|
98 |
+
'opacity="1"'
|
99 |
+
), array(
|
100 |
+
'fill="#' . $color . '"',
|
101 |
+
'opacity="' . $opacity . '"'
|
102 |
+
), N2Filesystem::readFile(N2ImageHelper::fixed($pause, true))));
|
103 |
+
} else {
|
104 |
+
$pause = N2ImageHelper::fixed($pause);
|
105 |
+
}
|
106 |
+
|
107 |
+
if ($play && $pause) {
|
108 |
+
|
109 |
+
N2CSS::addFile(N2Filesystem::translate(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'image' . DIRECTORY_SEPARATOR . 'style.css'), $id);
|
110 |
+
|
111 |
+
N2JS::addFile(N2Filesystem::translate(dirname(__FILE__) . '/image/autoplay.js'), $id);
|
112 |
+
|
113 |
+
list($displayClass, $displayAttributes) = self::getDisplayAttributes($params, self::$key);
|
114 |
+
|
115 |
+
$styleClass = N2StyleRenderer::render($params->get(self::$key . 'style'), 'heading', $slider->elementId, 'div#' . $slider->elementId . ' ');
|
116 |
+
|
117 |
+
|
118 |
+
list($style, $attributes) = self::getPosition($params, self::$key);
|
119 |
+
|
120 |
+
|
121 |
+
N2JS::addInline('new NextendSmartSliderWidgetAutoplayImage("' . $id . '", ' . floatval($params->get(self::$key . 'responsive-desktop')) . ', ' . floatval($params->get(self::$key . 'responsive-tablet')) . ', ' . floatval($params->get(self::$key . 'responsive-mobile')) . ');');
|
122 |
+
|
123 |
+
$html = NHtml::tag('div', $displayAttributes + $attributes + array(
|
124 |
+
'class' => $displayClass . $styleClass . 'nextend-autoplay nextend-autoplay-image',
|
125 |
+
'style' => $style
|
126 |
+
), NHtml::image($play, '', array('class' => 'nextend-autoplay-play')) . NHtml::image($pause, '', array('class' => 'nextend-autoplay-pause')));
|
127 |
+
}
|
128 |
+
|
129 |
+
return $html;
|
130 |
+
}
|
131 |
+
|
132 |
+
public static function prepareExport($export, $params) {
|
133 |
+
$export->addImage($params->get(self::$key . 'play-image', ''));
|
134 |
+
$export->addImage($params->get(self::$key . 'pause-image', ''));
|
135 |
+
|
136 |
+
$export->addVisual($params->get(self::$key . 'style'));
|
137 |
+
}
|
138 |
+
|
139 |
+
public static function prepareImport($import, $params) {
|
140 |
+
|
141 |
+
$params->set(self::$key . 'play-image', $import->fixImage($params->get(self::$key . 'play-image', '')));
|
142 |
+
$params->set(self::$key . 'pause-image', $import->fixImage($params->get(self::$key . 'pause-image', '')));
|
143 |
+
|
144 |
+
$params->set(self::$key . 'style', $import->fixSection($params->get(self::$key . 'style', '')));
|
145 |
+
}
|
146 |
+
|
147 |
+
}
|
148 |
+
|
149 |
+
N2Plugin::addPlugin('sswidgetautoplay', 'N2SSPluginWidgetAutoplayImage');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetautoplay/image/image/config.xml
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="image" label="Image settings" hidetitle="1">
|
3 |
+
<param type="group" label="Play">
|
4 |
+
<param type="imagelistfromfolder" name="widget-autoplay-play" label="Shape" folder="play" required="1" post="break"/>
|
5 |
+
<param type="color" name="widget-autoplay-play-color" label="Color" alpha="1"/></param>
|
6 |
+
<param name="widget-autoplay-style" type="style" previewmode="button" set="1900" label="Style">
|
7 |
+
<![CDATA[ <div class="{styleClassName}" style="display: inline-block;"><img style="display: block;" src="{nextend.imageHelper.fixed($('#sliderwidget-autoplay-play-image').val() || N2Color.colorizeSVG($('[data-image="'+$('#sliderwidget-autoplay-play').val()+'"]').attr('src'), $('#sliderwidget-autoplay-play-color').val()));}" /></div> ]]>
|
8 |
+
</param>
|
9 |
+
<param type="widgetposition" name="widget-autoplay-position" label="Position"/>
|
10 |
+
</params>
|
11 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetautoplay/loadplugin.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$dir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
5 |
+
foreach (N2Filesystem::folders($dir) AS $folder) {
|
6 |
+
$file = $dir . $folder . DIRECTORY_SEPARATOR . $folder . '.php';
|
7 |
+
if (N2Filesystem::fileexists($file)) {
|
8 |
+
require_once($file);
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetbar/horizontal/horizontal.php
ADDED
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.plugins.N2SliderWidgetAbstract', 'smartslider');
|
4 |
+
N2Loader::import('libraries.image.color');
|
5 |
+
|
6 |
+
class N2SSPluginWidgetBarHorizontal extends N2SSPluginWidgetAbstract
|
7 |
+
{
|
8 |
+
|
9 |
+
private static $key = 'widget-bar-';
|
10 |
+
|
11 |
+
var $_name = 'horizontal';
|
12 |
+
|
13 |
+
static function getDefaults() {
|
14 |
+
return array(
|
15 |
+
'widget-bar-position-mode' => 'simple',
|
16 |
+
'widget-bar-position-area' => 10,
|
17 |
+
'widget-bar-position-offset' => 30,
|
18 |
+
'widget-bar-style' => 'eyJuYW1lIjoiU3RhdGljIiwiZGF0YSI6W3siYmFja2dyb3VuZGNvbG9yIjoiMDAwMDAwYWIiLCJwYWRkaW5nIjoiNXwqfDIwfCp8NXwqfDIwfCp8cHgiLCJib3hzaGFkb3ciOiIwfCp8MHwqfDB8KnwwfCp8MDAwMDAwZmYiLCJib3JkZXIiOiIwfCp8c29saWR8KnwwMDAwMDBmZiIsImJvcmRlcnJhZGl1cyI6IjQwIiwiZXh0cmEiOiIifV19',
|
19 |
+
'widget-bar-font-title' => 'eyJuYW1lIjoiU3RhdGljIiwiZGF0YSI6W3siY29sb3IiOiJmZmZmZmZmZiIsInNpemUiOiIxNHx8cHgiLCJ0c2hhZG93IjoiMHwqfDB8KnwwfCp8MDAwMDAwYzciLCJhZm9udCI6Ik1vbnRzZXJyYXQiLCJsaW5laGVpZ2h0IjoiMS4zIiwiYm9sZCI6MCwiaXRhbGljIjowLCJ1bmRlcmxpbmUiOjAsImFsaWduIjoibGVmdCIsImV4dHJhIjoidmVydGljYWwtYWxpZ246IG1pZGRsZTsifSx7ImNvbG9yIjoiZmMyODI4ZmYiLCJhZm9udCI6Imdvb2dsZShAaW1wb3J0IHVybChodHRwOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1SYWxld2F5KTspLEFyaWFsIiwic2l6ZSI6IjI1fHxweCJ9LHt9XX0=',
|
20 |
+
'widget-bar-show-description' => 1,
|
21 |
+
'widget-bar-font-description' => 'eyJuYW1lIjoiU3RhdGljIiwiZGF0YSI6W3siY29sb3IiOiJmZmZmZmZmZiIsInNpemUiOiIxNHx8cHgiLCJ0c2hhZG93IjoiMHwqfDB8KnwwfCp8MDAwMDAwYzciLCJhZm9udCI6Ik1vbnRzZXJyYXQiLCJsaW5laGVpZ2h0IjoiMS4zIiwiYm9sZCI6MCwiaXRhbGljIjoxLCJ1bmRlcmxpbmUiOjAsImFsaWduIjoibGVmdCIsImV4dHJhIjoidmVydGljYWwtYWxpZ246IG1pZGRsZTsifSx7ImNvbG9yIjoiZmMyODI4ZmYiLCJhZm9udCI6Imdvb2dsZShAaW1wb3J0IHVybChodHRwOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1SYWxld2F5KTspLEFyaWFsIiwic2l6ZSI6IjI1fHxweCJ9LHt9XX0=',
|
22 |
+
'widget-bar-width' => '100%',
|
23 |
+
'widget-bar-full-width' => 0,
|
24 |
+
'widget-bar-overlay' => 0,
|
25 |
+
'widget-bar-separator' => ' - ',
|
26 |
+
'widget-bar-align' => 'center',
|
27 |
+
'widget-bar-animate' => 0
|
28 |
+
);
|
29 |
+
}
|
30 |
+
|
31 |
+
function onBarList(&$list) {
|
32 |
+
$list[$this->_name] = $this->getPath();
|
33 |
+
}
|
34 |
+
|
35 |
+
function getPath() {
|
36 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . 'horizontal' . DIRECTORY_SEPARATOR;
|
37 |
+
}
|
38 |
+
|
39 |
+
static function getPositions(&$params) {
|
40 |
+
$positions = array();
|
41 |
+
|
42 |
+
$positions['bar-position'] = array(
|
43 |
+
self::$key . 'position-',
|
44 |
+
'bar'
|
45 |
+
);
|
46 |
+
return $positions;
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* @param $slider N2SmartSliderAbstract
|
51 |
+
* @param $id
|
52 |
+
* @param $params
|
53 |
+
*
|
54 |
+
* @return string
|
55 |
+
*/
|
56 |
+
static function render($slider, $id, $params) {
|
57 |
+
|
58 |
+
N2CSS::addFile(N2Filesystem::translate(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'horizontal' . DIRECTORY_SEPARATOR . 'style.css'), $id);
|
59 |
+
N2JS::addFile(N2Filesystem::translate(dirname(__FILE__) . '/horizontal/bar.js'), $id);
|
60 |
+
|
61 |
+
list($displayClass, $displayAttributes) = self::getDisplayAttributes($params, self::$key);
|
62 |
+
|
63 |
+
$styleClass = N2StyleRenderer::render($params->get(self::$key . 'style'), 'simple', $slider->elementId, 'div#' . $slider->elementId . ' ');
|
64 |
+
$fontTitle = N2FontRenderer::render($params->get(self::$key . 'font-title'), 'simple', $slider->elementId, 'div#' . $slider->elementId . ' ', $slider->fontSize);
|
65 |
+
$fontDescription = N2FontRenderer::render($params->get(self::$key . 'font-description'), 'simple', $slider->elementId, 'div#' . $slider->elementId . ' ', $slider->fontSize);
|
66 |
+
|
67 |
+
list($style, $attributes) = self::getPosition($params, self::$key);
|
68 |
+
$attributes['data-offset'] = $params->get(self::$key . 'position-offset');
|
69 |
+
|
70 |
+
$style .= 'text-align: ' . $params->get(self::$key . 'align') . ';';
|
71 |
+
|
72 |
+
$width = $params->get(self::$key . 'width');
|
73 |
+
if (is_numeric($width) || substr($width, -1) == '%' || substr($width, -2) == 'px') {
|
74 |
+
$style .= 'width:' . $width . ';';
|
75 |
+
} else {
|
76 |
+
$attributes['data-sswidth'] = $width;
|
77 |
+
}
|
78 |
+
|
79 |
+
$innerStyle = '';
|
80 |
+
if (!$params->get(self::$key . 'full-width')) {
|
81 |
+
$innerStyle = 'display: inline-block;';
|
82 |
+
}
|
83 |
+
|
84 |
+
$separator = $params->get(self::$key . 'separator');
|
85 |
+
$showDescription = intval($params->get(self::$key . 'show-description'));
|
86 |
+
$slides = array();
|
87 |
+
for ($i = 0; $i < count($slider->slides); $i++) {
|
88 |
+
$slides[$i] = NHtml::tag('span', array('class' => $fontTitle), $slider->slides[$i]->getTitle());
|
89 |
+
|
90 |
+
$description = $slider->slides[$i]->getDescription();
|
91 |
+
if ($showDescription && !empty($description)) {
|
92 |
+
$slides[$i] .= NHtml::tag('span', array('class' => $fontDescription), $separator . $description);
|
93 |
+
}
|
94 |
+
}
|
95 |
+
|
96 |
+
$parameters = array(
|
97 |
+
'overlay' => $params->get(self::$key . 'position-mode') != 'simple' || $params->get(self::$key . 'overlay'),
|
98 |
+
'area' => intval($params->get(self::$key . 'position-area')),
|
99 |
+
'animate' => intval($params->get(self::$key . 'animate'))
|
100 |
+
);
|
101 |
+
|
102 |
+
N2JS::addInline('new NextendSmartSliderWidgetBarHorizontal("' . $id . '", ' . json_encode($slides) . ', ' . json_encode($parameters) . ');');
|
103 |
+
|
104 |
+
return NHtml::tag("div", $displayAttributes + $attributes + array(
|
105 |
+
"class" => $displayClass . "nextend-bar nextend-bar-horizontal",
|
106 |
+
"style" => $style
|
107 |
+
), NHtml::tag("div", array(
|
108 |
+
"class" => $styleClass,
|
109 |
+
"style" => $innerStyle
|
110 |
+
), $slides[$slider->_activeSlide]));
|
111 |
+
}
|
112 |
+
|
113 |
+
public static function prepareExport($export, $params) {
|
114 |
+
$export->addVisual($params->get(self::$key . 'style'));
|
115 |
+
$export->addVisual($params->get(self::$key . 'font-title'));
|
116 |
+
$export->addVisual($params->get(self::$key . 'font-description'));
|
117 |
+
}
|
118 |
+
|
119 |
+
public static function prepareImport($import, $params) {
|
120 |
+
|
121 |
+
$params->set(self::$key . 'style', $import->fixSection($params->get(self::$key . 'style', '')));
|
122 |
+
$params->set(self::$key . 'font-title', $import->fixSection($params->get(self::$key . 'font-title', '')));
|
123 |
+
$params->set(self::$key . 'font-description', $import->fixSection($params->get(self::$key . 'font-description', '')));
|
124 |
+
}
|
125 |
+
}
|
126 |
+
|
127 |
+
class N2SSPluginWidgetBarHorizontalFull extends N2SSPluginWidgetBarHorizontal
|
128 |
+
{
|
129 |
+
|
130 |
+
var $_name = 'horizontalFull';
|
131 |
+
|
132 |
+
static function getDefaults() {
|
133 |
+
return array_merge(N2SSPluginWidgetBarHorizontal::getDefaults(), array(
|
134 |
+
'widget-bar-position-offset' => 0,
|
135 |
+
'widget-bar-style' => 'eyJuYW1lIjoiU3RhdGljIiwiZGF0YSI6W3siYmFja2dyb3VuZGNvbG9yIjoiMDAwMDAwYWIiLCJwYWRkaW5nIjoiMjB8KnwyMHwqfDIwfCp8MjB8KnxweCIsImJveHNoYWRvdyI6IjB8KnwwfCp8MHwqfDB8KnwwMDAwMDBmZiIsImJvcmRlciI6IjB8Knxzb2xpZHwqfDAwMDAwMGZmIiwiYm9yZGVycmFkaXVzIjoiMCIsImV4dHJhIjoiIn1dfQ==',
|
136 |
+
'widget-bar-full-width' => 1,
|
137 |
+
'widget-bar-align' => 'left'
|
138 |
+
));
|
139 |
+
}
|
140 |
+
}
|
141 |
+
|
142 |
+
N2Plugin::addPlugin('sswidgetbar', 'N2SSPluginWidgetBarHorizontalFull');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetbar/horizontal/horizontal/config.xml
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="horizontal-bar" label="Horizontal settings" hidetitle="1">
|
3 |
+
<param name="widget-bar-position" type="widgetposition" label="Position"/>
|
4 |
+
<param type="onoff" name="widget-bar-animate" label="Animate"/>
|
5 |
+
<param name="widget-bar-style" type="style" previewmode="simple" font="sliderwidget-bar-font-title" label="Style" font2="sliderwidget-bar-font-description" set="1900">
|
6 |
+
<![CDATA[ <div style="width:100%;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;" class="{styleClassName}"><span href="#" class="{fontClassName}">Slide title</span><span class="{fontClassName2}">{$('#sliderwidget-bar-separator').val()}Slide description which is longer than the title</span></div> ]]>
|
7 |
+
</param>
|
8 |
+
<param name="widget-bar-font-title" type="font" previewmode="simple" style="sliderwidget-bar-style" label="Title font" set="1100">
|
9 |
+
<![CDATA[ <div style="width:100%;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;" class="{styleClassName}"><span href="#" class="{fontClassName}">Slide title</span></div> ]]>
|
10 |
+
</param>
|
11 |
+
<param type="group" label="Description">
|
12 |
+
<param type="onoff" label="Shows" name="widget-bar-show-description"/>
|
13 |
+
<param name="widget-bar-font-description" type="font" previewmode="simple" style="sliderwidget-bar-style" label="Font" set="1100">
|
14 |
+
<![CDATA[ <div style="width:100%;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;" class="{styleClassName}"><span href="#" class="{fontClassName}">Slide description which is longer than the title</span></div> ]]>
|
15 |
+
</param>
|
16 |
+
</param>
|
17 |
+
<param type="group" label="Size">
|
18 |
+
<param type="onoff" label="Full width" name="widget-bar-full-width"/></param>
|
19 |
+
<param type="text" label="Separator" name="widget-bar-separator"/>
|
20 |
+
</params>
|
21 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetbar/loadplugin.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$dir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
5 |
+
foreach (N2Filesystem::folders($dir) AS $folder) {
|
6 |
+
$file = $dir . $folder . DIRECTORY_SEPARATOR . $folder . '.php';
|
7 |
+
if (N2Filesystem::fileexists($file)) {
|
8 |
+
require_once($file);
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetbullet/loadplugin.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$dir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
5 |
+
foreach (N2Filesystem::folders($dir) AS $folder) {
|
6 |
+
$file = $dir . $folder . DIRECTORY_SEPARATOR . $folder . '.php';
|
7 |
+
if (N2Filesystem::fileexists($file)) {
|
8 |
+
require_once($file);
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetbullet/transition/transition.php
ADDED
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.plugins.N2SliderWidgetAbstract', 'smartslider');
|
4 |
+
N2Loader::import('libraries.image.color');
|
5 |
+
|
6 |
+
class N2SSPluginWidgetBulletTransition extends N2SSPluginWidgetAbstract
|
7 |
+
{
|
8 |
+
|
9 |
+
var $_name = 'transition';
|
10 |
+
|
11 |
+
private static $key = 'widget-bullet-';
|
12 |
+
|
13 |
+
static function getDefaults() {
|
14 |
+
return array(
|
15 |
+
'widget-bullet-position-mode' => 'simple',
|
16 |
+
'widget-bullet-position-area' => 10,
|
17 |
+
'widget-bullet-position-offset' => 10,
|
18 |
+
'widget-bullet-action' => 'click',
|
19 |
+
'widget-bullet-style' => 'eyJuYW1lIjoiU3RhdGljIiwiZGF0YSI6W3siYmFja2dyb3VuZGNvbG9yIjoiMDAwMDAwYWIiLCJwYWRkaW5nIjoiNXwqfDV8Knw1fCp8NXwqfHB4IiwiYm94c2hhZG93IjoiMHwqfDB8KnwwfCp8MHwqfDAwMDAwMGZmIiwiYm9yZGVyIjoiMHwqfHNvbGlkfCp8MDAwMDAwZmYiLCJib3JkZXJyYWRpdXMiOiI1MCIsImV4dHJhIjoibWFyZ2luOiA0cHg7In0seyJiYWNrZ3JvdW5kY29sb3IiOiIwMGMxYzRmZiJ9XX0=',
|
20 |
+
'widget-bullet-bar' => '',
|
21 |
+
'widget-bullet-align' => 'center',
|
22 |
+
'widget-bullet-orientation' => 'auto',
|
23 |
+
'widget-bullet-bar-full-size' => 0,
|
24 |
+
'widget-bullet-overlay' => 0,
|
25 |
+
'widget-bullet-thumbnail-show-image' => 0,
|
26 |
+
'widget-bullet-thumbnail-width' => 100,
|
27 |
+
'widget-bullet-thumbnail-width' => 60,
|
28 |
+
'widget-bullet-thumbnail-style' => 'eyJuYW1lIjoiU3RhdGljIiwiZGF0YSI6W3siYmFja2dyb3VuZGNvbG9yIjoiMDAwMDAwODAiLCJwYWRkaW5nIjoiM3wqfDN8KnwzfCp8M3wqfHB4IiwiYm94c2hhZG93IjoiMHwqfDB8KnwwfCp8MHwqfDAwMDAwMGZmIiwiYm9yZGVyIjoiMHwqfHNvbGlkfCp8MDAwMDAwZmYiLCJib3JkZXJyYWRpdXMiOiIzIiwiZXh0cmEiOiJtYXJnaW46IDVweDsifV19',
|
29 |
+
'widget-bullet-thumbnail-side' => 'before'
|
30 |
+
);
|
31 |
+
}
|
32 |
+
|
33 |
+
function onBulletList(&$list) {
|
34 |
+
$list[$this->_name] = $this->getPath();
|
35 |
+
}
|
36 |
+
|
37 |
+
function getPath() {
|
38 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . 'transition' . DIRECTORY_SEPARATOR;
|
39 |
+
}
|
40 |
+
|
41 |
+
static function getPositions(&$params) {
|
42 |
+
$positions = array();
|
43 |
+
$positions['bullet-position'] = array(
|
44 |
+
self::$key . 'position-',
|
45 |
+
'bullet'
|
46 |
+
);
|
47 |
+
return $positions;
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* @param $slider N2SmartSliderAbstract
|
52 |
+
* @param $id
|
53 |
+
* @param $params
|
54 |
+
*
|
55 |
+
* @return string
|
56 |
+
*/
|
57 |
+
static function render($slider, $id, $params) {
|
58 |
+
|
59 |
+
N2JS::addFile(N2Filesystem::translate(dirname(__FILE__) . '/transition/bullet.js'), $id);
|
60 |
+
N2CSS::addFile(N2Filesystem::translate(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'transition' . DIRECTORY_SEPARATOR . 'style.css'), $id);
|
61 |
+
|
62 |
+
list($displayClass, $displayAttributes) = self::getDisplayAttributes($params, self::$key);
|
63 |
+
|
64 |
+
$bulletStyle = N2StyleRenderer::render($params->get(self::$key . 'style'), 'dot', $slider->elementId, 'div#' . $slider->elementId . ' ');
|
65 |
+
$barStyle = N2StyleRenderer::render($params->get(self::$key . 'bar'), 'simple', $slider->elementId, 'div#' . $slider->elementId . ' ');
|
66 |
+
|
67 |
+
list($style, $attributes) = self::getPosition($params, self::$key);
|
68 |
+
$attributes['data-offset'] = $params->get(self::$key . 'position-offset', 0);
|
69 |
+
|
70 |
+
$dots = array();
|
71 |
+
$i = 1;
|
72 |
+
foreach ($slider->slides AS $slide) {
|
73 |
+
$dots[] = NHtml::tag('div', array(
|
74 |
+
'class' => $bulletStyle . ($slide->isActive() ? 'n2-active' : ''),
|
75 |
+
), '');
|
76 |
+
|
77 |
+
$i++;
|
78 |
+
}
|
79 |
+
|
80 |
+
$orientation = self::getOrientationByPosition($params->get(self::$key . 'position-mode'), $params->get(self::$key . 'position-area'), $params->get(self::$key . 'orientation'));
|
81 |
+
$html = '';
|
82 |
+
switch ($orientation) {
|
83 |
+
case 'vertical':
|
84 |
+
$html .= implode('<br>', $dots);
|
85 |
+
break;
|
86 |
+
default:
|
87 |
+
$html .= implode('', $dots);
|
88 |
+
}
|
89 |
+
|
90 |
+
$parameters = array(
|
91 |
+
'overlay' => $params->get(self::$key . 'position-mode') != 'simple' || $params->get(self::$key . 'overlay'),
|
92 |
+
'area' => intval($params->get(self::$key . 'position-area'))
|
93 |
+
);
|
94 |
+
|
95 |
+
$thumbnails = array();
|
96 |
+
if ($params->get(self::$key . 'thumbnail-show-image')) {
|
97 |
+
foreach ($slider->slides AS $slide) {
|
98 |
+
$thumbnails[] = $slide->getThumbnail();
|
99 |
+
}
|
100 |
+
$parameters['thumbnailWidth'] = intval($params->get(self::$key . 'thumbnail-width'));
|
101 |
+
$parameters['thumbnailHeight'] = intval($params->get(self::$key . 'thumbnail-height'));
|
102 |
+
$parameters['thumbnailStyle'] = N2StyleRenderer::render($params->get(self::$key . 'thumbnail-style'), 'simple', $slider->elementId, '');
|
103 |
+
$side = $params->get(self::$key . 'thumbnail-side');
|
104 |
+
|
105 |
+
|
106 |
+
if ($side == 'before') {
|
107 |
+
if ($orientation == 'vertical') {
|
108 |
+
$position = 'left';
|
109 |
+
} else {
|
110 |
+
$position = 'top';
|
111 |
+
}
|
112 |
+
} else {
|
113 |
+
if ($orientation == 'vertical') {
|
114 |
+
$position = 'right';
|
115 |
+
} else {
|
116 |
+
$position = 'bottom';
|
117 |
+
}
|
118 |
+
}
|
119 |
+
$parameters['thumbnailPosition'] = $position;
|
120 |
+
}
|
121 |
+
$parameters['thumbnails'] = $thumbnails;
|
122 |
+
$parameters['action'] = $params->get(self::$key . 'action');
|
123 |
+
$parameters['numeric'] = 0;
|
124 |
+
|
125 |
+
N2JS::addInline('new NextendSmartSliderWidgetBulletTransition("' . $id . '", ' . json_encode($parameters) . ');');
|
126 |
+
|
127 |
+
$fullSize = intval($params->get(self::$key . 'bar-full-size'));
|
128 |
+
if ($fullSize) {
|
129 |
+
$displayClass .= "n2-bullet-bar-full-size ";
|
130 |
+
}
|
131 |
+
|
132 |
+
return NHtml::tag("div", $displayAttributes + $attributes + array(
|
133 |
+
"class" => $displayClass . $barStyle . "nextend-bullet-bar nextend-bullet-bar-" . $orientation,
|
134 |
+
"style" => "text-align: " . $params->get(self::$key . 'align') . ";" . $style
|
135 |
+
), $html);
|
136 |
+
}
|
137 |
+
|
138 |
+
public static function prepareExport($export, $params) {
|
139 |
+
$export->addVisual($params->get(self::$key . 'style'));
|
140 |
+
$export->addVisual($params->get(self::$key . 'bar'));
|
141 |
+
}
|
142 |
+
|
143 |
+
public static function prepareImport($import, $params) {
|
144 |
+
|
145 |
+
$params->set(self::$key . 'style', $import->fixSection($params->get(self::$key . 'style')));
|
146 |
+
$params->set(self::$key . 'bar', $import->fixSection($params->get(self::$key . 'bar')));
|
147 |
+
}
|
148 |
+
|
149 |
+
}
|
150 |
+
|
151 |
+
N2Plugin::addPlugin('sswidgetbullet', 'N2SSPluginWidgetBulletTransition');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetbullet/transition/transition/config.xml
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="bullettransition" label="Transition bullet settings" hidetitle="1">
|
3 |
+
<param name="widget-bullet-position" type="widgetposition" label="Position"/>
|
4 |
+
<param name="widget-bullet-style" type="style" previewmode="dot" label="Dot style" style2="sliderwidget-bullet-bar" set="1900">
|
5 |
+
<![CDATA[ <div class="{styleClassName2}" style="display:inline-block;"><div class="{styleClassName}" style="display: inline-block; vertical-align:top;"></div><div class="{styleClassName} n2-active" style="display: inline-block; vertical-align:top;"></div><div class="{styleClassName}" style="display: inline-block; vertical-align:top;"></div></div> ]]>
|
6 |
+
</param>
|
7 |
+
<param name="widget-bullet-bar" type="style" previewmode="simple" label="Bar style" style2="sliderwidget-bullet-style" set="1900">
|
8 |
+
<![CDATA[ <div class="{styleClassName}" style="display:inline-block;"><div class="{styleClassName2}" style="display: inline-block; vertical-align:top;"></div><div class="{styleClassName2} n2-active" style="display: inline-block; vertical-align:top;"></div><div class="{styleClassName2}" style="display: inline-block; vertical-align:top;"></div></div> ]]>
|
9 |
+
</param>
|
10 |
+
</params>
|
11 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetshadow/loadplugin.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$dir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
5 |
+
foreach (N2Filesystem::folders($dir) AS $folder) {
|
6 |
+
$file = $dir . $folder . DIRECTORY_SEPARATOR . $folder . '.php';
|
7 |
+
if (N2Filesystem::fileexists($file)) {
|
8 |
+
require_once($file);
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetshadow/shadow/shadow.php
ADDED
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.plugins.N2SliderWidgetAbstract', 'smartslider');
|
4 |
+
|
5 |
+
class N2SSPluginWidgetShadowShadow extends N2SSPluginWidgetAbstract
|
6 |
+
{
|
7 |
+
|
8 |
+
var $_name = 'shadow';
|
9 |
+
|
10 |
+
private static $key = 'widget-shadow-';
|
11 |
+
|
12 |
+
static function getDefaults() {
|
13 |
+
return array(
|
14 |
+
'widget-shadow-position-mode' => 'simple',
|
15 |
+
'widget-shadow-position-area' => 12,
|
16 |
+
'widget-shadow-position-stack' => 4,
|
17 |
+
'widget-shadow-width' => '100%',
|
18 |
+
'widget-shadow-shadow-image' => '',
|
19 |
+
'widget-shadow-shadow' => '$ss$/plugins/widgetshadow/shadow/shadow/shadow/dark.png'
|
20 |
+
);
|
21 |
+
}
|
22 |
+
|
23 |
+
function onShadowList(&$list) {
|
24 |
+
$list[$this->_name] = $this->getPath();
|
25 |
+
}
|
26 |
+
|
27 |
+
function getPath() {
|
28 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . 'shadow' . DIRECTORY_SEPARATOR;
|
29 |
+
}
|
30 |
+
|
31 |
+
static function getPositions(&$params) {
|
32 |
+
$positions = array();
|
33 |
+
$positions['shadow-position'] = array(
|
34 |
+
self::$key . 'position-',
|
35 |
+
'shadow'
|
36 |
+
);
|
37 |
+
return $positions;
|
38 |
+
}
|
39 |
+
|
40 |
+
static function render($slider, $id, $params) {
|
41 |
+
|
42 |
+
$shadow = $params->get(self::$key . 'shadow-image');
|
43 |
+
if (empty($shadow)) {
|
44 |
+
$shadow = $params->get(self::$key . 'shadow');
|
45 |
+
if ($shadow == -1) {
|
46 |
+
$shadow = null;
|
47 |
+
}
|
48 |
+
}
|
49 |
+
if (!$shadow) {
|
50 |
+
return '';
|
51 |
+
}
|
52 |
+
|
53 |
+
N2JS::addFile(N2Filesystem::translate(dirname(__FILE__) . '/shadow/shadow.js'), $id);
|
54 |
+
|
55 |
+
list($displayClass, $displayAttributes) = self::getDisplayAttributes($params, self::$key);
|
56 |
+
|
57 |
+
list($style, $attributes) = self::getPosition($params, self::$key);
|
58 |
+
|
59 |
+
$width = $params->get(self::$key . 'width');
|
60 |
+
if (is_numeric($width) || substr($width, -1) == '%' || substr($width, -2) == 'px') {
|
61 |
+
$style .= 'width:' . $width . ';';
|
62 |
+
} else {
|
63 |
+
$attributes['data-sswidth'] = $width;
|
64 |
+
}
|
65 |
+
|
66 |
+
$parameters = array(
|
67 |
+
'overlay' => $params->get(self::$key . 'position-mode') != 'simple' || 0,
|
68 |
+
'area' => intval($params->get(self::$key . 'position-area'))
|
69 |
+
);
|
70 |
+
|
71 |
+
N2JS::addInline('new NextendSmartSliderWidgetShadow("' . $id . '", ' . json_encode($parameters) . ');');
|
72 |
+
|
73 |
+
|
74 |
+
return NHtml::tag('div', $displayAttributes + $attributes + array(
|
75 |
+
'class' => $displayClass . "nextend-shadow",
|
76 |
+
'style' => $style
|
77 |
+
), NHtml::image(N2ImageHelper::fixed($shadow), '', array('style' => 'display: block; width:100%;max-width:none;','class'=>'nextend-shadow-image')));
|
78 |
+
}
|
79 |
+
|
80 |
+
public static function prepareExport($export, $params) {
|
81 |
+
$export->addImage($params->get(self::$key . 'shadow-image', ''));
|
82 |
+
}
|
83 |
+
|
84 |
+
public static function prepareImport($import, $params) {
|
85 |
+
|
86 |
+
$params->set(self::$key . 'shadow-image', $import->fixImage($params->get(self::$key . 'shadow-image', '')));
|
87 |
+
}
|
88 |
+
}
|
89 |
+
|
90 |
+
N2Plugin::addPlugin('sswidgetshadow', 'N2SSPluginWidgetShadowShadow');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetshadow/shadow/shadow/config.xml
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="shadow" label="Shadow settings" hidetitle="1">
|
3 |
+
<param name="widget-shadow-position" type="widgetposition" label="Position" class="n2-hidden"/>
|
4 |
+
<param type="imagelistfromfolder" name="widget-shadow-shadow" label="Shadow" folder="shadow" required="1"/>
|
5 |
+
</params>
|
6 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetthumbnail/default/default.php
ADDED
@@ -0,0 +1,291 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('libraries.plugins.N2SliderWidgetAbstract', 'smartslider');
|
4 |
+
N2Loader::import('libraries.image.color');
|
5 |
+
|
6 |
+
class N2SSPluginWidgetThumbnailDefault extends N2SSPluginWidgetAbstract
|
7 |
+
{
|
8 |
+
|
9 |
+
var $_name = 'default';
|
10 |
+
|
11 |
+
private static $key = 'widget-thumbnail-';
|
12 |
+
|
13 |
+
static function getDefaults() {
|
14 |
+
return array(
|
15 |
+
'widget-thumbnail-position-mode' => 'simple',
|
16 |
+
'widget-thumbnail-position-area' => 12,
|
17 |
+
'widget-thumbnail-action' => 'click',
|
18 |
+
'widget-thumbnail-style-bar' => 'eyJuYW1lIjoiU3RhdGljIiwiZGF0YSI6W3siYmFja2dyb3VuZGNvbG9yIjoiMjQyNDI0ZmYiLCJwYWRkaW5nIjoiM3wqfDN8KnwzfCp8M3wqfHB4IiwiYm94c2hhZG93IjoiMHwqfDB8KnwwfCp8MHwqfDAwMDAwMGZmIiwiYm9yZGVyIjoiMHwqfHNvbGlkfCp8MDAwMDAwZmYiLCJib3JkZXJyYWRpdXMiOiIwIiwiZXh0cmEiOiIifV19',
|
19 |
+
'widget-thumbnail-style-slides' => 'eyJuYW1lIjoiU3RhdGljIiwiZGF0YSI6W3siYmFja2dyb3VuZGNvbG9yIjoiMDAwMDAwMDAiLCJwYWRkaW5nIjoiMHwqfDB8KnwwfCp8MHwqfHB4IiwiYm94c2hhZG93IjoiMHwqfDB8KnwwfCp8MHwqfDAwMDAwMGZmIiwiYm9yZGVyIjoiMHwqfHNvbGlkfCp8ZmZmZmZmMDAiLCJib3JkZXJyYWRpdXMiOiIwIiwiZXh0cmEiOiJvcGFjaXR5OiAwLjQ7XG5tYXJnaW46IDNweDtcbnRyYW5zaXRpb246IGFsbCAwLjRzO1xuYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsifSx7ImJvcmRlciI6IjB8Knxzb2xpZHwqfGZmZmZmZmNjIiwiZXh0cmEiOiJvcGFjaXR5OiAxOyJ9XX0=',
|
20 |
+
'widget-thumbnail-arrow' => 1,
|
21 |
+
'widget-thumbnail-title-style' => 'eyJuYW1lIjoiU3RhdGljIiwiZGF0YSI6W3siYmFja2dyb3VuZGNvbG9yIjoiMDAwMDAwYWIiLCJwYWRkaW5nIjoiM3wqfDEwfCp8M3wqfDEwfCp8cHgiLCJib3hzaGFkb3ciOiIwfCp8MHwqfDB8KnwwfCp8MDAwMDAwZmYiLCJib3JkZXIiOiIwfCp8c29saWR8KnwwMDAwMDBmZiIsImJvcmRlcnJhZGl1cyI6IjAiLCJleHRyYSI6ImJvdHRvbTogMDtcbmxlZnQ6IDA7In1dfQ==',
|
22 |
+
'widget-thumbnail-title' => 0,
|
23 |
+
'widget-thumbnail-title-font' => 'eyJuYW1lIjoiU3RhdGljIiwiZGF0YSI6W3siY29sb3IiOiJmZmZmZmZmZiIsInNpemUiOiIxMnx8cHgiLCJ0c2hhZG93IjoiMHwqfDB8KnwwfCp8MDAwMDAwYWIiLCJhZm9udCI6Ik1vbnRzZXJyYXQiLCJsaW5laGVpZ2h0IjoiMS4yIiwiYm9sZCI6MCwiaXRhbGljIjowLCJ1bmRlcmxpbmUiOjAsImFsaWduIjoibGVmdCJ9LHsiY29sb3IiOiJmYzI4MjhmZiIsImFmb250IjoiZ29vZ2xlKEBpbXBvcnQgdXJsKGh0dHA6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJhbGV3YXkpOyksQXJpYWwiLCJzaXplIjoiMjV8fHB4In0se31dfQ==',
|
24 |
+
'widget-thumbnail-description' => 0,
|
25 |
+
'widget-thumbnail-description-font' => 'eyJuYW1lIjoiU3RhdGljIiwiZGF0YSI6W3siY29sb3IiOiJmZmZmZmZmZiIsInNpemUiOiIxMnx8cHgiLCJ0c2hhZG93IjoiMHwqfDB8KnwwfCp8MDAwMDAwYWIiLCJhZm9udCI6Ik1vbnRzZXJyYXQiLCJsaW5laGVpZ2h0IjoiMS4zIiwiYm9sZCI6MCwiaXRhbGljIjowLCJ1bmRlcmxpbmUiOjAsImFsaWduIjoibGVmdCJ9LHsiY29sb3IiOiJmYzI4MjhmZiIsImFmb250IjoiZ29vZ2xlKEBpbXBvcnQgdXJsKGh0dHA6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJhbGV3YXkpOyksQXJpYWwiLCJzaXplIjoiMjV8fHB4In0se31dfQ==',
|
26 |
+
'widget-thumbnail-caption-placement' => 'overlay',
|
27 |
+
'widget-thumbnail-caption-size' => 100,
|
28 |
+
'widget-thumbnail-group' => 1,
|
29 |
+
'widget-thumbnail-orientation' => 'auto',
|
30 |
+
'widget-thumbnail-size' => '100%',
|
31 |
+
'widget-thumbnail-overlay' => 0,
|
32 |
+
'widget-thumbnail-show-image' => 1,
|
33 |
+
'widget-thumbnail-width' => 100,
|
34 |
+
'widget-thumbnail-height' => 60
|
35 |
+
);
|
36 |
+
}
|
37 |
+
|
38 |
+
function onThumbnailList(&$list) {
|
39 |
+
$list[$this->_name] = $this->getPath();
|
40 |
+
}
|
41 |
+
|
42 |
+
function getPath() {
|
43 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . 'default' . DIRECTORY_SEPARATOR;
|
44 |
+
}
|
45 |
+
|
46 |
+
static function getPositions(&$params) {
|
47 |
+
$positions = array();
|
48 |
+
$positions['thumbnail-position'] = array(
|
49 |
+
self::$key . 'position-',
|
50 |
+
'thumbnail'
|
51 |
+
);
|
52 |
+
return $positions;
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* @param $slider N2SmartSliderAbstract
|
57 |
+
* @param $id
|
58 |
+
* @param $params
|
59 |
+
*
|
60 |
+
* @return string
|
61 |
+
*/
|
62 |
+
static function render($slider, $id, $params) {
|
63 |
+
$showImage = intval($params->get(self::$key . 'show-image'));
|
64 |
+
$showTitle = intval($params->get(self::$key . 'title'));
|
65 |
+
$showDescription = intval($params->get(self::$key . 'description'));
|
66 |
+
|
67 |
+
if (!$showImage && !$showTitle && !$showDescription) {
|
68 |
+
// Nothing to show
|
69 |
+
return '';
|
70 |
+
}
|
71 |
+
|
72 |
+
N2JS::addFile(N2Filesystem::translate(dirname(__FILE__) . '/default/thumbnail.js'), $id);
|
73 |
+
|
74 |
+
N2LESS::addFile(N2Filesystem::translate(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'default' . DIRECTORY_SEPARATOR . 'style.less'), $slider->cacheId, array(
|
75 |
+
"sliderid" => $slider->elementId
|
76 |
+
), NEXTEND_SMARTSLIDER_ASSETS . '/less' . NDS);
|
77 |
+
|
78 |
+
list($displayClass, $displayAttributes) = self::getDisplayAttributes($params, self::$key);
|
79 |
+
list($style, $attributes) = self::getPosition($params, self::$key);
|
80 |
+
$attributes['data-offset'] = $params->get(self::$key . 'position-offset', 0);
|
81 |
+
|
82 |
+
$barStyle = N2StyleRenderer::render($params->get(self::$key . 'style-bar'), 'simple', $slider->elementId, 'div#' . $slider->elementId . ' ');
|
83 |
+
|
84 |
+
|
85 |
+
$slideStyle = N2StyleRenderer::render($params->get(self::$key . 'style-slides'), 'dot', $slider->elementId, 'div#' . $slider->elementId . ' ');
|
86 |
+
|
87 |
+
$width = intval($slider->params->get(self::$key . 'width', 160));
|
88 |
+
$height = intval($slider->params->get(self::$key . 'height', 100));
|
89 |
+
|
90 |
+
|
91 |
+
$captionPlacement = $slider->params->get(self::$key . 'caption-placement', 'overlay');
|
92 |
+
if (!$showImage) {
|
93 |
+
$captionPlacement = 'before';
|
94 |
+
}
|
95 |
+
|
96 |
+
if (!$showTitle && !$showDescription) {
|
97 |
+
$captionPlacement = 'overlay';
|
98 |
+
}
|
99 |
+
|
100 |
+
$captionSize = intval($slider->params->get(self::$key . 'caption-size', 100));
|
101 |
+
|
102 |
+
|
103 |
+
$showCaption = $showTitle || $showDescription;
|
104 |
+
|
105 |
+
if ($showCaption) {
|
106 |
+
$captionStyle = N2StyleRenderer::render($params->get(self::$key . 'title-style'), 'simple', $slider->elementId, 'div#' . $slider->elementId . ' ');
|
107 |
+
if ($showTitle) {
|
108 |
+
$titleFont = N2FontRenderer::render($params->get(self::$key . 'title-font'), 'simple', $slider->elementId, 'div#' . $slider->elementId . ' ');
|
109 |
+
}
|
110 |
+
if ($showDescription) {
|
111 |
+
$descriptionFont = N2FontRenderer::render($params->get(self::$key . 'description-font'), 'simple', $slider->elementId, 'div#' . $slider->elementId . ' ');
|
112 |
+
}
|
113 |
+
}
|
114 |
+
|
115 |
+
$group = max(1, intval($params->get(self::$key . 'group')));
|
116 |
+
|
117 |
+
$orientation = self::getOrientationByPosition($params->get(self::$key . 'position-mode'), $params->get(self::$key . 'position-area'), $params->get(self::$key . 'orientation'));
|
118 |
+
$slides = NHtml::openTag('table');
|
119 |
+
|
120 |
+
$containerStyle = '';
|
121 |
+
$captionClass = 'n2-caption-' . $captionPlacement;
|
122 |
+
$captionExtraStyle = '';
|
123 |
+
switch ($captionPlacement) {
|
124 |
+
case 'before':
|
125 |
+
case 'after':
|
126 |
+
switch ($orientation) {
|
127 |
+
case 'vertical':
|
128 |
+
if (!$showImage) {
|
129 |
+
$width = 0;
|
130 |
+
}
|
131 |
+
$containerStyle = "width: " . ($width + $captionSize) . "px; height: {$height}px;";
|
132 |
+
$captionExtraStyle .= "width: {$captionSize}px";
|
133 |
+
break;
|
134 |
+
default:
|
135 |
+
if (!$showImage) {
|
136 |
+
$height = 0;
|
137 |
+
}
|
138 |
+
$containerStyle = "width: {$width}px; height: " . ($height + $captionSize) . "px;";
|
139 |
+
$captionExtraStyle .= "height: {$captionSize}px";
|
140 |
+
}
|
141 |
+
break;
|
142 |
+
default:
|
143 |
+
$containerStyle = "width: {$width}px; height: {$height}px;";
|
144 |
+
}
|
145 |
+
|
146 |
+
$image = '';
|
147 |
+
$rows = array();
|
148 |
+
$i = 0;
|
149 |
+
foreach ($slider->slides AS $slide) {
|
150 |
+
$active = '';
|
151 |
+
if ($slider->_activeSlide == $i) {
|
152 |
+
$active = 'n2-active ';
|
153 |
+
}
|
154 |
+
if ($orientation == 'horizontal') {
|
155 |
+
$row = $i % $group;
|
156 |
+
} else {
|
157 |
+
$row = intval($i / $group);
|
158 |
+
}
|
159 |
+
if (!isset($rows[$row])) {
|
160 |
+
$rows[$row] = array();
|
161 |
+
}
|
162 |
+
|
163 |
+
if ($showImage) {
|
164 |
+
$image = NHtml::tag('div', array(
|
165 |
+
'class' => 'n2-ss-thumb-image',
|
166 |
+
'style' => "background-image: url('" . $slide->getThumbnail() . "'); width: {$width}px; height: {$height}px;"
|
167 |
+
), '');
|
168 |
+
}
|
169 |
+
|
170 |
+
$inner = '';
|
171 |
+
|
172 |
+
if ($showCaption) {
|
173 |
+
$html = '';
|
174 |
+
if ($showTitle) {
|
175 |
+
$html .= NHtml::tag('div', array(
|
176 |
+
'class' => $titleFont
|
177 |
+
), $slide->getTitle());
|
178 |
+
}
|
179 |
+
$description = $slide->getDescription();
|
180 |
+
if ($showDescription && !empty($description)) {
|
181 |
+
$html .= NHtml::tag('div', array(
|
182 |
+
'class' => $descriptionFont
|
183 |
+
), $description);
|
184 |
+
}
|
185 |
+
|
186 |
+
$inner = NHtml::tag('div', array(
|
187 |
+
'class' => $captionStyle . 'n2-ss-caption ' . $captionClass,
|
188 |
+
'style' => $captionExtraStyle
|
189 |
+
), $html);
|
190 |
+
}
|
191 |
+
switch ($captionPlacement) {
|
192 |
+
case 'before':
|
193 |
+
$inner .= $image;
|
194 |
+
break;
|
195 |
+
case 'after':
|
196 |
+
default:
|
197 |
+
$inner = $image . $inner;
|
198 |
+
}
|
199 |
+
|
200 |
+
$rows[$row][] = NHtml::tag('td', array(), NHtml::tag('div', array(
|
201 |
+
'class' => $slideStyle . $active,
|
202 |
+
'style' => $containerStyle
|
203 |
+
), $inner));
|
204 |
+
$i++;
|
205 |
+
}
|
206 |
+
|
207 |
+
foreach ($rows AS $row) {
|
208 |
+
$slides .= NHtml::tag('tr', array(), implode('', $row));
|
209 |
+
}
|
210 |
+
$slides .= NHtml::closeTag('table');
|
211 |
+
|
212 |
+
$parameters = array(
|
213 |
+
'overlay' => $params->get(self::$key . 'position-mode') != 'simple' || $params->get(self::$key . 'overlay'),
|
214 |
+
'area' => intval($params->get(self::$key . 'position-area')),
|
215 |
+
'orientation' => $orientation,
|
216 |
+
'group' => $group,
|
217 |
+
'action' => $params->get(self::$key . 'action')
|
218 |
+
);
|
219 |
+
|
220 |
+
N2JS::addInline('new NextendSmartSliderWidgetThumbnailDefault("' . $id . '", ' . json_encode($parameters) . ');');
|
221 |
+
|
222 |
+
$size = $params->get(self::$key . 'size');
|
223 |
+
if ($orientation == 'horizontal') {
|
224 |
+
if (is_numeric($size) || substr($size, -1) == '%' || substr($size, -2) == 'px') {
|
225 |
+
$style .= 'width:' . $size . ';';
|
226 |
+
} else {
|
227 |
+
$attributes['data-sswidth'] = $size;
|
228 |
+
}
|
229 |
+
} else {
|
230 |
+
if (is_numeric($size) || substr($size, -1) == '%' || substr($size, -2) == 'px') {
|
231 |
+
$style .= 'height:' . $size . ';';
|
232 |
+
} else {
|
233 |
+
$attributes['data-ssheight'] = $size;
|
234 |
+
}
|
235 |
+
}
|
236 |
+
|
237 |
+
$previous = $next = '';
|
238 |
+
$showArrow = intval($slider->params->get(self::$key . 'arrow', 1));
|
239 |
+
if ($showArrow) {
|
240 |
+
$previous = NHtml::image('data:image/svg+xml;base64,' . base64_encode(N2Filesystem::readFile(N2ImageHelper::fixed('$ss$/plugins/widgetthumbnail/default/default/thumbnail-up-arrow.svg', true))), '', array(
|
241 |
+
'class' => 'nextend-thumbnail-button nextend-thumbnail-previous'
|
242 |
+
));
|
243 |
+
$next = NHtml::image('data:image/svg+xml;base64,' . base64_encode(N2Filesystem::readFile(N2ImageHelper::fixed('$ss$/plugins/widgetthumbnail/default/default/thumbnail-down-arrow.svg', true))), '', array(
|
244 |
+
'class' => 'nextend-thumbnail-button nextend-thumbnail-next n2-active'
|
245 |
+
));
|
246 |
+
}
|
247 |
+
|
248 |
+
if ($params->get(self::$key . 'position-mode') == 'simple' && $orientation == 'vertical') {
|
249 |
+
$area = $params->get(self::$key . 'position-area');
|
250 |
+
switch ($area) {
|
251 |
+
case '5':
|
252 |
+
case '6':
|
253 |
+
case '7':
|
254 |
+
case '8':
|
255 |
+
$attributes['data-sstop'] = '0';
|
256 |
+
break;
|
257 |
+
}
|
258 |
+
}
|
259 |
+
|
260 |
+
return NHtml::tag('div', $displayAttributes + $attributes + array(
|
261 |
+
'class' => $displayClass . 'nextend-thumbnail nextend-thumbnail-default nextend-thumbnail-' . $orientation,
|
262 |
+
'style' => $style
|
263 |
+
), $previous . $next . NHtml::tag('div', array(
|
264 |
+
'class' => 'nextend-thumbnail-inner'
|
265 |
+
), NHtml::tag('div', array(
|
266 |
+
'class' => $barStyle . 'nextend-thumbnail-scroller',
|
267 |
+
), $slides)));
|
268 |
+
}
|
269 |
+
|
270 |
+
public static function prepareExport($export, $params) {
|
271 |
+
|
272 |
+
$export->addVisual($params->get(self::$key . 'style-bar'));
|
273 |
+
$export->addVisual($params->get(self::$key . 'style-slides'));
|
274 |
+
$export->addVisual($params->get(self::$key . 'title-style'));
|
275 |
+
|
276 |
+
$export->addVisual($params->get(self::$key . 'title-font'));
|
277 |
+
$export->addVisual($params->get(self::$key . 'description-font'));
|
278 |
+
}
|
279 |
+
|
280 |
+
public static function prepareImport($import, $params) {
|
281 |
+
|
282 |
+
$params->set(self::$key . 'style-bar', $import->fixSection($params->get(self::$key . 'style-bar', '')));
|
283 |
+
$params->set(self::$key . 'style-slides', $import->fixSection($params->get(self::$key . 'style-slides', '')));
|
284 |
+
$params->set(self::$key . 'title-style', $import->fixSection($params->get(self::$key . 'title-style', '')));
|
285 |
+
|
286 |
+
$params->set(self::$key . 'title-font', $import->fixSection($params->get(self::$key . 'title-font', '')));
|
287 |
+
$params->set(self::$key . 'description-font', $import->fixSection($params->get(self::$key . 'description-font', '')));
|
288 |
+
}
|
289 |
+
}
|
290 |
+
|
291 |
+
N2Plugin::addPlugin('sswidgetthumbnail', 'N2SSPluginWidgetThumbnailDefault');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetthumbnail/default/default/config.xml
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="thumbnail" label="Thumbnail settings" hidetitle="1">
|
3 |
+
<param name="widget-thumbnail-position" type="widgetposition" label="Position"/>
|
4 |
+
<param type="group" label="Style">
|
5 |
+
<param name="widget-thumbnail-style-bar" type="style" previewmode="simple" style2="sliderwidget-thumbnail-style-slides" label="Bar" set="1900">
|
6 |
+
<![CDATA[ <div class="{styleClassName}" style="overflow: hidden; width:{$('#sliderwidget-thumbnail-width').val()*2.5}px;"><div style="width:200%"><div class="{styleClassName2}" style="display: inline-block; vertical-align:top; width:{$('#sliderwidget-thumbnail-width').val()}px; height: {$('#sliderwidget-thumbnail-height').val()}px; background: url('$system$/images/placeholder/imageback.png');"></div><div class="{styleClassName2} n2-active" style="display: inline-block; vertical-align:top; width:{$('#sliderwidget-thumbnail-width').val()}px; height: {$('#sliderwidget-thumbnail-height').val()}px; background: url('$system$/images/placeholder/image.png');"></div><div class="{styleClassName2}" style="display: inline-block; vertical-align:top; width:{$('#sliderwidget-thumbnail-width').val()}px; height: {$('#sliderwidget-thumbnail-height').val()}px; background: url('$system$/images/placeholder/imagefront.png');"></div></div></div> ]]>
|
7 |
+
</param>
|
8 |
+
<param name="widget-thumbnail-style-slides" type="style" previewmode="dot" style2="sliderwidget-thumbnail-style-bar" label="Thumbnail" class="n2-expert" set="1900">
|
9 |
+
<![CDATA[ <div class="{styleClassName2}" style="overflow: hidden;width: 480px;"><div style="width:200%"><div class="{styleClassName}" style="display: inline-block; vertical-align:top; width:{$('#sliderwidget-thumbnail-width').val()}px; height: {$('#sliderwidget-thumbnail-height').val()}px; background: url('$system$/images/placeholder/imageback.png');"></div><div class="{styleClassName} n2-active" style="display: inline-block; vertical-align:top; width:{$('#sliderwidget-thumbnail-width').val()}px; height: {$('#sliderwidget-thumbnail-height').val()}px; background: url('$system$/images/placeholder/image.png');"></div><div class="{styleClassName}" style="display: inline-block; vertical-align:top; width:{$('#sliderwidget-thumbnail-width').val()}px; height: {$('#sliderwidget-thumbnail-height').val()}px; background: url('$system$/images/placeholder/imagefront.png');"></div></div></div> ]]>
|
10 |
+
</param>
|
11 |
+
</param>
|
12 |
+
<param type="onoff" label="Show arrow" name="widget-thumbnail-arrow"/>
|
13 |
+
<param type="group" label="Caption">
|
14 |
+
<param name="widget-thumbnail-title-style" type="style" previewmode="simple" font="sliderwidget-thumbnail-title-font" label="Style" post="break" set="1900">
|
15 |
+
<![CDATA[ <span class="{styleClassName} {fontClassName}">Slide title</span> ]]>
|
16 |
+
</param>
|
17 |
+
<param type="group">
|
18 |
+
<param type="onoff" label="Title" name="widget-thumbnail-title"/>
|
19 |
+
<param name="widget-thumbnail-title-font" type="font" previewmode="simple" style="sliderwidget-thumbnail-title-style" label="Font" set="1000">
|
20 |
+
<![CDATA[ <span class="{styleClassName} {fontClassName}">Slide title</span> ]]>
|
21 |
+
</param>
|
22 |
+
</param>
|
23 |
+
<param type="group" post="break">
|
24 |
+
<param type="onoff" label="Description" name="widget-thumbnail-description"/>
|
25 |
+
<param name="widget-thumbnail-description-font" type="font" previewmode="simple" style="sliderwidget-thumbnail-title-style" label="Font" set="1000">
|
26 |
+
<![CDATA[ <span class="{styleClassName} {fontClassName}">Slide description with long long text...</span> ]]>
|
27 |
+
</param>
|
28 |
+
</param>
|
29 |
+
<param type="group">
|
30 |
+
<param type="radio" name="widget-thumbnail-caption-placement" label="Placement">
|
31 |
+
<option value="before">Before</option>
|
32 |
+
<option value="overlay">Overlay</option>
|
33 |
+
<option value="after">After</option>
|
34 |
+
</param>
|
35 |
+
<param type="text" name="widget-thumbnail-caption-size" label="Height (horizontal) or Width (vertical)" style="width:40px;">
|
36 |
+
<unit>px</unit>
|
37 |
+
</param>
|
38 |
+
</param>
|
39 |
+
</param>
|
40 |
+
</params>
|
41 |
+
</root>
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/plugins/widgetthumbnail/loadplugin.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$dir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
5 |
+
foreach (N2Filesystem::folders($dir) AS $folder) {
|
6 |
+
$file = $dir . $folder . DIRECTORY_SEPARATOR . $folder . '.php';
|
7 |
+
if (N2Filesystem::fileexists($file)) {
|
8 |
+
require_once($file);
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/smartslider3.php
ADDED
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SS3
|
4 |
+
{
|
5 |
+
|
6 |
+
public static $version = '3.0.15';
|
7 |
+
|
8 |
+
public static $product = 'smartslider3';
|
9 |
+
|
10 |
+
public static $source = '';
|
11 |
+
|
12 |
+
public static function getProUrlHome() {
|
13 |
+
$query = '';
|
14 |
+
if (!empty(self::$source)) {
|
15 |
+
$query = '?source=' . self::$source;
|
16 |
+
}
|
17 |
+
return 'http://smartslider3.com/' . $query;
|
18 |
+
}
|
19 |
+
|
20 |
+
public static function getProUrlPricing() {
|
21 |
+
$query = '';
|
22 |
+
if (!empty(self::$source)) {
|
23 |
+
$query = '?source=' . self::$source;
|
24 |
+
}
|
25 |
+
return 'http://smartslider3.com/pricing/' . $query;
|
26 |
+
}
|
27 |
+
|
28 |
+
public static function getWhyProUrl() {
|
29 |
+
$query = '';
|
30 |
+
if (!empty(self::$source)) {
|
31 |
+
$query = '?source=' . self::$source;
|
32 |
+
}
|
33 |
+
return 'http://smartslider3.com/why-upgrade-to-pro/' . $query;
|
34 |
+
}
|
35 |
+
|
36 |
+
public static function getUpdateInfo() {
|
37 |
+
return array(
|
38 |
+
'name' => 'smartslider3',
|
39 |
+
'plugin' => 'nextend-smart-slider3-pro/nextend-smart-slider3-pro.php'
|
40 |
+
);
|
41 |
+
}
|
42 |
+
|
43 |
+
public static function api($_posts) {
|
44 |
+
|
45 |
+
$posts = array(
|
46 |
+
'product' => self::$product,
|
47 |
+
'pro' => N2SSPRO
|
48 |
+
);
|
49 |
+
return N2::api($_posts + $posts);
|
50 |
+
}
|
51 |
+
|
52 |
+
public static function hasApiError($status, $data = array()) {
|
53 |
+
extract($data);
|
54 |
+
switch ($status) {
|
55 |
+
case 'OK':
|
56 |
+
return false;
|
57 |
+
case 'PRODUCT_ASSET_NOT_AVAILABLE':
|
58 |
+
N2Message::error(sprintf(n2_('Demo slider is not available with the following ID: %s'), $key));
|
59 |
+
case 'ASSET_PREMIUM':
|
60 |
+
N2Message::error('Premium sliders are available in PRO version only!');
|
61 |
+
break;
|
62 |
+
case 'LICENSE_EXPIRED':
|
63 |
+
N2Message::error('Your license key expired!');
|
64 |
+
break;
|
65 |
+
case 'DOMAIN_REGISTER_FAILED':
|
66 |
+
N2Message::error('Your license key authorized on a different domain!');
|
67 |
+
break;
|
68 |
+
case 'LICENSE_INVALID':
|
69 |
+
N2Message::error('Your license key invalid, please enter again!');
|
70 |
+
N2SmartsliderLicenseModel::getInstance()
|
71 |
+
->setKey('');
|
72 |
+
return array(
|
73 |
+
"sliders/index"
|
74 |
+
);
|
75 |
+
break;
|
76 |
+
case 'UPDATE_ERROR':
|
77 |
+
N2Message::error('Update error, please update manually!');
|
78 |
+
break;
|
79 |
+
case 'ERROR_HANDLED':
|
80 |
+
break;
|
81 |
+
case null:
|
82 |
+
N2Message::error('Licensing server not reachable, try again later!');
|
83 |
+
break;
|
84 |
+
default:
|
85 |
+
N2Message::error('Debug: ' . $status);
|
86 |
+
N2Message::error('Licensing server not reachable, try again later!');
|
87 |
+
break;
|
88 |
+
}
|
89 |
+
return true;
|
90 |
+
}
|
91 |
+
|
92 |
+
public static function showBeacon($search = '') {
|
93 |
+
if (intval(N2SmartSliderSettings::get('beacon', 1))) {
|
94 |
+
echo '<script>!function(e,o,n){window.HSCW=o,window.HS=n,n.beacon=n.beacon||{};var t=n.beacon;t.userConfig={},t.readyQueue=[],t.config=function(e){this.userConfig=e},t.ready=function(e){this.readyQueue.push(e)},o.config={docs:{enabled:!0,baseUrl:"//smart-slider-3.helpscoutdocs.com/"},contact:{enabled:!0,formId:"5bf2183c-77e2-11e5-8846-0e599dc12a51"}};var r=e.getElementsByTagName("script")[0],c=e.createElement("script");c.type="text/javascript",c.async=!0,c.src="https://djtflbt20bdde.cloudfront.net/",r.parentNode.insertBefore(c,r)}(document,window.HSCW||{},window.HS||{});HS.beacon.ready(function () {HS.beacon.search("' . $search . '");});</script>';
|
95 |
+
}
|
96 |
+
}
|
97 |
+
}
|
98 |
+
if (defined('SMARTSLIDER3AFFILIATE')) {
|
99 |
+
N2SS3::$source = SMARTSLIDER3AFFILIATE;
|
100 |
+
}
|
101 |
+
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/widget/N2SmartsliderApplicationTypeWidget.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartsliderApplicationTypeWidget extends N2ApplicationType
|
4 |
+
{
|
5 |
+
|
6 |
+
public $type = "widget";
|
7 |
+
|
8 |
+
public function __construct($app, $appTypePath) {
|
9 |
+
parent::__construct($app, $appTypePath);
|
10 |
+
|
11 |
+
N2AssetsManager::addCachedGroup('core');
|
12 |
+
N2AssetsManager::addCachedGroup('smartslider');
|
13 |
+
}
|
14 |
+
|
15 |
+
protected function autoload() {
|
16 |
+
N2Loader::import(array(
|
17 |
+
'helpers.NHtml',
|
18 |
+
'libraries.cache.NextendModuleCache',
|
19 |
+
'libraries.embedwidget.embedwidget',
|
20 |
+
));
|
21 |
+
|
22 |
+
N2Loader::import(array(
|
23 |
+
'libraries.settings.settings',
|
24 |
+
'libraries.settings.layout',
|
25 |
+
'libraries.settings.stylemanager',
|
26 |
+
'libraries.settings.font'
|
27 |
+
), 'smartslider');
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/widget/controllers/Home.php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SmartSliderWidgetHomeController extends N2Controller
|
4 |
+
{
|
5 |
+
|
6 |
+
public function initialize() {
|
7 |
+
parent::initialize();
|
8 |
+
|
9 |
+
N2Loader::import(array(
|
10 |
+
'models.Sliders',
|
11 |
+
'models.Slides'
|
12 |
+
), 'smartslider');
|
13 |
+
|
14 |
+
}
|
15 |
+
|
16 |
+
public function actionIndex() {
|
17 |
+
|
18 |
+
}
|
19 |
+
|
20 |
+
public function actionJoomla($sliderid, $usage) {
|
21 |
+
}
|
22 |
+
|
23 |
+
public function actionWordpress($sliderid, $usage) {
|
24 |
+
}
|
25 |
+
|
26 |
+
public function actionMagento($sliderid, $usage) {
|
27 |
+
$this->addView("magento", array(
|
28 |
+
"sliderid" => $sliderid,
|
29 |
+
"usage" => $usage
|
30 |
+
), "content");
|
31 |
+
$this->render();
|
32 |
+
|
33 |
+
}
|
34 |
+
|
35 |
+
public function actionNative($sliderid, $usage) {
|
36 |
+
}
|
37 |
+
|
38 |
+
}
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/widget/layouts/default.php
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* @var $this N2Layout */
|
3 |
+
|
4 |
+
$this->renderFragmentBlock('nextend_content');
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/widget/views/home/magento.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$sliderManager = new N2SmartSliderManager($sliderid);
|
3 |
+
$sliderManager->setUsage($usage);
|
4 |
+
echo $sliderManager->render(true);
|
5 |
+
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/widget/views/home/native.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php
|
app/code/community/Nextend2/SmartSlider3/library/smartslider/widget/views/home/wordpress.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php
|
app/code/community/Nextend2/SmartSlider3/sql/smartslider3_setup/mysql4-install-1.0.0.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
$installer->startSetup();
|
5 |
+
|
6 |
+
defined('NEXTEND_INSTALL') || define('NEXTEND_INSTALL', true);
|
7 |
+
|
8 |
+
require_once(dirname(__FILE__) . '/../../../magento/library.php');
|
9 |
+
require_once(dirname(__FILE__) . '/../../library/magento/init.php');
|
10 |
+
N2Base::getApplication("smartslider")->getApplicationType('backend')->render(array(
|
11 |
+
"controller" => "install",
|
12 |
+
"action" => "index",
|
13 |
+
"useRequest" => false
|
14 |
+
), array(true));
|
15 |
+
|
16 |
+
$installer->endSetup();
|
app/code/community/Nextend2/library/applications/system/N2SystemApplication.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemApplication extends N2Application
|
4 |
+
{
|
5 |
+
|
6 |
+
public $name = "system";
|
7 |
+
|
8 |
+
protected function autoload() {
|
9 |
+
N2Loader::import(array(
|
10 |
+
'libraries.embedwidget.embedwidget',
|
11 |
+
'libraries.form.form'
|
12 |
+
));
|
13 |
+
}
|
14 |
+
|
15 |
+
}
|
app/code/community/Nextend2/library/applications/system/N2SystemApplicationInfo.php
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemApplicationInfo extends N2ApplicationInfo
|
4 |
+
{
|
5 |
+
|
6 |
+
public function __construct() {
|
7 |
+
$this->path = dirname(__FILE__);
|
8 |
+
$this->assetPath = realpath(N2LIBRARYASSETS);
|
9 |
+
parent::__construct();
|
10 |
+
}
|
11 |
+
|
12 |
+
public function isPublic() {
|
13 |
+
return false;
|
14 |
+
}
|
15 |
+
|
16 |
+
public function getName() {
|
17 |
+
return 'system';
|
18 |
+
}
|
19 |
+
|
20 |
+
public function getLabel() {
|
21 |
+
return 'Nextend system application';
|
22 |
+
}
|
23 |
+
|
24 |
+
public function getInstance() {
|
25 |
+
require_once $this->path . NDS . "N2SystemApplication.php";
|
26 |
+
return new N2SystemApplication($this);
|
27 |
+
}
|
28 |
+
|
29 |
+
public function getPathKey() {
|
30 |
+
return '$system$';
|
31 |
+
}
|
32 |
+
|
33 |
+
public function assetsBackend() {
|
34 |
+
|
35 |
+
$path = $this->getAssetsPath();
|
36 |
+
|
37 |
+
N2JS::addFiles($path . "/admin/js", array(
|
38 |
+
"visual.js",
|
39 |
+
"modals.js",
|
40 |
+
"sets.js",
|
41 |
+
"visualeditor.js"
|
42 |
+
), 'system-backend');
|
43 |
+
|
44 |
+
foreach (glob($path . "/admin/js/*.js") AS $file) {
|
45 |
+
N2JS::addFile($file, 'system-backend');
|
46 |
+
}
|
47 |
+
|
48 |
+
foreach (glob($path . "/admin/js/fontservices/*.js") AS $file) {
|
49 |
+
N2JS::addFile($file, 'system-backend');
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
public function assetsFrontend() {
|
54 |
+
|
55 |
+
}
|
56 |
+
}
|
57 |
+
|
58 |
+
|
59 |
+
return new N2SystemApplicationInfo();
|
app/code/community/Nextend2/library/applications/system/backend/N2SystemApplicationTypeBackend.php
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemApplicationTypeBackend extends N2ApplicationType
|
4 |
+
{
|
5 |
+
|
6 |
+
public $type = "backend";
|
7 |
+
|
8 |
+
protected function autoload() {
|
9 |
+
|
10 |
+
N2Loader::import('helpers.controllers.VisualManager', 'system.backend');
|
11 |
+
N2Loader::import('helpers.controllers.VisualManagerAjax', 'system.backend');
|
12 |
+
}
|
13 |
+
|
14 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/Animation.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendAnimationController extends N2SystemBackendVisualManagerController
|
4 |
+
{
|
5 |
+
|
6 |
+
protected $type = 'animation';
|
7 |
+
|
8 |
+
public function __construct($appType, $defaultParams) {
|
9 |
+
$this->logoText = n2_('Animation');
|
10 |
+
|
11 |
+
N2Localization::addJS(array(
|
12 |
+
'animation',
|
13 |
+
'animations',
|
14 |
+
));
|
15 |
+
|
16 |
+
parent::__construct($appType, $defaultParams);
|
17 |
+
}
|
18 |
+
|
19 |
+
public function getModel() {
|
20 |
+
return new N2SystemAnimationModel();
|
21 |
+
}
|
22 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/Browse.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendBrowseController extends N2BackendController
|
4 |
+
{
|
5 |
+
|
6 |
+
public function __construct($appType, $defaultParams) {
|
7 |
+
|
8 |
+
N2Localization::addJS(array(
|
9 |
+
'Drop files anywhere to upload or',
|
10 |
+
'Select files'
|
11 |
+
));
|
12 |
+
|
13 |
+
parent::__construct($appType, $defaultParams);
|
14 |
+
}
|
15 |
+
|
16 |
+
public function actionIndex() {
|
17 |
+
N2JS::addFirstCode("new NextendBrowse('" . $this->appType->router->createUrl('browse/index') . "', " . (defined('N2_IMAGE_UPLOAD_DISABLE') ? 0 : 1) . ");");
|
18 |
+
}
|
19 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/Dashboard.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendDashboardController extends N2BackendController
|
4 |
+
{
|
5 |
+
public $layoutName = 'full';
|
6 |
+
|
7 |
+
public function actionIndex() {
|
8 |
+
|
9 |
+
|
10 |
+
$this->addView("index");
|
11 |
+
$this->render();
|
12 |
+
}
|
13 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/Font.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendFontController extends N2SystemBackendVisualManagerController
|
4 |
+
{
|
5 |
+
|
6 |
+
protected $type = 'font';
|
7 |
+
|
8 |
+
public function __construct($appType, $defaultParams) {
|
9 |
+
$this->logoText = n2_('Font manager');
|
10 |
+
|
11 |
+
N2Localization::addJS(array(
|
12 |
+
'font',
|
13 |
+
'fonts',
|
14 |
+
));
|
15 |
+
|
16 |
+
parent::__construct($appType, $defaultParams);
|
17 |
+
}
|
18 |
+
|
19 |
+
public function getModel() {
|
20 |
+
return new N2SystemFontModel();
|
21 |
+
}
|
22 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/Help.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendHelpController extends N2BackendController
|
4 |
+
{
|
5 |
+
public $layoutName = 'full';
|
6 |
+
|
7 |
+
public function actionIndex() {
|
8 |
+
$this->addView("index");
|
9 |
+
$this->render();
|
10 |
+
}
|
11 |
+
|
12 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/Image.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendImageController extends N2SystemBackendVisualManagerController
|
4 |
+
{
|
5 |
+
|
6 |
+
public $layoutName = "fulllightbox";
|
7 |
+
|
8 |
+
protected $type = 'image';
|
9 |
+
|
10 |
+
public function __construct($appType, $defaultParams) {
|
11 |
+
$this->logoText = n2_('Image manager');
|
12 |
+
|
13 |
+
N2Localization::addJS(array(
|
14 |
+
'Generate',
|
15 |
+
'Desktop image is empty!',
|
16 |
+
'image',
|
17 |
+
'images'
|
18 |
+
));
|
19 |
+
|
20 |
+
parent::__construct($appType, $defaultParams);
|
21 |
+
}
|
22 |
+
|
23 |
+
public function getModel() {
|
24 |
+
return new N2SystemImageModel();
|
25 |
+
}
|
26 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/Install.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class N2SystemBackendInstallController extends N2BackendController
|
5 |
+
{
|
6 |
+
|
7 |
+
public function initialize() {
|
8 |
+
|
9 |
+
}
|
10 |
+
|
11 |
+
public function actionIndex($secured = false) {
|
12 |
+
if ($secured) {
|
13 |
+
N2Loader::import('models.Install', 'system');
|
14 |
+
|
15 |
+
$installModel = new N2SystemInstallModel();
|
16 |
+
|
17 |
+
$installModel->install();
|
18 |
+
}
|
19 |
+
}
|
20 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/Login.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import('controller.Login', 'platform');
|
app/code/community/Nextend2/library/applications/system/backend/controllers/Settings.php
ADDED
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendSettingsController extends N2BackendController
|
4 |
+
{
|
5 |
+
|
6 |
+
protected function initLayout() {
|
7 |
+
if (N2Request::getVar('layout') == 'modal') {
|
8 |
+
$this->layoutName = 'modal';
|
9 |
+
}
|
10 |
+
parent::initLayout();
|
11 |
+
}
|
12 |
+
|
13 |
+
public function actionIndex() {
|
14 |
+
if ($this->canDo('nextend_config')) {
|
15 |
+
|
16 |
+
$data = N2Post::getVar('global');
|
17 |
+
if (is_array($data)) {
|
18 |
+
if ($this->validateToken()) {
|
19 |
+
N2Settings::setAll($data);
|
20 |
+
} else {
|
21 |
+
$this->refresh();
|
22 |
+
}
|
23 |
+
}
|
24 |
+
|
25 |
+
|
26 |
+
$this->addView("../../inline/sidebar/settings", array(
|
27 |
+
"appObj" => $this
|
28 |
+
), "sidebar");
|
29 |
+
|
30 |
+
$this->addView("index");
|
31 |
+
$this->render();
|
32 |
+
} else {
|
33 |
+
$this->noAccess();
|
34 |
+
}
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Delete all cached js/css files
|
39 |
+
*/
|
40 |
+
public function actionClearCache() {
|
41 |
+
if ($this->canDo('nextend_config')) {
|
42 |
+
|
43 |
+
debug_print_backtrace();
|
44 |
+
die('do this method');
|
45 |
+
|
46 |
+
N2Request::redirect($this->appType->router->createUrl(array("settings/index")));
|
47 |
+
}
|
48 |
+
}
|
49 |
+
|
50 |
+
public function actionAviary() {
|
51 |
+
if ($this->canDo('nextend_config')) {
|
52 |
+
N2Loader::import('libraries.image.aviary');
|
53 |
+
$aviary = N2Request::getVar('aviary', false);
|
54 |
+
if ($aviary) {
|
55 |
+
if ($this->validateToken()) {
|
56 |
+
N2ImageAviary::storeSettings($aviary);
|
57 |
+
N2Message::success(n2_('Saved.'));
|
58 |
+
N2Request::redirect($this->appType->router->createUrl(array(
|
59 |
+
"settings/aviary",
|
60 |
+
array(
|
61 |
+
'layout' => N2Request::getCmd('layout', '')
|
62 |
+
)
|
63 |
+
)));
|
64 |
+
} else {
|
65 |
+
$this->refresh();
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
$this->addView("../../inline/sidebar/settings", array(
|
70 |
+
"appObj" => $this
|
71 |
+
), "sidebar");
|
72 |
+
|
73 |
+
$this->addView("aviary");
|
74 |
+
$this->render();
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
public function actionFonts() {
|
79 |
+
if ($this->canDo('nextend_config')) {
|
80 |
+
$fonts = N2Request::getVar('fonts', false);
|
81 |
+
if ($fonts) {
|
82 |
+
if ($this->validateToken()) {
|
83 |
+
N2Fonts::storeSettings($fonts);
|
84 |
+
N2Message::success(n2_('Saved.'));
|
85 |
+
N2Request::redirect($this->appType->router->createUrl(array("settings/fonts")));
|
86 |
+
} else {
|
87 |
+
$this->refresh();
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
$this->addView("../../inline/sidebar/settings", array(
|
92 |
+
"appObj" => $this
|
93 |
+
), "sidebar");
|
94 |
+
|
95 |
+
$this->addView("fonts");
|
96 |
+
$this->render();
|
97 |
+
}
|
98 |
+
}
|
99 |
+
|
100 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/Style.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendStyleController extends N2SystemBackendVisualManagerController
|
4 |
+
{
|
5 |
+
|
6 |
+
protected $type = 'style';
|
7 |
+
|
8 |
+
public function __construct($appType, $defaultParams) {
|
9 |
+
$this->logoText = n2_('Style manager');
|
10 |
+
|
11 |
+
N2Localization::addJS(array(
|
12 |
+
'style',
|
13 |
+
'styles',
|
14 |
+
));
|
15 |
+
|
16 |
+
parent::__construct($appType, $defaultParams);
|
17 |
+
}
|
18 |
+
|
19 |
+
public function getModel() {
|
20 |
+
return new N2SystemStyleModel();
|
21 |
+
}
|
22 |
+
|
23 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Animation.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendAnimationControllerAjax extends N2SystemBackendVisualManagerControllerAjax
|
4 |
+
{
|
5 |
+
protected $type = 'animation';
|
6 |
+
|
7 |
+
public function getModel() {
|
8 |
+
return new N2SystemAnimationModel();
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Aviary.php
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendAviaryControllerAjax extends N2BackendControllerAjax
|
4 |
+
{
|
5 |
+
|
6 |
+
public function actionGetHighResolutionAuth() {
|
7 |
+
N2Loader::import('libraries.image.aviary');
|
8 |
+
|
9 |
+
$this->response->respond(array(
|
10 |
+
'highResolutionAuth' => N2ImageAviary::getHighResolutionAuth()
|
11 |
+
));
|
12 |
+
}
|
13 |
+
|
14 |
+
public function actionSaveImage() {
|
15 |
+
$this->validateToken();
|
16 |
+
N2Loader::import('libraries.image.aviary');
|
17 |
+
|
18 |
+
$image = N2Request::getVar('aviaryUrl');
|
19 |
+
$this->validateVariable(!empty($image), 'image');
|
20 |
+
|
21 |
+
require_once dirname(__FILE__) . '/Browse.php';
|
22 |
+
|
23 |
+
|
24 |
+
$root = N2Filesystem::getImagesFolder();
|
25 |
+
$folder = 'aviary';
|
26 |
+
$path = N2Filesystem::realpath($root . '/' . $folder);
|
27 |
+
|
28 |
+
if ($path === false || $path == '') {
|
29 |
+
N2Filesystem::createFolder($root . '/' . $folder);
|
30 |
+
$path = N2Filesystem::realpath($root . '/' . $folder);
|
31 |
+
}
|
32 |
+
|
33 |
+
$tmp = tempnam(sys_get_temp_dir(), 'image-');
|
34 |
+
file_put_contents($tmp, file_get_contents($image));
|
35 |
+
|
36 |
+
$src = null;
|
37 |
+
|
38 |
+
// Set variables for storage
|
39 |
+
// fix file filename for query strings
|
40 |
+
preg_match('/([^\?]+)\.(jpe?g|gif|png)\b/i', $image, $matches);
|
41 |
+
$file_array['name'] = basename($matches[1]);
|
42 |
+
$file_array['tmp_name'] = $tmp;
|
43 |
+
$file_array['size'] = filesize($tmp);
|
44 |
+
$file_array['error'] = 0;
|
45 |
+
|
46 |
+
try {
|
47 |
+
$fileName = preg_replace('/[^a-zA-Z0-9_-]/', '', $file_array['name']);
|
48 |
+
|
49 |
+
$upload = new N2BulletProof();
|
50 |
+
$file = $upload->uploadDir($path)
|
51 |
+
->upload($file_array, $fileName);
|
52 |
+
$src = N2ImageHelper::dynamic(N2Filesystem::pathToAbsoluteURL($file));
|
53 |
+
|
54 |
+
} catch (Exception $e) {
|
55 |
+
N2Message::error($e->getMessage());
|
56 |
+
$this->response->error();
|
57 |
+
}
|
58 |
+
|
59 |
+
|
60 |
+
if ($src) {
|
61 |
+
$this->response->respond(array(
|
62 |
+
'image' => $src
|
63 |
+
));
|
64 |
+
} else {
|
65 |
+
N2Message::error(sprintf(n2_('Unexpected error: %s'), $image));
|
66 |
+
$this->response->error();
|
67 |
+
}
|
68 |
+
}
|
69 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Browse.php
ADDED
@@ -0,0 +1,441 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendBrowseControllerAjax extends N2BackendControllerAjax
|
4 |
+
{
|
5 |
+
|
6 |
+
public function actionIndex() {
|
7 |
+
$this->validateToken();
|
8 |
+
$root = N2Filesystem::fixPathSeparator(N2Filesystem::getImagesFolder());
|
9 |
+
$path = N2Filesystem::realpath($root . '/' . ltrim(rtrim(N2Request::getVar('path', ''), '/'), '/'));
|
10 |
+
if (strpos($path, $root) !== 0) {
|
11 |
+
$path = $root;
|
12 |
+
}
|
13 |
+
$_directories = glob($path . NDS . '*', GLOB_ONLYDIR);
|
14 |
+
(object)$directories = array();
|
15 |
+
for ($i = 0; $i < count($_directories); $i++) {
|
16 |
+
$directories[basename($_directories[$i])] = $this->relative($_directories[$i], $root);
|
17 |
+
}
|
18 |
+
|
19 |
+
$_files = glob($path . NDS . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
|
20 |
+
$files = array();
|
21 |
+
for ($i = 0; $i < count($_files); $i++) {
|
22 |
+
if (self::check_utf8($_files[$i])) {
|
23 |
+
$files[basename($_files[$i])] = N2ImageHelper::dynamic(N2Filesystem::pathToAbsoluteURL($_files[$i]));
|
24 |
+
}
|
25 |
+
}
|
26 |
+
$relativePath = $this->relative($path, $root);
|
27 |
+
if (!$relativePath) {
|
28 |
+
$relativePath = '';
|
29 |
+
}
|
30 |
+
$this->response->respond(array(
|
31 |
+
'path' => $relativePath,
|
32 |
+
'directories' => $directories,
|
33 |
+
'files' => (object)$files
|
34 |
+
));
|
35 |
+
}
|
36 |
+
|
37 |
+
private static function check_utf8($str) {
|
38 |
+
$len = strlen($str);
|
39 |
+
for ($i = 0; $i < $len; $i++) {
|
40 |
+
$c = ord($str[$i]);
|
41 |
+
if ($c > 128) {
|
42 |
+
if (($c > 247)) return false; elseif ($c > 239) $bytes = 4;
|
43 |
+
elseif ($c > 223) $bytes = 3;
|
44 |
+
elseif ($c > 191) $bytes = 2;
|
45 |
+
else return false;
|
46 |
+
if (($i + $bytes) > $len) return false;
|
47 |
+
while ($bytes > 1) {
|
48 |
+
$i++;
|
49 |
+
$b = ord($str[$i]);
|
50 |
+
if ($b < 128 || $b > 191) return false;
|
51 |
+
$bytes--;
|
52 |
+
}
|
53 |
+
}
|
54 |
+
}
|
55 |
+
return true;
|
56 |
+
}
|
57 |
+
|
58 |
+
public function actionUpload() {
|
59 |
+
if (defined('N2_IMAGE_UPLOAD_DISABLE')) {
|
60 |
+
N2Message::error(n2_('You are not allowed to upload!'));
|
61 |
+
$this->response->error();
|
62 |
+
}
|
63 |
+
|
64 |
+
$this->validateToken();
|
65 |
+
|
66 |
+
$root = N2Filesystem::getImagesFolder();
|
67 |
+
$folder = ltrim(rtrim(N2Request::getVar('path', ''), '/'), '/');
|
68 |
+
$path = N2Filesystem::realpath($root . '/' . $folder);
|
69 |
+
|
70 |
+
if ($path === false || $path == '') {
|
71 |
+
$folder = preg_replace("/[^A-Za-z0-9]/", '', $folder);
|
72 |
+
if (empty($folder)) {
|
73 |
+
N2Message::error(n2_('Folder is missing!'));
|
74 |
+
$this->response->error();
|
75 |
+
} else {
|
76 |
+
N2Filesystem::createFolder($root . '/' . $folder);
|
77 |
+
$path = N2Filesystem::realpath($root . '/' . $folder);
|
78 |
+
}
|
79 |
+
}
|
80 |
+
|
81 |
+
$relativePath = $this->relative($path, $root);
|
82 |
+
if (!$relativePath) {
|
83 |
+
$relativePath = '';
|
84 |
+
}
|
85 |
+
$response = array(
|
86 |
+
'path' => $relativePath
|
87 |
+
);
|
88 |
+
try {
|
89 |
+
if (isset($_FILES) && isset($_FILES['image']) && isset($_FILES['image']['name'])) {
|
90 |
+
$info = pathinfo($_FILES['image']['name']);
|
91 |
+
$fileName = preg_replace('/[^a-zA-Z0-9_-]/', '', $info['filename']);
|
92 |
+
if (strlen($fileName) == 0) {
|
93 |
+
$fileName = '';
|
94 |
+
}
|
95 |
+
$upload = new N2BulletProof();
|
96 |
+
$file = $upload->uploadDir($path)
|
97 |
+
->upload($_FILES['image'], $fileName);
|
98 |
+
$response['name'] = basename($file);
|
99 |
+
$response['url'] = N2ImageHelper::dynamic(N2Filesystem::pathToAbsoluteURL($file));
|
100 |
+
}
|
101 |
+
} catch (Exception $e) {
|
102 |
+
N2Message::error($e->getMessage());
|
103 |
+
$this->response->error();
|
104 |
+
}
|
105 |
+
|
106 |
+
|
107 |
+
$this->response->respond($response);
|
108 |
+
}
|
109 |
+
|
110 |
+
private function relative($path, $root) {
|
111 |
+
return substr(N2Filesystem::fixPathSeparator($path), strlen($root));
|
112 |
+
}
|
113 |
+
}
|
114 |
+
|
115 |
+
/**
|
116 |
+
* BULLETPROOF,
|
117 |
+
*
|
118 |
+
* This is a one-file solution for a quick and safe way of
|
119 |
+
* uploading, watermarking, cropping and resizing images
|
120 |
+
* during and after uploads with PHP with best security.
|
121 |
+
*
|
122 |
+
* This class is heavily commented, to be as much friendly as possible.
|
123 |
+
* Please help out by posting out some bugs/flaws if you encounter any. Thanks!
|
124 |
+
*
|
125 |
+
* @category Image uploader
|
126 |
+
* @package BulletProof
|
127 |
+
* @version 1.4.0
|
128 |
+
* @author samayo
|
129 |
+
* @link https://github.com/samayo/BulletProof
|
130 |
+
* @license Luke 3:11 ( Free )
|
131 |
+
*/
|
132 |
+
class N2ImageUploaderException extends Exception
|
133 |
+
{
|
134 |
+
|
135 |
+
}
|
136 |
+
|
137 |
+
class N2BulletProof
|
138 |
+
{
|
139 |
+
|
140 |
+
/*
|
141 |
+
|--------------------------------------------------------------------------
|
142 |
+
| Image Upload Properties
|
143 |
+
\--------------------------------------------------------------------------*/
|
144 |
+
|
145 |
+
/**
|
146 |
+
* Set a group of default image types to upload.
|
147 |
+
*
|
148 |
+
* @var array
|
149 |
+
*/
|
150 |
+
protected $imageType = array(
|
151 |
+
"jpg",
|
152 |
+
"jpeg",
|
153 |
+
"png",
|
154 |
+
"gif"
|
155 |
+
);
|
156 |
+
|
157 |
+
/**
|
158 |
+
* Set a default file size to upload. Values are in bytes. Remember: 1kb ~ 1000 bytes.
|
159 |
+
*
|
160 |
+
* @var array
|
161 |
+
*/
|
162 |
+
protected $imageSize = array(
|
163 |
+
"min" => 1,
|
164 |
+
"max" => 20000000
|
165 |
+
);
|
166 |
+
|
167 |
+
/**
|
168 |
+
* Set a default min & maximum height & width for image to upload.
|
169 |
+
*
|
170 |
+
* @var array
|
171 |
+
*/
|
172 |
+
protected $imageDimension = array(
|
173 |
+
"height" => 10000,
|
174 |
+
"width" => 10000
|
175 |
+
);
|
176 |
+
|
177 |
+
/**
|
178 |
+
* Set a default folder to upload images, if it does not exist, it will be created.
|
179 |
+
*
|
180 |
+
* @var string
|
181 |
+
*/
|
182 |
+
protected $uploadDir = "uploads";
|
183 |
+
|
184 |
+
/**
|
185 |
+
* To get the real image/mime type. i.e gif, jpeg, png, ....
|
186 |
+
*
|
187 |
+
* @var string
|
188 |
+
*/
|
189 |
+
protected $getMimeType;
|
190 |
+
|
191 |
+
/*
|
192 |
+
|--------------------------------------------------------------------------
|
193 |
+
| Image Upload Methods
|
194 |
+
\--------------------------------------------------------------------------*/
|
195 |
+
|
196 |
+
/**
|
197 |
+
* Stores image types to upload
|
198 |
+
*
|
199 |
+
* @param array $fileTypes - ex: ['jpg', 'doc', 'txt'].
|
200 |
+
*
|
201 |
+
* @return $this
|
202 |
+
*/
|
203 |
+
public function fileTypes(array $fileTypes) {
|
204 |
+
$this->imageType = $fileTypes;
|
205 |
+
return $this;
|
206 |
+
}
|
207 |
+
|
208 |
+
/**
|
209 |
+
* Minimum and Maximum allowed image size for upload (in bytes),
|
210 |
+
*
|
211 |
+
* @param array $fileSize - ex: ['min'=>500, 'max'=>1000]
|
212 |
+
*
|
213 |
+
* @return $this
|
214 |
+
*/
|
215 |
+
public function limitSize(array $fileSize) {
|
216 |
+
$this->imageSize = $fileSize;
|
217 |
+
return $this;
|
218 |
+
}
|
219 |
+
|
220 |
+
/**
|
221 |
+
* Default & maximum allowed height and width image to download.
|
222 |
+
*
|
223 |
+
* @param array $dimensions
|
224 |
+
*
|
225 |
+
* @return $this
|
226 |
+
*/
|
227 |
+
public function limitDimension(array $dimensions) {
|
228 |
+
$this->imageDimension = $dimensions;
|
229 |
+
return $this;
|
230 |
+
}
|
231 |
+
|
232 |
+
/**
|
233 |
+
* Get the real image's Extension/mime type
|
234 |
+
*
|
235 |
+
* @param $imageName
|
236 |
+
*
|
237 |
+
* @return mixed
|
238 |
+
* @throws N2ImageUploaderException
|
239 |
+
*/
|
240 |
+
protected function getMimeType($imageName) {
|
241 |
+
if (!file_exists($imageName)) {
|
242 |
+
throw new N2ImageUploaderException("Image " . $imageName . " does not exist");
|
243 |
+
}
|
244 |
+
|
245 |
+
$listOfMimeTypes = array(
|
246 |
+
1 => "gif",
|
247 |
+
"jpeg",
|
248 |
+
"png",
|
249 |
+
"swf",
|
250 |
+
"psd",
|
251 |
+
"bmp",
|
252 |
+
"tiff",
|
253 |
+
"tiff",
|
254 |
+
"jpc",
|
255 |
+
"jp2",
|
256 |
+
"jpx",
|
257 |
+
"jb2",
|
258 |
+
"swc",
|
259 |
+
"iff",
|
260 |
+
"wbmp",
|
261 |
+
"xmb",
|
262 |
+
"ico"
|
263 |
+
);
|
264 |
+
|
265 |
+
if (isset($listOfMimeTypes[exif_imagetype($imageName)])) {
|
266 |
+
return $listOfMimeTypes[exif_imagetype($imageName)];
|
267 |
+
}
|
268 |
+
}
|
269 |
+
|
270 |
+
/**
|
271 |
+
* Handy method for getting image dimensions (W & H) in pixels.
|
272 |
+
*
|
273 |
+
* @param $getImage - The image name
|
274 |
+
*
|
275 |
+
* @return array
|
276 |
+
*/
|
277 |
+
protected function getPixels($getImage) {
|
278 |
+
list($width, $height) = getImageSize($getImage);
|
279 |
+
return array(
|
280 |
+
"width" => $width,
|
281 |
+
"height" => $height
|
282 |
+
);
|
283 |
+
}
|
284 |
+
|
285 |
+
/**
|
286 |
+
* Rename file either from method or by generating a random one.
|
287 |
+
*
|
288 |
+
* @param $isNameProvided - A new name for the file.
|
289 |
+
*
|
290 |
+
* @return string
|
291 |
+
*/
|
292 |
+
protected function imageRename($isNameProvided) {
|
293 |
+
if ($isNameProvided) {
|
294 |
+
return $isNameProvided . "." . $this->getMimeType;
|
295 |
+
}
|
296 |
+
return uniqid(true) . "_" . str_shuffle(implode(range("E", "Q"))) . "." . $this->getMimeType;
|
297 |
+
}
|
298 |
+
|
299 |
+
/**
|
300 |
+
* Get the specified upload dir, if it does not exist, create a new one.
|
301 |
+
*
|
302 |
+
* @param $directoryName - directory name where you want your files to be uploaded
|
303 |
+
* @param $filePermissions - octal representation of file permissions in linux environment
|
304 |
+
*
|
305 |
+
* @return $this
|
306 |
+
* @throws N2ImageUploaderException
|
307 |
+
*/
|
308 |
+
public function uploadDir($directoryName, $filePermissions = 0666) {
|
309 |
+
if (!file_exists($directoryName) && !is_dir($directoryName)) {
|
310 |
+
$createFolder = mkdir("" . $directoryName, $filePermissions, true);
|
311 |
+
if (!$createFolder) {
|
312 |
+
throw new N2ImageUploaderException("Folder " . $directoryName . " could not be created");
|
313 |
+
}
|
314 |
+
}
|
315 |
+
$this->uploadDir = $directoryName;
|
316 |
+
return $this;
|
317 |
+
}
|
318 |
+
|
319 |
+
/**
|
320 |
+
* For getting common error messages from FILES[] array during upload.
|
321 |
+
*
|
322 |
+
* @return array
|
323 |
+
*/
|
324 |
+
protected function commonUploadErrors($key) {
|
325 |
+
$uploadErrors = array(
|
326 |
+
UPLOAD_ERR_OK => "...",
|
327 |
+
UPLOAD_ERR_INI_SIZE => "File is larger than the specified amount set by the server",
|
328 |
+
UPLOAD_ERR_FORM_SIZE => "File is larger than the specified amount specified by browser",
|
329 |
+
UPLOAD_ERR_PARTIAL => "File could not be fully uploaded. Please try again later",
|
330 |
+
UPLOAD_ERR_NO_FILE => "File is not found",
|
331 |
+
UPLOAD_ERR_NO_TMP_DIR => "Can't write to disk, due to server configuration ( No tmp dir found )",
|
332 |
+
UPLOAD_ERR_CANT_WRITE => "Failed to write file to disk. Please check you file permissions",
|
333 |
+
UPLOAD_ERR_EXTENSION => "A PHP extension has halted this file upload process"
|
334 |
+
);
|
335 |
+
|
336 |
+
return $uploadErrors[$key];
|
337 |
+
}
|
338 |
+
|
339 |
+
/**
|
340 |
+
* Simple file check and delete wrapper.
|
341 |
+
*
|
342 |
+
* @param $fileToDelete
|
343 |
+
*
|
344 |
+
* @return bool
|
345 |
+
* @throws N2ImageUploaderException
|
346 |
+
*/
|
347 |
+
public function deleteFile($fileToDelete) {
|
348 |
+
if (file_exists($fileToDelete) && !unlink($fileToDelete)) {
|
349 |
+
throw new N2ImageUploaderException("File may have been deleted or does not exist");
|
350 |
+
}
|
351 |
+
return true;
|
352 |
+
}
|
353 |
+
|
354 |
+
/**
|
355 |
+
* Final image uploader method, to check for errors and upload
|
356 |
+
*
|
357 |
+
* @param $fileToUpload
|
358 |
+
* @param null $isNameProvided
|
359 |
+
*
|
360 |
+
* @return string
|
361 |
+
* @throws N2ImageUploaderException
|
362 |
+
*/
|
363 |
+
public function upload($fileToUpload, $isNameProvided = null) {
|
364 |
+
|
365 |
+
if (!function_exists('exif_imagetype')) {
|
366 |
+
throw new N2ImageUploaderException("Function 'exif_imagetype' Not found.");
|
367 |
+
}
|
368 |
+
|
369 |
+
// Check if any errors are thrown by the FILES[] array
|
370 |
+
if ($fileToUpload["error"]) {
|
371 |
+
throw new N2ImageUploaderException($this->commonUploadErrors($fileToUpload["error"]));
|
372 |
+
}
|
373 |
+
|
374 |
+
// First get the real file extension
|
375 |
+
$this->getMimeType = $this->getMimeType($fileToUpload["tmp_name"]);
|
376 |
+
|
377 |
+
// Check if this file type is allowed for upload
|
378 |
+
if (!in_array($this->getMimeType, $this->imageType)) {
|
379 |
+
throw new N2ImageUploaderException(" This is not allowed file type!
|
380 |
+
Please only upload ( " . implode(", ", $this->imageType) . " ) file types");
|
381 |
+
}
|
382 |
+
|
383 |
+
//Check if size (in bytes) of the image are above or below of defined in 'limitSize()'
|
384 |
+
if ($fileToUpload["size"] < $this->imageSize["min"] || $fileToUpload["size"] > $this->imageSize["max"]
|
385 |
+
) {
|
386 |
+
throw new N2ImageUploaderException("File sizes must be between " . implode(" to ", $this->imageSize) . " bytes");
|
387 |
+
}
|
388 |
+
|
389 |
+
// check if image is valid pixel-wise.
|
390 |
+
$pixel = $this->getPixels($fileToUpload["tmp_name"]);
|
391 |
+
|
392 |
+
if ($pixel["width"] < 4 || $pixel["height"] < 4) {
|
393 |
+
throw new N2ImageUploaderException("This file is either too small or corrupted to be an image");
|
394 |
+
}
|
395 |
+
|
396 |
+
if ($pixel["height"] > $this->imageDimension["height"] || $pixel["width"] > $this->imageDimension["width"]) {
|
397 |
+
throw new N2ImageUploaderException("Image pixels/size must be below " . implode(", ", $this->imageDimension) . " pixels");
|
398 |
+
}
|
399 |
+
|
400 |
+
// create upload directory if it does not exist
|
401 |
+
$this->uploadDir($this->uploadDir);
|
402 |
+
|
403 |
+
$i = '';
|
404 |
+
$newFileName = $this->imageRename($isNameProvided);
|
405 |
+
|
406 |
+
while (file_exists($this->uploadDir . "/" . $newFileName)) {
|
407 |
+
// The file already uploaded, nothing to do here
|
408 |
+
if (self::isFilesIdentical($this->uploadDir . "/" . $newFileName, $fileToUpload["tmp_name"])) {
|
409 |
+
return $this->uploadDir . "/" . $newFileName;
|
410 |
+
}
|
411 |
+
$i++;
|
412 |
+
$newFileName = $this->imageRename($isNameProvided . $i);
|
413 |
+
}
|
414 |
+
|
415 |
+
// Upload the file
|
416 |
+
$moveUploadedFile = $this->moveUploadedFile($fileToUpload["tmp_name"], $this->uploadDir . "/" . $newFileName);
|
417 |
+
|
418 |
+
if ($moveUploadedFile) {
|
419 |
+
return $this->uploadDir . "/" . $newFileName;
|
420 |
+
} else {
|
421 |
+
throw new N2ImageUploaderException(" File could not be uploaded. Unknown error occurred. ");
|
422 |
+
}
|
423 |
+
}
|
424 |
+
|
425 |
+
public function moveUploadedFile($uploaded_file, $new_file) {
|
426 |
+
if (!is_uploaded_file($uploaded_file)) {
|
427 |
+
return copy($uploaded_file, $new_file);
|
428 |
+
}
|
429 |
+
return move_uploaded_file($uploaded_file, $new_file);
|
430 |
+
}
|
431 |
+
|
432 |
+
private static function isFilesIdentical($fn1, $fn2) {
|
433 |
+
if (filetype($fn1) !== filetype($fn2)) return FALSE;
|
434 |
+
|
435 |
+
if (filesize($fn1) !== filesize($fn2)) return FALSE;
|
436 |
+
|
437 |
+
if (sha1_file($fn1) != sha1_file($fn2)) return false;
|
438 |
+
|
439 |
+
return true;
|
440 |
+
}
|
441 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Content.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendContentControllerAjax extends N2BackendControllerAjax
|
4 |
+
{
|
5 |
+
|
6 |
+
public function actionSearch() {
|
7 |
+
$this->validateToken();
|
8 |
+
N2Loader::import('libraries.models.content', 'platform');
|
9 |
+
|
10 |
+
$keyword = N2Request::getVar('keyword', '');
|
11 |
+
$this->response->respond(N2ModelsContent::search($keyword));
|
12 |
+
}
|
13 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Font.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendFontControllerAjax extends N2SystemBackendVisualManagerControllerAjax
|
4 |
+
{
|
5 |
+
protected $type = 'font';
|
6 |
+
|
7 |
+
public function getModel() {
|
8 |
+
return new N2SystemFontModel();
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Image.php
ADDED
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendImageControllerAjax extends N2SystemBackendVisualManagerControllerAjax
|
4 |
+
{
|
5 |
+
|
6 |
+
protected $type = 'image';
|
7 |
+
|
8 |
+
public function actionLoadVisualForImage() {
|
9 |
+
$this->validateToken();
|
10 |
+
$model = $this->getModel();
|
11 |
+
$image = N2Request::getVar('image');
|
12 |
+
$visual = $model->getVisual($image);
|
13 |
+
if (!empty($visual)) {
|
14 |
+
$this->response->respond(array(
|
15 |
+
'visual' => $visual
|
16 |
+
));
|
17 |
+
} else {
|
18 |
+
|
19 |
+
if (($visual = $model->addVisual($image, N2StorageImage::$emptyImage))) {
|
20 |
+
$this->response->respond(array(
|
21 |
+
'visual' => $visual
|
22 |
+
));
|
23 |
+
}
|
24 |
+
}
|
25 |
+
|
26 |
+
N2Message::error(n2_('Unexpected error'));
|
27 |
+
$this->response->error();
|
28 |
+
}
|
29 |
+
|
30 |
+
public function actionGenerateImage() {
|
31 |
+
$this->validateToken();
|
32 |
+
|
33 |
+
$device = N2Request::getVar('device');
|
34 |
+
$this->validateVariable($device == 'tablet' || $device == 'mobile', 'device');
|
35 |
+
|
36 |
+
$image = N2Request::getVar('image');
|
37 |
+
$this->validateVariable(!empty($image), 'image');
|
38 |
+
|
39 |
+
N2Loader::import('libraries.image.image');
|
40 |
+
$scale = array(
|
41 |
+
'tablet' => 0.5,
|
42 |
+
'mobile' => 0.3
|
43 |
+
);
|
44 |
+
|
45 |
+
$newImage = N2Image::scaleImage('image', $image, $scale[$device], true);
|
46 |
+
|
47 |
+
$this->response->respond(array(
|
48 |
+
'image' => N2ImageHelper::fixed($newImage)
|
49 |
+
));
|
50 |
+
}
|
51 |
+
|
52 |
+
public function actionAddVisual() {
|
53 |
+
$this->validateToken();
|
54 |
+
|
55 |
+
$image = N2Request::getVar('image');
|
56 |
+
$this->validateVariable(!empty($image), 'image');
|
57 |
+
|
58 |
+
$model = $this->getModel();
|
59 |
+
|
60 |
+
if (($visual = $model->addVisual($image, N2Request::getVar('value')))) {
|
61 |
+
$this->response->respond(array(
|
62 |
+
'visual' => $visual
|
63 |
+
));
|
64 |
+
}
|
65 |
+
|
66 |
+
N2Message::error(n2_('Unexpected error'));
|
67 |
+
$this->response->error();
|
68 |
+
}
|
69 |
+
|
70 |
+
public function actionDeleteVisual() {
|
71 |
+
$this->validateToken();
|
72 |
+
|
73 |
+
$visualId = N2Request::getInt('visualId');
|
74 |
+
$this->validateVariable($visualId > 0, 'image');
|
75 |
+
|
76 |
+
$model = $this->getModel();
|
77 |
+
|
78 |
+
if (($visual = $model->deleteVisual($visualId))) {
|
79 |
+
$this->response->respond(array(
|
80 |
+
'visual' => $visual
|
81 |
+
));
|
82 |
+
}
|
83 |
+
|
84 |
+
N2Message::error(n2_('Not editable'));
|
85 |
+
$this->response->error();
|
86 |
+
}
|
87 |
+
|
88 |
+
public function actionChangeVisual() {
|
89 |
+
$this->validateToken();
|
90 |
+
|
91 |
+
$visualId = N2Request::getInt('visualId');
|
92 |
+
$this->validateVariable($visualId > 0, 'image');
|
93 |
+
|
94 |
+
$model = $this->getModel();
|
95 |
+
|
96 |
+
if (($visual = $model->changeVisual($visualId, N2Request::getVar('value')))) {
|
97 |
+
$this->response->respond(array(
|
98 |
+
'visual' => $visual
|
99 |
+
));
|
100 |
+
}
|
101 |
+
|
102 |
+
N2Message::error(n2_('Unexpected error'));
|
103 |
+
$this->response->error();
|
104 |
+
}
|
105 |
+
|
106 |
+
public function getModel() {
|
107 |
+
return new N2SystemImageModel();
|
108 |
+
}
|
109 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Link.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendLinkControllerAjax extends N2BackendControllerAjax
|
4 |
+
{
|
5 |
+
|
6 |
+
public function actionSearch() {
|
7 |
+
$this->validateToken();
|
8 |
+
N2Loader::import('libraries.models.link', 'platform');
|
9 |
+
|
10 |
+
$keyword = N2Request::getVar('keyword', '');
|
11 |
+
$this->response->respond(N2ModelsLink::search($keyword));
|
12 |
+
}
|
13 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/controllers/ajax/Style.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendStyleControllerAjax extends N2SystemBackendVisualManagerControllerAjax
|
4 |
+
{
|
5 |
+
|
6 |
+
protected $type = 'style';
|
7 |
+
|
8 |
+
public function getModel() {
|
9 |
+
return new N2SystemStyleModel();
|
10 |
+
}
|
11 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/helpers/controllers/VisualManager.php
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendVisualManagerController extends N2BackendController
|
4 |
+
{
|
5 |
+
|
6 |
+
public $layoutName = "lightbox";
|
7 |
+
|
8 |
+
protected $type = '';
|
9 |
+
|
10 |
+
protected $inlinePath = '../..';
|
11 |
+
|
12 |
+
protected $app = null;
|
13 |
+
|
14 |
+
protected $logoText = '';
|
15 |
+
|
16 |
+
public function getModel() {
|
17 |
+
}
|
18 |
+
|
19 |
+
public function initialize() {
|
20 |
+
$this->app = N2Base::getApplication('system');
|
21 |
+
parent::initialize();
|
22 |
+
|
23 |
+
N2Loader::import(array(
|
24 |
+
'models.visual'
|
25 |
+
), 'system');
|
26 |
+
$this->loadModel();
|
27 |
+
|
28 |
+
N2Localization::addJS(array(
|
29 |
+
'visual',
|
30 |
+
'visuals',
|
31 |
+
'Static',
|
32 |
+
'Empty',
|
33 |
+
|
34 |
+
'Save as new',
|
35 |
+
'Overwrite current',
|
36 |
+
'%s changed - %s',
|
37 |
+
'Save as',
|
38 |
+
|
39 |
+
'Sets',
|
40 |
+
'Add new',
|
41 |
+
'%s sets',
|
42 |
+
'Create set',
|
43 |
+
'Add',
|
44 |
+
'Name',
|
45 |
+
'Please fill the name field!',
|
46 |
+
'Set added',
|
47 |
+
'Rename set',
|
48 |
+
'Rename',
|
49 |
+
'Delete',
|
50 |
+
'Set renamed',
|
51 |
+
'Delete set',
|
52 |
+
'Cancel',
|
53 |
+
'Yes',
|
54 |
+
'Do you really want to delete the set and all associated %s?',
|
55 |
+
'Unable to delete the set'
|
56 |
+
));
|
57 |
+
}
|
58 |
+
|
59 |
+
protected function loadModel() {
|
60 |
+
N2Loader::import(array(
|
61 |
+
'models.' . $this->type
|
62 |
+
), 'system');
|
63 |
+
}
|
64 |
+
|
65 |
+
public function actionIndex() {
|
66 |
+
|
67 |
+
$model = $this->getModel();
|
68 |
+
$this->app->set($this->type . 'setModel', $model);
|
69 |
+
|
70 |
+
$this->addView($this->inlinePath . "/inline/sidebar/" . $this->type, array(
|
71 |
+
"model" => $model
|
72 |
+
), "sidebar");
|
73 |
+
|
74 |
+
$this->addView("topbar", array(), 'content_top_bar');
|
75 |
+
|
76 |
+
$this->addView("index", array(
|
77 |
+
"model" => $model
|
78 |
+
));
|
79 |
+
|
80 |
+
$this->render(array(
|
81 |
+
'lightboxId' => 'n2-lightbox-' . $this->type,
|
82 |
+
'logo' => $this->logoText
|
83 |
+
));
|
84 |
+
}
|
85 |
+
|
86 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/helpers/controllers/VisualManagerAjax.php
ADDED
@@ -0,0 +1,185 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
abstract class N2SystemBackendVisualManagerControllerAjax extends N2BackendControllerAjax
|
4 |
+
{
|
5 |
+
|
6 |
+
protected $type = '';
|
7 |
+
|
8 |
+
protected $permission = 'nextend_visual_';
|
9 |
+
|
10 |
+
public function initialize() {
|
11 |
+
parent::initialize();
|
12 |
+
|
13 |
+
N2Loader::import(array(
|
14 |
+
'models.visual',
|
15 |
+
'models.' . $this->type
|
16 |
+
), 'system');
|
17 |
+
}
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @return N2SystemVisualModel
|
21 |
+
*/
|
22 |
+
public abstract function getModel();
|
23 |
+
|
24 |
+
public function actionCreateSet() {
|
25 |
+
$this->validateToken();
|
26 |
+
|
27 |
+
$this->validatePermission($this->permission . 'edit');
|
28 |
+
|
29 |
+
$name = N2Request::getVar('name');
|
30 |
+
$this->validateVariable(!empty($name), 'set name');
|
31 |
+
|
32 |
+
$model = $this->getModel();
|
33 |
+
if (($set = $model->createSet($name))) {
|
34 |
+
$this->response->respond(array(
|
35 |
+
'set' => $set
|
36 |
+
));
|
37 |
+
}
|
38 |
+
|
39 |
+
N2Message::error(n2_('Unexpected error'));
|
40 |
+
$this->response->error();
|
41 |
+
}
|
42 |
+
|
43 |
+
public function actionRenameSet() {
|
44 |
+
$this->validateToken();
|
45 |
+
|
46 |
+
$this->validatePermission($this->permission . 'edit');
|
47 |
+
|
48 |
+
$setId = N2Request::getInt('setId');
|
49 |
+
$this->validateVariable($setId > 0, 'set');
|
50 |
+
|
51 |
+
$name = N2Request::getVar('name');
|
52 |
+
$this->validateVariable(!empty($name), 'set name');
|
53 |
+
|
54 |
+
$model = $this->getModel();
|
55 |
+
|
56 |
+
if (($set = $model->renameSet($setId, $name))) {
|
57 |
+
$this->response->respond(array(
|
58 |
+
'set' => $set
|
59 |
+
));
|
60 |
+
}
|
61 |
+
|
62 |
+
N2Message::error(n2_('Set is not editable'));
|
63 |
+
$this->response->error();
|
64 |
+
}
|
65 |
+
|
66 |
+
public function actionDeleteSet() {
|
67 |
+
$this->validateToken();
|
68 |
+
|
69 |
+
$this->validatePermission($this->permission . 'delete');
|
70 |
+
|
71 |
+
$setId = N2Request::getInt('setId');
|
72 |
+
$this->validateVariable($setId > 0, 'set');
|
73 |
+
|
74 |
+
$model = $this->getModel();
|
75 |
+
|
76 |
+
if (($set = $model->deleteSet($setId))) {
|
77 |
+
$this->response->respond(array(
|
78 |
+
'set' => $set
|
79 |
+
));
|
80 |
+
}
|
81 |
+
|
82 |
+
N2Message::error(n2_('Set is not editable'));
|
83 |
+
$this->response->error();
|
84 |
+
}
|
85 |
+
|
86 |
+
public function actionLoadVisualsForSet() {
|
87 |
+
$this->validateToken();
|
88 |
+
|
89 |
+
|
90 |
+
$setId = N2Request::getInt('setId');
|
91 |
+
$this->validateVariable($setId > 0, 'set');
|
92 |
+
|
93 |
+
$model = $this->getModel();
|
94 |
+
$visuals = $model->getVisuals($setId);
|
95 |
+
if (is_array($visuals)) {
|
96 |
+
$this->response->respond(array(
|
97 |
+
'visuals' => $visuals
|
98 |
+
));
|
99 |
+
}
|
100 |
+
|
101 |
+
N2Message::error(n2_('Unexpected error'));
|
102 |
+
$this->response->error();
|
103 |
+
}
|
104 |
+
|
105 |
+
public function actionLoadSetByVisualId() {
|
106 |
+
$this->validateToken();
|
107 |
+
|
108 |
+
$visualId = N2Request::getInt('visualId');
|
109 |
+
$this->validateVariable($visualId > 0, 'visual');
|
110 |
+
|
111 |
+
$model = $this->getModel();
|
112 |
+
|
113 |
+
$set = $model->getSetByVisualId($visualId);
|
114 |
+
|
115 |
+
if (is_array($set) && is_array($set['visuals'])) {
|
116 |
+
$this->response->respond(array(
|
117 |
+
'set' => $set
|
118 |
+
));
|
119 |
+
}
|
120 |
+
|
121 |
+
N2Message::error(n2_('Visual do not exists'));
|
122 |
+
$this->response->error();
|
123 |
+
}
|
124 |
+
|
125 |
+
public function actionAddVisual() {
|
126 |
+
$this->validateToken();
|
127 |
+
|
128 |
+
$this->validatePermission($this->permission . 'edit');
|
129 |
+
|
130 |
+
$setId = N2Request::getInt('setId');
|
131 |
+
$this->validateVariable($setId > 0, 'set');
|
132 |
+
|
133 |
+
$model = $this->getModel();
|
134 |
+
|
135 |
+
if (($visual = $model->addVisual($setId, N2Request::getVar('value')))) {
|
136 |
+
$this->response->respond(array(
|
137 |
+
'visual' => $visual
|
138 |
+
));
|
139 |
+
}
|
140 |
+
|
141 |
+
N2Message::error(n2_('Not editable'));
|
142 |
+
$this->response->error();
|
143 |
+
}
|
144 |
+
|
145 |
+
public function actionDeleteVisual() {
|
146 |
+
$this->validateToken();
|
147 |
+
|
148 |
+
$this->validatePermission($this->permission . 'delete');
|
149 |
+
|
150 |
+
$visualId = N2Request::getInt('visualId');
|
151 |
+
$this->validateVariable($visualId > 0, 'visual');
|
152 |
+
|
153 |
+
$model = $this->getModel();
|
154 |
+
|
155 |
+
if (($visual = $model->deleteVisual($visualId))) {
|
156 |
+
$this->response->respond(array(
|
157 |
+
'visual' => $visual
|
158 |
+
));
|
159 |
+
}
|
160 |
+
|
161 |
+
N2Message::error(n2_('Not editable'));
|
162 |
+
$this->response->error();
|
163 |
+
}
|
164 |
+
|
165 |
+
public function actionChangeVisual() {
|
166 |
+
$this->validateToken();
|
167 |
+
|
168 |
+
$this->validatePermission($this->permission . 'edit');
|
169 |
+
|
170 |
+
$visualId = N2Request::getInt('visualId');
|
171 |
+
$this->validateVariable($visualId > 0, 'visual');
|
172 |
+
|
173 |
+
$model = $this->getModel();
|
174 |
+
|
175 |
+
if (($visual = $model->changeVisual($visualId, N2Request::getVar('value')))) {
|
176 |
+
$this->response->respond(array(
|
177 |
+
'visual' => $visual
|
178 |
+
));
|
179 |
+
}
|
180 |
+
|
181 |
+
N2Message::error(n2_('Unexpected error'));
|
182 |
+
$this->response->error();
|
183 |
+
}
|
184 |
+
|
185 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/inline/sidebar/animation.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="n2-sidebar-row n2-sidebar-header-bg n2-form-dark n2-sets-header">
|
2 |
+
<div class="n2-table">
|
3 |
+
<div class="n2-tr">
|
4 |
+
<div class="n2-td">
|
5 |
+
<div class="n2-h3 n2-uc"><?php n2_e('Set'); ?></div>
|
6 |
+
</div>
|
7 |
+
<div class="n2-td n2-manage-set">
|
8 |
+
<?php
|
9 |
+
$model->renderSetsForm();
|
10 |
+
?>
|
11 |
+
<div id="animationset-manage"
|
12 |
+
class="n2-button n2-button-medium n2-button-grey n2-h5 n2-uc"><?php n2_e('Manage'); ?></div>
|
13 |
+
</div>
|
14 |
+
</div>
|
15 |
+
</div>
|
16 |
+
</div>
|
17 |
+
<?php
|
18 |
+
$ul = array();
|
19 |
+
|
20 |
+
$ul[] = array(
|
21 |
+
'class' => 'n2-button-container n2-save-as-new-container',
|
22 |
+
'contents' => NHtml::tag('a', array(
|
23 |
+
'class' => 'n2-button n2-button-big n2-button-green n2-uc n2-animation-save-as-new',
|
24 |
+
'href' => '#'
|
25 |
+
), n2_('Save as new animation')),
|
26 |
+
);
|
27 |
+
|
28 |
+
$this->widget->init("listn", array(
|
29 |
+
"ul" => $ul
|
30 |
+
));
|
31 |
+
?>
|
32 |
+
<div class="n2-lightbox-sidebar-list">
|
33 |
+
|
34 |
+
</div>
|
app/code/community/Nextend2/library/applications/system/backend/inline/sidebar/font.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="n2-sidebar-row n2-sidebar-header-bg n2-form-dark n2-sets-header">
|
2 |
+
<div class="n2-table">
|
3 |
+
<div class="n2-tr">
|
4 |
+
<div class="n2-td">
|
5 |
+
<div class="n2-h3 n2-uc"><?php n2_e('Set'); ?></div>
|
6 |
+
</div>
|
7 |
+
<div class="n2-td n2-manage-set">
|
8 |
+
<?php
|
9 |
+
$model->renderSetsForm();
|
10 |
+
?>
|
11 |
+
<div id="fontset-manage"
|
12 |
+
class="n2-button n2-button-medium n2-button-grey n2-h5 n2-uc"><?php n2_e('Manage'); ?></div>
|
13 |
+
</div>
|
14 |
+
</div>
|
15 |
+
</div>
|
16 |
+
</div>
|
17 |
+
<?php
|
18 |
+
$ul = array();
|
19 |
+
|
20 |
+
$ul[] = array(
|
21 |
+
'class' => 'n2-button-container n2-save-as-new-container',
|
22 |
+
'contents' => NHtml::tag('a', array(
|
23 |
+
'class' => 'n2-button n2-button-big n2-button-green n2-uc n2-font-save-as-new',
|
24 |
+
'href' => '#'
|
25 |
+
), n2_('Save as new font')),
|
26 |
+
);
|
27 |
+
|
28 |
+
$this->widget->init("listn", array(
|
29 |
+
"ul" => $ul
|
30 |
+
));
|
31 |
+
?>
|
32 |
+
<div class="n2-lightbox-sidebar-list">
|
33 |
+
|
34 |
+
</div>
|
app/code/community/Nextend2/library/applications/system/backend/inline/sidebar/image.php
ADDED
File without changes
|
app/code/community/Nextend2/library/applications/system/backend/inline/sidebar/settings.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$action = N2Request::getCmd('nextendaction', 'default');
|
3 |
+
|
4 |
+
|
5 |
+
$settings = array(
|
6 |
+
array(
|
7 |
+
'id' => 'index',
|
8 |
+
'title' => n2_('General settings')
|
9 |
+
)
|
10 |
+
);
|
11 |
+
|
12 |
+
$settings[] = array(
|
13 |
+
'id' => 'fonts',
|
14 |
+
'title' => n2_('Fonts')
|
15 |
+
);
|
16 |
+
|
17 |
+
$dl = array();
|
18 |
+
|
19 |
+
foreach ($settings AS $setting) {
|
20 |
+
|
21 |
+
$dl[] = array(
|
22 |
+
'title' => $setting['title'],
|
23 |
+
'link' => $this->appType->router->createUrl("settings/{$setting['id']}"),
|
24 |
+
'class' => ($setting['id'] == $action ? 'active ' : '')
|
25 |
+
);
|
26 |
+
}
|
27 |
+
|
28 |
+
echo $this->widget->init("definitionlist", array(
|
29 |
+
"dl" => $dl
|
30 |
+
));
|
app/code/community/Nextend2/library/applications/system/backend/inline/sidebar/style.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="n2-sidebar-row n2-sidebar-header-bg n2-form-dark n2-sets-header">
|
2 |
+
<div class="n2-table">
|
3 |
+
<div class="n2-tr">
|
4 |
+
<div class="n2-td">
|
5 |
+
<div class="n2-h3 n2-uc"><?php n2_e('Set'); ?></div>
|
6 |
+
</div>
|
7 |
+
<div class="n2-td n2-manage-set">
|
8 |
+
<?php
|
9 |
+
$model->renderSetsForm();
|
10 |
+
?>
|
11 |
+
<div id="styleset-manage"
|
12 |
+
class="n2-button n2-button-medium n2-button-grey n2-h5 n2-uc"><?php n2_e('Manage'); ?></div>
|
13 |
+
</div>
|
14 |
+
</div>
|
15 |
+
</div>
|
16 |
+
</div>
|
17 |
+
<?php
|
18 |
+
$ul = array();
|
19 |
+
|
20 |
+
$ul[] = array(
|
21 |
+
'class' => 'n2-button-container n2-save-as-new-container',
|
22 |
+
'contents' => NHtml::tag('a', array(
|
23 |
+
'class' => 'n2-button n2-button-big n2-button-green n2-uc n2-style-save-as-new',
|
24 |
+
'href' => '#'
|
25 |
+
), n2_('Save as new style')),
|
26 |
+
);
|
27 |
+
|
28 |
+
$this->widget->init("listn", array(
|
29 |
+
"ul" => $ul
|
30 |
+
));
|
31 |
+
?>
|
32 |
+
<div class="n2-lightbox-sidebar-list">
|
33 |
+
|
34 |
+
</div>
|
app/code/community/Nextend2/library/applications/system/backend/layouts/default.php
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* @var $this N2Layout */
|
3 |
+
?>
|
4 |
+
|
5 |
+
<div id="n2-admin" class="n2 n2-border-radius">
|
6 |
+
|
7 |
+
<?php
|
8 |
+
/**
|
9 |
+
* @var $widget Nav
|
10 |
+
*/
|
11 |
+
$logoUrl = N2Base::getApplication('system')->getLogo();
|
12 |
+
$cmd = N2Request::getVar("nextendcontroller", "dashboard");
|
13 |
+
echo $this->widget->init('nav', array(
|
14 |
+
'logoUrl' => $this->appType->router->createUrl("dashboard/index"),
|
15 |
+
'logoImageUrl' => $logoUrl,
|
16 |
+
'views' => array(
|
17 |
+
NHtml::tag('a', array(
|
18 |
+
'href' => $this->appType->router->createUrl("dashboard/index"),
|
19 |
+
'class' => 'n2-h4 n2-uc ' . ($cmd == "dashboard" ? "n2-active" : "")
|
20 |
+
), n2_('Dashboard')),
|
21 |
+
NHtml::tag('a', array(
|
22 |
+
'href' => $this->appType->router->createUrl("settings/index"),
|
23 |
+
'class' => 'n2-h4 n2-uc ' . ($cmd == "settings" ? "n2-active" : "")
|
24 |
+
), n2_('Settings')),
|
25 |
+
NHtml::tag('a', array(
|
26 |
+
'href' => $this->appType->router->createUrl("help/index"),
|
27 |
+
'class' => 'n2-h4 n2-uc ' . ($cmd == "help" ? "n2-active" : "")
|
28 |
+
), n2_('Help'))
|
29 |
+
),
|
30 |
+
'actions' => $this->getFragmentValue('actions')
|
31 |
+
));
|
32 |
+
?>
|
33 |
+
|
34 |
+
<div class="n2-table n2-table-fixed n2-content">
|
35 |
+
<div class="n2-tr">
|
36 |
+
<div class="n2-td n2-sidebar n2-sidebar-base-bg">
|
37 |
+
<?php
|
38 |
+
$this->renderFragmentBlock('nextend_sidebar');
|
39 |
+
?>
|
40 |
+
</div>
|
41 |
+
|
42 |
+
<div class="n2-td n2-content-base-bg">
|
43 |
+
<!-- Begin Content -->
|
44 |
+
<div class="n2-content-area n2-border-radius-br">
|
45 |
+
<?php
|
46 |
+
$this->renderFragmentBlock('nextend_content');
|
47 |
+
?>
|
48 |
+
</div>
|
49 |
+
<!-- End Content -->
|
50 |
+
</div>
|
51 |
+
</div>
|
52 |
+
</div>
|
53 |
+
|
54 |
+
</div>
|
55 |
+
<?php
|
56 |
+
|
57 |
+
N2Message::show();
|
58 |
+
|
59 |
+
N2JS::addInline("new NextendExpertMode('nextend', 1);");
|
app/code/community/Nextend2/library/applications/system/backend/layouts/full.php
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* @var $this N2Layout */
|
3 |
+
?>
|
4 |
+
|
5 |
+
<div id="n2-admin" class="n2 n2-sidebar-hidden n2-border-radius">
|
6 |
+
|
7 |
+
<?php
|
8 |
+
/**
|
9 |
+
* @var $widget Nav
|
10 |
+
*/
|
11 |
+
$logoUrl = N2Base::getApplication('system')->getLogo();
|
12 |
+
$cmd = N2Request::getVar("nextendcontroller", "dashboard");
|
13 |
+
|
14 |
+
$views = array(
|
15 |
+
NHtml::tag('a', array(
|
16 |
+
'href' => $this->appType->router->createUrl("dashboard/index"),
|
17 |
+
'class' => 'n2-h4 n2-uc ' . ($cmd == "dashboard" ? "n2-active" : "")
|
18 |
+
), n2_('Dashboard')),
|
19 |
+
NHtml::tag('a', array(
|
20 |
+
'href' => $this->appType->router->createUrl("settings/index"),
|
21 |
+
'class' => 'n2-h4 n2-uc ' . ($cmd == "settings" ? "n2-active" : "")
|
22 |
+
), n2_('Settings')),
|
23 |
+
NHtml::tag('a', array(
|
24 |
+
'href' => $this->appType->router->createUrl("help/index"),
|
25 |
+
'class' => 'n2-h4 n2-uc ' . ($cmd == "help" ? "n2-active" : "")
|
26 |
+
), n2_('Help'))
|
27 |
+
);
|
28 |
+
|
29 |
+
if (class_exists('N2User')) {
|
30 |
+
if (N2User::isLoggedIn()) {
|
31 |
+
$views[] = NHtml::tag('a', array(
|
32 |
+
'href' => $this->appType->router->createUrl("login/logout"),
|
33 |
+
'class' => 'n2-h4 n2-uc'
|
34 |
+
), n2_('Log out'));
|
35 |
+
}
|
36 |
+
}
|
37 |
+
|
38 |
+
echo $this->widget->init('nav', array(
|
39 |
+
'logoUrl' => $this->appType->router->createUrl("dashboard/index"),
|
40 |
+
'logoImageUrl' => $logoUrl,
|
41 |
+
'views' => $views,
|
42 |
+
'actions' => $this->getFragmentValue('actions')
|
43 |
+
));
|
44 |
+
?>
|
45 |
+
|
46 |
+
<div class="n2-table n2-table-fixed n2-content">
|
47 |
+
<div class="n2-tr">
|
48 |
+
<div class="n2-td n2-content-base-bg">
|
49 |
+
<!-- Begin Content -->
|
50 |
+
<div class="n2-content-area n2-border-radius-br">
|
51 |
+
<?php
|
52 |
+
$this->renderFragmentBlock('nextend_content');
|
53 |
+
?>
|
54 |
+
</div>
|
55 |
+
<!-- End Content -->
|
56 |
+
</div>
|
57 |
+
</div>
|
58 |
+
</div>
|
59 |
+
|
60 |
+
</div>
|
61 |
+
<?php
|
62 |
+
|
63 |
+
N2Message::show();
|
app/code/community/Nextend2/library/applications/system/backend/layouts/fulllightbox.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* @var $this N2Layout */
|
3 |
+
?>
|
4 |
+
<div id="<?php echo $lightboxId; ?>" class="n2 n2-lightbox-container n2-lightbox-no-sidebar">
|
5 |
+
<div class="n2-lightbox n2-border-radius">
|
6 |
+
|
7 |
+
<div class="n2-table n2-table-fixed n2-content">
|
8 |
+
<div class="n2-tr">
|
9 |
+
<div class="n2-td n2-content-base-bg">
|
10 |
+
<!-- Begin Content -->
|
11 |
+
<div class="n2-table n2-table-fixed">
|
12 |
+
<div class="n2-tr">
|
13 |
+
<div class="n2-td n2-sidebar">
|
14 |
+
<div class="n2-blue-logo-bg n2-logo n2-border-radius-tl n2-lightbox-heading n2-h2">
|
15 |
+
<?php
|
16 |
+
echo $logo;
|
17 |
+
?>
|
18 |
+
</div>
|
19 |
+
</div>
|
20 |
+
<div class="n2-td">
|
21 |
+
<?php
|
22 |
+
$this->renderFragmentBlock('nextend_content_top_bar');
|
23 |
+
?>
|
24 |
+
</div>
|
25 |
+
</div>
|
26 |
+
</div>
|
27 |
+
<div class="n2-content-area n2-border-radius-br">
|
28 |
+
<?php
|
29 |
+
$this->renderFragmentBlock('nextend_content');
|
30 |
+
?>
|
31 |
+
</div>
|
32 |
+
<!-- End Content -->
|
33 |
+
</div>
|
34 |
+
</div>
|
35 |
+
</div>
|
36 |
+
</div>
|
37 |
+
</div>
|
app/code/community/Nextend2/library/applications/system/backend/layouts/lightbox.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* @var $this N2Layout */
|
3 |
+
?>
|
4 |
+
<div id="<?php echo $lightboxId; ?>" class="n2 n2-lightbox-container">
|
5 |
+
<div class="n2-lightbox n2-border-radius">
|
6 |
+
|
7 |
+
<div class="n2-table n2-table-fixed n2-content">
|
8 |
+
<div class="n2-tr">
|
9 |
+
<div class="n2-td n2-sidebar n2-sidebar-base-bg n2-border-radius-tl n2-border-radius-bl">
|
10 |
+
<div class="n2-blue-logo-bg n2-logo n2-border-radius-tl n2-lightbox-heading n2-h2">
|
11 |
+
<?php
|
12 |
+
echo $logo;
|
13 |
+
?>
|
14 |
+
</div>
|
15 |
+
<?php
|
16 |
+
$this->renderFragmentBlock('nextend_sidebar');
|
17 |
+
?>
|
18 |
+
</div>
|
19 |
+
|
20 |
+
<div class="n2-td n2-content-base-bg">
|
21 |
+
<!-- Begin Content -->
|
22 |
+
<?php
|
23 |
+
$this->renderFragmentBlock('nextend_content_top_bar');
|
24 |
+
?>
|
25 |
+
<div class="n2-content-area n2-border-radius-br">
|
26 |
+
<?php
|
27 |
+
$this->renderFragmentBlock('nextend_content');
|
28 |
+
?>
|
29 |
+
</div>
|
30 |
+
<!-- End Content -->
|
31 |
+
</div>
|
32 |
+
</div>
|
33 |
+
</div>
|
34 |
+
</div>
|
35 |
+
</div>
|
app/code/community/Nextend2/library/applications/system/backend/layouts/modal.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/* @var $this N2Layout */
|
3 |
+
?>
|
4 |
+
<style type="text/css">
|
5 |
+
<?php N2Platform::adminHideCSS(); ?>
|
6 |
+
</style>
|
7 |
+
<div id="n2-admin" class="n2 n2-lightbox n2-sidebar-hidden n2-border-radius">
|
8 |
+
|
9 |
+
<?php
|
10 |
+
/**
|
11 |
+
* @var $widget Nav
|
12 |
+
*/
|
13 |
+
$logoUrl = N2Base::getApplication('system')->getLogo();
|
14 |
+
$cmd = N2Request::getVar("nextendcontroller", "dashboard");
|
15 |
+
|
16 |
+
?>
|
17 |
+
|
18 |
+
<div class="n2-table n2-table-fixed n2-content">
|
19 |
+
<div class="n2-tr">
|
20 |
+
<div class="n2-td n2-content-base-bg">
|
21 |
+
<!-- Begin Content -->
|
22 |
+
<div class="n2-content-area n2-border-radius-br">
|
23 |
+
<?php
|
24 |
+
$this->renderFragmentBlock('nextend_content');
|
25 |
+
?>
|
26 |
+
</div>
|
27 |
+
<!-- End Content -->
|
28 |
+
</div>
|
29 |
+
</div>
|
30 |
+
</div>
|
31 |
+
|
32 |
+
</div>
|
33 |
+
<?php
|
34 |
+
|
35 |
+
N2Message::show();
|
app/code/community/Nextend2/library/applications/system/backend/views/animation/index.php
ADDED
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $model N2SystemAnimationModel
|
4 |
+
*/
|
5 |
+
|
6 |
+
$sets = $model->getSets();
|
7 |
+
|
8 |
+
N2AnimationRenderer::$sets[] = $sets[0]['id'];
|
9 |
+
|
10 |
+
$animations = array();
|
11 |
+
foreach (array_unique(N2AnimationRenderer::$sets) AS $setId) {
|
12 |
+
$animations[$setId] = $model->getVisuals($setId);
|
13 |
+
}
|
14 |
+
|
15 |
+
N2JS::addFirstCode("
|
16 |
+
new NextendAnimationManager({
|
17 |
+
setsIdentifier: '" . $model->type . "set',
|
18 |
+
sets: " . json_encode($sets) . ",
|
19 |
+
visuals: " . json_encode($animations) . ",
|
20 |
+
renderer: {
|
21 |
+
modes: " . json_encode(N2AnimationRenderer::$mode) . "
|
22 |
+
},
|
23 |
+
ajaxUrl: '" . $this->appType->router->createAjaxUrl(array('animation/index')) . "'
|
24 |
+
});
|
25 |
+
");
|
26 |
+
?>
|
27 |
+
<div class="n2-form-tab ">
|
28 |
+
<div class="n2-heading-controls n2-content-box-title-bg">
|
29 |
+
<div class="n2-table">
|
30 |
+
<div class="n2-tr">
|
31 |
+
<div class="n2-td n2-h2" style="white-space: nowrap">
|
32 |
+
<?php n2_e('Animation settings'); ?>
|
33 |
+
</div>
|
34 |
+
|
35 |
+
<div class="n2-td n2-last n2-visual-editor-tabs">
|
36 |
+
<div class="n2-form-element-radio-tab">
|
37 |
+
<div class="n2-radio-option n2-h4 n2-first n2-last n2-active">
|
38 |
+
#0
|
39 |
+
</div>
|
40 |
+
<input type="hidden" autocomplete="off" value="0" name="n2-animation-editor-tabs"
|
41 |
+
id="n2-animation-editor-tabs">
|
42 |
+
</div>
|
43 |
+
|
44 |
+
<a id="n2-animation-editor-tab-add" href="#" class="n2-button n2-button-grey n2-button-medium">
|
45 |
+
<i class="n2-i n2-i-plus"></i>
|
46 |
+
</a>
|
47 |
+
|
48 |
+
<a id="n2-animation-editor-tab-delete" href="#"
|
49 |
+
class="n2-button n2-button-grey n2-button-medium">
|
50 |
+
<i class="n2-i n2-i-delete"></i>
|
51 |
+
</a>
|
52 |
+
</div>
|
53 |
+
</div>
|
54 |
+
</div>
|
55 |
+
</div>
|
56 |
+
|
57 |
+
<div>
|
58 |
+
<?php
|
59 |
+
$model->renderForm();
|
60 |
+
?>
|
61 |
+
</div>
|
62 |
+
</div>
|
63 |
+
|
64 |
+
<div class="n2-form-tab n2-editor-preview-box">
|
65 |
+
<div class="n2-heading-controls n2-content-box-title-bg">
|
66 |
+
<div class="n2-table n2-table-fixed">
|
67 |
+
<div class="n2-tr">
|
68 |
+
<div class="n2-td n2-h2">
|
69 |
+
<?php n2_e('Preview'); ?>
|
70 |
+
</div>
|
71 |
+
|
72 |
+
<div class="n2-td n2-last n2-visual-editor-preview-tab">
|
73 |
+
<div class="n2-form-element-radio-tab">
|
74 |
+
<div class="n2-radio-option n2-h4 n2-first n2-last n2-active">
|
75 |
+
Default
|
76 |
+
</div>
|
77 |
+
<input type="hidden" autocomplete="off" value="0" name="n2-animation-editor-preview-mode"
|
78 |
+
id="n2-animation-editor-preview-mode">
|
79 |
+
</div>
|
80 |
+
<div class="n2-editor-background-color">
|
81 |
+
<div style="" class="n2-form-element-text n2-form-element-color n2-border-radius">
|
82 |
+
<div class="sp-replacer">
|
83 |
+
<div class="sp-preview">
|
84 |
+
<div class="sp-preview-inner"></div>
|
85 |
+
</div>
|
86 |
+
<div class="sp-dd">▲</div>
|
87 |
+
</div>
|
88 |
+
<input type="text" autocomplete="off" class="n2-h5" value="ced3d5"
|
89 |
+
name="n2-animation-editor-background-color"
|
90 |
+
id="n2-animation-editor-background-color">
|
91 |
+
</div>
|
92 |
+
</div>
|
93 |
+
</div>
|
94 |
+
</div>
|
95 |
+
</div>
|
96 |
+
</div>
|
97 |
+
|
98 |
+
<div id="n2-animation-editor-preview">
|
99 |
+
</div>
|
100 |
+
</div>
|
101 |
+
|
102 |
+
<?php
|
103 |
+
$model->renderFormExtra();
|
104 |
+
?>
|
app/code/community/Nextend2/library/applications/system/backend/views/animation/topbar.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$this->widget->init('topbar', array(
|
4 |
+
"actions" => array(
|
5 |
+
NHtml::tag('a', array(
|
6 |
+
'href' => '#',
|
7 |
+
'id' => 'n2-animation-editor-cancel',
|
8 |
+
'class' => 'n2-button n2-button-red n2-button-big n2-h4 n2-b n2-uc'
|
9 |
+
), n2_('Cancel')),
|
10 |
+
NHtml::tag('a', array(
|
11 |
+
'href' => '#',
|
12 |
+
'id' => 'n2-animation-editor-save',
|
13 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
14 |
+
), n2_('Apply'))
|
15 |
+
),
|
16 |
+
'fixTo' => false
|
17 |
+
));
|
app/code/community/Nextend2/library/applications/system/backend/views/dashboard/index.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="n2-heading-bar">
|
2 |
+
<div class="n2-h1 n2-heading"><?php n2_e('Dashboard'); ?></div>
|
3 |
+
</div>
|
4 |
+
|
5 |
+
<?php
|
6 |
+
foreach (N2Base::getApplications() AS $info):
|
7 |
+
if (!$info->isPublic() || !N2Acl::canDo($info->getName(), $info)) {
|
8 |
+
continue;
|
9 |
+
}
|
10 |
+
$info->getInstance();
|
11 |
+
?>
|
12 |
+
<div class="n2-form-tab">
|
13 |
+
<div class="n2-h2 n2-content-box-title-bg"><?php echo $info->getLabel(); ?></div>
|
14 |
+
|
15 |
+
<div class="n2-description">
|
16 |
+
<a href="<?php echo $info->getUrl(); ?>"
|
17 |
+
class="n2-button n2-button-big n2-button-green"><?php n2_e('Go to'); ?> <?php echo $info->getLabel(); ?></a>
|
18 |
+
</div>
|
19 |
+
</div>
|
20 |
+
<?php
|
21 |
+
endforeach;
|
22 |
+
?>
|
app/code/community/Nextend2/library/applications/system/backend/views/defaults/noaccess.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
You do not have sufficient permissions to access this page.
|
app/code/community/Nextend2/library/applications/system/backend/views/font/index.php
ADDED
@@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $model N2SystemFontModel
|
4 |
+
*/
|
5 |
+
|
6 |
+
$sets = $model->getSets();
|
7 |
+
|
8 |
+
N2FontRenderer::$sets[] = $sets[0]['id'];
|
9 |
+
|
10 |
+
$fonts = array();
|
11 |
+
foreach (array_unique(N2FontRenderer::$sets) AS $setId) {
|
12 |
+
$fonts[$setId] = $model->getVisuals($setId);
|
13 |
+
}
|
14 |
+
|
15 |
+
$fontSettings = N2Fonts::loadSettings();
|
16 |
+
N2JS::addFirstCode("
|
17 |
+
new NextendFontManager({
|
18 |
+
setsIdentifier: '" . $model->type . "set',
|
19 |
+
sets: " . json_encode($sets) . ",
|
20 |
+
visuals: " . json_encode($fonts) . ",
|
21 |
+
renderer: {
|
22 |
+
pre: '" . N2FontRenderer::$pre . "',
|
23 |
+
usedFonts: " . json_encode(N2FontRenderer::$fonts) . ",
|
24 |
+
modes: " . json_encode(N2FontRenderer::$mode) . "
|
25 |
+
},
|
26 |
+
ajaxUrl: '" . $this->appType->router->createAjaxUrl(array('font/index')) . "',
|
27 |
+
defaultFamily: " . json_encode($fontSettings['default-family']) . "
|
28 |
+
});
|
29 |
+
");
|
30 |
+
?>
|
31 |
+
<div class="n2-form-tab ">
|
32 |
+
<div class="n2-heading-controls n2-content-box-title-bg">
|
33 |
+
<div class="n2-table n2-table-fixed">
|
34 |
+
<div class="n2-tr">
|
35 |
+
<div class="n2-td n2-h2">
|
36 |
+
<?php n2_e('Font settings'); ?>
|
37 |
+
</div>
|
38 |
+
|
39 |
+
<div class="n2-td n2-last n2-visual-editor-tabs">
|
40 |
+
<a href="#"
|
41 |
+
class="n2-button n2-button-v n2-button-medium n2-button-grey n2-editor-clear-tab n2-h5 n2-uc"
|
42 |
+
style="display: none;"><?php n2_e('Clear tab'); ?></a>
|
43 |
+
|
44 |
+
<div class="n2-form-element-radio-tab">
|
45 |
+
<div class="n2-radio-option n2-h4 n2-first n2-last n2-active">
|
46 |
+
#0
|
47 |
+
</div>
|
48 |
+
<input type="hidden" autocomplete="off" value="0" name="n2-font-editor-tabs"
|
49 |
+
id="n2-font-editor-tabs">
|
50 |
+
</div>
|
51 |
+
</div>
|
52 |
+
</div>
|
53 |
+
</div>
|
54 |
+
</div>
|
55 |
+
|
56 |
+
<div>
|
57 |
+
<?php
|
58 |
+
$model->renderForm();
|
59 |
+
?>
|
60 |
+
</div>
|
61 |
+
</div>
|
62 |
+
|
63 |
+
<div class="n2-form-tab n2-editor-preview-box">
|
64 |
+
<div class="n2-heading-controls n2-content-box-title-bg">
|
65 |
+
<div class="n2-table n2-table-fixed">
|
66 |
+
<div class="n2-tr">
|
67 |
+
<div class="n2-td n2-h2">
|
68 |
+
<?php n2_e('Preview'); ?>
|
69 |
+
</div>
|
70 |
+
|
71 |
+
<div class="n2-td n2-last n2-visual-editor-preview-tab">
|
72 |
+
<div class="n2-form-element-radio-tab n2-expert">
|
73 |
+
<div class="n2-radio-option n2-h4 n2-first n2-last n2-active">
|
74 |
+
<?php n2_e('Default'); ?>
|
75 |
+
</div>
|
76 |
+
<input type="hidden" autocomplete="off" value="0" name="n2-font-editor-preview-mode"
|
77 |
+
id="n2-font-editor-preview-mode">
|
78 |
+
</div>
|
79 |
+
<div class="n2-editor-background-color">
|
80 |
+
<div style="" class="n2-form-element-text n2-form-element-color n2-border-radius">
|
81 |
+
<div class="sp-replacer">
|
82 |
+
<div class="sp-preview">
|
83 |
+
<div class="sp-preview-inner"></div>
|
84 |
+
</div>
|
85 |
+
<div class="sp-dd">▲</div>
|
86 |
+
</div>
|
87 |
+
<input type="text" autocomplete="off" class="n2-h5" value="ced3d5"
|
88 |
+
name="n2-font-editor-background-color" id="n2-font-editor-background-color">
|
89 |
+
</div>
|
90 |
+
</div>
|
91 |
+
</div>
|
92 |
+
</div>
|
93 |
+
</div>
|
94 |
+
</div>
|
95 |
+
|
96 |
+
<div id="n2-font-editor-preview">
|
97 |
+
</div>
|
98 |
+
</div>
|
99 |
+
|
100 |
+
<?php
|
101 |
+
$model->renderFormExtra();
|
102 |
+
?>
|
app/code/community/Nextend2/library/applications/system/backend/views/font/topbar.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$this->widget->init('topbar', array(
|
4 |
+
"menu" => array(
|
5 |
+
NHtml::tag('div', array(
|
6 |
+
'class' => 'n2-form-dark'
|
7 |
+
), NHtml::tag('a', array(
|
8 |
+
'href' => '#',
|
9 |
+
'id' => 'n2-font-editor-set-as-linked',
|
10 |
+
'class' => 'n2-button n2-button-blue n2-button-medium n2-h5 n2-b n2-uc',
|
11 |
+
), n2_('Apply as linked')))
|
12 |
+
),
|
13 |
+
"actions" => array(
|
14 |
+
NHtml::tag('a', array(
|
15 |
+
'href' => '#',
|
16 |
+
'id' => 'n2-font-editor-cancel',
|
17 |
+
'class' => 'n2-button n2-button-red n2-button-big n2-h4 n2-b n2-uc'
|
18 |
+
), n2_('Cancel')),
|
19 |
+
NHtml::tag('a', array(
|
20 |
+
'href' => '#',
|
21 |
+
'id' => 'n2-font-editor-save',
|
22 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
23 |
+
), n2_('Apply'))
|
24 |
+
),
|
25 |
+
'fixTo' => false
|
26 |
+
));
|
27 |
+
|
app/code/community/Nextend2/library/applications/system/backend/views/help/index.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div></div>
|
2 |
+
<div class="n2-form">
|
3 |
+
<div class="n2-form-tab " id="n2-tab-general"><div class="n2-h2 n2-content-box-title-bg">Help</div>
|
4 |
+
<table>
|
5 |
+
<colgroup>
|
6 |
+
<col class="n2-label-col">
|
7 |
+
<col class="n2-element-col">
|
8 |
+
</colgroup>
|
9 |
+
<tbody>
|
10 |
+
<tr>
|
11 |
+
<td class="n2-label"><label>Nextend Framework version</label></td>
|
12 |
+
<td class="n2-element"><div class="n2-element-plain"><?php echo N2::$version; ?></div></td>
|
13 |
+
</tr>
|
14 |
+
<tr>
|
15 |
+
<td class="n2-label"><label>Platform</label></td>
|
16 |
+
<td class="n2-element"><div class="n2-element-plain"><?php echo N2Platform::getPlatformName(); ?></div></td>
|
17 |
+
</tr>
|
18 |
+
</tbody>
|
19 |
+
</table>
|
20 |
+
</div>
|
21 |
+
</div>
|
app/code/community/Nextend2/library/applications/system/backend/views/image/index.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $model N2SystemImageModel
|
4 |
+
*/
|
5 |
+
|
6 |
+
N2JS::addFirstCode("
|
7 |
+
new NextendImageManager({
|
8 |
+
visuals: " . json_encode(N2ImageManager::$loaded) . ",
|
9 |
+
ajaxUrl: '" . $this->appType->router->createAjaxUrl(array('image/index')) . "'
|
10 |
+
});
|
11 |
+
");
|
12 |
+
$model->renderForm();
|
app/code/community/Nextend2/library/applications/system/backend/views/image/topbar.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$this->widget->init('topbar', array(
|
4 |
+
"actions" => array(
|
5 |
+
NHtml::tag('a', array(
|
6 |
+
'href' => '#',
|
7 |
+
'id' => 'n2-image-editor-cancel',
|
8 |
+
'class' => 'n2-button n2-button-red n2-button-big n2-h4 n2-b n2-uc'
|
9 |
+
), n2_('Cancel')),
|
10 |
+
NHtml::tag('a', array(
|
11 |
+
'href' => '#',
|
12 |
+
'id' => 'n2-image-editor-save',
|
13 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
14 |
+
), n2_('Apply'))
|
15 |
+
),
|
16 |
+
'fixTo' => false
|
17 |
+
));
|
app/code/community/Nextend2/library/applications/system/backend/views/login/index.php
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$this->widget->init('topbar', array(
|
4 |
+
"actions" => array(
|
5 |
+
NHtml::tag('a', array(
|
6 |
+
'href' => '#',
|
7 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
8 |
+
'onclick' => 'return NextendForm.submit("#nextend-form");'
|
9 |
+
), n2_('Log in'))
|
10 |
+
)
|
11 |
+
));
|
12 |
+
?>
|
13 |
+
<form id="nextend-form" action="" method="post">
|
14 |
+
<?php
|
15 |
+
N2SystemLoginModel::renderForm();
|
16 |
+
?>
|
17 |
+
<input name="save" value="1" type="hidden"/>
|
18 |
+
</form>
|
app/code/community/Nextend2/library/applications/system/backend/views/settings/_view.php
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemBackendSettingsView extends N2ViewBase
|
4 |
+
{
|
5 |
+
|
6 |
+
public function renderGlobalConfigurationForm() {
|
7 |
+
|
8 |
+
$values = N2Settings::getAll();
|
9 |
+
$form = new N2Form($this->appType);
|
10 |
+
$form->loadArray($values);
|
11 |
+
$form->loadXMLFile(N2Loader::getPath('models', 'system') . '/forms/globalconfig.xml');
|
12 |
+
echo NHtml::openTag("form", array(
|
13 |
+
"id" => "nextend-config",
|
14 |
+
"method" => "post",
|
15 |
+
"action" => N2Request::getRequestUri()
|
16 |
+
));
|
17 |
+
$form->render('global');
|
18 |
+
echo NHtml::closeTag("form");
|
19 |
+
|
20 |
+
N2JS::addFirstCode("
|
21 |
+
new NextendForm(
|
22 |
+
'nextend-config',
|
23 |
+
'" . $this->appType->router->createAjaxUrl(array(
|
24 |
+
'settings/index'
|
25 |
+
)) . "',
|
26 |
+
" . json_encode($values) . "
|
27 |
+
);
|
28 |
+
");
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Generate action buttons to view
|
33 |
+
*
|
34 |
+
* @return array
|
35 |
+
*/
|
36 |
+
public function getButtons() {
|
37 |
+
$buttons = array();
|
38 |
+
|
39 |
+
$buttons[] = array(
|
40 |
+
'title' => n2_('Clear cache'),
|
41 |
+
'iconclass' => 'nii nii-24x42 nii-global-action-icon nii-refresh',
|
42 |
+
'htmlOptions' => array(
|
43 |
+
'href' => $this->appType->router->createUrl(array(
|
44 |
+
'settings/clearcache'
|
45 |
+
))
|
46 |
+
)
|
47 |
+
);
|
48 |
+
|
49 |
+
return $buttons;
|
50 |
+
}
|
51 |
+
|
52 |
+
public function renderAviaryConfigurationForm() {
|
53 |
+
$values = N2ImageAviary::loadSettings();
|
54 |
+
|
55 |
+
$form = new N2Form($this->appType);
|
56 |
+
$form->loadArray($values);
|
57 |
+
$form->loadXMLFile(N2Loader::getPath('models', 'system') . '/forms/aviary.xml');
|
58 |
+
echo NHtml::openTag("form", array(
|
59 |
+
"id" => "nextend-config",
|
60 |
+
"method" => "post",
|
61 |
+
"action" => N2Request::getRequestUri()
|
62 |
+
));
|
63 |
+
$form->render('aviary');
|
64 |
+
echo NHtml::closeTag("form");
|
65 |
+
}
|
66 |
+
|
67 |
+
public function renderFontsConfigurationForm() {
|
68 |
+
$values = N2Fonts::loadSettings();
|
69 |
+
|
70 |
+
$form = new N2Form($this->appType);
|
71 |
+
$form->loadArray($values);
|
72 |
+
$form->loadArray($values['plugins']->toArray());
|
73 |
+
$form->loadXMLFile(N2Loader::getPath('models', 'system') . '/forms/fonts.xml');
|
74 |
+
echo NHtml::openTag("form", array(
|
75 |
+
"id" => "nextend-config",
|
76 |
+
"method" => "post",
|
77 |
+
"action" => N2Request::getRequestUri()
|
78 |
+
));
|
79 |
+
$form->render('fonts');
|
80 |
+
echo NHtml::closeTag("form");
|
81 |
+
}
|
82 |
+
|
83 |
+
}
|
app/code/community/Nextend2/library/applications/system/backend/views/settings/aviary.php
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $_class N2SystemBackendSettingsView
|
4 |
+
* @see Actions
|
5 |
+
*/
|
6 |
+
$this->widget->init('topbar', array(
|
7 |
+
"actions" => array(
|
8 |
+
NHtml::tag('a', array(
|
9 |
+
'href' => '#',
|
10 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
11 |
+
'onclick' => 'return NextendForm.submit("#nextend-config");'
|
12 |
+
), n2_('Save'))
|
13 |
+
)
|
14 |
+
));
|
15 |
+
|
16 |
+
?>
|
17 |
+
<div class="n2-heading-bar">
|
18 |
+
<div class="n2-h1 n2-heading"><?php n2_e('Adobe Creative SDK - Aviary image editor'); ?></div>
|
19 |
+
</div>
|
20 |
+
|
21 |
+
<div class="n2-form-tab ">
|
22 |
+
<div class="n2-h2 n2-content-box-title-bg"><?php n2_e('Get Adobe Creative SDK API access'); ?></div>
|
23 |
+
|
24 |
+
<div class="n2-description">
|
25 |
+
<p><?php n2_e('To be able to use Aviary image editing tool in this application, you have to create an own API key to gain access.'); ?></p>
|
26 |
+
<ol>
|
27 |
+
<li><?php n2_e('If you have already registered to Adobe, you can skip this step. If not, please <a href="https://creativesdk.adobe.com/myapps.html" target="_blank">register</a>!'); ?>
|
28 |
+
</li>
|
29 |
+
<li><?php n2_e('After you have logged in <a href="https://creativesdk.adobe.com/myapps.html" target="_blank">on this page</a>, click on the "NEW APPLICATION" button!'); ?>
|
30 |
+
</li>
|
31 |
+
<li><?php n2_e('Application Name can be anything'); ?></li>
|
32 |
+
<li><?php n2_e('Platform must be "Web"'); ?></li>
|
33 |
+
<li><?php n2_e('Write a short description about your site'); ?></li>
|
34 |
+
<li><?php n2_e('Fill the captcha'); ?></li>
|
35 |
+
<li><?php n2_e('Click the "ADD APPLICATION" button'); ?></li>
|
36 |
+
<li><?php n2_e('Then you can copy and paste your Client ID and Client secret to this form and Save it'); ?></li>
|
37 |
+
</ol>
|
38 |
+
</div>
|
39 |
+
</div>
|
40 |
+
<?php
|
41 |
+
$values = N2ImageAviary::loadSettings();
|
42 |
+
if ($values['public'] && $values['secret']):
|
43 |
+
?>
|
44 |
+
<div class="n2-form-tab ">
|
45 |
+
<div class="n2-h2 n2-content-box-title-bg"><?php n2_e('High resolution feature'); ?></div>
|
46 |
+
|
47 |
+
<div class="n2-description">
|
48 |
+
<p><?php n2_e('By default Aviary is limited in the image size up to 1 megapixel. If you would like to edit bigger images, you can ask them (it\'s free) to enable high resolution image support on your app. '); ?></p>
|
49 |
+
<a class="n2-button n2-button-big n2-button-green"
|
50 |
+
href="mailto:websupport@creativesdk.zendesk.com?Subject=Web%20High%20Resolution%20Upgrade%20Inquiry&Body=Hello%2C%0AI%20would%20like%20to%20ask%20you%20to%20enable%20high%20resolution%20image%20support%20on%20my%20app.%0AMy%20Client%20id%20is%3A%20<?php echo $values['public']; ?>%0A%0AName%20of%20your%20company%3A%20%0ANumber%20of%20monthly%20active%20web%20users%3A%2010">
|
51 |
+
<?php n2_e('Request access to high resolution API'); ?>
|
52 |
+
</a>
|
53 |
+
</div>
|
54 |
+
</div>
|
55 |
+
<?php
|
56 |
+
endif;
|
57 |
+
$_class->renderAviaryConfigurationForm();
|
app/code/community/Nextend2/library/applications/system/backend/views/settings/fonts.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $_class N2SystemBackendSettingsView
|
4 |
+
* @see Actions
|
5 |
+
*/
|
6 |
+
$this->widget->init('topbar', array(
|
7 |
+
"actions" => array(
|
8 |
+
NHtml::tag('a', array(
|
9 |
+
'href' => '#',
|
10 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
11 |
+
'onclick' => 'return NextendForm.submit("#nextend-config");'
|
12 |
+
), n2_('Save'))
|
13 |
+
)
|
14 |
+
));
|
15 |
+
|
16 |
+
?>
|
17 |
+
<div class="n2-heading-bar">
|
18 |
+
<div class="n2-h1 n2-heading"><?php echo n2_e('Fonts Configuration'); ?></div>
|
19 |
+
</div>
|
20 |
+
<?php
|
21 |
+
$_class->renderFontsConfigurationForm();
|
app/code/community/Nextend2/library/applications/system/backend/views/settings/index.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$this->widget->init('topbar', array(
|
3 |
+
"actions" => array(
|
4 |
+
NHtml::tag('a', array(
|
5 |
+
'href' => '#',
|
6 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
7 |
+
'onclick' => 'return NextendForm.submit("#nextend-config");'
|
8 |
+
), n2_('Save'))
|
9 |
+
)
|
10 |
+
));
|
11 |
+
?>
|
12 |
+
<div class="n2-heading-bar">
|
13 |
+
<div class="n2-h1 n2-heading"><?php n2_e('General settings'); ?></div>
|
14 |
+
</div>
|
15 |
+
<?php
|
16 |
+
$_class->renderGlobalConfigurationForm();
|
app/code/community/Nextend2/library/applications/system/backend/views/style/index.php
ADDED
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $model N2SystemStyleModel
|
4 |
+
*/
|
5 |
+
|
6 |
+
$sets = $model->getSets();
|
7 |
+
|
8 |
+
N2StyleRenderer::$sets[] = $sets[0]['id'];
|
9 |
+
|
10 |
+
$styles = array();
|
11 |
+
foreach (array_unique(N2StyleRenderer::$sets) AS $setId) {
|
12 |
+
$styles[$setId] = $model->getVisuals($setId);
|
13 |
+
}
|
14 |
+
|
15 |
+
N2JS::addFirstCode("
|
16 |
+
new NextendStyleManager({
|
17 |
+
setsIdentifier: '" . $model->type . "set',
|
18 |
+
sets: " . json_encode($sets) . ",
|
19 |
+
visuals: " . json_encode($styles) . ",
|
20 |
+
renderer: {
|
21 |
+
pre: '" . N2StyleRenderer::$pre . "',
|
22 |
+
usedStyles: " . json_encode(N2StyleRenderer::$styles) . ",
|
23 |
+
modes: " . json_encode(N2StyleRenderer::$mode) . "
|
24 |
+
},
|
25 |
+
ajaxUrl: '" . $this->appType->router->createAjaxUrl(array('style/index')) . "'
|
26 |
+
});
|
27 |
+
");
|
28 |
+
?>
|
29 |
+
<div class="n2-form-tab ">
|
30 |
+
<div class="n2-heading-controls n2-content-box-title-bg">
|
31 |
+
<div class="n2-table n2-table-fixed">
|
32 |
+
<div class="n2-tr">
|
33 |
+
<div class="n2-td n2-h2">
|
34 |
+
<?php n2_e('Style settings'); ?>
|
35 |
+
</div>
|
36 |
+
|
37 |
+
<div class="n2-td n2-last n2-visual-editor-tabs">
|
38 |
+
<a href="#" class="n2-button n2-button-v n2-button-medium n2-button-grey n2-editor-clear-tab n2-h5 n2-uc"
|
39 |
+
style="display: none;"><?php n2_e('Clear tab'); ?></a>
|
40 |
+
|
41 |
+
<div class="n2-form-element-radio-tab">
|
42 |
+
<div class="n2-radio-option n2-h4 n2-first n2-last n2-active">
|
43 |
+
#0
|
44 |
+
</div>
|
45 |
+
<input type="hidden" autocomplete="off" value="0" name="n2-style-editor-tabs"
|
46 |
+
id="n2-style-editor-tabs">
|
47 |
+
</div>
|
48 |
+
</div>
|
49 |
+
</div>
|
50 |
+
</div>
|
51 |
+
</div>
|
52 |
+
|
53 |
+
<div>
|
54 |
+
<?php
|
55 |
+
$model->renderForm();
|
56 |
+
?>
|
57 |
+
</div>
|
58 |
+
</div>
|
59 |
+
|
60 |
+
<div class="n2-form-tab n2-editor-preview-box">
|
61 |
+
<div class="n2-heading-controls n2-content-box-title-bg">
|
62 |
+
<div class="n2-table n2-table-fixed">
|
63 |
+
<div class="n2-tr">
|
64 |
+
<div class="n2-td n2-h2">
|
65 |
+
<?php n2_e('Preview'); ?>
|
66 |
+
</div>
|
67 |
+
|
68 |
+
<div class="n2-td n2-last n2-visual-editor-preview-tab">
|
69 |
+
<div class="n2-form-element-radio-tab n2-expert">
|
70 |
+
<div class="n2-radio-option n2-h4 n2-first n2-last n2-active">
|
71 |
+
<?php n2_e('Default'); ?>
|
72 |
+
</div>
|
73 |
+
<input type="hidden" autocomplete="off" value="0" name="n2-style-editor-preview-mode"
|
74 |
+
id="n2-style-editor-preview-mode">
|
75 |
+
</div>
|
76 |
+
<div class="n2-editor-background-color">
|
77 |
+
<div style="" class="n2-form-element-text n2-form-element-color n2-border-radius">
|
78 |
+
<div class="sp-replacer">
|
79 |
+
<div class="sp-preview">
|
80 |
+
<div class="sp-preview-inner"></div>
|
81 |
+
</div>
|
82 |
+
<div class="sp-dd">▲</div>
|
83 |
+
</div>
|
84 |
+
<input type="text" autocomplete="off" class="n2-h5" value="ced3d5"
|
85 |
+
name="n2-style-editor-background-color" id="n2-style-editor-background-color">
|
86 |
+
</div>
|
87 |
+
</div>
|
88 |
+
</div>
|
89 |
+
</div>
|
90 |
+
</div>
|
91 |
+
</div>
|
92 |
+
|
93 |
+
<div id="n2-style-editor-preview">
|
94 |
+
</div>
|
95 |
+
</div>
|
96 |
+
|
97 |
+
<?php
|
98 |
+
$model->renderFormExtra();
|
99 |
+
?>
|
app/code/community/Nextend2/library/applications/system/backend/views/style/topbar.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$this->widget->init('topbar', array(
|
4 |
+
"menu" => array(
|
5 |
+
NHtml::tag('div', array(
|
6 |
+
'class' => 'n2-form-dark'
|
7 |
+
), NHtml::tag('a', array(
|
8 |
+
'href' => '#',
|
9 |
+
'id' => 'n2-style-editor-set-as-linked',
|
10 |
+
'class' => 'n2-button n2-button-blue n2-button-medium n2-h5 n2-b n2-uc',
|
11 |
+
), n2_('Apply as linked')))
|
12 |
+
),
|
13 |
+
"actions" => array(
|
14 |
+
NHtml::tag('a', array(
|
15 |
+
'href' => '#',
|
16 |
+
'id' => 'n2-style-editor-cancel',
|
17 |
+
'class' => 'n2-button n2-button-red n2-button-big n2-h4 n2-b n2-uc'
|
18 |
+
), n2_('Cancel')),
|
19 |
+
NHtml::tag('a', array(
|
20 |
+
'href' => '#',
|
21 |
+
'id' => 'n2-style-editor-save',
|
22 |
+
'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc',
|
23 |
+
), n2_('Apply'))
|
24 |
+
),
|
25 |
+
'fixTo' => false
|
26 |
+
));
|
27 |
+
|
app/code/community/Nextend2/library/applications/system/models/Install.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class N2SystemInstallModel extends N2Model
|
5 |
+
{
|
6 |
+
|
7 |
+
private static $sql = array(
|
8 |
+
"CREATE TABLE IF NOT EXISTS `#__nextend2_image_storage` (
|
9 |
+
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
10 |
+
`hash` VARCHAR(32) NOT NULL,
|
11 |
+
`image` TEXT NOT NULL,
|
12 |
+
`value` MEDIUMTEXT NOT NULL,
|
13 |
+
PRIMARY KEY (`id`),
|
14 |
+
UNIQUE KEY `hash` (`hash`)
|
15 |
+
)
|
16 |
+
DEFAULT CHARSET = utf8;",
|
17 |
+
"CREATE TABLE IF NOT EXISTS `#__nextend2_section_storage` (
|
18 |
+
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
19 |
+
`application` VARCHAR(20) NOT NULL,
|
20 |
+
`section` VARCHAR(32) NOT NULL,
|
21 |
+
`referencekey` VARCHAR(64) DEFAULT '',
|
22 |
+
`value` MEDIUMTEXT NOT NULL,
|
23 |
+
`system` INT(11) NOT NULL DEFAULT '0',
|
24 |
+
`editable` INT(11) NOT NULL DEFAULT '1',
|
25 |
+
PRIMARY KEY (`id`),
|
26 |
+
KEY `application` (`application`, `section`, `referencekey`),
|
27 |
+
KEY `application_2` (`application`, `section`)
|
28 |
+
)
|
29 |
+
DEFAULT CHARSET = utf8
|
30 |
+
AUTO_INCREMENT = 10000;"
|
31 |
+
);
|
32 |
+
|
33 |
+
public function install() {
|
34 |
+
foreach (self::$sql AS $query) {
|
35 |
+
$this->db->query($this->db->parsePrefix($query));
|
36 |
+
}
|
37 |
+
|
38 |
+
N2Loader::import('install', 'platform');
|
39 |
+
}
|
40 |
+
}
|
app/code/community/Nextend2/library/applications/system/models/animation.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import(array(
|
4 |
+
'libraries.animations.storage'
|
5 |
+
));
|
6 |
+
|
7 |
+
class N2SystemAnimationModel extends N2SystemVisualModel
|
8 |
+
{
|
9 |
+
|
10 |
+
public $type = 'animation';
|
11 |
+
|
12 |
+
public function renderForm() {
|
13 |
+
$form = new N2Form();
|
14 |
+
$form->loadXMLFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'forms' . DIRECTORY_SEPARATOR . 'animation' . DIRECTORY_SEPARATOR . 'form.xml');
|
15 |
+
$form->render('n2-animation-editor');
|
16 |
+
}
|
17 |
+
|
18 |
+
public function renderFormExtra() {
|
19 |
+
$form = new N2Form();
|
20 |
+
$form->loadXMLFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'forms' . DIRECTORY_SEPARATOR . 'animation' . DIRECTORY_SEPARATOR . 'extra.xml');
|
21 |
+
$form->render('n2-animation-editor');
|
22 |
+
}
|
23 |
+
}
|
app/code/community/Nextend2/library/applications/system/models/font.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import(array(
|
4 |
+
'libraries.fonts.storage'
|
5 |
+
));
|
6 |
+
|
7 |
+
class N2SystemFontModel extends N2SystemVisualModel
|
8 |
+
{
|
9 |
+
|
10 |
+
public $type = 'font';
|
11 |
+
|
12 |
+
public function renderForm() {
|
13 |
+
$form = new N2Form();
|
14 |
+
$form->loadXMLFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'forms' . DIRECTORY_SEPARATOR . 'font' . DIRECTORY_SEPARATOR . 'form.xml');
|
15 |
+
$form->render('n2-font-editor');
|
16 |
+
}
|
17 |
+
|
18 |
+
public function renderFormExtra() {
|
19 |
+
$form = new N2Form();
|
20 |
+
$form->loadXMLFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'forms' . DIRECTORY_SEPARATOR . 'font' . DIRECTORY_SEPARATOR . 'extra.xml');
|
21 |
+
$form->render('n2-font-editor');
|
22 |
+
}
|
23 |
+
}
|
app/code/community/Nextend2/library/applications/system/models/forms/animation/extra.xml
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="layeranimationglobal" label="Layer global animation properties">
|
3 |
+
<param name="special-zero" label="Special zero" type="onoff" default="0" class="n2-expert"/>
|
4 |
+
|
5 |
+
<param type="group" label="Repeat">
|
6 |
+
<param type="number" name="repeat-count" label="Count" default="0" style="width: 22px;">
|
7 |
+
<unit value="loop">Loop</unit>
|
8 |
+
</param>
|
9 |
+
<param type="number" name="repeat-start-delay" label="Start delay" default="0" style="width: 40px;">
|
10 |
+
<unit value="ms">ms</unit>
|
11 |
+
</param>
|
12 |
+
</param>
|
13 |
+
|
14 |
+
<param name="transformorigin" label="Transform origin" type="mixed" default="50|*|50|*|0" translateable="0">
|
15 |
+
<param type="numberautocomplete" sublabel="X" style="width: 40px;" values="0,50,100">
|
16 |
+
<unit value="%">%</unit>
|
17 |
+
</param>
|
18 |
+
<param type="numberautocomplete" sublabel="Y" style="width: 40px;" values="0,50,100">
|
19 |
+
<unit value="%">%</unit>
|
20 |
+
</param>
|
21 |
+
<param type="numberautocomplete" sublabel="Z" style="width: 40px;" values="0">
|
22 |
+
<unit value="px">px</unit>
|
23 |
+
</param>
|
24 |
+
</param>
|
25 |
+
|
26 |
+
<param label="Event" type="group">
|
27 |
+
<param type="autocomplete" name="play" label="Play" default="">
|
28 |
+
<option>LayerClick</option>
|
29 |
+
<option>LayerMouseEnter</option>
|
30 |
+
<option>LayerMouseLeave</option>
|
31 |
+
<option>SlideClick</option>
|
32 |
+
<option>SlideMouseEnter</option>
|
33 |
+
<option>SlideMouseLeave</option>
|
34 |
+
<option>SliderClick</option>
|
35 |
+
<option>SliderMouseEnter</option>
|
36 |
+
<option>SliderMouseLeave</option>
|
37 |
+
</param>
|
38 |
+
<param type="autocomplete" name="pause" label="Pause" default="">
|
39 |
+
<option>LayerClick</option>
|
40 |
+
<option>LayerMouseEnter</option>
|
41 |
+
<option>LayerMouseLeave</option>
|
42 |
+
<option>SlideClick</option>
|
43 |
+
<option>SlideMouseEnter</option>
|
44 |
+
<option>SlideMouseLeave</option>
|
45 |
+
<option>SliderClick</option>
|
46 |
+
<option>SliderMouseEnter</option>
|
47 |
+
<option>SliderMouseLeave</option>
|
48 |
+
<option>LoopRoundComplete</option>
|
49 |
+
</param>
|
50 |
+
<param type="autocomplete" name="stop" label="Stop" default="">
|
51 |
+
<option>LayerClick</option>
|
52 |
+
<option>LayerMouseEnter</option>
|
53 |
+
<option>LayerMouseLeave</option>
|
54 |
+
<option>SlideClick</option>
|
55 |
+
<option>SlideMouseEnter</option>
|
56 |
+
<option>SlideMouseLeave</option>
|
57 |
+
<option>SliderClick</option>
|
58 |
+
<option>SliderMouseEnter</option>
|
59 |
+
<option>SliderMouseLeave</option>
|
60 |
+
</param>
|
61 |
+
<param type="onoff" name="repeatable" label="Repeatable" default="0"/>
|
62 |
+
<param type="onoff" name="instant-out" label="Instant out" default="0"/>
|
63 |
+
</param>
|
64 |
+
</params>
|
65 |
+
</root>
|
app/code/community/Nextend2/library/applications/system/models/forms/animation/form.xml
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="firstrow" type="horizontal">
|
3 |
+
<param name="name" label="Name" type="text" default=""/>
|
4 |
+
<param name="duration" label="Duration" type="numberautocomplete" default="500" style="width: 40px;" min="0"
|
5 |
+
values="500,800,1000,1500,2000">
|
6 |
+
<unit value="ms">ms</unit>
|
7 |
+
</param>
|
8 |
+
<param name="delay" label="Delay" type="numberautocomplete" default="0" style="width: 40px;" min="0" values="0,500,800,1000,1500,2000">
|
9 |
+
<unit value="ms">ms</unit>
|
10 |
+
</param>
|
11 |
+
<param name="easing" label="Easing" type="jqueryeasing" default="easeOutCubic"/>
|
12 |
+
|
13 |
+
</params>
|
14 |
+
<params name="secondrow" type="horizontal">
|
15 |
+
<param name="opacity" label="Opacity" type="numberautocomplete" default="100" style="width: 22px;" min="0"
|
16 |
+
max="100" values="0,50,100">
|
17 |
+
<unit value="%">%</unit>
|
18 |
+
</param>
|
19 |
+
|
20 |
+
<param name="offset" label="Offset" type="mixed" default="0|*|0|*|0" translateable="0">
|
21 |
+
<param type="numberautocomplete" sublabel="X" style="width: 32px;" values="-400,-200,-100,0,100,200,400">
|
22 |
+
<unit value="px">px</unit>
|
23 |
+
</param>
|
24 |
+
<param type="numberautocomplete" sublabel="Y" style="width: 32px;" values="-400,-200,-100,0,100,200,400">
|
25 |
+
<unit value="px">px</unit>
|
26 |
+
</param>
|
27 |
+
<param type="number" sublabel="Z" style="width: 32px;" class="n2-expert">
|
28 |
+
<unit value="px">px</unit>
|
29 |
+
</param>
|
30 |
+
</param>
|
31 |
+
|
32 |
+
<param name="rotate" label="Rotate" type="mixed" default="0|*|0|*|0" translateable="0">
|
33 |
+
<param type="numberautocomplete" sublabel="X" style="width: 32px;" values="0,90,180,-90,-180">
|
34 |
+
<unit value="degree">°</unit>
|
35 |
+
</param>
|
36 |
+
<param type="numberautocomplete" sublabel="Y" style="width: 32px;" values="0,90,180,-90,-180">
|
37 |
+
<unit value="degree">°</unit>
|
38 |
+
</param>
|
39 |
+
<param type="numberautocomplete" sublabel="Z" style="width: 32px;" values="0,90,180,-90,-180">
|
40 |
+
<unit value="degree">°</unit>
|
41 |
+
</param>
|
42 |
+
</param>
|
43 |
+
|
44 |
+
<param name="scale" label="Scale" type="mixed" default="100|*|100|*|100" translateable="0">
|
45 |
+
<param type="numberautocomplete" sublabel="X" style="width: 32px;" min="0" values="0,50,100,150">
|
46 |
+
<unit value="%">%</unit>
|
47 |
+
</param>
|
48 |
+
<param type="numberautocomplete" sublabel="Y" style="width: 32px;" min="0" values="0,50,100,150">
|
49 |
+
<unit value="%">%</unit>
|
50 |
+
</param>
|
51 |
+
<param type="numberautocomplete" sublabel="Z" style="width: 32px;" min="0" values="0,50,100,150"
|
52 |
+
class="n2-expert">
|
53 |
+
<unit value="%">%</unit>
|
54 |
+
</param>
|
55 |
+
</param>
|
56 |
+
|
57 |
+
<param name="skew" label="Skew" type="number" default="0" style="width: 32px;" translateable="0"
|
58 |
+
class="n2-expert">
|
59 |
+
<unit value="%">%</unit>
|
60 |
+
</param>
|
61 |
+
|
62 |
+
</params>
|
63 |
+
</root>
|
app/code/community/Nextend2/library/applications/system/models/forms/animation/sets.xml
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="animation-sets" label="Animation sets" type="naked">
|
3 |
+
<param type="list" name="sets" default=""/>
|
4 |
+
</params>
|
5 |
+
</root>
|
app/code/community/Nextend2/library/applications/system/models/forms/aviary.xml
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="aviary" label="Adobe Creative SDK - Aviary">
|
3 |
+
<param type="token"/>
|
4 |
+
<param type="text" name="public" label="Client ID" default="" style="width: 250px;"/>
|
5 |
+
<param type="text" name="secret" label="Client secret" default="" style="width: 250px;"/>
|
6 |
+
</params>
|
7 |
+
</root>
|
app/code/community/Nextend2/library/applications/system/models/forms/font/element/decoration.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.form.element.checkbox');
|
3 |
+
|
4 |
+
class N2ElementDecoration extends N2ElementCheckbox
|
5 |
+
{
|
6 |
+
|
7 |
+
function fetchElement() {
|
8 |
+
|
9 |
+
return NHtml::tag('div', array(
|
10 |
+
'class' => 'n2-form-element-decoration',
|
11 |
+
'style' => N2XmlHelper::getAttribute($this->_xml, 'style')
|
12 |
+
), parent::fetchElement());
|
13 |
+
}
|
14 |
+
|
15 |
+
function generateOptions(&$xml) {
|
16 |
+
$options = array(
|
17 |
+
'bold' => 'n2-i n2-it n2-i-bold',
|
18 |
+
'italic' => 'n2-i n2-it n2-i-italic',
|
19 |
+
'underline' => 'n2-i n2-it n2-i-underline'
|
20 |
+
);
|
21 |
+
|
22 |
+
$length = count($options) - 1;
|
23 |
+
|
24 |
+
$html = '';
|
25 |
+
$i = 0;
|
26 |
+
foreach ($options AS $value => $class) {
|
27 |
+
$this->values[] = $value;
|
28 |
+
|
29 |
+
$html .= NHtml::tag('div', array(
|
30 |
+
'class' => 'n2-checkbox-option n2-decoration-' . $value . ($this->isSelected($value) ? ' n2-active' : '') . ($i == 0 ? ' n2-first' : '') . ($i == $length ? ' n2-last' : '')
|
31 |
+
), NHtml::tag('i', array('class' => $class)));
|
32 |
+
$i++;
|
33 |
+
}
|
34 |
+
return $html;
|
35 |
+
}
|
36 |
+
}
|
app/code/community/Nextend2/library/applications/system/models/forms/font/element/family.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.form.element.text');
|
3 |
+
|
4 |
+
class N2ElementFamily extends N2ElementText
|
5 |
+
{
|
6 |
+
|
7 |
+
function fetchElement() {
|
8 |
+
$html = parent::fetchElement();
|
9 |
+
$fontSettings = N2Fonts::loadSettings();
|
10 |
+
$families = explode("\n", $fontSettings['preset-families']);
|
11 |
+
sort($families);
|
12 |
+
N2JS::addInline('new NextendElementAutocompleteSimple("' . $this->_id . '", ' . json_encode($families) . ');');
|
13 |
+
return $html;
|
14 |
+
}
|
15 |
+
|
16 |
+
protected function getClass() {
|
17 |
+
return 'n2-form-element-autocomplete ui-front ' . parent::getClass();
|
18 |
+
}
|
19 |
+
}
|
app/code/community/Nextend2/library/applications/system/models/forms/font/element/fontpreset.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.form.element.skin');
|
3 |
+
|
4 |
+
class N2ElementFontPreset extends N2ElementSkin
|
5 |
+
{
|
6 |
+
|
7 |
+
function generateOptions(&$xml) {
|
8 |
+
$html = '';
|
9 |
+
if (!$this->fixedMode) {
|
10 |
+
$html .= '<option value="0" selected="selected">' . n2_('Choose') . '</option>';
|
11 |
+
}
|
12 |
+
$this->skins = array();
|
13 |
+
$fontSettings = N2Fonts::loadSettings();
|
14 |
+
$families = explode("\n", $fontSettings['preset-families']);
|
15 |
+
foreach ($families as $family) {
|
16 |
+
$family = trim($family, "\t\n\r\0\x0B'\"");
|
17 |
+
if (!empty($family)) {
|
18 |
+
$html .= '<option value="' . $family . '">' . $family . '</option>';
|
19 |
+
$this->skins[$family] = array();
|
20 |
+
$this->skins[$family]['family'] = $family;
|
21 |
+
}
|
22 |
+
|
23 |
+
}
|
24 |
+
return $html;
|
25 |
+
}
|
26 |
+
}
|
app/code/community/Nextend2/library/applications/system/models/forms/font/element/textalign.php
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.form.element.radiotab');
|
3 |
+
|
4 |
+
class N2ElementTextAlign extends N2ElementRadioTab
|
5 |
+
{
|
6 |
+
|
7 |
+
protected $class = 'n2-form-element-radio-tab n2-form-element-textalign';
|
8 |
+
|
9 |
+
function generateOptions(&$xml) {
|
10 |
+
$options = array(
|
11 |
+
'left' => 'n2-i n2-it n2-i-left',
|
12 |
+
'center' => 'n2-i n2-it n2-i-center',
|
13 |
+
'right' => 'n2-i n2-it n2-i-right',
|
14 |
+
'justify' => 'n2-i n2-it n2-i-justify'
|
15 |
+
);
|
16 |
+
$length = count($options) - 1;
|
17 |
+
|
18 |
+
$this->values = array();
|
19 |
+
$html = '';
|
20 |
+
$i = 0;
|
21 |
+
foreach ($options AS $value => $class) {
|
22 |
+
$this->values[] = $value;
|
23 |
+
|
24 |
+
$html .= NHtml::tag('div', array(
|
25 |
+
'class' => 'n2-radio-option' . ($this->isSelected($value) ? ' n2-active' : '') . ($i == 0 ? ' n2-first' : '') . ($i == $length ? ' n2-last' : '')
|
26 |
+
), NHtml::tag('i', array('class' => $class)));
|
27 |
+
$i++;
|
28 |
+
}
|
29 |
+
return $html;
|
30 |
+
}
|
31 |
+
}
|
app/code/community/Nextend2/library/applications/system/models/forms/font/extra.xml
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="extracss" label="Extra CSS" type="raw">
|
3 |
+
<param name="extracss" label="" style="display: block; margin:20px;"
|
4 |
+
style2="width:100%;height:80px;resize:vertical;" type="textarea"/>
|
5 |
+
</params>
|
6 |
+
</root>
|
app/code/community/Nextend2/library/applications/system/models/forms/font/form.xml
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="firstrow" type="horizontal">
|
3 |
+
<param name="family" label="Family" style="width:150px;" type="family" default="Arial, Helvetica"/>
|
4 |
+
<param name="color" label="Color" type="color" alpha="1" default="000000FF"/>
|
5 |
+
<param name="size" label="Size" type="mixed" default="14|*|px" translateable="0">
|
6 |
+
<param type="numberautocomplete" style="width: 22px;" values="8,10,12,14,18,24,30,48,72"/>
|
7 |
+
<param type="switcher">
|
8 |
+
<unit value="px">px</unit>
|
9 |
+
<unit value="%">%</unit>
|
10 |
+
</param>
|
11 |
+
</param>
|
12 |
+
<param name="lineheight" label="Line height" type="textautocomplete" default="18px"
|
13 |
+
style="width:70px;" values="normal,1,1.2,1.5,1.8,2"/>
|
14 |
+
<param name="decoration" label="Decoration" type="decoration" default=""/>
|
15 |
+
<param name="textalign" type="textalign" label="Text align" default="left"/>
|
16 |
+
|
17 |
+
<param name="letterspacing" label="Letter spacing" type="textautocomplete" default="normal"
|
18 |
+
style="width:50px;" values="normal,2px,5px,10px,15px"/>
|
19 |
+
<param name="wordspacing" label="Word spacing" type="textautocomplete" default="normal"
|
20 |
+
style="width:50px;" values="normal,2px,5px,10px,15px"/>
|
21 |
+
<param name="texttransform" label="Transform" type="list" default="none" translateable="1">
|
22 |
+
<option value="none">None</option>
|
23 |
+
<option value="capitalize">Capitalize</option>
|
24 |
+
<option value="uppercase">Uppercase</option>
|
25 |
+
<option value="lowercase">Lowercase</option>
|
26 |
+
</param>
|
27 |
+
|
28 |
+
<param name="tshadow" label="Text shadow" type="mixed" default="0|*|0|*|1|*|000000FF"
|
29 |
+
translateable="0" class="n2-expert">
|
30 |
+
<param type="number" style="width: 32px;">
|
31 |
+
<unit value="px">px</unit>
|
32 |
+
</param>
|
33 |
+
<param type="number" style="width: 32px;">
|
34 |
+
<unit value="px">px</unit>
|
35 |
+
</param>
|
36 |
+
<param type="number" style="width: 32px;">
|
37 |
+
<unit value="px">px</unit>
|
38 |
+
</param>
|
39 |
+
<param type="color" alpha="1"/>
|
40 |
+
</param>
|
41 |
+
</params>
|
42 |
+
</root>
|
app/code/community/Nextend2/library/applications/system/models/forms/font/sets.xml
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="font-sets" label="Font sets" type="naked">
|
3 |
+
<param type="list" name="sets" default=""/>
|
4 |
+
</params>
|
5 |
+
</root>
|
app/code/community/Nextend2/library/applications/system/models/forms/fonts.xml
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="fonts" label="Configuration">
|
3 |
+
<param type="text" name="default-family" label="Default family" default=""/>
|
4 |
+
<param type="textarea" name="preset-families" label="Preset font families"
|
5 |
+
style2="height: 300px; width: 500px;"/>
|
6 |
+
<param type="token"/>
|
7 |
+
</params>
|
8 |
+
<params name="font-services" label="Font services" type="raw" hidetitle="1">
|
9 |
+
<param name="font-services" type="pluginmatrix" label="" group="fontservices"
|
10 |
+
method="onFontServices" default="google"/>
|
11 |
+
</params>
|
12 |
+
</root>
|
app/code/community/Nextend2/library/applications/system/models/forms/globalconfig.xml
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="options" label="Options">
|
3 |
+
<param type="onoff" name="protocol-relative" label="Use protocol-relative URL" default="1"/>
|
4 |
+
</params>
|
5 |
+
<params name="javascript" label="JavaScript">
|
6 |
+
<param type="token"/>
|
7 |
+
<param type="onoff" name="jquery" label="Load jQuery on frontend" default="1"/>
|
8 |
+
<param type="onoff" name="gsap" label="Load GSAP on frontend" default="1"/>
|
9 |
+
<param type="onoff" name="async" label="Async" default="0"/>
|
10 |
+
<param type="onoff" name="combine-js" label="Combine" default="0"/>
|
11 |
+
<param type="onoff" name="minify-js" label="Minify" default="0"/>
|
12 |
+
</params>
|
13 |
+
</root>
|
app/code/community/Nextend2/library/applications/system/models/forms/image/form.xml
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="desktop" label="Desktop">
|
3 |
+
<param name="desktop-preview" label="Preview" type="container"/>
|
4 |
+
<param name="desktop-size" label="Size" type="mixed" default="0|*|0" class="n2-expert">
|
5 |
+
<param label="Width" type="number" style="width: 40px;">
|
6 |
+
<unit>px</unit>
|
7 |
+
</param>
|
8 |
+
<param label="Width" type="number" style="width: 40px;">
|
9 |
+
<unit>px</unit>
|
10 |
+
</param>
|
11 |
+
</param>
|
12 |
+
</params>
|
13 |
+
<params name="tablet" label="Tablet">
|
14 |
+
<param name="tablet-image" label="Image" type="image" default=""/>
|
15 |
+
<param name="tablet-preview" label="Preview" type="container"/>
|
16 |
+
<param name="tablet-size" label="Size" type="mixed" default="0|*|0" class="n2-expert">
|
17 |
+
<param label="Width" type="number" style="width: 40px;">
|
18 |
+
<unit>px</unit>
|
19 |
+
</param>
|
20 |
+
<param label="Width" type="number" style="width: 40px;">
|
21 |
+
<unit>px</unit>
|
22 |
+
</param>
|
23 |
+
</param>
|
24 |
+
</params>
|
25 |
+
<params name="mobile" label="Mobile">
|
26 |
+
<param name="mobile-image" label="Image" type="image" default=""/>
|
27 |
+
<param name="mobile-preview" label="Preview" type="container"/>
|
28 |
+
<param name="mobile-size" label="Size" type="mixed" default="0|*|0" class="n2-expert">
|
29 |
+
<param label="Width" type="number" style="width: 40px;">
|
30 |
+
<unit>px</unit>
|
31 |
+
</param>
|
32 |
+
<param label="Width" type="number" style="width: 40px;">
|
33 |
+
<unit>px</unit>
|
34 |
+
</param>
|
35 |
+
</param>
|
36 |
+
</params>
|
37 |
+
</root>
|
app/code/community/Nextend2/library/applications/system/models/forms/login.xml
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="login" label="Login">
|
3 |
+
<param name="user_name" type="text" label="User name" default="" style="width:200px;"/>
|
4 |
+
<param name="user_password" type="password" label="Password" default="" style="width:200px;"/>
|
5 |
+
<param type="token"/>
|
6 |
+
</params>
|
7 |
+
</root>
|
app/code/community/Nextend2/library/applications/system/models/forms/style/extra.xml
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="extracss" label="Extra CSS" type="raw">
|
3 |
+
<param name="extracss" label="" style="display: block; margin:20px;"
|
4 |
+
style2="width:100%;height:80px;resize:vertical;" type="textarea"/>
|
5 |
+
</params>
|
6 |
+
</root>
|
app/code/community/Nextend2/library/applications/system/models/forms/style/form.xml
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="firstrow" type="horizontal">
|
3 |
+
<param name="backgroundcolor" label="Background color" type="color" alpha="1" default="000000FF"/>
|
4 |
+
|
5 |
+
<param name="padding" label="Padding" type="mixed" default="0|*|0|*|0|*|0|*|px" translateable="0">
|
6 |
+
<param type="numberautocomplete" style="width: 22px;" values="0,5,10,20,30"/>
|
7 |
+
<param type="numberautocomplete" style="width: 22px;" values="0,5,10,20,30"/>
|
8 |
+
<param type="numberautocomplete" style="width: 22px;" values="0,5,10,20,30"/>
|
9 |
+
<param type="numberautocomplete" style="width: 22px;" values="0,5,10,20,30"/>
|
10 |
+
<param type="switcher">
|
11 |
+
<unit value="px">px</unit>
|
12 |
+
<unit value="em">em</unit>
|
13 |
+
<unit value="%">%</unit>
|
14 |
+
</param>
|
15 |
+
</param>
|
16 |
+
|
17 |
+
<param name="border" label="Border" type="mixed" default="0|*|solid|*|000000ff"
|
18 |
+
translateable="0">
|
19 |
+
<param type="number" style="width: 22px;">
|
20 |
+
<unit value="px">px</unit>
|
21 |
+
</param>
|
22 |
+
<param type="list" translateable="1">
|
23 |
+
<option value="none">None</option>
|
24 |
+
<option value="dotted">Dotted</option>
|
25 |
+
<option value="dashed">Dashed</option>
|
26 |
+
<option value="solid">Solid</option>
|
27 |
+
<option value="double">Double</option>
|
28 |
+
<option value="groove">Groove</option>
|
29 |
+
<option value="ridge">Ridge</option>
|
30 |
+
<option value="inset">Inset</option>
|
31 |
+
<option value="outset">Outset</option>
|
32 |
+
</param>
|
33 |
+
<param type="color" alpha="1"/>
|
34 |
+
</param>
|
35 |
+
|
36 |
+
<param name="borderradius" label="Border radius" type="numberautocomplete" default="0" values="0,3,5,10,99"
|
37 |
+
style="width: 22px;">
|
38 |
+
<unit value="px">px</unit>
|
39 |
+
</param>
|
40 |
+
<param name="boxshadow" label="Box shadow" type="mixed" default="0|*|0|*|0|*|0|*|000000ff" translateable="0">
|
41 |
+
<param type="number" style="width: 22px;">
|
42 |
+
<unit value="px">px</unit>
|
43 |
+
</param>
|
44 |
+
<param type="number" style="width: 22px;">
|
45 |
+
<unit value="px">px</unit>
|
46 |
+
</param>
|
47 |
+
<param type="number" style="width: 22px;">
|
48 |
+
<unit value="px">px</unit>
|
49 |
+
</param>
|
50 |
+
<param type="number" style="width: 22px;">
|
51 |
+
<unit value="px">px</unit>
|
52 |
+
</param>
|
53 |
+
<param type="color" alpha="1"/>
|
54 |
+
</param>
|
55 |
+
|
56 |
+
|
57 |
+
</params>
|
58 |
+
</root>
|
app/code/community/Nextend2/library/applications/system/models/forms/style/sets.xml
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="style-sets" label="Style sets" type="naked">
|
3 |
+
<param type="list" name="sets" default=""/>
|
4 |
+
</params>
|
5 |
+
</root>
|
app/code/community/Nextend2/library/applications/system/models/image.php
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
N2Loader::import('libraries.image.manager');
|
3 |
+
|
4 |
+
class N2SystemImageModel extends N2SystemVisualModel
|
5 |
+
{
|
6 |
+
|
7 |
+
public $type = 'image';
|
8 |
+
|
9 |
+
public function __construct() {
|
10 |
+
$this->storage = new N2StorageImage();
|
11 |
+
}
|
12 |
+
|
13 |
+
public function renderForm() {
|
14 |
+
$form = new N2Form();
|
15 |
+
$form->loadXMLFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'forms' . DIRECTORY_SEPARATOR . 'image' . DIRECTORY_SEPARATOR . 'form.xml');
|
16 |
+
$form->render('n2-image-editor');
|
17 |
+
}
|
18 |
+
|
19 |
+
public function addVisual($image, $visual) {
|
20 |
+
|
21 |
+
$visualId = $this->storage->add($image, $visual);
|
22 |
+
|
23 |
+
$visual = $this->storage->getById($visualId);
|
24 |
+
if (!empty($visual)) {
|
25 |
+
return $visual;
|
26 |
+
}
|
27 |
+
return false;
|
28 |
+
}
|
29 |
+
|
30 |
+
public function getVisual($image) {
|
31 |
+
return $this->storage->getByImage($image);
|
32 |
+
}
|
33 |
+
|
34 |
+
public function deleteVisual($id) {
|
35 |
+
$visual = $this->storage->getById($id);
|
36 |
+
$this->storage->deleteById($id);
|
37 |
+
return $visual;
|
38 |
+
}
|
39 |
+
|
40 |
+
public function changeVisual($id, $value) {
|
41 |
+
if ($this->storage->setById($id, $value)) {
|
42 |
+
return $this->storage->getById($id);
|
43 |
+
}
|
44 |
+
return false;
|
45 |
+
}
|
46 |
+
|
47 |
+
public function getVisuals($setId) {
|
48 |
+
return $this->storage->getAll();
|
49 |
+
}
|
50 |
+
}
|
app/code/community/Nextend2/library/applications/system/models/login.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class N2SystemLoginModel extends N2Model
|
5 |
+
{
|
6 |
+
|
7 |
+
public static function renderForm() {
|
8 |
+
|
9 |
+
$configurationXmlFile = dirname(__FILE__) . '/forms/login.xml';
|
10 |
+
|
11 |
+
N2Loader::import('libraries.form.form');
|
12 |
+
$form = new N2Form(N2Base::getApplication('system')->getApplicationType('backend'));
|
13 |
+
|
14 |
+
|
15 |
+
$form->loadXMLFile($configurationXmlFile);
|
16 |
+
|
17 |
+
return $form->render('login');
|
18 |
+
}
|
19 |
+
}
|
app/code/community/Nextend2/library/applications/system/models/style.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
N2Loader::import(array(
|
4 |
+
'libraries.stylemanager.storage'
|
5 |
+
));
|
6 |
+
|
7 |
+
class N2SystemStyleModel extends N2SystemVisualModel
|
8 |
+
{
|
9 |
+
|
10 |
+
public $type = 'style';
|
11 |
+
|
12 |
+
public function renderForm() {
|
13 |
+
$form = new N2Form();
|
14 |
+
$form->loadXMLFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'forms' . DIRECTORY_SEPARATOR . 'style' . DIRECTORY_SEPARATOR . 'form.xml');
|
15 |
+
$form->render('n2-style-editor');
|
16 |
+
}
|
17 |
+
|
18 |
+
public function renderFormExtra() {
|
19 |
+
$form = new N2Form();
|
20 |
+
$form->loadXMLFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'forms' . DIRECTORY_SEPARATOR . 'style' . DIRECTORY_SEPARATOR . 'extra.xml');
|
21 |
+
$form->render('n2-style-editor');
|
22 |
+
}
|
23 |
+
}
|
app/code/community/Nextend2/library/applications/system/models/visual.php
ADDED
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemVisualModel extends N2Model
|
4 |
+
{
|
5 |
+
|
6 |
+
public $type = '';
|
7 |
+
|
8 |
+
public $storage;
|
9 |
+
|
10 |
+
public function __construct($tableName = null) {
|
11 |
+
|
12 |
+
$this->storage = N2Base::getApplication('system')->storage;
|
13 |
+
parent::__construct($tableName);
|
14 |
+
}
|
15 |
+
|
16 |
+
public function renderSetsForm() {
|
17 |
+
|
18 |
+
$configurationXmlFile = $this->getPath() . '/forms/' . $this->type . '/sets.xml';
|
19 |
+
|
20 |
+
N2Loader::import('libraries.form.form');
|
21 |
+
$form = new N2Form();
|
22 |
+
$form->loadXMLFile($configurationXmlFile);
|
23 |
+
|
24 |
+
echo $form->render($this->type . 'set');
|
25 |
+
}
|
26 |
+
|
27 |
+
protected function getPath() {
|
28 |
+
return dirname(__FILE__);
|
29 |
+
}
|
30 |
+
|
31 |
+
public function getSets() {
|
32 |
+
return $this->storage->getAll($this->type . 'set');
|
33 |
+
}
|
34 |
+
|
35 |
+
public function getSetByVisualId($visualId) {
|
36 |
+
$visual = $this->storage->getById($visualId, $this->type);
|
37 |
+
if (!empty($visual)) {
|
38 |
+
return array(
|
39 |
+
'setId' => $visual['referencekey'],
|
40 |
+
'visuals' => $this->getVisuals($visual['referencekey'])
|
41 |
+
);
|
42 |
+
}
|
43 |
+
return false;
|
44 |
+
}
|
45 |
+
|
46 |
+
public function createSet($name) {
|
47 |
+
|
48 |
+
$setId = $this->storage->add($this->type . 'set', null, $name);
|
49 |
+
|
50 |
+
$set = $this->storage->getById($setId, $this->type . 'set');
|
51 |
+
if (!empty($set) && $set['section'] == $this->type . 'set') {
|
52 |
+
return $set;
|
53 |
+
}
|
54 |
+
return false;
|
55 |
+
}
|
56 |
+
|
57 |
+
public function renameSet($setId, $name) {
|
58 |
+
$set = $this->storage->getById($setId, $this->type . 'set');
|
59 |
+
if (!empty($set) && $set['section'] == $this->type . 'set' && $set['editable']) {
|
60 |
+
if ($this->storage->setById($setId, $name)) {
|
61 |
+
$set['value'] = $name;
|
62 |
+
return $set;
|
63 |
+
}
|
64 |
+
}
|
65 |
+
return false;
|
66 |
+
}
|
67 |
+
|
68 |
+
public function deleteSet($setId) {
|
69 |
+
$set = $this->storage->getById($setId, $this->type . 'set');
|
70 |
+
if (!empty($set) && $set['section'] == $this->type . 'set' && $set['editable'] && $set['system'] == 0) {
|
71 |
+
if ($this->storage->deleteById($setId)) {
|
72 |
+
return $set;
|
73 |
+
}
|
74 |
+
}
|
75 |
+
return false;
|
76 |
+
}
|
77 |
+
|
78 |
+
public function addVisual($setId, $visual) {
|
79 |
+
|
80 |
+
$visualId = $this->storage->add($this->type, $setId, $visual);
|
81 |
+
|
82 |
+
$visual = $this->storage->getById($visualId, $this->type);
|
83 |
+
if (!empty($visual) && $visual['section'] == $this->type) {
|
84 |
+
return $visual;
|
85 |
+
}
|
86 |
+
return false;
|
87 |
+
}
|
88 |
+
|
89 |
+
public function deleteVisual($id) {
|
90 |
+
$visual = $this->storage->getById($id, $this->type);
|
91 |
+
if (!empty($visual) && $visual['section'] == $this->type) {
|
92 |
+
$this->storage->deleteById($id);
|
93 |
+
return $visual;
|
94 |
+
}
|
95 |
+
return false;
|
96 |
+
}
|
97 |
+
|
98 |
+
public function changeVisual($id, $value) {
|
99 |
+
if ($this->storage->setById($id, $value)) {
|
100 |
+
return $this->storage->getById($id, $this->type);
|
101 |
+
}
|
102 |
+
return false;
|
103 |
+
}
|
104 |
+
|
105 |
+
public function getVisuals($setId) {
|
106 |
+
return $this->storage->getAll($this->type, $setId);
|
107 |
+
}
|
108 |
+
|
109 |
+
}
|
app/code/community/Nextend2/library/applications/system/plugins/loadplugin.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$mdir = dirname(__FILE__).DIRECTORY_SEPARATOR;
|
5 |
+
foreach(N2Filesystem::folders($mdir) AS $mfolder){
|
6 |
+
$mfile = $mdir.$mfolder.DIRECTORY_SEPARATOR.'loadplugin.php';
|
7 |
+
if(N2Filesystem::fileexists($mfile)){
|
8 |
+
require_once($mfile);
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/library/applications/system/plugins/nextendfontservices/google/google.php
ADDED
@@ -0,0 +1,809 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class N2SystemPluginFontServiceGoogle extends N2PluginBase
|
4 |
+
{
|
5 |
+
|
6 |
+
//<editor-fold desc="Google font list">
|
7 |
+
private static $fonts = array(
|
8 |
+
'ABeeZee',
|
9 |
+
'Abel',
|
10 |
+
'Abril Fatface',
|
11 |
+
'Aclonica',
|
12 |
+
'Acme',
|
13 |
+
'Actor',
|
14 |
+
'Adamina',
|
15 |
+
'Advent Pro',
|
16 |
+
'Aguafina Script',
|
17 |
+
'Akronim',
|
18 |
+
'Aladin',
|
19 |
+
'Aldrich',
|
20 |
+
'Alef',
|
21 |
+
'Alegreya',
|
22 |
+
'Alegreya SC',
|
23 |
+
'Alegreya Sans',
|
24 |
+
'Alegreya Sans SC',
|
25 |
+
'Alex Brush',
|
26 |
+
'Alfa Slab One',
|
27 |
+
'Alice',
|
28 |
+
'Alike',
|
29 |
+
'Alike Angular',
|
30 |
+
'Allan',
|
31 |
+
'Allerta',
|
32 |
+
'Allerta Stencil',
|
33 |
+
'Allura',
|
34 |
+
'Almendra',
|
35 |
+
'Almendra Display',
|
36 |
+
'Almendra SC',
|
37 |
+
'Amarante',
|
38 |
+
'Amaranth',
|
39 |
+
'Amatic SC',
|
40 |
+
'Amethysta',
|
41 |
+
'Amiri',
|
42 |
+
'Anaheim',
|
43 |
+
'Andada',
|
44 |
+
'Andika',
|
45 |
+
'Angkor',
|
46 |
+
'Annie Use Your Telescope',
|
47 |
+
'Anonymous Pro',
|
48 |
+
'Antic',
|
49 |
+
'Antic Didone',
|
50 |
+
'Antic Slab',
|
51 |
+
'Anton',
|
52 |
+
'Arapey',
|
53 |
+
'Arbutus',
|
54 |
+
'Arbutus Slab',
|
55 |
+
'Architects Daughter',
|
56 |
+
'Archivo Black',
|
57 |
+
'Archivo Narrow',
|
58 |
+
'Arimo',
|
59 |
+
'Arizonia',
|
60 |
+
'Armata',
|
61 |
+
'Artifika',
|
62 |
+
'Arvo',
|
63 |
+
'Asap',
|
64 |
+
'Asset',
|
65 |
+
'Astloch',
|
66 |
+
'Asul',
|
67 |
+
'Atomic Age',
|
68 |
+
'Aubrey',
|
69 |
+
'Audiowide',
|
70 |
+
'Autour One',
|
71 |
+
'Average',
|
72 |
+
'Average Sans',
|
73 |
+
'Averia Gruesa Libre',
|
74 |
+
'Averia Libre',
|
75 |
+
'Averia Sans Libre',
|
76 |
+
'Averia Serif Libre',
|
77 |
+
'Bad Script',
|
78 |
+
'Balthazar',
|
79 |
+
'Bangers',
|
80 |
+
'Basic',
|
81 |
+
'Battambang',
|
82 |
+
'Baumans',
|
83 |
+
'Bayon',
|
84 |
+
'Belgrano',
|
85 |
+
'Belleza',
|
86 |
+
'BenchNine',
|
87 |
+
'Bentham',
|
88 |
+
'Berkshire Swash',
|
89 |
+
'Bevan',
|
90 |
+
'Bigelow Rules',
|
91 |
+
'Bigshot One',
|
92 |
+
'Bilbo',
|
93 |
+
'Bilbo Swash Caps',
|
94 |
+
'Bitter',
|
95 |
+
'Black Ops One',
|
96 |
+
'Bokor',
|
97 |
+
'Bonbon',
|
98 |
+
'Boogaloo',
|
99 |
+
'Bowlby One',
|
100 |
+
'Bowlby One SC',
|
101 |
+
'Brawler',
|
102 |
+
'Bree Serif',
|
103 |
+
'Bubblegum Sans',
|
104 |
+
'Bubbler One',
|
105 |
+
'Buda',
|
106 |
+
'Buenard',
|
107 |
+
'Butcherman',
|
108 |
+
'Butterfly Kids',
|
109 |
+
'Cabin',
|
110 |
+
'Cabin Condensed',
|
111 |
+
'Cabin Sketch',
|
112 |
+
'Caesar Dressing',
|
113 |
+
'Cagliostro',
|
114 |
+
'Calligraffitti',
|
115 |
+
'Cambay',
|
116 |
+
'Cambo',
|
117 |
+
'Candal',
|
118 |
+
'Cantarell',
|
119 |
+
'Cantata One',
|
120 |
+
'Cantora One',
|
121 |
+
'Capriola',
|
122 |
+
'Cardo',
|
123 |
+
'Carme',
|
124 |
+
'Carrois Gothic',
|
125 |
+
'Carrois Gothic SC',
|
126 |
+
'Carter One',
|
127 |
+
'Caudex',
|
128 |
+
'Cedarville Cursive',
|
129 |
+
'Ceviche One',
|
130 |
+
'Changa One',
|
131 |
+
'Chango',
|
132 |
+
'Chau Philomene One',
|
133 |
+
'Chela One',
|
134 |
+
'Chelsea Market',
|
135 |
+
'Chenla',
|
136 |
+
'Cherry Cream Soda',
|
137 |
+
'Cherry Swash',
|
138 |
+
'Chewy',
|
139 |
+
'Chicle',
|
140 |
+
'Chivo',
|
141 |
+
'Cinzel',
|
142 |
+
'Cinzel Decorative',
|
143 |
+
'Clicker Script',
|
144 |
+
'Coda',
|
145 |
+
'Coda Caption',
|
146 |
+
'Codystar',
|
147 |
+
'Combo',
|
148 |
+
'Comfortaa',
|
149 |
+
'Coming Soon',
|
150 |
+
'Concert One',
|
151 |
+
'Condiment',
|
152 |
+
'Content',
|
153 |
+
'Contrail One',
|
154 |
+
'Convergence',
|
155 |
+
'Cookie',
|
156 |
+
'Copse',
|
157 |
+
'Corben',
|
158 |
+
'Courgette',
|
159 |
+
'Cousine',
|
160 |
+
'Coustard',
|
161 |
+
'Covered By Your Grace',
|
162 |
+
'Crafty Girls',
|
163 |
+
'Creepster',
|
164 |
+
'Crete Round',
|
165 |
+
'Crimson Text',
|
166 |
+
'Croissant One',
|
167 |
+
'Crushed',
|
168 |
+
'Cuprum',
|
169 |
+
'Cutive',
|
170 |
+
'Cutive Mono',
|
171 |
+
'Damion',
|
172 |
+
'Dancing Script',
|
173 |
+
'Dangrek',
|
174 |
+
'Dawning of a New Day',
|
175 |
+
'Days One',
|
176 |
+
'Dekko',
|
177 |
+
'Delius',
|
178 |
+
'Delius Swash Caps',
|
179 |
+
'Delius Unicase',
|
180 |
+
'Della Respira',
|
181 |
+
'Denk One',
|
182 |
+
'Devonshire',
|
183 |
+
'Dhurjati',
|
184 |
+
'Didact Gothic',
|
185 |
+
'Diplomata',
|
186 |
+
'Diplomata SC',
|
187 |
+
'Domine',
|
188 |
+
'Donegal One',
|
189 |
+
'Doppio One',
|
190 |
+
'Dorsa',
|
191 |
+
'Dosis',
|
192 |
+
'Dr Sugiyama',
|
193 |
+
'Droid Sans',
|
194 |
+
'Droid Sans Mono',
|
195 |
+
'Droid Serif',
|
196 |
+
'Duru Sans',
|
197 |
+
'Dynalight',
|
198 |
+
'EB Garamond',
|
199 |
+
'Eagle Lake',
|
200 |
+
'Eater',
|
201 |
+
'Economica',
|
202 |
+
'Ek Mukta',
|
203 |
+
'Electrolize',
|
204 |
+
'Elsie',
|
205 |
+
'Elsie Swash Caps',
|
206 |
+
'Emblema One',
|
207 |
+
'Emilys Candy',
|
208 |
+
'Engagement',
|
209 |
+
'Englebert',
|
210 |
+
'Enriqueta',
|
211 |
+
'Erica One',
|
212 |
+
'Esteban',
|
213 |
+
'Euphoria Script',
|
214 |
+
'Ewert',
|
215 |
+
'Exo',
|
216 |
+
'Exo 2',
|
217 |
+
'Expletus Sans',
|
218 |
+
'Fanwood Text',
|
219 |
+
'Fascinate',
|
220 |
+
'Fascinate Inline',
|
221 |
+
'Faster One',
|
222 |
+
'Fasthand',
|
223 |
+
'Fauna One',
|
224 |
+
'Federant',
|
225 |
+
'Federo',
|
226 |
+
'Felipa',
|
227 |
+
'Fenix',
|
228 |
+
'Finger Paint',
|
229 |
+
'Fira Mono',
|
230 |
+
'Fira Sans',
|
231 |
+
'Fjalla One',
|
232 |
+
'Fjord One',
|
233 |
+
'Flamenco',
|
234 |
+
'Flavors',
|
235 |
+
'Fondamento',
|
236 |
+
'Fontdiner Swanky',
|
237 |
+
'Forum',
|
238 |
+
'Francois One',
|
239 |
+
'Freckle Face',
|
240 |
+
'Fredericka the Great',
|
241 |
+
'Fredoka One',
|
242 |
+
'Freehand',
|
243 |
+
'Fresca',
|
244 |
+
'Frijole',
|
245 |
+
'Fruktur',
|
246 |
+
'Fugaz One',
|
247 |
+
'GFS Didot',
|
248 |
+
'GFS Neohellenic',
|
249 |
+
'Gabriela',
|
250 |
+
'Gafata',
|
251 |
+
'Galdeano',
|
252 |
+
'Galindo',
|
253 |
+
'Gentium Basic',
|
254 |
+
'Gentium Book Basic',
|
255 |
+
'Geo',
|
256 |
+
'Geostar',
|
257 |
+
'Geostar Fill',
|
258 |
+
'Germania One',
|
259 |
+
'Gidugu',
|
260 |
+
'Gilda Display',
|
261 |
+
'Give You Glory',
|
262 |
+
'Glass Antiqua',
|
263 |
+
'Glegoo',
|
264 |
+
'Gloria Hallelujah',
|
265 |
+
'Goblin One',
|
266 |
+
'Gochi Hand',
|
267 |
+
'Gorditas',
|
268 |
+
'Goudy Bookletter 1911',
|
269 |
+
'Graduate',
|
270 |
+
'Grand Hotel',
|
271 |
+
'Gravitas One',
|
272 |
+
'Great Vibes',
|
273 |
+
'Griffy',
|
274 |
+
'Gruppo',
|
275 |
+
'Gudea',
|
276 |
+
'Gurajada',
|
277 |
+
'Habibi',
|
278 |
+
'Halant',
|
279 |
+
'Hammersmith One',
|
280 |
+
'Hanalei',
|
281 |
+
'Hanalei Fill',
|
282 |
+
'Handlee',
|
283 |
+
'Hanuman',
|
284 |
+
'Happy Monkey',
|
285 |
+
'Headland One',
|
286 |
+
'Henny Penny',
|
287 |
+
'Herr Von Muellerhoff',
|
288 |
+
'Hind',
|
289 |
+
'Holtwood One SC',
|
290 |
+
'Homemade Apple',
|
291 |
+
'Homenaje',
|
292 |
+
'IM Fell DW Pica',
|
293 |
+
'IM Fell DW Pica SC',
|
294 |
+
'IM Fell Double Pica',
|
295 |
+
'IM Fell Double Pica SC',
|
296 |
+
'IM Fell English',
|
297 |
+
'IM Fell English SC',
|
298 |
+
'IM Fell French Canon',
|
299 |
+
'IM Fell French Canon SC',
|
300 |
+
'IM Fell Great Primer',
|
301 |
+
'IM Fell Great Primer SC',
|
302 |
+
'Iceberg',
|
303 |
+
'Iceland',
|
304 |
+
'Imprima',
|
305 |
+
'Inconsolata',
|
306 |
+
'Inder',
|
307 |
+
'Indie Flower',
|
308 |
+
'Inika',
|
309 |
+
'Irish Grover',
|
310 |
+
'Istok Web',
|
311 |
+
'Italiana',
|
312 |
+
'Italianno',
|
313 |
+
'Jacques Francois',
|
314 |
+
'Jacques Francois Shadow',
|
315 |
+
'Jim Nightshade',
|
316 |
+
'Jockey One',
|
317 |
+
'Jolly Lodger',
|
318 |
+
'Josefin Sans',
|
319 |
+
'Josefin Slab',
|
320 |
+
'Joti One',
|
321 |
+
'Judson',
|
322 |
+
'Julee',
|
323 |
+
'Julius Sans One',
|
324 |
+
'Junge',
|
325 |
+
'Jura',
|
326 |
+
'Just Another Hand',
|
327 |
+
'Just Me Again Down Here',
|
328 |
+
'Kalam',
|
329 |
+
'Kameron',
|
330 |
+
'Kantumruy',
|
331 |
+
'Karla',
|
332 |
+
'Karma',
|
333 |
+
'Kaushan Script',
|
334 |
+
'Kavoon',
|
335 |
+
'Kdam Thmor',
|
336 |
+
'Keania One',
|
337 |
+
'Kelly Slab',
|
338 |
+
'Kenia',
|
339 |
+
'Khand',
|
340 |
+
'Khmer',
|
341 |
+
'Khula',
|
342 |
+
'Kite One',
|
343 |
+
'Knewave',
|
344 |
+
'Kotta One',
|
345 |
+
'Koulen',
|
346 |
+
'Kranky',
|
347 |
+
'Kreon',
|
348 |
+
'Kristi',
|
349 |
+
'Krona One',
|
350 |
+
'La Belle Aurore',
|
351 |
+
'Laila',
|
352 |
+
'Lakki Reddy',
|
353 |
+
'Lancelot',
|
354 |
+
'Lateef',
|
355 |
+
'Lato',
|
356 |
+
'League Script',
|
357 |
+
'Leckerli One',
|
358 |
+
'Ledger',
|
359 |
+
'Lekton',
|
360 |
+
'Lemon',
|
361 |
+
'Libre Baskerville',
|
362 |
+
'Life Savers',
|
363 |
+
'Lilita One',
|
364 |
+
'Lily Script One',
|
365 |
+
'Limelight',
|
366 |
+
'Linden Hill',
|
367 |
+
'Lobster',
|
368 |
+
'Lobster Two',
|
369 |
+
'Londrina Outline',
|
370 |
+
'Londrina Shadow',
|
371 |
+
'Londrina Sketch',
|
372 |
+
'Londrina Solid',
|
373 |
+
'Lora',
|
374 |
+
'Love Ya Like A Sister',
|
375 |
+
'Loved by the King',
|
376 |
+
'Lovers Quarrel',
|
377 |
+
'Luckiest Guy',
|
378 |
+
'Lusitana',
|
379 |
+
'Lustria',
|
380 |
+
'Macondo',
|
381 |
+
'Macondo Swash Caps',
|
382 |
+
'Magra',
|
383 |
+
'Maiden Orange',
|
384 |
+
'Mako',
|
385 |
+
'Mallanna',
|
386 |
+
'Mandali',
|
387 |
+
'Marcellus',
|
388 |
+
'Marcellus SC',
|
389 |
+
'Marck Script',
|
390 |
+
'Margarine',
|
391 |
+
'Marko One',
|
392 |
+
'Marmelad',
|
393 |
+
'Martel Sans',
|
394 |
+
'Marvel',
|
395 |
+
'Mate',
|
396 |
+
'Mate SC',
|
397 |
+
'Maven Pro',
|
398 |
+
'McLaren',
|
399 |
+
'Meddon',
|
400 |
+
'MedievalSharp',
|
401 |
+
'Medula One',
|
402 |
+
'Megrim',
|
403 |
+
'Meie Script',
|
404 |
+
'Merienda',
|
405 |
+
'Merienda One',
|
406 |
+
'Merriweather',
|
407 |
+
'Merriweather Sans',
|
408 |
+
'Metal',
|
409 |
+
'Metal Mania',
|
410 |
+
'Metamorphous',
|
411 |
+
'Metrophobic',
|
412 |
+
'Michroma',
|
413 |
+
'Milonga',
|
414 |
+
'Miltonian',
|
415 |
+
'Miltonian Tattoo',
|
416 |
+
'Miniver',
|
417 |
+
'Miss Fajardose',
|
418 |
+
'Modak',
|
419 |
+
'Modern Antiqua',
|
420 |
+
'Molengo',
|
421 |
+
'Molle',
|
422 |
+
'Monda',
|
423 |
+
'Monofett',
|
424 |
+
'Monoton',
|
425 |
+
'Monsieur La Doulaise',
|
426 |
+
'Montaga',
|
427 |
+
'Montez',
|
428 |
+
'Montserrat',
|
429 |
+
'Montserrat Alternates',
|
430 |
+
'Montserrat Subrayada',
|
431 |
+
'Moul',
|
432 |
+
'Moulpali',
|
433 |
+
'Mountains of Christmas',
|
434 |
+
'Mouse Memoirs',
|
435 |
+
'Mr Bedfort',
|
436 |
+
'Mr Dafoe',
|
437 |
+
'Mr De Haviland',
|
438 |
+
'Mrs Saint Delafield',
|
439 |
+
'Mrs Sheppards',
|
440 |
+
'Muli',
|
441 |
+
'Mystery Quest',
|
442 |
+
'NTR',
|
443 |
+
'Neucha',
|
444 |
+
'Neuton',
|
445 |
+
'New Rocker',
|
446 |
+
'News Cycle',
|
447 |
+
'Niconne',
|
448 |
+
'Nixie One',
|
449 |
+
'Nobile',
|
450 |
+
'Nokora',
|
451 |
+
'Norican',
|
452 |
+
'Nosifer',
|
453 |
+
'Nothing You Could Do',
|
454 |
+
'Noticia Text',
|
455 |
+
'Noto Sans',
|
456 |
+
'Noto Serif',
|
457 |
+
'Nova Cut',
|
458 |
+
'Nova Flat',
|
459 |
+
'Nova Mono',
|
460 |
+
'Nova Oval',
|
461 |
+
'Nova Round',
|
462 |
+
'Nova Script',
|
463 |
+
'Nova Slim',
|
464 |
+
'Nova Square',
|
465 |
+
'Numans',
|
466 |
+
'Nunito',
|
467 |
+
'Odor Mean Chey',
|
468 |
+
'Offside',
|
469 |
+
'Old Standard TT',
|
470 |
+
'Oldenburg',
|
471 |
+
'Oleo Script',
|
472 |
+
'Oleo Script Swash Caps',
|
473 |
+
'Open Sans',
|
474 |
+
'Open Sans Condensed',
|
475 |
+
'Oranienbaum',
|
476 |
+
'Orbitron',
|
477 |
+
'Oregano',
|
478 |
+
'Orienta',
|
479 |
+
'Original Surfer',
|
480 |
+
'Oswald',
|
481 |
+
'Over the Rainbow',
|
482 |
+
'Overlock',
|
483 |
+
'Overlock SC',
|
484 |
+
'Ovo',
|
485 |
+
'Oxygen',
|
486 |
+
'Oxygen Mono',
|
487 |
+
'PT Mono',
|
488 |
+
'PT Sans',
|
489 |
+
'PT Sans Caption',
|
490 |
+
'PT Sans Narrow',
|
491 |
+
'PT Serif',
|
492 |
+
'PT Serif Caption',
|
493 |
+
'Pacifico',
|
494 |
+
'Paprika',
|
495 |
+
'Parisienne',
|
496 |
+
'Passero One',
|
497 |
+
'Passion One',
|
498 |
+
'Pathway Gothic One',
|
499 |
+
'Patrick Hand',
|
500 |
+
'Patrick Hand SC',
|
501 |
+
'Patua One',
|
502 |
+
'Paytone One',
|
503 |
+
'Peddana',
|
504 |
+
'Peralta',
|
505 |
+
'Permanent Marker',
|
506 |
+
'Petit Formal Script',
|
507 |
+
'Petrona',
|
508 |
+
'Philosopher',
|
509 |
+
'Piedra',
|
510 |
+
'Pinyon Script',
|
511 |
+
'Pirata One',
|
512 |
+
'Plaster',
|
513 |
+
'Play',
|
514 |
+
'Playball',
|
515 |
+
'Playfair Display',
|
516 |
+
'Playfair Display SC',
|
517 |
+
'Podkova',
|
518 |
+
'Poiret One',
|
519 |
+
'Poller One',
|
520 |
+
'Poly',
|
521 |
+
'Pompiere',
|
522 |
+
'Pontano Sans',
|
523 |
+
'Port Lligat Sans',
|
524 |
+
'Port Lligat Slab',
|
525 |
+
'Prata',
|
526 |
+
'Preahvihear',
|
527 |
+
'Press Start 2P',
|
528 |
+
'Princess Sofia',
|
529 |
+
'Prociono',
|
530 |
+
'Prosto One',
|
531 |
+
'Puritan',
|
532 |
+
'Purple Purse',
|
533 |
+
'Quando',
|
534 |
+
'Quantico',
|
535 |
+
'Quattrocento',
|
536 |
+
'Quattrocento Sans',
|
537 |
+
'Questrial',
|
538 |
+
'Quicksand',
|
539 |
+
'Quintessential',
|
540 |
+
'Qwigley',
|
541 |
+
'Racing Sans One',
|
542 |
+
'Radley',
|
543 |
+
'Rajdhani',
|
544 |
+
'Raleway',
|
545 |
+
'Raleway Dots',
|
546 |
+
'Ramabhadra',
|
547 |
+
'Ramaraja',
|
548 |
+
'Rambla',
|
549 |
+
'Rammetto One',
|
550 |
+
'Ranchers',
|
551 |
+
'Rancho',
|
552 |
+
'Ranga',
|
553 |
+
'Rationale',
|
554 |
+
'Ravi Prakash',
|
555 |
+
'Redressed',
|
556 |
+
'Reenie Beanie',
|
557 |
+
'Revalia',
|
558 |
+
'Ribeye',
|
559 |
+
'Ribeye Marrow',
|
560 |
+
'Righteous',
|
561 |
+
'Risque',
|
562 |
+
'Roboto',
|
563 |
+
'Roboto Condensed',
|
564 |
+
'Roboto Slab',
|
565 |
+
'Rochester',
|
566 |
+
'Rock Salt',
|
567 |
+
'Rokkitt',
|
568 |
+
'Romanesco',
|
569 |
+
'Ropa Sans',
|
570 |
+
'Rosario',
|
571 |
+
'Rosarivo',
|
572 |
+
'Rouge Script',
|
573 |
+
'Rozha One',
|
574 |
+
'Rubik Mono One',
|
575 |
+
'Rubik One',
|
576 |
+
'Ruda',
|
577 |
+
'Rufina',
|
578 |
+
'Ruge Boogie',
|
579 |
+
'Ruluko',
|
580 |
+
'Rum Raisin',
|
581 |
+
'Ruslan Display',
|
582 |
+
'Russo One',
|
583 |
+
'Ruthie',
|
584 |
+
'Rye',
|
585 |
+
'Sacramento',
|
586 |
+
'Sail',
|
587 |
+
'Salsa',
|
588 |
+
'Sanchez',
|
589 |
+
'Sancreek',
|
590 |
+
'Sansita One',
|
591 |
+
'Sarina',
|
592 |
+
'Sarpanch',
|
593 |
+
'Satisfy',
|
594 |
+
'Scada',
|
595 |
+
'Scheherazade',
|
596 |
+
'Schoolbell',
|
597 |
+
'Seaweed Script',
|
598 |
+
'Sevillana',
|
599 |
+
'Seymour One',
|
600 |
+
'Shadows Into Light',
|
601 |
+
'Shadows Into Light Two',
|
602 |
+
'Shanti',
|
603 |
+
'Share',
|
604 |
+
'Share Tech',
|
605 |
+
'Share Tech Mono',
|
606 |
+
'Shojumaru',
|
607 |
+
'Short Stack',
|
608 |
+
'Siemreap',
|
609 |
+
'Sigmar One',
|
610 |
+
'Signika',
|
611 |
+
'Signika Negative',
|
612 |
+
'Simonetta',
|
613 |
+
'Sintony',
|
614 |
+
'Sirin Stencil',
|
615 |
+
'Six Caps',
|
616 |
+
'Skranji',
|
617 |
+
'Slabo 13px',
|
618 |
+
'Slabo 27px',
|
619 |
+
'Slackey',
|
620 |
+
'Smokum',
|
621 |
+
'Smythe',
|
622 |
+
'Sniglet',
|
623 |
+
'Snippet',
|
624 |
+
'Snowburst One',
|
625 |
+
'Sofadi One',
|
626 |
+
'Sofia',
|
627 |
+
'Sonsie One',
|
628 |
+
'Sorts Mill Goudy',
|
629 |
+
'Source Code Pro',
|
630 |
+
'Source Sans Pro',
|
631 |
+
'Source Serif Pro',
|
632 |
+
'Special Elite',
|
633 |
+
'Spicy Rice',
|
634 |
+
'Spinnaker',
|
635 |
+
'Spirax',
|
636 |
+
'Squada One',
|
637 |
+
'Sree Krushnadevaraya',
|
638 |
+
'Stalemate',
|
639 |
+
'Stalinist One',
|
640 |
+
'Stardos Stencil',
|
641 |
+
'Stint Ultra Condensed',
|
642 |
+
'Stint Ultra Expanded',
|
643 |
+
'Stoke',
|
644 |
+
'Strait',
|
645 |
+
'Sue Ellen Francisco',
|
646 |
+
'Sunshiney',
|
647 |
+
'Supermercado One',
|
648 |
+
'Suranna',
|
649 |
+
'Suravaram',
|
650 |
+
'Suwannaphum',
|
651 |
+
'Swanky and Moo Moo',
|
652 |
+
'Syncopate',
|
653 |
+
'Tangerine',
|
654 |
+
'Taprom',
|
655 |
+
'Tauri',
|
656 |
+
'Teko',
|
657 |
+
'Telex',
|
658 |
+
'Tenali Ramakrishna',
|
659 |
+
'Tenor Sans',
|
660 |
+
'Text Me One',
|
661 |
+
'The Girl Next Door',
|
662 |
+
'Tienne',
|
663 |
+
'Timmana',
|
664 |
+
'Tinos',
|
665 |
+
'Titan One',
|
666 |
+
'Titillium Web',
|
667 |
+
'Trade Winds',
|
668 |
+
'Trocchi',
|
669 |
+
'Trochut',
|
670 |
+
'Trykker',
|
671 |
+
'Tulpen One',
|
672 |
+
'Ubuntu',
|
673 |
+
'Ubuntu Condensed',
|
674 |
+
'Ubuntu Mono',
|
675 |
+
'Ultra',
|
676 |
+
'Uncial Antiqua',
|
677 |
+
'Underdog',
|
678 |
+
'Unica One',
|
679 |
+
'UnifrakturCook',
|
680 |
+
'UnifrakturMaguntia',
|
681 |
+
'Unkempt',
|
682 |
+
'Unlock',
|
683 |
+
'Unna',
|
684 |
+
'VT323',
|
685 |
+
'Vampiro One',
|
686 |
+
'Varela',
|
687 |
+
'Varela Round',
|
688 |
+
'Vast Shadow',
|
689 |
+
'Vesper Libre',
|
690 |
+
'Vibur',
|
691 |
+
'Vidaloka',
|
692 |
+
'Viga',
|
693 |
+
'Voces',
|
694 |
+
'Volkhov',
|
695 |
+
'Vollkorn',
|
696 |
+
'Voltaire',
|
697 |
+
'Waiting for the Sunrise',
|
698 |
+
'Wallpoet',
|
699 |
+
'Walter Turncoat',
|
700 |
+
'Warnes',
|
701 |
+
'Wellfleet',
|
702 |
+
'Wendy One',
|
703 |
+
'Wire One',
|
704 |
+
'Yanone Kaffeesatz',
|
705 |
+
'Yellowtail',
|
706 |
+
'Yeseva One',
|
707 |
+
'Yesteryear',
|
708 |
+
'Zeyada'
|
709 |
+
);
|
710 |
+
//</editor-fold>
|
711 |
+
|
712 |
+
var $_group = 'google';
|
713 |
+
|
714 |
+
private static $styles = array();
|
715 |
+
private static $subsets = array();
|
716 |
+
|
717 |
+
|
718 |
+
function onFontServices(&$list) {
|
719 |
+
$list[$this->_group] = array(
|
720 |
+
'Google',
|
721 |
+
$this->getPath(),
|
722 |
+
1
|
723 |
+
);
|
724 |
+
}
|
725 |
+
|
726 |
+
public static function getDefaults() {
|
727 |
+
$defaults = array();
|
728 |
+
$fontsSets = explode(',', n2_x('latin', 'Default font sets'));
|
729 |
+
for ($i = 0; $i < count($fontsSets); $i++) {
|
730 |
+
$fontsSets[$i] = 'google-set-' . $fontsSets[$i];
|
731 |
+
}
|
732 |
+
$defaults += array_fill_keys($fontsSets, 1);
|
733 |
+
return $defaults;
|
734 |
+
}
|
735 |
+
|
736 |
+
function getPath() {
|
737 |
+
return dirname(__FILE__) . DIRECTORY_SEPARATOR . 'google' . DIRECTORY_SEPARATOR;
|
738 |
+
}
|
739 |
+
|
740 |
+
function onFontManagerLoad($force = false) {
|
741 |
+
static $loaded;
|
742 |
+
if (!$loaded || $force) {
|
743 |
+
$loaded = true;
|
744 |
+
$settings = N2Fonts::loadSettings();
|
745 |
+
$parameters = $settings['plugins'];
|
746 |
+
|
747 |
+
$parameters->fillDefault(self::getDefaults());
|
748 |
+
|
749 |
+
if ($parameters->get('google-enabled', 1)) {
|
750 |
+
N2GoogleFonts::$enabled = 1;
|
751 |
+
|
752 |
+
for ($i = 100; $i < 1000; $i += 100) {
|
753 |
+
$this->addStyle($parameters, $i);
|
754 |
+
$this->addStyle($parameters, $i . 'italic');
|
755 |
+
}
|
756 |
+
if (empty(self::$styles)) {
|
757 |
+
self::$styles[] = '400';
|
758 |
+
}
|
759 |
+
|
760 |
+
$this->addSubset($parameters, 'latin');
|
761 |
+
$this->addSubset($parameters, 'latin-ext');
|
762 |
+
$this->addSubset($parameters, 'greek');
|
763 |
+
$this->addSubset($parameters, 'greek-ext');
|
764 |
+
$this->addSubset($parameters, 'cyrillic');
|
765 |
+
$this->addSubset($parameters, 'devanagari');
|
766 |
+
$this->addSubset($parameters, 'arabic');
|
767 |
+
$this->addSubset($parameters, 'khmer');
|
768 |
+
$this->addSubset($parameters, 'telugu');
|
769 |
+
$this->addSubset($parameters, 'vietnamese');
|
770 |
+
if (empty(self::$subsets)) {
|
771 |
+
self::$subsets[] = 'latin';
|
772 |
+
}
|
773 |
+
foreach (self::$subsets as $subset) {
|
774 |
+
N2GoogleFonts::addSubset($subset);
|
775 |
+
}
|
776 |
+
N2Pluggable::addAction('fontFamily', array(
|
777 |
+
$this,
|
778 |
+
'onFontFamily'
|
779 |
+
));
|
780 |
+
}
|
781 |
+
}
|
782 |
+
}
|
783 |
+
|
784 |
+
function onFontManagerLoadBackend() {
|
785 |
+
N2JS::addInline('new NextendFontServiceGoogle("' . implode(',', self::$styles) . '","' . implode(',', self::$subsets) . '", ' . json_encode(self::$fonts) . ');');
|
786 |
+
}
|
787 |
+
|
788 |
+
function addStyle($parameters, $weight) {
|
789 |
+
if ($parameters->get('google-style-' . $weight, 0)) {
|
790 |
+
self::$styles[] = $weight;
|
791 |
+
}
|
792 |
+
}
|
793 |
+
|
794 |
+
function addSubset($parameters, $subset) {
|
795 |
+
if ($parameters->get('google-set-' . $subset, 0)) {
|
796 |
+
self::$subsets[] = $subset;
|
797 |
+
}
|
798 |
+
}
|
799 |
+
|
800 |
+
function onFontFamily($family) {
|
801 |
+
if (in_array($family, self::$fonts)) {
|
802 |
+
foreach (self::$styles AS $style) {
|
803 |
+
N2GoogleFonts::addFont($family, $style);
|
804 |
+
}
|
805 |
+
}
|
806 |
+
}
|
807 |
+
}
|
808 |
+
|
809 |
+
N2Plugin::addPlugin('fontservices', 'N2SystemPluginFontServiceGoogle');
|
app/code/community/Nextend2/library/applications/system/plugins/nextendfontservices/google/google/config.xml
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<root>
|
2 |
+
<params name="google-fonts" label="" hidetitle="1">
|
3 |
+
<param type="onoff" name="google-enabled" label="Enabled" default="1"/>
|
4 |
+
<param type="group" label="Style">
|
5 |
+
<param type="onoff" name="google-style-100" label="100" default="0"/>
|
6 |
+
<param type="onoff" name="google-style-100italic" label="100 Italic" default="0"/>
|
7 |
+
<param type="onoff" name="google-style-200" label="200" default="0"/>
|
8 |
+
<param type="onoff" name="google-style-200italic" label="200 Italic" default="0"/>
|
9 |
+
<param type="onoff" name="google-style-300" label="300" default="0"/>
|
10 |
+
<param type="onoff" name="google-style-300italic" label="300 Italic" default="0"/>
|
11 |
+
<param type="onoff" name="google-style-400" label="Normal" default="1"/>
|
12 |
+
<param type="onoff" name="google-style-400italic" label="Normal Italic" default="0"/>
|
13 |
+
<param type="onoff" name="google-style-500" label="500" default="0"/>
|
14 |
+
<param type="onoff" name="google-style-500italic" label="500 Italic" default="0"/>
|
15 |
+
<param type="onoff" name="google-style-600" label="600" default="0"/>
|
16 |
+
<param type="onoff" name="google-style-600italic" label="600 Italic" default="0"/>
|
17 |
+
<param type="onoff" name="google-style-700" label="Bold" default="0"/>
|
18 |
+
<param type="onoff" name="google-style-700italic" label="Bold Italic" default="0"/>
|
19 |
+
<param type="onoff" name="google-style-800" label="800" default="0"/>
|
20 |
+
<param type="onoff" name="google-style-800italic" label="800 Italic" default="0"/>
|
21 |
+
<param type="onoff" name="google-style-900" label="900" default="0"/>
|
22 |
+
<param type="onoff" name="google-style-900italic" label="900 Italic" default="0"/>
|
23 |
+
</param>
|
24 |
+
<param type="group" label="Character set">
|
25 |
+
<param type="onoff" name="google-set-latin" label="Latin" default="1"/>
|
26 |
+
<param type="onoff" name="google-set-latin-ext" label="Latin Extended" default="0"/>
|
27 |
+
<param type="onoff" name="google-set-greek" label="Greek" default="0"/>
|
28 |
+
<param type="onoff" name="google-set-greek-ext" label="Greek Extended" default="0"/>
|
29 |
+
<param type="onoff" name="google-set-cyrillic" label="Cyrillic" default="0"/>
|
30 |
+
<param type="onoff" name="google-set-devanagari" label="Devanagari" default="0"/>
|
31 |
+
<param type="onoff" name="google-set-arabic" label="Arabic" default="0"/>
|
32 |
+
<param type="onoff" name="google-set-khmer" label="Khmer" default="0"/>
|
33 |
+
<param type="onoff" name="google-set-telugu" label="Telugu" default="0"/>
|
34 |
+
<param type="onoff" name="google-set-vietnamese" label="Vietnamese" default="0"/>
|
35 |
+
</param>
|
36 |
+
</params>
|
37 |
+
</root>
|
app/code/community/Nextend2/library/applications/system/plugins/nextendfontservices/loadplugin.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined('N2LIBRARY') or die();
|
3 |
+
|
4 |
+
$dir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
|
5 |
+
foreach (N2Filesystem::folders($dir) AS $folder) {
|
6 |
+
$file = $dir . $folder . DIRECTORY_SEPARATOR . $folder . '.php';
|
7 |
+
if (N2Filesystem::fileexists($file)) {
|
8 |
+
require_once($file);
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Nextend2/library/cacert.pem
ADDED
@@ -0,0 +1,3988 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
##
|
2 |
+
## Bundle of CA Root Certificates
|
3 |
+
##
|
4 |
+
## Certificate data from Mozilla as of: Wed Apr 22 03:12:04 2015
|
5 |
+
##
|
6 |
+
## This is a bundle of X.509 certificates of public Certificate Authorities
|
7 |
+
## (CA). These were automatically extracted from Mozilla's root certificates
|
8 |
+
## file (certdata.txt). This file can be found in the mozilla source tree:
|
9 |
+
## http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
|
10 |
+
##
|
11 |
+
## It contains the certificates in PEM format and therefore
|
12 |
+
## can be directly used with curl / libcurl / php_curl, or with
|
13 |
+
## an Apache+mod_ssl webserver for SSL client authentication.
|
14 |
+
## Just configure this file as the SSLCACertificateFile.
|
15 |
+
##
|
16 |
+
## Conversion done with mk-ca-bundle.pl version 1.25.
|
17 |
+
## SHA1: ed3c0bbfb7912bcc00cd2033b0cb85c98d10559c
|
18 |
+
##
|
19 |
+
|
20 |
+
|
21 |
+
Equifax Secure CA
|
22 |
+
=================
|
23 |
+
-----BEGIN CERTIFICATE-----
|
24 |
+
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
|
25 |
+
ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
|
26 |
+
MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
|
27 |
+
B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
|
28 |
+
nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
|
29 |
+
fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
|
30 |
+
8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
|
31 |
+
A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
|
32 |
+
CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
|
33 |
+
A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
|
34 |
+
spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
|
35 |
+
Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
|
36 |
+
zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
|
37 |
+
BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
|
38 |
+
70+sB3c4
|
39 |
+
-----END CERTIFICATE-----
|
40 |
+
|
41 |
+
GlobalSign Root CA
|
42 |
+
==================
|
43 |
+
-----BEGIN CERTIFICATE-----
|
44 |
+
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
|
45 |
+
GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
|
46 |
+
b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
|
47 |
+
BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
|
48 |
+
VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
|
49 |
+
DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
|
50 |
+
THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
|
51 |
+
Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
|
52 |
+
c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
|
53 |
+
gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
|
54 |
+
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
|
55 |
+
AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
|
56 |
+
Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
|
57 |
+
j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
|
58 |
+
hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
|
59 |
+
X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
|
60 |
+
-----END CERTIFICATE-----
|
61 |
+
|
62 |
+
GlobalSign Root CA - R2
|
63 |
+
=======================
|
64 |
+
-----BEGIN CERTIFICATE-----
|
65 |
+
MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
|
66 |
+
YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
|
67 |
+
bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
|
68 |
+
aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
|
69 |
+
bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
|
70 |
+
ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
|
71 |
+
s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
|
72 |
+
S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
|
73 |
+
TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
|
74 |
+
ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
|
75 |
+
FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
|
76 |
+
YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
|
77 |
+
BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
|
78 |
+
9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
|
79 |
+
01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
|
80 |
+
9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
|
81 |
+
TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
|
82 |
+
-----END CERTIFICATE-----
|
83 |
+
|
84 |
+
Verisign Class 3 Public Primary Certification Authority - G3
|
85 |
+
============================================================
|
86 |
+
-----BEGIN CERTIFICATE-----
|
87 |
+
MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
|
88 |
+
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
89 |
+
cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
90 |
+
IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
|
91 |
+
dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
|
92 |
+
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
|
93 |
+
dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
|
94 |
+
cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
|
95 |
+
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
96 |
+
ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
|
97 |
+
EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
|
98 |
+
cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
|
99 |
+
EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
|
100 |
+
055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
|
101 |
+
ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
|
102 |
+
j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
|
103 |
+
/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
|
104 |
+
xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
|
105 |
+
t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
|
106 |
+
-----END CERTIFICATE-----
|
107 |
+
|
108 |
+
Verisign Class 4 Public Primary Certification Authority - G3
|
109 |
+
============================================================
|
110 |
+
-----BEGIN CERTIFICATE-----
|
111 |
+
MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
|
112 |
+
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
113 |
+
cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
114 |
+
IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
|
115 |
+
dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
|
116 |
+
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
|
117 |
+
dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
|
118 |
+
cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
|
119 |
+
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
120 |
+
ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
|
121 |
+
tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
|
122 |
+
8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
|
123 |
+
Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
|
124 |
+
Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
|
125 |
+
j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
|
126 |
+
mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
|
127 |
+
fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
|
128 |
+
RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
|
129 |
+
UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
|
130 |
+
-----END CERTIFICATE-----
|
131 |
+
|
132 |
+
Entrust.net Premium 2048 Secure Server CA
|
133 |
+
=========================================
|
134 |
+
-----BEGIN CERTIFICATE-----
|
135 |
+
MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
|
136 |
+
ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
|
137 |
+
bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
|
138 |
+
BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
|
139 |
+
NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
|
140 |
+
d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
|
141 |
+
MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
|
142 |
+
ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
143 |
+
MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
|
144 |
+
Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
|
145 |
+
hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
|
146 |
+
nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
|
147 |
+
VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E
|
148 |
+
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ
|
149 |
+
KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy
|
150 |
+
T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
|
151 |
+
zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
|
152 |
+
J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e
|
153 |
+
nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE=
|
154 |
+
-----END CERTIFICATE-----
|
155 |
+
|
156 |
+
Baltimore CyberTrust Root
|
157 |
+
=========================
|
158 |
+
-----BEGIN CERTIFICATE-----
|
159 |
+
MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
|
160 |
+
ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
|
161 |
+
ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
|
162 |
+
SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
|
163 |
+
dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
|
164 |
+
uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
|
165 |
+
UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
|
166 |
+
G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
|
167 |
+
XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
|
168 |
+
l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
|
169 |
+
VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
|
170 |
+
BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
|
171 |
+
cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
|
172 |
+
hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
|
173 |
+
Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
|
174 |
+
RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
|
175 |
+
-----END CERTIFICATE-----
|
176 |
+
|
177 |
+
AddTrust Low-Value Services Root
|
178 |
+
================================
|
179 |
+
-----BEGIN CERTIFICATE-----
|
180 |
+
MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
181 |
+
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
|
182 |
+
cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
|
183 |
+
CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
|
184 |
+
ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
|
185 |
+
AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
|
186 |
+
54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
|
187 |
+
oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
|
188 |
+
Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
|
189 |
+
GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
|
190 |
+
HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
|
191 |
+
AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
|
192 |
+
RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
|
193 |
+
HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
|
194 |
+
ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
|
195 |
+
iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
|
196 |
+
eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
|
197 |
+
mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
|
198 |
+
ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
|
199 |
+
-----END CERTIFICATE-----
|
200 |
+
|
201 |
+
AddTrust External Root
|
202 |
+
======================
|
203 |
+
-----BEGIN CERTIFICATE-----
|
204 |
+
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
205 |
+
QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
|
206 |
+
VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
|
207 |
+
NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
|
208 |
+
cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
|
209 |
+
Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
|
210 |
+
+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
|
211 |
+
Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
|
212 |
+
aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
|
213 |
+
2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
|
214 |
+
7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
|
215 |
+
BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
|
216 |
+
VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
|
217 |
+
VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
|
218 |
+
IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
|
219 |
+
j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
|
220 |
+
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
|
221 |
+
e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
|
222 |
+
G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
223 |
+
-----END CERTIFICATE-----
|
224 |
+
|
225 |
+
AddTrust Public Services Root
|
226 |
+
=============================
|
227 |
+
-----BEGIN CERTIFICATE-----
|
228 |
+
MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
229 |
+
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
|
230 |
+
cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
|
231 |
+
BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
|
232 |
+
dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
|
233 |
+
AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
|
234 |
+
nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
|
235 |
+
d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
|
236 |
+
Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
|
237 |
+
HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
|
238 |
+
A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
|
239 |
+
/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
|
240 |
+
FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
|
241 |
+
A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
|
242 |
+
JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
|
243 |
+
+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
|
244 |
+
GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
|
245 |
+
Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
|
246 |
+
EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
|
247 |
+
-----END CERTIFICATE-----
|
248 |
+
|
249 |
+
AddTrust Qualified Certificates Root
|
250 |
+
====================================
|
251 |
+
-----BEGIN CERTIFICATE-----
|
252 |
+
MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
253 |
+
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
|
254 |
+
cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
|
255 |
+
CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
|
256 |
+
IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
|
257 |
+
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
|
258 |
+
64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
|
259 |
+
KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
|
260 |
+
L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
|
261 |
+
wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
|
262 |
+
MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
|
263 |
+
BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
|
264 |
+
BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
|
265 |
+
azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
|
266 |
+
ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
|
267 |
+
GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
|
268 |
+
dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
|
269 |
+
RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
|
270 |
+
iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
|
271 |
+
-----END CERTIFICATE-----
|
272 |
+
|
273 |
+
Entrust Root Certification Authority
|
274 |
+
====================================
|
275 |
+
-----BEGIN CERTIFICATE-----
|
276 |
+
MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
|
277 |
+
BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
|
278 |
+
b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
|
279 |
+
A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
|
280 |
+
MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
|
281 |
+
MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
|
282 |
+
Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
|
283 |
+
dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
284 |
+
ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
|
285 |
+
A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
|
286 |
+
Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
|
287 |
+
j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
|
288 |
+
rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
|
289 |
+
DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
|
290 |
+
MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
|
291 |
+
hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
|
292 |
+
A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
|
293 |
+
Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
|
294 |
+
v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
|
295 |
+
W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
|
296 |
+
tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
|
297 |
+
-----END CERTIFICATE-----
|
298 |
+
|
299 |
+
RSA Security 2048 v3
|
300 |
+
====================
|
301 |
+
-----BEGIN CERTIFICATE-----
|
302 |
+
MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
|
303 |
+
ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
|
304 |
+
MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
|
305 |
+
BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
306 |
+
AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
|
307 |
+
Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
|
308 |
+
WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
|
309 |
+
KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
|
310 |
+
+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
|
311 |
+
MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
|
312 |
+
FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
|
313 |
+
v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
|
314 |
+
0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
|
315 |
+
VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
|
316 |
+
nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
|
317 |
+
pKnXwiJPZ9d37CAFYd4=
|
318 |
+
-----END CERTIFICATE-----
|
319 |
+
|
320 |
+
GeoTrust Global CA
|
321 |
+
==================
|
322 |
+
-----BEGIN CERTIFICATE-----
|
323 |
+
MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
|
324 |
+
Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
|
325 |
+
MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
|
326 |
+
LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
327 |
+
CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
|
328 |
+
BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
|
329 |
+
8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
|
330 |
+
T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
|
331 |
+
vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
|
332 |
+
AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
|
333 |
+
DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
|
334 |
+
zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
|
335 |
+
d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
|
336 |
+
mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
|
337 |
+
XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
|
338 |
+
Mw==
|
339 |
+
-----END CERTIFICATE-----
|
340 |
+
|
341 |
+
GeoTrust Global CA 2
|
342 |
+
====================
|
343 |
+
-----BEGIN CERTIFICATE-----
|
344 |
+
MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
|
345 |
+
R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
|
346 |
+
MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
|
347 |
+
LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
348 |
+
ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
|
349 |
+
NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
|
350 |
+
LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
|
351 |
+
Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
|
352 |
+
HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
|
353 |
+
MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
|
354 |
+
K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
|
355 |
+
srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
|
356 |
+
ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
|
357 |
+
OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
|
358 |
+
x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
|
359 |
+
H4z1Ir+rzoPz4iIprn2DQKi6bA==
|
360 |
+
-----END CERTIFICATE-----
|
361 |
+
|
362 |
+
GeoTrust Universal CA
|
363 |
+
=====================
|
364 |
+
-----BEGIN CERTIFICATE-----
|
365 |
+
MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
|
366 |
+
R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
|
367 |
+
MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
|
368 |
+
Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
|
369 |
+
ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
|
370 |
+
JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
|
371 |
+
RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
|
372 |
+
7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
|
373 |
+
8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
|
374 |
+
qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
|
375 |
+
Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
|
376 |
+
Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
|
377 |
+
KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
|
378 |
+
ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
|
379 |
+
XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
|
380 |
+
hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
|
381 |
+
aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
|
382 |
+
qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
|
383 |
+
oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
|
384 |
+
xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
|
385 |
+
KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
|
386 |
+
DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
|
387 |
+
xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
|
388 |
+
p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
|
389 |
+
P/rmMuGNG2+k5o7Y+SlIis5z/iw=
|
390 |
+
-----END CERTIFICATE-----
|
391 |
+
|
392 |
+
GeoTrust Universal CA 2
|
393 |
+
=======================
|
394 |
+
-----BEGIN CERTIFICATE-----
|
395 |
+
MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
|
396 |
+
R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
|
397 |
+
MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
|
398 |
+
SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
|
399 |
+
A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
|
400 |
+
DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
|
401 |
+
j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
|
402 |
+
JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
|
403 |
+
QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
|
404 |
+
WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
|
405 |
+
20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
|
406 |
+
ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
|
407 |
+
SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
|
408 |
+
8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
|
409 |
+
+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
|
410 |
+
BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
|
411 |
+
dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
|
412 |
+
4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
|
413 |
+
mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
|
414 |
+
A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
|
415 |
+
Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
|
416 |
+
pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
|
417 |
+
FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
|
418 |
+
gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
|
419 |
+
X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
|
420 |
+
-----END CERTIFICATE-----
|
421 |
+
|
422 |
+
Visa eCommerce Root
|
423 |
+
===================
|
424 |
+
-----BEGIN CERTIFICATE-----
|
425 |
+
MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
|
426 |
+
EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
|
427 |
+
QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
|
428 |
+
WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
|
429 |
+
VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
|
430 |
+
bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
|
431 |
+
F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
|
432 |
+
RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
|
433 |
+
TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
|
434 |
+
/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
|
435 |
+
GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
|
436 |
+
MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
|
437 |
+
CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
|
438 |
+
YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
|
439 |
+
zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
|
440 |
+
YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
|
441 |
+
398znM/jra6O1I7mT1GvFpLgXPYHDw==
|
442 |
+
-----END CERTIFICATE-----
|
443 |
+
|
444 |
+
Certum Root CA
|
445 |
+
==============
|
446 |
+
-----BEGIN CERTIFICATE-----
|
447 |
+
MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
|
448 |
+
ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
|
449 |
+
Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
|
450 |
+
by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
|
451 |
+
wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
|
452 |
+
kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
|
453 |
+
89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
|
454 |
+
Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
|
455 |
+
NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
|
456 |
+
hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
|
457 |
+
GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
|
458 |
+
GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
|
459 |
+
0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
|
460 |
+
qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
|
461 |
+
-----END CERTIFICATE-----
|
462 |
+
|
463 |
+
Comodo AAA Services root
|
464 |
+
========================
|
465 |
+
-----BEGIN CERTIFICATE-----
|
466 |
+
MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
|
467 |
+
R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
|
468 |
+
TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
|
469 |
+
MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
|
470 |
+
c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
|
471 |
+
BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
472 |
+
ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
|
473 |
+
C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
|
474 |
+
i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
|
475 |
+
Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
|
476 |
+
Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
|
477 |
+
Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
|
478 |
+
BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
|
479 |
+
cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
|
480 |
+
LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
|
481 |
+
7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
|
482 |
+
Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
|
483 |
+
8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
|
484 |
+
12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
|
485 |
+
-----END CERTIFICATE-----
|
486 |
+
|
487 |
+
Comodo Secure Services root
|
488 |
+
===========================
|
489 |
+
-----BEGIN CERTIFICATE-----
|
490 |
+
MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
|
491 |
+
R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
|
492 |
+
TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
|
493 |
+
MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
|
494 |
+
Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
|
495 |
+
BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
496 |
+
ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
|
497 |
+
9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
|
498 |
+
rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
|
499 |
+
oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
|
500 |
+
p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
|
501 |
+
FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
|
502 |
+
gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
|
503 |
+
YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
|
504 |
+
aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
|
505 |
+
4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
|
506 |
+
Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
|
507 |
+
DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
|
508 |
+
pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
|
509 |
+
RR3B7Hzs/Sk=
|
510 |
+
-----END CERTIFICATE-----
|
511 |
+
|
512 |
+
Comodo Trusted Services root
|
513 |
+
============================
|
514 |
+
-----BEGIN CERTIFICATE-----
|
515 |
+
MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
|
516 |
+
R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
|
517 |
+
TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
|
518 |
+
MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
|
519 |
+
bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
|
520 |
+
IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
521 |
+
AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
|
522 |
+
3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
|
523 |
+
/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
|
524 |
+
juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
|
525 |
+
ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
|
526 |
+
DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
|
527 |
+
/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
|
528 |
+
ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
|
529 |
+
cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
|
530 |
+
uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
|
531 |
+
pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
|
532 |
+
BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
|
533 |
+
R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
|
534 |
+
9y5Xt5hwXsjEeLBi
|
535 |
+
-----END CERTIFICATE-----
|
536 |
+
|
537 |
+
QuoVadis Root CA
|
538 |
+
================
|
539 |
+
-----BEGIN CERTIFICATE-----
|
540 |
+
MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
|
541 |
+
ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
|
542 |
+
eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
|
543 |
+
MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
|
544 |
+
cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
|
545 |
+
EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
|
546 |
+
AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
|
547 |
+
J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
|
548 |
+
F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
|
549 |
+
YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
|
550 |
+
AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
|
551 |
+
PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
|
552 |
+
ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
|
553 |
+
MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
|
554 |
+
YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
|
555 |
+
ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
|
556 |
+
Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
|
557 |
+
Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
|
558 |
+
BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
|
559 |
+
FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
|
560 |
+
aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
|
561 |
+
tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
|
562 |
+
fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
|
563 |
+
LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
|
564 |
+
gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
|
565 |
+
5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
|
566 |
+
5nrQNiOKSnQ2+Q==
|
567 |
+
-----END CERTIFICATE-----
|
568 |
+
|
569 |
+
QuoVadis Root CA 2
|
570 |
+
==================
|
571 |
+
-----BEGIN CERTIFICATE-----
|
572 |
+
MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
|
573 |
+
EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx
|
574 |
+
ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
|
575 |
+
aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC
|
576 |
+
DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6
|
577 |
+
XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk
|
578 |
+
lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB
|
579 |
+
lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy
|
580 |
+
lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt
|
581 |
+
66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn
|
582 |
+
wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh
|
583 |
+
D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy
|
584 |
+
BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie
|
585 |
+
J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud
|
586 |
+
DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU
|
587 |
+
a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
|
588 |
+
ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv
|
589 |
+
Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3
|
590 |
+
UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm
|
591 |
+
VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK
|
592 |
+
+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW
|
593 |
+
IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1
|
594 |
+
WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X
|
595 |
+
f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II
|
596 |
+
4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8
|
597 |
+
VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
|
598 |
+
-----END CERTIFICATE-----
|
599 |
+
|
600 |
+
QuoVadis Root CA 3
|
601 |
+
==================
|
602 |
+
-----BEGIN CERTIFICATE-----
|
603 |
+
MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
|
604 |
+
EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
|
605 |
+
OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
|
606 |
+
aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
|
607 |
+
DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
|
608 |
+
DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
|
609 |
+
KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
|
610 |
+
DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
|
611 |
+
BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
|
612 |
+
p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
|
613 |
+
nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
|
614 |
+
MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
|
615 |
+
Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
|
616 |
+
uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
|
617 |
+
BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
|
618 |
+
YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
|
619 |
+
aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
|
620 |
+
BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
|
621 |
+
VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
|
622 |
+
ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
|
623 |
+
AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
|
624 |
+
qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
|
625 |
+
hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
|
626 |
+
POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
|
627 |
+
Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
|
628 |
+
8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
|
629 |
+
bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
|
630 |
+
g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
|
631 |
+
vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
|
632 |
+
qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
|
633 |
+
-----END CERTIFICATE-----
|
634 |
+
|
635 |
+
Security Communication Root CA
|
636 |
+
==============================
|
637 |
+
-----BEGIN CERTIFICATE-----
|
638 |
+
MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
|
639 |
+
U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
|
640 |
+
HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
|
641 |
+
U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
|
642 |
+
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
|
643 |
+
8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
|
644 |
+
DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
|
645 |
+
5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
|
646 |
+
DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
|
647 |
+
JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
|
648 |
+
DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
|
649 |
+
0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
|
650 |
+
mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
|
651 |
+
s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
|
652 |
+
6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
|
653 |
+
FL39vmwLAw==
|
654 |
+
-----END CERTIFICATE-----
|
655 |
+
|
656 |
+
Sonera Class 2 Root CA
|
657 |
+
======================
|
658 |
+
-----BEGIN CERTIFICATE-----
|
659 |
+
MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
|
660 |
+
U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
|
661 |
+
NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
|
662 |
+
IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
|
663 |
+
/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
|
664 |
+
dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
|
665 |
+
f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
|
666 |
+
tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
|
667 |
+
nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
|
668 |
+
XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
|
669 |
+
0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
|
670 |
+
cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
|
671 |
+
Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
|
672 |
+
EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
|
673 |
+
llpwrN9M
|
674 |
+
-----END CERTIFICATE-----
|
675 |
+
|
676 |
+
Staat der Nederlanden Root CA
|
677 |
+
=============================
|
678 |
+
-----BEGIN CERTIFICATE-----
|
679 |
+
MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
|
680 |
+
ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
|
681 |
+
Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
|
682 |
+
HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
|
683 |
+
bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
|
684 |
+
vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
|
685 |
+
jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
|
686 |
+
C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
|
687 |
+
vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
|
688 |
+
22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
|
689 |
+
HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
|
690 |
+
dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
|
691 |
+
BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
|
692 |
+
EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
|
693 |
+
MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
|
694 |
+
nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
|
695 |
+
iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
|
696 |
+
-----END CERTIFICATE-----
|
697 |
+
|
698 |
+
UTN DATACorp SGC Root CA
|
699 |
+
========================
|
700 |
+
-----BEGIN CERTIFICATE-----
|
701 |
+
MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
|
702 |
+
BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
|
703 |
+
IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
|
704 |
+
BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
|
705 |
+
MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
|
706 |
+
HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
|
707 |
+
dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
708 |
+
AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
|
709 |
+
raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
|
710 |
+
wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
|
711 |
+
9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
|
712 |
+
33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
|
713 |
+
DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
|
714 |
+
BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
|
715 |
+
LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
|
716 |
+
DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
|
717 |
+
Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
|
718 |
+
I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
|
719 |
+
EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
|
720 |
+
DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
|
721 |
+
-----END CERTIFICATE-----
|
722 |
+
|
723 |
+
UTN USERFirst Hardware Root CA
|
724 |
+
==============================
|
725 |
+
-----BEGIN CERTIFICATE-----
|
726 |
+
MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
|
727 |
+
BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
|
728 |
+
IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
|
729 |
+
BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
|
730 |
+
OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
|
731 |
+
eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
|
732 |
+
ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
|
733 |
+
DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
|
734 |
+
wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
|
735 |
+
tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
|
736 |
+
i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
|
737 |
+
Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
|
738 |
+
gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
|
739 |
+
lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
|
740 |
+
UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
|
741 |
+
BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
|
742 |
+
//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
|
743 |
+
XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
|
744 |
+
lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
|
745 |
+
iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
|
746 |
+
nfhmqA==
|
747 |
+
-----END CERTIFICATE-----
|
748 |
+
|
749 |
+
Camerfirma Chambers of Commerce Root
|
750 |
+
====================================
|
751 |
+
-----BEGIN CERTIFICATE-----
|
752 |
+
MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
|
753 |
+
QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
|
754 |
+
ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
|
755 |
+
NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
|
756 |
+
cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
|
757 |
+
MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
|
758 |
+
AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
|
759 |
+
xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
|
760 |
+
NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
|
761 |
+
DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
|
762 |
+
d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
|
763 |
+
EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
|
764 |
+
cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
|
765 |
+
AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
|
766 |
+
bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
|
767 |
+
VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
|
768 |
+
aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
|
769 |
+
fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
|
770 |
+
L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
|
771 |
+
UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
|
772 |
+
ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
|
773 |
+
erfutGWaIZDgqtCYvDi1czyL+Nw=
|
774 |
+
-----END CERTIFICATE-----
|
775 |
+
|
776 |
+
Camerfirma Global Chambersign Root
|
777 |
+
==================================
|
778 |
+
-----BEGIN CERTIFICATE-----
|
779 |
+
MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
|
780 |
+
QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
|
781 |
+
ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
|
782 |
+
NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
|
783 |
+
YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
|
784 |
+
MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
|
785 |
+
ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
|
786 |
+
1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
|
787 |
+
by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
|
788 |
+
6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
|
789 |
+
8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
|
790 |
+
BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
|
791 |
+
aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
|
792 |
+
Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
|
793 |
+
aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
|
794 |
+
ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
|
795 |
+
bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
|
796 |
+
PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
|
797 |
+
gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
|
798 |
+
PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
|
799 |
+
IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
|
800 |
+
t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
|
801 |
+
-----END CERTIFICATE-----
|
802 |
+
|
803 |
+
NetLock Notary (Class A) Root
|
804 |
+
=============================
|
805 |
+
-----BEGIN CERTIFICATE-----
|
806 |
+
MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
|
807 |
+
EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
|
808 |
+
dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
|
809 |
+
ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
|
810 |
+
DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
|
811 |
+
EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
|
812 |
+
VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
|
813 |
+
cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
|
814 |
+
D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
|
815 |
+
z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
|
816 |
+
/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
|
817 |
+
tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
|
818 |
+
4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
|
819 |
+
A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
|
820 |
+
Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
|
821 |
+
bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
|
822 |
+
IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
|
823 |
+
LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
|
824 |
+
ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
|
825 |
+
IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
|
826 |
+
IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
|
827 |
+
b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
|
828 |
+
bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
|
829 |
+
Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
|
830 |
+
bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
|
831 |
+
ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
|
832 |
+
ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
|
833 |
+
CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
|
834 |
+
KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
|
835 |
+
8CgHrTwXZoi1/baI
|
836 |
+
-----END CERTIFICATE-----
|
837 |
+
|
838 |
+
XRamp Global CA Root
|
839 |
+
====================
|
840 |
+
-----BEGIN CERTIFICATE-----
|
841 |
+
MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
|
842 |
+
BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
|
843 |
+
dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
|
844 |
+
dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
|
845 |
+
HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
|
846 |
+
U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
847 |
+
dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
|
848 |
+
IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
|
849 |
+
foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
|
850 |
+
zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
|
851 |
+
AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
|
852 |
+
xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
|
853 |
+
EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
|
854 |
+
oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
|
855 |
+
AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
|
856 |
+
/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
|
857 |
+
qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
|
858 |
+
nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
|
859 |
+
8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
|
860 |
+
-----END CERTIFICATE-----
|
861 |
+
|
862 |
+
Go Daddy Class 2 CA
|
863 |
+
===================
|
864 |
+
-----BEGIN CERTIFICATE-----
|
865 |
+
MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
|
866 |
+
VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
|
867 |
+
ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
|
868 |
+
A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
|
869 |
+
RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
|
870 |
+
ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
|
871 |
+
2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
|
872 |
+
qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
|
873 |
+
YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
|
874 |
+
vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
|
875 |
+
BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
|
876 |
+
atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
|
877 |
+
MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
|
878 |
+
A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
|
879 |
+
PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
|
880 |
+
I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
|
881 |
+
HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
|
882 |
+
Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
|
883 |
+
vZ8=
|
884 |
+
-----END CERTIFICATE-----
|
885 |
+
|
886 |
+
Starfield Class 2 CA
|
887 |
+
====================
|
888 |
+
-----BEGIN CERTIFICATE-----
|
889 |
+
MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
|
890 |
+
U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
|
891 |
+
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
|
892 |
+
MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
|
893 |
+
A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
|
894 |
+
SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
|
895 |
+
bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
|
896 |
+
JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
|
897 |
+
epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
|
898 |
+
F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
|
899 |
+
MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
|
900 |
+
hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
|
901 |
+
bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
|
902 |
+
QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
|
903 |
+
afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
|
904 |
+
PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
|
905 |
+
xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
|
906 |
+
KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
|
907 |
+
QBFGmh95DmK/D5fs4C8fF5Q=
|
908 |
+
-----END CERTIFICATE-----
|
909 |
+
|
910 |
+
StartCom Certification Authority
|
911 |
+
================================
|
912 |
+
-----BEGIN CERTIFICATE-----
|
913 |
+
MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
|
914 |
+
U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
|
915 |
+
ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
|
916 |
+
NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
|
917 |
+
LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
|
918 |
+
U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
|
919 |
+
ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
|
920 |
+
o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
|
921 |
+
Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
|
922 |
+
eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
|
923 |
+
2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
|
924 |
+
6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
|
925 |
+
osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
|
926 |
+
untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
|
927 |
+
UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
|
928 |
+
37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
|
929 |
+
FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
|
930 |
+
Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
|
931 |
+
YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
|
932 |
+
AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
|
933 |
+
Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
|
934 |
+
U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
|
935 |
+
LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
|
936 |
+
cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
|
937 |
+
cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
|
938 |
+
dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
|
939 |
+
AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
|
940 |
+
3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
|
941 |
+
vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
|
942 |
+
fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
|
943 |
+
fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
|
944 |
+
EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
|
945 |
+
yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
|
946 |
+
1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
|
947 |
+
lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
|
948 |
+
g14=
|
949 |
+
-----END CERTIFICATE-----
|
950 |
+
|
951 |
+
Taiwan GRCA
|
952 |
+
===========
|
953 |
+
-----BEGIN CERTIFICATE-----
|
954 |
+
MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG
|
955 |
+
EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
|
956 |
+
DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv
|
957 |
+
dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD
|
958 |
+
ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN
|
959 |
+
w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5
|
960 |
+
BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O
|
961 |
+
1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO
|
962 |
+
htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov
|
963 |
+
J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7
|
964 |
+
Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t
|
965 |
+
B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB
|
966 |
+
O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8
|
967 |
+
lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV
|
968 |
+
HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2
|
969 |
+
09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
|
970 |
+
TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj
|
971 |
+
Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2
|
972 |
+
Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU
|
973 |
+
D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz
|
974 |
+
DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk
|
975 |
+
Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk
|
976 |
+
7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ
|
977 |
+
CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
|
978 |
+
+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
|
979 |
+
-----END CERTIFICATE-----
|
980 |
+
|
981 |
+
Swisscom Root CA 1
|
982 |
+
==================
|
983 |
+
-----BEGIN CERTIFICATE-----
|
984 |
+
MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG
|
985 |
+
EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
|
986 |
+
dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4
|
987 |
+
MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
|
988 |
+
aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC
|
989 |
+
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM
|
990 |
+
MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF
|
991 |
+
NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe
|
992 |
+
AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC
|
993 |
+
b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn
|
994 |
+
7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN
|
995 |
+
cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp
|
996 |
+
WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5
|
997 |
+
haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY
|
998 |
+
MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
|
999 |
+
HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
|
1000 |
+
BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9
|
1001 |
+
MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn
|
1002 |
+
jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ
|
1003 |
+
MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H
|
1004 |
+
VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl
|
1005 |
+
vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl
|
1006 |
+
OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3
|
1007 |
+
1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq
|
1008 |
+
nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy
|
1009 |
+
x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW
|
1010 |
+
NY6E0F/6MBr1mmz0DlP5OlvRHA==
|
1011 |
+
-----END CERTIFICATE-----
|
1012 |
+
|
1013 |
+
DigiCert Assured ID Root CA
|
1014 |
+
===========================
|
1015 |
+
-----BEGIN CERTIFICATE-----
|
1016 |
+
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
|
1017 |
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
|
1018 |
+
IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
|
1019 |
+
MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
|
1020 |
+
ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
|
1021 |
+
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
|
1022 |
+
9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
|
1023 |
+
UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
|
1024 |
+
/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
|
1025 |
+
oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
|
1026 |
+
GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
|
1027 |
+
66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
|
1028 |
+
hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
|
1029 |
+
EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
|
1030 |
+
SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
|
1031 |
+
8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
|
1032 |
+
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
|
1033 |
+
-----END CERTIFICATE-----
|
1034 |
+
|
1035 |
+
DigiCert Global Root CA
|
1036 |
+
=======================
|
1037 |
+
-----BEGIN CERTIFICATE-----
|
1038 |
+
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
|
1039 |
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
|
1040 |
+
HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
|
1041 |
+
MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
|
1042 |
+
dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
|
1043 |
+
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
|
1044 |
+
TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
|
1045 |
+
BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
|
1046 |
+
4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
|
1047 |
+
7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
|
1048 |
+
o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
|
1049 |
+
8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
|
1050 |
+
BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
|
1051 |
+
EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
|
1052 |
+
tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
|
1053 |
+
UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
|
1054 |
+
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
|
1055 |
+
-----END CERTIFICATE-----
|
1056 |
+
|
1057 |
+
DigiCert High Assurance EV Root CA
|
1058 |
+
==================================
|
1059 |
+
-----BEGIN CERTIFICATE-----
|
1060 |
+
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
|
1061 |
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
|
1062 |
+
KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
|
1063 |
+
MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
|
1064 |
+
MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
|
1065 |
+
Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
|
1066 |
+
Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
|
1067 |
+
OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
|
1068 |
+
MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
|
1069 |
+
NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
|
1070 |
+
h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
|
1071 |
+
Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
|
1072 |
+
JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
|
1073 |
+
V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
|
1074 |
+
myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
|
1075 |
+
mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
1076 |
+
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
|
1077 |
+
-----END CERTIFICATE-----
|
1078 |
+
|
1079 |
+
Certplus Class 2 Primary CA
|
1080 |
+
===========================
|
1081 |
+
-----BEGIN CERTIFICATE-----
|
1082 |
+
MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
|
1083 |
+
BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
|
1084 |
+
OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
|
1085 |
+
dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
1086 |
+
ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
|
1087 |
+
5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
|
1088 |
+
Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
|
1089 |
+
YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
|
1090 |
+
e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
|
1091 |
+
CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
|
1092 |
+
YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
|
1093 |
+
L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
|
1094 |
+
P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
|
1095 |
+
TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
|
1096 |
+
7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
|
1097 |
+
//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
|
1098 |
+
l7+ijrRU
|
1099 |
+
-----END CERTIFICATE-----
|
1100 |
+
|
1101 |
+
DST Root CA X3
|
1102 |
+
==============
|
1103 |
+
-----BEGIN CERTIFICATE-----
|
1104 |
+
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
|
1105 |
+
ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
|
1106 |
+
DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
|
1107 |
+
cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
|
1108 |
+
ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
|
1109 |
+
rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
|
1110 |
+
UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
|
1111 |
+
xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
|
1112 |
+
utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
|
1113 |
+
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
|
1114 |
+
MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
|
1115 |
+
dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
|
1116 |
+
GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
|
1117 |
+
RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
|
1118 |
+
fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
|
1119 |
+
-----END CERTIFICATE-----
|
1120 |
+
|
1121 |
+
DST ACES CA X6
|
1122 |
+
==============
|
1123 |
+
-----BEGIN CERTIFICATE-----
|
1124 |
+
MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
|
1125 |
+
EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
|
1126 |
+
MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
|
1127 |
+
MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
|
1128 |
+
CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
|
1129 |
+
AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
|
1130 |
+
DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
|
1131 |
+
pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
|
1132 |
+
GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
|
1133 |
+
MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
|
1134 |
+
EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
|
1135 |
+
Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
|
1136 |
+
dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
|
1137 |
+
CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
|
1138 |
+
5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
|
1139 |
+
Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
|
1140 |
+
nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
|
1141 |
+
vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
|
1142 |
+
oKfN5XozNmr6mis=
|
1143 |
+
-----END CERTIFICATE-----
|
1144 |
+
|
1145 |
+
TURKTRUST Certificate Services Provider Root 1
|
1146 |
+
==============================================
|
1147 |
+
-----BEGIN CERTIFICATE-----
|
1148 |
+
MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
|
1149 |
+
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP
|
1150 |
+
MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0
|
1151 |
+
acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx
|
1152 |
+
MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg
|
1153 |
+
U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB
|
1154 |
+
TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC
|
1155 |
+
aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
1156 |
+
AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX
|
1157 |
+
yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i
|
1158 |
+
Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ
|
1159 |
+
8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4
|
1160 |
+
W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME
|
1161 |
+
BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46
|
1162 |
+
sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE
|
1163 |
+
q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
|
1164 |
+
B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY
|
1165 |
+
nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H
|
1166 |
+
-----END CERTIFICATE-----
|
1167 |
+
|
1168 |
+
TURKTRUST Certificate Services Provider Root 2
|
1169 |
+
==============================================
|
1170 |
+
-----BEGIN CERTIFICATE-----
|
1171 |
+
MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
|
1172 |
+
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
|
1173 |
+
MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
|
1174 |
+
QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
|
1175 |
+
MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
|
1176 |
+
dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
|
1177 |
+
A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
|
1178 |
+
acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
|
1179 |
+
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
|
1180 |
+
LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
|
1181 |
+
x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
|
1182 |
+
QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
|
1183 |
+
5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
|
1184 |
+
AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
|
1185 |
+
A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
|
1186 |
+
Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
|
1187 |
+
Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
|
1188 |
+
hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
|
1189 |
+
9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
|
1190 |
+
UrbnBEI=
|
1191 |
+
-----END CERTIFICATE-----
|
1192 |
+
|
1193 |
+
SwissSign Gold CA - G2
|
1194 |
+
======================
|
1195 |
+
-----BEGIN CERTIFICATE-----
|
1196 |
+
MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw
|
1197 |
+
EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN
|
1198 |
+
MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp
|
1199 |
+
c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B
|
1200 |
+
AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq
|
1201 |
+
t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C
|
1202 |
+
jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg
|
1203 |
+
vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF
|
1204 |
+
ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR
|
1205 |
+
AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend
|
1206 |
+
jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO
|
1207 |
+
peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR
|
1208 |
+
7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi
|
1209 |
+
GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw
|
1210 |
+
AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64
|
1211 |
+
OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
|
1212 |
+
L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm
|
1213 |
+
5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr
|
1214 |
+
44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf
|
1215 |
+
Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m
|
1216 |
+
Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp
|
1217 |
+
mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk
|
1218 |
+
vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf
|
1219 |
+
KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br
|
1220 |
+
NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj
|
1221 |
+
viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
|
1222 |
+
-----END CERTIFICATE-----
|
1223 |
+
|
1224 |
+
SwissSign Silver CA - G2
|
1225 |
+
========================
|
1226 |
+
-----BEGIN CERTIFICATE-----
|
1227 |
+
MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT
|
1228 |
+
BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X
|
1229 |
+
DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
|
1230 |
+
aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
|
1231 |
+
9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644
|
1232 |
+
N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm
|
1233 |
+
+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH
|
1234 |
+
6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu
|
1235 |
+
MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h
|
1236 |
+
qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5
|
1237 |
+
FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs
|
1238 |
+
ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc
|
1239 |
+
celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X
|
1240 |
+
CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
|
1241 |
+
BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
|
1242 |
+
tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
|
1243 |
+
cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P
|
1244 |
+
4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F
|
1245 |
+
kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L
|
1246 |
+
3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx
|
1247 |
+
/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa
|
1248 |
+
DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP
|
1249 |
+
e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu
|
1250 |
+
WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ
|
1251 |
+
DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
|
1252 |
+
DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
|
1253 |
+
-----END CERTIFICATE-----
|
1254 |
+
|
1255 |
+
GeoTrust Primary Certification Authority
|
1256 |
+
========================================
|
1257 |
+
-----BEGIN CERTIFICATE-----
|
1258 |
+
MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
|
1259 |
+
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
|
1260 |
+
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
|
1261 |
+
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
|
1262 |
+
cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
1263 |
+
CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
|
1264 |
+
b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
|
1265 |
+
nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
|
1266 |
+
RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
|
1267 |
+
tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
1268 |
+
AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
|
1269 |
+
hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
|
1270 |
+
Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
|
1271 |
+
NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
|
1272 |
+
Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
|
1273 |
+
1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
|
1274 |
+
-----END CERTIFICATE-----
|
1275 |
+
|
1276 |
+
thawte Primary Root CA
|
1277 |
+
======================
|
1278 |
+
-----BEGIN CERTIFICATE-----
|
1279 |
+
MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
|
1280 |
+
BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
|
1281 |
+
aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
|
1282 |
+
cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
|
1283 |
+
MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
|
1284 |
+
SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
|
1285 |
+
KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
|
1286 |
+
FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
|
1287 |
+
oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
|
1288 |
+
1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
|
1289 |
+
q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
|
1290 |
+
aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
|
1291 |
+
afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
|
1292 |
+
VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
|
1293 |
+
AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
|
1294 |
+
uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
|
1295 |
+
xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
|
1296 |
+
jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
|
1297 |
+
z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
|
1298 |
+
-----END CERTIFICATE-----
|
1299 |
+
|
1300 |
+
VeriSign Class 3 Public Primary Certification Authority - G5
|
1301 |
+
============================================================
|
1302 |
+
-----BEGIN CERTIFICATE-----
|
1303 |
+
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
|
1304 |
+
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
|
1305 |
+
ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
|
1306 |
+
IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
|
1307 |
+
ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
|
1308 |
+
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
|
1309 |
+
biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
|
1310 |
+
dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
|
1311 |
+
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
1312 |
+
ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
|
1313 |
+
j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
|
1314 |
+
Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
|
1315 |
+
Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
|
1316 |
+
fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
|
1317 |
+
BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
|
1318 |
+
Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
1319 |
+
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
|
1320 |
+
SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
|
1321 |
+
X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
|
1322 |
+
KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
|
1323 |
+
Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
|
1324 |
+
ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
1325 |
+
-----END CERTIFICATE-----
|
1326 |
+
|
1327 |
+
SecureTrust CA
|
1328 |
+
==============
|
1329 |
+
-----BEGIN CERTIFICATE-----
|
1330 |
+
MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
|
1331 |
+
EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
|
1332 |
+
dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
|
1333 |
+
BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
|
1334 |
+
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
|
1335 |
+
OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
|
1336 |
+
DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
|
1337 |
+
GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
|
1338 |
+
01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
|
1339 |
+
ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
|
1340 |
+
BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
|
1341 |
+
aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
|
1342 |
+
KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
|
1343 |
+
SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
|
1344 |
+
mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
|
1345 |
+
nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
|
1346 |
+
3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
|
1347 |
+
-----END CERTIFICATE-----
|
1348 |
+
|
1349 |
+
Secure Global CA
|
1350 |
+
================
|
1351 |
+
-----BEGIN CERTIFICATE-----
|
1352 |
+
MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
|
1353 |
+
EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
|
1354 |
+
bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
|
1355 |
+
MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
|
1356 |
+
Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
|
1357 |
+
YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
|
1358 |
+
bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
|
1359 |
+
8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
|
1360 |
+
HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
|
1361 |
+
0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
|
1362 |
+
EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
|
1363 |
+
oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
|
1364 |
+
MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
|
1365 |
+
OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
|
1366 |
+
CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
|
1367 |
+
3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
|
1368 |
+
f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
|
1369 |
+
-----END CERTIFICATE-----
|
1370 |
+
|
1371 |
+
COMODO Certification Authority
|
1372 |
+
==============================
|
1373 |
+
-----BEGIN CERTIFICATE-----
|
1374 |
+
MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
|
1375 |
+
BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
|
1376 |
+
A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
|
1377 |
+
dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
|
1378 |
+
MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
|
1379 |
+
T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
1380 |
+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
|
1381 |
+
+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
|
1382 |
+
xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
|
1383 |
+
4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
|
1384 |
+
1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
|
1385 |
+
rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
|
1386 |
+
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
|
1387 |
+
b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
|
1388 |
+
AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
|
1389 |
+
OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
|
1390 |
+
RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
|
1391 |
+
IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
|
1392 |
+
+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
|
1393 |
+
-----END CERTIFICATE-----
|
1394 |
+
|
1395 |
+
Network Solutions Certificate Authority
|
1396 |
+
=======================================
|
1397 |
+
-----BEGIN CERTIFICATE-----
|
1398 |
+
MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
|
1399 |
+
EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
|
1400 |
+
IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
|
1401 |
+
MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
|
1402 |
+
MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
|
1403 |
+
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
|
1404 |
+
jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
|
1405 |
+
aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
|
1406 |
+
crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
|
1407 |
+
/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
|
1408 |
+
AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
|
1409 |
+
BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
|
1410 |
+
bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
|
1411 |
+
A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
|
1412 |
+
4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
|
1413 |
+
GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
|
1414 |
+
wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
|
1415 |
+
ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
|
1416 |
+
-----END CERTIFICATE-----
|
1417 |
+
|
1418 |
+
WellsSecure Public Root Certificate Authority
|
1419 |
+
=============================================
|
1420 |
+
-----BEGIN CERTIFICATE-----
|
1421 |
+
MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
|
1422 |
+
F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
|
1423 |
+
NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
|
1424 |
+
MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
|
1425 |
+
bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
|
1426 |
+
VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
|
1427 |
+
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
|
1428 |
+
iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
|
1429 |
+
i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
|
1430 |
+
bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
|
1431 |
+
K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
|
1432 |
+
AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
|
1433 |
+
cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
|
1434 |
+
lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
|
1435 |
+
i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
|
1436 |
+
GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
|
1437 |
+
Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
|
1438 |
+
K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
|
1439 |
+
bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
|
1440 |
+
qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
|
1441 |
+
E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
|
1442 |
+
tylv2G0xffX8oRAHh84vWdw+WNs=
|
1443 |
+
-----END CERTIFICATE-----
|
1444 |
+
|
1445 |
+
COMODO ECC Certification Authority
|
1446 |
+
==================================
|
1447 |
+
-----BEGIN CERTIFICATE-----
|
1448 |
+
MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
|
1449 |
+
R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
|
1450 |
+
ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
|
1451 |
+
dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
|
1452 |
+
GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
|
1453 |
+
Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
|
1454 |
+
b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
|
1455 |
+
4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
|
1456 |
+
wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
|
1457 |
+
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
|
1458 |
+
FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
|
1459 |
+
U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
|
1460 |
+
-----END CERTIFICATE-----
|
1461 |
+
|
1462 |
+
IGC/A
|
1463 |
+
=====
|
1464 |
+
-----BEGIN CERTIFICATE-----
|
1465 |
+
MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
|
1466 |
+
VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
|
1467 |
+
Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
|
1468 |
+
MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
|
1469 |
+
EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
|
1470 |
+
STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
|
1471 |
+
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
|
1472 |
+
TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
|
1473 |
+
So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
|
1474 |
+
HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
|
1475 |
+
frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
|
1476 |
+
tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
|
1477 |
+
egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
|
1478 |
+
iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
|
1479 |
+
q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
|
1480 |
+
MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
|
1481 |
+
Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
|
1482 |
+
lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
|
1483 |
+
0mBWWg==
|
1484 |
+
-----END CERTIFICATE-----
|
1485 |
+
|
1486 |
+
Security Communication EV RootCA1
|
1487 |
+
=================================
|
1488 |
+
-----BEGIN CERTIFICATE-----
|
1489 |
+
MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
|
1490 |
+
U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
|
1491 |
+
dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
|
1492 |
+
BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
|
1493 |
+
Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
1494 |
+
AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
|
1495 |
+
/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
|
1496 |
+
WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
|
1497 |
+
ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
|
1498 |
+
bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
|
1499 |
+
9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
|
1500 |
+
SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
|
1501 |
+
iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
|
1502 |
+
Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
|
1503 |
+
mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
|
1504 |
+
T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
|
1505 |
+
-----END CERTIFICATE-----
|
1506 |
+
|
1507 |
+
OISTE WISeKey Global Root GA CA
|
1508 |
+
===============================
|
1509 |
+
-----BEGIN CERTIFICATE-----
|
1510 |
+
MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
|
1511 |
+
BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
|
1512 |
+
A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
|
1513 |
+
bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
|
1514 |
+
VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
|
1515 |
+
IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
|
1516 |
+
IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
|
1517 |
+
Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
|
1518 |
+
Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
|
1519 |
+
d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
|
1520 |
+
/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
|
1521 |
+
LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
|
1522 |
+
AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
|
1523 |
+
KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
|
1524 |
+
MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
|
1525 |
+
+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
|
1526 |
+
hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
|
1527 |
+
okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
|
1528 |
+
-----END CERTIFICATE-----
|
1529 |
+
|
1530 |
+
Microsec e-Szigno Root CA
|
1531 |
+
=========================
|
1532 |
+
-----BEGIN CERTIFICATE-----
|
1533 |
+
MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
|
1534 |
+
BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
|
1535 |
+
EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
|
1536 |
+
MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
|
1537 |
+
dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
|
1538 |
+
GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
1539 |
+
AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
|
1540 |
+
d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
|
1541 |
+
oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
|
1542 |
+
QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
|
1543 |
+
PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
|
1544 |
+
MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
|
1545 |
+
IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
|
1546 |
+
VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
|
1547 |
+
LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
|
1548 |
+
dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
|
1549 |
+
AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
|
1550 |
+
4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
|
1551 |
+
AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
|
1552 |
+
egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
|
1553 |
+
Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
|
1554 |
+
PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
|
1555 |
+
c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
|
1556 |
+
cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
|
1557 |
+
IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
|
1558 |
+
WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
|
1559 |
+
MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
|
1560 |
+
MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
|
1561 |
+
Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
|
1562 |
+
HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
|
1563 |
+
nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
|
1564 |
+
aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
|
1565 |
+
86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
|
1566 |
+
yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
|
1567 |
+
S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
|
1568 |
+
-----END CERTIFICATE-----
|
1569 |
+
|
1570 |
+
Certigna
|
1571 |
+
========
|
1572 |
+
-----BEGIN CERTIFICATE-----
|
1573 |
+
MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
|
1574 |
+
EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
|
1575 |
+
MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
|
1576 |
+
Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
|
1577 |
+
XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
|
1578 |
+
GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
|
1579 |
+
ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
|
1580 |
+
DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
|
1581 |
+
Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
|
1582 |
+
tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
|
1583 |
+
BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
|
1584 |
+
SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
|
1585 |
+
hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
|
1586 |
+
ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
|
1587 |
+
PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
|
1588 |
+
1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
|
1589 |
+
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
|
1590 |
+
-----END CERTIFICATE-----
|
1591 |
+
|
1592 |
+
TC TrustCenter Class 2 CA II
|
1593 |
+
============================
|
1594 |
+
-----BEGIN CERTIFICATE-----
|
1595 |
+
MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
|
1596 |
+
REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
|
1597 |
+
IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw
|
1598 |
+
MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
|
1599 |
+
c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE
|
1600 |
+
AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
1601 |
+
AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw
|
1602 |
+
IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2
|
1603 |
+
xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ
|
1604 |
+
Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u
|
1605 |
+
SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB
|
1606 |
+
/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB
|
1607 |
+
7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
|
1608 |
+
Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
|
1609 |
+
cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
|
1610 |
+
SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
|
1611 |
+
TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G
|
1612 |
+
dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ
|
1613 |
+
KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj
|
1614 |
+
TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP
|
1615 |
+
JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk
|
1616 |
+
vQ==
|
1617 |
+
-----END CERTIFICATE-----
|
1618 |
+
|
1619 |
+
TC TrustCenter Universal CA I
|
1620 |
+
=============================
|
1621 |
+
-----BEGIN CERTIFICATE-----
|
1622 |
+
MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC
|
1623 |
+
REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy
|
1624 |
+
IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN
|
1625 |
+
MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg
|
1626 |
+
VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw
|
1627 |
+
JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD
|
1628 |
+
ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC
|
1629 |
+
qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv
|
1630 |
+
xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw
|
1631 |
+
ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O
|
1632 |
+
gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j
|
1633 |
+
BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
1634 |
+
AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG
|
1635 |
+
1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy
|
1636 |
+
vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3
|
1637 |
+
ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
|
1638 |
+
ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a
|
1639 |
+
7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
|
1640 |
+
-----END CERTIFICATE-----
|
1641 |
+
|
1642 |
+
Deutsche Telekom Root CA 2
|
1643 |
+
==========================
|
1644 |
+
-----BEGIN CERTIFICATE-----
|
1645 |
+
MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
|
1646 |
+
RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
|
1647 |
+
A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
|
1648 |
+
MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
|
1649 |
+
A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
|
1650 |
+
b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
|
1651 |
+
bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
|
1652 |
+
KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
|
1653 |
+
AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
|
1654 |
+
Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
|
1655 |
+
jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
|
1656 |
+
HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
|
1657 |
+
E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
|
1658 |
+
zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
|
1659 |
+
rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
|
1660 |
+
dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
|
1661 |
+
Cm26OWMohpLzGITY+9HPBVZkVw==
|
1662 |
+
-----END CERTIFICATE-----
|
1663 |
+
|
1664 |
+
ComSign Secured CA
|
1665 |
+
==================
|
1666 |
+
-----BEGIN CERTIFICATE-----
|
1667 |
+
MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE
|
1668 |
+
AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w
|
1669 |
+
NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD
|
1670 |
+
QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
1671 |
+
ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs
|
1672 |
+
49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH
|
1673 |
+
7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB
|
1674 |
+
kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1
|
1675 |
+
9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw
|
1676 |
+
AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t
|
1677 |
+
U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA
|
1678 |
+
j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC
|
1679 |
+
AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a
|
1680 |
+
BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp
|
1681 |
+
FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP
|
1682 |
+
51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz
|
1683 |
+
OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw==
|
1684 |
+
-----END CERTIFICATE-----
|
1685 |
+
|
1686 |
+
Cybertrust Global Root
|
1687 |
+
======================
|
1688 |
+
-----BEGIN CERTIFICATE-----
|
1689 |
+
MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
|
1690 |
+
ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
|
1691 |
+
MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
|
1692 |
+
ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
1693 |
+
+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
|
1694 |
+
0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
|
1695 |
+
AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
|
1696 |
+
89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
|
1697 |
+
8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
|
1698 |
+
BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
|
1699 |
+
MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
|
1700 |
+
A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
|
1701 |
+
lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
|
1702 |
+
5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
|
1703 |
+
hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
|
1704 |
+
X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
|
1705 |
+
WL1WMRJOEcgh4LMRkWXbtKaIOM5V
|
1706 |
+
-----END CERTIFICATE-----
|
1707 |
+
|
1708 |
+
ePKI Root Certification Authority
|
1709 |
+
=================================
|
1710 |
+
-----BEGIN CERTIFICATE-----
|
1711 |
+
MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG
|
1712 |
+
EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg
|
1713 |
+
Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx
|
1714 |
+
MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq
|
1715 |
+
MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B
|
1716 |
+
AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs
|
1717 |
+
IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi
|
1718 |
+
lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv
|
1719 |
+
qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX
|
1720 |
+
12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O
|
1721 |
+
WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+
|
1722 |
+
ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao
|
1723 |
+
lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/
|
1724 |
+
vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi
|
1725 |
+
Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi
|
1726 |
+
MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
|
1727 |
+
ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0
|
1728 |
+
1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq
|
1729 |
+
KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV
|
1730 |
+
xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP
|
1731 |
+
NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r
|
1732 |
+
GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE
|
1733 |
+
xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx
|
1734 |
+
gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy
|
1735 |
+
sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD
|
1736 |
+
BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw=
|
1737 |
+
-----END CERTIFICATE-----
|
1738 |
+
|
1739 |
+
T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
|
1740 |
+
=============================================================================================================================
|
1741 |
+
-----BEGIN CERTIFICATE-----
|
1742 |
+
MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
|
1743 |
+
DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
|
1744 |
+
aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
|
1745 |
+
b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
|
1746 |
+
BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
|
1747 |
+
S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
|
1748 |
+
MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
|
1749 |
+
IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
|
1750 |
+
n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
|
1751 |
+
IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
|
1752 |
+
dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
|
1753 |
+
cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
|
1754 |
+
AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
|
1755 |
+
Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
|
1756 |
+
xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
|
1757 |
+
6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
|
1758 |
+
hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
|
1759 |
+
BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
|
1760 |
+
MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
|
1761 |
+
N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
|
1762 |
+
y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
|
1763 |
+
LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
|
1764 |
+
dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
|
1765 |
+
-----END CERTIFICATE-----
|
1766 |
+
|
1767 |
+
Buypass Class 2 CA 1
|
1768 |
+
====================
|
1769 |
+
-----BEGIN CERTIFICATE-----
|
1770 |
+
MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
|
1771 |
+
QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
|
1772 |
+
MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
|
1773 |
+
c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
|
1774 |
+
hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
|
1775 |
+
cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
|
1776 |
+
0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
|
1777 |
+
0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
|
1778 |
+
uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
|
1779 |
+
MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
|
1780 |
+
AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
|
1781 |
+
1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
|
1782 |
+
7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
|
1783 |
+
fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
|
1784 |
+
wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
|
1785 |
+
-----END CERTIFICATE-----
|
1786 |
+
|
1787 |
+
Buypass Class 3 CA 1
|
1788 |
+
====================
|
1789 |
+
-----BEGIN CERTIFICATE-----
|
1790 |
+
MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
|
1791 |
+
QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1
|
1792 |
+
MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
|
1793 |
+
c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI
|
1794 |
+
hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx
|
1795 |
+
ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0
|
1796 |
+
n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia
|
1797 |
+
AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c
|
1798 |
+
1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC
|
1799 |
+
MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P
|
1800 |
+
AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7
|
1801 |
+
pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA
|
1802 |
+
EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5
|
1803 |
+
htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj
|
1804 |
+
el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915
|
1805 |
+
-----END CERTIFICATE-----
|
1806 |
+
|
1807 |
+
EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
|
1808 |
+
==========================================================================
|
1809 |
+
-----BEGIN CERTIFICATE-----
|
1810 |
+
MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF
|
1811 |
+
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg
|
1812 |
+
QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe
|
1813 |
+
Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p
|
1814 |
+
ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt
|
1815 |
+
IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG
|
1816 |
+
SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by
|
1817 |
+
X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b
|
1818 |
+
gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr
|
1819 |
+
eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ
|
1820 |
+
TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy
|
1821 |
+
Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn
|
1822 |
+
uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI
|
1823 |
+
qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm
|
1824 |
+
ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0
|
1825 |
+
Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
|
1826 |
+
/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW
|
1827 |
+
Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t
|
1828 |
+
FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm
|
1829 |
+
zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k
|
1830 |
+
XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT
|
1831 |
+
bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU
|
1832 |
+
RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK
|
1833 |
+
1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt
|
1834 |
+
2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ
|
1835 |
+
Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9
|
1836 |
+
AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
|
1837 |
+
-----END CERTIFICATE-----
|
1838 |
+
|
1839 |
+
certSIGN ROOT CA
|
1840 |
+
================
|
1841 |
+
-----BEGIN CERTIFICATE-----
|
1842 |
+
MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
|
1843 |
+
VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
|
1844 |
+
Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
|
1845 |
+
CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
|
1846 |
+
JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
|
1847 |
+
rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
|
1848 |
+
ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
|
1849 |
+
0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
|
1850 |
+
AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
|
1851 |
+
Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
|
1852 |
+
AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
|
1853 |
+
SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
|
1854 |
+
x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
|
1855 |
+
vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
|
1856 |
+
TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
|
1857 |
+
-----END CERTIFICATE-----
|
1858 |
+
|
1859 |
+
CNNIC ROOT
|
1860 |
+
==========
|
1861 |
+
-----BEGIN CERTIFICATE-----
|
1862 |
+
MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
|
1863 |
+
ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
|
1864 |
+
OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
|
1865 |
+
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
|
1866 |
+
o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
|
1867 |
+
VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
|
1868 |
+
VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
|
1869 |
+
czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
|
1870 |
+
y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
|
1871 |
+
wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
|
1872 |
+
lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
|
1873 |
+
Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
|
1874 |
+
O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
|
1875 |
+
BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
|
1876 |
+
G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
|
1877 |
+
mxE=
|
1878 |
+
-----END CERTIFICATE-----
|
1879 |
+
|
1880 |
+
ApplicationCA - Japanese Government
|
1881 |
+
===================================
|
1882 |
+
-----BEGIN CERTIFICATE-----
|
1883 |
+
MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
|
1884 |
+
SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
|
1885 |
+
MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
|
1886 |
+
cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
1887 |
+
CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
|
1888 |
+
fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
|
1889 |
+
wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
|
1890 |
+
jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
|
1891 |
+
nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
|
1892 |
+
WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
|
1893 |
+
BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
|
1894 |
+
vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
|
1895 |
+
o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
|
1896 |
+
/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
|
1897 |
+
io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
|
1898 |
+
dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
|
1899 |
+
rosot4LKGAfmt1t06SAZf7IbiVQ=
|
1900 |
+
-----END CERTIFICATE-----
|
1901 |
+
|
1902 |
+
GeoTrust Primary Certification Authority - G3
|
1903 |
+
=============================================
|
1904 |
+
-----BEGIN CERTIFICATE-----
|
1905 |
+
MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
|
1906 |
+
BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
|
1907 |
+
IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
|
1908 |
+
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
|
1909 |
+
NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
|
1910 |
+
YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
|
1911 |
+
LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
|
1912 |
+
hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
|
1913 |
+
K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
|
1914 |
+
c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
|
1915 |
+
IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
|
1916 |
+
dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
|
1917 |
+
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
|
1918 |
+
2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
|
1919 |
+
cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
|
1920 |
+
Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
|
1921 |
+
AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
|
1922 |
+
t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
|
1923 |
+
-----END CERTIFICATE-----
|
1924 |
+
|
1925 |
+
thawte Primary Root CA - G2
|
1926 |
+
===========================
|
1927 |
+
-----BEGIN CERTIFICATE-----
|
1928 |
+
MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
|
1929 |
+
VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
|
1930 |
+
IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
|
1931 |
+
Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
|
1932 |
+
MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
|
1933 |
+
b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
|
1934 |
+
IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
|
1935 |
+
LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
|
1936 |
+
8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
|
1937 |
+
mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
|
1938 |
+
G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
|
1939 |
+
rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
|
1940 |
+
-----END CERTIFICATE-----
|
1941 |
+
|
1942 |
+
thawte Primary Root CA - G3
|
1943 |
+
===========================
|
1944 |
+
-----BEGIN CERTIFICATE-----
|
1945 |
+
MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
|
1946 |
+
BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
|
1947 |
+
aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
|
1948 |
+
cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
|
1949 |
+
ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
|
1950 |
+
d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
|
1951 |
+
VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
|
1952 |
+
A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
1953 |
+
MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
|
1954 |
+
P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
|
1955 |
+
+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
|
1956 |
+
7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
|
1957 |
+
vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
|
1958 |
+
BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
|
1959 |
+
KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
|
1960 |
+
A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
|
1961 |
+
t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
|
1962 |
+
8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
|
1963 |
+
er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
|
1964 |
+
-----END CERTIFICATE-----
|
1965 |
+
|
1966 |
+
GeoTrust Primary Certification Authority - G2
|
1967 |
+
=============================================
|
1968 |
+
-----BEGIN CERTIFICATE-----
|
1969 |
+
MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
|
1970 |
+
VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
|
1971 |
+
Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
|
1972 |
+
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
|
1973 |
+
OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
|
1974 |
+
MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
|
1975 |
+
b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
|
1976 |
+
BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
|
1977 |
+
KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
|
1978 |
+
VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
|
1979 |
+
EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
|
1980 |
+
ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
|
1981 |
+
npaqBA+K
|
1982 |
+
-----END CERTIFICATE-----
|
1983 |
+
|
1984 |
+
VeriSign Universal Root Certification Authority
|
1985 |
+
===============================================
|
1986 |
+
-----BEGIN CERTIFICATE-----
|
1987 |
+
MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
|
1988 |
+
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
|
1989 |
+
ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
|
1990 |
+
IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
|
1991 |
+
IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
|
1992 |
+
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
1993 |
+
cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
1994 |
+
IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
|
1995 |
+
aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
|
1996 |
+
1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
|
1997 |
+
MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
|
1998 |
+
9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
|
1999 |
+
AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
|
2000 |
+
tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
|
2001 |
+
CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
|
2002 |
+
a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
|
2003 |
+
DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
|
2004 |
+
Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
|
2005 |
+
Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
|
2006 |
+
P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
|
2007 |
+
wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
|
2008 |
+
mJO37M2CYfE45k+XmCpajQ==
|
2009 |
+
-----END CERTIFICATE-----
|
2010 |
+
|
2011 |
+
VeriSign Class 3 Public Primary Certification Authority - G4
|
2012 |
+
============================================================
|
2013 |
+
-----BEGIN CERTIFICATE-----
|
2014 |
+
MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
|
2015 |
+
VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
|
2016 |
+
b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
|
2017 |
+
ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
|
2018 |
+
YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
|
2019 |
+
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
|
2020 |
+
cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
|
2021 |
+
b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
|
2022 |
+
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
|
2023 |
+
Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
|
2024 |
+
rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
|
2025 |
+
/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
|
2026 |
+
HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
|
2027 |
+
Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
|
2028 |
+
A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
|
2029 |
+
AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
|
2030 |
+
-----END CERTIFICATE-----
|
2031 |
+
|
2032 |
+
NetLock Arany (Class Gold) FÅ‘tanúsÃtvány
|
2033 |
+
============================================
|
2034 |
+
-----BEGIN CERTIFICATE-----
|
2035 |
+
MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
|
2036 |
+
A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
|
2037 |
+
dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
|
2038 |
+
cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
|
2039 |
+
MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
|
2040 |
+
ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
|
2041 |
+
biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
|
2042 |
+
c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
|
2043 |
+
0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
|
2044 |
+
/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
|
2045 |
+
H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
|
2046 |
+
fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
|
2047 |
+
neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
|
2048 |
+
BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
|
2049 |
+
qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
|
2050 |
+
YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
|
2051 |
+
bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
|
2052 |
+
NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
|
2053 |
+
dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
|
2054 |
+
-----END CERTIFICATE-----
|
2055 |
+
|
2056 |
+
Staat der Nederlanden Root CA - G2
|
2057 |
+
==================================
|
2058 |
+
-----BEGIN CERTIFICATE-----
|
2059 |
+
MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
|
2060 |
+
CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
|
2061 |
+
Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC
|
2062 |
+
TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
|
2063 |
+
ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM
|