first commit

This commit is contained in:
2025-04-30 23:59:49 +02:00
commit 652863d54f
117 changed files with 12276 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

View File

@@ -0,0 +1,63 @@
<?
namespace factory;
class Apanel {
static public function check_delivery( $basket )
{
$add_delivery = false;
foreach ( $basket as $key => $val )
{
if ( strpos( $val['name'], 'Bilet prezentowy' ) !== false )
{
$add_delivery = true;
break;
}
}
if ( !$add_delivery )
{
foreach ( $basket as $key => $val )
{
if ( $val['product_id'] == 999999 )
{
unset( $basket[$key] );
}
}
}
return $basket;
}
static public function recalculate_ticket_protection( $basket ) {
if ( !\S::get_session( 'ticket_protection' ) )
return $basket;
$quantity = 0;
foreach ( $basket as $key => $val ) {
if( $val['product_id'] != 0 and $val['product_id'] != 999999 ) {
$quantity += $val['quantity'];
}
}
if ( $quantity > 0 )
{
foreach ( $basket as $key => $val ) {
if ( $val['product_id'] == 0 ) {
unset( $basket[$key] );
}
}
}
else
{
foreach ( $basket as $key => $val ) {
if ( $val['product_id'] == 0 ) {
unset( $basket[$key] );
}
}
}
return $basket;
}
}

View File

@@ -0,0 +1,530 @@
<?php
namespace factory;
class Cron
{
public static function remove_points_history()
{
global $mdb;
if ( $results = $mdb -> delete( 'users_points_history', [ 'date[<]' => date( 'Y-m-d H:i:s', strtotime( '-30 days', time() ) ) ] ) )
{
return [
'status' => 'ok',
'msg' => 'Usuwam historię punktów.'
];
}
return [ 'status' => 'bad' ];
}
public static function update_points()
{
global $mdb;
if ( $mdb -> update( 'users', [ 'points[+]' => 100, 'points_update' => date( 'Y-m-d' ) ], [ 'OR' => [ 'points_update[!]' => date( 'Y-m-d' ), 'points_update' => null ] ] ) )
{
return [
'status' => 'ok',
'msg' => 'Dodaję punkty.'
];
}
return [ 'status' => 'bad' ];
}
public static function send_push()
{
global $mdb;
$sent_mail = false;
/* powiadomienia natychmiastowe */
$users = $mdb -> query( 'SELECT '
. 'id, email, pushover_api, pushover_user '
. 'FROM '
. 'users '
. 'WHERE '
. 'id IN ('
. 'SELECT user_id FROM posters WHERE id IN ( '
. 'SELECT poster_id FROM posters_history WHERE send_pushover = 0 AND pushover_settings = 1 GROUP BY poster_id ) ) '
. 'AND '
. 'pushover_api IS NOT NULL '
. 'AND '
. 'pushover_user IS NOT NULL' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $users ) and count( $users ) )
{
foreach ( $users as $user )
{
$posters = $mdb -> query( 'SELECT '
. 'pr.id, url, title, price, comment '
. 'FROM '
. 'posters_history AS pr '
. 'INNER JOIN posters AS p ON p.id = pr.poster_id '
. 'WHERE '
. 'send_pushover = 0 '
. 'AND '
. 'pushover_settings = 1 '
. 'AND '
. 'user_id = ' . $user['id'] . ' LIMIT 1' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $posters ) and count( $posters ) )
{
foreach ( $posters as $poster )
{
$posters_id[] = $poster['id'];
$auctions[] = $poster;
}
\factory\Posters::send_push( $user['email'], $auctions, $user['pushover_api'], $user['pushover_user'] );
$mdb -> query( 'UPDATE posters_history SET send_pushover = 1 WHERE id IN ( ' . implode( ',', $posters_id ) . ')' );
}
}
return [
'status' => 'ok',
'msg' => 'Wysyłam powiadomienia push o znalezionych ogłoszeniach.'
];
}
/* powiadomienia zbiorcze co godzinę */
$users = $mdb -> query( 'SELECT '
. 'id, email, pushover_api, pushover_user '
. 'FROM '
. 'users '
. 'WHERE '
. 'id IN ('
. 'SELECT user_id FROM posters WHERE id IN ( '
. 'SELECT poster_id FROM posters_history AS pr WHERE send_pushover = 0 AND pushover_settings = 2 AND DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) = \'' . date( 'Y-m-d H', strtotime( '-1 hours', time() ) ) . '\' GROUP BY poster_id ) ) '
. 'AND '
. 'pushover_api IS NOT NULL '
. 'AND '
. 'pushover_user IS NOT NULL' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $users ) and count( $users ) )
{
foreach ( $users as $user )
{
$posters = $mdb -> query( 'SELECT '
. 'pr.id, url, title, price, comment '
. 'FROM '
. 'posters_history AS pr '
. 'INNER JOIN posters AS p ON p.id = pr.poster_id '
. 'WHERE '
. 'send_pushover = 0 '
. 'AND '
. 'pushover_settings = 2 '
. 'AND '
. 'DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) = \'' . date( 'Y-m-d H', strtotime( '-1 hours', time() ) ) . '\' '
. 'AND '
. 'user_id = ' . $user['id'] . ' LIMIT 1' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $posters ) and count( $posters ) )
{
foreach ( $posters as $poster )
{
$posters_id[] = $poster['id'];
$auctions[] = $poster;
}
\factory\Posters::send_push( $user['email'], $auctions, $user['pushover_api'], $user['pushover_user'] );
$mdb -> query( 'UPDATE posters_history SET send_pushover = 1 WHERE id IN ( ' . implode( ',', $posters_id ) . ')' );
}
}
return [
'status' => 'ok',
'msg' => 'Wysyłam powiadomienia push o znalezionych ogłoszeniach.'
];
}
if ( date( 'Y-m-d H:i:s' ) > date( 'Y-m-d 08:00:00' ) )
{
/* powiadomienia zbiorcze dwa razy dziennie - o godzinie 8 */
$users = $mdb -> query( 'SELECT '
. 'id, email, pushover_api, pushover_user '
. 'FROM '
. 'users '
. 'WHERE '
. 'id IN ('
. 'SELECT user_id FROM posters WHERE id IN ( '
. 'SELECT poster_id FROM posters_history AS pr WHERE send_pushover = 0 AND pushover_settings = 3 AND DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) < \'' . date( 'Y-m-d 08' ) . '\' GROUP BY poster_id ) ) '
. 'AND '
. 'pushover_api IS NOT NULL '
. 'AND '
. 'pushover_user IS NOT NULL' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $users ) and count( $users ) )
{
foreach ( $users as $user )
{
$posters = $mdb -> query( 'SELECT '
. 'pr.id, url, title, price, comment '
. 'FROM '
. 'posters_history AS pr '
. 'INNER JOIN posters AS p ON p.id = pr.poster_id '
. 'WHERE '
. 'send_pushover = 0 '
. 'AND '
. 'pushover_settings = 3 '
. 'AND '
. 'DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) < \'' . date( 'Y-m-d 08' ) . '\' '
. 'AND '
. 'user_id = ' . $user['id'] . ' LIMIT 1' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $posters ) and count( $posters ) )
{
foreach ( $posters as $poster )
{
$posters_id[] = $poster['id'];
$auctions[] = $poster;
}
\factory\Posters::send_push( $user['email'], $auctions, $user['pushover_api'], $user['pushover_user'] );
$mdb -> query( 'UPDATE posters_history SET send_pushover = 1 WHERE id IN ( ' . implode( ',', $posters_id ) . ')' );
}
}
return [
'status' => 'ok',
'msg' => 'Wysyłam powiadomienia push o znalezionych ogłoszeniach.'
];
}
}
if ( date( 'Y-m-d H:i:s' ) > date( 'Y-m-d 20:00:00' ) )
{
/* powiadomienia zbiorcze dwa razy dziennie - o godzinie 20 */
$users = $mdb -> query( 'SELECT '
. 'id, email, pushover_api, pushover_user '
. 'FROM '
. 'users '
. 'WHERE '
. 'id IN ('
. 'SELECT user_id FROM posters WHERE id IN ( '
. 'SELECT poster_id FROM posters_history AS pr WHERE send_pushover = 0 AND pushover_settings = 3 AND DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) < \'' . date( 'Y-m-d 20' ) . '\' GROUP BY poster_id ) ) '
. 'AND '
. 'pushover_api IS NOT NULL '
. 'AND '
. 'pushover_user IS NOT NULL' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $users ) and count( $users ) )
{
foreach ( $users as $user )
{
$posters = $mdb -> query( 'SELECT '
. 'pr.id, url, title, price, comment '
. 'FROM '
. 'posters_history AS pr '
. 'INNER JOIN posters AS p ON p.id = pr.poster_id '
. 'WHERE '
. 'send_pushover = 0 '
. 'AND '
. 'pushover_settings = 3 '
. 'AND '
. 'DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) < \'' . date( 'Y-m-d 20' ) . '\' '
. 'AND '
. 'user_id = ' . $user['id'] . ' LIMIT 1' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $posters ) and count( $posters ) )
{
foreach ( $posters as $poster )
{
$posters_id[] = $poster['id'];
$auctions[] = $poster;
}
\factory\Posters::send_push( $user['email'], $auctions, $user['pushover_api'], $user['pushover_user'] );
$mdb -> query( 'UPDATE posters_history SET send_pushover = 1 WHERE id IN ( ' . implode( ',', $posters_id ) . ')' );
}
}
return [
'status' => 'ok',
'msg' => 'Wysyłam powiadomienia push o znalezionych ogłoszeniach.'
];
}
}
if ( date( 'Y-m-d H:i:s' ) > date( 'Y-m-d 20:00:00' ) )
{
/* powiadomienia zbiorcze raz dziennie - o godzinie 20 */
$users = $mdb -> query( 'SELECT '
. 'id, email, pushover_api, pushover_user '
. 'FROM '
. 'users '
. 'WHERE '
. 'id IN ('
. 'SELECT user_id FROM posters WHERE id IN ( '
. 'SELECT poster_id FROM posters_history AS pr WHERE send_pushover = 0 AND pushover_settings = 4 AND DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) < \'' . date( 'Y-m-d 20' ) . '\' GROUP BY poster_id ) ) '
. 'AND '
. 'pushover_api IS NOT NULL '
. 'AND '
. 'pushover_user IS NOT NULL' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $users ) and count( $users ) )
{
foreach ( $users as $user )
{
$posters = $mdb -> query( 'SELECT '
. 'pr.id, url, title, price, comment '
. 'FROM '
. 'posters_history AS pr '
. 'INNER JOIN posters AS p ON p.id = pr.poster_id '
. 'WHERE '
. 'send_pushover = 0 '
. 'AND '
. 'pushover_settings = 4 '
. 'AND '
. 'DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) < \'' . date( 'Y-m-d 20' ) . '\' '
. 'AND '
. 'user_id = ' . $user['id'] . ' LIMIT 1' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $posters ) and count( $posters ) )
{
foreach ( $posters as $poster )
{
$posters_id[] = $poster['id'];
$auctions[] = $poster;
}
\factory\Posters::send_push( $user['email'], $auctions, $user['pushover_api'], $user['pushover_user'] );
$mdb -> query( 'UPDATE posters_history SET send_pushover = 1 WHERE id IN ( ' . implode( ',', $posters_id ) . ')' );
}
}
return [
'status' => 'ok',
'msg' => 'Wysyłam powiadomienia push o znalezionych ogłoszeniach.'
];
}
}
return [ 'status' => 'bad' ];
}
public static function send_emails()
{
global $mdb;
$sent_mail = false;
/* powiadomienia natychmiastowe */
$users = $mdb -> query( 'SELECT '
. 'id, email '
. 'FROM '
. 'users '
. 'WHERE '
. 'id IN ('
. 'SELECT user_id FROM posters WHERE id IN ( '
. 'SELECT poster_id FROM posters_history WHERE send_email = 0 AND mail_settings = 1 GROUP BY poster_id ) )' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $users ) and count( $users ) )
{
foreach ( $users as $user )
{
$posters = $mdb -> query( 'SELECT '
. 'pr.id, url, title, price, comment, mail_settings '
. 'FROM '
. 'posters_history AS pr '
. 'INNER JOIN posters AS p ON p.id = pr.poster_id '
. 'WHERE '
. 'send_email = 0 '
. 'AND '
. 'mail_settings = 1 '
. 'AND '
. 'user_id = ' . $user['id'] ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $posters ) and count( $posters ) )
{
foreach ( $posters as $poster )
{
$posters_id[] = $poster['id'];
$auctions[] = $poster;
}
\factory\Posters::send_emails( $user['email'], $auctions );
$mdb -> query( 'UPDATE posters_history SET send_email = 1 WHERE id IN ( ' . implode( ',', $posters_id ) . ')' );
}
}
return [
'status' => 'ok',
'msg' => 'Wysyłam powiadomienia mailowe o znalezionych ogłoszeniach.'
];
}
/* powiadomienia zbiorcze co godzinę */
$users = $mdb -> query( 'SELECT '
. 'id, email '
. 'FROM '
. 'users '
. 'WHERE '
. 'id IN ('
. 'SELECT user_id FROM posters WHERE id IN ( '
. 'SELECT poster_id FROM posters_history AS pr WHERE send_email = 0 AND mail_settings = 2 AND DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) = \'' . date( 'Y-m-d H', strtotime( '-1 hours', time() ) ) . '\' GROUP BY poster_id ) )' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $users ) and count( $users ) )
{
foreach ( $users as $user )
{
$posters = $mdb -> query( 'SELECT '
. 'pr.id, url, title, price, comment, mail_settings '
. 'FROM '
. 'posters_history AS pr '
. 'INNER JOIN posters AS p ON p.id = pr.poster_id '
. 'WHERE '
. 'send_email = 0 '
. 'AND '
. 'mail_settings = 2 '
. 'AND '
. 'DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) = \'' . date( 'Y-m-d H', strtotime( '-1 hours', time() ) ) . '\' '
. 'AND '
. 'user_id = ' . $user['id'] ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $posters ) and count( $posters ) )
{
foreach ( $posters as $poster )
{
$posters_id[] = $poster['id'];
$auctions[] = $poster;
}
\factory\Posters::send_emails( $user['email'], $auctions, ' | mail zbiorczy co 1h' );
$mdb -> query( 'UPDATE posters_history SET send_email = 1 WHERE id IN ( ' . implode( ',', $posters_id ) . ')' );
}
}
return [
'status' => 'ok',
'msg' => 'Wysyłam powiadomienia mailowe o znalezionych ogłoszeniach.'
];
}
if ( date( 'Y-m-d H:i:s' ) > date( 'Y-m-d 08:00:00' ) )
{
/* powiadomienia zbiorcze dwa razy dziennie - o godzinie 8 */
$users = $mdb -> query( 'SELECT '
. 'id, email '
. 'FROM '
. 'users '
. 'WHERE '
. 'id IN ('
. 'SELECT user_id FROM posters WHERE id IN ( '
. 'SELECT poster_id FROM posters_history AS pr WHERE send_email = 0 AND mail_settings = 3 AND DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) < \'' . date( 'Y-m-d 08' ) . '\' GROUP BY poster_id ) )' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $users ) and count( $users ) )
{
foreach ( $users as $user )
{
$posters = $mdb -> query( 'SELECT '
. 'pr.id, url, title, price, comment, mail_settings '
. 'FROM '
. 'posters_history AS pr '
. 'INNER JOIN posters AS p ON p.id = pr.poster_id '
. 'WHERE '
. 'send_email = 0 '
. 'AND '
. 'mail_settings = 3 '
. 'AND '
. 'DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) < \'' . date( 'Y-m-d 08' ) . '\' '
. 'AND '
. 'user_id = ' . $user['id'] ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $posters ) and count( $posters ) )
{
foreach ( $posters as $poster )
{
$posters_id[] = $poster['id'];
$auctions[] = $poster;
}
\factory\Posters::send_emails( $user['email'], $auctions, ' | mail zbiorczy 2 razy dziennie (08:00)' );
$mdb -> query( 'UPDATE posters_history SET send_email = 1 WHERE id IN ( ' . implode( ',', $posters_id ) . ')' );
}
}
return [
'status' => 'ok',
'msg' => 'Wysyłam powiadomienia mailowe o znalezionych ogłoszeniach.'
];
}
}
if ( date( 'Y-m-d H:i:s' ) > date( 'Y-m-d 20:00:00' ) )
{
/* powiadomienia zbiorcze dwa razy dziennie - o godzinie 20 */
$users = $mdb -> query( 'SELECT '
. 'id, email '
. 'FROM '
. 'users '
. 'WHERE '
. 'id IN ('
. 'SELECT user_id FROM posters WHERE id IN ( '
. 'SELECT poster_id FROM posters_history AS pr WHERE send_email = 0 AND mail_settings = 3 AND DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) < \'' . date( 'Y-m-d 20' ) . '\' GROUP BY poster_id ) )' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $users ) and count( $users ) )
{
foreach ( $users as $user )
{
$posters = $mdb -> query( 'SELECT '
. 'pr.id, url, title, price, comment, mail_settings '
. 'FROM '
. 'posters_history AS pr '
. 'INNER JOIN posters AS p ON p.id = pr.poster_id '
. 'WHERE '
. 'send_email = 0 '
. 'AND '
. 'mail_settings = 3 '
. 'AND '
. 'DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) < \'' . date( 'Y-m-d 20' ) . '\' '
. 'AND '
. 'user_id = ' . $user['id'] ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $posters ) and count( $posters ) )
{
foreach ( $posters as $poster )
{
$posters_id[] = $poster['id'];
$auctions[] = $poster;
}
\factory\Posters::send_emails( $user['email'], $auctions, ' | mail zbiorczy 2 razy dziennie (20:00)' );
$mdb -> query( 'UPDATE posters_history SET send_email = 1 WHERE id IN ( ' . implode( ',', $posters_id ) . ')' );
}
}
return [
'status' => 'ok',
'msg' => 'Wysyłam powiadomienia mailowe o znalezionych ogłoszeniach.'
];
}
}
if ( date( 'Y-m-d H:i:s' ) > date( 'Y-m-d 20:00:00' ) )
{
/* powiadomienia zbiorcze raz dziennie - o godzinie 20 */
$users = $mdb -> query( 'SELECT '
. 'id, email '
. 'FROM '
. 'users '
. 'WHERE '
. 'id IN ('
. 'SELECT user_id FROM posters WHERE id IN ( '
. 'SELECT poster_id FROM posters_history AS pr WHERE send_email = 0 AND mail_settings = 4 AND DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) < \'' . date( 'Y-m-d 20' ) . '\' GROUP BY poster_id ) )' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $users ) and count( $users ) )
{
foreach ( $users as $user )
{
$posters = $mdb -> query( 'SELECT '
. 'pr.id, url, title, price, comment, mail_settings '
. 'FROM '
. 'posters_history AS pr '
. 'INNER JOIN posters AS p ON p.id = pr.poster_id '
. 'WHERE '
. 'send_email = 0 '
. 'AND '
. 'mail_settings = 4 '
. 'AND '
. 'DATE_FORMAT( pr.date, \'%Y-%m-%d %H\' ) < \'' . date( 'Y-m-d 20' ) . '\' '
. 'AND '
. 'user_id = ' . $user['id'] ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $posters ) and count( $posters ) )
{
foreach ( $posters as $poster )
{
$posters_id[] = $poster['id'];
$auctions[] = $poster;
}
\factory\Posters::send_emails( $user['email'], $auctions, ' | mail zbiorczy raz dziennie (20:00)' );
$mdb -> query( 'UPDATE posters_history SET send_email = 1 WHERE id IN ( ' . implode( ',', $posters_id ) . ')' );
}
}
return [
'status' => 'ok',
'msg' => 'Wysyłam powiadomienia mailowe o znalezionych ogłoszeniach.'
];
}
}
return [ 'status' => 'bad' ];
}
}

View File

@@ -0,0 +1,113 @@
<?
namespace factory;
class Tickets {
static public function recalculate_ticket_protection( $basket ) {
global $settings;
if ( !\S::get_session( 'ticket_protection' ) )
return $basket;
$quantity = 0;
foreach ( $basket as $key => $val ) {
foreach ( $val as $key2 => $val2 ) {
if ( $key != 'gift-price' and $key != 'ticket-protection' ) {
$quantity += $val2['quantity'];
}
}
}
if ( $quantity > 0 ) {
$basket['ticket-protection'][0] = [
'name' => 'Ochrona kupującego',
'ticket_price' => $settings['tickets']['ticket-protection']['price'],
'quantity' => $quantity,
'product_id' => 0,
'ticket_id' => 'ticket-protection',
];
} else {
unset( $basket['ticket-protection'] );
}
return $basket;
}
static public function remove_ticket_protection() {
global $settings;
$basket = \S::get_session( 'basket' );
if ( isset( $basket['ticket-protection'] ) ) {
unset( $basket['ticket-protection'] );
}
\S::set_session( 'basket', $basket );
return true;
}
static public function add_ticket_protection() {
global $settings;
$basket = \S::get_session( 'basket' );
$quantity = 0;
foreach ( $basket as $key => $val ) {
foreach ( $val as $key2 => $val2 ) {
if ( $key != 'gift-price' and $key != 'ticket-protection' ) {
$quantity += $val2['quantity'];
}
}
}
$basket['ticket-protection'][0] = [
'name' => 'Ochrona kupującego',
'ticket_price' => $settings['tickets']['ticket-protection']['price'],
'quantity' => $quantity,
'product_id' => 0,
'ticket_id' => 'ticket-protection',
];
\S::set_session( 'basket', $basket );
return true;
}
static public function get_order_details_by_hash( $hash )
{
global $mdb;
$order = $mdb -> get( 'orders', '*', [ 'hash' => $hash]);
if ( $order )
{
$order['tickets'] = $mdb -> select( 'order_tickets', '*', [ 'order_id' => $order['id']]);
}
if ( $order ){
return $order;
}
return false;
}
static public function get_order_details_by_przelewy24_hash( $hash )
{
global $mdb;
$order = $mdb -> get( 'orders', '*', [ 'payment_hash' => $hash]);
if ( $order )
{
$order['tickets'] = $mdb -> select( 'order_tickets', '*', [ 'order_id' => $order['id']]);
}
if ( $order ){
return $order;
}
return false;
}
}

View File

@@ -0,0 +1,64 @@
<?php
namespace factory;
class Users
{
static public function user_details( $user_id )
{
global $mdb;
return $mdb -> get( 'users', '*', [ 'id' => $user_id ] );
}
public static function get_default_project( $user_id )
{
global $mdb;
return $mdb -> get( 'users', 'default_project', [ 'id' => $user_id ] );
}
public static function get_user_email( $user_id )
{
global $mdb;
return $mdb -> get( 'users', 'email', [ 'id' => $user_id ] );
}
public static function user_name( $user_id )
{
global $mdb;
$user = $mdb -> get( 'users', '*', [ 'id' => $user_id ] );
return $user['name'] . ' ' . $user['surname'];
}
public static function users_list()
{
global $mdb;
return $mdb -> select( 'users', '*' );
}
public static function settings_save( $user_id, $pushover_api, $pushover_user )
{
global $mdb;
return $mdb -> update( 'users', [
'pushover_api' => $pushover_api,
'pushover_user' => $pushover_user
], [
'id' => $user_id
] );
}
public static function login( $email, $password )
{
global $mdb;
$result = $mdb -> get( 'users', '*', [ 'email' => strtolower( $email ) ] );
if ( $result === false )
return false;
else
{
if ( $password == $result['password'] )
return $result;
else
return false;
}
}
}