1
0
mirror of https://github.com/e107inc/e107.git synced 2025-07-31 03:40:37 +02:00

#1775 - Added Rich Textarea (WYSIYWG) for EUF

Initial commit. Needs testing as saving linebreaks is not working properly yet. Perhaps due to filter in /usersettings.php.
This commit is contained in:
Tijn Kuyper
2019-06-08 16:07:36 +02:00
parent f6562ff2a4
commit 4e9bb1ffc0
3 changed files with 32 additions and 24 deletions

View File

@@ -196,6 +196,9 @@
case EUF_PREDEFINED : // Predefined field - have to look up display string in relevant file
$ret_data = e107::getUserExt()->user_extended_display_text($ueStruct['user_'.$parms[0]]['user_extended_struct_values'],$uVal);
break;
case EUF_RICHTEXTAREA :
$ret_data = e107::getParser()->toHTML($uVal);
break;
default :
$ret_data = $uVal;
}

View File

@@ -8,18 +8,11 @@
*
* Extended user field handler
*
* $URL$
* $Id$
*
*/
if (!defined('e107_INIT')) { exit; }
/**
* @package e107
* @subpackage e107_handlers
* @version $Id$;
*
* Extended user field handler
*
* @todo: - change some routines to access the cached variables rather than DB
@@ -68,6 +61,7 @@ class e107_user_extended
define('EUF_PREFIELD',11); // should be EUF_PREDEFINED, useful when creating fields from e.g. plugin XML
define('EUF_ADDON', 12); // defined within e_user.php addon @todo
define('EUF_COUNTRY', 13); // $frm->country()
define('EUF_RICHTEXTAREA', 14); // $frm->bbarea()
$this->typeArray = array(
'text' => EUF_TEXT,
@@ -83,6 +77,7 @@ class e107_user_extended
'predefined' => EUF_PREFIELD, // DON'T USE IT IN PREDEFINED FIELD XML!!! Used in plugin installation routine.
'addon' => EUF_ADDON,
'country' => EUF_COUNTRY,
'richtextarea' => EUF_RICHTEXTAREA,
);
$this->user_extended_types = array(
@@ -91,13 +86,15 @@ class e107_user_extended
3 => UE_LAN_3,
4 => UE_LAN_4,
5 => UE_LAN_5,
14 => UE_LAN_14,
6 => UE_LAN_6,
7 => LAN_DATE,
8 => UE_LAN_8,
9 => UE_LAN_9,
10 => UE_LAN_10,
13=> UE_LAN_13
13 => UE_LAN_13,
// 12=> UE_LAN_10
);
//load array with field names from main user table, so we can disallow these
@@ -193,6 +190,7 @@ class e107_user_extended
case EUF_TEXT :
case EUF_DB_FIELD :
case EUF_TEXTAREA :
case EUF_RICHTEXTAREA :
case EUF_DROPDOWN :
case EUF_DATE :
case EUF_LANGUAGE :
@@ -236,6 +234,7 @@ class e107_user_extended
case EUF_TEXT :
case EUF_DB_FIELD :
case EUF_TEXTAREA :
case EUF_RICHTEXTAREA :
case EUF_DROPDOWN :
case EUF_DATE :
case EUF_LANGUAGE :
@@ -551,6 +550,7 @@ class e107_user_extended
break;
case EUF_TEXTAREA:
case EUF_RICHTEXTAREA :
case EUF_CHECKBOX :
$db_type = 'TEXT';
break;
@@ -561,7 +561,6 @@ class e107_user_extended
case EUF_DB_FIELD :
case EUF_LANGUAGE :
case EUF_PREDEFINED :
$db_type = 'VARCHAR(255)';
break;
@@ -579,7 +578,7 @@ class e107_user_extended
break;
}
if($type != EUF_DB_FIELD && ($type != EUF_TEXTAREA) && ($type != EUF_CHECKBOX) && !empty($default))
if($type != EUF_DB_FIELD && ($type != EUF_TEXTAREA) && ($type != EUF_RICHTEXTAREA) && ($type != EUF_CHECKBOX) && !empty($default))
{
$default_text = " DEFAULT '".$tp -> toDB($default, true)."'";
}
@@ -590,8 +589,6 @@ class e107_user_extended
return $db_type.$default_text;
}
@@ -956,6 +953,9 @@ class e107_user_extended
return "<textarea id='{$fid}' {$include} name='{$fname}' {$required} {$title}>{$curval}</textarea>";
break;
case EUF_RICHTEXTAREA : // rich textarea (using WYSIWYG editor)
return e107::getForm()->bbarea($fname, $curval);
case EUF_DATE : //date
if($curval == '0000-00-00') // Quick datepicker fix.
@@ -1247,6 +1247,9 @@ class e107_user_extended
return $value;
break;
case EUF_RICHTEXTAREA:
return e107::getParser()->toHTML($value);
break;
default:
return $value;

View File

@@ -22,6 +22,8 @@ define("UE_LAN_9", "Predefined list");
define("UE_LAN_10", "Checkboxes");
//v2.1.5
define("UE_LAN_13", "Country");
//v2.2.2
define("UE_LAN_14", "Rich Textarea (WYSIWYG)");
// Leave a gap to allow for more field types
define("UE_LAN_21", "Name");