/
jk-banners.php
99 lines (93 loc) · 2.76 KB
/
jk-banners.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php
/**
* Plugin Name: JK Banners
* Plugin URI: http://jeffkilroy.com
* Description: Manage and view banner posts
* Version: 1.0.0
* Author: Jeffrey Kilroy
* Author URI: http://jeffkilroy.com
* License: GPL2
*/
//Require JK PostDeveloper
if(!class_exists('WPDeveloper')){
require_once( 'classes/WPDeveloper.php' );
}
$wpDeveloper = new WPDeveloper();
$wpDeveloper->verify();
if(!class_exists('Banner')){
require_once __DIR__.'/classes/Banner.php';
}
//Create Post Type
add_action( 'init', 'jkbanners_init' );
function jkbanners_init(){
jkbanners_create_banner_post_type();
//Shortcodes
add_shortcode( 'banners', 'jkbanners_display_banners' );
add_shortcode( 'banner', 'jkbanners_display_banner' );
}
function jkbanners_create_banner_post_type(){
$postType = new PostType();
$postType->name = 'jkbanner';
$postType->urlSlug = 'banner';
$postType->labelPlural = 'Banners';
$postType->labelSingular = 'Banner';
$postType->excerptTitle = 'URL';
$postType->excerptHelp = 'URL directed to when clicked';
$postType->iconCSSContent = '\f116';
$postType->create();
}
function jkbanners_display_banner( $atts ) {
$a = shortcode_atts( array(
'id' => false,
), $atts );
$output = array();
//
$banner = new Banner();
if(!$a['id']){
$banner->getMostRecent();
}else{
$banner->getByPostId($a['id']);
}
//
$bannerTemplate = new Template();
$bannerTemplateResponse = $bannerTemplate->get(__DIR__.'/templates/single.php',array('banner'=>$banner));
$output[] = $bannerTemplateResponse;
$output = implode("\n",$output);
return $output;
}
function jkbanners_display_banners( $atts ) {
$a = shortcode_atts( array(
'id' => false,
'filter_menu_order' => false,
'template' => 'list',
), $atts );
$output = array();
//
$banners = array();
$banners = Banner::getAll();
if($a['filter_menu_order']){
foreach($banners as $bk=>$banner){
if($banner->post->menu_order != $a['filter_menu_order']){
unset($banners[$bk]);
}
}
}
//
$bannerTemplate = new Template();
//One random banner
if($a['template'] == 'random-single'){
//get a random item
$banner = $banners[array_rand($banners)];
//show single banner
$bannerTemplateResponse = $bannerTemplate->get(__DIR__.'/templates/single.php',array('banner'=>$banner));
$output[] = $bannerTemplateResponse;
}
//List all banners
if($a['template'] == 'list'){
$bannerTemplateResponse = $bannerTemplate->get(__DIR__.'/templates/list.php',array('banners'=>$banners));
$output[] = $bannerTemplateResponse;
}
//
$output = implode("\n",$output);
return $output;
}