Beiträge: 638
Themen: 92
Registriert seit: 31.08.2010
MyBB-Version: 1.8.11
Was denn für Felder hinzufügen? Wo und warum?
Beiträge: 53
Themen: 9
Registriert seit: 30.05.2012
15.09.2013, 22:18
(Dieser Beitrag wurde zuletzt bearbeitet: 15.09.2013, 22:46 von Libella.)
Also dass man in dem Fenster, wo man seine Userpage bearbeiten kann, weitere Felder hat, die man ausfüllen kann, die dann nachher auf der Seite ausgegeben werden.
Ich bastele ein RPG-Forum und hatte überlegt, die Steckbriefe für die Charaktere so ausgeben zu lassen.. da es ja einige Menschen gibt, die mit HTML-Steckbriefvorlage einige Probleme haben. Also dass dann dort so Felder, wie z. B. Name, Alter, Stärken, Schwächen, etc. auftauchen.
edit: ich brauch dafür jetzt auch nicht die Möglichkeit, das alles automatisch per Adminbereich hinzufügen zu können, also wie ich über den phpmyadmin Felder zur Tabelle hinzufügen kann, weiß ich..
ich bräuchte glaube ich, "nur" den Hinweis, wie ich im Template das Formular so bearbeiten kann, dass die jeweiligen Felder mit den Feldern in der Datenbank verknüpft sind. Und, was ich in der PHP noch verändern muss, damit die dann auch in der Userpage ausgegeben werden ^^ und möglichst eventuell auch in der Postbit, und wo ich die Infos eben noch gebrauchen könnte .. ^^
Also THEORETISCH würde das mit den Profilfeldern, die man über den Adminbereich hinzufügen kann, auch funktionieren.. Nur hätte ich diese Felder zum Bearbeiten dann schon lieber in einem eigenen Bereich im UserCP und nicht direkt unter "Profil ändern".. ich fänd das sonst zu unübersichtlich..
ich hoffe das war jetzt irgendwie verständlich xD
edit2: Vielleicht ist es auch einfacher, einfach die Profilfelder in so einen Extrabereich zu verschieben ![Big Grin Big Grin](https://www.mybb.de/forum/images/smilies/biggrin.gif) Das würde mir natürlich auch reichen. Allerdings müsste diese "If-Abfrage" a la "Wenn 'userpage' leer, dann keine Userpage" irgendwie abgeschaltet werden oO
edit3: Achja und die Variable $userpagelink würde ich gerne ins Postbit setzen.. das funktioniert auch noch nicht so ganz. Vermutlich, weil die Variable nirgends definiert ist.. wo müsste ich das denn hier machen?
Beiträge: 53
Themen: 9
Registriert seit: 30.05.2012
Ich hab mir das jetzt mal selbst angeschaut, umgebaut und rumgebastelt. Teilweise funktionierts nu auch. Aber nicht alle Felder funktionieren, obwohl die eigentlich alle gleich definiert sind. Könnt ihr mir vielleicht sagen, was mein Fehler ist?
Die Felder " steckbrief_bedeutung", " steckbrief_spitzname", und " steckbrief_alter" funktionieren, die anderen nicht..
" steckbrief_alter_einheit", " steckbrief_alter_bday1", " steckbrief_alter_bday2" und " steckbrief_alter_bday3" sind selectfelder, " steckbrief_name" ist ebenfalls ein Inputfeld, wie die anderen funktionierenden.
Ich hab das jetzt mal testweise nur im ersten Teil des Steckbriefes gemacht..
Hier sind die aktuellen Dateien:
Userpages PHP: http://tdw.bplaced.net/test/userpages.txt
Steckbriefformular Template: http://tdw.bplaced.net/test/userpages_usercp_main.txt
Steckbriefausgabe Template: http://tdw.bplaced.net/test/userpages_content.txt
In der Datenbank sind folgende Felder alle komplett gleich angelegt:
Screenshot Datenbanktabelle: http://abload.de/img/2013-10-12_10258kuim.png
Die relevanten Zeilen in der UserCP sind wohl folgende:
PHP-Code: /* * UserCP * This function handles everything else related to the UserCP */ $plugins->add_hook("usercp_start", "userpages_usercp"); function userpages_usercp() { global $mybb, $db, $lang, $cache, $page, $templates, $theme, $headerinclude, $header, $footer, $usercpnav, $smilieinserter, $codebuttons, $currentuserpage, $headtable, $sidetable;
$lang->load('userpages'); $usergroups_cache = $cache->read("usergroups"); if ($mybb->input['action'] == "edituserpage") { add_breadcrumb($lang->nav_usercp, "usercp.php"); add_breadcrumb($lang->changeuserpage, "usercp.php?action=edituserpage"); if (!$usergroups_cache[$mybb->user['usergroup']]['canuserpage'] || !$usergroups_cache[$mybb->user['usergroup']]['canuserpageedit']) { error_no_permission(); } $smilieinserter = build_clickable_smilies(); $codebuttons = build_mycode_inserter("userpage_content"); $currentuserpage = htmlspecialchars($db->fetch_field($db->simple_select("users", "userpage", "steckbrief_name", "steckbrief_bedeutung", "steckbrief_spitzname", "steckbrief_alter", "steckbrief_alter_einheit", "steckbrief_bday1", "steckbrief_bday2", "steckbrief_bday3", "uid = ".$mybb->user['uid']), "userpage")); eval("\$page = \"".$templates->get('userpages_usercp_main')."\";"); output_page($page); die(); } elseif ($mybb->input['action'] == "edituserpage_do" && $mybb->request_method == "post") { if (!$usergroups_cache[$mybb->user['usergroup']]['canuserpage'] || !$usergroups_cache[$mybb->user['usergroup']]['canuserpageedit']) { error_no_permission(); } verify_post_check($mybb->input['my_post_key']); $updatequery = array( 'userpage' => $db->escape_string(trim($mybb->input['userpage_content'])), 'steckbrief_name' => $db->escape_string(trim($mybb->input['steckbrief_name'])), 'steckbrief_bedeutung' => $db->escape_string(trim($mybb->input['steckbrief_bedeutung'])), 'steckbrief_spitzname' => $db->escape_string(trim($mybb->input['steckbrief_spitzname'])), 'steckbrief_bedeutung' => $db->escape_string(trim($mybb->input['steckbrief_bedeutung'])), 'steckbrief_alter' => $db->escape_string(trim($mybb->input['steckbrief_alter'])), 'steckbrief_alter_einheit' => $db->escape_string(trim($mybb->input['steckbrief_alter_einheit'])), 'steckbrief_bday1' => $db->escape_string(trim($mybb->input['steckbrief_bday1'])), 'steckbrief_bday2' => $db->escape_string(trim($mybb->input['steckbrief_bday2'])), 'steckbrief_bday3' => $db->escape_string(trim($mybb->input['steckbrief_bday3'])) ); if ($db->update_query("users", $updatequery, "uid = ".$mybb->user['uid'])) { redirect("usercp.php?action=edituserpage", $lang->userpage_updated); } else { redirect("usercp.php?action=edituserpage", $lang->userpage_notpdated); } } } /* * End UserCP */
/* * ModCP * This function manages everything related to Userpages in the ModCP */
// DAS IST JA ÄHNLICH WIE BEIM USERCP.. /* * End ModCP */
/* * User Profile * This is the main function that displays the actual Userpage */ $plugins->add_hook("member_profile_start", "userpages_main"); function userpages_main() { global $mybb, $db, $memprofile, $lang, $cache, $userpage_parser, $templates, $theme, $headerinclude, $header, $footer, $page, $parser, $userpagelink, $headtable, $sidetable; $lang->load('userpages'); $usergroups_cache = $cache->read("usergroups"); $memprofile = $db->fetch_array($db->simple_select("users", "userpage, username, steckbrief_name, steckbrief_bedeutung, steckbrief_spitzname, steckbrief_alter, steckbrief_alter_einheit, steckbrief_bday1, steckbrief_bday2, steckbrief_bday3, uid", "uid = ".intval($mybb->input['uid'])), "userpage"); if ($memprofile['userpage'] !== "") { if ($mybb->settings['seourls'] == "yes" || ($mybb->settings['seourls'] == "auto" && $_SERVER['SEO_SUPPORT'] == 1)) { $sep = "?"; } else { $sep = "&"; }
$userpagelink = '<span class="smalltext"><a href="'.get_profile_link(intval($mybb->input['uid'])).$sep.'area=userpage">'.$lang->sprintf($lang->viewuserpage, $memprofile['username']).'</a></span><br />'; } if ($mybb->input['area'] == "userpage") { if (!$usergroups_cache[$mybb->user['usergroup']]['canuserpage']) { error_no_permission(); }
$lang->nav_profile = $lang->sprintf($lang->nav_profile, $memprofile['username']); $lang->viewinguserpage = $lang->sprintf($lang->viewinguserpage, $memprofile['username']);
add_breadcrumb($lang->nav_profile, get_profile_link($memprofile['uid'])); add_breadcrumb($lang->viewinguserpage);
$options = array( "allow_html" => $mybb->settings['userpages_html_active'], "allow_mycode" => $mybb->settings['userpages_mycode_active'], "allow_smilies" => 1, "allow_imgcode" => $mybb->settings['userpages_images_active'], "filter_badwords" => $mybb->settings['userpages_badwords_active'], "nl2br" => 1, "allow_videocode" => $mybb->settings['userpages_videos_active'], "me_username" => $memprofile['username'], ); $memprofile['userpage'] = $parser->parse_message($memprofile['userpage'], $options); $memprofile['view_full_profile'] = '<a href="'.get_profile_link($memprofile['uid']).'">« '.$lang->nav_profile.'</a>'; eval("\$page = \"".$templates->get('userpages_content')."\";"); output_page($page); die(); } } /* * End User Profile */
Beiträge: 53
Themen: 9
Registriert seit: 30.05.2012
Beiträge: 103
Themen: 18
Registriert seit: 27.02.2012
Hallöle zusammen ![Smile Smile](https://www.mybb.de/forum/images/smilies/smile.gif)
Gibt es eine Möglichkeit beim Editieren der Userpage einen "Vorschau"-Button einzufügen? ![Shy Shy](https://www.mybb.de/forum/images/smilies/shy.gif) Wie quasi bei einer Threaderstellung, Signatur ect, pp.
Beiträge: 8.516
Themen: 59
Registriert seit: 20.04.2010
MyBB-Version: 1.8*
25.07.2014, 20:58
(Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2014, 21:13 von MrBrechreiz.)
Das wird so einfach nicht umzusetzen sein, da diese Funktion dem Plugin erst mitgegeben werden muss.
Nachtrag:
Öffne in den Globale Templates das userpages_usercp_main Template und Suche nach
Code: <input type="submit" value="{$lang->saveuserpage}" name="{$lang->saveuserpage}" class="button" />
füge darunter dies ein
Code: <a href="member.php?action=profile&uid={$mybb->user['uid']}&area=userpage">Visit {$mybb->user['username']}'s userpage!</a>
Somit wird Dir der Link zur Userpage ausgegeben. Ist jetzt zwar nicht das was Du wolltest, ist aber eine kleine Hilfe um schneller sich die Seite zu betrachten.
Mit freundlichen Grüßen
MrBrechreiz
Beiträge: 182
Themen: 27
Registriert seit: 09.08.2013
MyBB-Version: 1.8.6
Hallo,
wäre es auch möglich, mehr als eine Userpage zu machen?
Also, dass man das nach Kategorien sortiert und nicht einfach alles untereinander hat?
Beiträge: 8.516
Themen: 59
Registriert seit: 20.04.2010
MyBB-Version: 1.8*
Verstehe nicht ganz deine Frage. Dieses Plugin ermöglicht es dem User NUR eine Seite zu erstellen. Welchen Content er dabei einträgt, kann sehr unterschiedlich sein.
Mit freundlichen Grüßen
MrBrechreiz
Beiträge: 182
Themen: 27
Registriert seit: 09.08.2013
MyBB-Version: 1.8.6
Ja, genau, eine Seite, aber ich möchte gerne, dass der User mehrere Seiten erstellen kann...
Ich kann ja nicht dem User vorgeben, dass er in Tab/Kategorie 1 dies schreibt, in Tab/Kategorie 2 das.
Mehrfach installieren kann man das Plugin ja nicht, oder?
Beiträge: 8.516
Themen: 59
Registriert seit: 20.04.2010
MyBB-Version: 1.8*
Würde dies den Sinn des Plugins nicht verfehlen ? Der Autor hatte sich dabei schon etwas gedacht, nur eine Seite den Usern erstellen zu lassen.
Warum sollte es denn mehrere Seiten geben ? Welchen Content soll dies beinhalten, weil es mehrere Seiten werden sollen ?
Mit freundlichen Grüßen
MrBrechreiz
|