first commit
This commit is contained in:
9
autoload/factory/.htaccess
Normal file
9
autoload/factory/.htaccess
Normal 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>
|
||||
63
autoload/factory/class.Apanel.php
Normal file
63
autoload/factory/class.Apanel.php
Normal 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;
|
||||
}
|
||||
}
|
||||
530
autoload/factory/class.Cron.php
Normal file
530
autoload/factory/class.Cron.php
Normal 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' ];
|
||||
}
|
||||
}
|
||||
113
autoload/factory/class.Tickets.php
Normal file
113
autoload/factory/class.Tickets.php
Normal 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;
|
||||
}
|
||||
}
|
||||
64
autoload/factory/class.Users.php
Normal file
64
autoload/factory/class.Users.php
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user