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
Option in "Eigene Profilfelder" hinzufügen
#1
Hallo,
bin gerade dabei ein Plugin zu schreiben, welches erlaubt Profilfelder auszuwählen die dann (sofern vom Benutzer ausgefüllt) im Postbit angezeigt werden sollen.
Leider fehlt mir der Einblick in den Aufbau der Menüs im AdminCP.
Mich an einigen anderen Plugins orientierend habe ich Folgendes erfolglos versucht.

Hook (profile_fields.php):
PHP-Code:
$plugins->add_hook("admin_config_profile_fields_add""fieldsonpostbit_add"); 

Funktion:
PHP-Code:
function fieldsonpostbit_add()
{
    global 
$mybb$lang$form$form_container;
    
    
$lang->load("fieldsonpostbit");
    
    if(
$form_container->_title == $lang->add_new_profile_field)
    {
        
$form_container->output_row($lang->show_on_postbit." <em>*</em>"$lang->show_on_postbit_desc$form->generate_yes_no_radio('showonpostbit'$mybb->input['showonpostbit']));
    }


Es geht schlich darum beim Erstellen eines eigenen Profilfeldes, eine weitere Option im Stile "YES/NO" hinzuzufügen.

Über jede Hilfe wäre ich sehr dankbar.
Helfe wie auch dir geholfen wird.
Zitieren
#2
Das habe ich noch nie gemacht, aber es gibt Plugins, die z.B. eigene Berechtigungen im ACP einfügen, ggf. kannst du schauen, wie es dort funktioniert.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#3
Habe mir bereits 2 angeschaut, werde aber nicht schlau draus.
Trotzdem danke.
Helfe wie auch dir geholfen wird.
Zitieren
#4
Habe die Lösung hier gefunden.

Hooks:
PHP-Code:
$plugins->add_hook("admin_config_profile_fields_begin""fieldsonpostbit_hook");
$plugins->add_hook("admin_config_profile_fields_add""fieldsonpostbit_add");
$plugins->add_hook("admin_config_profile_fields_add_commit""fieldsonpostbit_add_commit");
$plugins->add_hook("admin_config_profile_fields_edit""fieldsonpostbit_edit");
$plugins->add_hook("admin_config_profile_fields_edit_commit""fieldsonpostbit_edit_commit"); 

Funktionen:
PHP-Code:
function fieldsonpostbit_hook()
{
    global 
$plugins;
    
    
$plugins->add_hook("admin_formcontainer_end""fieldsonpostbit_form");
}
function 
fieldsonpostbit_form()
{
    global 
$mybb$lang$form$form_container;
    
    
$lang->load("fieldsonpostbit");
    
    if(
$args['title'] == $lang->min_posts_enabled)
    {
        
$show_profilefield = array(
            
$form_container->output_row($lang->show_on_postbit." <em>*</em>"$lang->show_on_postbit_desc$form->generate_yes_no_radio('showonpostbit'$mybb->input['showonpostbit']))
        );
        
$form_container->output_row($lang->showonpostbit"""<div class=\"user_settings_bit\">".implode("</div><div class=\"user_settings_bit\">"$show_profilefield)."</div>");
    }
}
function 
fieldsonpostbit_add()
{
    global 
$forum_data;
    
    
$forum_data['showonpostbit'] = 1;
}
function 
fieldsonpostbit_add_commit()
{
global 
$db$mybb$fid;

    
$update_array = array(
        
"showonpostbit" => $db->escape_string($mybb->input['showonpostbit']),
    );
    
$db->update_query("profilefields"$update_array"fid = '".$fid."'");
}
function 
fieldsonpostbit_edit()
{
    global 
$forum_data;
    
    
$forum_data['showonpostbit'] = 1;
}
function 
fieldsonpostbit_edit_commit()
{
global 
$db$mybb;

    
$update_array = array(
        
"showonpostbit" => $db->escape_string($mybb->input['showonpostbit']),
    );
    
$db->update_query("profilefields"$update_array"fid = '".intval($mybb->input['fid'])."'");

Helfe wie auch dir geholfen wird.
Zitieren
#5
Hallo ihr Lieben,

ich hab da mal zwei Fragen zum eigenen Profilfeld und hoffe jemand kann mir hier weiterhelfen. Soweit konnte ich alles gut umsetzen (Siehe Anhang). Ich habe jetzt aber das Probleme mit den Sternzeichen welche ich über die eigene Profilfeld Option ins Forum integrieren wollte. Da es ja 12 Sternzeichen gibt müsste ich 12 Auswahl Optionen zur Verfügung stellen, in denen jeweilige User Ihr Sternzeichen auswählen könnten. Zum einen weiß ich nicht wie ich dies bewerkstelligen soll, zum anderen wollte ich die Sternzeichen Icons auch im Profil anzeigen lassen. Das bedeutet, das hier ein Code eingetragen werden müsste der auf die Einstellungen der User reagiert. Wie müsste ich da vorgehen bzw wie mag solch ein Code aussehen?

Mein anderes Problem ist, das ich gerne ein ,,Danke Icon" ins Profilfeld eintragen würde, weiß aber nicht wo ich den Code finde um das zu verlinken. Ich hatte soweit alle Icons integrieren können, nur eben das nicht gefunden. Nach vielen Stunden des Suchens wende ich mich nun an Euch in der Hoffnung auf Hilfe.

LG Torie


Angehängte Dateien Thumbnail(s)
   
Zitieren
#6
Mit den Sternzeichen hab ichs jetzt hin bekommen, bin manchmal echt schusselig Blush Jetzt müsste ich nur noch wissen wie wo der ,,Danke" Code zu finden ist im Template. Hat jemand eine Idee?

LG Torie
Zitieren
#7
Im postbit und postbit_classic solltest Du fündig werden.
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#8
Guten morgen MrBrechreiz,

danke Dir für deine Hilfe und entschuldige meine späte Antwort! Ich hatte in diesen Bereichen ja schon geschaut und dort auch versucht die Image unterzubringen, allerdings ist das ein Code für die Buttons, und genau dort erscheint dann das von mir angezeigte Image was es ja nicht soll. Ich wollte es ja direkt im Profil haben so wie die anderen eben auch, das will nicht funzen weil ich den ollen Code nicht finde. Es gibt zwar noch zwei Code angaben, aber auch die haben nix mit dem Profilfeld zu tun und das Image landet im Nirvana, will heißen, genau unter den Buttons im Zwischenraum Big Grin

LG Torie
Zitieren
#9
Sorry lag an mir, hatte dich falsch verstanden. Suche mal in den globalen Templates nach

thanks_postbit_count

Code:
<div><span class="smalltext">{$lang->thx_thank} {$post['thank_count']}<br />
    {$post['thanked_count']}<br /></span></div>

und füge das image vor {$lang->thx_thank} ein.
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#10
Ich Danke Dir, hat supi geklappt! Wünsche Dir und allen anderen einen erfolgreichen Tag!

LG Torie
Zitieren