Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Userpages for MyBB
#11
Was denn für Felder hinzufügen? Wo und warum?
Zitieren
#12
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 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?
Zitieren
#13
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_profileget_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']).'">&laquo; '.$lang->nav_profile.'</a>';
        
        eval(
"\$page = \"".$templates->get('userpages_content')."\";");
        
output_page($page);
        die();
    }    
}
/*
*    End User Profile
*/ 
Zitieren
#14
keiner? :/
Zitieren
#15
Hallöle zusammen Smile
Gibt es eine Möglichkeit beim Editieren der Userpage einen "Vorschau"-Button einzufügen? Shy Wie quasi bei einer Threaderstellung, Signatur ect, pp.
Zitieren
#16
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&amp;uid={$mybb->user['uid']}&amp;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
Zitieren
#17
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?
Zitieren
#18
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
Zitieren
#19
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?
Zitieren
#20
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
Zitieren