PluginProbe
oik / 1.5
oik v1.5
1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.2 1.3 1.3.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.0.1 2.1 2.2 2.3 2.4 2.5 2.5.1 All 71 releases
oik / oik.php

oik.php in oik 1.5, at oik.php

269 lines 10.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /*
4 Plugin Name: oik base plugin
5 Plugin URI: http://www.oik-plugins.com/oik
6 Description: Easy to use shortcode macros for often included key-information
7 Version: 1.5
8 Author: bobbingwide
9 Author URI: http://www.bobbingwide.com
10 License: GPL2
11
12 Copyright 2010, 2011 Bobbing Wide (email : herb@bobbingwide.com )
13
14 This program is free software; you can redistribute it and/or modify
15 it under the terms of the GNU General Public License version 2,
16 as published by the Free Software Foundation.
17
18 You may NOT assume that you can use any other version of the GPL.
19
20 This program is distributed in the hope that it will be useful,
21 but WITHOUT ANY WARRANTY; without even the implied warranty of
22 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 GNU General Public License for more details.
24
25 The license for this software can likely be found here:
26 http://www.gnu.org/licenses/gpl-2.0.html
27
28 */
29 global $bw_options;
30
31
32 //echo '<p>BATa='.$bwapi_trace_test.'=aBAT</p>';
33 /* All of the oik plugins and many of the common functions include calls to bw_trace so we
34 need to include it
35 */
36
37 require_once( 'bwtrace.inc' );
38 require_once( "bobbfunc.inc" );
39 require_once( "bobblink.inc" );
40 require_once( "bobbcomp.inc" );
41 require_once( "bwlink.inc" );
42 require_once( "bobbgoog.inc" );
43
44 function oik_version() {
45 return bw_oik_version();
46 }
47
48 $bobb_prefix = NULL;
49 $bw_echo = NULL;
50
51 $theme = "bobbingwide";
52 $art_theme = NULL;
53 $bobb_theme = NULL;
54
55 require_once( "oik-shortc-shortcodes.php" );
56 require_once( "oik-add-shortcodes.php" );
57
58 add_filter('widget_text', 'do_shortcode');
59 add_filter('the_title', 'do_shortcode' );
60 //add_filter('wpbody-content', 'do_shortcode' );
61 add_filter('wp_footer', 'do_shortcode' );
62
63 add_filter('get_the_excerpt', 'do_shortcode' );
64 add_filter('the_excerpt', 'do_shortcode' );
65 add_filter('the_content', 'do_shortcode' );
66 //add_filter('get_pages', 'do_shortcode' );
67
68
69 // In which sequence should these go?
70 // trying api, bobbingwide then bwlink
71
72 $bw_options = get_option( 'bw_options' );
73
74 wp_enqueue_style( 'oikCSS', WP_PLUGIN_URL . '/oik/oik.css' );
75 wp_enqueue_style( 'bwlinkCSS', WP_PLUGIN_URL . '/oik/bwlink.css' );
76
77 $customCSS = bw_get_company( 'customCSS' );
78 if ( !empty( $customCSS) )
79 wp_enqueue_style( 'customCSS', get_stylesheet_directory_uri() . '/' . $customCSS);
80
81 add_action('admin_init', 'oik_options_init' );
82 add_action('admin_menu', 'oik_options_add_page');
83
84 // Init plugin options
85 function oik_options_init() {
86 register_setting( 'oik_options_options', 'bw_options', 'oik_options_validate' );
87 }
88
89 // Add the options page
90 function oik_options_add_page() {
91 add_options_page('[oik] Options', 'oik options', 'manage_options', 'bw_options', 'oik_options_do_page');
92 }
93
94 // Draw the oik options page
95 function oik_options_do_page() {
96 require_once( "bobbforms.inc" );
97 sdiv( "column span-15 wrap" );
98 h2( bw_oik(). " shortcode options" );
99 e( '<form method="post" action="options.php">' );
100 $options = get_option('bw_options');
101
102 stag( 'table class="form-table"' );
103 bw_flush();
104 settings_fields('oik_options_options');
105
106 textfield( "bw_options[telephone]", 50, "Telephone [bw_telephone] / [bw_tel]", $options['telephone'] );
107 textfield( "bw_options[fax]", 50, "Fax [bw_fax]", $options['fax'] );
108 textfield( "bw_options[mobile]", 50, "Mobile [bw_mobile] / [bw_mob]", $options['mobile'] );
109 textfield( "bw_options[emergency]", 50, "Emergency [bw_emergency]", $options['emergency'] );
110
111 textfield( "bw_options[company]", 50, "Company [bw_company]", $options['company'] );
112 textfield( "bw_options[business]", 50, "Business [bw_business]", $options['business'] );
113 textfield( "bw_options[formal]", 50, "Formal [bw_formal]", $options['formal'] );
114 textfield( "bw_options[abbr]", 50, "Abbreviation [bw_abbr]", $options['abbr'] );
115
116
117 textfield( "bw_options[main-slogan]", 50, "Main slogan [bw_slogan]", $options['main-slogan'] );
118 textfield( "bw_options[alt-slogan]", 50, "Alt. slogan [bw_alt_slogan]", $options['alt-slogan'] );
119
120 textfield( "bw_options[contact]", 50, "Contact [bw_contact]", $options['contact'] );
121 textfield( "bw_options[email]", 50, "Email [bw_mailto]/[bw_email]", $options['email'] );
122 textfield( "bw_options[admin]", 50, "Admin [bw_admin]", $options['admin'] );
123 textfield( "bw_options[contact-link]", 50, "Contact button page permalink [bw_contact_button]", $options['contact-link'] );
124 textfield( "bw_options[contact-text]", 50, "Contact button text ", $options['contact-text'] );
125 textfield( "bw_options[contact-title]", 50, "Contact button tooltip", $options['contact-title'] );
126
127
128 // extended-address e.g. Bobbing Wide
129 // street-address e.g. 41 Redhill Road
130 // locality e.g Rowlands Castle
131 // region e.g. HANTS
132 // postal-code e.g. PO9 6DE
133 // country-name e.g. UK
134
135
136 textfield( "bw_options[extended-address]", 50, "Extended-address [bw_address]", $options['extended-address'] );
137 textfield( "bw_options[street-address]", 50, "Street-address", $options['street-address'] );
138 textfield( "bw_options[locality]", 50, "Locality", $options['locality'] );
139 textfield( "bw_options[region]", 50, "Region", $options['region'] );
140 textfield( "bw_options[postal-code]", 50, "Post code", $options['postal-code'] );
141 textfield( "bw_options[country-name]", 50, "Country name", $options['country-name'] );
142
143 textfield( "bw_options[lat]", 50, "Latitude [bw_geo] [bw_directions]", $options['lat'] );
144 textfield( "bw_options[long]", 50, "Longitude", $options['long'] );
145
146 // ABQIAAAAEraXBMl-kX5b-Swk0AR98BQiFdr9vy7axdrApFjkJGV6ZRaqtxRqjZfTaNvU9q3jxZ50yMHK-mrzag
147 textfield( "bw_options[google_maps_api_key]", 87, "Google Maps API key [bw_show_googlemap]", $options['google_maps_api_key'] );
148 textfield( "bw_options[width]", 10, "Google Map width", $options['width'] );
149 textfield( "bw_options[height]", 10, "Google Map height", $options['height'] );
150
151
152 textfield( "bw_options[domain]", 50, "Domain [bw_domain] [bw_wpadmin]", $options['domain'] );
153 textfield( "bw_options[customCSS]", 50, "Custom CSS in theme directory " . get_theme_root_uri(), $options['customCSS'] );
154
155 textfield( "bw_options[twitter]", 50, "Twitter URL [bw_twitter]", $options['twitter'] );
156 textfield( "bw_options[facebook]", 50, "Facebook URL [bw_facebook]", $options['facebook'] );
157 textfield( "bw_options[linkedin]", 50, "LinkedIn URL [bw_linkedin]", $options['linkedin'] );
158 textfield( "bw_options[googleplus]", 50, "Google Plus URL [bw_googleplus]", $options['googleplus'] );
159 textfield( "bw_options[youtube]", 50, "YouTube URL [bw_youtube]", $options['youtube'] );
160 textfield( "bw_options[flickr]", 50, "Flickr URL [bw_flickr]", $options['flickr'] );
161 textfield( "bw_options[picasa]", 50, "Picasa URL [bw_picasa]", $options['picasa'] );
162 textfield( "bw_options[skype]", 50, "Skype Name [bw_skype]", $options['skype'] );
163
164
165 textfield( "bw_options[paypal-email]", 50, "PayPal email [bw_paypal]", $options['paypal-email'] );
166
167 $upload_dir = wp_upload_dir();
168 $baseurl = $upload_dir['baseurl'];
169
170 textfield( "bw_options[logo-image]", 50, "Logo image [bw_logo] in uploads: " . $baseurl, $options['logo-image'] );
171 textfield( "bw_options[qrcode-image]", 50, "QR code image [bw_qrcode] in uploads", $options['qrcode-image'] );
172 textfield( "bw_options[art-version]", 50, "Artisteer version 31/30/25/na [bw_art_version]", $options['art-version'] );
173
174 tablerow( "", "<input type=\"submit\" name=\"ok\" value=\"Save changes\" />" );
175
176 etag( "table" );
177 etag( "form" );
178
179 ediv();
180 sdiv("column span-9 wrap last");
181
182 h2( "Usage notes" );
183 p("Use the shortcode options in your pages, widgets and titles. e.g." );
184 p("[bw_telephone] for your telephone number" );
185 p( bw_telephone() );
186 p("[bw_address] to print your address" );
187 p( bw_address());
188 p( "[bw_follow_me] for ALL your Follow me buttons" );
189 p( bw_follow_me() );
190
191
192 bw_edit_custom_css_link( $options['customCSS'] );
193
194
195 p("For more information:" );
196 art_button( "http://www.oik-plugins.com/oik", "oik documentation", "Read the documentation for the oik plugin" );
197
198 ediv();
199 bw_flush();
200 }
201
202
203 // Sanitize and validate input. Accepts an array, return a sanitized array.
204
205
206 function oik_options_validate( $input ) {
207 $customCSS = bw_array_get( $input, 'customCSS', NULL );
208 if ( $customCSS ) {
209 $sanfile = sanitize_file_name( $customCSS );
210 // Should we check the sanitized file name with the original ?
211 bw_create_file( get_stylesheet_directory(), $sanfile, plugin_dir_path( __FILE__ ) . 'custom.css' );
212 }
213
214 return $input;
215 }
216
217 /**
218 * Create a file with the specified name in the specified directory
219 * @param string base - the base path for the file name - may be absolute
220 * @param string path - the rest of the file name - as specified by the user
221 * @param string default - the fully qualified filename of the base source file to copy
222 */
223 function bw_create_file( $base, $path, $default ) {
224 $target = path_join( $base, $path );
225
226 if ( !file_exists( $target ) ) {
227 // create an empty file - or copy the original
228 // $info = pathinfo( $target );
229 // $name = basename( $target );
230 if ( $default ) {
231 $success = copy( $default, $target );
232 } else {
233 // write an empty file
234 $resource = fopen( $target, 'xb' );
235 fclose( $resource );
236 }
237 }
238 }
239
240
241 /**
242 * Link to allow the custom CSS file to be edited
243 *
244 * Note: you can't specify a relative path to this file
245 * Sorry, can't edit files with ".." in the name.
246 * If you are trying to edit a file in your WordPress home directory, you can just type the name of the file in.
247 *
248 */
249 function bw_edit_custom_css_link( $customCSS ) {
250 p( "If you have defined a custom CSS file use this link to edit it." );
251 p( "Note: This only works when the file is in the current theme directory." );
252 p( "If you change themes then you will start with a new custom CSS file" );
253 p( get_current_theme() . " in " . get_stylesheet_directory() );
254
255
256 $link = admin_url( "theme-editor.php" );
257 $link .= '?file=';
258 //$link .= 'oik/custom.css';
259 $link .= path_join( get_stylesheet_directory(), $customCSS );
260
261
262 alink( NULL, $link, "edit custom CSS" );
263 }
264
265
266
267
268
269