1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-04 13:47:31 +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 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); $ret_data = e107::getUserExt()->user_extended_display_text($ueStruct['user_'.$parms[0]]['user_extended_struct_values'],$uVal);
break; break;
case EUF_RICHTEXTAREA :
$ret_data = e107::getParser()->toHTML($uVal);
break;
default : default :
$ret_data = $uVal; $ret_data = $uVal;
} }

View File

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

View File

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