| Current Path : /home/megadansyp/www/components/com_eventgallery/library/methods/ |
| Current File : /home/megadansyp/www/components/com_eventgallery/library/methods/method.php |
<?php
/**
* @package Sven.Bluege
* @subpackage com_eventgallery
*
* @copyright Copyright (C) 2005 - 2019 Sven Bluege All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die();
/**
* Provides an abstract class with the base implementation for each method
*
* Class EventgalleryLibraryMethodsMethod
*/
abstract class EventgalleryLibraryMethodsMethod extends EventgalleryLibraryDatabaseObject implements EventgalleryLibraryInterfaceMethod
{
protected $_object = null;
protected $_object_id = null;
protected $_data = null;
protected $_ls_displayname = null;
protected $_ls_description = null;
/**
* the name of the Table Class
*/
protected $_methodtable = null;
public function __construct($object)
{
if ($object instanceof stdClass) {
$this->_object = $object;
$this->_object_id = $object->id;
} else {
throw new InvalidArgumentException("Object need to be an object.");
}
$this->_ls_displayname = new EventgalleryLibraryDatabaseLocalizablestring($this->_object->displayname);
$this->_ls_description = new EventgalleryLibraryDatabaseLocalizablestring($this->_object->description);
parent::__construct();
}
static public function getClassName() {
return "Abstract Method Class. Do overwrite this method.";
}
/**
* @return string the id
*/
public function getId()
{
return $this->_object->id;
}
/**
* Returns the price of this method. If a lineitemcontainer is
* provided, possible dynamic prices can be calculated.
*
* @param EventgalleryLibraryLineitemcontainer $lineitemcontainer
* @return EventgalleryLibraryCommonMoney the price value
*/
public function getPrice($lineitemcontainer = null)
{
if ($lineitemcontainer != null && $this->_object->price_percentaged>0) {
$moneyValue = $this->_object->price;
$moneyValue += $lineitemcontainer->getSubTotal()->getAmount() * $this->_object->price_percentaged / 100;
return new EventgalleryLibraryCommonMoney($moneyValue, $this->_object->currency);
}
return new EventgalleryLibraryCommonMoney($this->_object->price, $this->_object->currency);
}
/**
* @return string display name
*/
public function getName()
{
return $this->_object->name;
}
public function isPublished() {
return $this->_object->published==1;
}
/**
* @return string display name
*/
public function getDisplayName()
{
return $this->_ls_displayname->get();
}
/**
* @return string display name
*/
public function getDescription()
{
return $this->_ls_description->get();
}
/**
* @return bool
*/
public function isDefault()
{
return $this->_object->default == 1 ? true : false;
}
/**
* @return stdClass|null
*/
public function getData()
{
if (null == $this->_data) {
$this->_data = json_decode($this->_object->data);
}
return $this->_data;
}
/**
* sets a new data object
*
* @param stdClass $data
*/
public function setData(stdClass $data) {
$this->_object->data = json_encode($data);
$this->_storeMethod();
$this->_data = null;
}
/**
* returns the amount of tax for this item. If a lineitemcontainer is
* provided, possible dynamic prices can be calculated.
*
* @param EventgalleryLibraryLineitemcontainer $lineitemcontainer
* @return EventgalleryLibraryCommonMoney
*/
public function getTax($lineitemcontainer = null) {
$moneyValue = $this->getPrice($lineitemcontainer)->getAmount() / (100 + $this->getTaxrate() ) * $this->getTaxrate();
return new EventgalleryLibraryCommonMoney($moneyValue, $this->_object->currency);
}
/**
* @return float
*/
public function getTaxrate() {
return $this->_object->taxrate;
}
/**
* returns the percentage value of the field price_percentaged. It does NOT calculate the price!
*
* @return float
*/
public function getPercentagedPrice() {
return $this->_object->price_percentaged;
}
public function getOrdering() {
return $this->_object->ordering;
}
public function processOnOrderSubmit($lineitemcontainer) {
return true;
}
public function onIncomingExternalRequest() {
}
/**
* @param JForm $form
* @return JForm
*/
public function onPrepareAdminForm($form) {
return $form;
}
public function onSaveAdminForm($validData) {
return true;
}
public function getMethodReviewContent($lineitemcontainer, $isContentForMail) {
return "";
}
public function getMethodConfirmContent($lineitemcontainer, $isContentForMail) {
return "";
}
protected function _storeMethod()
{
$data = $this->_object;
$this->store((array)$data, $this->_methodtable);
}
/**
* Adjusts an url based on the components setttings
* @param $url
* @return mixed
*/
protected function adjustProtocol($url) {
$config = \Joomla\Component\Eventgallery\Site\Library\Configuration\Main::getInstance();
$configurationValue = $config->getCheckout()->getProtocolForIncomingRequests();
$pattern = '/https?:\/\//';
if ($configurationValue == 'secure') {
$url = preg_replace($pattern, "https://", $url);
}
if ($configurationValue == 'insecure') {
$url = preg_replace($pattern, "http://", $url);
}
return $url;
}
/**
* Gets triggered if the order status changes.
*
* @param $order EventgalleryLibraryOrder
* @return void
*/
public function onOrderStatusChange($order) {
#echo "order status changed: " . $order->getOrderStatus()->getName() . "\n";
}
/**
* Gets triggered if the shipping status changes.
*
* @param $order EventgalleryLibraryOrder
* @return void
*/
public function onShippingStatusChange($order) {
#echo "shipping status changed: " . $order->getShippingStatus()->getName() . "\n";
}
/**
* Gets triggered if the payment status changes.
*
* @param $order EventgalleryLibraryOrder
* @return void
*/
public function onPaymentStatusChange($order) {
#echo "payment status changed: " . $order->getPaymentStatus()->getName() . "\n";
}
}