Files
shopPRO/cron-turstmate.php
Jacek Pyziak 0402dbee76 ver. 0.280: Articles frontend migration, class.Article removal, Settings facade cleanup
- Add 8 frontend methods to ArticleRepository (with Redis cache)
- Create front\Views\Articles (rendering + utility methods)
- Rewire front\view\Site::show() and front\controls\Site::route() to repo + Views
- Update 5 article templates to use \front\Views\Articles::
- Convert front\factory\Articles and front\view\Articles to facades
- Remove class.Article (entity + static methods migrated to repo + Views)
- Remove front\factory\Settings facade (already migrated)
- Fix: eliminate global $lang from articleNoindex(), inline page sort query
- Tests: 450 OK, 1431 assertions (+13 new)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 15:52:03 +01:00

100 lines
3.0 KiB
PHP

<?php
use shop\Order;
error_reporting( E_ALL ^ E_NOTICE ^ E_STRICT ^ E_WARNING ^ E_DEPRECATED );
function __autoload_my_classes( $classname )
{
$q = explode( '\\', $classname );
$c = array_pop( $q );
$f = 'autoload/' . implode( '/', $q ) . '/class.' . $c . '.php';
if ( file_exists( $f ) )
require_once( $f );
else
{
$f = 'autoload/' . implode( '/', $q ) . '/' . $c . '.php';
if ( file_exists( $f ) )
require_once( $f );
}
}
spl_autoload_register( '__autoload_my_classes' );
date_default_timezone_set( 'Europe/Warsaw' );
require_once 'config.php';
require_once 'libraries/medoo/medoo.php';
require_once 'libraries/phpmailer/class.phpmailer.php';
require_once 'libraries/phpmailer/class.smtp.php';
session_start();
if ( !isset( $_SESSION[ 'check' ] ) )
{
session_regenerate_id();
$_SESSION[ 'check' ] = true;
$_SESSION[ 'ip' ] = $_SERVER[ 'REMOTE_ADDR' ];
}
if ( $_SESSION[ 'ip' ] !== $_SERVER[ 'REMOTE_ADDR' ] )
{
session_destroy();
header( 'Location: /' );
exit;
}
$mdb = new medoo( [
'database_type' => 'mysql',
'database_name' => $database[ 'name' ],
'server' => $database[ 'host' ],
'username' => $database[ 'user' ],
'password' => $database[ 'password' ],
'charset' => 'utf8'
] );
if ( !$config['trustmate']['enabled'] )
{
echo 'TrustMate is not enabled.';
exit;
}
$settings = ( new \Domain\Settings\SettingsRepository( $mdb ) )->allSettings();
$order_id = $mdb -> get( 'pp_shop_orders', '*', [ 'AND' => [ 'status' => 6, 'trustmate_send' => 0 ] ] );
if ( is_array( $order_id ) and $order_id['id'] )
{
$order = \front\factory\ShopOrder::order_details( $order_id['id'] );
?>
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>TrustMate Cron</title>
<script>
TRUST_MATE_USER_NAME = '<?= $order['client_name'];?>';
TRUST_MATE_USER_EMAIL = '<?= $order['client_email'];?>';
TRUST_MATE_ORDER_NUMBER = '<?= $order['id'];?>';
TRUST_MATE_COMPANY_UUID = '<?= $config['trustmate']['uid'];?>';
TRUSTMATE_PRODUCTS = [
<? foreach ( $order['products'] as $product ):?>
{
'local_id': <?= (int)$product['product_id'];?>,
'name': '<?= $product['name'];?>',
'product_url': 'https://pomysloweprezenty.pl<?= \front\factory\ShopProduct::product_url( new \shop\Product( $product['product_id'] ) );?>',
"image_url": "https://pomysloweprezenty.pl<?= \front\factory\ShopProduct::product_image( $product['product_id'] );?>"
}<? if ( $product != end( $order['products'] ) ) echo ',';?>
<? endforeach;?>
];
</script>
<script type="text/javascript" src='https://trustmate.io/api/invitation/script'></script>
</script>
</head>
<body>
<h1>TrustMate Cron</h1>
<p>Wysłano zaproszenie do TrustMate dla zamówienia nr <?= $order['id'];?>.</p>
<?
$mdb -> update( 'pp_shop_orders', [ 'trustmate_send' => 1 ], [ 'id' => $order['id'] ] );
?>
</body>
</html>
<?
}