mirror of
https://github.com/e107inc/e107.git
synced 2025-08-01 20:30:39 +02:00
Feature-box jquery work. Slider and Tabs functional.
This commit is contained in:
1067
e107_files/jslib/camera/css/camera.css
Normal file
1067
e107_files/jslib/camera/css/camera.css
Normal file
File diff suppressed because it is too large
Load Diff
BIN
e107_files/jslib/camera/images/blank.gif
Normal file
BIN
e107_files/jslib/camera/images/blank.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
BIN
e107_files/jslib/camera/images/camera-loader.gif
Normal file
BIN
e107_files/jslib/camera/images/camera-loader.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.1 KiB |
BIN
e107_files/jslib/camera/images/camera_skins.png
Normal file
BIN
e107_files/jslib/camera/images/camera_skins.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
4
e107_files/jslib/camera/scripts/camera.min.js
vendored
Normal file
4
e107_files/jslib/camera/scripts/camera.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
10
e107_files/jslib/camera/scripts/jquery.mobile.customized.min.js
vendored
Normal file
10
e107_files/jslib/camera/scripts/jquery.mobile.customized.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -1898,11 +1898,11 @@ class e_form
|
|||||||
if(!vartrue($parms['size'])) $parms['size'] = 15;
|
if(!vartrue($parms['size'])) $parms['size'] = 15;
|
||||||
if(!vartrue($parms['class'])) $parms['class'] = 'tbox number';
|
if(!vartrue($parms['class'])) $parms['class'] = 'tbox number';
|
||||||
if(!$value) $value = '0';
|
if(!$value) $value = '0';
|
||||||
return vartrue($parms['pre']).$this->text($key, $value, $maxlength, $parms).vartrue($parms['post']);
|
$ret = vartrue($parms['pre']).$this->text($key, $value, $maxlength, $parms).vartrue($parms['post']);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'ip':
|
case 'ip':
|
||||||
return $this->text($key, e107::getIPHandler()->ipDecode($value), 32, $parms);
|
$ret = $this->text($key, e107::getIPHandler()->ipDecode($value), 32, $parms);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'url':
|
case 'url':
|
||||||
@@ -1910,7 +1910,7 @@ class e_form
|
|||||||
case 'text':
|
case 'text':
|
||||||
$maxlength = vartrue($parms['maxlength'], 255);
|
$maxlength = vartrue($parms['maxlength'], 255);
|
||||||
unset($parms['maxlength']);
|
unset($parms['maxlength']);
|
||||||
return vartrue($parms['pre']).$this->text($key, $value, $maxlength, vartrue($parms['__options'])).vartrue($parms['post']);
|
$ret = vartrue($parms['pre']).$this->text($key, $value, $maxlength, vartrue($parms['__options'])).vartrue($parms['post']);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'textarea':
|
case 'textarea':
|
||||||
@@ -1923,25 +1923,25 @@ class e_form
|
|||||||
}
|
}
|
||||||
|
|
||||||
$text .= $this->textarea($key, $value, vartrue($parms['rows'], 5), vartrue($parms['cols'], 40), vartrue($parms['__options']), varset($parms['counter'], false));
|
$text .= $this->textarea($key, $value, vartrue($parms['rows'], 5), vartrue($parms['cols'], 40), vartrue($parms['__options']), varset($parms['counter'], false));
|
||||||
return $text;
|
$ret = $text;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'bbarea':
|
case 'bbarea':
|
||||||
$options = array('counter' => varset($parms['counter'], false));
|
$options = array('counter' => varset($parms['counter'], false));
|
||||||
return $this->bbarea($key, $value, vartrue($parms['help']), vartrue($parms['helptag']), vartrue($parms['size'], 'medium'),$options );
|
$ret = $this->bbarea($key, $value, vartrue($parms['help']), vartrue($parms['helptag']), vartrue($parms['size'], 'medium'),$options );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'image': //TODO - thumb, image list shortcode, js tooltip...
|
case 'image': //TODO - thumb, image list shortcode, js tooltip...
|
||||||
$label = varset($parms['label'], 'LAN_EDIT');
|
$label = varset($parms['label'], 'LAN_EDIT');
|
||||||
unset($parms['label']);
|
unset($parms['label']);
|
||||||
return $this->imagepicker($key, $value, defset($label, $label), vartrue($parms['__options']));
|
$ret = $this->imagepicker($key, $value, defset($label, $label), vartrue($parms['__options']));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'icon':
|
case 'icon':
|
||||||
$label = varset($parms['label'], 'LAN_EDIT');
|
$label = varset($parms['label'], 'LAN_EDIT');
|
||||||
$ajax = varset($parms['ajax'], true) ? true : false;
|
$ajax = varset($parms['ajax'], true) ? true : false;
|
||||||
unset($parms['label'], $parms['ajax']);
|
unset($parms['label'], $parms['ajax']);
|
||||||
return $this->iconpicker($key, $value, defset($label, $label), $parms, $ajax);
|
$ret = $this->iconpicker($key, $value, defset($label, $label), $parms, $ajax);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
@@ -1956,10 +1956,12 @@ class e_form
|
|||||||
|
|
||||||
if(vartrue($parms['hidden']))
|
if(vartrue($parms['hidden']))
|
||||||
{
|
{
|
||||||
return $this->hidden($key, $value);
|
$ret = $this->hidden($key, $value);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
return $this->datepicker($key, $value, $parms);
|
{
|
||||||
|
$ret = $this->datepicker($key, $value, $parms);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'layouts': //to do - exclude param (exact match)
|
case 'layouts': //to do - exclude param (exact match)
|
||||||
@@ -1984,7 +1986,7 @@ class e_form
|
|||||||
}
|
}
|
||||||
|
|
||||||
//$this->selectbox($key, $layouts, $value)
|
//$this->selectbox($key, $layouts, $value)
|
||||||
return (vartrue($parms['raw']) ? $layouts[0] : $this->radio_multi($key, $layouts[0], $value, true, $info));
|
$ret = (vartrue($parms['raw']) ? $layouts[0] : $this->radio_multi($key, $layouts[0], $value, true, $info));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'templates': //to do - exclude param (exact match)
|
case 'templates': //to do - exclude param (exact match)
|
||||||
@@ -2011,7 +2013,7 @@ class e_form
|
|||||||
$k = str_replace('_template.php', '', $files['fname']);
|
$k = str_replace('_template.php', '', $files['fname']);
|
||||||
$templates[$k] = implode(' ', array_map('ucfirst', explode('_', $k))); //TODO add LANS?
|
$templates[$k] = implode(' ', array_map('ucfirst', explode('_', $k))); //TODO add LANS?
|
||||||
}
|
}
|
||||||
return (vartrue($parms['raw']) ? $templates : $this->selectbox($key, $templates, $value));
|
$ret = (vartrue($parms['raw']) ? $templates : $this->selectbox($key, $templates, $value));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'dropdown':
|
case 'dropdown':
|
||||||
@@ -2019,7 +2021,7 @@ class e_form
|
|||||||
if(is_string($eloptions)) parse_str($eloptions, $eloptions);
|
if(is_string($eloptions)) parse_str($eloptions, $eloptions);
|
||||||
unset($parms['__options']);
|
unset($parms['__options']);
|
||||||
if(vartrue($eloptions['multiple']) && !is_array($value)) $value = explode(',', $value);
|
if(vartrue($eloptions['multiple']) && !is_array($value)) $value = explode(',', $value);
|
||||||
return vartrue($eloptions['pre']).$this->selectbox($key, $parms, $value, $eloptions).vartrue($eloptions['post']);
|
$ret = vartrue($eloptions['pre']).$this->selectbox($key, $parms, $value, $eloptions).vartrue($eloptions['post']);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'radio':
|
case 'radio':
|
||||||
@@ -2027,7 +2029,7 @@ class e_form
|
|||||||
/*$eloptions = vartrue($parms['__options'], array());
|
/*$eloptions = vartrue($parms['__options'], array());
|
||||||
if(is_string($eloptions)) parse_str($eloptions, $eloptions);
|
if(is_string($eloptions)) parse_str($eloptions, $eloptions);
|
||||||
unset($parms['__options']);*/
|
unset($parms['__options']);*/
|
||||||
return vartrue($eloptions['pre']).$this->radio_multi($key, $parms, $value, false).vartrue($eloptions['post']);
|
$ret = vartrue($eloptions['pre']).$this->radio_multi($key, $parms, $value, false).vartrue($eloptions['post']);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'userclass':
|
case 'userclass':
|
||||||
@@ -2036,7 +2038,7 @@ class e_form
|
|||||||
unset($parms['classlist']);
|
unset($parms['classlist']);
|
||||||
$method = ($attributes['type'] == 'userclass') ? 'uc_select' : 'uc_select';
|
$method = ($attributes['type'] == 'userclass') ? 'uc_select' : 'uc_select';
|
||||||
if($atrributes['type'] == 'userclasses'){ $parms['multiple'] = true; }
|
if($atrributes['type'] == 'userclasses'){ $parms['multiple'] = true; }
|
||||||
return $this->$method($key, $value, $uc_options, vartrue($parms, array()));
|
$ret = $this->$method($key, $value, $uc_options, vartrue($parms, array()));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/*case 'user_name':
|
/*case 'user_name':
|
||||||
@@ -2070,7 +2072,7 @@ class e_form
|
|||||||
if(!$value) $value = array();
|
if(!$value) $value = array();
|
||||||
$uname = varset($value[$colname]);
|
$uname = varset($value[$colname]);
|
||||||
$value = varset($value['user_id'], 0);
|
$value = varset($value['user_id'], 0);
|
||||||
return $this->userpicker(vartrue($parms['nameField'], $key.'_usersearch'), $key, $uname, $value, vartrue($parms['__options']));
|
$ret = $this->userpicker(vartrue($parms['nameField'], $key.'_usersearch'), $key, $uname, $value, vartrue($parms['__options']));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'bool':
|
case 'bool':
|
||||||
@@ -2078,24 +2080,24 @@ class e_form
|
|||||||
$lenabled = vartrue($parms['enabled'], 'LAN_ENABLED');
|
$lenabled = vartrue($parms['enabled'], 'LAN_ENABLED');
|
||||||
$ldisabled = vartrue($parms['disabled'], 'LAN_DISABLED');
|
$ldisabled = vartrue($parms['disabled'], 'LAN_DISABLED');
|
||||||
unset($parms['enabled'], $parms['disabled']);
|
unset($parms['enabled'], $parms['disabled']);
|
||||||
return $this->radio_switch($key, $value, defset($lenabled, $lenabled), defset($ldisabled, $ldisabled));
|
$ret = $this->radio_switch($key, $value, defset($lenabled, $lenabled), defset($ldisabled, $ldisabled));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'method': // Custom Function
|
case 'method': // Custom Function
|
||||||
return call_user_func_array(array($this, $key), array($value, 'write', $parms));
|
$ret = call_user_func_array(array($this, $key), array($value, 'write', $parms));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'upload': //TODO - from method
|
case 'upload': //TODO - from method
|
||||||
// TODO uploadfile SC is now processing uploads as well (add it to admin UI), write/readParms have to be added (see uploadfile.php parms)
|
// TODO uploadfile SC is now processing uploads as well (add it to admin UI), write/readParms have to be added (see uploadfile.php parms)
|
||||||
$disbut = varset($parms['disable_button'], '0');
|
$disbut = varset($parms['disable_button'], '0');
|
||||||
return $tp->parseTemplate("{UPLOADFILE=".(vartrue($parms['path']) ? e107::getParser()->replaceConstants($parms['path']) : e_UPLOAD)."|nowarn&trigger=etrigger_uploadfiles&disable_button={$disbut}}");
|
$ret = $tp->parseTemplate("{UPLOADFILE=".(vartrue($parms['path']) ? e107::getParser()->replaceConstants($parms['path']) : e_UPLOAD)."|nowarn&trigger=etrigger_uploadfiles&disable_button={$disbut}}");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'hidden':
|
case 'hidden':
|
||||||
$ret = (vartrue($parms['show']) ? ($value ? $value : varset($parms['empty'], $value)) : '');
|
$ret = (vartrue($parms['show']) ? ($value ? $value : varset($parms['empty'], $value)) : '');
|
||||||
$value = (vartrue($parms['value'])) ? $parms['value'] : $value;
|
$value = (vartrue($parms['value'])) ? $parms['value'] : $value;
|
||||||
echo "key=".$key."<br />value=".$value;
|
echo "key=".$key."<br />value=".$value;
|
||||||
return $ret.$this->hidden($key, $value);
|
$ret = $ret.$this->hidden($key, $value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'lanlist':
|
case 'lanlist':
|
||||||
@@ -2106,13 +2108,24 @@ class e_form
|
|||||||
if(!is_array($eloptions)) parse_str($eloptions, $eloptions);
|
if(!is_array($eloptions)) parse_str($eloptions, $eloptions);
|
||||||
unset($parms['__options']);
|
unset($parms['__options']);
|
||||||
if(vartrue($eloptions['multiple']) && !is_array($value)) $value = explode(',', $value);
|
if(vartrue($eloptions['multiple']) && !is_array($value)) $value = explode(',', $value);
|
||||||
return vartrue($eloptions['pre']).$this->selectbox($key, $options, $value, $eloptions).vartrue($eloptions['post']);
|
$ret = vartrue($eloptions['pre']).$this->selectbox($key, $options, $value, $eloptions).vartrue($eloptions['post']);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return $value;
|
$ret = $value;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(vartrue($parms['expand']))
|
||||||
|
{
|
||||||
|
$k = "exp-".$this->name2id($key);
|
||||||
|
$text = "<a class='e-expandit e-tip' href='#{$k}'>".$parms['expand']."</a>";
|
||||||
|
$text .= vartrue($parms['help']) ? '<div class="field-help">'.$parms['help'].'</div>' : '';
|
||||||
|
$text .= "<div id='{$k}' class='e-hideme'>".$ret."</div>";
|
||||||
|
return $text;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -76,6 +76,8 @@ class fb_category_ui extends e_admin_ui
|
|||||||
'fb_category_random' => array('title'=> 'Random', 'type' => 'boolean', 'data' => 'int', 'width' => '5%', 'thclass' => 'center', 'class' => 'center', 'batch' => true, 'filter' => true),
|
'fb_category_random' => array('title'=> 'Random', 'type' => 'boolean', 'data' => 'int', 'width' => '5%', 'thclass' => 'center', 'class' => 'center', 'batch' => true, 'filter' => true),
|
||||||
'fb_category_class' => array('title'=> LAN_VISIBILITY, 'type' => 'userclass', 'data' => 'int', 'width' => 'auto', 'filter' => true, 'batch' => true),
|
'fb_category_class' => array('title'=> LAN_VISIBILITY, 'type' => 'userclass', 'data' => 'int', 'width' => 'auto', 'filter' => true, 'batch' => true),
|
||||||
'fb_category_limit' => array('title'=> 'Limit', 'type' => 'number', 'data' => 'int', 'width' => '5%', 'thclass' => 'left', 'help' => 'number of items to be shown, 0 - show all'),
|
'fb_category_limit' => array('title'=> 'Limit', 'type' => 'number', 'data' => 'int', 'width' => '5%', 'thclass' => 'left', 'help' => 'number of items to be shown, 0 - show all'),
|
||||||
|
'fb_category_parms' => array('title'=> 'Parameters (optional)', 'type' => 'textarea', 'data' => 'str', 'width' => 'auto', 'thclass' => 'left', 'class' => 'left','writeParms' => 'expand=Advanced&help=Optional Javascript Parameters (format subject to change)'),
|
||||||
|
|
||||||
'options' => array('title'=> LAN_OPTIONS, 'type' => null, 'width' => '10%', 'forced'=>TRUE, 'thclass' => 'center last', 'class' => 'center')
|
'options' => array('title'=> LAN_OPTIONS, 'type' => null, 'width' => '10%', 'forced'=>TRUE, 'thclass' => 'center last', 'class' => 'center')
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -179,7 +181,7 @@ class fb_main_ui extends e_admin_ui
|
|||||||
//DEPRECATED 'fb_mode' => array('title'=> FBLAN_12, 'type' => 'dropdown', 'data'=> 'int', 'width' => '5%', 'filter'=>TRUE, 'batch'=>TRUE),
|
//DEPRECATED 'fb_mode' => array('title'=> FBLAN_12, 'type' => 'dropdown', 'data'=> 'int', 'width' => '5%', 'filter'=>TRUE, 'batch'=>TRUE),
|
||||||
//DEPRECATED 'fb_rendertype' => array('title'=> FBLAN_22, 'type' => 'dropdown', 'data'=> 'int', 'width' => 'auto', 'noedit' => TRUE),
|
//DEPRECATED 'fb_rendertype' => array('title'=> FBLAN_22, 'type' => 'dropdown', 'data'=> 'int', 'width' => 'auto', 'noedit' => TRUE),
|
||||||
'fb_template' => array('title'=> FBLAN_25, 'type' => 'layouts', 'data'=> 'str', 'width' => 'auto', 'writeParms' => 'plugin=featurebox', 'filter' => true, 'batch' => true), // Photo
|
'fb_template' => array('title'=> FBLAN_25, 'type' => 'layouts', 'data'=> 'str', 'width' => 'auto', 'writeParms' => 'plugin=featurebox', 'filter' => true, 'batch' => true), // Photo
|
||||||
'fb_image' => array('title'=> "Image", 'type' => 'image', 'width' => 'auto'),
|
'fb_image' => array('title'=> "Image", 'type' => 'image', 'width' => 'auto', 'readParms'=>'thumb=60&thumb_urlraw=0&thumb_aw=60'),
|
||||||
'fb_imageurl' => array('title'=> "Image Link", 'type' => 'url', 'width' => 'auto'),
|
'fb_imageurl' => array('title'=> "Image Link", 'type' => 'url', 'width' => 'auto'),
|
||||||
'fb_class' => array('title'=> LAN_VISIBILITY, 'type' => 'userclass', 'data' => 'int', 'width' => 'auto', 'filter' => true, 'batch' => true), // User id
|
'fb_class' => array('title'=> LAN_VISIBILITY, 'type' => 'userclass', 'data' => 'int', 'width' => 'auto', 'filter' => true, 'batch' => true), // User id
|
||||||
'fb_order' => array('title'=> LAN_ORDER, 'type' => 'number', 'data'=> 'int','width' => '5%' ),
|
'fb_order' => array('title'=> LAN_ORDER, 'type' => 'number', 'data'=> 'int','width' => '5%' ),
|
||||||
|
6
e107_plugins/featurebox/e_header.php
Normal file
6
e107_plugins/featurebox/e_header.php
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
//TODO add checks so that it's only loaded when needed.
|
||||||
|
e107::css('core','camera/css/camera.css','jquery');
|
||||||
|
|
||||||
|
?>
|
@@ -10,7 +10,8 @@ if (!defined('e107_INIT')) { exit; }
|
|||||||
|
|
||||||
e107::includeLan(e_PLUGIN.'featurebox/languages/'.e_LANGUAGE.'_front_featurebox.php');
|
e107::includeLan(e_PLUGIN.'featurebox/languages/'.e_LANGUAGE.'_front_featurebox.php');
|
||||||
|
|
||||||
class featurebox_shortcodes // must match the plugin's folder name. ie. [PLUGIN_FOLDER]_shortcodes
|
|
||||||
|
class featurebox_shortcodes// must match the plugin's folder name. ie. [PLUGIN_FOLDER]_shortcodes
|
||||||
{
|
{
|
||||||
protected $_categories = array();
|
protected $_categories = array();
|
||||||
|
|
||||||
@@ -25,9 +26,11 @@ class featurebox_shortcodes // must match the plugin's folder name. ie. [PLUGIN_
|
|||||||
*
|
*
|
||||||
* @param string $parm parameters
|
* @param string $parm parameters
|
||||||
* @param string $mod category template
|
* @param string $mod category template
|
||||||
|
* @example {FEATUREBOX=cols=2|tabs}
|
||||||
*/
|
*/
|
||||||
function sc_featurebox($parm, $mod = '')
|
function sc_featurebox($parm, $mod = '')
|
||||||
{
|
{
|
||||||
|
|
||||||
// TODO cache
|
// TODO cache
|
||||||
if(!e107::isInstalled('featurebox')) //just in case
|
if(!e107::isInstalled('featurebox')) //just in case
|
||||||
{
|
{
|
||||||
@@ -37,6 +40,7 @@ class featurebox_shortcodes // must match the plugin's folder name. ie. [PLUGIN_
|
|||||||
if(!$mod)
|
if(!$mod)
|
||||||
{
|
{
|
||||||
$ctemplate = 'default';
|
$ctemplate = 'default';
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -64,7 +68,30 @@ class featurebox_shortcodes // must match the plugin's folder name. ie. [PLUGIN_
|
|||||||
}
|
}
|
||||||
|
|
||||||
$tmpl = $this->getFboxTemplate($ctemplate);
|
$tmpl = $this->getFboxTemplate($ctemplate);
|
||||||
|
|
||||||
|
|
||||||
|
$type = vartrue($tmpl['js_type'],''); // Legacy support (prototype.js)
|
||||||
|
|
||||||
|
if(vartrue($tmpl['js']))
|
||||||
|
{
|
||||||
|
$tmp = explode(',', $tmpl['js']);
|
||||||
|
|
||||||
|
foreach($tmp as $file)
|
||||||
|
{
|
||||||
|
e107::js('footer',$file,$type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$tp = e107::getParser();
|
$tp = e107::getParser();
|
||||||
|
|
||||||
|
if(vartrue($tmpl['js_inline']))
|
||||||
|
{
|
||||||
|
$data = $tp->toText($category->getData('fb_category_parms'));
|
||||||
|
$jsInline = str_replace("{FEATUREBOX_PARMS}","{".trim($data)."}",$tmpl['js_inline']);
|
||||||
|
e107::js('footer-inline', $jsInline, $type, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Fix - don't use tablerender if no result (category could contain hidden items)
|
// Fix - don't use tablerender if no result (category could contain hidden items)
|
||||||
$ret = $this->render($category, $ctemplate, $parm);
|
$ret = $this->render($category, $ctemplate, $parm);
|
||||||
@@ -92,7 +119,9 @@ class featurebox_shortcodes // must match the plugin's folder name. ie. [PLUGIN_
|
|||||||
*/
|
*/
|
||||||
function sc_featurebox_navigation($parm, $mod = '')
|
function sc_featurebox_navigation($parm, $mod = '')
|
||||||
{
|
{
|
||||||
// TODO cache
|
// TODO cache
|
||||||
|
//TODO default $parm values. eg. assume 'tabs' when included in the 'tabs' template.
|
||||||
|
|
||||||
if(!e107::isInstalled('featurebox')) //just in case
|
if(!e107::isInstalled('featurebox')) //just in case
|
||||||
{
|
{
|
||||||
return '';
|
return '';
|
||||||
@@ -109,6 +138,7 @@ class featurebox_shortcodes // must match the plugin's folder name. ie. [PLUGIN_
|
|||||||
parse_str($parm, $parm);
|
parse_str($parm, $parm);
|
||||||
|
|
||||||
$category = $this->getCategoryModel($ctemplate);
|
$category = $this->getCategoryModel($ctemplate);
|
||||||
|
|
||||||
if(!$category->hasData())
|
if(!$category->hasData())
|
||||||
{
|
{
|
||||||
return '';
|
return '';
|
||||||
@@ -119,6 +149,7 @@ class featurebox_shortcodes // must match the plugin's folder name. ie. [PLUGIN_
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
$tmpl = $this->getFboxTemplate($ctemplate);
|
$tmpl = $this->getFboxTemplate($ctemplate);
|
||||||
|
|
||||||
if($category->get('fb_category_random'))
|
if($category->get('fb_category_random'))
|
||||||
{
|
{
|
||||||
unset($parm['loop']);
|
unset($parm['loop']);
|
||||||
@@ -190,16 +221,35 @@ class featurebox_shortcodes // must match the plugin's folder name. ie. [PLUGIN_
|
|||||||
}
|
}
|
||||||
$ret .= $category->toHTML(varset($tmpl[$base.'end']), true);
|
$ret .= $category->toHTML(varset($tmpl[$base.'end']), true);
|
||||||
|
|
||||||
if(vartrue($tmpl['js']))
|
// Moved to 'sc_featurebox' - as it wouldn't load js if navigation was not used.
|
||||||
{
|
/*
|
||||||
e107::getJs()->footerFile(explode(',', $tmpl['js']));
|
$type = vartrue($tmpl['js_type'],''); // Legacy support (prototype.js)
|
||||||
}
|
|
||||||
|
|
||||||
|
if(vartrue($tmpl['js']))
|
||||||
|
{
|
||||||
|
$tmp = explode(',', $tmpl['js']);
|
||||||
|
|
||||||
|
foreach($tmp as $file)
|
||||||
|
{
|
||||||
|
e107::js('footer',$file,$type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(vartrue($tmpl['js_inline']))
|
if(vartrue($tmpl['js_inline']))
|
||||||
{
|
{
|
||||||
e107::getJs()->footerInline($tmpl['js_inline'], 3);
|
e107::js('inline',$tmpl['js_inline'],$type,3);
|
||||||
|
// e107::getJs()->footerInline($tmpl['js_inline'], 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(vartrue($tmpl['css']))
|
||||||
|
{
|
||||||
|
$tmp = explode(',', $tmpl['css']);
|
||||||
|
foreach($tmp as $file)
|
||||||
|
{
|
||||||
|
e107::css('url',$file,$type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -385,8 +435,9 @@ class featurebox_shortcodes // must match the plugin's folder name. ie. [PLUGIN_
|
|||||||
*/
|
*/
|
||||||
public function getCategoryModel($template, $force = false)
|
public function getCategoryModel($template, $force = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
if(!isset($this->_categories[$template]))
|
if(!isset($this->_categories[$template]))
|
||||||
{
|
{
|
||||||
$this->_categories[$template] = new plugin_featurebox_category();
|
$this->_categories[$template] = new plugin_featurebox_category();
|
||||||
$this->_categories[$template]->loadByTemplate($template, $force);
|
$this->_categories[$template]->loadByTemplate($template, $force);
|
||||||
}
|
}
|
||||||
|
@@ -23,6 +23,7 @@ CREATE TABLE featurebox_category (
|
|||||||
`fb_category_random` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
`fb_category_random` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||||
`fb_category_class` smallint(5) NOT NULL DEFAULT '0',
|
`fb_category_class` smallint(5) NOT NULL DEFAULT '0',
|
||||||
`fb_category_limit` tinyint(3) unsigned NOT NULL DEFAULT '1',
|
`fb_category_limit` tinyint(3) unsigned NOT NULL DEFAULT '1',
|
||||||
|
`fb_category_parms` text NOT NULL,
|
||||||
PRIMARY KEY (`fb_category_id`),
|
PRIMARY KEY (`fb_category_id`),
|
||||||
UNIQUE KEY `fb_category_template` (`fb_category_template`)
|
UNIQUE KEY `fb_category_template` (`fb_category_template`)
|
||||||
) ENGINE=MyISAM;
|
) ENGINE=MyISAM;
|
@@ -125,6 +125,16 @@ class plugin_featurebox_item extends e_model
|
|||||||
}
|
}
|
||||||
return '<a id="featurebox-imageurl-'.$this->getId().'" href="'.$tp->replaceConstants($this->get('fb_imageurl'), 'full').'" title="'.$tp->toAttribute($this->get('fb_title')).'" rel="'.$tp->toAttribute(vartrue($parm['rel'], 'external')).'">'.$tag.'</a>';
|
return '<a id="featurebox-imageurl-'.$this->getId().'" href="'.$tp->replaceConstants($this->get('fb_imageurl'), 'full').'" title="'.$tp->toAttribute($this->get('fb_title')).'" rel="'.$tp->toAttribute(vartrue($parm['rel'], 'external')).'">'.$tag.'</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function sc_featurebox_thumb($parm='')
|
||||||
|
{
|
||||||
|
if(!$this->get('fb_image'))
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
$att = ($parm) ?$parm : 'aw=100&ah=60';
|
||||||
|
return e107::getParser()->thumbUrl($this->get('fb_image'),$att);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Item counter number (starting from 1)
|
* Item counter number (starting from 1)
|
||||||
|
@@ -87,22 +87,61 @@ $FEATUREBOX_CATEGORY_TEMPLATE['dynamic']['nav_separator'] = ' ';
|
|||||||
$FEATUREBOX_CATEGORY_TEMPLATE['dynamic']['js'] = '{e_PLUGIN}featurebox/featurebox.js';
|
$FEATUREBOX_CATEGORY_TEMPLATE['dynamic']['js'] = '{e_PLUGIN}featurebox/featurebox.js';
|
||||||
// inline JS, without <script> tags
|
// inline JS, without <script> tags
|
||||||
$FEATUREBOX_CATEGORY_TEMPLATE['dynamic']['js_inline'] = 'new Featurebox(\'featurebox-container\')';
|
$FEATUREBOX_CATEGORY_TEMPLATE['dynamic']['js_inline'] = 'new Featurebox(\'featurebox-container\')';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['dynamic']['js_type'] = 'prototype';
|
||||||
|
|
||||||
|
|
||||||
|
// ------------------------------------------ TABS (Legacy Prototype.js) ---------------------------
|
||||||
|
|
||||||
//TODO - tabs template.
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs-proto']['list_start'] = '
|
||||||
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['list_start'] = '
|
|
||||||
<div class="box featurebox admintabs" id="featurebox-tab-container">
|
<div class="box featurebox admintabs" id="featurebox-tab-container">
|
||||||
{FEATUREBOX_NAVIGATION|tabs=loop&uselimit}
|
{FEATUREBOX_NAVIGATION|tabs=loop&uselimit}
|
||||||
<div class="tab-content-wrap">
|
<div class="tab-content-wrap">
|
||||||
';
|
';
|
||||||
|
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs-proto']['list_end'] = '
|
||||||
|
</div>
|
||||||
|
<div class="clear"><!-- --></div>
|
||||||
|
</div>
|
||||||
|
';
|
||||||
|
|
||||||
|
// no column support
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs-proto']['col_start'] = '<div id="tab-{FEATUREBOX_COLSCOUNT}-activate"><div class="tab-content">';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs-proto']['col_end'] = '</div></div>';
|
||||||
|
|
||||||
|
// ajax navigation (unobtrusive)
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs-proto']['item_start'] = '';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs-proto']['item_end'] = '';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs-proto']['item_separator'] = '<div class="clear"><!-- --></div>';
|
||||||
|
|
||||||
|
// empty item - used with col templates, no shortcodes just basic markup
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs-proto']['item_empty'] = '';
|
||||||
|
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs-proto']['nav_start'] = '<div class="tabs"><ul class="e-tabs clear" id="front-tabs">';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs-proto']['nav_item'] = '<li id="featurebox-tab-{FEATUREBOX_COUNTER}"><a href="#tab-{FEATUREBOX_COUNTER}-activate"><span>{FEATUREBOX_TITLE}</span></a></li>';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs-proto']['nav_end'] = '</ul></div>';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs-proto']['nav_separator'] = '';
|
||||||
|
|
||||||
|
// external JS, comma separated list
|
||||||
|
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs-proto']['js'] = '{e_FILE}jslib/core/tabs.js';
|
||||||
|
// inline JS, without <script> tags
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs-proto']['js_inline'] = 'new e107Widgets.Tabs("featurebox-tab-container", { bookmarkFix: false });';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs-proto']['js_type'] = 'prototype';
|
||||||
|
|
||||||
|
|
||||||
|
// ------------------------------------------ TABS (jquery) ----------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['list_start'] = '
|
||||||
|
<div class="box featurebox e-tabs" id="featurebox-tab-container">
|
||||||
|
{FEATUREBOX_NAVIGATION|tabs=loop&uselimit}
|
||||||
|
';
|
||||||
|
|
||||||
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['list_end'] = '
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['list_end'] = '
|
||||||
</div>
|
</div>
|
||||||
<div class="clear"><!-- --></div>
|
<div class="clear"><!-- --></div>
|
||||||
</div>
|
</div>
|
||||||
';
|
';
|
||||||
|
|
||||||
// no column support
|
// no column support
|
||||||
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['col_start'] = '<div id="tab-{FEATUREBOX_COLSCOUNT}-activate"><div class="tab-content">';
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['col_start'] = '<div id="tab-{FEATUREBOX_COLSCOUNT}-activate"><div class="tab-content">';
|
||||||
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['col_end'] = '</div></div>';
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['col_end'] = '</div></div>';
|
||||||
@@ -115,15 +154,60 @@ $FEATUREBOX_CATEGORY_TEMPLATE['tabs']['item_separator'] = '<div class="clear"><!
|
|||||||
// empty item - used with col templates, no shortcodes just basic markup
|
// empty item - used with col templates, no shortcodes just basic markup
|
||||||
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['item_empty'] = '';
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['item_empty'] = '';
|
||||||
|
|
||||||
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['nav_start'] = '<div class="tabs"><ul class="e-tabs clear" id="front-tabs">';
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['nav_start'] = '<ul>';
|
||||||
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['nav_item'] = '<li id="featurebox-tab-{FEATUREBOX_COUNTER}"><a href="#tab-{FEATUREBOX_COUNTER}-activate"><span>{FEATUREBOX_TITLE}</span></a></li>';
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['nav_item'] = '<li><a href="#tab-{FEATUREBOX_COUNTER}-activate">{FEATUREBOX_TITLE}</a></li>';
|
||||||
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['nav_end'] = '</ul></div>';
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['nav_end'] = '</ul>';
|
||||||
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['nav_separator'] = '';
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['nav_separator'] = '';
|
||||||
|
//<div class="e-tabs">
|
||||||
// external JS, comma separated list
|
// external JS, comma separated list
|
||||||
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['js'] = '{e_FILE}jslib/core/tabs.js';
|
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['js'] = '';
|
||||||
// inline JS, without <script> tags
|
// inline JS, without <script> tags
|
||||||
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['js_inline'] = 'new e107Widgets.Tabs("featurebox-tab-container", { bookmarkFix: false });';
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['js_inline'] = '';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['tabs']['js_type'] = 'jquery';
|
||||||
|
|
||||||
|
|
||||||
|
// ------------------------------------------ CAMERA ----------------------------------------------
|
||||||
|
/*
|
||||||
|
<div class="camera_wrap">
|
||||||
|
<div data-src="images/image_1.jpg"></div>
|
||||||
|
<div data-src="images/image_1.jpg"></div>
|
||||||
|
<div data-src="images/image_2.jpg"></div>
|
||||||
|
</div>
|
||||||
|
*/
|
||||||
|
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['camera']['list_start'] = '<!-- start Camera -->
|
||||||
|
<div class="box featurebox camera_wrap camera_azure_skin">
|
||||||
|
|
||||||
|
';
|
||||||
|
// {FEATUREBOX_NAVIGATION|camera=loop&uselimit}
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['camera']['list_end'] = '
|
||||||
|
</div>
|
||||||
|
<div class="clear"><!-- --></div>
|
||||||
|
<!-- End Camera -->
|
||||||
|
';
|
||||||
|
// no column support
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['camera']['col_start'] = '';// <div id="tab-{FEATUREBOX_COLSCOUNT}-activate"><div class="tab-content">';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['camera']['col_end'] = ''; // </div></div>';
|
||||||
|
|
||||||
|
// ajax navigation (unobtrusive)
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['camera']['item_start'] = '';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['camera']['item_end'] = '';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['camera']['item_separator'] = '';// <div class="clear"><!-- --></div>';
|
||||||
|
|
||||||
|
// empty item - used with col templates, no shortcodes just basic markup
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['camera']['item_empty'] = '';
|
||||||
|
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['camera']['nav_start'] = ''; // <ul>';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['camera']['nav_item'] = ''; // <li><a href="#tab-{FEATUREBOX_COUNTER}-activate">{FEATUREBOX_TITLE}</a></li>';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['camera']['nav_end'] = ''; // </ul>';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['camera']['nav_separator'] = '';
|
||||||
|
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['camera']['js'] = '{e_FILE}jslib/camera/scripts/camera.min.js';
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['camera']['js_inline'] = "$('.camera_wrap').camera({FEATUREBOX_PARMS});";
|
||||||
|
$FEATUREBOX_CATEGORY_TEMPLATE['camera']['js_type'] = 'jquery';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Template information.
|
* Template information.
|
||||||
@@ -135,8 +219,10 @@ $FEATUREBOX_CATEGORY_TEMPLATE['tabs']['js_inline'] = 'new e107Widgets.Tabs("feat
|
|||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
$FEATUREBOX_CATEGORY_INFO = array(
|
$FEATUREBOX_CATEGORY_INFO = array(
|
||||||
'default' => array('title' => 'Default (core)', 'description' => 'Flat - show by category limit'),
|
'tabs' => array('title' => 'Tabs (jquery)' , 'description' => 'Tabbed Feature box items'),
|
||||||
'dynamic' => array('title' => 'Dynamic (core)', 'description' => 'Load items on click (AJAX)'),
|
'camera' => array('title' => 'Image-Slider (jquery)' , 'description' => 'Image transitions using "<a href=\'http://www.pixedelic.com/plugins/camera/\'>Camera</a>"'),
|
||||||
'tabs' => array('title' => 'Tabs (core)' , 'description' => 'Tabbed Feature box items')
|
'default' => array('title' => 'Default (prototype.js)', 'description' => 'Flat - show by category limit'),
|
||||||
|
'dynamic' => array('title' => 'Dynamic (prototype.js)', 'description' => 'Load items on click (AJAX)'),
|
||||||
|
'tabs-proto' => array('title' => 'Tabs (prototype.js)' , 'description' => 'Tabbed Feature box items')
|
||||||
);
|
);
|
||||||
?>
|
?>
|
@@ -8,13 +8,14 @@
|
|||||||
|
|
||||||
global $sc_style;
|
global $sc_style;
|
||||||
|
|
||||||
$FEATUREBOX_TEMPLATE['default'] = '
|
$FEATUREBOX_TEMPLATE['default'] = '<!-- Feature box Item -->
|
||||||
<div class="featurebox-item">
|
<div class="featurebox-item" >
|
||||||
<h3>{FEATUREBOX_TITLE|default}</h3>
|
<h3>{FEATUREBOX_TITLE|default}</h3>
|
||||||
{FEATUREBOX_TEXT|default}
|
{FEATUREBOX_TEXT|default}
|
||||||
</div>
|
</div>
|
||||||
';
|
';
|
||||||
|
|
||||||
|
|
||||||
$sc_style['FEATUREBOX_IMAGE|image_left']['pre'] = '<img class="f-left" src="';
|
$sc_style['FEATUREBOX_IMAGE|image_left']['pre'] = '<img class="f-left" src="';
|
||||||
$sc_style['FEATUREBOX_IMAGE|image_left']['post'] = '" alt="" />';
|
$sc_style['FEATUREBOX_IMAGE|image_left']['post'] = '" alt="" />';
|
||||||
$FEATUREBOX_TEMPLATE['image_left'] = '
|
$FEATUREBOX_TEMPLATE['image_left'] = '
|
||||||
@@ -24,6 +25,7 @@ $FEATUREBOX_TEMPLATE['image_left'] = '
|
|||||||
</div>
|
</div>
|
||||||
';
|
';
|
||||||
|
|
||||||
|
|
||||||
$sc_style['FEATUREBOX_IMAGE|image_right']['pre'] = '<img class="f-right" src="';
|
$sc_style['FEATUREBOX_IMAGE|image_right']['pre'] = '<img class="f-right" src="';
|
||||||
$sc_style['FEATUREBOX_IMAGE|image_right']['post'] = '" alt="" />';
|
$sc_style['FEATUREBOX_IMAGE|image_right']['post'] = '" alt="" />';
|
||||||
$FEATUREBOX_TEMPLATE['image_right'] = '
|
$FEATUREBOX_TEMPLATE['image_right'] = '
|
||||||
@@ -33,9 +35,36 @@ $FEATUREBOX_TEMPLATE['image_right'] = '
|
|||||||
</div>
|
</div>
|
||||||
';
|
';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$FEATUREBOX_TEMPLATE['camera'] = '
|
||||||
|
<div class="featurebox-item" data-thumb="{FEATUREBOX_THUMB}" data-src="{FEATUREBOX_IMAGE|camera=src}" data-link="{FEATUREBOX_URL}">
|
||||||
|
<div class="featurebox-text camera_effected" style="position:absolute">
|
||||||
|
<div class="featurebox-title">{FEATUREBOX_TITLE|camera}</div>
|
||||||
|
<div class="featurebox-text">{FEATUREBOX_TEXT|camera}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$FEATUREBOX_TEMPLATE['camera_caption'] = '
|
||||||
|
<div class="featurebox-item" data-thumb="{FEATUREBOX_THUMB}" data-src="{FEATUREBOX_IMAGE|camera=src}" data-link="{FEATUREBOX_URL}">
|
||||||
|
<div class="camera_caption fadeFromBottom">
|
||||||
|
<h3>{FEATUREBOX_TITLE|camera}</h3>
|
||||||
|
{FEATUREBOX_TEXT|camera}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$FEATUREBOX_INFO = array(
|
$FEATUREBOX_INFO = array(
|
||||||
'default' => array('title' => 'Default (core)', 'description' => 'Title and description - no image'),
|
'default' => array('title' => 'Default (core)', 'description' => 'Title and description - no image'),
|
||||||
'image_right' => array('title' => 'Right image (core)', 'description' => 'Right floated image'),
|
'image_right' => array('title' => 'Right image (core)', 'description' => 'Right floated image'),
|
||||||
'image_left' => array('title' => 'Left image (core)' , 'description' => 'Left floated image')
|
'image_left' => array('title' => 'Left image (core)' , 'description' => 'Left floated image'),
|
||||||
|
'camera' => array('title' => 'Image with text-overlay', 'description' => 'For use with the "camera" category'),
|
||||||
|
'camera_caption' => array('title' => 'Image with lower caption', 'description' => 'For use with the "camera" category')
|
||||||
);
|
);
|
||||||
?>
|
?>
|
Reference in New Issue
Block a user