/home/wowzahos/domains/app.wowzahosting.com/public_html/modules/Orderbutton/html_client/mod_orderbutton_product_configuration.html.twig
<hr>
<h5 class="mt-4 mb-1"><strong>{{ 'Billing'|trans }}</strong></h5>
<div class="row">
<div class="col-12 col-md-4 col-xl-3">
{% if product.pricing.type == 'recurrent' %}
<span>{{ 'Billing cycle'|trans }}</span>
{% else %}
<span>{{ 'One-time payment'|trans }}</span>
{% endif %}
</div>
<div class="col">
{% if product.pricing.type == 'recurrent' %}
{% set periods = guest.system_periods %}
<select class="form-select" name="period" id="period-selector">
{% for code,prices in product.pricing.recurrent %}
{% if prices.enabled %}
<option value="{{code}}" data-bb-price="{{ prices.price | money_convert }}" name="period">{{ prices.price | money_convert }} ({{ periods[code] }})</option>
{% endif %}
{% endfor %}
</select>
{% elseif product.pricing.type == 'free' %}
<span class="badge bg-success">{{ 0 | money_convert }}</span>
{% else %}
<span class="badge bg-success">{{ product.pricing.once.price | money_convert }}</span>
{% endif %}
</div>
</div>
{# TODO: This does not seem to be implemented on the back-end
{% if product.allow_quantity_select %}
<div class="row mt-3">
<div class="col-12 col-md-4 col-xl-3">
<span>{{ 'Quantity'|trans }}</span>
</div>
<div class="col">
<input type="number" name="quantity" value="1" min="1" class="form-control w-50" style="max-width: 120px; text-align: center;">
</div>
</div>
Arguments
"An exception has been thrown during the rendering of a template ("SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id' cannot be null") in "mod_orderbutton_product_configuration.html.twig" at line 44."
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/gabordemooij/redbean/RedBeanPHP/Driver/RPDO.php
}
if ( $statement->columnCount() ) {
$fetchStyle = ( isset( $options['fetchStyle'] ) ) ? $options['fetchStyle'] : NULL;
if ( is_null( $fetchStyle) ) {
$this->resultArray = $statement->fetchAll();
} else {
$this->resultArray = $statement->fetchAll( $fetchStyle );
}
if ( $this->loggingEnabled && $this->logger ) {
$this->logger->log( 'resultset: ' . count( $this->resultArray ) . ' rows' );
}
} else {
$this->resultArray = array();
}
} catch ( \PDOException $e ) {
//Unfortunately the code field is supposed to be int by default (php)
//So we need a property to convey the SQL State code.
$err = $e->getMessage();
if ( $this->loggingEnabled && $this->logger ) $this->logger->log( 'An error occurred: ' . $err );
$exception = new SQL( $err, 0, $e );
$exception->setSQLState( $e->getCode() );
$exception->setDriverDetails( $e->errorInfo );
throw $exception;
}
}
/**
* Try to fix MySQL character encoding problems.
* MySQL < 5.5.3 does not support proper 4 byte unicode but they
* seem to have added it with version 5.5.3 under a different label: utf8mb4.
* We try to select the best possible charset based on your version data.
*
* @return void
*/
protected function setEncoding()
{
$driver = $this->pdo->getAttribute( \PDO::ATTR_DRIVER_NAME );
if ($driver === 'mysql') {
$charset = $this->hasCap( 'utf8mb4' ) ? 'utf8mb4' : 'utf8';
$collate = $this->hasCap( 'utf8mb4_520' ) ? '_unicode_520_ci' : '_unicode_ci';
Arguments
"SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id' cannot be null"
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/gabordemooij/redbean/RedBeanPHP/Driver/RPDO.php
* @throws SQL
*/
public function runQuery( $sql, $bindings, $options = array() )
{
$this->connect();
if ( $this->loggingEnabled && $this->logger ) {
$this->logger->log( $sql, $bindings );
}
try {
if ( strpos( 'pgsql', $this->dsn ) === 0 ) {
if (defined('\\PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT')) {
$statement = @$this->pdo->prepare($sql, array(\PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT => TRUE));
} else {
$statement = $this->pdo->prepare($sql);
}
} else {
$statement = $this->pdo->prepare( $sql );
}
$this->bindParams( $statement, $bindings );
$statement->execute();
$this->queryCounter ++;
$this->affectedRows = $statement->rowCount();
if ( isset( $options['noFetch'] ) && $options['noFetch'] ) {
$this->resultArray = array();
return $statement;
}
if ( $statement->columnCount() ) {
$fetchStyle = ( isset( $options['fetchStyle'] ) ) ? $options['fetchStyle'] : NULL;
if ( is_null( $fetchStyle) ) {
$this->resultArray = $statement->fetchAll();
} else {
$this->resultArray = $statement->fetchAll( $fetchStyle );
}
if ( $this->loggingEnabled && $this->logger ) {
$this->logger->log( 'resultset: ' . count( $this->resultArray ) . ' rows' );
}
} else {
$this->resultArray = array();
}
} catch ( \PDOException $e ) {
Arguments
"SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id' cannot be null"
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/gabordemooij/redbean/RedBeanPHP/Driver/RPDO.php
* @throws SQL
*/
public function runQuery( $sql, $bindings, $options = array() )
{
$this->connect();
if ( $this->loggingEnabled && $this->logger ) {
$this->logger->log( $sql, $bindings );
}
try {
if ( strpos( 'pgsql', $this->dsn ) === 0 ) {
if (defined('\\PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT')) {
$statement = @$this->pdo->prepare($sql, array(\PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT => TRUE));
} else {
$statement = $this->pdo->prepare($sql);
}
} else {
$statement = $this->pdo->prepare( $sql );
}
$this->bindParams( $statement, $bindings );
$statement->execute();
$this->queryCounter ++;
$this->affectedRows = $statement->rowCount();
if ( isset( $options['noFetch'] ) && $options['noFetch'] ) {
$this->resultArray = array();
return $statement;
}
if ( $statement->columnCount() ) {
$fetchStyle = ( isset( $options['fetchStyle'] ) ) ? $options['fetchStyle'] : NULL;
if ( is_null( $fetchStyle) ) {
$this->resultArray = $statement->fetchAll();
} else {
$this->resultArray = $statement->fetchAll( $fetchStyle );
}
if ( $this->loggingEnabled && $this->logger ) {
$this->logger->log( 'resultset: ' . count( $this->resultArray ) . ' rows' );
}
} else {
$this->resultArray = array();
}
} catch ( \PDOException $e ) {
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/gabordemooij/redbean/RedBeanPHP/Driver/RPDO.php
if ($runInitCode) {
/* run initialisation query if any */
if ( $this->initSQL !== NULL ) {
$this->Execute( $this->initSQL );
$this->initSQL = NULL;
}
if ( $this->initCode !== NULL ) {
$code = $this->initCode;
$code( $this->pdo->getAttribute( \PDO::ATTR_SERVER_VERSION ) );
}
}
if ($setDSNString) $this->dsn = $this->getDatabaseType();
}
/**
* @see Driver::GetAll
*/
public function GetAll( $sql, $bindings = array() )
{
$this->runQuery( $sql, $bindings );
$result_array = $this->resultArray;
$this->resultArray = null;
return $result_array;
}
/**
* @see Driver::GetAssocRow
*/
public function GetAssocRow( $sql, $bindings = array() )
{
$this->runQuery( $sql, $bindings, array(
'fetchStyle' => \PDO::FETCH_ASSOC
)
);
$result_array = $this->resultArray;
$this->resultArray = null;
return $result_array;
}
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/gabordemooij/redbean/RedBeanPHP/Driver/RPDO.php
'fetchStyle' => \PDO::FETCH_COLUMN
)
);
$result_array = $this->resultArray;
$this->resultArray = null;
if ( empty( $result_array ) || !is_array( $result_array ) ) {
return array();
}
}
return $result_array;
}
/**
* @see Driver::GetOne
*/
public function GetOne( $sql, $bindings = array() )
{
$arr = $this->GetAll( $sql, $bindings );
if ( empty( $arr[0] ) || !is_array( $arr[0] ) ) {
return NULL;
}
return reset( $arr[0] );
}
/**
* Alias for getOne().
* Backward compatibility.
*
* @param string $sql SQL
* @param array $bindings bindings
*
* @return string|NULL
*/
public function GetCell( $sql, $bindings = array() )
{
return $this->GetOne( $sql, $bindings );
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/gabordemooij/redbean/RedBeanPHP/Adapter/DBAdapter.php
* @see Adapter::getAssocRow
*/
public function getAssocRow($sql, $bindings = array())
{
$this->sql = $sql;
$this->signal( 'sql_exec', $this );
return $this->db->GetAssocRow( $sql, $bindings );
}
/**
* @see Adapter::getCell
*/
public function getCell( $sql, $bindings = array(), $noSignal = NULL )
{
$this->sql = $sql;
if ( !$noSignal ) $this->signal( 'sql_exec', $this );
return $this->db->GetOne( $sql, $bindings );
}
/**
* @see Adapter::getCursor
*/
public function getCursor( $sql, $bindings = array() )
{
return $this->db->GetCursor( $sql, $bindings );
}
/**
* @see Adapter::getInsertID
*/
public function getInsertID()
{
return $this->db->getInsertID();
}
/**
* @see Adapter::getAffectedRows
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/gabordemooij/redbean/RedBeanPHP/QueryWriter/AQueryWriter.php
if ( count( $insertvalues ) > 0 && is_array( $insertvalues[0] ) && count( $insertvalues[0] ) > 0 ) {
$insertSlots = array();
foreach ( $insertcolumns as $k => $v ) {
$insertcolumns[$k] = $this->esc( $v );
if (isset(self::$sqlFilters['w'][$type][$v])) {
$insertSlots[] = self::$sqlFilters['w'][$type][$v];
} else {
$insertSlots[] = '?';
}
}
$insertSQL = "INSERT INTO $table ( id, " . implode( ',', $insertcolumns ) . " ) VALUES
( $default, " . implode( ',', $insertSlots ) . " ) $suffix";
$ids = array();
foreach ( $insertvalues as $i => $insertvalue ) {
$ids[] = $this->adapter->getCell( $insertSQL, $insertvalue, $i );
}
$result = count( $ids ) === 1 ? array_pop( $ids ) : $ids;
} else {
$result = $this->adapter->getCell( "INSERT INTO $table (id) VALUES($default) $suffix" );
}
if ( $suffix ) return $result;
$last_id = $this->adapter->getInsertID();
return $last_id;
}
/**
* Checks table name or column name.
*
* @param string $table table string
*
* @return string
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/gabordemooij/redbean/RedBeanPHP/QueryWriter/AQueryWriter.php
$this->adapter->exec( sprintf( $this->getDDLTemplate('addColumn', $beanType, $column ), $table, $column, $type ) );
}
/**
* @see QueryWriter::updateRecord
*/
public function updateRecord( $type, $updatevalues, $id = NULL )
{
$table = $type;
if ( !$id ) {
$insertcolumns = $insertvalues = array();
foreach ( $updatevalues as $pair ) {
$insertcolumns[] = $pair['property'];
$insertvalues[] = $pair['value'];
}
//Otherwise psql returns string while MySQL/SQLite return numeric causing problems with additions (array_diff)
return (string) $this->insertRecord( $table, $insertcolumns, array( $insertvalues ) );
}
if ( $id && !count( $updatevalues ) ) {
return $id;
}
$table = $this->esc( $table );
$sql = "UPDATE $table SET ";
$p = $v = array();
foreach ( $updatevalues as $uv ) {
if ( isset( self::$sqlFilters['w'][$type][$uv['property']] ) ) {
$p[] = " {$this->esc( $uv["property"] )} = ". self::$sqlFilters['w'][$type][$uv['property']];
} else {
$p[] = " {$this->esc( $uv["property"] )} = ? ";
}
$v[] = $uv['value'];
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/gabordemooij/redbean/RedBeanPHP/Repository/Frozen.php
if ( $bean->getMeta( 'changed' ) ) {
list( $properties, $table ) = $bean->getPropertiesAndType();
$id = $properties['id'];
unset($properties['id']);
$updateValues = array();
$k1 = 'property';
$k2 = 'value';
$partial = ( $this->partialBeans === TRUE || ( is_array( $this->partialBeans ) && in_array( $table, $this->partialBeans ) ) );
if ( $partial ) {
$mask = $bean->getMeta( 'changelist' );
$bean->setMeta( 'changelist', array() );
}
foreach( $properties as $key => $value ) {
if ( $partial && !in_array( $key, $mask ) ) continue;
$updateValues[] = array( $k1 => $key, $k2 => $value );
}
$bean->id = $this->writer->updateRecord( $table, $updateValues, $id );
$bean->setMeta( 'changed', FALSE );
}
$bean->setMeta( 'tainted', FALSE );
}
/**
* Part of the store() functionality.
* Handles all new additions after the bean has been saved.
* Stores addition bean in own-list, extracts the id and
* adds a foreign key. Also adds a constraint in case the type is
* in the dependent list.
*
* Note that this method raises a custom exception if the bean
* is not an instance of OODBBean. Therefore it does not use
* a type hint. This allows the user to take action in case
* invalid objects are passed in the list.
*
* @param OODBBean $bean bean to process
* @param array $ownAdditions list of addition beans in own-list
*
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/gabordemooij/redbean/RedBeanPHP/Repository.php
* represent the value as an integer a string will be returned. We use
* explicit casts instead of functions to preserve performance
* (0.13 vs 0.28 for 10000 iterations on Core i3).
*
* @param OODBBean|SimpleModel|SimpleModelInterface $bean bean to store
*
* @return integer|string
*/
public function store( $bean )
{
$processLists = $this->hasListsOrObjects( $bean );
if ( !$processLists && !$bean->getMeta( 'tainted' ) ) {
return $bean->getID(); //bail out!
}
$this->oodb->signal( 'update', $bean );
$processLists = $this->hasListsOrObjects( $bean ); //check again, might have changed by model!
if ( $processLists ) {
$this->storeBeanWithLists( $bean );
} else {
$this->storeBean( $bean );
}
$this->oodb->signal( 'after_update', $bean );
return ( (string) $bean->id === (string) (int) $bean->id ) ? (int) $bean->id : (string) $bean->id;
}
/**
* Returns an array of beans. Pass a type and a series of ids and
* this method will bring you the corresponding beans.
*
* important note: Because this method loads beans using the load()
* function (but faster) it will return empty beans with ID 0 for
* every bean that could not be located. The resulting beans will have the
* passed IDs as their keys.
*
* @param string $type type of beans
* @param array $ids ids to load
*
* @return array
*/
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/gabordemooij/redbean/RedBeanPHP/OODB.php
* with this bean and RedBean runs in fluid mode the schema
* will be altered to store the bean correctly.
* If the database schema is not compatible with this bean and
* RedBean runs in frozen mode it will throw an exception.
* This function returns the primary key ID of the inserted
* bean.
*
* The return value is an integer if possible. If it is not possible to
* represent the value as an integer a string will be returned. We use
* explicit casts instead of functions to preserve performance
* (0.13 vs 0.28 for 10000 iterations on Core i3).
*
* @param OODBBean|SimpleModel|SimpleModelInterface $bean bean to store
*
* @return integer|string
*/
public function store( $bean )
{
$bean = $this->unboxIfNeeded( $bean );
$id = $this->repository->store( $bean );
if ( self::$autoClearHistoryAfterStore ) {
$bean->clearHistory();
}
return $id;
}
/**
* Loads a bean from the object database.
* It searches for a OODBBean Bean Object in the
* database. It does not matter how this bean has been stored.
* RedBean uses the primary key ID $id and the string $type
* to find the bean. The $type specifies what kind of bean you
* are looking for; this is the same type as used with the
* dispense() function. If RedBean finds the bean it will return
* the OODB Bean object; if it cannot find the bean
* RedBean will return a new bean of type $type and with
* primary key ID 0. In the latter case it acts basically the
* same as dispense().
*
* Important note:
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/gabordemooij/redbean/RedBeanPHP/Facade.php
* We then set the title of the bean to 'my post' and we
* store the bean. The store() method will return the primary
* key ID $id assigned by the database. We can now use this
* ID to load the bean from the database again and delete it.
*
* If the second parameter is set to TRUE and
* Hybrid mode is allowed (default OFF for novice), then RedBeanPHP
* will automatically temporarily switch to fluid mode to attempt to store the
* bean in case of an SQLException.
*
* @param OODBBean|SimpleModel|SimpleModelInterface $bean bean to store
* @param boolean $unfreezeIfNeeded retries in fluid mode in hybrid mode
*
* @return integer|string
*/
public static function store( $bean, $unfreezeIfNeeded = FALSE )
{
$result = NULL;
try {
$result = self::$redbean->store( $bean );
} catch (SQLException $exception) {
$wasFrozen = self::$redbean->isFrozen();
if ( !self::$allowHybridMode || !$unfreezeIfNeeded ) throw $exception;
self::freeze( FALSE );
$result = self::$redbean->store( $bean );
self::freeze( $wasFrozen );
}
return $result;
}
/**
* Toggles fluid or frozen mode. In fluid mode the database
* structure is adjusted to accommodate your objects. In frozen mode
* this is not the case.
*
* You can also pass an array containing a selection of frozen types.
* Let's call this chilly mode, it's just like fluid mode except that
* certain types (i.e. tables) aren't touched.
*
* @param boolean|string[] $tf mode of operation (TRUE means frozen)
/home/wowzahos/domains/app.wowzahosting.com/public_html/library/Box/Database.php
public function dispense($modelName)
{
$type = $this->_getTypeFromModelName($modelName);
$bean = $this->orm->dispense($type);
if ($type == $modelName) {
return $bean;
}
return $bean->box();
}
public function store($modelOrBean)
{
if ($modelOrBean instanceof RedBeanPHP\SimpleModel) {
$bean = $modelOrBean->unbox();
} else {
$bean = $modelOrBean;
}
return $this->orm->store($bean);
}
public function getAll($sql, $values = [])
{
return $this->orm->getAll($sql, $values);
}
public function getCell($sql, $values = [])
{
return $this->orm->getCell($sql, $values);
}
public function getRow($sql, $values = [])
{
return $this->orm->getRow($sql, $values);
}
public function getAssoc($sql, $values = [])
{
return $this->orm->getAssoc($sql, $values);
/home/wowzahos/domains/app.wowzahosting.com/public_html/modules/Cart/Service.php
if ($cart instanceof \Model_Cart) {
return $cart;
}
$cc = $this->di['mod_service']('currency');
if ($this->di['session']->get('client_id')) {
$client_id = $this->di['session']->get('client_id');
$currency = $cc->getCurrencyByClientId($client_id);
} else {
$currency = $cc->getDefault();
}
$cart = $this->di['db']->dispense('Cart');
$cart->session_id = $sessionID;
$cart->currency_id = $currency->id;
$cart->created_at = date('Y-m-d H:i:s');
$cart->updated_at = date('Y-m-d H:i:s');
$this->di['db']->store($cart);
return $cart;
}
public function addItem(\Model_Cart $cart, \Model_Product $product, array $data)
{
$event_params = [...$data, 'cart_id' => $cart->id, 'product_id' => $product->id];
$this->di['events_manager']->fire(['event' => 'onBeforeProductAddedToCart', 'params' => $event_params]);
$productService = $product->getService();
if ($this->isRecurrentPricing($product)) {
$required = [
'period' => 'Period parameter not passed',
];
$this->di['validator']->checkRequiredParamsForArray($required, $data);
if (!$this->isPeriodEnabledForProduct($product, $data['period'])) {
throw new \FOSSBilling\InformationException('Selected billing period is invalid');
}
/home/wowzahos/domains/app.wowzahosting.com/public_html/modules/Cart/Api/Guest.php
$this->di['validator']->checkRequiredParamsForArray($required, $data);
$currencyService = $this->di['mod_service']('currency');
$currency = $currencyService->getByCode($data['currency']);
if (!$currency instanceof \Model_Currency) {
throw new \FOSSBilling\Exception('Currency not found');
}
$cart = $this->getService()->getSessionCart();
return $this->getService()->changeCartCurrency($cart, $currency);
}
/**
* Retrieve information about currently selected shopping cart currency.
*
* @return array Currency details
*/
public function get_currency()
{
$cart = $this->getService()->getSessionCart();
$currencyService = $this->di['mod_service']('currency');
$currency = $this->di['db']->load('Currency', $cart->currency_id);
if (!$currency instanceof \Model_Currency) {
$currency = $currencyService->getDefault();
}
return $currencyService->toApiArray($currency);
}
/**
* Apply Promo code to shopping cart.
*
* @return bool
*/
public function apply_promo($data)
{
$required = [
'promocode' => 'Promo code not passed',
];
/home/wowzahos/domains/app.wowzahosting.com/public_html/library/Api/Handler.php
}
$bb_mod = $this->di['mod']($mod);
$api->setDi($this->di);
$api->setMod($bb_mod);
$api->setIdentity($this->identity);
$api->setIp($this->di['request']->getClientIp());
if ($bb_mod->hasService()) {
$api->setService($this->di['mod_service']($mod));
}
if (!method_exists($api, $method_name) || !is_callable([$api, $method_name])) {
$reflector = new ReflectionClass($api);
if (!$reflector->hasMethod('__call')) {
throw new FOSSBilling\Exception(':type API call :method does not exist in module :module', [':type' => ucfirst($this->type), ':method' => $method_name, ':module' => $mod], 740);
}
}
return $api->{$method_name}($arguments);
}
}
/home/wowzahos/domains/app.wowzahosting.com/public_html/library/Box/TwigExtensions.php
public function twig_bb_admin_link_filter($link, ?array $params = null)
{
return $this->di['url']->adminLink($link, $params);
}
public function twig_period_title(Twig\Environment $env, $period)
{
$globals = $env->getGlobals();
$api_guest = $globals['guest'];
return $api_guest->system_period_title(['code' => $period]);
}
public function twig_money_convert(Twig\Environment $env, $price, ?string $currency = null)
{
$globals = $env->getGlobals();
$api_guest = $globals['guest'];
if (is_null($currency)) {
$c = $api_guest->cart_get_currency();
$currency = $c['code'];
}
return $api_guest->currency_format(['price' => $price, 'code' => $currency, 'convert' => true]);
}
public function money_convert_without_currency(Twig\Environment $env, $price, ?string $currency = null)
{
$globals = $env->getGlobals();
$api_guest = $globals['guest'];
if (is_null($currency)) {
$c = $api_guest->cart_get_currency();
$currency = $c['code'];
}
return $api_guest->currency_format(['price' => $price, 'code' => $currency, 'convert' => true, 'without_currency' => true]);
}
public function twig_money(Twig\Environment $env, $price, $currency = null)
{
/home/wowzahos/domains/app.wowzahosting.com/public_html/data/16/16574d1a5cd62679d64eefaba4aa94a9.php
// line 39
if ((CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, ($context["product"] ?? null), "pricing", [], "any", false, false, false, 39), "type", [], "any", false, false, false, 39) == "recurrent")) {
// line 40
yield " ";
$context["periods"] = CoreExtension::getAttribute($this->env, $this->source, ($context["guest"] ?? null), "system_periods", [], "any", false, false, false, 40);
// line 41
yield " <select class=\"form-select\" name=\"period\" id=\"period-selector\">
";
// line 42
$context['_parent'] = $context;
$context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, ($context["product"] ?? null), "pricing", [], "any", false, false, false, 42), "recurrent", [], "any", false, false, false, 42));
foreach ($context['_seq'] as $context["code"] => $context["prices"]) {
// line 43
yield " ";
if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["prices"], "enabled", [], "any", false, false, false, 43)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
// line 44
yield " <option value=\"";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["code"], "html", null, true);
yield "\" data-bb-price=\"";
yield $this->extensions['Box_TwigExtensions']->twig_money_convert($this->env, CoreExtension::getAttribute($this->env, $this->source, $context["prices"], "price", [], "any", false, false, false, 44));
yield "\" name=\"period\">";
yield $this->extensions['Box_TwigExtensions']->twig_money_convert($this->env, CoreExtension::getAttribute($this->env, $this->source, $context["prices"], "price", [], "any", false, false, false, 44));
yield " (";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((($_v0 = ($context["periods"] ?? null)) && is_array($_v0) || $_v0 instanceof ArrayAccess ? ($_v0[$context["code"]] ?? null) : null), "html", null, true);
yield ")</option>
";
}
// line 46
yield " ";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['code'], $context['prices'], $context['_parent']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 47
yield " </select>
";
} elseif ((CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, // line 48
($context["product"] ?? null), "pricing", [], "any", false, false, false, 48), "type", [], "any", false, false, false, 48) == "free")) {
// line 49
yield " <span class=\"badge bg-success\">";
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Extension/CoreExtension.php
return;
}
if ($env->hasExtension(SandboxExtension::class) && $env->getExtension(SandboxExtension::class)->isSandboxed()) {
throw new RuntimeError(\sprintf('The callable passed to the "%s" %s must be a Closure in sandbox mode.', $thing, $type));
}
trigger_deprecation('twig/twig', '3.15', 'Passing a callable that is not a PHP \Closure as an argument to the "%s" %s is deprecated.', $thing, $type);
}
/**
* @internal to be removed in Twig 4
*/
public static function captureOutput(iterable $body): string
{
$level = ob_get_level();
ob_start();
try {
foreach ($body as $data) {
echo $data;
}
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
/**
* @internal
*/
public static function parseParentFunction(Parser $parser, Node $fakeNode, $args, int $line): AbstractExpression
{
if (!$blockName = $parser->peekBlockStack()) {
throw new SyntaxError('Calling the "parent" function outside of a block is forbidden.', $line, $parser->getStream()->getSourceContext());
/home/wowzahos/domains/app.wowzahosting.com/public_html/data/16/16574d1a5cd62679d64eefaba4aa94a9.php
// line 16
yield $this->extensions['Box_TwigExtensions']->twig_bb_client_link_filter("api/guest/cart/add_item");
yield "\" data-api-msg=\"";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(__trans("Product was added to shopping cart"), "html", null, true);
yield "\"
data-api-redirect=\"";
// line 17
yield $this->extensions['Box_TwigExtensions']->twig_bb_client_link_filter("order", ["checkout" => 1]);
yield "\" + \"";
if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, ($context["request"] ?? null), "show_custom_form_values", [], "any", false, false, false, 17)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
yield "&show_custom_form_values=1";
}
yield "\">
<input type=\"hidden\" name=\"CSRFToken\" value=\"";
// line 18
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(($context["CSRFToken"] ?? null), "html", null, true);
yield "\"/>
";
// line 19
$context["product_details"] = ('' === $tmp = \Twig\Extension\CoreExtension::captureOutput((function () use (&$context, $macros, $blocks) {
// line 20
yield " <div class=\"well\">
<h3>";
// line 21
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, ($context["product"] ?? null), "title", [], "any", false, false, false, 21), "html", null, true);
yield "</h3>
";
// line 22
if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, ($context["product"] ?? null), "description", [], "any", false, false, false, 22)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
// line 23
yield " ";
yield $this->extensions['Box_TwigExtensions']->twig_markdown_filter($this->env, CoreExtension::getAttribute($this->env, $this->source, ($context["product"] ?? null), "description", [], "any", false, false, false, 23));
yield "
";
}
// line 25
yield "
<hr>
<h5 class=\"mt-4 mb-1\"><strong>";
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Template.php
}
$content = '';
foreach ($this->yield($context) as $data) {
$content .= $data;
}
return $content;
}
/**
* @return iterable<scalar|\Stringable|null>
*/
public function yield(array $context, array $blocks = []): iterable
{
$context += $this->env->getGlobals();
$blocks = array_merge($this->blocks, $blocks);
try {
yield from $this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Throwable $e) {
$e = new RuntimeError(\sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Template.php
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks(): array
{
return $this->blocks;
}
public function display(array $context, array $blocks = []): void
{
foreach ($this->yield($context, $blocks) as $data) {
echo $data;
}
}
public function render(array $context): string
{
if (!$this->useYield) {
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Template.php
}
public function display(array $context, array $blocks = []): void
{
foreach ($this->yield($context, $blocks) as $data) {
echo $data;
}
}
public function render(array $context): string
{
if (!$this->useYield) {
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
$content = '';
foreach ($this->yield($context) as $data) {
$content .= $data;
}
return $content;
}
/**
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/TemplateWrapper.php
/**
* @return iterable<scalar|\Stringable|null>
*/
public function stream(array $context = []): iterable
{
yield from $this->template->yield($context);
}
/**
* @return iterable<scalar|\Stringable|null>
*/
public function streamBlock(string $name, array $context = []): iterable
{
yield from $this->template->yieldBlock($name, $context);
}
public function render(array $context = []): string
{
return $this->template->render($context);
}
/**
* @return void
*/
public function display(array $context = [])
{
// using func_get_args() allows to not expose the blocks argument
// as it should only be used by internal code
$this->template->display($context, \func_get_args()[1] ?? []);
}
public function hasBlock(string $name, array $context = []): bool
{
return $this->template->hasBlock($name, $context);
}
/**
* @return string[] An array of defined template block names
*/
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Extension/CoreExtension.php
}
}
try {
$loaded = null;
try {
$loaded = $env->resolveTemplate($template);
} catch (LoaderError $e) {
if (!$ignoreMissing) {
throw $e;
}
return '';
}
if ($isSandboxed) {
$loaded->unwrap()->checkSecurity();
}
return $loaded->render($variables);
} finally {
if ($isSandboxed && !$alreadySandboxed) {
$sandbox->disableSandbox();
}
}
}
/**
* Returns a template content without rendering it.
*
* @param string $name The template name
* @param bool $ignoreMissing Whether to ignore missing templates or not
*
* @internal
*/
public static function source(Environment $env, $name, $ignoreMissing = false): string
{
$loader = $env->getLoader();
try {
return $loader->getSourceContext($name)->getCode();
/home/wowzahos/domains/app.wowzahosting.com/public_html/data/e2/e23ba441f6e7c02cee625cd85f335f99.php
* @return iterable<null|scalar|\Stringable>
*/
public function block_body(array $context, array $blocks = []): iterable
{
$macros = $this->macros;
// line 7
yield "<div class=\"row\">
<div class=\"col-md-12\">
<div class=\"card border-0\" id=\"orderbutton\" style=\"margin-bottom: 0\">
<div class=\"card-body p-1\">
<div id=\"orderManager\" class=\"accordion\">
";
// line 13
yield Twig\Extension\CoreExtension::include($this->env, $context, "mod_orderbutton_choose_product.html.twig");
yield "
";
// line 15
yield Twig\Extension\CoreExtension::include($this->env, $context, "mod_orderbutton_product_configuration.html.twig");
yield "
";
// line 17
if ((($tmp = !($context["client"] ?? null)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
// line 18
yield " ";
yield Twig\Extension\CoreExtension::include($this->env, $context, "mod_orderbutton_client.html.twig");
yield "
";
}
// line 20
yield "
";
// line 21
yield Twig\Extension\CoreExtension::include($this->env, $context, "mod_orderbutton_checkout.html.twig");
yield "
<div class=\"accordion-item\">
<h2 class=\"accordion-header\">
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Template.php
{
if ($useBlocks && isset($blocks[$name])) {
$template = $blocks[$name][0];
$block = $blocks[$name][1];
} elseif (isset($this->blocks[$name])) {
$template = $this->blocks[$name][0];
$block = $this->blocks[$name][1];
} else {
$template = null;
$block = null;
}
// avoid RCEs when sandbox is enabled
if (null !== $template && !$template instanceof self) {
throw new \LogicException('A block must be a method on a \Twig\Template instance.');
}
if (null !== $template) {
try {
yield from $template->$block($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($template->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Throwable $e) {
$e = new RuntimeError(\sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
$e->guess();
throw $e;
}
} elseif ($parent = $this->getParent($context)) {
yield from $parent->unwrap()->yieldBlock($name, $context, array_merge($this->blocks, $blocks), false, $templateContext ?? $this);
/home/wowzahos/domains/app.wowzahosting.com/public_html/data/1e/1ec5125fb16cc3e6c17173b17fff6b90.php
yield "
";
// line 26
yield $this->env->getFunction('encore_entry_script_tags')->getCallable()("huraga");
yield "
";
// line 27
yield from $this->unwrap()->yieldBlock('head', $context, $blocks);
// line 28
yield " ";
yield from $this->unwrap()->yieldBlock('js', $context, $blocks);
// line 29
yield "</head>
<body class=\"";
// line 30
yield from $this->unwrap()->yieldBlock('body_class', $context, $blocks);
yield "\">
";
// line 31
yield from $this->unwrap()->yieldBlock('body', $context, $blocks);
// line 32
yield " <div aria-live=\"polite\" aria-atomic=\"true\" class=\"position-relative\">
<div class=\"toast-container position-fixed bottom-0 end-0 p-3\" style=\"z-index: 1070;\"></div>
</div>
";
// line 35
yield Twig\Extension\CoreExtension::include($this->env, $context, "partial_pending_messages.html.twig", [], true, true);
yield "
</body>
</html>
";
yield from [];
}
// line 5
/**
* @return iterable<null|scalar|\Stringable>
*/
public function block_meta_title(array $context, array $blocks = []): iterable
{
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Template.php
}
$content = '';
foreach ($this->yield($context) as $data) {
$content .= $data;
}
return $content;
}
/**
* @return iterable<scalar|\Stringable|null>
*/
public function yield(array $context, array $blocks = []): iterable
{
$context += $this->env->getGlobals();
$blocks = array_merge($this->blocks, $blocks);
try {
yield from $this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Throwable $e) {
$e = new RuntimeError(\sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
/home/wowzahos/domains/app.wowzahosting.com/public_html/data/e2/e23ba441f6e7c02cee625cd85f335f99.php
'js' => [$this, 'block_js'],
];
}
protected function doGetParent(array $context): bool|string|Template|TemplateWrapper
{
// line 1
return "layout_public.html.twig";
}
protected function doDisplay(array $context, array $blocks = []): iterable
{
$macros = $this->macros;
// line 2
$context["loader_nr"] = ((CoreExtension::getAttribute($this->env, $this->source, ($context["request"] ?? null), "loader", [], "any", true, true, false, 2)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env, $this->source, ($context["request"] ?? null), "loader", [], "any", false, false, false, 2), "8")) : ("8"));
// line 3
$context["loader_url"] = (("img/assets/loaders/loader" . ($context["loader_nr"] ?? null)) . ".gif");
// line 1
$this->parent = $this->load("layout_public.html.twig", 1);
yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
}
// line 4
/**
* @return iterable<null|scalar|\Stringable>
*/
public function block_meta_title(array $context, array $blocks = []): iterable
{
$macros = $this->macros;
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(__trans("Order"), "html", null, true);
yield from [];
}
// line 6
/**
* @return iterable<null|scalar|\Stringable>
*/
public function block_body(array $context, array $blocks = []): iterable
{
$macros = $this->macros;
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Template.php
}
$content = '';
foreach ($this->yield($context) as $data) {
$content .= $data;
}
return $content;
}
/**
* @return iterable<scalar|\Stringable|null>
*/
public function yield(array $context, array $blocks = []): iterable
{
$context += $this->env->getGlobals();
$blocks = array_merge($this->blocks, $blocks);
try {
yield from $this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Throwable $e) {
$e = new RuntimeError(\sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Template.php
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks(): array
{
return $this->blocks;
}
public function display(array $context, array $blocks = []): void
{
foreach ($this->yield($context, $blocks) as $data) {
echo $data;
}
}
public function render(array $context): string
{
if (!$this->useYield) {
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Template.php
}
public function display(array $context, array $blocks = []): void
{
foreach ($this->yield($context, $blocks) as $data) {
echo $data;
}
}
public function render(array $context): string
{
if (!$this->useYield) {
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
$content = '';
foreach ($this->yield($context) as $data) {
$content .= $data;
}
return $content;
}
/**
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/TemplateWrapper.php
/**
* @return iterable<scalar|\Stringable|null>
*/
public function stream(array $context = []): iterable
{
yield from $this->template->yield($context);
}
/**
* @return iterable<scalar|\Stringable|null>
*/
public function streamBlock(string $name, array $context = []): iterable
{
yield from $this->template->yieldBlock($name, $context);
}
public function render(array $context = []): string
{
return $this->template->render($context);
}
/**
* @return void
*/
public function display(array $context = [])
{
// using func_get_args() allows to not expose the blocks argument
// as it should only be used by internal code
$this->template->display($context, \func_get_args()[1] ?? []);
}
public function hasBlock(string $name, array $context = []): bool
{
return $this->template->hasBlock($name, $context);
}
/**
* @return string[] An array of defined template block names
*/
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Extension/CoreExtension.php
}
}
try {
$loaded = null;
try {
$loaded = $env->resolveTemplate($template);
} catch (LoaderError $e) {
if (!$ignoreMissing) {
throw $e;
}
return '';
}
if ($isSandboxed) {
$loaded->unwrap()->checkSecurity();
}
return $loaded->render($variables);
} finally {
if ($isSandboxed && !$alreadySandboxed) {
$sandbox->disableSandbox();
}
}
}
/**
* Returns a template content without rendering it.
*
* @param string $name The template name
* @param bool $ignoreMissing Whether to ignore missing templates or not
*
* @internal
*/
public static function source(Environment $env, $name, $ignoreMissing = false): string
{
$loader = $env->getLoader();
try {
return $loader->getSourceContext($name)->getCode();
/home/wowzahos/domains/app.wowzahosting.com/public_html/data/8d/8d91e55d173888ab252efdc1ba86455b.php
<div class=\"col-md-12\">
<div class=\"card mb-4\">
<div class=\"card-header py-3 py-3\">
<div class=\"d-flex justify-content-between align-items-center\">
<div class=\"w-100\">
<h1 class=\"mb-1\">";
// line 23
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(__trans("Products"), "html", null, true);
yield "</h1>
";
// line 24
yield Twig\Extension\CoreExtension::include($this->env, $context, "mod_orderbutton_currency.html.twig");
yield "
</div>
</div>
</div>
<div class=\"card-body overflow-hidden\">
";
// line 29
yield Twig\Extension\CoreExtension::include($this->env, $context, "mod_orderbutton_index.html.twig");
yield "
</div>
</div>
</div>
</div>
";
yield from [];
}
// line 36
/**
* @return iterable<null|scalar|\Stringable>
*/
public function block_sidebar2(array $context, array $blocks = []): iterable
{
$macros = $this->macros;
// line 37
yield " ";
yield Twig\Extension\CoreExtension::include($this->env, $context, "partial_currency.html.twig");
yield "
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Template.php
{
if ($useBlocks && isset($blocks[$name])) {
$template = $blocks[$name][0];
$block = $blocks[$name][1];
} elseif (isset($this->blocks[$name])) {
$template = $this->blocks[$name][0];
$block = $this->blocks[$name][1];
} else {
$template = null;
$block = null;
}
// avoid RCEs when sandbox is enabled
if (null !== $template && !$template instanceof self) {
throw new \LogicException('A block must be a method on a \Twig\Template instance.');
}
if (null !== $template) {
try {
yield from $template->$block($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($template->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Throwable $e) {
$e = new RuntimeError(\sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
$e->guess();
throw $e;
}
} elseif ($parent = $this->getParent($context)) {
yield from $parent->unwrap()->yieldBlock($name, $context, array_merge($this->blocks, $blocks), false, $templateContext ?? $this);
/home/wowzahos/domains/app.wowzahosting.com/public_html/data/07/07c2847d4614b1ffd33adb2d3a316822.php
<section role=\"main\">
";
// line 162
yield from $this->unwrap()->yieldBlock('content_before', $context, $blocks);
// line 163
yield " <div class=\"content-block\" role=\"main\">
";
// line 164
if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, ($context["settings"] ?? null), "show_breadcrumb", [], "any", false, false, false, 164)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
// line 165
yield " ";
yield from $this->unwrap()->yieldBlock('breadcrumbs', $context, $blocks);
// line 176
yield " ";
}
// line 177
yield "
";
// line 178
yield from $this->unwrap()->yieldBlock('content', $context, $blocks);
// line 179
yield "
";
// line 180
yield Twig\Extension\CoreExtension::include($this->env, $context, "partial_message.html.twig");
yield "
";
// line 182
yield from $this->unwrap()->yieldBlock('content_after', $context, $blocks);
// line 183
yield " </div>
</section>
<div id=\"push\"></div>
</div>
";
// line 188
if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, ($context["settings"] ?? null), "footer_enabled", [], "any", false, false, false, 188)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
// line 189
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Template.php
{
if ($useBlocks && isset($blocks[$name])) {
$template = $blocks[$name][0];
$block = $blocks[$name][1];
} elseif (isset($this->blocks[$name])) {
$template = $this->blocks[$name][0];
$block = $this->blocks[$name][1];
} else {
$template = null;
$block = null;
}
// avoid RCEs when sandbox is enabled
if (null !== $template && !$template instanceof self) {
throw new \LogicException('A block must be a method on a \Twig\Template instance.');
}
if (null !== $template) {
try {
yield from $template->$block($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($template->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Throwable $e) {
$e = new RuntimeError(\sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
$e->guess();
throw $e;
}
} elseif ($parent = $this->getParent($context)) {
yield from $parent->unwrap()->yieldBlock($name, $context, array_merge($this->blocks, $blocks), false, $templateContext ?? $this);
/home/wowzahos/domains/app.wowzahosting.com/public_html/data/07/07c2847d4614b1ffd33adb2d3a316822.php
yield $this->extensions['FOSSBilling\TwigExtensions\DebugBar']->renderHead();
yield "
";
// line 28
yield from $this->unwrap()->yieldBlock('head', $context, $blocks);
// line 29
yield " ";
yield from $this->unwrap()->yieldBlock('js', $context, $blocks);
// line 30
yield "</head>
<body class=\"";
// line 32
yield from $this->unwrap()->yieldBlock('body_class', $context, $blocks);
yield "\">
";
// line 34
yield from $this->unwrap()->yieldBlock('body', $context, $blocks);
// line 266
yield "
";
// line 267
if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, ($context["settings"] ?? null), "inject_javascript", [], "any", false, false, false, 267)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
// line 268
yield " ";
yield CoreExtension::getAttribute($this->env, $this->source, ($context["settings"] ?? null), "inject_javascript", [], "any", false, false, false, 268);
yield "
";
}
// line 270
yield " ";
yield Twig\Extension\CoreExtension::include($this->env, $context, "partial_pending_messages.html.twig", [], true, true);
yield "
";
// line 271
if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, ($context["guest"] ?? null), "extension_is_on", [["mod" => "cookieconsent"]], "method", false, false, false, 271)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
// line 272
yield " ";
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Template.php
}
$content = '';
foreach ($this->yield($context) as $data) {
$content .= $data;
}
return $content;
}
/**
* @return iterable<scalar|\Stringable|null>
*/
public function yield(array $context, array $blocks = []): iterable
{
$context += $this->env->getGlobals();
$blocks = array_merge($this->blocks, $blocks);
try {
yield from $this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Throwable $e) {
$e = new RuntimeError(\sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
/home/wowzahos/domains/app.wowzahosting.com/public_html/data/8d/8d91e55d173888ab252efdc1ba86455b.php
];
}
protected function doGetParent(array $context): bool|string|Template|TemplateWrapper
{
// line 1
return $this->load((((($tmp = CoreExtension::getAttribute($this->env, $this->source, ($context["request"] ?? null), "ajax", [], "any", false, false, false, 1)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) ? ("layout_blank.html.twig") : ("layout_default.html.twig")), 1);
}
protected function doDisplay(array $context, array $blocks = []): iterable
{
$macros = $this->macros;
// line 3
$macros["mf"] = $this->macros["mf"] = $this->load("macro_functions.html.twig", 3)->unwrap();
// line 7
$context["loader_nr"] = ((CoreExtension::getAttribute($this->env, $this->source, ($context["request"] ?? null), "loader", [], "any", true, true, false, 7)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env, $this->source, ($context["request"] ?? null), "loader", [], "any", false, false, false, 7), "8")) : ("8"));
// line 8
$context["loader_url"] = (("img/assets/loaders/loader" . ($context["loader_nr"] ?? null)) . ".gif");
// line 1
yield from $this->getParent($context)->unwrap()->yield($context, array_merge($this->blocks, $blocks));
}
// line 5
/**
* @return iterable<null|scalar|\Stringable>
*/
public function block_meta_title(array $context, array $blocks = []): iterable
{
$macros = $this->macros;
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(__trans("Order"), "html", null, true);
yield from [];
}
// line 10
/**
* @return iterable<null|scalar|\Stringable>
*/
public function block_body_class(array $context, array $blocks = []): iterable
{
$macros = $this->macros;
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Template.php
}
$content = '';
foreach ($this->yield($context) as $data) {
$content .= $data;
}
return $content;
}
/**
* @return iterable<scalar|\Stringable|null>
*/
public function yield(array $context, array $blocks = []): iterable
{
$context += $this->env->getGlobals();
$blocks = array_merge($this->blocks, $blocks);
try {
yield from $this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Throwable $e) {
$e = new RuntimeError(\sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Template.php
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks(): array
{
return $this->blocks;
}
public function display(array $context, array $blocks = []): void
{
foreach ($this->yield($context, $blocks) as $data) {
echo $data;
}
}
public function render(array $context): string
{
if (!$this->useYield) {
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/Template.php
}
public function display(array $context, array $blocks = []): void
{
foreach ($this->yield($context, $blocks) as $data) {
echo $data;
}
}
public function render(array $context): string
{
if (!$this->useYield) {
$level = ob_get_level();
if ($this->env->isDebug()) {
ob_start();
} else {
ob_start(function () { return ''; });
}
try {
$this->display($context);
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
$content = '';
foreach ($this->yield($context) as $data) {
$content .= $data;
}
return $content;
}
/**
/home/wowzahos/domains/app.wowzahosting.com/public_html/vendor/twig/twig/src/TemplateWrapper.php
/**
* @return iterable<scalar|\Stringable|null>
*/
public function stream(array $context = []): iterable
{
yield from $this->template->yield($context);
}
/**
* @return iterable<scalar|\Stringable|null>
*/
public function streamBlock(string $name, array $context = []): iterable
{
yield from $this->template->yieldBlock($name, $context);
}
public function render(array $context = []): string
{
return $this->template->render($context);
}
/**
* @return void
*/
public function display(array $context = [])
{
// using func_get_args() allows to not expose the blocks argument
// as it should only be used by internal code
$this->template->display($context, \func_get_args()[1] ?? []);
}
public function hasBlock(string $name, array $context = []): bool
{
return $this->template->hasBlock($name, $context);
}
/**
* @return string[] An array of defined template block names
*/
/home/wowzahos/domains/app.wowzahosting.com/public_html/library/Box/AppClient.php
/**
* @param string $fileName
*/
public function render($fileName, $variableArray = [], $ext = 'html.twig'): string
{
try {
$template = $this->getTwig()->load(Path::changeExtension($fileName, $ext));
} catch (Twig\Error\LoaderError $e) {
$this->di['logger']->setChannel('routing')->info($e->getMessage());
http_response_code(404);
throw new FOSSBilling\InformationException('Page not found', null, 404);
}
if ("{$fileName}.{$ext}" == 'mod_page_sitemap.xml') {
header('Content-Type: application/xml');
}
return $template->render($variableArray);
}
protected function getTwig(): Twig\Environment
{
$service = $this->di['mod_service']('theme');
$code = $service->getCurrentClientAreaThemeCode();
$theme = $service->getTheme($code);
$settings = $service->getThemeSettings($theme);
$loader = new Box_TwigLoader(
[
'mods' => PATH_MODS,
'theme' => Path::join(PATH_THEMES, $code),
'type' => 'client',
]
);
$twig = $this->di['twig'];
$twig->setLoader($loader);
/home/wowzahos/domains/app.wowzahosting.com/public_html/modules/Order/Controller/Client.php
$app->get('/order/:id', 'get_configure_product', ['id' => '[0-9]+'], static::class);
$app->get('/order/:slug', 'get_configure_product_by_slug', ['slug' => '[a-z0-9-]+'], static::class);
$app->get('/order/service/manage/:id', 'get_order', ['id' => '[0-9]+'], static::class);
}
public function get_products(\Box_App $app)
{
return $app->render('mod_order_index');
}
public function get_configure_product_by_slug(\Box_App $app, $slug)
{
$api = $this->di['api_guest'];
$product = $api->product_get(['slug' => $slug]);
$tpl = 'mod_service' . $product['type'] . '_order';
if ($api->system_template_exists(['file' => $tpl . '.html.twig'])) {
return $app->render($tpl, ['product' => $product]);
}
return $app->render('mod_order_product', ['product' => $product]);
}
public function get_configure_product(\Box_App $app, $id)
{
$api = $this->di['api_guest'];
$product = $api->product_get(['id' => $id]);
$tpl = 'mod_service' . $product['type'] . '_order';
if ($api->system_template_exists(['file' => $tpl . '.html.twig'])) {
return $app->render($tpl, ['product' => $product]);
}
return $app->render('mod_order_product', ['product' => $product]);
}
public function get_orders(\Box_App $app)
{
$this->di['is_client_logged'];
return $app->render('mod_order_list');
}
/home/wowzahos/domains/app.wowzahosting.com/public_html/library/Box/App.php
{
$this->debugBar['time']->startMeasure('executeShared', 'Reflecting module controller (shared mapping)');
$class = new $classname();
if ($class instanceof InjectionAwareInterface) {
$class->setDi($this->di);
}
$reflection = new ReflectionMethod($class::class, $methodName);
$args = [];
$args[] = $this; // first param always app instance
foreach ($reflection->getParameters() as $param) {
if (isset($params[$param->name])) {
$args[$param->name] = $params[$param->name];
} elseif ($param->isDefaultValueAvailable()) {
$args[$param->name] = $param->getDefaultValue();
}
}
$this->debugBar['time']->stopMeasure('executeShared');
return $reflection->invokeArgs($class, $args);
}
protected function execute($methodName, $params, $classname = null): string
{
$this->debugBar['time']->startMeasure('execute', 'Reflecting module controller');
$reflection = new ReflectionMethod(static::class, $methodName);
$args = [];
foreach ($reflection->getParameters() as $param) {
if (isset($params[$param->name])) {
$args[$param->name] = $params[$param->name];
} elseif ($param->isDefaultValueAvailable()) {
$args[$param->name] = $param->getDefaultValue();
}
}
$this->debugBar['time']->stopMeasure('execute');
return $reflection->invokeArgs($this, $args);
/home/wowzahos/domains/app.wowzahosting.com/public_html/library/Box/App.php
$exc = new FOSSBilling\InformationException('The system is undergoing maintenance. Please try again later', [], 503);
$apiController = new Box\Mod\Api\Controller\Client();
$apiController->setDi($this->di);
return $apiController->renderJson(null, $exc);
} else {
return $this->render('mod_system_maintenance');
}
}
}
$this->debugBar['time']->startMeasure('sharedMapping', 'Checking shared mappings');
$sharedCount = count($this->shared);
for ($i = 0; $i < $sharedCount; ++$i) {
$mapping = $this->shared[$i];
$url = new Box_UrlHelper($mapping[0], $mapping[1], $mapping[3], $this->url);
if ($url->match) {
$this->debugBar['time']->stopMeasure('sharedMapping');
return $this->executeShared($mapping[4], $mapping[2], $url->params);
}
}
$this->debugBar['time']->stopMeasure('sharedMapping');
// this class mappings
$this->debugBar['time']->startMeasure('mapping', 'Checking mappings');
$mappingsCount = count($this->mappings);
for ($i = 0; $i < $mappingsCount; ++$i) {
$mapping = $this->mappings[$i];
$url = new Box_UrlHelper($mapping[0], $mapping[1], $mapping[3], $this->url);
if ($url->match) {
$this->debugBar['time']->stopMeasure('mapping');
return $this->execute($mapping[2], $url->params);
}
}
$this->debugBar['time']->stopMeasure('mapping');
$e = new FOSSBilling\InformationException('Page :url not found', [':url' => $this->url], 404);
/home/wowzahos/domains/app.wowzahosting.com/public_html/library/Box/App.php
public function delete(string $url, string $methodName, ?array $conditions = [], ?string $class = null): void
{
$this->event('delete', $url, $methodName, $conditions, $class);
}
public function run(): string
{
$this->debugBar['time']->startMeasure('registerModule', 'Registering module routes');
$this->registerModule();
$this->debugBar['time']->stopMeasure('registerModule');
$this->debugBar['time']->startMeasure('init', 'Initializing the app');
$this->init();
$this->debugBar['time']->stopMeasure('init');
$this->debugBar['time']->startMeasure('checkperm', 'Checking access to module');
$this->checkPermission();
$this->debugBar['time']->stopMeasure('checkperm');
return $this->processRequest();
}
/**
* @param string $path
*/
public function redirect($path): never
{
$location = $this->di['url']->link($path);
header("Location: $location");
exit;
}
public function render($fileName, $variableArray = []): string
{
return 'Rendering ' . $fileName;
}
public function sendFile($filename, $contentType, $path): false|int
{
header("Content-type: $contentType");
/home/wowzahos/domains/app.wowzahosting.com/public_html/index.php
// If HTTP error code has been passed, handle it.
if (!is_null($http_err_code)) {
switch ($http_err_code) {
case '404':
$e = new FOSSBilling\Exception('Page :url not found', [':url' => $url], 404);
echo $app->show404($e);
break;
default:
$http_err_code = intval($http_err_code);
http_response_code($http_err_code);
$e = new FOSSBilling\Exception('HTTP Error :err_code occurred while attempting to load :url', [':err_code' => $http_err_code, ':url' => $url], $http_err_code);
echo $app->render('error', ['exception' => $e]);
}
exit;
}
// If no HTTP error passed, run the app.
echo $app->run();
exit;