mirror of
https://github.com/e107inc/e107.git
synced 2025-07-25 17:01:43 +02:00
Fix for admin language using core language file. New Admin-UI option to save specific preferences as a multi-language array. Use: 'multilan'=>true in $prefs array. Example: protected $prefs = array('myplugin_title' => array('title'=> 'Title', 'type'=>'text', 'data' => 'str', 'multilan'=>true));
This commit is contained in:
14
class2.php
14
class2.php
@@ -615,8 +615,18 @@ if(varset($pref['multilanguage']) && (e_LANGUAGE != $pref['sitelanguage']))
|
|||||||
//do it only once and with the proper function
|
//do it only once and with the proper function
|
||||||
// e107_include_once(e_LANGUAGEDIR.e_LANGUAGE.'/'.e_LANGUAGE.'.php');
|
// e107_include_once(e_LANGUAGEDIR.e_LANGUAGE.'/'.e_LANGUAGE.'.php');
|
||||||
// e107_include_once(e_LANGUAGEDIR.e_LANGUAGE.'/'.e_LANGUAGE.'_custom.php');
|
// e107_include_once(e_LANGUAGEDIR.e_LANGUAGE.'/'.e_LANGUAGE.'_custom.php');
|
||||||
// v1 Custom language File Path.
|
// v1 Custom language File Path.
|
||||||
include(e_LANGUAGEDIR.e_LANGUAGE.'/'.e_LANGUAGE.'.php'); // FASTEST - ALWAYS load
|
|
||||||
|
if((e_ADMIN_AREA === true) && !empty($pref['adminlanguage']))
|
||||||
|
{
|
||||||
|
include(e_LANGUAGEDIR.$pref['adminlanguage'].'/'.$pref['adminlanguage'].'.php');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
include(e_LANGUAGEDIR.e_LANGUAGE.'/'.e_LANGUAGE.'.php'); // FASTEST - ALWAYS load
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$customLan = e_LANGUAGEDIR.e_LANGUAGE.'/'.e_LANGUAGE.'_custom.php';
|
$customLan = e_LANGUAGEDIR.e_LANGUAGE.'/'.e_LANGUAGE.'_custom.php';
|
||||||
if(is_readable($customLan)) // FASTER - if exist, should be done 'once' by the core
|
if(is_readable($customLan)) // FASTER - if exist, should be done 'once' by the core
|
||||||
{
|
{
|
||||||
|
@@ -472,7 +472,7 @@ class news_admin_ui extends e_admin_ui
|
|||||||
|
|
||||||
$this->processPings();
|
$this->processPings();
|
||||||
e107::getEvent()->trigger('newspost',$new_data);
|
e107::getEvent()->trigger('newspost',$new_data);
|
||||||
e107::getEvent()->trigger('admin_news_created',$new_data);
|
// e107::getEvent()->trigger('admin_news_created',$new_data);
|
||||||
$evdata = array('method'=>'create', 'table'=>'news', 'id'=>$id, 'plugin'=>'news', 'function'=>'submit_item');
|
$evdata = array('method'=>'create', 'table'=>'news', 'id'=>$id, 'plugin'=>'news', 'function'=>'submit_item');
|
||||||
e107::getMessage()->addInfo(e107::getEvent()->triggerHook($evdata));
|
e107::getMessage()->addInfo(e107::getEvent()->triggerHook($evdata));
|
||||||
$this->clearCache();
|
$this->clearCache();
|
||||||
@@ -493,7 +493,7 @@ class news_admin_ui extends e_admin_ui
|
|||||||
$this->processPings();
|
$this->processPings();
|
||||||
|
|
||||||
e107::getEvent()->trigger('newsupd', $new_data);
|
e107::getEvent()->trigger('newsupd', $new_data);
|
||||||
e107::getEvent()->trigger('admin_news_updated',$new_data);
|
// e107::getEvent()->trigger('admin_news_updated',$new_data);
|
||||||
|
|
||||||
$this->clearCache();
|
$this->clearCache();
|
||||||
|
|
||||||
|
@@ -5227,10 +5227,33 @@ class e_admin_ui extends e_admin_controller_ui
|
|||||||
|
|
||||||
public function PrefsSaveTrigger()
|
public function PrefsSaveTrigger()
|
||||||
{
|
{
|
||||||
|
$data = $this->getPosted();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
foreach($data as $key=>$val)
|
||||||
|
{
|
||||||
|
if(!empty($this->prefs[$key]['multilan']))
|
||||||
|
{
|
||||||
|
$this->getConfig()->clearPrefCache();
|
||||||
|
$this->getConfig()->setPref($key.'/'.e_LANGUAGE, $val);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->getConfig()->setPostedData($key, $val, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->getConfig()->save(true);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
$this->getConfig()
|
$this->getConfig()
|
||||||
->setPostedData($this->getPosted(), null, false, false)
|
->setPostedData($this->getPosted(), null, false, false)
|
||||||
//->setPosted('not_existing_pref_test', 1)
|
//->setPosted('not_existing_pref_test', 1)
|
||||||
->save(true);
|
->save(true);
|
||||||
|
*/
|
||||||
|
|
||||||
$this->getConfig()->setMessages();
|
$this->getConfig()->setMessages();
|
||||||
|
|
||||||
@@ -5588,6 +5611,8 @@ class e_admin_form_ui extends e_form
|
|||||||
);
|
);
|
||||||
$models[] = $controller->getConfig();
|
$models[] = $controller->getConfig();
|
||||||
|
|
||||||
|
// print_a($forms);
|
||||||
|
|
||||||
return $this->renderCreateForm($forms, $models, e_AJAX_REQUEST);
|
return $this->renderCreateForm($forms, $models, e_AJAX_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2951,7 +2951,10 @@ class e_form
|
|||||||
*/
|
*/
|
||||||
function renderValue($field, $value, $attributes, $id = 0)
|
function renderValue($field, $value, $attributes, $id = 0)
|
||||||
{
|
{
|
||||||
|
if(!empty($attributes['multilan']) && is_array($value))
|
||||||
|
{
|
||||||
|
$value = varset($value[e_LANGUAGE],'');
|
||||||
|
}
|
||||||
|
|
||||||
$parms = array();
|
$parms = array();
|
||||||
if(isset($attributes['readParms']))
|
if(isset($attributes['readParms']))
|
||||||
@@ -3764,6 +3767,12 @@ class e_form
|
|||||||
$tp = e107::getParser();
|
$tp = e107::getParser();
|
||||||
|
|
||||||
if(is_string($parms)) parse_str($parms, $parms);
|
if(is_string($parms)) parse_str($parms, $parms);
|
||||||
|
|
||||||
|
if(!empty($attributes['multilan']) && is_array($value))
|
||||||
|
{
|
||||||
|
$value = varset($value[e_LANGUAGE],'');
|
||||||
|
$parms['post'] = "<small class='e-tip' style='cursor:help; padding-left:10px' title='Multi-language field'>".$tp->toGlyph('fa-language')."</small>";
|
||||||
|
}
|
||||||
|
|
||||||
if(empty($value) && !empty($parms['default'])) // Allow writeParms to set default value.
|
if(empty($value) && !empty($parms['default'])) // Allow writeParms to set default value.
|
||||||
{
|
{
|
||||||
@@ -3893,14 +3902,14 @@ class e_form
|
|||||||
// Appending needs is performed and customized using function: beforeUpdate($new_data, $old_data, $id)
|
// Appending needs is performed and customized using function: beforeUpdate($new_data, $old_data, $id)
|
||||||
}
|
}
|
||||||
|
|
||||||
$text .= $this->textarea($key, $value, vartrue($parms['rows'], 5), vartrue($parms['cols'], 40), vartrue($parms['__options'],$parms), varset($parms['counter'], false));
|
$text .= vartrue($parms['pre']).$this->textarea($key, $value, vartrue($parms['rows'], 5), vartrue($parms['cols'], 40), vartrue($parms['__options'],$parms), varset($parms['counter'], false)).vartrue($parms['post']);
|
||||||
$ret = $text;
|
$ret = $text;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'bbarea':
|
case 'bbarea':
|
||||||
$options = array('counter' => varset($parms['counter'], false));
|
$options = array('counter' => varset($parms['counter'], false));
|
||||||
// Media = media-category owner used by media-manager.
|
// Media = media-category owner used by media-manager.
|
||||||
$ret = $this->bbarea($key, $value, vartrue($parms['template']), vartrue($parms['media']), vartrue($parms['size'], 'medium'),$options );
|
$ret = vartrue($parms['pre']).$this->bbarea($key, $value, vartrue($parms['template']), vartrue($parms['media']), vartrue($parms['size'], 'medium'),$options ).vartrue($parms['post']);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'image': //TODO - thumb, image list shortcode, js tooltip...
|
case 'image': //TODO - thumb, image list shortcode, js tooltip...
|
||||||
|
Reference in New Issue
Block a user