⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.1
Server IP:
185.238.29.86
Server:
Linux server2 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
olasjoys
/
modules
/
posslideshows
/
Edit File: Slideshow.php
<?php /* * 2007-2015 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@prestashop.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <contact@prestashop.com> * @copyright 2007-2015 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ class Slideshow extends ObjectModel { public $title; public $cap_position; public $description; public $url; public $image; public $active; public $position; public $id_shop; /** * @see ObjectModel::$definition */ public static $definition = array( 'table' => 'posslideshows_slides', 'primary' => 'id_posslideshows_slides', 'multilang' => true, 'fields' => array( 'title' => array('type' => self::TYPE_STRING, 'validate' => 'isCleanHtml', 'size' => 255), 'active' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true), 'position' => array('type' => self::TYPE_INT, 'validate' => 'isunsignedInt', 'required' => true), 'cap_position' => array('type' => self::TYPE_INT, 'validate' => 'isunsignedInt'), // Lang fields 'description' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isJson'), 'url' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isUrl', 'required' => true, 'size' => 255), 'image' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCleanHtml', 'size' => 255), ) ); public function __construct($id_slide = null, $id_lang = null, $id_shop = null, Context $context = null) { parent::__construct($id_slide, $id_lang, $id_shop); } public function add($autodate = true, $null_values = false) { $context = Context::getContext(); $id_shop = $context->shop->id; //echo '<pre>'; print_r($this->description);die; $res = parent::add($autodate, $null_values); $res &= Db::getInstance()->execute(' INSERT INTO `'._DB_PREFIX_.'posslideshows` (`id_shop`, `id_posslideshows_slides`) VALUES('.(int)$id_shop.', '.(int)$this->id.')' ); return $res; } public function delete() { $res = true; $images = $this->image; foreach ($images as $image) { if (preg_match('/sample/', $image) === 0) if ($image && file_exists(dirname(__FILE__).'/images/'.$image)) $res &= @unlink(dirname(__FILE__).'/images/'.$image); } $res &= $this->reOrderPositions(); $res &= Db::getInstance()->execute(' DELETE FROM `'._DB_PREFIX_.'posslideshows` WHERE `id_posslideshows_slides` = '.(int)$this->id ); $res &= parent::delete(); return $res; } public function getDescription(Slideshow $block, $id_lang = null) { if (!$id_lang) { $id_lang = Context::getContext()->language->id; } $descriptions = $block->description; if($descriptions) foreach($descriptions as &$description){ $description = json_decode($description, true); } return $descriptions; } public function reOrderPositions() { $id_slide = $this->id; $context = Context::getContext(); $id_shop = $context->shop->id; $max = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT MAX(hss.`position`) as position FROM `'._DB_PREFIX_.'posslideshows_slides` hss, `'._DB_PREFIX_.'posslideshows` hs WHERE hss.`id_posslideshows_slides` = hs.`id_posslideshows_slides` AND hs.`id_shop` = '.(int)$id_shop ); if ((int)$max == (int)$id_slide) return true; $rows = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT hss.`position` as position, hss.`id_posslideshows_slides` as id_slide FROM `'._DB_PREFIX_.'posslideshows_slides` hss LEFT JOIN `'._DB_PREFIX_.'posslideshows` hs ON (hss.`id_posslideshows_slides` = hs.`id_posslideshows_slides`) WHERE hs.`id_shop` = '.(int)$id_shop.' AND hss.`position` > '.(int)$this->position ); foreach ($rows as $row) { $current_slide = new HomeSlide($row['id_slide']); --$current_slide->position; $current_slide->update(); unset($current_slide); } return true; } public static function getAssociatedIdsShop($id_slide) { $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT hs.`id_shop` FROM `'._DB_PREFIX_.'posslideshows` hs WHERE hs.`id_posslideshows_slides` = '.(int)$id_slide ); if (!is_array($result)) return false; $return = array(); foreach ($result as $id_shop) $return[] = (int)$id_shop['id_shop']; return $return; } }
Simpan