mirror of
https://github.com/e107inc/e107.git
synced 2025-02-19 14:04:44 +01:00
commit
8fe05f8ea1
@ -2,8 +2,14 @@
|
||||
engines:
|
||||
csslint:
|
||||
enabled: false
|
||||
duplication:
|
||||
duplication:
|
||||
enabled: true
|
||||
checks:
|
||||
Identical code:
|
||||
enabled: false
|
||||
Design/TooManyPublicMethods:
|
||||
enabled: false
|
||||
|
||||
config:
|
||||
languages:
|
||||
- javascript
|
||||
@ -25,6 +31,8 @@ engines:
|
||||
enabled: false
|
||||
Design/TooManyFields:
|
||||
enabled: false
|
||||
CleanCode/BooleanArgumentFlag:
|
||||
enabled: false
|
||||
config:
|
||||
file_extensions: "php"
|
||||
rulesets: "cleancode,unusedcode,codesize"
|
||||
|
@ -269,7 +269,7 @@ class banlist_ui extends e_admin_ui
|
||||
|
||||
|
||||
|
||||
public function timesPage()
|
||||
protected function timesPage()
|
||||
{
|
||||
if (!getperms('0'))
|
||||
{
|
||||
@ -349,12 +349,12 @@ class banlist_ui extends e_admin_ui
|
||||
}
|
||||
|
||||
|
||||
public function optionsPage()
|
||||
protected function optionsPage()
|
||||
{
|
||||
//FIXME Put Options code in here.
|
||||
}
|
||||
|
||||
public function banlogPage()
|
||||
protected function banlogPage()
|
||||
{
|
||||
//FIXME Put LogPage code in here.
|
||||
}
|
||||
|
@ -204,7 +204,7 @@ class eurl_admin_ui extends e_admin_controller_ui
|
||||
}
|
||||
|
||||
//TODO Checkbox for each plugin to enable/disable
|
||||
public function simplePage()
|
||||
protected function simplePage()
|
||||
{
|
||||
// $this->addTitle("Simple Redirects");
|
||||
$eUrl =e107::getAddonConfig('e_url');
|
||||
@ -320,7 +320,7 @@ class eurl_admin_ui extends e_admin_controller_ui
|
||||
}
|
||||
}
|
||||
|
||||
public function SettingsPage()
|
||||
protected function SettingsPage()
|
||||
{
|
||||
//$this->addTitle(LAN_EURL_NAME_SETTINGS);
|
||||
return $this->getUI()->urlSettings();
|
||||
@ -356,7 +356,7 @@ class eurl_admin_ui extends e_admin_controller_ui
|
||||
}
|
||||
}
|
||||
|
||||
public function AliasPage()
|
||||
protected function AliasPage()
|
||||
{
|
||||
// $this->addTitle(LAN_EURL_NAME_ALIASES);
|
||||
|
||||
@ -411,7 +411,7 @@ class eurl_admin_ui extends e_admin_controller_ui
|
||||
}
|
||||
}
|
||||
|
||||
public function ConfigPage()
|
||||
protected function ConfigPage()
|
||||
{
|
||||
// $this->addTitle(LAN_EURL_NAME_CONFIG);
|
||||
$active = e107::getPref('url_config');
|
||||
|
@ -2213,8 +2213,13 @@ class pluginBuilder
|
||||
{
|
||||
$this->createFiles = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(vartrue($_POST['step']) == 4)
|
||||
{
|
||||
$this->step4();
|
||||
return null;
|
||||
}
|
||||
|
||||
if(vartrue($_GET['step']) == 3)
|
||||
{
|
||||
|
||||
@ -2222,11 +2227,7 @@ class pluginBuilder
|
||||
return null;
|
||||
}
|
||||
|
||||
if(vartrue($_POST['step']) == 4)
|
||||
{
|
||||
$this->step4();
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(vartrue($_GET['newplugin']) && $_GET['step']==2)
|
||||
@ -2856,7 +2857,7 @@ class pluginBuilder
|
||||
case 'summary-summary':
|
||||
$help = EPL_ADLAN_142."<br />".EPL_ADLAN_143;
|
||||
$required = true;
|
||||
$size = 100;
|
||||
$size = 130;
|
||||
$placeholder= " ";
|
||||
$pattern = "[A-Za-z \.0-9]*";
|
||||
$xsize = 'block-level';
|
||||
@ -3791,7 +3792,7 @@ $text .= "
|
||||
|
||||
// ------- Customize Create --------
|
||||
|
||||
public function beforeCreate(\$new_data)
|
||||
public function beforeCreate(\$new_data,\$old_data)
|
||||
{
|
||||
return \$new_data;
|
||||
}
|
||||
|
@ -363,6 +363,13 @@ $text .= "<div class='field-spacer'>".$tp->parseTemplate("{IMAGESELECTOR={$parms
|
||||
$sLogo = siteinfo_shortcodes::sc_logo();
|
||||
*/
|
||||
|
||||
if(!empty($pref['sitebutton']) && strpos($pref['sitebutton'],'{')===false && file_exists(e_IMAGE.$pref['sitebutton']))
|
||||
{
|
||||
$pref['sitebutton'] = '{e_IMAGE}'.$pref['sitebutton'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
$text .= $frm->imagepicker('sitebutton',$pref['sitebutton'],'','help='.PRFLAN_225);
|
||||
|
||||
$text .= "
|
||||
|
@ -34,6 +34,8 @@ class news_shortcodes extends e_shortcode
|
||||
protected $commentsEngine = 'e107';
|
||||
|
||||
private $imageItem;
|
||||
|
||||
public $param = array();
|
||||
|
||||
|
||||
function __construct($eVars = null)
|
||||
@ -80,7 +82,10 @@ class news_shortcodes extends e_shortcode
|
||||
{
|
||||
$tp = e107::getParser();
|
||||
e107::getBB()->setClass("news"); // For automatic bbcode image resizing.
|
||||
|
||||
|
||||
|
||||
$news_body = '';
|
||||
|
||||
if($parm != 'extended')
|
||||
{
|
||||
$news_body = $tp->toHTML($this->news_item['news_body'], true, 'BODY, fromadmin', $this->news_item['news_author']);
|
||||
@ -90,7 +95,9 @@ class news_shortcodes extends e_shortcode
|
||||
{
|
||||
$news_body .= $tp->toHTML($this->news_item['news_extended'], true, 'BODY, fromadmin', $this->news_item['news_author']);
|
||||
}
|
||||
|
||||
e107::getBB()->clearClass();
|
||||
|
||||
return $news_body;
|
||||
}
|
||||
|
||||
@ -511,7 +518,8 @@ class news_shortcodes extends e_shortcode
|
||||
{
|
||||
$tp = e107::getParser();
|
||||
$text = $tp->toHtml($this->news_item['news_body'],true);
|
||||
$text = str_replace("<br />","\n",$text);
|
||||
$breaks = array('<br />','<br>');
|
||||
$text = str_replace($breaks,"\n",$text);
|
||||
$text = strip_tags($text);
|
||||
$tmp = preg_split('/(\.\s|!|\r|\n|\?)/i', trim($text));
|
||||
$tmp = array_filter($tmp);
|
||||
@ -597,18 +605,25 @@ class news_shortcodes extends e_shortcode
|
||||
$_src = $src = ($newsThumb[0] == '{' || $parms[1] == 'placeholder') ? e107::getParser()->replaceConstants($newsThumb, 'abs') : e_IMAGE_ABS."newspost_images/".$newsThumb;
|
||||
|
||||
|
||||
if($parms[2] || $parms[1] == 'placeholder')
|
||||
if(!empty($parms[2]) || $parms[1] == 'placeholder')
|
||||
{
|
||||
// $srcset = "srcset='".$tp->thumbSrcSet($src,'all')."' size='100vw' ";
|
||||
$src = e107::getParser()->thumbUrl($src, $parms[2]);
|
||||
$attr = !empty($parms[2]) ? $parms[2] : null;
|
||||
$src = e107::getParser()->thumbUrl($src, $attr);
|
||||
$dimensions = e107::getParser()->thumbDimensions();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(empty($parms[1]))
|
||||
{
|
||||
$parms = array(1 => null);
|
||||
}
|
||||
|
||||
$style = !empty($this->param['thumbnail']) ? $this->param['thumbnail'] : '';
|
||||
|
||||
|
||||
switch($parms[1])
|
||||
{
|
||||
case 'src':
|
||||
@ -616,15 +631,15 @@ class news_shortcodes extends e_shortcode
|
||||
break;
|
||||
|
||||
case 'tag':
|
||||
return "<img class='news_image ".$class."' src='".$src."' alt='' style='".$this->param['thumbnail']."' {$dimensions} {$srcset} />";
|
||||
return "<img class='news_image ".$class."' src='".$src."' alt='' style='".$style."' {$dimensions} {$srcset} />";
|
||||
break;
|
||||
|
||||
case 'img':
|
||||
return "<a href='".$_src."' rel='external image'><img class='news_image ".$class."' src='".$src."' alt='' style='".$this->param['thumbnail']."' {$dimensions} {$srcset} /></a>";
|
||||
return "<a href='".$_src."' rel='external image'><img class='news_image ".$class."' src='".$src."' alt='' style='".$style."' {$dimensions} {$srcset} /></a>";
|
||||
break;
|
||||
|
||||
default:
|
||||
return "<a href='".e107::getUrl()->create('news/view/item', $this->news_item)."'><img class='news_image img-responsive img-rounded ".$class."' src='".$src."' alt='' style='".$this->param['thumbnail']."' {$dimensions} {$srcset} /></a>";
|
||||
return "<a href='".e107::getUrl()->create('news/view/item', $this->news_item)."'><img class='news_image img-responsive img-rounded ".$class."' src='".$src."' alt='' style='".$style."' {$dimensions} {$srcset} /></a>";
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -800,6 +815,8 @@ class news_shortcodes extends e_shortcode
|
||||
$parm['type'] = 'tag';
|
||||
}
|
||||
|
||||
$style = !empty($this->param['thumbnail']) ? $this->param['thumbnail'] : '';
|
||||
|
||||
switch(vartrue($parm['type']))
|
||||
{
|
||||
case 'src':
|
||||
@ -807,12 +824,12 @@ class news_shortcodes extends e_shortcode
|
||||
break;
|
||||
|
||||
case 'tag':
|
||||
return "<img class='{$class}' src='".$src."' alt='' style='".$this->param['thumbnail']."' {$dimensions} {$srcset} />";
|
||||
return "<img class='{$class}' src='".$src."' alt='' style='".$style."' {$dimensions} {$srcset} />";
|
||||
break;
|
||||
|
||||
case 'url':
|
||||
default:
|
||||
return "<a href='".e107::getUrl()->create('news/view/item', $this->news_item)."'><img class='{$class}' src='".$src."' alt='' style='".$this->param['thumbnail']."' {$dimensions} {$srcset} /></a>";
|
||||
return "<a href='".e107::getUrl()->create('news/view/item', $this->news_item)."'><img class='{$class}' src='".$src."' alt='' style='".$style."' {$dimensions} {$srcset} /></a>";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -185,8 +185,12 @@ class signup_shortcodes extends e_shortcode
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function sc_signup_loginname()
|
||||
/* example {SIGNUP_LOGINNAME} */
|
||||
/* example {SIGNUP_LOGINNAME: class=btn input-lg} */
|
||||
/* example {SIGNUP_LOGINNAME: placeholder=LAN_LOGINNAME} */
|
||||
/* example {SIGNUP_LOGINNAME: class=input-lg&placeholder=LAN_LOGINNAME} */
|
||||
|
||||
function sc_signup_loginname($parm=null)
|
||||
{
|
||||
|
||||
$pref = e107::getPref();
|
||||
@ -194,20 +198,26 @@ class signup_shortcodes extends e_shortcode
|
||||
{
|
||||
return LAN_SIGNUP_67;
|
||||
}
|
||||
|
||||
|
||||
// if ($pref['signup_option_loginname'])
|
||||
{
|
||||
$log_name_length = varset($pref['loginname_maxlength'],30);
|
||||
$options = array('size'=>30,'required'=>1);
|
||||
$options['title'] = str_replace("[x]",$log_name_length,LAN_SIGNUP_109); // Password must be at least
|
||||
$options['pattern'] = '[\S]*';
|
||||
|
||||
$options['class'] = vartrue($parm['class'],'');
|
||||
$options['placeholder'] = vartrue($parm['placeholder']) ? $parm['placeholder'] : '';
|
||||
|
||||
return e107::getForm()->text('loginname', ($_POST['loginname'] ? $_POST['loginname'] : ''), $log_name_length, $options);
|
||||
}
|
||||
}
|
||||
|
||||
/* example {SIGNUP_REALNAME} */
|
||||
/* example {SIGNUP_REALNAME: class=btn input-lg} */
|
||||
/* example {SIGNUP_REALNAME: placeholder=LAN_SIGNUP_91} */
|
||||
/* example {SIGNUP_REALNAME: class=input-lg&placeholder=LAN_SIGNUP_91} */
|
||||
|
||||
function sc_signup_realname()
|
||||
function sc_signup_realname($parm=null)
|
||||
{
|
||||
$pref = e107::getPref('signup_option_realname');
|
||||
if($pref < 1){ return; }
|
||||
@ -215,13 +225,19 @@ class signup_shortcodes extends e_shortcode
|
||||
$options = array('size'=>30);
|
||||
$options['required'] = ($pref==2) ? 1 : 0;
|
||||
$options['title'] = LAN_SIGNUP_110;
|
||||
|
||||
$options['class'] = vartrue($parm['class'],'');
|
||||
$options['placeholder'] = vartrue($parm['placeholder'],'');
|
||||
|
||||
return e107::getForm()->text('realname', ($_POST['realname'] ? $_POST['realname'] : ''), 100, $options);
|
||||
|
||||
}
|
||||
|
||||
|
||||
function sc_signup_password1()
|
||||
/* example {SIGNUP_PASSWORD1} */
|
||||
/* example {SIGNUP_PASSWORD1: class=btn input-lg} */
|
||||
/* example {SIGNUP_PASSWORD1: placeholder=LAN_PASSWORD} */
|
||||
/* example {SIGNUP_PASSWORD1: class=input-lg&placeholder=LAN_PASSWORD} */
|
||||
|
||||
function sc_signup_password1($parm=null)
|
||||
{
|
||||
|
||||
$pref = e107::getPref('signup_option_password', 2);
|
||||
@ -239,14 +255,20 @@ class signup_shortcodes extends e_shortcode
|
||||
$options['required'] = true;
|
||||
$options['pattern'] = '(?=^.{'.$len.',}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$';
|
||||
$options['autocomplete'] = 'off';
|
||||
$options['class'] = vartrue($parm['class'],'');
|
||||
$options['placeholder'] = vartrue($parm['placeholder'],'');
|
||||
|
||||
// $options['pattern'] = '\w{'.$len.',}'; // word of minimum length
|
||||
|
||||
|
||||
return e107::getForm()->password('password1', '', 20, $options);
|
||||
}
|
||||
|
||||
/* example {SIGNUP_PASSWORD2} */
|
||||
/* example {SIGNUP_PASSWORD2: class=btn input-lg} */
|
||||
/* example {SIGNUP_PASSWORD2: placeholder=LAN_SIGNUP_84} */
|
||||
/* example {SIGNUP_PASSWORD2: class=input-lg&placeholder=LAN_SIGNUP_84} */
|
||||
|
||||
function sc_signup_password2()
|
||||
function sc_signup_password2($parm=null)
|
||||
{
|
||||
|
||||
$pref = e107::getPref('signup_option_password', 2);
|
||||
@ -255,8 +277,11 @@ class signup_shortcodes extends e_shortcode
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return e107::getForm()->password('password2', '', 20, array('size'=>30,'class'=>'tbox','required'=>1));
|
||||
$options = array('size'=>30,'class'=>'e-password tbox','required'=>1);
|
||||
$options['class'] = vartrue($parm['class'],'');
|
||||
$options['placeholder'] = vartrue($parm['placeholder'],'');
|
||||
|
||||
return e107::getForm()->password('password2', '', 20, $options);
|
||||
}
|
||||
|
||||
|
||||
@ -269,11 +294,17 @@ class signup_shortcodes extends e_shortcode
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function sc_signup_email()
|
||||
/* example {SIGNUP_EMAIL} */
|
||||
/* example {SIGNUP_EMAIL: class=btn input-lg} */
|
||||
/* example {SIGNUP_EMAIL: placeholder=LAN_USER_60} */
|
||||
/* example {SIGNUP_EMAIL: class=input-lg&placeholder=LAN_USER_60} */
|
||||
|
||||
function sc_signup_email($parm=null)
|
||||
{
|
||||
$options = array('size'=>30,'required'=>1,'class'=>'tbox form-control input-text e-email');
|
||||
$options['title'] = LAN_SIGNUP_108; // Must be a valid email address.
|
||||
$options['class'] = vartrue($parm['class'],'');
|
||||
$options['placeholder'] = vartrue($parm['placeholder'],'');
|
||||
|
||||
$text = e107::getForm()->email('email',vartrue($_POST['email'], ''),100,$options);
|
||||
$text .= "<div class='e-email-hint alert-warning' style='display:none; padding:10px' data-hint='Did you mean <b>[x]</b>?'><!-- --></div>";
|
||||
@ -281,16 +312,22 @@ class signup_shortcodes extends e_shortcode
|
||||
return $text;
|
||||
}
|
||||
|
||||
|
||||
function sc_signup_email_confirm()
|
||||
/* example {SIGNUP_EMAIL_CONFIRM} */
|
||||
/* example {SIGNUP_EMAIL_CONFIRM: class=btn input-lg} */
|
||||
/* example {SIGNUP_EMAIL_CONFIRM: placeholder=LAN_SIGNUP_39} */
|
||||
/* example {SIGNUP_EMAIL_CONFIRM: class=input-lg&placeholder=LAN_SIGNUP_39} */
|
||||
|
||||
function sc_signup_email_confirm($parm=null)
|
||||
{
|
||||
$pref = e107::getPref('signup_option_email_confirm');
|
||||
if($pref < 1){ return; }
|
||||
|
||||
$options = array('size'=>30);
|
||||
$options['required'] = ($pref==2) ? 1 : 0;
|
||||
$options['class'] = 'tbox input-text e-email';
|
||||
|
||||
$options['class'] = 'tbox input-text e-email';
|
||||
$options['class'] = vartrue($parm['class'],'tbox input-text e-email');
|
||||
$options['placeholder'] = vartrue($parm['placeholder'],'');
|
||||
|
||||
return e107::getForm()->email('email_confirm', vartrue($_POST['email_confirm']), 100, $options);
|
||||
|
||||
}
|
||||
|
@ -672,16 +672,30 @@ class user_shortcodes extends e_shortcode
|
||||
|
||||
if(!empty($parm['field']))
|
||||
{
|
||||
|
||||
$ext = e107::getUserExt();
|
||||
|
||||
$fld = 'user_'.$parm['field'];
|
||||
|
||||
if(!$ext->hasPermission($fld,'read'))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$val = $this->var[$fld];
|
||||
return e107::getUserExt()->renderValue($val); //TODO auto-detect type, from within the user-extended class.
|
||||
|
||||
// e107::getDebug()->log(print_a($ext,true));
|
||||
|
||||
return $ext->renderValue($val); //TODO auto-detect type, from within the user-extended class.
|
||||
|
||||
}
|
||||
|
||||
return ' ';
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function sc_user_extended_all($parm)
|
||||
{
|
||||
$sql = e107::getDb();
|
||||
|
@ -112,6 +112,8 @@ $EMAIL_TEMPLATE['default']['header'] = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHT
|
||||
.sitebutton img { max-height: 100px; border-radius:4px; margin-right:5px }
|
||||
h4.sitename { font-size: 20px; margin-bottom:5px; margin-top:0; text-decoration:none }
|
||||
h4.sitename a { text-decoration:none }
|
||||
.text-right { text-align: right }
|
||||
.text-center { text-align: center }
|
||||
a.siteurl { font-size: 14px }
|
||||
a { color: #428BCA }
|
||||
|
||||
@ -133,7 +135,39 @@ $EMAIL_TEMPLATE['default']['header'] = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHT
|
||||
vertical-align: top;
|
||||
border-top: 1px solid #DDD;
|
||||
}
|
||||
|
||||
.alert { padding: 15px; margin-bottom: 20px; border: 1px solid transparent; border-radius: 4px; }
|
||||
.alert-info { color: #31708f; background-color: #d9edf7; border-color: #bce8f1; }
|
||||
.alert-warning { color: #8a6d3b; background-color: #fcf8e3; border-color: #faebcc; }
|
||||
.alert-danger { color: #a94442; background-color: #f2dede; border-color: #ebccd1; }
|
||||
.alert-success { color: #3c763d; background-color: #dff0d8; border-color: #d6e9c6; }
|
||||
a.btn { text-decoration: none; }
|
||||
.btn {
|
||||
display: inline-block;
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 1.42857143;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
-ms-touch-action: manipulation;
|
||||
touch-action: manipulation;
|
||||
cursor: pointer;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
background-image: none;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.btn-primary { color: #fff; background-color: #337ab7; border-color: #2e6da4; }
|
||||
.btn-success { color: #fff; background-color: #5cb85c; border-color: #4cae4c; }
|
||||
.btn-warning { color: #fff; background-color: #f0ad4e; border-color: #eea236; }
|
||||
.btn-danger { color: #fff; background-color: #d9534f; border-color: #d43f3a; }
|
||||
.btn-lg { padding: 10px 16px; font-size: 18px; line-height: 1.3333333; border-radius: 6px; }
|
||||
.btn-sm { padding: 5px 10px; font-size: 12px; line-height: 1.5; border-radius: 3px; }
|
||||
</style>
|
||||
</head>
|
||||
|
||||
@ -146,7 +180,7 @@ $EMAIL_TEMPLATE['default']['body'] = "{BODY}<br />{MEDIA1}{MEDIA2}{MEDIA3}{MED
|
||||
$EMAIL_TEMPLATE['default']['footer'] = "<br /><br /><table cellspacing='4'>
|
||||
<tr><td>{SITEBUTTON: type=email&h=60}</td>
|
||||
<td><h4 class='sitename'>{SITENAME=link}</h4>
|
||||
{SITEURL}</td></tr>
|
||||
<small>{SITEURL}</small></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -3693,6 +3693,7 @@ class e_admin_controller_ui extends e_admin_controller
|
||||
$tableSJoinArr = array(); // FROM for join tables
|
||||
$filter = array();
|
||||
|
||||
|
||||
$searchQuery = $tp->toDB($request->getQuery('searchquery', ''));
|
||||
$searchFilter = $this->_parseFilterRequest($request->getQuery('filter_options', ''));
|
||||
|
||||
@ -3703,7 +3704,7 @@ class e_admin_controller_ui extends e_admin_controller
|
||||
|
||||
if($searchFilter && is_array($searchFilter))
|
||||
{
|
||||
|
||||
|
||||
list($filterField, $filterValue) = $searchFilter;
|
||||
|
||||
if($filterField && $filterValue !== '' && isset($this->fields[$filterField]))
|
||||
@ -3711,7 +3712,7 @@ class e_admin_controller_ui extends e_admin_controller
|
||||
$_dataType = $this->fields[$filterField]['data'];
|
||||
$_fieldType = $this->fields[$filterField]['type'];
|
||||
|
||||
if($_fieldType === 'comma' || $_fieldType === 'checkboxes' || $_fieldType == 'userclasses')
|
||||
if($_fieldType === 'comma' || $_fieldType === 'checkboxes' || $_fieldType == 'userclasses' || ($_fieldType == 'dropdown' && !empty($this->fields[$filterField]['writeParms']['multiple'])))
|
||||
{
|
||||
$_dataType = 'set';
|
||||
}
|
||||
@ -6328,6 +6329,9 @@ class e_admin_form_ui extends e_form
|
||||
|
||||
case 'dropdown': // use the array $parm;
|
||||
|
||||
|
||||
|
||||
|
||||
if(!empty($parms['optArray']))
|
||||
{
|
||||
$fopts = $parms;
|
||||
@ -6339,12 +6343,16 @@ class e_admin_form_ui extends e_form
|
||||
|
||||
if(!is_array(varset($parms['__options']))) parse_str($parms['__options'], $parms['__options']);
|
||||
$opts = $parms['__options'];
|
||||
if(vartrue($opts['multiple']))
|
||||
if(vartrue($opts['multiple']) && $type == 'batch')
|
||||
{
|
||||
// no batch support for multiple, should have some for filters soon
|
||||
continue;
|
||||
}
|
||||
|
||||
unset($parms['__options']); //remove element options if any
|
||||
|
||||
|
||||
|
||||
foreach($parms as $k => $name)
|
||||
{
|
||||
$option[$key.'__'.$k] = $name;
|
||||
|
@ -172,7 +172,7 @@ class ecache {
|
||||
/**
|
||||
*
|
||||
* @param string $CacheTag - name of tag for future retrieval - should NOT contain an MD5.
|
||||
* @param data $Data - data to be cached
|
||||
* @param string $Data - data to be cached
|
||||
* @param boolean $ForceCache [optional] if TRUE, writes cache even when disabled in admin prefs.
|
||||
* @param boolean $bRaw [optional] if TRUE, writes data exactly as provided instead of prefacing with php leadin
|
||||
* @param boolean $syscache [optional]
|
||||
|
@ -72,25 +72,22 @@ class e107_db_debug {
|
||||
$this->ShowIf('Shortcodes / BBCode',$this->Show_SC_BB());
|
||||
$this->ShowIf('Paths', $this->Show_PATH());
|
||||
$this->ShowIf('Deprecated Function Usage', $this->Show_DEPRECATED());
|
||||
|
||||
if(E107_DBG_INCLUDES)
|
||||
{
|
||||
$this->aIncList = get_included_files();
|
||||
}
|
||||
}
|
||||
|
||||
$this->ShowIf('Included Files: '.count($this->aIncList), $this->Show_Includes());
|
||||
}
|
||||
|
||||
function ShowIf($title,$str)
|
||||
{
|
||||
global $ns,$style;
|
||||
$style='debug';
|
||||
|
||||
if (!isset($ns)) {
|
||||
echo "Why did ns go away?<br />";
|
||||
$ns = new e107table;
|
||||
}
|
||||
|
||||
if (strlen($str)) {
|
||||
$ns->tablerender($title, $str);
|
||||
|
||||
if(!empty($str))
|
||||
{
|
||||
e107::getRender()->setStyle('debug');
|
||||
e107::getRender()->tablerender($title, $str);
|
||||
}
|
||||
}
|
||||
|
||||
@ -517,8 +514,8 @@ class e107_db_debug {
|
||||
</thead>
|
||||
<tbody>\n";
|
||||
|
||||
$description = array(1=>'Bbcode',2=>'Shortcode',3=>'Wrapper');
|
||||
$style = array(1 => 'label-info', 2=>'label-primary', 3=>'label-warning');
|
||||
$description = array(1=>'Bbcode',2=>'Shortcode',3=>'Wrapper', 4=>'Shortcode Override');
|
||||
$style = array(1 => 'label-info', 2=>'label-primary', 3=>'label-warning', 'label-danger');
|
||||
|
||||
foreach($this -> scbbcodes as $codes)
|
||||
{
|
||||
@ -661,6 +658,12 @@ class e107_db_debug {
|
||||
//
|
||||
function log($message,$TraceLev=1)
|
||||
{
|
||||
|
||||
if(is_array($message))
|
||||
{
|
||||
$message = "<pre>".print_r($message,true)."</pre>";
|
||||
}
|
||||
|
||||
if (!E107_DBG_BASIC){
|
||||
return FALSE;
|
||||
}
|
||||
@ -683,8 +686,10 @@ class e107_db_debug {
|
||||
}
|
||||
}
|
||||
|
||||
function Show_Log(){
|
||||
if (!E107_DBG_BASIC || !count($this->aLog)){
|
||||
function Show_Log()
|
||||
{
|
||||
if (empty($this->aLog))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
//
|
||||
@ -697,8 +702,9 @@ class e107_db_debug {
|
||||
|
||||
foreach ($this->aLog as $curLog)
|
||||
{
|
||||
if (!$bRowHeaders) {
|
||||
$bRowHeaders=TRUE;
|
||||
if (!$bRowHeaders)
|
||||
{
|
||||
$bRowHeaders = true;
|
||||
$text .= "<tr class='fcaption'><td><b>".implode("</b></td><td><b>", array_keys($curLog))."</b></td></tr>\n";
|
||||
}
|
||||
|
||||
|
@ -1180,7 +1180,7 @@ class e_form
|
||||
|
||||
/**
|
||||
* User auto-complete search
|
||||
*
|
||||
* XXX EXPERIMENTAL - subject to change.
|
||||
* @param string $name_fld field name for user name
|
||||
* @param string $id_fld field name for user id
|
||||
* @param string $default_name default user name value
|
||||
@ -1188,6 +1188,7 @@ class e_form
|
||||
* @param array|string $options [optional] 'readonly' (make field read only), 'name' (db field name, default user_name)
|
||||
* @return string HTML text for display
|
||||
*/
|
||||
/*
|
||||
function userpicker($name_fld, $id_fld='', $default_name, $default_id, $options = array())
|
||||
{
|
||||
if(!is_array($options))
|
||||
@ -1225,7 +1226,106 @@ class e_form
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* User Field - auto-complete search
|
||||
* @param string $name form element name
|
||||
* @param string|array $value comma separated list of user ids or array of userid=>username pairs.
|
||||
* @param array|string $options [optional]
|
||||
* @param int $options['limit'] Maximum number of users
|
||||
* @param string $options['id'] Custom id
|
||||
* @param string $options['inline'] Inline ID.
|
||||
*
|
||||
* @example $frm->userpicker('author', 1);
|
||||
* @example $frm->userpicker('authors', "1,2,3");
|
||||
* @example $frm->userpicker('author', array('user_id'=>1, 'user_name'=>'Admin');
|
||||
* @example $frm->userpicker('authors', array(0=>array('user_id'=>1, 'user_name'=>'Admin', 1=>array('user_id'=>2, 'user_name'=>'John'));
|
||||
*
|
||||
* @todo $options['type'] = 'select' - dropdown selections box with data returned as array instead of comma-separated.
|
||||
* @return string HTML text for display
|
||||
*/
|
||||
function userpicker($name, $value, $options = array())
|
||||
{
|
||||
if(!is_array($options))
|
||||
{
|
||||
parse_str($options, $options);
|
||||
}
|
||||
|
||||
$defaultItems = array();
|
||||
|
||||
if(is_array($value))
|
||||
{
|
||||
if(isset($value[0]))// multiple users.
|
||||
{
|
||||
foreach($value as $val)
|
||||
{
|
||||
$defaultItems[] = array('value'=>$val['user_id'], 'label'=>$val['user_name']);
|
||||
}
|
||||
|
||||
}
|
||||
else // single user
|
||||
{
|
||||
$defaultItems[] = array('value'=>$value['user_id'], 'label'=>$value['user_name']);
|
||||
}
|
||||
|
||||
}
|
||||
elseif(!empty($value)) /// comma separated with user-id lookup.
|
||||
{
|
||||
$tmp = explode(",", $value);
|
||||
foreach($tmp as $uid)
|
||||
{
|
||||
if($user = e107::user($uid))
|
||||
{
|
||||
$defaultItems[] = array('value'=>$user['user_id'], 'label'=>$user['user_name']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$parms = array(
|
||||
'selectize' => array(
|
||||
'loadPath' => e_BASE . 'user.php',
|
||||
'create' => false,
|
||||
'maxItems' => 1,
|
||||
'mode' => 'multi',
|
||||
'options' => $defaultItems
|
||||
)
|
||||
);
|
||||
|
||||
if(!empty($options['limit']))
|
||||
{
|
||||
$parms['selectize']['maxItems'] = intval($options['limit']);
|
||||
}
|
||||
|
||||
if(!empty($options['id']))
|
||||
{
|
||||
$parms['id'] = $options['id'];
|
||||
}
|
||||
|
||||
if(!empty($options['inline']))
|
||||
{
|
||||
$parms['selectize']['e_editable'] = $options['inline'];
|
||||
}
|
||||
|
||||
//TODO FIXME Filter by userclass. - see $frm->userlist().
|
||||
|
||||
$defValues = array();
|
||||
|
||||
foreach($defaultItems as $val)
|
||||
{
|
||||
$defValues[] = $val['value'];
|
||||
}
|
||||
|
||||
$ret = $this->text($name, implode(",",$defValues), 100, $parms);
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* A Rating element
|
||||
@ -2034,11 +2134,15 @@ class e_form
|
||||
|
||||
/**
|
||||
* Universal Userclass selector - checkboxes, dropdown, everything.
|
||||
* @param $name - form element name
|
||||
* @param $curval - current userclass value(s) as array or comma separated.
|
||||
* @param $type - 'checkbox', 'dropdown',
|
||||
* @param options - query string or array. 'options=admin,mainadmin,classes&vetted=1&exclusions=0' etc.
|
||||
* @return the userclass form element
|
||||
* @param string $name - form element name
|
||||
* @param int $curval - current userclass value(s) as array or comma separated.
|
||||
* @param string $type - checkbox|dropdown default is dropdown.
|
||||
* @param string|array $options - classlist or query string or key=value pair.
|
||||
* @param string $options['options'] comma-separated list of display options. 'options=admin,mainadmin,classes&vetted=1&exclusions=0' etc.
|
||||
*
|
||||
* @example $frm->userclass('name', 0, 'dropdown', 'classes'); // display all userclasses
|
||||
* @example $frm->userclass('name', 0, 'dropdown', 'classes,matchclass'); // display only classes to which the user belongs.
|
||||
* @return string form element(s)
|
||||
*/
|
||||
function userclass($name, $curval=255, $type=null, $options=null)
|
||||
{
|
||||
@ -2048,10 +2152,14 @@ class e_form
|
||||
{
|
||||
$opt = $options;
|
||||
}
|
||||
else
|
||||
elseif(strpos($options,'=')!==false)
|
||||
{
|
||||
parse_str($options,$opt);
|
||||
}
|
||||
else
|
||||
{
|
||||
$opt = array('options'=>$options);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
@ -2626,7 +2734,10 @@ class e_form
|
||||
break;
|
||||
|
||||
case 'placeholder':
|
||||
if($optval) $ret .= " placeholder='{$optval}'";
|
||||
if($optval) {
|
||||
$optval = deftrue($optval, $optval);
|
||||
$ret .= " placeholder='{$optval}'";
|
||||
}
|
||||
break;
|
||||
|
||||
case 'wrap':
|
||||
@ -3570,7 +3681,18 @@ class e_form
|
||||
}
|
||||
|
||||
if(!is_array($attributes['writeParms'])) parse_str($attributes['writeParms'], $attributes['writeParms']);
|
||||
$value = vartrue($attributes['writeParms']['__options']['pre']).vartrue($attributes['writeParms'][$value]).vartrue($attributes['writeParms']['__options']['post']);
|
||||
|
||||
if(!empty($attributes['writeParms']['optArray']))
|
||||
{
|
||||
$radioValue = $attributes['writeParms']['optArray'][$value];
|
||||
}
|
||||
else
|
||||
{
|
||||
$radioValue = vartrue($attributes['writeParms'][$value]);
|
||||
}
|
||||
|
||||
|
||||
$value = vartrue($attributes['writeParms']['__options']['pre']).$radioValue.vartrue($attributes['writeParms']['__options']['post']);
|
||||
break;
|
||||
|
||||
case 'tags':
|
||||
@ -4034,7 +4156,9 @@ class e_form
|
||||
$fieldID = $this->name2id($field . '_' . microtime(true));
|
||||
// Unique ID for each rows.
|
||||
$eEditableID = $this->name2id($fieldID . '_' . $row_id);
|
||||
$tpl = $this->userpicker($field, '', $ttl, $id, array('id' => $fieldID, 'selectize' => array('e_editable' => $eEditableID)));
|
||||
// $tpl = $this->userpicker($field, '', $ttl, $id, array('id' => $fieldID, 'selectize' => array('e_editable' => $eEditableID)));
|
||||
|
||||
$tpl = $this->userpicker($fieldID, array('user_id'=>$id, 'user_name'=>$ttl), array('id' => $fieldID, 'inline' => $eEditableID));
|
||||
$mode = preg_replace('/[^\w]/', '', vartrue($_GET['mode'], ''));
|
||||
$value = "<a id='" . $eEditableID . "' class='e-tip e-editable editable-click editable-userpicker' data-clear='false' data-tpl='" . str_replace("'", '"', $tpl) . "' data-name='" . $field . "' title=\"" . LAN_EDIT . " " . $attributes['title'] . "\" data-type='text' data-pk='" . $row_id . "' data-value='" . $id . "' data-url='" . e_SELF . "?mode={$mode}&action=inline&id={$row_id}&ajax_used=1' href='#'>" . $ttl . "</a>";
|
||||
}
|
||||
@ -4650,30 +4774,41 @@ class e_form
|
||||
case 'user':
|
||||
//user_id expected
|
||||
// Just temporary solution, could be changed soon
|
||||
|
||||
|
||||
if(!isset($parms['__options'])) $parms['__options'] = array();
|
||||
if(!is_array($parms['__options'])) parse_str($parms['__options'], $parms['__options']);
|
||||
|
||||
if((empty($value) && varset($parms['currentInit'],USERID)!=0) || vartrue($parms['current'])) // include current user by default.
|
||||
if((empty($value) && !empty($parms['currentInit']) && !isset($parms['default']) ) || !empty($parms['current']) || (vartrue($parms['default']) == 'USERID')) // include current user by default.
|
||||
{
|
||||
$value = USERID;
|
||||
if(vartrue($parms['current']))
|
||||
{
|
||||
$parms['__options']['readonly'] = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(!is_array($value))
|
||||
{
|
||||
$value = $value ? e107::getSystemUser($value, true)->getUserData() : array();// e107::user($value);
|
||||
}
|
||||
// if(!is_array($value))
|
||||
// {
|
||||
// $value = $value ? e107::getSystemUser($value, true)->getUserData() : array();// e107::user($value);
|
||||
// }
|
||||
|
||||
$colname = vartrue($parms['nameType'], 'user_name');
|
||||
$parms['__options']['name'] = $colname;
|
||||
|
||||
if(!$value) $value = array();
|
||||
$uname = varset($value[$colname]);
|
||||
$value = varset($value['user_id'], 0);
|
||||
$ret = $this->userpicker(vartrue($parms['nameField'], $key), $key, $uname, $value, vartrue($parms['__options']));
|
||||
// if(!$value) $value = array();
|
||||
// $uname = varset($value[$colname]);
|
||||
// $value = varset($value['user_id'], 0);
|
||||
|
||||
if(!empty($parms['limit']))
|
||||
{
|
||||
$parms['__options']['limit'] = intval($parms['limit']);
|
||||
}
|
||||
|
||||
$ret = $this->userpicker(vartrue($parms['nameField'], $key), $value, vartrue($parms['__options']));
|
||||
|
||||
// $ret = $this->userpicker(vartrue($parms['nameField'], $key), $key, $uname, $value, vartrue($parms['__options']));
|
||||
break;
|
||||
|
||||
case 'bool':
|
||||
|
@ -151,7 +151,7 @@ class MagpieRSS {
|
||||
// check for a namespace, and split if found
|
||||
$ns = false;
|
||||
if ( strpos( $element, ':' ) ) {
|
||||
list($ns, $el) = split( ':', $element, 2);
|
||||
list($ns, $el) = explode( ':', $element, 2);
|
||||
}
|
||||
if ( $ns and $ns != 'rdf' ) {
|
||||
$this->current_namespace = $ns;
|
||||
|
@ -566,7 +566,7 @@ class e107Email extends PHPMailer
|
||||
}
|
||||
|
||||
$message = str_replace("\t", "", $message); // filter out tabs from templates;
|
||||
|
||||
|
||||
if ($want_HTML !== FALSE)
|
||||
{
|
||||
// $message = e107::getParser()->toHtml("[html]".$message."[/html]",true); // using toHtml will break media attachment links. (need to retain {e_XXXX )
|
||||
@ -598,7 +598,7 @@ class e107Email extends PHPMailer
|
||||
$message = str_replace("\n", "<br />\n", $message);
|
||||
}
|
||||
|
||||
|
||||
|
||||
$this->MsgHTML($message); // Theoretically this should do everything, including handling of inline images.
|
||||
|
||||
}
|
||||
@ -863,11 +863,11 @@ class e107Email extends PHPMailer
|
||||
|
||||
|
||||
$identifier = deftrue('MAIL_IDENTIFIER', 'X-e107-id');
|
||||
|
||||
if (isset($eml['SMTPDebug'])) { $this->SMTPDebug = $eml['SMTPDebug']; } // 'FALSE' is a valid value!
|
||||
|
||||
if (isset($eml['SMTPDebug'])) { $this->SMTPDebug = $eml['SMTPDebug']; } // 'FALSE' is a valid value!
|
||||
if (!empty($eml['sender_email'])) { $this->From = $eml['sender_email']; }
|
||||
if (!empty($eml['sender_name'])) { $this->FromName = $eml['sender_name']; }
|
||||
if (!empty($eml['replyto'])) { $this->AddAddressList('replyto',$eml['replyto'],vartrue($eml['replytonames'],'')); }
|
||||
if (!empty($eml['replyto'])) { $this->AddAddressList('replyto',$eml['replyto'],vartrue($eml['replytonames'],'')); }
|
||||
if (isset($eml['html'])) { $this->allow_html = $eml['html']; } // 'FALSE' is a valid value!
|
||||
if (isset($eml['html_header'])) { $this->add_HTML_header = $eml['html_header']; } // 'FALSE' is a valid value!
|
||||
if (!empty($eml['body'])) { $this->makeBody($eml['body'], $this->allow_html, $this->add_HTML_header); }
|
||||
@ -882,7 +882,7 @@ class e107Email extends PHPMailer
|
||||
if (!empty($eml['split'])) { $this->SingleTo = ($eml['split'] != FALSE); }
|
||||
if (!empty($eml['smtp_username'])) { $this->Username = $eml['smtp_username']; }
|
||||
if (!empty($eml['smtp_password'])) { $this->Password = $eml['smtp_password']; }
|
||||
|
||||
|
||||
if (!empty($eml['bouncepath']))
|
||||
{
|
||||
$this->Sender = $eml['bouncepath']; // Bounce path
|
||||
@ -947,10 +947,10 @@ class e107Email extends PHPMailer
|
||||
* @param bool $eml['add_html_header'] - if TRUE, adds the 2-line DOCTYPE declaration to the front of the HTML part (but doesn't add <head>...</head>)
|
||||
* @param string $eml['body'] - message body. May be HTML or text. Added according to the current state of the HTML enable flag
|
||||
* @param string|array $eml['attach'] - string if one file, array of filenames if one or more.
|
||||
* @param string $eml['copy_to'] - comma-separated list of cc addresses.
|
||||
* @param string $eml['cc_names'] - comma-separated list of cc names. Optional, used only if $eml['copy_to'] specified
|
||||
* @param string $eml['bcopy_to'] - comma-separated list
|
||||
* @param string $eml['bcc_names'] - comma-separated list of bcc names. Optional, used only if $eml['copy_to'] specified
|
||||
* @param string $eml['cc'] - comma-separated list of cc addresses.
|
||||
* @param string $eml['cc_names'] - comma-separated list of cc names. Optional, used only if $eml['cc'] specified
|
||||
* @param string $eml['bcc'] - comma-separated list
|
||||
* @param string $eml['bcc_names'] - comma-separated list of bcc names. Optional, used only if $eml['bcc'] specified
|
||||
* @param string $eml['bouncepath'] - Sender field (used for bounces)
|
||||
* @param string $eml['returnreceipt'] - email address for notification of receipt (reading)
|
||||
* @param array $eml['inline_images'] - array of files for inline images
|
||||
@ -968,12 +968,12 @@ class e107Email extends PHPMailer
|
||||
public function sendEmail($send_to, $to_name, $eml = array(), $bulkmail = false)
|
||||
{
|
||||
if (count($eml))
|
||||
{
|
||||
{
|
||||
if($error = $this->arraySet($eml)) // Set parameters from list
|
||||
{
|
||||
return $error;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (($bulkmail == true) && $this->localUseVerp && $this->save_bouncepath && (strpos($this->save_bouncepath,'@') !== false))
|
||||
@ -1002,7 +1002,7 @@ class e107Email extends PHPMailer
|
||||
$_SERVER['REMOTE_ADDR'] = $_SERVER['SERVER_ADDR'];
|
||||
$_SERVER["HTTP_X_FORWARDED_FOR"] = $_SERVER['SERVER_ADDR'];
|
||||
$_SERVER["HTTP_CF_CONNECTING_IP"] = $_SERVER['SERVER_ADDR'];
|
||||
|
||||
|
||||
$result = $this->Send(); // Actually send email
|
||||
|
||||
|
||||
@ -1122,10 +1122,18 @@ class e107Email extends PHPMailer
|
||||
$url = $tp->replaceConstants($url);
|
||||
|
||||
// resize on the fly.
|
||||
if($this->debug)
|
||||
{
|
||||
echo "<br />Attempting Resize...".$url;
|
||||
}
|
||||
if($resized = e107::getMedia()->resizeImage($url, e_TEMP.basename($url),'w=800'))
|
||||
{
|
||||
$url = $resized;
|
||||
}
|
||||
elseif($this->debug)
|
||||
{
|
||||
echo "<br />Couldn't resize ".$url;
|
||||
}
|
||||
|
||||
$delim = $images[2][$i]; // Will be single or double quote
|
||||
$filename = basename($url);
|
||||
@ -1139,7 +1147,7 @@ class e107Email extends PHPMailer
|
||||
|
||||
if ($this->debug)
|
||||
{
|
||||
echo "<br />CID file {$filename} in {$directory}. Base = ".SERVERBASE."< BaseDir = {$basedir}<br />";
|
||||
echo "<br />CID file {$filename} in {$directory}. Base = ".SERVERBASE."<br />BaseDir = {$basedir}<br />";
|
||||
}
|
||||
|
||||
$cid = 'cid:' . md5($filename);
|
||||
|
@ -1472,6 +1472,11 @@ class e_media
|
||||
$src = $tp->replaceConstants($src);
|
||||
$dest = $tp->replaceConstants($dest);
|
||||
|
||||
if(!file_exists($src))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$maxWidth = varset($opts['w'], 800);
|
||||
$maxHeight = varset($opts['h'], 800);
|
||||
|
||||
|
@ -440,7 +440,7 @@ class e_pref extends e_front_model
|
||||
* @param boolean $force
|
||||
* @return e_pref
|
||||
*/
|
||||
public function load($force = false)
|
||||
public function load($id=null, $force = false)
|
||||
{
|
||||
global $pref;
|
||||
if($force || !$this->hasData())
|
||||
|
@ -70,6 +70,7 @@ class e_parse_shortcode
|
||||
protected $scOverride = array(); // Array of codes found in override/shortcodes dir
|
||||
protected $scBatchOverride = array(); // Array of codes found in override/shortcodes/batch dir
|
||||
protected $ignoreCodes = array(); // Shortcodes to be ignored and remain unchanged. (ie. {THEME}, {e_PLUGIN} etc. )
|
||||
protected $addonOverride = array(); // Overrides coming from e_shortcode.php
|
||||
/**
|
||||
* @var e_vars
|
||||
*/
|
||||
@ -99,6 +100,8 @@ class e_parse_shortcode
|
||||
$this->loadPluginSCFiles();
|
||||
//$this->loadCoreShortcodes(); DEPRECATED
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -161,7 +164,7 @@ class e_parse_shortcode
|
||||
else
|
||||
{
|
||||
$codes = strtoupper($codes);
|
||||
if ((!$this->isRegistered($code) || $force == true) && !$this->isOverride($code))
|
||||
if ((!$this->isRegistered($codes) || $force == true) && !$this->isOverride($codes))
|
||||
{
|
||||
$this->registered_codes[$codes] = array('type' => 'func', 'path' => $path, 'function' => $classFunc);
|
||||
}
|
||||
@ -245,12 +248,29 @@ class e_parse_shortcode
|
||||
if (class_exists($class, false) && ($force || !$this->isScClass($class)))
|
||||
{
|
||||
$this->scClasses[$class] = new $class();
|
||||
|
||||
if(method_exists($this->scClasses[$class], 'init'))
|
||||
{
|
||||
$this->scClasses[$class]->init();
|
||||
}
|
||||
|
||||
if(!empty($this->scClasses[$class]->override))
|
||||
{
|
||||
$methods = get_class_methods($class);
|
||||
foreach($methods as $meth)
|
||||
{
|
||||
if(substr($meth,0,3) == 'sc_')
|
||||
{
|
||||
$this->addonOverride[$meth] = $class;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $this->scClasses[$class];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -461,25 +481,16 @@ class e_parse_shortcode
|
||||
{
|
||||
global $register_sc;
|
||||
|
||||
// $this->registered_codes[$code]['type'] = 'plugin';
|
||||
// $this->registered_codes[$code]['function'] = strtolower($code).'_shortcode';
|
||||
// $this->registered_codes[$code]['path'] = e_PLUGIN.$path.'/shortcodes/single/';
|
||||
// $this->registered_codes[$code]['perms'] = $uclass;
|
||||
|
||||
|
||||
if(deftrue('e_DEVELOPER')) // experimental, could break something. - use theme shortcodes in other templates.
|
||||
if(file_exists(THEME."theme_shortcodes.php"))
|
||||
{
|
||||
if(file_exists(THEME."theme_shortcodes.php"))
|
||||
{
|
||||
$classFunc = 'theme_shortcodes';
|
||||
$path = THEME."theme_shortcodes.php";
|
||||
include_once($path);
|
||||
$this->registerClassMethods($classFunc, $path, false);
|
||||
|
||||
}
|
||||
$classFunc = 'theme_shortcodes';
|
||||
$path = THEME."theme_shortcodes.php";
|
||||
include_once($path);
|
||||
$this->registerClassMethods($classFunc, $path, false);
|
||||
}
|
||||
|
||||
|
||||
if (isset($register_sc) && is_array($register_sc))
|
||||
if (isset($register_sc) && is_array($register_sc)) // legacy load.
|
||||
{
|
||||
foreach ($register_sc as $code)
|
||||
{
|
||||
@ -641,33 +652,15 @@ class e_parse_shortcode
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* DEPRECATED admin_shortcodes now loaded inside admin parse function (see boot.php)
|
||||
* Register Core Shortcode Batches.
|
||||
* FIXME - make it smarter - currently loaded all the time (even on front-end)
|
||||
*
|
||||
* @return e_parse_shortcode
|
||||
*/
|
||||
// function loadCoreShortcodes()
|
||||
// {
|
||||
// $coreBatchList = array('admin_shortcodes');
|
||||
//
|
||||
// foreach ($coreBatchList as $cb)
|
||||
// {
|
||||
// $path = e_CORE.'shortcodes/batch/'.$cb.".php";
|
||||
// if (include_once($path))
|
||||
// {
|
||||
// $this->registerClassMethods($cb, $path);
|
||||
// }
|
||||
// }
|
||||
// return $this;
|
||||
// }
|
||||
|
||||
|
||||
function isRegistered($code)
|
||||
{
|
||||
return array_key_exists($code, $this->registered_codes);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function resetScClass($className, $object)
|
||||
{
|
||||
if(null === $object)
|
||||
@ -754,6 +747,8 @@ class e_parse_shortcode
|
||||
|
||||
|
||||
$this->addedCodes = &$extraCodes;
|
||||
|
||||
// e107::getDebug()->log("Codes".print_a($this->addedCodes,true));
|
||||
|
||||
// TEMPLATEID_WRAPPER support - see contact template
|
||||
// must be registered in e_shortcode object (batch) via () method before parsing
|
||||
@ -918,26 +913,39 @@ class e_parse_shortcode
|
||||
$_path = '';
|
||||
$ret = '';
|
||||
$_method = 'sc_'.strtolower($code);
|
||||
if (is_object($this->addedCodes) && method_exists($this->addedCodes, $_method)) //It is class-based batch shortcode. Class already loaded; call the method
|
||||
|
||||
|
||||
// Display e_shortcode.php override info.
|
||||
if((E107_DBG_BBSC || E107_DBG_SC) && isset($this->addonOverride[$_method]) && is_object($this->addedCodes) && method_exists($this->addedCodes, $_method))
|
||||
{
|
||||
$debugArr = array('class_original'=>get_class($this->addedCodes), 'class_override'=>$this->addonOverride[$_method], 'function'=>$_method);
|
||||
e107::getDebug()->logCode(4, $code, null, print_a($debugArr,true));
|
||||
}
|
||||
|
||||
|
||||
if (!isset($this->addonOverride[$_method]) && is_object($this->addedCodes) && method_exists($this->addedCodes, $_method)) //It is class-based batch shortcode. Class already loaded; call the method
|
||||
{
|
||||
|
||||
$ret = $this->addedCodes->$_method($parm, $sc_mode);
|
||||
|
||||
if(E107_DBG_BBSC || E107_DBG_SC || E107_DBG_TIMEDETAILS)
|
||||
{
|
||||
$_class = get_class($this->addedCodes); // "(class loaded)"; // debug.
|
||||
$_function = $_method;
|
||||
$_path = "(already loaded)";
|
||||
|
||||
}
|
||||
}
|
||||
elseif (is_array($this->addedCodes) && array_key_exists($code, $this->addedCodes)) // Its array-based shortcode. Load the code for evaluation later.
|
||||
{
|
||||
|
||||
$scCode = $this->addedCodes[$code];
|
||||
// $_path = print_a($this->backTrace,true);
|
||||
//XXX $_path = print_a($this,true);
|
||||
|
||||
$ret = $this->addedCodes[$code];
|
||||
// $_class = "n/a";
|
||||
// $_function = "n/a";
|
||||
$_type = 'array';
|
||||
$_path = "(direct to parser)";
|
||||
|
||||
}
|
||||
|
||||
elseif (array_key_exists($code, $this->scList)) // Check to see if we've already loaded the .sc file contents
|
||||
{
|
||||
|
||||
@ -1062,17 +1070,21 @@ class e_parse_shortcode
|
||||
$_path = $scFile;
|
||||
}
|
||||
}
|
||||
if ($scFile && file_exists($scFile))
|
||||
|
||||
if(!empty($scFile))
|
||||
{
|
||||
$scCode = file_get_contents($scFile);
|
||||
$this->scList[$code] = $scCode;
|
||||
$_path = $scFile;
|
||||
}
|
||||
else
|
||||
{
|
||||
// $ret = 'Missing!';
|
||||
$_path .= " MISSING!";
|
||||
if(file_exists($scFile))
|
||||
{
|
||||
$scCode = file_get_contents($scFile);
|
||||
$this->scList[$code] = $scCode;
|
||||
$_path = $scFile;
|
||||
}
|
||||
else
|
||||
{
|
||||
$_path .= $scFile." MISSING!";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!isset($scCode))
|
||||
@ -1084,21 +1096,37 @@ class e_parse_shortcode
|
||||
return $matches[0];
|
||||
}
|
||||
|
||||
if (E107_DBG_SC && $scFile)
|
||||
{
|
||||
// if (E107_DBG_SC && $scFile)
|
||||
// {
|
||||
// echo (isset($scFile)) ? "<br />sc_file= ".str_replace(e_CORE.'shortcodes/single/', '', $scFile).'<br />' : '';
|
||||
// echo "<br />sc= <b>$code</b>";
|
||||
}
|
||||
// }
|
||||
}
|
||||
|
||||
if ($scCode)
|
||||
if ($scCode) // legacy shortode to be evaluated.
|
||||
{
|
||||
$ret = @eval($scCode);
|
||||
try
|
||||
{
|
||||
$ret = @eval($scCode);
|
||||
}
|
||||
catch (Throwable $t) { // Executed only in PHP 7, will not match in PHP 5.x
|
||||
|
||||
$string = print_a($scCode,true);
|
||||
$string .= "<h4>Added Coded</h4>";
|
||||
$string .= print_a($this->addedCodes,true);
|
||||
e107::getMessage()->addDebug('Could not parse Shortcode '.$scFile.' :: {'.$code .'} '.$string);
|
||||
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
echo $e->getMessage();
|
||||
}
|
||||
|
||||
|
||||
if($ret === false && E107_DEBUG_LEVEL > 0) // Error in Code.
|
||||
{
|
||||
$string = print_a($scCode,true);
|
||||
e107::getMessage()->addDebug('Could not parse Shortcode '.$scFile.' :: {'.$code .'} '.$string);
|
||||
// $string = print_a($scCode,true);
|
||||
// e107::getMessage()->addDebug('Could not parse Shortcode '.$scFile.' :: {'.$code .'} '.$string);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1175,19 +1203,26 @@ class e_parse_shortcode
|
||||
global $db_debug;
|
||||
|
||||
$other = array();
|
||||
|
||||
if(!empty($_type))
|
||||
{
|
||||
$other['type'] = $_type;
|
||||
}
|
||||
|
||||
if($_class)
|
||||
if(!empty($_class))
|
||||
{
|
||||
$other['class'] = $_class;
|
||||
}
|
||||
if(vartrue($_function))
|
||||
if(!empty($_function))
|
||||
{
|
||||
$other['function'] = $_function;
|
||||
}
|
||||
if(vartrue($_path))
|
||||
if(!empty($_path))
|
||||
{
|
||||
$other['path'] = str_replace('../','',$_path);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if($this->debug_legacy)
|
||||
{
|
||||
@ -1308,7 +1343,8 @@ class e_shortcode
|
||||
protected $mode = 'view'; // or edit. Used within shortcodes for form elements vs values only.
|
||||
|
||||
protected $wrapper = null; // holds template/key value of the currently used wrapper (if any) - see contact_template.php for an example.
|
||||
|
||||
|
||||
protected $override = false;
|
||||
/**
|
||||
* Storage for shortcode values
|
||||
* @var e_vars
|
||||
@ -1327,7 +1363,8 @@ class e_shortcode
|
||||
* Startup code for child class
|
||||
*/
|
||||
public function init() {}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Sets wrapper id (to be retrieved from the registry while parsing)
|
||||
* Example e107::getScBatch('contact')->wrapper('contact/form');
|
||||
@ -1366,7 +1403,8 @@ class e_shortcode
|
||||
}
|
||||
|
||||
/**
|
||||
* Alias of setParserVars - Preferred use by Plugins.
|
||||
* Alias of setParserVars - Preferred use by Plugins.
|
||||
* Sets the value of $sc->var
|
||||
*/
|
||||
public function setVars($eVars) // Alias of setParserVars();
|
||||
{
|
||||
|
@ -45,11 +45,12 @@ class e107_user_extended
|
||||
private $extended_xml = FALSE;
|
||||
public $typeArray; // Cross-reference between names of field types, and numeric ID (must be public)
|
||||
private $reserved_names; // List of field names used in main user DB - not allowed in extended DB
|
||||
public $fieldDefinitions; // Array initialised from DB by constructor - currently all fields
|
||||
public $fieldDefinitions = array(); // Array initialised from DB by constructor - currently all fields
|
||||
public $catDefinitions; // Categories
|
||||
private $nameIndex; // Array for field name lookup - initialised by constructor
|
||||
public $systemCount = 0; // Count of system fields - always zero ATM
|
||||
public $userCount = 0; // Count of non-system fields
|
||||
private $nameIndex = array(); // Array for field name lookup - initialised by constructor
|
||||
public $systemCount = 0; // Count of system fields - always zero ATM
|
||||
public $userCount = 0; // Count of non-system fields
|
||||
private $fieldPermissions = array(); // Field Permissionss with field name as key.
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
@ -109,7 +110,6 @@ class e107_user_extended
|
||||
// Read in all the field and category fields
|
||||
// At present we load all fields into common array - may want to split system and non-system
|
||||
$this ->catDefinitions = array(); // Categories array
|
||||
$this->fieldDefinitions = array(); // Field definitions array
|
||||
$this->nameIndex = array(); // Index of names => field IDs
|
||||
$this->systemCount = 0;
|
||||
$this->userCount = 0;
|
||||
@ -125,6 +125,8 @@ class e107_user_extended
|
||||
else
|
||||
{ // Its a field definition
|
||||
$this->fieldDefinitions[$row['user_extended_struct_id']] = $row;
|
||||
$id = 'user_'.$row['user_extended_struct_name'];
|
||||
$this->fieldPermissions[$id] = array('read'=>$row['user_extended_struct_read'], 'write'=>$row['user_extended_struct_write']);
|
||||
$this->nameIndex['user_'.$row['user_extended_struct_name']] = $row['user_extended_struct_id']; // Create name to ID index
|
||||
if ($row['user_extended_struct_text'] == '_system_')
|
||||
{
|
||||
@ -139,14 +141,24 @@ class e107_user_extended
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check read/write access on extended user-fields
|
||||
* @param string $field eg. user_something
|
||||
* @param string $type read|write
|
||||
* @return boolean true if
|
||||
*/
|
||||
public function hasPermission($field, $type='read')
|
||||
{
|
||||
$class = ($type == 'read') ? $this->fieldPermissions[$field]['read'] : $this->fieldPermissions[$field]['write'];
|
||||
return check_class($class);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Check for reserved field names.
|
||||
* (Names which clash with the 'normal' user table aren't allowed)
|
||||
*
|
||||
* @param string $name - name of field bweing checked (no 'user_' prefix)
|
||||
*
|
||||
* @return boolean TRUE if disallowed name
|
||||
*/
|
||||
public function user_extended_reserved($name)
|
||||
|
@ -90,8 +90,8 @@ class UserHandler
|
||||
$this->userVettingInfo = array(
|
||||
'user_name' => array('niceName'=> LAN_USER_01, 'fieldType' => 'string', 'vetMethod' => '1,2', 'vetParam' => 'signup_disallow_text', 'srcName' => 'username', 'stripTags' => TRUE, 'stripChars' => '/ |\#|\=|\$/', 'fixedBlock' => 'anonymous', 'minLength' => 2, 'maxLength' => varset($pref['displayname_maxlength'],15)), // Display name
|
||||
'user_loginname' => array('niceName'=> LAN_USER_02, 'fieldType' => 'string', 'vetMethod' => '1', 'vetParam' => '', 'srcName' => 'loginname', 'stripTags' => TRUE, 'stripChars' => '#[^a-z0-9_\.]#i', 'minLength' => 2, 'maxLength' => varset($pref['loginname_maxlength'],30)), // User name
|
||||
'user_login' => array('niceName'=> LAN_USER_03, 'fieldType' => 'string', 'vetMethod' => '0', 'vetParam' => '', 'srcName' => 'realname', 'dbClean' => 'toDB'), // Real name (no real vetting)
|
||||
'user_customtitle' => array('niceName'=> LAN_USER_04, 'fieldType' => 'string', 'vetMethod' => '0', 'vetParam' => '', 'srcName' => 'customtitle', 'dbClean' => 'toDB', 'enablePref' => 'signup_option_customtitle'), // No real vetting
|
||||
'user_login' => array('niceName'=> LAN_USER_03, 'fieldType' => 'string', 'vetMethod' => '0', 'vetParam' => '', 'srcName' => 'realname', 'dbClean' => 'toDB', 'stripTags' => TRUE, 'stripChars' => '#<|>#i'), // Real name (no real vetting)
|
||||
'user_customtitle' => array('niceName'=> LAN_USER_04, 'fieldType' => 'string', 'vetMethod' => '0', 'vetParam' => '', 'srcName' => 'customtitle', 'dbClean' => 'toDB', 'enablePref' => 'signup_option_customtitle', 'stripTags' => TRUE, 'stripChars' => '#<|>#i'), // No real vetting
|
||||
'user_password' => array('niceName'=> LAN_PASSWORD, 'fieldType' => 'string', 'vetMethod' => '0', 'vetParam' => '', 'srcName' => 'password1', 'dataType' => 2, 'minLength' => varset($pref['signup_pass_len'],1)),
|
||||
'user_sess' => array('niceName'=> LAN_USER_06, 'fieldType' => 'string', 'vetMethod' => '0', 'vetParam' => '', 'stripChars' => "#\"|'|(|)#", 'dbClean' => 'image', 'imagePath' => e_AVATAR_UPLOAD, 'maxHeight' => varset($pref['im_height'], 100), 'maxWidth' => varset($pref['im_width'], 120)), // Photo
|
||||
'user_image' => array('niceName'=> LAN_USER_07, 'fieldType' => 'string', 'vetMethod' => '0', 'vetParam' => '', 'srcName' => 'image', 'stripChars' => "#\"|'|(|)#", 'dbClean' => 'avatar'), //, 'maxHeight' => varset($pref['im_height'], 100), 'maxWidth' => varset($pref['im_width'], 120) resized on-the-fly // Avatar
|
||||
|
@ -952,7 +952,7 @@ class e_user_model extends e_admin_model
|
||||
|
||||
if(false !== $ret && null !== $this->_extended_model) // don't load extended fields if not already used
|
||||
{
|
||||
$ret_e = $this->_extended_model->save($force, $session);
|
||||
$ret_e = $this->_extended_model->save(true, $force, $session);
|
||||
if(false !== $ret_e)
|
||||
{
|
||||
return ($ret_e + $ret);
|
||||
@ -2290,7 +2290,7 @@ class e_user_extended_model extends e_admin_model
|
||||
* @see e_model#load($id, $force)
|
||||
* @return e_user_extended_model
|
||||
*/
|
||||
public function load($force = false)
|
||||
public function load($id=null, $force = false)
|
||||
{
|
||||
if ($this->getId() && !$force)
|
||||
return $this;
|
||||
@ -2434,7 +2434,7 @@ class e_user_extended_model extends e_admin_model
|
||||
* Build data types and rules on the fly and save
|
||||
* @see e_front_model::save()
|
||||
*/
|
||||
public function save($force = false, $session = false)
|
||||
public function save($from_post = true, $force = false, $session = false)
|
||||
{
|
||||
// when not loaded from db, see the construct check
|
||||
if(!$this->getId())
|
||||
@ -2730,7 +2730,7 @@ class e_user_pref extends e_front_model
|
||||
* @param boolean $force
|
||||
* @return e_user_pref
|
||||
*/
|
||||
public function load($force = false)
|
||||
public function load($id = null, $force = false)
|
||||
{
|
||||
if($force || !$this->hasData())
|
||||
{
|
||||
@ -2785,13 +2785,13 @@ class e_user_pref extends e_front_model
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove & apply user prefeferences, optionally - save to DB
|
||||
* Remove & apply user preferences, optionally - save to DB
|
||||
* @return boolean success
|
||||
*/
|
||||
public function delete($save = false)
|
||||
public function delete($ids, $destroy = true, $session_messages = false) // replaced $save = false for PHP7 fix.
|
||||
{
|
||||
$this->removeData()->apply();
|
||||
if($save) return $this->save();
|
||||
// if($save) return $this->save(); //FIXME adjust within the context of the variables in the method.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ if(!defined('e107_INIT'))
|
||||
|
||||
class _blank_shortcodes extends e_shortcode
|
||||
{
|
||||
public $override = false; // when set to true, existing core/plugin shortcodes matching methods below will be overridden.
|
||||
|
||||
// Example: {_BLANK_CUSTOM} shortcode - available site-wide.
|
||||
function sc__blank_custom($parm = null) // Naming: "sc_" + [plugin-directory] + '_uniquename'
|
||||
|
@ -108,4 +108,4 @@ class banner_shortcodes extends e_shortcode
|
||||
return $text;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
|
@ -19,6 +19,24 @@ if (!e107::isInstalled('download'))
|
||||
}
|
||||
|
||||
e107::lan('download',false, true); // Loads e_PLUGIN.'download/languages/'.e_LANGUAGE.'/English_front.php'
|
||||
|
||||
$bcList = array(
|
||||
'LAN_dl_19' => 'LAN_CATEGORY',
|
||||
'LAN_dl_17' => 'LAN_FILES',
|
||||
"LAN_dl_20" => "LAN_FILES",
|
||||
"LAN_dl_21" => "LAN_SIZE",
|
||||
"LAN_dl_22" => "LAN_DATE",
|
||||
"LAN_dl_23" => "LAN_FILE",
|
||||
"LAN_dl_24" => "LAN_AUTHOR",
|
||||
"LAN_dl_25" => "LAN_ASCENDING",
|
||||
"LAN_dl_26" => "LAN_DESCENDING",
|
||||
"LAN_dl_27" => "LAN_GO",
|
||||
"LAN_dl_28" => "LAN_NAME"
|
||||
);
|
||||
|
||||
e107::getLanguage()->bcDefs($bcList);
|
||||
|
||||
|
||||
|
||||
require_once(e_PLUGIN.'download/handlers/download_class.php');
|
||||
require_once(e_PLUGIN.'download/handlers/category_class.php');
|
||||
|
@ -370,7 +370,7 @@ class faq
|
||||
|
||||
$query = "SELECT f.*,cat.* FROM #faqs AS f LEFT JOIN #faqs_info AS cat ON f.faq_parent = cat.faq_info_id WHERE cat.faq_info_class IN (".USERCLASS_LIST.") ".$insert." ORDER BY cat.faq_info_order, f.".$orderBy." ".$ascdesc." ";
|
||||
|
||||
if(!$sql->gen($query))
|
||||
if(!$data = $sql->retrieve($query, true))
|
||||
{
|
||||
$message = (!empty($srch)) ? "<b>".$srch."</b> was not found in search results. <a class='e-tip' title='Reset' href='".$removeUrl."'>Reset</a>" : LAN_FAQS_NONE_AVAILABLE;
|
||||
return "<div class='alert alert-warning alert-block'>".$message."</div>" ; //TODO LAN
|
||||
@ -416,7 +416,7 @@ class faq
|
||||
}
|
||||
|
||||
|
||||
while ($rw = $sql->fetch())
|
||||
foreach ($data as $rw)
|
||||
{
|
||||
$rw['faq_sef'] = eHelper::title2sef($tp->toText($rw['faq_question']),'dashl');
|
||||
|
||||
|
@ -710,8 +710,8 @@ class e107forum
|
||||
$info['data']['post_id'] = $postId; // Append last inserted ID to data array for passing it to event callbacks.
|
||||
|
||||
|
||||
|
||||
e107::getEvent()->trigger('user_forum_post_created', $info);
|
||||
$triggerData = $info['data'];
|
||||
e107::getEvent()->trigger('user_forum_post_created', $triggerData);
|
||||
|
||||
ob_start(); // precaution so json doesn't break.
|
||||
$this->trackEmail($info['data']);
|
||||
@ -757,8 +757,9 @@ class e107forum
|
||||
|
||||
e107::getMessage()->addDebug("Updating Thread with: ".print_a($info,true));
|
||||
|
||||
|
||||
e107::getEvent()->trigger('user_forum_topic_updated', $info);
|
||||
$triggerData = $info['data'];
|
||||
$triggerData['thread_id'] = $postInfo['post_thread'];
|
||||
e107::getEvent()->trigger('user_forum_topic_updated', $triggerData);
|
||||
}
|
||||
|
||||
if(($result || !$updateThread) && $updateForum)
|
||||
@ -824,7 +825,7 @@ class e107forum
|
||||
|
||||
if($newThreadId = e107::getDb()->insert('forum_thread', $info))
|
||||
{
|
||||
e107::getEvent()->trigger('user_forum_topic_created', $info);
|
||||
|
||||
$postInfo['post_thread'] = $newThreadId;
|
||||
|
||||
if(!$newPostId = $this->postAdd($postInfo, false))
|
||||
@ -835,6 +836,13 @@ class e107forum
|
||||
$this->threadMarkAsRead($newThreadId);
|
||||
$threadInfo['thread_sef'] = $this->getThreadsef($threadInfo);
|
||||
|
||||
$triggerData = $info['data'];
|
||||
$triggerData['thread_id'] = $newThreadId;
|
||||
$triggerData['thread_sef'] = $threadInfo['thread_sef'];
|
||||
$triggerData['post_id'] = $newPostId;
|
||||
|
||||
e107::getEvent()->trigger('user_forum_topic_created', $triggerData);
|
||||
|
||||
return array('postid' => $newPostId, 'threadid' => $newThreadId, 'threadsef'=>$threadInfo['thread_sef']);
|
||||
}
|
||||
return false;
|
||||
@ -902,7 +910,9 @@ class e107forum
|
||||
e107::getMessage()->addDebug("Thread Update Failed: ".print_a($info,true));
|
||||
}
|
||||
|
||||
e107::getEvent()->trigger('user_forum_topic_updated', $info);
|
||||
$triggerData = $threadInfo;
|
||||
$triggerData['thread_id'] = intval($threadId);
|
||||
e107::getEvent()->trigger('user_forum_topic_updated', $triggerData);
|
||||
}
|
||||
|
||||
|
||||
@ -919,6 +929,8 @@ class e107forum
|
||||
e107::getMessage()->addDebug("Post Update Failed: ".print_a($info,true));
|
||||
}
|
||||
|
||||
$triggerData = $postInfo;
|
||||
$triggerData['post_id'] = intval($postId);
|
||||
e107::getEvent()->trigger('user_forum_post_updated', $info);
|
||||
}
|
||||
|
||||
|
@ -796,6 +796,13 @@ class forum_post_handler
|
||||
|
||||
$postInfo['post_attachments'] = e107::serialize($newValues);
|
||||
}
|
||||
|
||||
//Allows directly overriding the method of adding files (or other data) as attachments
|
||||
if($attachmentsPosted = $this->processAttachmentsPosted())
|
||||
{
|
||||
$postInfo['post_attachments'] = $attachmentsPosted;
|
||||
}
|
||||
|
||||
// var_dump($uploadResult);
|
||||
|
||||
switch($this->action)
|
||||
@ -1005,7 +1012,13 @@ class forum_post_handler
|
||||
$postVals['post_attachments'] = e107::serialize($newValues);
|
||||
// $postVals['post_attachments'] = implode(',', $attachments);
|
||||
}
|
||||
|
||||
|
||||
//Allows directly overriding the method of adding files (or other data) as attachments
|
||||
if($attachmentsPosted = $this->processAttachmentsPosted($this->data['post_attachments']))
|
||||
{
|
||||
$postVals['post_attachments'] = $attachmentsPosted;
|
||||
}
|
||||
|
||||
$postVals['post_edit_datestamp'] = time();
|
||||
$postVals['post_edit_user'] = USERID;
|
||||
$postVals['post_entry'] = $_POST['post'];
|
||||
@ -1071,7 +1084,12 @@ class forum_post_handler
|
||||
|
||||
$postVals['post_attachments'] = e107::serialize($newValues);
|
||||
}
|
||||
|
||||
|
||||
//Allows directly overriding the method of adding files (or other data) as attachments
|
||||
if($attachmentsPosted = $this->processAttachmentsPosted($this->data['post_attachments']))
|
||||
{
|
||||
$postVals['post_attachments'] = $attachmentsPosted;
|
||||
}
|
||||
|
||||
$this->forumObj->postUpdate($this->data['post_id'], $postVals);
|
||||
|
||||
@ -1223,6 +1241,31 @@ class forum_post_handler
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
//Allows directly overriding the method of adding files (or other data) as attachments
|
||||
function processAttachmentsPosted($existingValues = '')
|
||||
{
|
||||
if(isset($_POST['post_attachments_json']) && trim($_POST['post_attachments_json']))
|
||||
{
|
||||
$postedAttachments = json_decode($_POST['post_attachments_json'], true);
|
||||
$attachmentsJsonErrors = json_last_error();
|
||||
if($attachmentsJsonErrors === JSON_ERROR_NONE)
|
||||
{
|
||||
if($existingValues)
|
||||
{
|
||||
$existingValues = e107::unserialize($existingValues);
|
||||
return e107::serialize(array_merge_recursive($existingValues,$postedAttachments));
|
||||
}
|
||||
else
|
||||
{
|
||||
return e107::serialize($postedAttachments);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -474,6 +474,7 @@ foreach ($postList as $postInfo)
|
||||
$alt = !$alt;
|
||||
|
||||
$sc->setScVar('postInfo', $postInfo);
|
||||
$sc->setVars($postInfo); // compatibility
|
||||
|
||||
if($postInfo['post_status'])
|
||||
{
|
||||
@ -493,6 +494,7 @@ foreach ($postList as $postInfo)
|
||||
{
|
||||
$postInfo['thread_start'] = true;
|
||||
$sc->setScVar('postInfo', $postInfo);
|
||||
$sc->setVars($postInfo); // compatibility
|
||||
$sc->wrapper('forum_viewtopic/thread');
|
||||
// $forum_shortcodes = e107::getScBatch('view', 'forum')->setScVar('postInfo', $postInfo)->wrapper('forum/viewtopic');
|
||||
$forthr = $tp->parseTemplate($FORUMTHREADSTYLE, true, vartrue($sc)) . "\n";
|
||||
|
@ -261,6 +261,11 @@ $THREADTOPIC_REPLY = "
|
||||
";
|
||||
|
||||
|
||||
$js = <<<TMPL
|
||||
// javascript here.
|
||||
TMPL;
|
||||
|
||||
e107::js('footer-inline', $js);
|
||||
|
||||
|
||||
$FORUM_POST_TEMPLATE['reply'] = "";
|
||||
|
@ -23,9 +23,11 @@ if(isset($parms['caption'][e_LANGUAGE]))
|
||||
|
||||
$limit = vartrue($parms['count'],5);
|
||||
$tp = e107::getParser();
|
||||
$template = e107::getTemplate('news', 'news_menu', 'carousel');
|
||||
$template = e107::getTemplate('news', 'news_menu', 'carousel', true, true);
|
||||
|
||||
$nobody_regexp = "'(^|,)(".str_replace(",", "|", e_UC_NOBODY).")(,|$)'";
|
||||
|
||||
e107::getDebug()->log("News Carousel Menu ".print_a($parms,true));
|
||||
|
||||
$query = "
|
||||
SELECT n.*, nc.category_id, nc.category_name, nc.category_sef, nc.category_icon,
|
||||
|
@ -39,7 +39,11 @@ if(!$OTHERNEWS2_STYLE)
|
||||
{
|
||||
if(deftrue('BOOTSTRAP')) // v2.x
|
||||
{
|
||||
define("OTHERNEWS_COLS",false);
|
||||
if(!defined("OTHERNEWS_COLS"))
|
||||
{
|
||||
define("OTHERNEWS_COLS",false);
|
||||
}
|
||||
|
||||
$template = e107::getTemplate('news', 'news_menu', 'other2');
|
||||
$OTHERNEWS2_STYLE = $template['item'];
|
||||
|
||||
|
@ -51,7 +51,10 @@ if(!$OTHERNEWS_STYLE)
|
||||
{
|
||||
if(deftrue('BOOTSTRAP')) // v2.x
|
||||
{
|
||||
define("OTHERNEWS_COLS",false);
|
||||
if(!defined("OTHERNEWS_COLS"))
|
||||
{
|
||||
define("OTHERNEWS_COLS",false);
|
||||
}
|
||||
$template = e107::getTemplate('news', 'news_menu', 'other');
|
||||
|
||||
$item_selector = '<div class="btn-group pull-right"><a class="btn btn-mini btn-xs btn-default" href="#otherNews" data-slide="prev">‹</a>
|
||||
|
@ -1,217 +1,316 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Plugin administration - newsfeeds
|
||||
*
|
||||
*
|
||||
*/
|
||||
require_once("../../class2.php");
|
||||
if (!getperms("P") || !e107::isInstalled('newsfeed'))
|
||||
/**
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2016 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
// Generated e107 Plugin Admin Area
|
||||
|
||||
require_once('../../class2.php');
|
||||
if (!getperms('P') || !e107::isInstalled('newsfeed'))
|
||||
{
|
||||
e107::redirect('admin');
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once(e_ADMIN."auth.php");
|
||||
e107::lan('newsfeed',true);
|
||||
|
||||
define('NEWSFEED_LIST_CACHE_TAG', 'nomd5_newsfeeds');
|
||||
define('NEWSFEED_NEWS_CACHE_TAG', 'nomd5_newsfeeds_news_');
|
||||
|
||||
$frm = e107::getForm();
|
||||
$mes = e107::getMessage();
|
||||
|
||||
if (e_QUERY)
|
||||
class newsfeed_adminArea extends e_admin_dispatcher
|
||||
{
|
||||
list($action, $id) = explode(".", e_QUERY);
|
||||
$id = intval($id);
|
||||
}
|
||||
else
|
||||
{
|
||||
$action = FALSE;
|
||||
$id = FALSE;
|
||||
|
||||
protected $modes = array(
|
||||
|
||||
'main' => array(
|
||||
'controller' => 'newsfeed_ui',
|
||||
'path' => null,
|
||||
'ui' => 'newsfeed_form_ui',
|
||||
'uipath' => null
|
||||
),
|
||||
|
||||
|
||||
);
|
||||
|
||||
|
||||
protected $adminMenu = array(
|
||||
|
||||
'main/list' => array('caption'=> LAN_MANAGE, 'perm' => 'P'),
|
||||
'main/create' => array('caption'=> LAN_CREATE, 'perm' => 'P'),
|
||||
|
||||
// 'main/custom' => array('caption'=> 'Custom Page', 'perm' => 'P')
|
||||
);
|
||||
|
||||
protected $adminMenuAliases = array(
|
||||
'main/edit' => 'main/list'
|
||||
);
|
||||
|
||||
protected $menuTitle = LAN_PLUGIN_NEWSFEEDS_NAME;
|
||||
}
|
||||
|
||||
if (isset($_POST['createFeed']) || isset($_POST['updateFeed']))
|
||||
|
||||
|
||||
|
||||
|
||||
class newsfeed_ui extends e_admin_ui
|
||||
{
|
||||
if ($_POST['newsfeed_url'] && $_POST['newsfeed_name'])
|
||||
{
|
||||
$feed['newsfeed_name'] = $tp->toDB($_POST['newsfeed_name']);
|
||||
$feed['newsfeed_description'] = $tp->toDB($_POST['newsfeed_description']);
|
||||
$feed['newsfeed_image'] = $tp->toDB($_POST['newsfeed_image'])."::".intval($_POST['newsfeed_showmenu'])."::".intval($_POST['newsfeed_showmain']);
|
||||
$feed['newsfeed_url'] = $tp->toDB($_POST['newsfeed_url']);
|
||||
$feed['newsfeed_active'] = intval($_POST['newsfeed_active']);
|
||||
$feed['newsfeed_updateint'] = intval($_POST['newsfeed_updateint']);
|
||||
$feed['newsfeed_data'] = ''; // Start with blank data feed
|
||||
$feed['newsfeed_timestamp'] = 0; // This should force an immediate update
|
||||
|
||||
if (isset($_POST['createFeed']))
|
||||
|
||||
protected $pluginTitle = LAN_PLUGIN_NEWSFEEDS_NAME;
|
||||
protected $pluginName = 'newsfeed';
|
||||
// protected $eventName = 'newsfeed-newsfeed'; // remove comment to enable event triggers in admin.
|
||||
protected $table = 'newsfeed';
|
||||
protected $pid = 'newsfeed_id';
|
||||
protected $perPage = 10;
|
||||
protected $batchDelete = true;
|
||||
protected $batchCopy = true;
|
||||
// protected $sortField = 'somefield_order';
|
||||
// protected $orderStep = 10;
|
||||
// protected $tabs = array('Tabl 1','Tab 2'); // Use 'tab'=>0 OR 'tab'=>1 in the $fields below to enable.
|
||||
|
||||
// protected $listQry = "SELECT * FROM `#tableName` WHERE field != '' "; // Example Custom Query. LEFT JOINS allowed. Should be without any Order or Limit.
|
||||
|
||||
protected $listOrder = 'newsfeed_id DESC';
|
||||
|
||||
protected $fields = array ( 'checkboxes' => array ( 'title' => '', 'type' => null, 'data' => null, 'width' => '5%', 'thclass' => 'center', 'forced' => '1', 'class' => 'center', 'toggle' => 'e-multiselect', ),
|
||||
'newsfeed_id' => array ( 'title' => LAN_ID, 'data' => 'int', 'width' => '5%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
||||
'newsfeed_name' => array ( 'title' => LAN_TITLE, 'type' => 'text', 'data' => 'str', 'required'=>true, 'width' => 'auto', 'inline' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
||||
'newsfeed_url' => array ( 'title' => LAN_URL, 'type' => 'url', 'data' => 'str', 'required'=>true, 'inline'=>true, 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => array('size'=>'xxlarge'), 'class' => 'left', 'thclass' => 'left', ),
|
||||
'newsfeed_data' => array ( 'title' => 'Data', 'type' => null, 'data' => false, 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
||||
'newsfeed_timestamp' => array ( 'title' => 'Timestamp', 'type' => 'hidden', 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
||||
'newsfeed_description' => array ( 'title' => LAN_DESCRIPTION, 'type' => 'textarea', 'data' => 'str', 'width' => '40%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
||||
'newsfeed_image' => array ( 'title' => NFLAN_11, 'type' => 'method', 'data' => 'str', 'width' => 'auto', 'help' => LAN_OPTIONAL, 'readParms' => 'thumb=80x80', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
||||
|
||||
'newsfeed_updateint' => array ( 'title' => NFLAN_18, 'type' => 'text', 'data' => 'int', 'inline'=>true, 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => array('default'=>3600), 'class' => 'left', 'thclass' => 'left', ),
|
||||
|
||||
'newsfeed_active' => array ( 'title' => NFLAN_12, 'type' => 'radio', 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => array('default'=>3, 'optArray'=>array(NFLAN_13,NFLAN_14,NFLAN_20,NFLAN_21)), 'class' => 'left', 'thclass' => 'left', ),
|
||||
|
||||
'newsfeed_showmenu' => array('title'=>NFLAN_45, 'type'=>'method', 'data'=>false, 'class'=>'center', 'thclass'=>'center' ),
|
||||
'newsfeed_showmain' => array('title'=>NFLAN_46, 'type'=>'method', 'data'=>false, 'class'=>'center', 'thclass'=>'center'),
|
||||
|
||||
'options' => array ( 'title' => LAN_OPTIONS, 'type' => null, 'data' => null, 'width' => '8%', 'thclass' => 'center last', 'class' => 'center last', 'forced' => '1', ),
|
||||
);
|
||||
|
||||
protected $fieldpref = array('newsfeed_name', 'newsfeed_url', 'newsfeed_updateint', 'newsfeed_active', 'newsfeed_showmenu', 'newsfeed_showmain');
|
||||
|
||||
|
||||
// protected $preftabs = array('General', 'Other' );
|
||||
protected $prefs = array(
|
||||
);
|
||||
|
||||
|
||||
public function init()
|
||||
{
|
||||
if ($sql->insert('newsfeed',$feed))
|
||||
if($this->getAction() == 'edit' || $this->getAction() == 'create')
|
||||
{
|
||||
$admin_log->logArrayAll('NEWSFD_01', $feed);
|
||||
$mes->addSuccess(LAN_CREATED);
|
||||
}
|
||||
else
|
||||
{
|
||||
$mes->addError(LAN_CREATED_FAILED.': '.$sql->mySQLerror);
|
||||
$this->fields['newsfeed_updateint']['type'] = 'number';
|
||||
}
|
||||
// Set drop-down values (if any).
|
||||
|
||||
}
|
||||
elseif (isset($_POST['updateFeed']))
|
||||
|
||||
|
||||
// ------- Customize Create --------
|
||||
|
||||
public function beforeCreate($new_data)
|
||||
{
|
||||
$feed['WHERE'] = "newsfeed_id=".intval($_POST['newsfeed_id']);
|
||||
|
||||
if($sql->update('newsfeed',$feed))
|
||||
if(isset($new_data['newsfeed_showmenu']))
|
||||
{
|
||||
$admin_log->logArrayAll('NEWSFD_02', $feed);
|
||||
$mes->addSuccess(LAN_UPDATED);
|
||||
}
|
||||
else
|
||||
{
|
||||
$mes->addInfo(LAN_NO_CHANGE.': '.$sql->mySQLerror);
|
||||
$new_data['newsfeed_image'] = e107::getParser()->toDB($new_data['newsfeed_image'])."::".intval($new_data['newsfeed_showmenu'])."::".intval($new_data['newsfeed_showmain']);
|
||||
}
|
||||
|
||||
$new_data['newsfeed_timestamp'] = 0;
|
||||
|
||||
return $new_data;
|
||||
}
|
||||
e107::getCache()->clear(NEWSFEED_LIST_CACHE_TAG); // This should actually clear all the newsfeed data in one go
|
||||
}
|
||||
else
|
||||
|
||||
public function afterCreate($new_data, $old_data, $id)
|
||||
{
|
||||
// do something
|
||||
e107::getCache()->clear(NEWSFEED_LIST_CACHE_TAG);
|
||||
e107::getCache()->clear(NEWSFEED_NEWS_CACHE_TAG);
|
||||
}
|
||||
|
||||
public function onCreateError($new_data, $old_data)
|
||||
{
|
||||
// do something
|
||||
}
|
||||
|
||||
|
||||
// ------- Customize Update --------
|
||||
|
||||
public function beforeUpdate($new_data, $old_data, $id)
|
||||
{
|
||||
if(isset($new_data['newsfeed_showmenu']))
|
||||
{
|
||||
$new_data['newsfeed_image'] = e107::getParser()->toDB($new_data['newsfeed_image'])."::".intval($new_data['newsfeed_showmenu'])."::".intval($new_data['newsfeed_showmain']);
|
||||
|
||||
}
|
||||
|
||||
$new_data['newsfeed_timestamp'] = 0; // reset so the feed data refreshes.
|
||||
|
||||
|
||||
return $new_data;
|
||||
}
|
||||
|
||||
public function afterUpdate($new_data, $old_data, $id)
|
||||
{
|
||||
// do something
|
||||
e107::getCache()->clear(NEWSFEED_LIST_CACHE_TAG);
|
||||
e107::getCache()->clear(NEWSFEED_NEWS_CACHE_TAG);
|
||||
}
|
||||
|
||||
public function onUpdateError($new_data, $old_data, $id)
|
||||
{
|
||||
// do something
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
// optional - a custom page.
|
||||
public function customPage()
|
||||
{
|
||||
$text = 'Hello World!';
|
||||
return $text;
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
class newsfeed_form_ui extends e_admin_form_ui
|
||||
{
|
||||
|
||||
|
||||
// Custom Method/Function
|
||||
function newsfeed_active($curVal,$mode)
|
||||
{
|
||||
$mes->addError(LAN_REQUIRED_BLANK);
|
||||
$frm = e107::getForm();
|
||||
|
||||
switch($mode)
|
||||
{
|
||||
case 'read': // List Page
|
||||
return $curVal;
|
||||
break;
|
||||
|
||||
case 'write': // Edit Page
|
||||
return $frm->text('newsfeed_active',$curVal, 255, 'size=large');
|
||||
break;
|
||||
|
||||
case 'filter':
|
||||
case 'batch':
|
||||
return array();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function newsfeed_image($curVal,$mode)
|
||||
{
|
||||
$frm = e107::getForm();
|
||||
|
||||
switch($mode)
|
||||
{
|
||||
case 'read': // List Page
|
||||
return $curVal;
|
||||
break;
|
||||
|
||||
case 'write': // Edit Page
|
||||
|
||||
$tmp = explode('::',$curVal);
|
||||
|
||||
return $frm->text('newsfeed_image',$tmp[0], 255, 'size=large');
|
||||
break;
|
||||
|
||||
case 'filter':
|
||||
case 'batch':
|
||||
return array();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function newsfeed_showmain($curVal,$mode)
|
||||
{
|
||||
$frm = e107::getForm();
|
||||
|
||||
switch($mode)
|
||||
{
|
||||
case 'read': // List Page
|
||||
$data = $this->getController()->getListModel()->get('newsfeed_image');
|
||||
list($image,$menu,$main) = explode('::',$data);
|
||||
|
||||
return intval($main);
|
||||
break;
|
||||
|
||||
case 'write': // Edit Page
|
||||
|
||||
$data = $this->getController()->getModel()->get('newsfeed_image');
|
||||
list($image,$menu,$main) = explode('::',$data);
|
||||
|
||||
if(empty($main))
|
||||
{
|
||||
$main = 10;
|
||||
}
|
||||
|
||||
return $frm->number('newsfeed_showmain',$main, 3);
|
||||
break;
|
||||
|
||||
case 'filter':
|
||||
case 'batch':
|
||||
return array();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function newsfeed_showmenu($curVal,$mode)
|
||||
{
|
||||
$frm = e107::getForm();
|
||||
|
||||
switch($mode)
|
||||
{
|
||||
case 'read': // List Page
|
||||
$data = $this->getController()->getListModel()->get('newsfeed_image');
|
||||
list($image,$menu,$main) = explode('::',$data);
|
||||
|
||||
return intval($menu);
|
||||
break;
|
||||
|
||||
case 'write': // Edit Page
|
||||
$data = $this->getController()->getModel()->get('newsfeed_image');
|
||||
list($image,$menu,$main) = explode('::',$data);
|
||||
|
||||
if(empty($menu))
|
||||
{
|
||||
$menu = 10;
|
||||
}
|
||||
|
||||
return $frm->number('newsfeed_showmenu',$menu, 3);
|
||||
break;
|
||||
|
||||
case 'filter':
|
||||
case 'batch':
|
||||
return array();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$ns->tablerender($caption, $mes->render() . $text);
|
||||
|
||||
if($action == "delete")
|
||||
{
|
||||
$sql->db_Delete('newsfeed', 'newsfeed_id='.$id);
|
||||
e107::getLog()->add('NEWSFD_03','ID: '.$id,E_LOG_INFORMATIVE,'');
|
||||
$mes->addSuccess(LAN_DELETED);
|
||||
}
|
||||
new newsfeed_adminArea();
|
||||
|
||||
$ns->tablerender($caption, $mes->render() . $text);
|
||||
|
||||
|
||||
if($headline_total = $sql->db_Select("newsfeed"))
|
||||
{
|
||||
$nfArray = $sql->rows();
|
||||
|
||||
$text = "
|
||||
<table class='table table-striped'>
|
||||
<colgroup>
|
||||
<col style='width: 5%; text-align: center;' />
|
||||
<col style='width: 40%;' />
|
||||
<col style='width: 10%; text-align: center;' />
|
||||
<col style='width: 25%; text-align: center;' />
|
||||
<col style='width: 10%; text-align: center;' />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>".LAN_ID."</th>
|
||||
<th>".LAN_NAME."</th>
|
||||
<th>".NFLAN_26."</th>
|
||||
<th>".NFLAN_12."</th>
|
||||
<th class='center options'>".LAN_OPTIONS."</th>
|
||||
</tr>
|
||||
</thead>\n";
|
||||
|
||||
$active = array(NFLAN_13,NFLAN_14,NFLAN_20,NFLAN_21);
|
||||
|
||||
foreach($nfArray as $newsfeed)
|
||||
{
|
||||
extract($newsfeed); // FIXME
|
||||
|
||||
$text .= "
|
||||
<tr>
|
||||
<td>$newsfeed_id</td>
|
||||
<td><a href='$newsfeed_url' rel='external'>$newsfeed_name</a></td>
|
||||
<td>".($newsfeed_updateint ? $newsfeed_updateint : "3600")."</td>
|
||||
<td>".$active[$newsfeed_active]."</td>
|
||||
<td>
|
||||
<a class='btn btn-default btn-large' href='".e_SELF."?edit.".$newsfeed_id."'>".ADMIN_EDIT_ICON."</a>
|
||||
<a class='btn btn-default btn-large action delete' href='".e_SELF."?delete.".$newsfeed_id."' rel='no-confirm' title='".LAN_CONFDELETE."'>".ADMIN_DELETE_ICON."</a>
|
||||
</td>
|
||||
</tr>";
|
||||
}
|
||||
|
||||
$text .= "</table>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$mes->addInfo(NFLAN_41);
|
||||
}
|
||||
|
||||
$ns->tablerender(NFLAN_07, $mes->render(). $text);
|
||||
|
||||
if($action == "edit")
|
||||
{
|
||||
if($sql->select("newsfeed", "*", "newsfeed_id=$id"))
|
||||
{
|
||||
$row = $sql->fetch();
|
||||
extract($row); // FIX
|
||||
list($newsfeed_image, $newsfeed_showmenu, $newsfeed_showmain) = explode("::", $newsfeed_image);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
unset($newsfeed_showmenu, $newsfeed_showmain, $newsfeed_name, $newsfeed_url, $newsfeed_image, $newsfeed_description, $newsfeed_updateint, $newsfeed_active);
|
||||
}
|
||||
|
||||
$text = "
|
||||
<form method='post' action='".e_SELF."'>\n
|
||||
<table class='table'>
|
||||
<colgroup>
|
||||
<col class='col-label' />
|
||||
<col style='col-control' />
|
||||
</colgroup>
|
||||
<tr>
|
||||
<td>".LAN_NAME."</td>
|
||||
<td>".$frm->text('newsfeed_name', $newsfeed_name, '200')."</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>".LAN_URL."</td>
|
||||
<td>".$frm->text('newsfeed_url', $newsfeed_url, '250', 'size=xxlarge')."<span class='field-help'>".NFLAN_10."</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".NFLAN_11."</td>
|
||||
<td>".$frm->text('newsfeed_image', $newsfeed_image, '200') /* TODO imagepicker? */."<span class='field-help'>".NFLAN_17."</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".LAN_DESCRIPTION."</td>
|
||||
<td>".$frm->text('newsfeed_description', $newsfeed_description, '200')."<span class='field-help'>".NFLAN_37."</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".NFLAN_18."</td>
|
||||
<td>".$frm->number('newsfeed_updateint',($newsfeed_updateint ? $newsfeed_updateint : 3600),5)."<span class='field-help'>".NFLAN_19."</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".NFLAN_12."</td>
|
||||
<td>";
|
||||
$array = array(NFLAN_13,NFLAN_14,NFLAN_20,NFLAN_21);
|
||||
$text .=
|
||||
$frm->radio('newsfeed_active', $array, ($newsfeed_active ? $newsfeed_active : 0), true, NFLAN_22)."
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".NFLAN_45."</td>
|
||||
<td>".$frm->number('newsfeed_showmenu', $newsfeed_showmenu ,5)."<span class='field-help'>".NFLAN_47."</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".NFLAN_46."</td>
|
||||
<td>".$frm->number('newsfeed_showmain', $newsfeed_showmain ,5)."<span class='field-help'>".NFLAN_47."</span></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class='buttons-bar center'>
|
||||
".$frm->admin_button(($action == "edit" ? "updateFeed" : "createFeed"),($action == "edit" ? LAN_UPDATE : LAN_CREATE),'update')."
|
||||
</div>
|
||||
".($action == "edit" ? "<input type='hidden' name='newsfeed_id' value='$newsfeed_id' />" : "")."
|
||||
</form>
|
||||
";
|
||||
|
||||
$ns->tablerender(NFLAN_09, $mes->render() . $text);
|
||||
require_once(e_ADMIN."auth.php");
|
||||
e107::getAdminUI()->runPage();
|
||||
|
||||
require_once(e_ADMIN."footer.php");
|
||||
?>
|
||||
exit;
|
||||
|
50
e107_plugins/newsfeed/e_url.php
Normal file
50
e107_plugins/newsfeed/e_url.php
Normal file
@ -0,0 +1,50 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 Bootstrap CMS
|
||||
*
|
||||
* Copyright (C) 2008-2015 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* IMPORTANT: Make sure the redirect script uses the following code to load class2.php:
|
||||
*
|
||||
* if (!defined('e107_INIT'))
|
||||
* {
|
||||
* require_once("../../class2.php");
|
||||
* }
|
||||
*
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
// v2.x Standard - Simple mod-rewrite module.
|
||||
|
||||
class newsfeed_url // plugin-folder + '_url'
|
||||
{
|
||||
function config()
|
||||
{
|
||||
$config = array();
|
||||
|
||||
|
||||
$config['source'] = array(
|
||||
'alias' => 'newsfeed',
|
||||
'regex' => '^{alias}/(\d*)/(.*)', // matched against url, and if true, redirected to 'redirect' below.
|
||||
'sef' => '{alias}/{newsfeed_id}/{newsfeed_sef}', // used by e107::url(); to create a url from the db table.
|
||||
'redirect' => '{e_PLUGIN}newsfeed/newsfeed.php?id=$1', // file-path of what to load when the regex returns true.
|
||||
|
||||
);
|
||||
|
||||
$config['index'] = array(
|
||||
'alias' => 'newsfeed',
|
||||
'regex' => '^{alias}/?', // matched against url, and if true, redirected to 'redirect' below.
|
||||
'sef' => '{alias}', // used by e107::url(); to create a url from the db table.
|
||||
'redirect' => '{e_PLUGIN}newsfeed/newsfeed.php', // file-path of what to load when the regex returns true.
|
||||
|
||||
);
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -35,16 +35,30 @@ if (!is_object($newsFeed))
|
||||
{
|
||||
$newsFeed = new newsfeedClass;
|
||||
}
|
||||
|
||||
e107::css('inline', "
|
||||
|
||||
.newsfeed ul { max-width:100% }
|
||||
.newsfeed img { max-width:100% }
|
||||
|
||||
|
||||
");
|
||||
|
||||
|
||||
require_once(HEADERF);
|
||||
|
||||
/* get template */
|
||||
if (file_exists(THEME."newsfeed_template.php"))
|
||||
if(file_exists(THEME."templates/newsfeed/newsfeed_template.php"))
|
||||
{
|
||||
require_once(THEME."newsfeed_template.php");
|
||||
include(THEME."templates/newsfeed/newsfeed_template.php");
|
||||
}
|
||||
elseif (file_exists(THEME."newsfeed_template.php"))
|
||||
{
|
||||
include(THEME."newsfeed_template.php");
|
||||
}
|
||||
else if(!varset($NEWSFEED_LIST_START, FALSE))
|
||||
{
|
||||
require_once(e_PLUGIN."newsfeed/templates/newsfeed_template.php");
|
||||
include(e_PLUGIN."newsfeed/templates/newsfeed_template.php");
|
||||
}
|
||||
|
||||
$action = FALSE;
|
||||
@ -55,12 +69,18 @@ if(e_QUERY)
|
||||
$id = intval(varset($qs[1], 0));
|
||||
}
|
||||
|
||||
if(!empty($_GET['id'])) //v2.x
|
||||
{
|
||||
$id = intval($_GET['id']);
|
||||
$action = 'show';
|
||||
}
|
||||
|
||||
if($action == "show")
|
||||
{
|
||||
/* 'show' action - show feed */
|
||||
|
||||
$data = $newsFeed->newsfeedInfo($id == 0 ? 'all' : $id, 'main');
|
||||
$ns->tablerender($data['title'], $data['text']);
|
||||
$ns->tablerender($data['title'], $data['text']);
|
||||
require_once(FOOTERF);
|
||||
exit;
|
||||
}
|
||||
@ -68,6 +88,7 @@ if($action == "show")
|
||||
|
||||
/* no action - display feed list ... */
|
||||
$newsFeed->readFeedList();
|
||||
$vars = array();
|
||||
if (count($newsFeed->feedList))
|
||||
{
|
||||
$data = "";
|
||||
@ -75,10 +96,15 @@ if (count($newsFeed->feedList))
|
||||
{
|
||||
if (($feed['newsfeed_active'] == 2) || ($feed['newsfeed_active'] == 3))
|
||||
{
|
||||
$FEEDNAME = "<a href='".e_SELF."?show.{$feed['newsfeed_id']}'>{$feed['newsfeed_name']}</a>";
|
||||
$FEEDDESCRIPTION = ((!$feed['newsfeed_description'] || $feed['newsfeed_description'] == "default") ? " " : $feed['newsfeed_description']);
|
||||
|
||||
$feed['newsfeed_sef'] = eHelper::title2sef($feed['newsfeed_name'], 'dashl');
|
||||
|
||||
$url = e107::url('newsfeed', 'source', $feed); // e_SELF."?show.{$feed['newsfeed_id']}
|
||||
|
||||
$vars['FEEDNAME'] = "<a href='".$url."'>{$feed['newsfeed_name']}</a>";
|
||||
$vars['FEEDDESCRIPTION'] = ((!$feed['newsfeed_description'] || $feed['newsfeed_description'] == "default") ? " " : $feed['newsfeed_description']);
|
||||
// $FEEDIMAGE = $feed['newsfeed_image']; // This needs splitting up. Not used ATM anyway, so disable for now
|
||||
$data .= preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_LIST);
|
||||
$data .= $tp->simpleParse($NEWSFEED_LIST, $vars);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -87,4 +113,3 @@ $text = $NEWSFEED_LIST_START . vartrue($data) . $NEWSFEED_LIST_END;
|
||||
$ns->tablerender(NFLAN_29, $text);
|
||||
require_once(FOOTERF);
|
||||
|
||||
?>
|
||||
|
@ -47,9 +47,8 @@ class newsfeedClass
|
||||
var $useCache; // Set if cache is available
|
||||
|
||||
// Constructor
|
||||
function newsfeedClass()
|
||||
function __construct()
|
||||
{
|
||||
global $e107;
|
||||
$this->validFeedList = FALSE;
|
||||
$this->newsList = array();
|
||||
$this->feedList = array();
|
||||
@ -57,7 +56,7 @@ class newsfeedClass
|
||||
$this->lastProcessed = 0;
|
||||
$this->truncateCount = 150; // Set a pref for these two later
|
||||
$this->truncateMore = '...';
|
||||
$this->useCache = $e107->ecache->UserCacheActive; // Have our own local copy - should be faster to access
|
||||
$this->useCache = e107::getCache()->UserCacheActive; // Have our own local copy - should be faster to access
|
||||
}
|
||||
|
||||
// Ensures the feed list is loaded - uses cache if available
|
||||
@ -71,13 +70,8 @@ class newsfeedClass
|
||||
}
|
||||
if($this->useCache) // Cache enabled - try to read from that first
|
||||
{
|
||||
|
||||
$eArrayStorage = e107::getArrayStorage();
|
||||
|
||||
global $e107;
|
||||
|
||||
|
||||
if (!$force && $temp = $e107->ecache->retrieve(NEWSFEED_LIST_CACHE_TAG))
|
||||
|
||||
if (!$force && $temp = e107::getCache()->retrieve(NEWSFEED_LIST_CACHE_TAG))
|
||||
{
|
||||
$this->feedList = e107::unserialize($temp);
|
||||
return;
|
||||
@ -97,7 +91,7 @@ class newsfeedClass
|
||||
{
|
||||
$nfID = $row['newsfeed_id'];
|
||||
|
||||
if (isset($row['newsfeed_data']))
|
||||
if (!empty($row['newsfeed_data']))
|
||||
{
|
||||
$this->newsList[$nfID]['newsfeed_data'] = $row['newsfeed_data']; // Pull out the actual news - might as well since we're here
|
||||
$this->newsList[$nfID]['newsfeed_timestamp'] = $row['newsfeed_timestamp'];
|
||||
@ -110,8 +104,8 @@ class newsfeedClass
|
||||
$this->validFeedList = TRUE;
|
||||
}
|
||||
|
||||
if ($this->useCache)
|
||||
{ // Cache enabled - we need to save some updated info
|
||||
if ($this->useCache) // Cache enabled - we need to save some updated info
|
||||
{
|
||||
$temp = e107::serialize($this->feedList, FALSE);
|
||||
e107::getCache()->set(NEWSFEED_LIST_CACHE_TAG,$temp);
|
||||
}
|
||||
@ -121,11 +115,8 @@ class newsfeedClass
|
||||
// Returns the info for a single feed - from cache or memory as appropriate. If time expired, updates the feed.
|
||||
function getFeed($feedID, $force = FALSE)
|
||||
{
|
||||
global $e107, $admin_log;
|
||||
|
||||
$tp = e107::getParser();
|
||||
$sql = e107::getDb();
|
||||
$eArrayStorage = e107::getArrayStorage();
|
||||
|
||||
$this->readFeedList(); // Make sure we've got the feed data.
|
||||
|
||||
@ -134,20 +125,20 @@ class newsfeedClass
|
||||
if (NEWSFEED_DEBUG) echo "Invalid feed number: {$feedID}<br />";
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if(strpos($this->newsList[$feedID]['newsfeed_data'],'MagpieRSS')) //BC Fix to update newsfeed_data from v1 to v2 spec.
|
||||
|
||||
if(empty($this->newsList[$feedID]['newsfeed_timestamp']) || empty($this->newsList[$feedID]['newsfeed_data']) || strpos($this->newsList[$feedID]['newsfeed_data'],'MagpieRSS')) //BC Fix to update newsfeed_data from v1 to v2 spec.
|
||||
{
|
||||
$force = true;
|
||||
}
|
||||
|
||||
if ($force || !isset($this->newsList[$feedID]['newsfeed_data']) || !$this->newsList[$feedID]['newsfeed_data'])
|
||||
{ // No data already in memory
|
||||
if ($force || !($this->newsList[$feedID]['newsfeed_data'] = $e107->ecache->retrieve(NEWSFEED_NEWS_CACHE_TAG.$feedID, $this->feedList[$feedID]['newsfeed_updateint']/60)))
|
||||
|
||||
if($force) // No data already in memory
|
||||
{
|
||||
if ($force || !($this->newsList[$feedID]['newsfeed_data'] = e107::getCache()->retrieve(NEWSFEED_NEWS_CACHE_TAG.$feedID, $this->feedList[$feedID]['newsfeed_updateint']/60)))
|
||||
{ // Need to re-read from source - either no cached data yet, or cache expired
|
||||
|
||||
if (NEWSFEED_DEBUG)
|
||||
{
|
||||
$admin_log->e_log_event(10,debug_backtrace(),"DEBUG","Newsfeed update","Refresh item: ".$feedID,FALSE,LOG_TO_ROLLING);
|
||||
e107::getLog()->e_log_event(10,debug_backtrace(),"DEBUG","Newsfeed update","Refresh item: ".$feedID,FALSE,LOG_TO_ROLLING);
|
||||
}
|
||||
|
||||
require_once(e_HANDLER.'xml_class.php');
|
||||
@ -195,7 +186,7 @@ class newsfeedClass
|
||||
$dbData['newsfeed_description'] = $temp['newsfeed_description'];
|
||||
if ($this->useCache)
|
||||
{
|
||||
$e107->ecache->clear(NEWSFEED_LIST_CACHE_TAG); // Clear the newsfeed cache so its re-read next time
|
||||
e107::getCache()->clear(NEWSFEED_LIST_CACHE_TAG); // Clear the newsfeed cache so its re-read next time
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -206,10 +197,10 @@ class newsfeedClass
|
||||
}
|
||||
else
|
||||
{
|
||||
$temp['newsfeed_image_link'] = "<img src='".$this->feedList[$feedID]['newsfeed_image']."' alt='' />";
|
||||
$temp['newsfeed_image_link'] = !empty($newsfeed_image) ? "<img src='".$newsfeed_image."' alt='' />" : '';
|
||||
}
|
||||
|
||||
$serializedArray = $eArrayStorage->WriteArray($temp, FALSE);
|
||||
$serializedArray = e107::serialize($temp, false);
|
||||
|
||||
$now = time();
|
||||
$this->newsList[$feedID]['newsfeed_data'] = $serializedArray;
|
||||
@ -217,17 +208,20 @@ class newsfeedClass
|
||||
|
||||
if ($this->useCache)
|
||||
{
|
||||
$e107->ecache->set(NEWSFEED_NEWS_CACHE_TAG.$feedID,$serializedArray);
|
||||
e107::getCache()->set(NEWSFEED_NEWS_CACHE_TAG.$feedID, $serializedArray);
|
||||
}
|
||||
else
|
||||
{
|
||||
$dbData['newsfeed_data'] =addslashes($serializedArray);
|
||||
$dbData['newsfeed_data'] = $serializedArray;
|
||||
$dbData['newsfeed_timestamp'] = $now;
|
||||
}
|
||||
|
||||
if (count($dbData)) // Only write the feed data to DB if not using cache. Write description if changed
|
||||
{
|
||||
if(FALSE === $sql->db_UpdateArray('newsfeed', $dbData, " WHERE newsfeed_id=".$feedID))
|
||||
{
|
||||
|
||||
$dbData['WHERE'] = "newsfeed_id=".$feedID;
|
||||
|
||||
if(FALSE === $sql->update('newsfeed', $dbData))
|
||||
{
|
||||
if (NEWSFEED_DEBUG) echo NFLAN_48."<br /><br />".var_dump($dbData);
|
||||
}
|
||||
@ -254,8 +248,7 @@ class newsfeedClass
|
||||
{
|
||||
|
||||
$tp = e107::getParser();
|
||||
$sql = e107::getDb();
|
||||
|
||||
|
||||
global $NEWSFEED_MAIN_START, $NEWSFEED_MAIN, $NEWSFEED_MAIN_END;
|
||||
global $NEWSFEED_MENU_START, $NEWSFEED_MENU, $NEWSFEED_MENU_END;
|
||||
|
||||
@ -272,7 +265,12 @@ class newsfeedClass
|
||||
$this->readFeedList(); // Make sure we've got all the news feeds loaded
|
||||
|
||||
/* get template */
|
||||
if (file_exists(THEME."newsfeed_menu_template.php"))
|
||||
|
||||
if(file_exists(THEME."templates/newsfeed/newsfeed_menu_template.php")) //v2.x
|
||||
{
|
||||
include(THEME."templates/newsfeed/newsfeed_menu_template.php");
|
||||
}
|
||||
elseif(file_exists(THEME."newsfeed_menu_template.php")) //v1.x
|
||||
{
|
||||
include(THEME."newsfeed_menu_template.php");
|
||||
}
|
||||
@ -281,6 +279,8 @@ class newsfeedClass
|
||||
include(e_PLUGIN."newsfeed/templates/newsfeed_menu_template.php");
|
||||
}
|
||||
|
||||
$vars = array();
|
||||
|
||||
foreach($this->feedList as $nfID => $feed)
|
||||
{
|
||||
if (($filter == 0) || ($filter == $feed['newsfeed_id']))
|
||||
@ -292,10 +292,10 @@ class newsfeedClass
|
||||
$numtoshow = intval($where == 'main' ? $newsfeed_showmain : $newsfeed_showmenu);
|
||||
$numtoshow = ($numtoshow > 0 ? $numtoshow : 999);
|
||||
|
||||
$FEEDNAME = "<a href='".e_SELF."?show.{$feed['newsfeed_id']}'>".$tp->toHtml($feed['newsfeed_name'],false,'TITLE')."</a>";
|
||||
$FEEDDESCRIPTION = $feed['newsfeed_description'];
|
||||
$FEEDIMAGE = $rss['newsfeed_image_link'];
|
||||
$FEEDLANGUAGE = $rss['channel']['language'];
|
||||
$vars['FEEDNAME'] = "<a href='".e_SELF."?show.{$feed['newsfeed_id']}'>".$tp->toHtml($feed['newsfeed_name'],false,'TITLE')."</a>";
|
||||
$vars['FEEDDESCRIPTION'] = $feed['newsfeed_description'];
|
||||
$vars['FEEDIMAGE'] = $rss['newsfeed_image_link'];
|
||||
$vars['FEEDLANGUAGE'] = $rss['channel']['language'];
|
||||
|
||||
if($rss['channel']['lastbuilddate'])
|
||||
{
|
||||
@ -310,18 +310,18 @@ class newsfeedClass
|
||||
$pubbed = NFLAN_34;
|
||||
}
|
||||
|
||||
$FEEDLASTBUILDDATE = NFLAN_33.$pubbed;
|
||||
$FEEDCOPYRIGHT = $tp -> toHTML(vartrue($rss['channel']['copyright']), FALSE);
|
||||
$FEEDTITLE = "<a href='".$rss['channel']['link']."' rel='external'>".vartrue($rss['channel']['title'])."</a>";
|
||||
$FEEDLINK = $rss['channel']['link'];
|
||||
$vars['FEEDLASTBUILDDATE'] = NFLAN_33.$pubbed;
|
||||
$vars['FEEDCOPYRIGHT'] = $tp -> toHTML(vartrue($rss['channel']['copyright']), FALSE);
|
||||
$vars['FEEDTITLE'] = "<a href='".$rss['channel']['link']."' rel='external'>".vartrue($rss['channel']['title'])."</a>";
|
||||
$vars['FEEDLINK'] = $rss['channel']['link'];
|
||||
|
||||
if($feed['newsfeed_active'] == 2 or $feed['newsfeed_active'] == 3)
|
||||
{
|
||||
$LINKTOMAIN = "<a href='".e_PLUGIN."newsfeed/newsfeed.php?show.".$feed['newsfeed_id']."'>".NFLAN_39."</a>";
|
||||
$vars['LINKTOMAIN'] = "<a href='".e_PLUGIN."newsfeed/newsfeed.php?show.".$feed['newsfeed_id']."'>".NFLAN_39."</a>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$LINKTOMAIN = "";
|
||||
$vars['LINKTOMAIN'] = "";
|
||||
}
|
||||
|
||||
$data = "";
|
||||
@ -332,42 +332,43 @@ class newsfeedClass
|
||||
{
|
||||
$item = $rss['items'][$i];
|
||||
|
||||
$FEEDITEMLINK = "<a href='".$item['link']."' rel='external'>".$tp -> toHTML($item['title'], FALSE)."</a>\n";
|
||||
$FEEDITEMLINK = str_replace('&', '&', $FEEDITEMLINK);
|
||||
$feeditemtext = preg_replace("#\[[a-z0-9=]+\]|\[\/[a-z]+\]|\{[A-Z_]+\}#si", "", strip_tags($item['description']));
|
||||
$FEEDITEMCREATOR = $tp -> toHTML(vartrue($item['author']), FALSE);
|
||||
$vars['FEEDITEMLINK'] = "<a href='".$item['link']."' rel='external'>".$tp -> toHTML($item['title'], FALSE)."</a>\n";
|
||||
$vars['FEEDITEMLINK'] = str_replace('&', '&', $vars['FEEDITEMLINK']);
|
||||
$feeditemtext = preg_replace("#\[[a-z0-9=]+\]|\[\/[a-z]+\]|\{[A-Z_]+\}#si", "", strip_tags($item['description']));
|
||||
$vars['FEEDITEMCREATOR'] = $tp -> toHTML(vartrue($item['author']), FALSE);
|
||||
|
||||
if ($where == 'main')
|
||||
{
|
||||
if($NEWSFEED_COLLAPSE)
|
||||
if(!empty($NEWSFEED_COLLAPSE))
|
||||
{
|
||||
$FEEDITEMLINK = "<a href='#' onclick='expandit(this)'>".$tp -> toHTML($item['title'], FALSE)."</a>
|
||||
$vars['FEEDITEMLINK'] = "<a href='#' onclick='expandit(this)'>".$tp -> toHTML($item['title'], FALSE)."</a>
|
||||
<div style='display:none' >
|
||||
";
|
||||
$FEEDITEMTEXT = preg_replace("/[.*]/", "", $tp -> toHTML($item['description'], FALSE))."
|
||||
|
||||
$vars['FEEDITEMTEXT'] = preg_replace("/[.*]/", "", $tp -> toHTML($item['description'], FALSE))."
|
||||
<br /><br /><a href='".$item['link']."' rel='external'>".NFLAN_44."</a><br /><br />
|
||||
</div>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$FEEDITEMLINK = "<a href='".$item['link']."' rel='external'>".$tp -> toHTML($item['title'], FALSE)."</a>\n";
|
||||
$FEEDITEMLINK = str_replace('&', '&', $FEEDITEMLINK);
|
||||
$feeditemtext = preg_replace("#\[[a-z0-9=]+\]|\[\/[a-z]+\]|\{[A-Z_]+\}#si", "", $item['description']);
|
||||
$FEEDITEMTEXT = $tp -> toHTML($feeditemtext, FALSE)."\n";
|
||||
$vars['FEEDITEMLINK'] = "<a href='".$item['link']."' rel='external'>".$tp -> toHTML($item['title'], FALSE)."</a>\n";
|
||||
$vars['FEEDITEMLINK'] = str_replace('&', '&', $vars['FEEDITEMLINK']);
|
||||
$feeditemtext = preg_replace("#\[[a-z0-9=]+\]|\[\/[a-z]+\]|\{[A-Z_]+\}#si", "", $item['description']);
|
||||
$vars['FEEDITEMTEXT'] = $tp -> toHTML($feeditemtext, FALSE)."\n";
|
||||
}
|
||||
$data .= preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MAIN);
|
||||
$data .= $tp->simpleParse( $NEWSFEED_MAIN, $vars);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($this->truncateCount)
|
||||
{
|
||||
$FEEDITEMTEXT = $tp->text_truncate($feeditemtext, $this->truncateCount, $this->truncateMore);
|
||||
$vars['FEEDITEMTEXT'] = $tp->text_truncate($feeditemtext, $this->truncateCount, $this->truncateMore);
|
||||
}
|
||||
else
|
||||
{
|
||||
$FEEDITEMTEXT = ''; // Might just want title
|
||||
$vars['FEEDITEMTEXT'] = ''; // Might just want title
|
||||
}
|
||||
$data .= preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MENU);
|
||||
$data .= $tp->simpleParse($NEWSFEED_MENU, $vars);
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
@ -376,22 +377,24 @@ class newsfeedClass
|
||||
|
||||
if ($where == 'main')
|
||||
{
|
||||
$BACKLINK = "<a href='".e_SELF."'>".NFLAN_31."</a>";
|
||||
$text = preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MAIN_START).$data.preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MAIN_END);
|
||||
$vars['BACKLINK'] = "<a href='".e_SELF."'>".NFLAN_31."</a>";
|
||||
$text = $tp->simpleParse($NEWSFEED_MAIN_START, $vars).$data.$tp->simpleParse( $NEWSFEED_MAIN_END, $vars);
|
||||
}
|
||||
else
|
||||
{
|
||||
$text .= preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MENU_START) . $data . preg_replace("/\{(.*?)\}/e", '$\1', $NEWSFEED_MENU_END);
|
||||
$text .= $tp->simpleParse($NEWSFEED_MENU_START, $vars) . $data . $tp->simpleParse($NEWSFEED_MENU_END, $vars);
|
||||
}
|
||||
|
||||
//TODO Move the $vars into their own shortcode class and change simpleParse to parseTemplate();
|
||||
}
|
||||
|
||||
if($which == 'all')
|
||||
{
|
||||
$ret['title'] = $NEWSFEED_MENU_CAPTION;
|
||||
$ret['title'] = (!empty($NEWSFEED_MENU_CAPTION)) ? $NEWSFEED_MENU_CAPTION : '';
|
||||
}
|
||||
else
|
||||
{
|
||||
$ret['title'] = $feed['newsfeed_name']." ".$NEWSFEED_MAIN_CAPTION;
|
||||
$ret['title'] = $feed['newsfeed_name']." ".varset($NEWSFEED_MAIN_CAPTION);
|
||||
}
|
||||
$ret['text'] = $text;
|
||||
|
||||
|
@ -8,8 +8,6 @@
|
||||
<link url='admin_config.php' description='Configure Newsfeeds' icon='images/newsfeed_32.png' iconSmall='images/newsfeed_16.png' primary='true' >Configure Newsfeeds</link>
|
||||
</adminLinks>
|
||||
<siteLinks>
|
||||
<link url="{e_PLUGIN}newsfeed/newsfeed.php" >Newsfeeds</link>
|
||||
<link url="{e_PLUGIN}newsfeed/newsfeed.php" sef="index" >LAN_PLUGIN_NEWSFEEDS_NAME</link>
|
||||
</siteLinks>
|
||||
<pluginPrefs>
|
||||
</pluginPrefs>
|
||||
</e107Plugin>
|
@ -20,7 +20,7 @@ if (!defined('e107_INIT')) { exit; }
|
||||
$NEWSFEED_MAIN_CAPTION = NFLAN_38;
|
||||
|
||||
$NEWSFEED_LIST_START = "
|
||||
<table style='width: 100%;' class='table fborder'>\n";
|
||||
<table style='width: 100%;' class='newsfeed-list table fborder'>\n";
|
||||
|
||||
$NEWSFEED_LIST = "
|
||||
<tr>
|
||||
@ -32,16 +32,16 @@ $NEWSFEED_LIST_END = "
|
||||
</table>\n";
|
||||
|
||||
$NEWSFEED_MAIN_START = "
|
||||
<table style='width: 100%;' class='table fborder'>
|
||||
<table style='width: 100%;' class='newsfeed table fborder'>
|
||||
<tr>
|
||||
<td class='forumheader'>{FEEDIMAGE} {FEEDTITLE}</td>
|
||||
<td class='forumheader'><h3>{FEEDIMAGE} {FEEDTITLE}</h3></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='forumheader3'>
|
||||
<ul>\n";
|
||||
|
||||
$NEWSFEED_MAIN = "
|
||||
<li><b>{FEEDITEMLINK}</b> <span class='smalltext'>{FEEDITEMCREATOR}</span><br />{FEEDITEMTEXT}<br /><br /></li>\n";
|
||||
<li><h4>{FEEDITEMLINK}</h4><small class='smalltext'>{FEEDITEMCREATOR}</small><div>{FEEDITEMTEXT}</div></li>\n";
|
||||
|
||||
|
||||
$NEWSFEED_MAIN_END = "
|
||||
|
@ -35,6 +35,7 @@ class pm_admin extends e_admin_dispatcher
|
||||
'ui' => 'private_msg_form_ui',
|
||||
'uipath' => null
|
||||
),
|
||||
|
||||
/*
|
||||
'block' => array(
|
||||
'controller' => 'private_msg_block_ui',
|
||||
@ -52,6 +53,7 @@ class pm_admin extends e_admin_dispatcher
|
||||
'main/limits' => array('caption'=> ADLAN_PM_55, 'perm' => 'P'),
|
||||
'main/maint' => array('caption'=> ADLAN_PM_59, 'perm' => 'P'),
|
||||
|
||||
|
||||
'main/null' => array('divider'=> true),
|
||||
'inbox/list' => array('caption'=> "Inbox", 'perm' => 'P'),
|
||||
'outbox/list' => array('caption'=> "Outbox", 'perm' => 'P'),
|
||||
@ -71,6 +73,17 @@ class pm_admin extends e_admin_dispatcher
|
||||
);
|
||||
|
||||
protected $menuTitle = LAN_PLUGIN_PM_NAME;
|
||||
|
||||
function init()
|
||||
{
|
||||
|
||||
if(e_DEBUG == true)
|
||||
{
|
||||
$this->adminMenu['main/null2'] = array('divider'=> true);
|
||||
$this->adminMenu['main/list'] = array('caption'=> "Log", 'perm' => 'P');
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -129,7 +142,7 @@ class private_msg_ui extends e_admin_ui
|
||||
'attach_size' => array('title'=> ADLAN_PM_28, 'tab'=>1, 'type' => 'number', 'data' => 'int', 'help'=>'', 'writeParms'=>'tdClassRight=form-inline&post=Kb'),
|
||||
'pm_max_send' => array('title'=> ADLAN_PM_81, 'tab'=>1, 'type' => 'number', 'data' => 'int', 'help'=>''),
|
||||
'perpage' => array('title'=> ADLAN_PM_24, 'tab'=>0, 'type' => 'number', 'data' => 'int', 'help'=>''),
|
||||
|
||||
'maxlength' => array('title'=> ADLAN_PM_84, 'tab'=>1, 'type' => 'number', 'data' => 'int', 'help'=>ADLAN_PM_85, 'writeParms'=>array('post'=>'chars.')),
|
||||
);
|
||||
|
||||
|
||||
@ -831,6 +844,15 @@ class private_msg_ui extends e_admin_ui
|
||||
$this->fields['options']['readParms'] = 'editClass='.e_UC_NOBODY;
|
||||
}
|
||||
|
||||
if($this->getMode() == 'main')
|
||||
{
|
||||
$this->listQry = 'SELECT p.*, u.user_name, f.user_name AS fromuser FROM #private_msg AS p LEFT JOIN #user AS u ON u.user_id = p.pm_to
|
||||
LEFT JOIN #user as f on f.user_id = p.pm_from WHERE 1 ';
|
||||
// $this->fields['pm_from']['nolist'] = true;
|
||||
$this->fields['options']['readParms'] = 'editClass='.e_UC_NOBODY;
|
||||
$this->perPage = 20;
|
||||
}
|
||||
|
||||
if($this->getAction() == 'create')
|
||||
{
|
||||
$this->fields['pm_to']['writeParms']['default'] = 99999999;
|
||||
|
@ -75,8 +75,10 @@ class pm_shortcodes extends e_shortcode
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param int $parm - User ID.
|
||||
* @return null|string
|
||||
*/
|
||||
function sc_sendpm($parm='')
|
||||
{
|
||||
|
||||
@ -86,8 +88,12 @@ class pm_shortcodes extends e_shortcode
|
||||
|
||||
$url = e107::url('pm','index').'?send.'.$parm;
|
||||
|
||||
require_once(e_PLUGIN."pm/pm_class.php");
|
||||
|
||||
if(check_class($pm_prefs['pm_class']))
|
||||
$pm = new private_message;
|
||||
|
||||
|
||||
if(check_class($pm_prefs['pm_class']) && $pm->canSendTo($parm)) // check $this->pmPrefs['send_to_class'].
|
||||
{
|
||||
if(deftrue('FONTAWESOME') && deftrue('BOOTSTRAP'))
|
||||
{
|
||||
|
@ -86,4 +86,7 @@ define("LAN_PM_108", "Message sent on: ");
|
||||
define("LAN_PM_109", "New Message(s)");
|
||||
define("LAN_PM_111", "Read");
|
||||
define("LAN_PM_112", "User(s)");
|
||||
|
||||
define("LAN_PM_113", "Read Message");
|
||||
define("LAN_PM_114", "You do not have access to send to this user.");
|
||||
?>
|
@ -76,6 +76,8 @@ define("ADLAN_PM_80", "Preference formats updated");
|
||||
define("ADLAN_PM_81", "Maximum number of PMs to send immediately");
|
||||
define("ADLAN_PM_82", "If sending more than this, they are added to a queue and sent out using the cron task");
|
||||
define("ADLAN_PM_83", "Users may only send messages to users in this class");
|
||||
define("ADLAN_PM_84", "Maximum message length");
|
||||
define("ADLAN_PM_85", "0 = unlimited");
|
||||
|
||||
|
||||
?>
|
@ -148,8 +148,16 @@ class pm_extended extends private_message
|
||||
$to_uid = $pm_info['pm_from'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(!empty($to_uid))
|
||||
{
|
||||
|
||||
if($this->canSendTo($to_uid) == false)
|
||||
{
|
||||
return "<div class='alert alert-danger'>".LAN_PM_114."</div>";// sending to this user is not permitted.
|
||||
}
|
||||
|
||||
$sql2 = e107::getDb('sql2');
|
||||
if($sql2->select('user', 'user_name', 'user_id = '.intval($to_uid))) //TODO add a check for userclass.
|
||||
{
|
||||
|
@ -35,7 +35,8 @@ class private_message
|
||||
public function __construct($prefs=null)
|
||||
{
|
||||
$this->e107 = e107::getInstance();
|
||||
$this->pmPrefs = $prefs; }
|
||||
$this->pmPrefs = e107::pref('pm');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@ -262,6 +263,10 @@ class private_message
|
||||
else
|
||||
{ // Sending to a single person
|
||||
$info['pm_to'] = intval($vars['to_info']['user_id']); // Sending to a single user now
|
||||
|
||||
|
||||
|
||||
|
||||
if($pmid = $sql->insert('private_msg', $info))
|
||||
{
|
||||
$info['pm_id'] = $pmid;
|
||||
@ -272,6 +277,7 @@ class private_message
|
||||
if(check_class($this->pmPrefs['notify_class'], null, $vars['to_info']['user_id']))
|
||||
{
|
||||
set_time_limit(20);
|
||||
$vars['pm_sent'] = $timestamp;
|
||||
$this->pm_send_notify($vars['to_info']['user_id'], $vars, $pmid, count($a_list));
|
||||
}
|
||||
$ret .= LAN_PM_40.": {$vars['to_info']['user_name']}<br />";
|
||||
@ -407,7 +413,8 @@ class private_message
|
||||
$data['PM_DATE'] = e107::getParser()->toDate($pmInfo['pm_sent'], 'long');
|
||||
$data['SITENAME'] = SITENAME;
|
||||
$data['USERNAME'] = USERNAME;
|
||||
$data['PM_URL'] = "<a href='".$url."'>".$url."</a>";// e107::url('pm','index', null, array('mode'=>'full')).'?show.'.$pmid;
|
||||
$data['PM_URL'] = $url;// e107::url('pm','index', null, array('mode'=>'full')).'?show.'.$pmid;
|
||||
$data['PM_BUTTON'] = "<a class='btn btn-primary' href='".$url."'>".LAN_PM_113."</a>";// e107::url('pm','index', null, array('mode'=>'full')).'?show.'.$pmid;
|
||||
|
||||
$text = e107::getParser()->simpleParse($template, $data);
|
||||
|
||||
@ -434,8 +441,7 @@ class private_message
|
||||
* Send PM read receipt
|
||||
*
|
||||
* @param array $pmInfo - PM details
|
||||
*
|
||||
* @return none
|
||||
* @return boolean
|
||||
*/
|
||||
function pm_send_receipt($pmInfo) //TODO Add Template and combine with method above..
|
||||
{
|
||||
@ -449,16 +455,20 @@ class private_message
|
||||
$txt .= LAN_PM_103.$pmInfo['pm_subject']."\n";
|
||||
$txt .= LAN_PM_105."\n".$pmlink."\n";
|
||||
|
||||
sendemail($pmInfo['from_email'], $subject, $txt, $pmInfo['from_name']);
|
||||
if(sendemail($pmInfo['from_email'], $subject, $txt, $pmInfo['from_name']))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get list of users blocked from sending to a specific user ID.
|
||||
* Get list of users blocked from sending to a specific user ID.
|
||||
*
|
||||
* @param integer $to - user ID
|
||||
*
|
||||
* @return array of blocked users as user IDs
|
||||
* @param int|mixed $to - user ID
|
||||
* @return array of blocked users as user IDs
|
||||
*/
|
||||
function block_get($to = USERID)
|
||||
{
|
||||
@ -629,6 +639,7 @@ class private_message
|
||||
function get_users_inclass($class)
|
||||
{
|
||||
$sql = e107::getDb();
|
||||
|
||||
if($class == e_UC_MEMBER)
|
||||
{
|
||||
$qry = "SELECT user_id, user_name, user_email, user_class FROM `#user` WHERE 1";
|
||||
@ -642,7 +653,9 @@ class private_message
|
||||
$regex = "(^|,)(".e107::getParser()->toDB($class).")(,|$)";
|
||||
$qry = "SELECT user_id, user_name, user_email, user_class FROM `#user` WHERE user_class REGEXP '{$regex}'";
|
||||
}
|
||||
if($sql->gen($qry))
|
||||
|
||||
|
||||
if(!empty($qry) && $sql->gen($qry))
|
||||
{
|
||||
$ret = $sql->db_getList();
|
||||
return $ret;
|
||||
@ -651,6 +664,37 @@ class private_message
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check permission to send a PM to someone.
|
||||
* @param int $uid user_id of the person to send to
|
||||
* @return bool
|
||||
*/
|
||||
function canSendTo($uid)
|
||||
{
|
||||
if(empty($uid))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$user = e107::user($uid);
|
||||
|
||||
$uclass = explode(",", $user['user_class']);
|
||||
|
||||
if($this->pmPrefs['send_to_class'] == 'matchclass')
|
||||
{
|
||||
$tmp = explode(",", USERCLASS);
|
||||
$result = array_intersect($uclass, $tmp);
|
||||
|
||||
return !empty($result);
|
||||
}
|
||||
|
||||
return in_array($this->pmPrefs['send_to_class'], $uclass);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get inbox - up to $limit messages from $from
|
||||
*
|
||||
|
@ -170,8 +170,7 @@ if(!class_exists('plugin_pm_pm_shortcodes'))
|
||||
|
||||
if(check_class($this->pmPrefs['multi_class']))
|
||||
{
|
||||
$selectize = array('maxItems'=>10);
|
||||
$ret = e107::getForm()->userpicker('pm_to', null, null, null, array('selectize'=>$selectize));
|
||||
$ret = e107::getForm()->userpicker('pm_to', null, array('limit'=>10));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -246,6 +245,9 @@ if(!class_exists('plugin_pm_pm_shortcodes'))
|
||||
public function sc_pm_form_message()
|
||||
{
|
||||
$value = '';
|
||||
$maxlength = '';
|
||||
$placeholder = '';
|
||||
|
||||
if(vartrue($this->var['pm_text']))
|
||||
{
|
||||
if(isset($_POST['quote']))
|
||||
@ -254,7 +256,16 @@ if(!class_exists('plugin_pm_pm_shortcodes'))
|
||||
$value = "\n\n\n\n\n\n\n[quote{$t}={$this->var['from_name']}]\n".trim($this->var['pm_text'])."[/quote{$t}]";
|
||||
}
|
||||
}
|
||||
return "<textarea class='tbox form-control' name='pm_message' cols='60' rows='10' onselect='storeCaret(this);' onclick='storeCaret(this);' onkeyup='storeCaret(this);'>{$value}</textarea>";
|
||||
|
||||
|
||||
if(!empty($this->pmPrefs['maxlength']))
|
||||
{
|
||||
$length = intval($this->pmPrefs['maxlength']);
|
||||
$maxlength = "maxlength=".$length;
|
||||
$placeholder = "placeholder='Max. ".$length." chars.'"; // TODO LAN
|
||||
}
|
||||
|
||||
return "<textarea class='tbox form-control' ".$placeholder." name='pm_message' cols='60' rows='10' ".$maxlength." onselect='storeCaret(this);' onclick='storeCaret(this);' onkeyup='storeCaret(this);'>{$value}</textarea>";
|
||||
}
|
||||
|
||||
|
||||
|
@ -276,10 +276,9 @@ $PM_NOTIFY =
|
||||
<tr><td>".LAN_PM_103."</td><td>{PM_SUBJECT}</td></tr>
|
||||
<tr><td>".LAN_PM_108."</td><td>{PM_DATE}</td></tr>
|
||||
<tr><td>".LAN_PM_104."</td><td>{PM_ATTACHMENTS}</td></tr>
|
||||
|
||||
</table><br />
|
||||
<div>".LAN_PM_105.": {PM_URL}</div>
|
||||
</div>
|
||||
</table>
|
||||
<table class='table'><tr><td class='text-center'><br />
|
||||
<a class='btn btn-primary btn-lg' href='{PM_URL}'>".LAN_PM_113."</a></td></tr>
|
||||
</table>
|
||||
";
|
||||
|
||||
?>
|
@ -41,14 +41,23 @@ class poll
|
||||
function remove_poll_cookies()
|
||||
{
|
||||
$arr_polls_cookies = array();
|
||||
foreach($_COOKIE as $cookie_name => $cookie_val)
|
||||
{ // Collect poll cookies
|
||||
list($str, $int) = explode('_', $cookie_name, 2);
|
||||
if (($str == 'poll') && is_numeric($int))
|
||||
{ // Yes, its poll's cookie
|
||||
$arr_polls_cookies[] = $int;
|
||||
if(!empty($_COOKIE))
|
||||
{
|
||||
foreach($_COOKIE as $cookie_name => $cookie_val)
|
||||
{ // Collect poll cookies
|
||||
|
||||
if(substr($cookie_name,0,5) == 'poll_')
|
||||
{
|
||||
// e107::getDebug()->log("Poll: ".$cookie_name);
|
||||
list($str, $int) = explode('_', $cookie_name, 2);
|
||||
if (($str == 'poll') && is_numeric($int))
|
||||
{ // Yes, its poll's cookie
|
||||
$arr_polls_cookies[] = $int;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (count($arr_polls_cookies) > 1)
|
||||
{ // Remove all except first (assumption: there is always only one active poll)
|
||||
rsort($arr_polls_cookies);
|
||||
@ -888,6 +897,7 @@ class poll_shortcodes extends e_shortcode
|
||||
public $answerOption = array();
|
||||
public $answerCount = 0;
|
||||
public $pollRenderType = null; // type
|
||||
public $pollRenderMode = null;
|
||||
public $pollPreview = false;
|
||||
public $pollVoteTotal = 0;
|
||||
public $pollCommentTotal = 0;
|
||||
|
@ -217,7 +217,7 @@ class wysiwyg
|
||||
|
||||
function tinymce_lang()
|
||||
{
|
||||
$lang = 'English'; //Quick Fix e_LANGUAGE
|
||||
$lang = e_LANGUAGE; // 'English'; //Quick Fix e_LANGUAGE
|
||||
$tinylang = array(
|
||||
"Arabic" => "ar",
|
||||
"Bulgarian" => "bg",
|
||||
|
@ -1011,6 +1011,10 @@ span.tag button.close {
|
||||
.selectize-control.multi .selectize-input > div { cursor: pointer; margin: 1px 5px 0 0; padding: 1px 3px; background: #3a87ad; color: #ffffff; border: 0 solid rgba(0, 0, 0, 0); text-shadow: 1px 1px 0 black; box-shadow: 1px 1px 0 black; font-size: 12px; font-weight: bold; }
|
||||
.selectize-control.single .selectize-input, .selectize-control.single .selectize-input.input-active, .selectize-control.single .selectize-input.input-active:hover, .selectize-control.single .selectize-input.focus, .selectize-control.multi .selectize-input, .selectize-control.multi .selectize-input.input-active, .selectize-control.multi .selectize-input.input-active:hover, .selectize-control.multi .selectize-input.focus { padding: 5px 5px 5px 5px !important; }
|
||||
|
||||
div.selectize-control .form-control { background-color: #212121; border: none; box-shadow: 2px 2px 2px rgba(0, 0, 0,0.5); }
|
||||
div.selectize-dropdown .option.active { color: #fff; background-color: #337ab7; }
|
||||
|
||||
|
||||
/* Theme Manager - Find online */
|
||||
.form-search > div > div > div > i.icon-search
|
||||
{
|
||||
@ -1258,9 +1262,6 @@ li.rssRow > div {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
body { background-color: rgb(68, 68, 68); }
|
||||
|
@ -402,7 +402,6 @@ $(document).ready(function()
|
||||
/* Bootstrap Modal window within an iFrame for frontend */
|
||||
$('.e-modal').on('click', function(e)
|
||||
{
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
if($(this).attr('data-cache') == 'false')
|
||||
@ -414,8 +413,22 @@ $(document).ready(function()
|
||||
|
||||
var url = $(this).attr('href');
|
||||
var caption = $(this).attr('data-modal-caption');
|
||||
var backdrop = $(this).attr('data-modal-backdrop');
|
||||
var keyboard = $(this).attr('data-modal-keyboard');
|
||||
var height = ($(window).height() * 0.7) - 120;
|
||||
|
||||
var modalOptions = {show: true};
|
||||
|
||||
if(backdrop !== undefined)
|
||||
{
|
||||
modalOptions['backdrop'] = backdrop;
|
||||
}
|
||||
|
||||
if(keyboard !== undefined)
|
||||
{
|
||||
modalOptions['keyboard'] = keyboard;
|
||||
}
|
||||
|
||||
if(caption === undefined)
|
||||
{
|
||||
caption = '';
|
||||
@ -426,9 +439,9 @@ $(document).ready(function()
|
||||
height = $(this).attr('data-modal-height');
|
||||
}
|
||||
|
||||
$('.modal-body').html('<div><iframe id="e-modal-iframe" width="100%" height="'+height+'px" frameborder="0" scrolling="auto" style="display:block;" allowtransparency="true" src="' + url + '"></iframe></div>');
|
||||
$('.modal-body').html('<div><iframe id="e-modal-iframe" width="100%" height="'+height+'px" frameborder="0" scrolling="auto" style="display:block;" allowtransparency="true" allowfullscreen src="' + url + '"></iframe></div>');
|
||||
$('.modal-caption').html(caption + ' <i id="e-modal-loading" class="fa fa-spin fa-spinner"></i>');
|
||||
$('.modal').modal('show');
|
||||
$('.modal').modal(modalOptions);
|
||||
|
||||
$("#e-modal-iframe").on("load", function () {
|
||||
$('#e-modal-loading').hide();
|
||||
@ -438,4 +451,4 @@ $(document).ready(function()
|
||||
|
||||
|
||||
|
||||
});
|
||||
});
|
||||
|
4
user.php
4
user.php
@ -261,12 +261,14 @@ if (isset($id))
|
||||
// $userList = $sql->db_getList();
|
||||
|
||||
$text = $tp->parseTemplate($USER_SHORT_TEMPLATE_START, TRUE, $user_shortcodes);
|
||||
$sc = e107::getScBatch('user');
|
||||
foreach ($data as $row)
|
||||
{
|
||||
$loop_uid = $row['user_id'];
|
||||
|
||||
// $text .= renderuser($row, "short");
|
||||
e107::getScBatch('user')->setVars($row);
|
||||
$sc->setVars($row);
|
||||
$sc->wrapper('user/list');
|
||||
|
||||
$text .= $tp->parseTemplate($USER_SHORT_TEMPLATE, TRUE, $user_shortcodes);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user