$template->assign_block_vars('col', array()); } // count how many cols in the panel $col = 1; @reset($user_maps[$maps[$i]]['fields']); while (list($field_name, $field_data) = @each($user_maps[$maps[$i]]['fields'])) { if ($field_data['leg'] && ($field_data['img'] || $field_data['txt'])) { $col++; $col++; break; } } // panel title $title = ''; if (is_string($user_maps[$maps[$i]]['title'])) { $title = mods_settings_get_lang($user_maps[$maps[$i]]['title']); } else { $user_maps['_temp'] = array(); $user_maps['_temp']['fields'] = $user_maps[$maps[$i]]['title']; $title .= pcp_output_panel('_temp', $view_userdata); } $template->assign_block_vars('col.panel', array('SPAN' => $col, 'TITLE' => $title)); if (!$split) { $template->assign_block_vars('col.panel.linefeed', array()); } // panel field @reset($user_maps[$maps[$i]]['fields']); while (list($field_name, $field_data) = @each($user_maps[$maps[$i]]['fields'])) { if (substr($field_name, 0, 4) == '[lf]') { $template->assign_block_vars('col.panel.row', array()); $template->assign_block_vars('col.panel.row.linefeed', array());
} break; } // overwrite user choice $override = ''; if (!empty($input) && !empty($field['user']) && isset($userdata[$field['user']])) { $override = ''; @reset($list_yes_no); while (list($key, $val) = @each($list_yes_no)) { $selected = $config[$field_name . '_over'] == $val ? ' checked="checked"' : ''; $l_key = mods_settings_get_lang($key); $override .= '<input type="radio" name="' . $field_name . '_over' . '" value="' . $val . '"' . $selected . ' />' . $l_key . ' '; } $override = '<hr />' . $lang['Override_user_choices'] . ': ' . $override; } $explain = !empty($field['explain']) ? '<br />' . mods_settings_get_lang($field['explain']) : ''; if (!empty($field['action'])) { $explain .= '<br /><a href="' . append_sid('./admin_' . strtolower($mod_name) . '.' . $phpEx) . '" onClick="if(document.forms[0].' . $field_name . '.value != \'' . $config[$field_name] . '\') { alert(\'The field is modified. Please submit your settings first\'); return false; } else return true;">' . mods_settings_get_lang($field['action']) . '</a>'; } // dump to template $template->assign_block_vars('field', array('L_NAME' => mods_settings_get_lang($field['lang_key']), 'L_EXPLAIN' => $explain, 'INPUT' => $input, 'OVERRIDE' => $override)); } // system $s_hidden_fields = ''; $s_hidden_fields .= '<input type="hidden" name="menu_id" value="' . $menu_id . '" />'; $s_hidden_fields .= '<input type="hidden" name="mod_id" value="' . $mod_id . '" />'; $s_hidden_fields .= '<input type="hidden" name="sub_id" value="' . $sub_id . '" />'; $template->assign_vars(array('S_ACTION' => append_sid("./admin_board_extend.{$phpEx}"), 'S_HIDDEN_FIELDS' => $s_hidden_fields)); // footer $template->pparse("body"); include './page_footer_admin.' . $phpEx;
case 'INT': $input = '<input type="text" name="' . $user_field . '" maxlength="13" size="11" class="post" value="' . $view_userdata[$user_field] . '" />'; break; case 'VARCHAR': case 'HTMLVARCHAR': $input = '<input type="text" name="' . $user_field . '" maxlength="255" size="45" class="post" value="' . $view_userdata[$user_field] . '" />'; break; case 'TEXT': case 'HTMLTEXT': $input = '<textarea rows="5" cols="45" wrap="virtual" name="' . $user_field . '" class="post">' . $view_userdata[$user_field] . '</textarea>'; break; default: $input = ''; if (!empty($field['get_func']) && function_exists($field['get_func'])) { $input = $field['get_func']($user_field, $view_userdata[$user_field]); } break; } // dump to template $template->assign_block_vars('field', array('L_NAME' => mods_settings_get_lang($field['lang_key']), 'L_EXPLAIN' => !empty($field['explain']) ? '<br />' . mods_settings_get_lang($field['explain']) : '', 'INPUT' => $input)); } } // system $s_hidden_fields .= '<input type="hidden" name="mod_id" value="' . $mod_id . '" />'; $s_hidden_fields .= '<input type="hidden" name="mod_sub_id" value="' . $sub_id . '" />'; $s_hidden_fields .= '<input type="hidden" name="set" value="add" />'; $s_hidden_fields .= '<input type="hidden" name="submit" value="1" />'; $template->assign_vars(array('S_PROFILCP_ACTION' => append_sid("profile.{$phpEx}"), 'S_HIDDEN_FIELDS' => $s_hidden_fields)); // page $template->pparse('body'); }
function pcp_output($field_name, $view_userdata, $map_name = '', $legend_only = false) { global $board_config, $phpbb_root_path, $phpEx, $lang, $images, $userdata; global $values_list, $tables_linked, $classes_fields, $user_maps, $user_fields; $res = ''; // no field, exit if (empty($field_name)) { return ''; } // fix user id $user_id = $userdata['user_id']; if (!$userdata['session_logged_in']) { $user_id = ANONYMOUS; } // values overwritten in maps if (!empty($user_maps[$map_name]['fields'][$field_name])) { @reset($user_maps[$map_name]['fields'][$field_name]); while (list($field_def, $field_def_value) = @each($user_maps[$map_name]['fields'][$field_name])) { $user_fields[$field_name][$field_def] = $field_def_value; } } // get field def $field_data = array(); if (isset($user_fields[$field_name])) { $field_data = $user_fields[$field_name]; } // default values if (empty($field_data['lang_key'])) { $field_data['lang_key'] = ucfirst($field_name); } if (empty($field_data['class'])) { $field_data['class'] = 'generic'; } if (empty($field_data['type'])) { $field_data['type'] = 'VARCHAR'; } // legend only if ($legend_only) { return mods_settings_get_lang($field_data['lang_key']); } // get class def $class_data = array(); if (isset($classes_fields[$field_data['class']])) { $class_data = $classes_fields[$field_data['class']]; } // check the data classes if (!pcp_get_class_check($field_data['class'], $view_userdata)) { return ''; } // process special display if (!empty($field_data['dsp_func'])) { $func = $field_data['dsp_func']; $res = function_exists($func) ? $func($field_name, $view_userdata, $map_name) : $lang['PCP_err_field_dsp_func_unknown']; } else { // value $txt = ''; $img = ''; $lnk = $field_data['link']; $res = ''; $constant_link = $field_data['lnk'] && !isset($view_userdata[$field_name]) && ($field_data['txt'] && !empty($field_data['title']) || $field_data['img'] && !empty($field_data['image'])); if ($view_userdata['user_id'] != ANONYMOUS && (!empty($view_userdata[$field_name]) || $field_data['leg'] && !$field_data['txt'] && !$field_data['img'] || $constant_link)) { $title = isset($field_data['title']) ? mods_settings_get_lang($field_data['title']) : $view_userdata[$field_name]; $alt = mods_settings_get_lang($field_data['lang_key']); switch ($field_data['type']) { case 'DATE': $txt = !empty($view_userdata[$field_name]) ? create_date($lang['DATE_FORMAT'], $view_userdata[$field_name], $userdata['user_timezone']) : ''; $img .= isset($images[$field_data['image']]) ? '<img src="' . $images[$field_data['image']] . '" border="0" alt="' . $alt . '" title="' . $title . '" />' : ''; break; case 'DATETIME': $txt = !empty($view_userdata[$field_name]) ? create_date($userdata['user_dateformat'], $view_userdata[$field_name], $userdata['user_timezone']) : ''; $img .= isset($images[$field_data['image']]) ? '<img src="' . $images[$field_data['image']] . '" border="0" alt="' . $alt . '" title="' . $title . '" />' : ''; break; case 'BIRTHDAY': $pm_display = pcp_get_class_check('pm', $view_userdata); if (!empty($view_userdata[$field_name])) { $temp_url = $pm_display ? append_sid("./privmsg.{$phpEx}?mode=post&" . POST_USERS_URL . '=' . $view_userdata['user_id']) : ''; $txt = create_birthday_date($lang['DATE_FORMAT'], $view_userdata[$field_name], $userdata['user_timezone']); $img = intval(substr($view_userdata[$field_name], 4, 4)) == date('md', cal_date(time(), $board_config['board_timezone'])) ? $pm_display ? '<a href="' . $temp_url . '"><img src="' . $images['icon_birthday'] . '" border="0" align="absbottom" alt="' . $lang['Happy_birthday'] . '" title="' . $lang['Happy_birthday'] . '" /></a>' : '<img src="' . $images['icon_birthday'] . '" border="0" align="absbottom" alt="' . $lang['Happy_birthday'] . '" title="' . $lang['Happy_birthday'] . '" />' : ''; } break; default: $txt = $view_userdata[$field_name]; if ($field_data['lnk'] && !isset($view_userdata[$field_name])) { $txt = $title; } $img .= isset($images[$field_data['image']]) ? '<img src="' . $images[$field_data['image']] . '" border="0" alt="' . $alt . '" title="' . $title . '" />' : ''; break; } // res $res = pcp_output_format($field_name, $txt, $img, $map_name, $lnk, $view_userdata); } } return $res; }