| Server IP : 27.254.66.5 / Your IP : 216.73.217.39 Web Server : Apache/2 System : Linux cs82.hostneverdie.com 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64 User : technic2 ( 1951) PHP Version : 7.4.30 Disable Function : apache_child_terminate, apache_setenv, define_syslog_variables, escapeshellarg, escapeshellcmd,exec, fp, fput, highlight_file, ini_alter, ini_restore, inject_code, passthru,phpAds_remoteInfo, phpAds_XmlRpc,phpAds_xmlrpcDecode, phpAds_xmlrpcEncode, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid,posix_setuid, posix_setuid, posix_uname,proc_open,proc_close, proc_get_status, proc_nice, proc_terminate, shell_exec, syslog, system, xmlrpc_entity_decode, show_source,sleep,pcntl_exec,virtual,suexec,dbmopen,dl,symlink,disk_free_space,diskfreespace,leak MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/technic2/public_html/old-website/wp-content/plugins/popup-maker/classes/Repository/ |
Upload File : |
<?php
/*******************************************************************************
* Copyright (c) 2019, Code Atlantic LLC
******************************************************************************/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Class PUM_Repository_Popups
*/
class PUM_Repository_Popups extends PUM_Abstract_Repository_Posts {
/**
* @var string
*/
protected $model = 'PUM_Model_Popup';
/**
* @return string
*/
protected function get_post_type() {
return 'popup';
}
/**
* Build the args for WP Query.
*
* @param array $args
*
* @return array
*/
protected function build_wp_query_args( $args = array() ) {
// Ordering
$orderby = array();
// Meta Query
if ( ! isset( $args['meta_query'] ) ) {
$args['meta_query'] = array(
'relation' => 'AND',
);
}
if ( isset( $args['popups'] ) ) {
/**
* If Looking for specific popups. No need for filtering.
*/
$args['post__in'] = wp_parse_id_list( $args['popups'] );
unset( $args['popups'] );
} elseif ( empty( $args['post__in'] ) ) {
}
/**
* Apply easy ordering options or allow setting it manually.
*/
if ( ! isset( $args['orderby'] ) ) {
$orderby['post_modified'] = isset( $args['order'] ) ? $args['order'] : 'DESC';
} elseif ( ! empty( $args['post__in'] ) && in_array( $args['orderby'], array( 'post__in', 'user_order' ) ) ) {
// This one can't be part of an $orderby array so needs to override.
$orderby = 'post__in';
} else {
switch ( $args['orderby'] ) {
case 'name' :
$orderby['post_title'] = isset( $args['order'] ) ? $args['order'] : 'ASC';
break;
case 'date' :
$orderby['post_date'] = isset( $args['order'] ) ? $args['order'] : 'DESC';
break;
case 'activity':
$orderby['post_modified'] = isset( $args['order'] ) ? $args['order'] : 'DESC';
break;
default:
$orderby[ $args['orderby'] ] = isset( $args['order'] ) ? $args['order'] : 'DESC';
break;
}
}
// Replace the orderby property with the new $orderby array.
$args['orderby'] = $orderby;
// Clear unneeded values.
unset( $args['order'] );
return parent::build_wp_query_args( $args );
}
/**
* @param int $id
*
* @return PUM_Model_Popup|WP_Post
* @throws \InvalidArgumentException
*/
public function get_item( $id ) {
return parent::get_item( $id );
}
/**
* @param array $args
*
* @return PUM_Model_Popup[]|WP_Post[]
*/
public function get_items( $args = array() ) {
return parent::get_items( $args );
}
/**
* @param array $data
*
* @return PUM_Model_Popup|WP_Post
* @throws InvalidArgumentException
*/
public function create_item( $data ) {
return parent::create_item( $data );
}
/**
* @param int $id
* @param array $data
*
* @return PUM_Model_Popup|WP_Post
* @throws Exception
*/
public function update_item( $id, $data ) {
return parent::update_item( $id, $data );
}
/**
* Assert that data is valid.
*
* @param array $data
*
* @throws InvalidArgumentException
*/
protected function assert_data( $data ) {
// REQUIRED: Implement assert_data() method.
}
}