本文整理汇总了PHP中e107::callMethod方法的典型用法代码示例。如果您正苦于以下问题:PHP e107::callMethod方法的具体用法?PHP e107::callMethod怎么用?PHP e107::callMethod使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类e107
的用法示例。
在下文中一共展示了e107::callMethod方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getlinks
function getlinks($cat = 1)
{
$this->eLinkList = array();
// clear the array in case getlinks is called 2x on the same page.
$sql = e107::getDb('sqlSiteLinks');
$ins = $cat > 0 ? "link_category = " . intval($cat) . " AND " : "";
$query = "SELECT * FROM #links WHERE " . $ins . " link_class IN (" . USERCLASS_LIST . ") ORDER BY link_order ASC";
if ($sql->db_Select_gen($query)) {
while ($row = $sql->db_Fetch()) {
if ($row['link_sefurl']) {
$this->sefList[$row['link_sefurl']] = $row['link_url'];
}
// if (substr($row['link_name'], 0, 8) == 'submenu.'){
// $tmp=explode('.', $row['link_name'], 3);
// $this->eLinkList[$tmp[1]][]=$row;
if (isset($row['link_parent']) && $row['link_parent'] != 0) {
$this->eLinkList['sub_' . $row['link_parent']][] = $row;
} else {
$this->eLinkList['head_menu'][] = $row;
if (vartrue($row['link_function'])) {
list($path, $method) = explode("::", $row['link_function']);
if (include_once e_PLUGIN . $path . "/e_sitelink.php") {
$class = $path . "_sitelinks";
$sublinkArray = e107::callMethod($class, $method);
//TODO Cache it.
if (vartrue($sublinkArray)) {
$this->eLinkList['sub_' . $row['link_id']] = $sublinkArray;
}
}
}
}
}
}
}
示例2: __construct
function __construct()
{
$pref = e107::getPref();
$this->notify_prefs = e107::getConfig('notify')->getPref();
$this->prefCleanup();
$this->test();
$recalibrate = FALSE;
// load every e_notify.php file.
if ($pref['e_notify_list']) {
foreach ($pref['e_notify_list'] as $val) {
$this->notify_prefs['plugins'][$val] = TRUE;
if (is_readable(e_PLUGIN . $val . "/e_notify.php")) {
require_once e_PLUGIN . $val . '/e_notify.php';
if (class_exists($val . "_notify")) {
$legacy = 0;
// Newe.
$config_events = array();
$data = e107::callMethod($val . "_notify", 'config');
$config_category = str_replace("_menu", "", ucfirst($val)) . " Events";
foreach ($data as $v) {
$func = $v['function'];
$config_events[$func] = $v['name'];
}
} else {
$legacy = 1;
// Legacy Mode.
}
// foreach ($config_events as $event_id => $event_text)
// {
// $this -> notify_prefs['event'][$event_id] = array('class' => '255', 'email' => '', 'plugin'=> $val);
// }
$this->pluginConfig[$val] = array('category' => $config_category, 'events' => $config_events, 'legacy' => $legacy);
$recalibrate = true;
}
}
}
// print_a($this->pluginConfig);
if ($recalibrate) {
// $s_prefs = $tp -> toDB($this -> notify_prefs);
// $s_prefs = $eArrayStorage -> WriteArray($s_prefs);
// $sql -> db_Update("core", "e107_value='".$s_prefs."' WHERE e107_name='notify_prefs'");
}
}
示例3: rssadminimport
function rssadminimport()
{
$sql = e107::getDb();
$ns = e107::getRender();
$mes = e107::getMessage();
$tp = e107::getParser();
global $i, $rss_shortcodes, $feed, $pref;
global $RSS_ADMIN_IMPORT_HEADER, $RSS_ADMIN_IMPORT_TABLE, $RSS_ADMIN_IMPORT_FOOTER;
$sqli = new db();
$feedlist = array();
// News
$feed['name'] = ADLAN_0;
$feed['url'] = 'news';
// The identifier for the rss feed url
$feed['topic_id'] = '';
// The topic_id, empty on default (to select a certain category)
$feed['path'] = 'news';
// This is the plugin path location
$feed['text'] = RSS_PLUGIN_LAN_7;
$feed['class'] = '0';
$feed['limit'] = '9';
$feedlist[] = $feed;
// News categories
if ($sqli->db_Select("news_category", "*", "category_id!='' ORDER BY category_name ")) {
while ($rowi = $sqli->db_Fetch()) {
$feed['name'] = ADLAN_0 . ' > ' . $rowi['category_name'];
$feed['url'] = 'news';
$feed['topic_id'] = $rowi['category_id'];
$feed['path'] = 'news';
$feed['text'] = RSS_PLUGIN_LAN_10 . ' ' . $rowi['category_name'];
$feed['class'] = '0';
$feed['limit'] = '9';
// $feed['exclude_class'] = '';
$feedlist[] = $feed;
}
}
/* // Download
$feed['name'] = ADLAN_24;
$feed['url'] = 'download';
$feed['topic_id'] = '';
$feed['path'] = 'download';
$feed['text'] = RSS_PLUGIN_LAN_8;
$feed['class'] = '0';
$feed['limit'] = '9';
$feedlist[] = $feed;
// Download categories
if($sqli -> db_Select("download_category", "*","download_category_id!='' ORDER BY download_category_order "))
{
while($rowi = $sqli -> db_Fetch())
{
$feed['name'] = ADLAN_24.' > '.$rowi['download_category_name'];
$feed['url'] = 'download';
$feed['topic_id'] = $rowi['download_category_id'];
$feed['path'] = 'download';
$feed['text'] = RSS_PLUGIN_LAN_11.' '.$rowi['download_category_name'];
$feed['class'] = '0';
$feed['limit'] = '9';
$feedlist[] = $feed;
}
}
*/
// Comments
$feed['name'] = LAN_COMMENTS;
$feed['url'] = 'comments';
$feed['topic_id'] = '';
$feed['path'] = 'comments';
$feed['text'] = RSS_PLUGIN_LAN_9;
$feed['class'] = '0';
$feed['limit'] = '9';
$feedlist[] = $feed;
// Plugin rss feed, using e_rss.php in plugin folder
$plugin_feedlist = array();
foreach ($pref['e_rss_list'] as $val) {
$eplug_rss_feed = array();
if (is_readable(e_PLUGIN . $val . "/e_rss.php")) {
require_once e_PLUGIN . $val . "/e_rss.php";
$className = $val . "_rss";
$data = false;
if (!($data = e107::callMethod($className, 'config'))) {
$data = $eplug_rss_feed;
}
foreach ($data as $v) {
$v['path'] = $val;
array_push($plugin_feedlist, $v);
}
}
}
$feedlist = array_merge($feedlist, $plugin_feedlist);
// print_a($feedlist);
$render = FALSE;
$i = 0;
$text = $RSS_ADMIN_IMPORT_HEADER;
foreach ($feedlist as $k => $feed) {
$feed['topic_id'] = $tp->toDB($feed['topic_id']);
$feed['url'] = $tp->toDB($feed['url']);
// Check if feed is not yet present
if (!$sql->select("rss", "*", "rss_path='" . $feed['path'] . "' AND rss_url='" . $feed['url'] . "' AND rss_topicid='" . $feed['topic_id'] . "' ")) {
$render = TRUE;
$text .= $tp->parseTemplate($RSS_ADMIN_IMPORT_TABLE, FALSE, $rss_shortcodes);
//.........这里部分代码省略.........
示例4: compose_comment
/**
* Displays existing comments, and a comment entry form
*
* @param string $table - the source table for the associated item
* @param string $action - usually 'comment' or 'reply'
* @param integer $id - ID of item associated with comments (e.g. news ID)
* @param unknown_type $width - appears to not be used
* @param string $subject
* @param boolean $rate
*/
function compose_comment($table, $action, $id, $width, $subject, $rate = FALSE, $return = FALSE, $tablerender = TRUE)
{
//compose comment : single call function will render the existing comments and show the form_comment
//rate : boolean, to show/hide rating system in comment, default FALSE
global $totcc;
$tp = e107::getParser();
$ns = e107::getRender();
$pref = e107::getPref();
if ($this->getCommentPermissions() === FALSE) {
return;
}
$params = array('method' => 'compose_comment', 'table' => $table, 'action' => $action, 'id' => $id, 'width' => $width, 'subject' => $subject, 'rate' => $rate, 'return' => $return, 'tablerender' => $tablerender);
if ($this->engine != 'e107') {
list($plugin, $method) = explode("::", $this->engine);
$obj = e107::getAddon($plugin, 'e_comment');
$text = e107::callMethod($obj, $method, $params);
if (!$return) {
if ($tablerender) {
echo $ns->tablerender(null, $text, 'comment', true);
} else {
echo $text;
}
} else {
$ret['comment'] = $text;
$ret['comment_form'] = '';
$ret['caption'] = '';
return !$return ? "" : $ret;
}
return '';
}
if ($user_func = e107::getOverride()->check($this, 'compose_comment')) {
return call_user_func($user_func, $params);
}
// ------------- TODO move the 'listing' into separate function so that ajax can access it easily.
$options = array('action' => $action, 'subject' => $subject, 'rate' => $rate);
$text = $lock = $modcomment = '';
if ($action != 'reply') {
$tmp = $this->getComments($table, $id, 0, $options);
// render all comments;
$text = $tmp['comments'];
$lock = $tmp['lock'];
unset($tmp);
}
// -------------------------------------------------------
if ($text) {
$modcomment = "<div class='comment-options'>";
if ($this->totalComments && getperms("B")) {
// $modcomment .= "<a href='".e_ADMIN_ABS."modcomment.php?$table.$id'>".COMLAN_314."</a>";
$modcomment .= "<a class='btn btn-default btn-mini btn-sm' href='" . e_ADMIN_ABS . "comment.php?searchquery={$id}&filter_options=comment_type__" . $this->getCommentType($table) . "'>" . COMLAN_314 . "</a>";
}
$modcomment .= $this->nextprev($table, $id, $from);
$modcomment .= "</div>";
}
// ---------------------------
if ($lock != '1') {
$comment = $this->form_comment($action, $table, $id, $subject, "", TRUE, $rate, false);
// tablerender turned off.
} else {
$comment = "<br /><div style='text-align:center'><b>" . COMLAN_328 . "</b></div>";
}
if ($text) {
//XXX Do NOT add to template - too important to allow for modification.
$text = "<ul class='media-list' id='comments-container'>\n" . $text . "\n</ul>";
} else {
$text = "<ul class='media-list' id='comments-container'><li><!-- --></li></ul>";
}
$search = array("{MODERATE}", "{COMMENTS}", "{COMMENTFORM}", "{COMMENTNAV}");
$replace = array($modcomment, $text, $comment, $pagination);
$TEMPL = str_replace($search, $replace, $this->template['layout']);
if (!$return) {
if ($tablerender) {
echo $ns->tablerender("<span id='e-comment-total'>" . $this->totalComments . "</span> " . COMLAN_99, $TEMPL, 'comment', TRUE);
} else {
echo $TEMPL;
}
}
//echo $modcomment.$comment;
//echo $text;
$ret['comment'] = $text;
$ret['comment_form'] = $comment;
$ret['caption'] = "<span id='e-comment-total'>" . $this->totalComments . "</span> " . COMLAN_99;
return !$return ? "" : $ret;
}
示例5: link_sefurl
function link_sefurl($curVal, $mode)
{
if ($mode == 'read') {
$plugin = $this->getController()->getModel()->get('link_owner');
return $curVal;
// $this->linkFunctions[$curVal];
}
if ($mode == 'write') {
$plugin = $this->getController()->getModel()->get('link_owner');
$obj = e107::getAddon($plugin, 'e_url');
$config = e107::callMethod($obj, 'config');
$opts = array();
if (empty($config)) {
return $this->hidden('link_sefurl', '') . "<span class='label label-warning'>" . LAN_NOT_AVAILABLE . "</span>";
}
foreach ($config as $k => $v) {
if (strpos($v['regex'], ')') === false) {
$opts[] = $k;
}
}
return $this->select('link_sefurl', $opts, $curVal, array('useValues' => true, 'defaultValue' => '', 'default' => '(' . LAN_DISABLED . ')'));
}
}
示例6: isDynamic
/**
* Check for Dynamic Function
* @example class:method($parm)
*/
protected function isDynamic($row)
{
if (varset($row['link_sub'])) {
return $row['link_sub'];
}
if (vartrue($row['link_function'])) {
$parm = false;
list($path, $method) = explode("::", $row['link_function']);
if (strpos($method, "(")) {
list($method, $prm) = explode("(", $method);
$parm = rtrim($prm, ")");
}
if (include_once e_PLUGIN . $path . "/e_sitelink.php") {
$class = $path . "_sitelink";
if ($sublinkArray = e107::callMethod($class, $method, $parm)) {
return $sublinkArray;
}
}
}
return array();
}
示例7: __construct
//.........这里部分代码省略.........
switch ($value['comment_type']) {
case 0:
case 'news':
$this->rssItems[$loop]['link'] = "http://" . $_SERVER['HTTP_HOST'] . e_HTTP . "comment.php?comment.news." . $value['comment_item_id'];
break;
case 2:
case 'download':
$this->rssItems[$loop]['link'] = "http://" . $_SERVER['HTTP_HOST'] . e_HTTP . "comment.php?comment.download." . $value['comment_item_id'];
break;
case 4:
case 'poll':
$this->rssItems[$loop]['link'] = "http://" . $_SERVER['HTTP_HOST'] . e_HTTP . "comment.php?comment.poll." . $value['comment_item_id'];
break;
}
$this->rssItems[$loop]['description'] = $value['comment_comment'];
$this->rssItems[$loop]['author'] = substr($value['comment_author'], strpos($value['comment_author'], ".") + 1);
$loop++;
}
break;
case 6:
case 7:
$path = e_PLUGIN . "forum/e_rss.php";
break;
case 8:
if (!$this->topicid) {
return FALSE;
}
$path = e_PLUGIN . "forum/e_rss.php";
break;
// case 10 was bugtracker
// case 10 was bugtracker
case 11:
if (!$this->topicid) {
return FALSE;
}
$path = e_PLUGIN . "forum/e_rss.php";
break;
case 'download':
case 12:
$path = e_PLUGIN . "download/e_rss.php";
break;
}
if (isset($path) && $path != '') {
// New rss reader from e_rss.php in plugin folder
if (is_readable($path)) {
require_once $path;
$className = basename(dirname($path)) . '_rss';
// v2.x standard
if ($data = e107::callMethod($className, 'data', array('url' => $content_type, 'id' => $this->topicid, 'limit' => $this->limit))) {
$eplug_rss_data = array(0 => $data);
unset($data);
}
foreach ($eplug_rss_data as $key => $rs) {
foreach ($rs as $k => $row) {
$this->rssItems[$k]['author'] = $row['author'];
$this->rssItems[$k]['author_email'] = $row['author_email'];
$this->rssItems[$k]['title'] = $row['title'];
if ($row['link']) {
if (stripos($row['link'], 'http') !== FALSE) {
$this->rssItems[$k]['link'] = $row['link'];
} else {
$this->rssItems[$k]['link'] = SITEURLBASE . e_PLUGIN_ABS . $row['link'];
}
}
$this->rssItems[$k]['description'] = $row['description'];
if ($row['enc_url']) {
$this->rssItems[$k]['enc_url'] = SITEURLBASE . e_PLUGIN_ABS . $row['enc_url'] . $row['item_id'];
}
if ($row['enc_leng']) {
$this->rssItems[$k]['enc_leng'] = $row['enc_leng'];
}
if (!empty($eplug_rss['enc_type'])) {
$this->rssItems[$k]['enc_type'] = $this->getmime($eplug_rss['enc_type']);
} elseif ($row['enc_type']) {
$this->rssItems[$k]['enc_type'] = $row['enc_type'];
}
$this->rssItems[$k]['category_name'] = $row['category_name'];
if ($row['category_link']) {
if (stripos($row['category_link'], 'http') !== FALSE) {
$this->rssItems[$k]['category_link'] = $row['category_link'];
} else {
$this->rssItems[$k]['category_link'] = SITEURLBASE . e_PLUGIN_ABS . $row['category_link'];
}
}
if (!empty($row['datestamp'])) {
$this->rssItems[$k]['pubdate'] = $row['datestamp'];
} else {
$this->rssItems[$k]['pubdate'] = time();
}
if ($row['custom']) {
$this->rssItems[$k]['custom'] = $row['custom'];
}
if ($row['media']) {
$this->rssItems[$k]['media'] = $row['media'];
}
}
}
}
}
}
示例8: markBounce
/**
* Handle a bounce report.
* @param string $bounceString - the string from header X-e107-id
* @param string $emailAddress - optional email address string for checks
* @return boolean - TRUE on success, FALSE on failure
*/
public function markBounce($bounceString, $emailAddress = '')
{
$bounceString = trim($bounceString);
$bounceInfo = array('mail_bounce_string' => $bounceString, 'mail_recipient_email' => $emailAddress);
// Ready for event data
$errors = array();
// Log all errors, at least until proven
$vals = explode('/', $bounceString);
// Should get one or four fields
if ($this->debugMode) {
echo "<h4>Bounce String</h4>";
print_a($bounceString);
echo "<h4>Vals</h4>";
print_a($vals);
}
if (!is_numeric($vals[0])) {
$errors[] = 'Bad user ID: ' . $vals[0];
}
$uid = intval($vals[0]);
// User ID (zero is valid)
if (count($vals) == 4) {
if (!is_numeric($vals[1])) {
$errors[] = 'Bad body record: ' . $vals[1];
}
if (!is_numeric($vals[2])) {
$errors[] = 'Bad recipient record: ' . $vals[2];
}
$vals[0] = intval($vals[0]);
$vals[1] = intval($vals[1]);
$vals[2] = intval($vals[2]);
$vals[3] = trim($vals[3]);
$hash = $vals[0] . '/' . $vals[1] . '/' . $vals[2] . '/';
if (md5($hash) != $vals[3]) {
$errors[] = 'Bad md5';
$errors[] = print_r($vals, true);
$errors[] = 'hash:' . md5($hash);
}
if (empty($errors)) {
$this->checkDB(1);
// Look up in mailer DB if no errors so far
if (false === $this->db->gen("SELECT mr.`mail_recipient_id`, mr.`mail_recipient_email`, mr.`mail_recipient_name`, mr.mail_target_info, \n\t\t\t\t\tmc.mail_create_date, mc.mail_start_send, mc.mail_end_send, mc.`mail_title`, mc.`mail_subject`, mc.`mail_creator`, mc.`mail_other` FROM `#mail_recipients` AS mr \n\t\t\t\t\tLEFT JOIN `#mail_content` as mc ON mr.`mail_detail_id` = mc.`mail_source_id`\n\t\t\t\t\t\tWHERE mr.`mail_target_id` = {$vals[2]} AND mc.`mail_source_id` = {$vals[1]}")) {
// Invalid mailer record
$errors[] = 'Not found in DB: ' . $vals[1] . '/' . $vals[2];
}
$row = $this->db->fetch(MYSQL_ASSOC);
$row = $this->dbToBoth($row);
$bounceInfo = $row;
if ($emailAddress && $emailAddress != $row['mail_recipient_email']) {
$errors[] = 'Email address mismatch: ' . $emailAddress . '/' . $row['mail_recipient_email'];
}
if ($uid != $row['mail_recipient_id']) {
$errors[] = 'User ID mismatch: ' . $uid . '/' . $row['mail_recipient_id'];
}
if (count($errors) == 0) {
$bounceInfo['mail_source_id'] = $vals[1];
$bounceInfo['mail_target_id'] = $vals[2];
$bounceInfo['mail_recipient_id'] = $uid;
$bounceInfo['mail_recipient_name'] = $row['mail_recipient_name'];
if (!$this->db->update('mail_content', '`mail_bounce_count` = `mail_bounce_count` + 1 WHERE `mail_source_id` = ' . $vals[1])) {
e107::getAdminLog()->add('Unable to increment bounce-count on mail_source_id=' . $vals[1], $bounceInfo, E_LOG_FATAL, 'BOUNCE', LOG_TO_ROLLING);
}
if (!$this->db->update('mail_recipients', '`mail_status` = ' . MAIL_STATUS_BOUNCED . ' WHERE `mail_target_id` = ' . $vals[2])) {
e107::getAdminLog()->add('Unable to update recipient mail_status to bounce on mail_target_id = ' . $vals[2], $bounceInfo, E_LOG_FATAL, 'BOUNCE', LOG_TO_ROLLING);
}
$addons = array_keys($row['mail_selectors']);
// trigger e_mailout.php addons. 'bounce' method.
foreach ($addons as $plug) {
if ($plug == 'core') {
require_once e_HANDLER . 'user_handler.php';
if ($err = userHandler::userStatusUpdate('bounce', $uid, $emailAddress)) {
}
$errors[] = $err;
} else {
if ($cls = e107::getAddon($plug, 'e_mailout')) {
if (e107::callMethod($cls, 'bounce', $bounceInfo) === false) {
e107::getAdminLog()->add($plug . ' bounce process failed', $bounceInfo, E_LOG_FATAL, 'BOUNCE', LOG_TO_ROLLING);
}
}
}
}
}
// echo e107::getMessage()->render();
// print_a($bounceInfo);
}
} elseif (count($vals) != 1 && count($vals) != 4) {
$errors[] = 'Bad element count: ' . count($vals);
} elseif (!empty($uid) || !empty($emailAddress)) {
// require_once(e_HANDLER.'user_handler.php');
$err = e107::getUserSession()->userStatusUpdate('bounce', $uid, $emailAddress);
if ($err) {
$errors[] = $err;
}
}
if (!empty($errors)) {
//.........这里部分代码省略.........
示例9: menuInstanceParameters
/**
* This one will be greatly extended, allowing menus to offer UI and us
* settings per instance later ($parm variable available for menus - same as shortcode's $parm)
*/
function menuInstanceParameters()
{
if (!vartrue($_GET['parmsId'])) {
return;
}
$id = intval($_GET['parmsId']);
$frm = e107::getForm();
$sql = e107::getDb();
if (!$sql->select("menus", "*", "menu_id=" . $id)) {
$this->menuAddMessage("Couldn't Load Menu", E_MESSAGE_ERROR);
return;
}
$row = $sql->fetch();
$text = "<div style='text-align:center;'>\n\t\t<form id='e-save-form' method='post' action='" . e_SELF . "?lay=" . $this->curLayout . "'>\n <fieldset id='core-menus-parametersform'>\n\t\t<legend>" . MENLAN_44 . " " . $row['menu_name'] . "</legend>\n <table class='table '>\n <colgroup>\n <col class='col-label' />\n <col class='col-control' />\n </colgroup>\n\n\t\t";
if (file_exists(e_PLUGIN . $row['menu_path'] . "e_menu.php")) {
$plug = rtrim($row['menu_path'], '/');
$obj = e107::getAddon($plug, 'e_menu');
if (!is_object($obj)) {
$text .= "<tr><td colspan='2' class='alert alert-danger'>{$plug} object not found. Try re-scanning plugin directories in Tools > Database. </td></tr>";
} else {
$menuName = substr($row['menu_name'], 0, -5);
}
$fields = e107::callMethod($obj, 'config', $menuName);
if (!($form = e107::getAddon($plug, 'e_menu', $plug . "_menu_form"))) {
$form = $frm;
}
$value = e107::unserialize($row['menu_parms']);
if (!empty($fields)) {
foreach ($fields as $k => $v) {
$text .= "<tr><td class='text-left'>" . $v['title'] . "</td>";
$v['writeParms']['class'] = 'e-save';
$i = $k;
if (!empty($v['multilan'])) {
$i = $k . '[' . e_LANGUAGE . ']';
if (isset($value[$k][e_LANGUAGE])) {
$value[$k] = varset($value[$k][e_LANGUAGE], '');
}
}
$text .= "<td class='text-left'>" . $form->renderElement($i, $value[$k], $v) . "</td></tr>";
}
} else {
$text .= "<tr><td colspan='2' class='alert alert-danger'>No Fields Set in " . $row['menu_path'] . "e_menu.php</td></tr>";
}
} else {
$text .= "<tr>\n\t\t\t<td>\n\t\t\t" . MENLAN_45 . "</td>\n\t\t\t<td>\n\t\t\t" . $frm->text('menu_parms', $row['menu_parms'], 900, 'class=e-save&size=xxlarge') . "\n\t\t\t</td>\n\t\t\t</tr>";
}
$text .= "</table>";
/*
$text .= "
<div class='buttons-bar center'>";
$text .= $frm->admin_button('parms_submit', LAN_SAVE, 'update');
$text .= "<input type='hidden' name='menu_id' value='".$id."' />
</div>";
*/
$text .= $frm->hidden('mode', 'parms');
$text .= $frm->hidden('menu_id', $id);
$text .= "\n\t\t</fieldset>\n\t\t</form>\n\t\t</div>";
return $text;
}