File manager - Edit - /home/jardides/www/Jardi-design/old/administrator/components/com_pagebuilderck/pro/includes/export.php
Back
<?php /** * @name Page Builder CK * @package com_pagebuilderck * @copyright Copyright (C) 2015. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @author Cedric Keiflin - https://www.template-creator.com - https://www.joomlack.fr */ // No direct access defined('_JEXEC') or die; jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); class PagebuilderckParamsExport { private $_doc; private $_app; private $_input; public function __construct() { $this->_doc = JFactory::getDocument(); $this->_app = JFactory::getApplication(); $this->_input = $this->_app->input; PagebuilderckHelper::loadCkbox(); } /** * Load the html code for the */ public function loadexportScript() { ?> <script> /* get the page .pbck file and submit it for download */ function ckExportPage(form, type) { if (! type) type = '0'; var cid = $ck(form).find('input[name="cid[]"]:checked'); if (cid.length) { // if export as library, ask for names if (type === '2') { if (! $ck('#ckexportlibrary-category').val()) { alert('<?php echo JText::_('CK_FIELD_EMPTY', true) ?>'); $ck('#ckexportlibrary-category').focus(); return; } if (! $ck('#ckexportlibrary-item').val()) { alert('<?php echo JText::_('CK_FIELD_EMPTY', true) ?>'); $ck('#ckexportlibrary-item').focus(); return; } // CKBox.open({handler: 'inline', content: 'ckExportModalAsLibrary', fullscreen: false, size: {x: '600px', y: '500px'}}) CKBox.close('#ckExportModalAsLibrary'); } var id = cid[0].value; ckDoExport(id, type); } else { alert('<?php echo JText::_('CK_PLEASE_SELECT_ITEM', true) ?>'); } } function ckExportPageAsLibrary(form) { var cid = $ck(form).find('input[name="cid[]"]:checked'); if (cid.length) { // ckExportPage(document.adminForm, '2') CKBox.open({handler: 'inline', content: 'ckExportModalAsLibrary', fullscreen: false, size: {x: '600px', y: '400px'}}) } else { alert('<?php echo JText::_('CK_PLEASE_SELECT_ITEM', true) ?>'); } } /* load the .pbck backup file and load it in the page */ function ckDoExport(id, type) { if (! type) type = '0'; var categoryName = $ck('#ckexportlibrary-category').val() ? $ck('#ckexportlibrary-category').val() : ''; var itemName = $ck('#ckexportlibrary-item').val() ? $ck('#ckexportlibrary-item').val() : ''; $ck('#ckExportPageDownload').addClass('ckwait'); CKBox.open({handler: 'inline', content: 'ckExportModal', fullscreen: false, size: {x: '600px', y: '150px'}}) var myurl = PAGEBUILDERCK.URIPBCK + "&task=ajaxParamsCall&" + PAGEBUILDERCK.TOKEN; $ck.ajax({ type: "POST", url: myurl, data: { class: 'export', method: 'ajaxDoExport', params: { id: id, categoryName: categoryName, itemName: itemName, type: type } } }).done(function(code) { $ck('#ckExportPageDownload').removeClass('ckwait').html(code); }).fail(function() { alert(Joomla.JText._('CK_FAILED', 'Failed')); }); } </script> <?php } /** * Load the html code for the export modal */ public function loadExportForm() { $this->loadexportScript(); $input = JFactory::getApplication()->input; // modal popup for export ?> <div id="ckExportModal" class="" style="position:relative;display:none;"> <div style="padding: 10px;"> <div class="ckExportModalContent"> <div class="" id=""> <div class=""><h1><?php echo JText::_('CK_EXPORT'); ?></h1></div> <div id="ckExportPageDownload" style="border-top: 1px solid #ddd;padding: 0.75em;"> </div> </div> </div> </div> </div> <div id="ckExportModalAsLibrary" class="" style="position:relative;display:none;"> <div style="padding: 10px;"> <div class="ckExportModalContent"> <div> <p><?php echo JText::_('CK_EXPORT_PAGE_AS_LIBRARY_DESC'); ?></p> <div class=""><h1><?php echo JText::_('CK_CATEGORY'); ?></h1></div> <input type="text" class="form-control" name="ckexportlibrary-category" id="ckexportlibrary-category" /> <div class=""><h1><?php echo JText::_('CK_ITEM'); ?></h1></div> <input type="text" class="form-control" name="ckexportlibrary-item" id="ckexportlibrary-item" /> </div> <br /> <p style="text-align:center"> <button type="button" onclick="ckExportPage(document.adminForm, '2')" class="btn btn-primary"><?php echo JText::_('CK_EXPORT'); ?></button> </p> </div> </div> </div> <?php } /** * Write the export file */ public function ajaxDoExport($params) { jimport('joomla.filesystem.file'); jimport('joomla.filesystem.folder'); include_once JPATH_ROOT . '/administrator/components/com_pagebuilderck/models/page.php'; $model = JModelLegacy::getInstance('Page', 'PagebuilderckModel'); // path to store the file $id = (int)$params['id']; $type = $params['type']; $categoryName = $params['categoryName']; $itemName = $params['itemName']; // get the item data $item = $model->getItem($id); // get the item encoded to be saved // $exportfiletext = $model->getExportFile($item); $exportfiletext = PagebuilderckHelper::getExportFile($item); // write the export file $exportfiledest = 'export_' . $item->id . '.pbck'; $path = '/administrator/components/com_pagebuilderck/backup/export_' . $item->id . '/'; if (! Pagebuilderck\CKfolder::exists(PAGEBUILDERCK_SITE_ROOT . $path)) { Pagebuilderck\CKFolder::create(PAGEBUILDERCK_SITE_ROOT . $path); } // export with images if ($type == '1') { // replace the path for imageurl data preg_match_all('/imageurl=\\\"(.*?)\\\"/i', $exportfiletext, $files); // preg_match_all('/customimage.?=\\\"(.*?)\\\"/i', $exportfiletext, $files2); preg_match_all('/<img src=\\\"(.*?)\\\"/i', $exportfiletext, $files2); $allimgs = array_merge($files[1], $files2[1]); foreach ($allimgs as $i => $file) { if (! $file) continue; if (strpos($file, 'https:') === 0) continue; if (strpos($file, 'plugins\/pagebuilderck') !== false) continue; $filename = explode('/', $file); $filename = end($filename); $filename = trim($filename, '\/'); $file = trim($file, '\/'); $exportfiletext = str_replace('imageurl=\"' . $file, 'imageurl=\"|IMPORTFOLDER|\/' . $filename , $exportfiletext); $exportfiletext = str_replace('src=\"\/' . $file, 'src=\"|URIBASE|\/|IMPORTFOLDER|\/' . $filename , $exportfiletext); $exportfiletext = str_replace('src=\"' . $file, 'src=\"|IMPORTFOLDER|\/' . $filename , $exportfiletext); $exportfiletext = str_replace("url('\/" . $file, "url('|URIBASE|\/|IMPORTFOLDER|\/" . $filename , $exportfiletext); if (PAGEBUILDERCK_URI_ROOT && PAGEBUILDERCK_URI_ROOT != '/') { $exportfiletext = str_replace(addcslashes(PAGEBUILDERCK_URI_ROOT, '/'), '|URIBASE|', $exportfiletext); } $exportfiletext = str_replace($file, '|IMPORTFOLDER|\/' . $filename , $exportfiletext); $file = str_replace('|URIBASE|\/', '', $file); // save the images $localfile = trim(stripslashes(str_replace('|URIBASE|', '', $file)), '/'); if (! Pagebuilderck\CKFile::copy(PAGEBUILDERCK_SITE_ROOT . '/' . $localfile, PAGEBUILDERCK_SITE_ROOT . $path . $filename) ) { $msg = '<p class="errorck">' . JText::_('CK_ERROR_COPY_IMAGE') . ' : ' . PAGEBUILDERCK_SITE_ROOT . '/' . $localfile . '</p>'; } else { $msg = '<p class="successck">' . JText::_('CK_SUCCESS_COPY_IMAGE') . ' : ' . PAGEBUILDERCK_SITE_ROOT . '/' . $localfile . '</p>'; } } // create the .pbck file in the folder file_put_contents(PAGEBUILDERCK_SITE_ROOT . $path . $exportfiledest, $exportfiletext); // zip the folder into pckz format $files = Pagebuilderck\CKFolder::files(PAGEBUILDERCK_SITE_ROOT . $path, false, true, true); $exporter = new ZipArchiver(); $isSuccess = $exporter->create($files, PAGEBUILDERCK_SITE_ROOT . '/administrator/components/com_pagebuilderck/backup/' . $exportfiledest . 'z', PAGEBUILDERCK_SITE_ROOT . $path, true); // delete the export folder Pagebuilderck\CKFolder::delete(PAGEBUILDERCK_SITE_ROOT . $path); return '<div style="text-align:center;"><a class="btn btn-inverse btn-primary" href="' . JUri::root(true) . '/administrator/components/com_pagebuilderck/backup/' . $exportfiledest . 'z' . '" download="' . $exportfiledest . 'z" target="_blank">' . JText::_('CK_DOWNLOAD') .'</a></div>'; // export as library } else if ($type == '2') { $exportfiledest = $itemName . '.pbck'; $packagepath = '/administrator/components/com_pagebuilderck/backup/library_' . $categoryName . '_' . $itemName . '/'; $path = '/administrator/components/com_pagebuilderck/backup/library_' . $categoryName . '_' . $itemName . '/' . $categoryName . '/'; if (! Pagebuilderck\CKfolder::exists(PAGEBUILDERCK_SITE_ROOT . $packagepath)) { Pagebuilderck\CKFolder::create(PAGEBUILDERCK_SITE_ROOT . $packagepath); } if (! Pagebuilderck\CKfolder::exists(PAGEBUILDERCK_SITE_ROOT . $path)) { Pagebuilderck\CKFolder::create(PAGEBUILDERCK_SITE_ROOT . $path); } // replace the path for imageurl data preg_match_all('/imageurl=\\\"(.*?)\\\"/i', $exportfiletext, $files); // preg_match_all('/customimage.?=\\\"(.*?)\\\"/i', $exportfiletext, $files2); preg_match_all('/<img src=\\\"(.*?)\\\"/i', $exportfiletext, $files2); $allimgs = array_merge($files[1], $files2[1]); foreach ($allimgs as $i => $file) { if (! $file) continue; if (strpos($file, 'https:') === 0) continue; if (strpos($file, 'plugins\/pagebuilderck') !== false) continue; $filename = explode('/', $file); $filename = end($filename); $filename = trim($filename, '\/'); $file = trim($file, '\/'); $exportfiletext = str_replace('imageurl=\"' . $file, 'imageurl=\"|IMPORTFOLDER|\/' . $filename , $exportfiletext); $exportfiletext = str_replace('src=\"\/' . $file, 'src=\"|URIBASE|\/|IMPORTFOLDER|\/' . $filename , $exportfiletext); $exportfiletext = str_replace('src=\"' . $file, 'src=\"|IMPORTFOLDER|\/' . $filename , $exportfiletext); $exportfiletext = str_replace("url('\/" . $file, "url('|URIBASE|\/|IMPORTFOLDER|\/" . $filename , $exportfiletext); if (PAGEBUILDERCK_URI_ROOT && PAGEBUILDERCK_URI_ROOT != '/') { $exportfiletext = str_replace(addcslashes(PAGEBUILDERCK_URI_ROOT, '/'), '|URIBASE|', $exportfiletext); } $exportfiletext = str_replace($file, '|IMPORTFOLDER|\/' . $filename , $exportfiletext); $file = str_replace('|URIBASE|\/', '', $file); // save the images $localfile = trim(stripslashes(str_replace('|URIBASE|', '', $file)), '/'); if (! Pagebuilderck\CKFile::copy(PAGEBUILDERCK_SITE_ROOT . '/' . $localfile, PAGEBUILDERCK_SITE_ROOT . $path . $filename) ) { $msg = '<p class="errorck">' . JText::_('CK_ERROR_COPY_IMAGE') . ' : ' . PAGEBUILDERCK_SITE_ROOT . '/' . $localfile . '</p>'; } else { $msg = '<p class="successck">' . JText::_('CK_SUCCESS_COPY_IMAGE') . ' : ' . PAGEBUILDERCK_SITE_ROOT . '/' . $localfile . '</p>'; } } // create the .pbck file in the folder file_put_contents(PAGEBUILDERCK_SITE_ROOT . $path . $exportfiledest, $exportfiletext); // create the install xml file $installxml = '<?xml version="1.0" encoding="utf-8"?> <extension type="file" version="3" method="upgrade"> <name>Page Builder CK - Library ' . $categoryName . '-' . $itemName . '</name> <author>Page Builder CK</author> <creationDate></creationDate> <copyright>Copyright (C) 2022 Joomlack. All rights reserved.</copyright> <license>GNU General Public License version 2 or later; see LICENSE.txt</license> <authorEmail>contact@joomlack.fr</authorEmail> <authorUrl>https://www.joomlack.fr</authorUrl> <version>1.0</version> <description>Custom library ' . $categoryName . '-' . $itemName . ' install for Page Builder CK</description> <fileset> <files target="administrator/components/com_pagebuilderck/libraries"> <folder>' . $categoryName . '</folder> </files> </fileset> </extension>'; file_put_contents(PAGEBUILDERCK_SITE_ROOT . $packagepath . 'install.xml', $installxml); // zip the folder into pckz format $files = Pagebuilderck\CKFolder::files(PAGEBUILDERCK_SITE_ROOT . $packagepath, false, true, true); $exporter = new ZipArchiver(); $isSuccess = $exporter->create($files, PAGEBUILDERCK_SITE_ROOT . '/administrator/components/com_pagebuilderck/backup/library_' . $categoryName . '_' . $itemName . '.zip', PAGEBUILDERCK_SITE_ROOT . $packagepath, true); // delete the export folder // Pagebuilderck\CKFolder::delete(PAGEBUILDERCK_SITE_ROOT . $path); return '<div style="text-align:center;"><a class="btn btn-inverse btn-primary" href="' . JUri::root(true) . '/administrator/components/com_pagebuilderck/backup/library_' . $categoryName . '_' . $itemName . '.zip' . '" download="library_' . $categoryName . '_' . $itemName . '.zip" target="_blank">' . JText::_('CK_DOWNLOAD') .'</a></div>'; } else { if (file_put_contents(PAGEBUILDERCK_SITE_ROOT . $path . $exportfiledest, $exportfiletext)) { return '<div style="text-align:center;"><a class="btn btn-inverse btn-primary" href="' . JUri::root(true) . $path . $exportfiledest . '" target="_blank">' . JText::_('CK_DOWNLOAD') .'</a></div>'; } else { return JText::_('CK_ERROR_CREATING_EXPORT_FILE'); } } } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0 |
proxy
|
phpinfo
|
Settings