diff --git a/fp-plugins/bbcode/plugin.bbcode.php b/fp-plugins/bbcode/plugin.bbcode.php
index c8a7a23..1e3a63d 100644
--- a/fp-plugins/bbcode/plugin.bbcode.php
+++ b/fp-plugins/bbcode/plugin.bbcode.php
@@ -1,15 +1,14 @@
BBCode markup; provides automatic integration with lightbox.
-Author: Hydra, NoWhereMan
-Author URI: http://flatpress.sf.net
-*/
-
-require(plugin_getdir('bbcode') .'/inc/stringparser_bbcode.class.php');
-require(plugin_getdir('bbcode') .'/panels/admin.plugin.panel.bbcode.php');
+ * Plugin Name: BBCode
+ * Version: 1.5
+ * Plugin URI: http://flatpress.sf.net
+ * Description: Allows using BBCode markup; provides automatic integration with lightbox.
+ * Author: Hydra, NoWhereMan
+ * Author URI: http://flatpress.sf.net
+ */
+require (plugin_getdir('bbcode') . '/inc/stringparser_bbcode.class.php');
+require (plugin_getdir('bbcode') . '/panels/admin.plugin.panel.bbcode.php');
/**
* Setups the plugin.
@@ -19,22 +18,10 @@ function plugin_bbcode_startup() {
// load options
$bbconf = plugin_getoptions('bbcode');
// get defaults if not configured
- define('BBCODE_ALLOW_HTML', isset($bbconf['escape-html'])
- ? $bbconf['escape-html']
- : true
- );
- define('BBCODE_ENABLE_COMMENTS', isset($bbconf['comments'])
- ? $bbconf['comments']
- : false
- );
- define('BBCODE_USE_EDITOR', isset($bbconf['editor'])
- ? $bbconf['editor']
- : true
- );
- define('BBCODE_URL_MAXLEN', isset($bbconf['url-maxlen'])
- ? $bbconf['url-maxlen']
- : 40
- );
+ define('BBCODE_ALLOW_HTML', isset($bbconf ['escape-html']) ? $bbconf ['escape-html'] : true);
+ define('BBCODE_ENABLE_COMMENTS', isset($bbconf ['comments']) ? $bbconf ['comments'] : false);
+ define('BBCODE_USE_EDITOR', isset($bbconf ['editor']) ? $bbconf ['editor'] : true);
+ define('BBCODE_URL_MAXLEN', isset($bbconf ['url-maxlen']) ? $bbconf ['url-maxlen'] : 40);
if (!file_exists('getfile.php')) {
define('BBCODE_USE_WRAPPER', false);
} else {
@@ -45,9 +32,9 @@ function plugin_bbcode_startup() {
define('BBCODE_USE_WRAPPER', true);
}
}
-
+
// filter part
- #add_filter('comment_text', 'plugin_bbcode_comment');
+ // add_filter('comment_text', 'plugin_bbcode_comment');
add_filter('title_save_pre', 'wp_specialchars', 1);
if (!BBCODE_ALLOW_HTML) {
add_filter('content_save_pre', 'wp_specialchars', 1);
@@ -58,7 +45,7 @@ function plugin_bbcode_startup() {
add_filter('the_excerpt', 'BBCode', 1);
add_filter('the_content', 'plugin_bbcode_undoHtml', 30);
if (BBCODE_USE_EDITOR) {
- add_filter('editor_toolbar', 'plugin_bbcode_toolbar');
+ add_filter('editor_toolbar', 'plugin_bbcode_toolbar');
}
if (BBCODE_ENABLE_COMMENTS) {
add_filter('comment_text', 'plugin_bbcode_comment', 1);
@@ -68,11 +55,10 @@ plugin_bbcode_startup();
/**
* Adds special stlye definitions into the HTML head.
- *
*/
function plugin_bbcode_style() {
echo " \n";
- echo ' \n";
+ echo ' \n";
echo " \n";
}
add_action('wp_head', 'plugin_bbcode_style');
@@ -87,31 +73,26 @@ function bbcode_remap_url(&$d) {
// NWM: "attachs/" is interpreted as a keyword, and it is translated to the actual path of ATTACHS_DIR
// CHANGE! we use the getfile.php script to mask the actual path of the attachs dir!
// DMKE: I got an idea about an integer-id based download/media manager... work-in-progress
-
if (strpos($d, ':') === false) {
// if is relative url
// absolute path, relative to this server
- if ($d[0] == '/') {
+ if ($d [0] == '/') {
/*
- BLOG_BASEURL contains a trailing slash in the end. If
- $d begins with a slash, we first strip it otherwise
- the string would look like
- http://mysite.com/flatpress//path/you/entered
- ^^ ugly double slash :P
- */
+ * BLOG_BASEURL contains a trailing slash in the end. If
+ * $d begins with a slash, we first strip it otherwise
+ * the string would look like
+ * http://mysite.com/flatpress//path/you/entered
+ * ^^ ugly double slash :P
+ */
$d = BLOG_BASEURL . substr($d, 1);
}
if (substr($d, 0, 8) == 'attachs/') {
- $d = BBCODE_USE_WRAPPER
- ? 'getfile.php?f='. basename($d) .'&dl=true'
- : substr_replace ($d, ATTACHS_DIR, 0, 8 );
+ $d = BBCODE_USE_WRAPPER ? 'getfile.php?f=' . basename($d) . '&dl=true' : substr_replace($d, ATTACHS_DIR, 0, 8);
return true;
}
if (substr($d, 0, 7) == 'images/') {
- $d = substr_replace ($d, IMAGES_DIR, 0, 7 );
- $d = BBCODE_USE_WRAPPER
- ? 'getfile.php?f='. basename($d)
- : $d;
+ $d = substr_replace($d, IMAGES_DIR, 0, 7);
+ $d = BBCODE_USE_WRAPPER ? 'getfile.php?f=' . basename($d) : $d;
}
return true;
}
@@ -127,39 +108,35 @@ function bbcode_remap_url(&$d) {
* @param string $action
* @param array $attributes
* @param string $content
- * @param mixed $params Not used
- * @param mixed $node_object Not used
+ * @param mixed $params
+ * Not used
+ * @param mixed $node_object
+ * Not used
* @return string
*/
-function do_bbcode_url ($action, $attributes, $content, $params, $node_object) {
+function do_bbcode_url($action, $attributes, $content, $params, $node_object) {
if ($action == 'validate') {
return true;
}
// the code was specified as follows: [url]http://.../[/url]
- if (!isset ($attributes['default'])) {
+ if (!isset($attributes ['default'])) {
// cut url if longer than > BBCODE_URL_MAXLEN
$url = $content;
if (($l = strlen($url)) > BBCODE_URL_MAXLEN) {
- $t = (int)(BBCODE_URL_MAXLEN / 2);
- $content = substr($url, 0, $t) .' … '. substr($url, $l-$t);
+ $t = (int) (BBCODE_URL_MAXLEN / 2);
+ $content = substr($url, 0, $t) . ' … ' . substr($url, $l - $t);
}
- } else {
+ } else {
// else the code was specified as follows: [url=http://.../]Text[/url]
- $url = $attributes['default'];
+ $url = $attributes ['default'];
}
$local = bbcode_remap_url($url);
- $the_url = $local
- ? (BLOG_BASEURL . $url)
- : $url;
+ $the_url = $local ? (BLOG_BASEURL . $url) : $url;
// DMKE: uh?
- $content = $content;
- $rel = isset($attributes['rel'])
- ? ' rel="' . $attributes['rel'] . '"'
- : '';
- $extern = !$local
- ? ' class="externlink" title="Go to '.$the_url.'"'
- : '';
- return ''. $content .'';
+ $content = $content;
+ $rel = isset($attributes ['rel']) ? ' rel="' . $attributes ['rel'] . '"' : '';
+ $extern = !$local ? ' class="externlink" title="Go to ' . $the_url . '"' : '';
+ return '' . $content . '';
}
/**
@@ -168,20 +145,22 @@ function do_bbcode_url ($action, $attributes, $content, $params, $node_object) {
* @param string $action
* @param array $attributes
* @param string $content
- * @param mixed $params Not used
- * @param mixed $node_object Not used
+ * @param mixed $params
+ * Not used
+ * @param mixed $node_object
+ * Not used
* @return string
*/
function do_bbcode_img($action, $attributes, $content, $params, $node_object) {
if ($action == 'validate') {
return true;
}
- if (!isset($attributes['default'])) {
+ if (!isset($attributes ['default'])) {
return '[No valid img specified]';
}
- $absolutepath = $actualpath = $attributes['default'];
+ $absolutepath = $actualpath = $attributes ['default'];
// NWM: "images/" is interpreted as a keyword, and it is translated to the actual path of IMAGES_DIR
- $image_is_local = bbcode_remap_url($actualpath);
+ $image_is_local = bbcode_remap_url($actualpath);
$float = ' class="center" ';
$popup_start = '';
$popup_end = '';
@@ -189,18 +168,16 @@ function do_bbcode_img($action, $attributes, $content, $params, $node_object) {
$alt = $title = basename($actualpath);
$useimageinfo = true; // use IPTC info
- if (isset($attributes['alt'])) {
- $alt = wp_specialchars($attributes['alt']);
+ if (isset($attributes ['alt'])) {
+ $alt = wp_specialchars($attributes ['alt']);
$useimageinfo = false;
}
- if (isset($attributes['title'])) {
- $title = wp_specialchars($attributes['title']);
+ if (isset($attributes ['title'])) {
+ $title = wp_specialchars($attributes ['title']);
$useimageinfo = false;
}
-
-
$img_size = array();
// let's disable socket functions for remote files
// slow remote servers may otherwise lockup the system
@@ -208,115 +185,84 @@ function do_bbcode_img($action, $attributes, $content, $params, $node_object) {
$img_info = array();
$img_size = @getimagesize($actualpath, $img_info);
$absolutepath = BLOG_BASEURL . $actualpath;
-
+
if ($useimageinfo && function_exists('iptcparse')) {
- if ($img_size['mime'] == 'image/jpeg') {
+ if ($img_size ['mime'] == 'image/jpeg') {
// tiffs won't be supported
-
- if(is_array($img_info)) {
- $iptc = iptcparse($img_info["APP13"]);
- $title = @$iptc["2#005"][0]? wp_specialchars($iptc["2#005"][0]) : $title;
- $alt = isset($iptc["2#120"][0])? wp_specialchars($iptc["2#120"][0],1) : $title;
- }
-
+
+ if (is_array($img_info)) {
+ $iptc = iptcparse($img_info ["APP13"]);
+ $title = @$iptc ["2#005"] [0] ? wp_specialchars($iptc ["2#005"] [0]) : $title;
+ $alt = isset($iptc ["2#120"] [0]) ? wp_specialchars($iptc ["2#120"] [0], 1) : $title;
+ }
}
}
}
- $orig_w = $width = isset($img_size[0])
- ? $img_size[0]
- : 0;
- $orig_h = $height = isset($img_size[1])
- ? $img_size[1]
- : 0;
- $thumbpath = null;
+ $orig_w = $width = isset($img_size [0]) ? $img_size [0] : 0;
+ $orig_h = $height = isset($img_size [1]) ? $img_size [1] : 0;
+ $thumbpath = null;
// default: resize to 0, which means leaving it as it is, as width and hight will be ignored ;)
$scalefact = 0;
/*
- scale attribute has priority over width and height if scale is
- set popup is set to true automatically, unless it is explicitly
- set to false
- */
- if (isset($attributes['scale'])) {
- if (substr($attributes['scale'], -1, 1) == '%') {
+ * scale attribute has priority over width and height if scale is
+ * set popup is set to true automatically, unless it is explicitly
+ * set to false
+ */
+ if (isset($attributes ['scale'])) {
+ if (substr($attributes ['scale'], -1, 1) == '%') {
// Format: NN%. We ignore %
- $val = substr($attributes['scale'], 0, -1);
+ $val = substr($attributes ['scale'], 0, -1);
} else {
- $val = $attributes['scale'];
+ $val = $attributes ['scale'];
}
$scalefact = $val / 100.0;
- $width = (int)($scalefact * $width);
- $height = (int)($scalefact * $height);
- } elseif (isset($attributes['width']) && isset($attributes['height'])) {
+ $width = (int) ($scalefact * $width);
+ $height = (int) ($scalefact * $height);
+ } elseif (isset($attributes ['width']) && isset($attributes ['height'])) {
// if both width and height are set, we assume proportions are ok
- $width = (int)$attributes['width'];
- $height = (int)$attributes['height'];
- } elseif (isset($attributes['width'])) {
+ $width = (int) $attributes ['width'];
+ $height = (int) $attributes ['height'];
+ } elseif (isset($attributes ['width'])) {
// if only width is set we calc proportions
- $scalefact = $orig_w? ($attributes['width'] / $orig_w) : 0;
- $width = (int)$attributes['width'];
- $height = (int)($scalefact * $orig_h);
- } elseif (isset($attributes['height'])) {
+ $scalefact = $orig_w ? ($attributes ['width'] / $orig_w) : 0;
+ $width = (int) $attributes ['width'];
+ $height = (int) ($scalefact * $orig_h);
+ } elseif (isset($attributes ['height'])) {
// if only height is set we calc proportions
- $scalefact = $orig_w? ($attributes['height'] / $orig_h) : 0;
- $height = (int)$attributes['height'];
- $width = (int)($scalefact * $orig_w);
+ $scalefact = $orig_w ? ($attributes ['height'] / $orig_h) : 0;
+ $height = (int) $attributes ['height'];
+ $width = (int) ($scalefact * $orig_w);
}
if ($height < $orig_h) {
- $attributes['popup'] = true;
+ $attributes ['popup'] = true;
}
if ($height != $orig_h) {
- #bbcode_img_scale_filter($actualpath, $img_props, $newsize)
- $thumbpath = apply_filters(
- 'bbcode_img_scale',
- $actualpath,
- $img_size,
- array($width, $height)
- );
+ // bbcode_img_scale_filter($actualpath, $img_props, $newsize)
+ $thumbpath = apply_filters('bbcode_img_scale', $actualpath, $img_size, array(
+ $width,
+ $height
+ ));
}
-
-
- if (isset($attributes['popup']) && ($attributes['popup'])) {
- $pop_width = $orig_w
- ? $orig_w
- : 800;
- $pop_height = $orig_h
- ? $orig_h
- : 600;
- $popup = ' onclick="Popup=window.open("'. $absolutepath
- .'","Popup","toolbar=no,location=no,status=no,"'
- .'"menubar=no,scrollbars=yes,resizable=yes,width='
- . $pop_width .',height='. $pop_height .'"); return false;"';
+ if (isset($attributes ['popup']) && ($attributes ['popup'])) {
+ $pop_width = $orig_w ? $orig_w : 800;
+ $pop_height = $orig_h ? $orig_h : 600;
+ $popup = ' onclick="Popup=window.open("' . $absolutepath . '","Popup","toolbar=no,location=no,status=no,"' . '"menubar=no,scrollbars=yes,resizable=yes,width=' . $pop_width . ',height=' . $pop_height . '"); return false;"';
// Plugin hook, here lightbox attachs
$popup = apply_filters('bbcode_img_popup', $popup, $absolutepath);
- $popup_start = $attributes['popup'] == 'true'
- ? ''
- : '';
- $popup_end = $attributes['popup'] == 'true'
- ? ''
- : '';
+ $popup_start = $attributes ['popup'] == 'true' ? '' : '';
+ $popup_end = $attributes ['popup'] == 'true' ? '' : '';
}
- $img_width = $width
- ? ' width="'.$width.'"'
- : '';
- $img_height = $height
- ? ' height="'.$height.'"'
- : '' ;
- if (isset($attributes['float'])) {
- $float = ($attributes['float'] == 'left' || $attributes['float'] == 'right')
- ? ' class="float'. $attributes['float'] .'"'
- : ' class="center"';
+ $img_width = $width ? ' width="' . $width . '"' : '';
+ $img_height = $height ? ' height="' . $height . '"' : '';
+ if (isset($attributes ['float'])) {
+ $float = ($attributes ['float'] == 'left' || $attributes ['float'] == 'right') ? ' class="float' . $attributes ['float'] . '"' : ' class="center"';
}
- $src = $thumbpath
- ? (BLOG_BASEURL . $thumbpath)
- : $absolutepath; // $attributes['default'])
- $pop = $popup_start
- ? ''
- : ' title="'.$title.'" ';
- return $popup_start .'
'. $popup_end;
+ $src = $thumbpath ? (BLOG_BASEURL . $thumbpath) : $absolutepath; // $attributes['default'])
+ $pop = $popup_start ? '' : ' title="' . $title . '" ';
+ return $popup_start . '
' . $popup_end;
}
/**
@@ -325,48 +271,64 @@ function do_bbcode_img($action, $attributes, $content, $params, $node_object) {
* @param string $action
* @param array $attr
* @param string $content
- * @param mixed $params Not used
- * @param mixed $node_object Not used
+ * @param mixed $params
+ * Not used
+ * @param mixed $node_object
+ * Not used
* @return string
*/
function do_bbcode_video($action, $attr, $content, $params, $node_object) {
if ($action == 'validate') {
return true;
}
- $vurl = parse_url($attr['default']);
- if (isset($attr['type'])) {
- $type = $attr['type'];
+
+ $vurl = parse_url($attr ['default']);
+ if (isset($attr ['type'])) {
+ $type = $attr ['type'];
} else {
- // is it http://www.MYSITE.com or http://MYSITE.com ?
- $web = explode('.', $vurl['host']);
+ // is it http://www.MYSITE.com or http://MYSITE.com ?
+ $web = explode('.', $vurl ['host']);
array_pop($web);
- $type = isset($web[1])
- ? $web[1]
- : $web[0];
+ $type = isset($web [1]) ? $web [1] : $web [0];
}
- $query = utils_kexplode($vurl['query'], '=&');
- $the_url = null;
- $others = '';
+
+ // Check the [video] element's attributes width, height and float
+ $width = isset($attr ['width']) ? $attr ['width'] : '560';
+ $height = isset($attr ['height']) ? $attr ['height'] : '315';
+ $float = isset($attr ['float']) ? 'align="' . $attr ['float'] . '" ' : 'style="margin: 0 auto; display:block;" ';
+
+ $query = utils_kexplode($vurl ['query'], '=&');
+ $output = null;
+
+ // We recognize different video providers by the given video URL.
switch ($type) {
+ // YouTube
case 'youtube':
- $the_url = "https://www.youtube.com/embed/{$query['v']}";
+ $output = '';
break;
- case 'default':
+ // Vimeo
+ case 'vimeo':
+ $vid = isset($query ['sec']) ? $query ['sec'] : str_replace('/', '', $vurl ['path']);
+ $output = '';
+ break;
+ // Facebook
+ case 'facebook':
+ $vid = isset($query ['sec']) ? $query ['sec'] : str_replace('/video/', '', $vurl ['path']);
+ $output = '
+
+ ';
+ break;
+ // Any video file that can be played with HTML5