MyBB.de Forum
MyCode bearbeiten + Profilfeld im Thread - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Theme-Diskussionen (https://www.mybb.de/forum/forum-84.html)
+--- Thema: MyCode bearbeiten + Profilfeld im Thread (/thread-23925.html)

Seiten: Seiten: 1 2 3


MyCode bearbeiten + Profilfeld im Thread - SCOTTISH. - 14.10.2011

Hallo Gents!

Ich habe zwei Fragen, die mir im Moment großes Kopfzerbrechen in meinem Forum bereiten.

1. Einmal habe ich ein Problem mit der Zitierfunktion bzw. dem Aussehen. Das wollte ich gerne anpassen, musste aber feststellen, dass das außerdem mit dem blockquote im CSS zusammenhängt, was ich mehr als unpraktisch finde, da ich generell viel HTML benutze (das auch schon im Forum erlaubt habe, ja ich kenne die Risiken) und den Tag eben auch anderweitig benutze. Ändere ich aber das blockquote per CSS, ändert sich ja auch die Optik eines Zitat. Daher wollte ich dem Zitat gerne eine andere Klasse verpassen. Nach langer Suche bin ich dann auf diese Doku gestoßen, klick, da frage ich mich, ob ich da nicht auch schon vorhandene Codes ändern kann, dass z.B. das Zitat nicht mehr auf dem blockquote beruht. Vor Codeänderungen scheue ich mich nicht, kann nur nicht alles selbst und brauche da Rat.

2. Ich habe die Profilfelder bzw. testweise erst einmal nur eines in meine postbist_author_user eingebaut. Für alle User habe ich die Klassische Ansicht eingestellt, weil ich die schöner finde und meine User es bisher gewohnt sind. Bei unserer Avatargröße ist alles andere auch nicht sehr hübsch. Ja, soweit klappt auch alles ganz wunderbar. Nur reicht der Inhalt des Profilfeldes über die Spalte mit Ava etc. über den kompletten Beitrag hinaus und verzerrt alles. Nehme ich die andere Ansicht (Ava etc. oberhalb des Beitrages) ist alles normal. Es fehlen sozusagen die automatischen Umbrüche und ein max-width hat bisher keinen Erfolg gebracht, weil dann einfach der Rest nicht angezeigt wurde. Ein Scrollbalken ist für mich an diesem Fall auch keine Alternative. Gibt es da noch andere Lösungsansätze? In unseren Profilfeldern steht nun mal etwas mehr als nur ein Wort...

Link zum Forum: http://test.neverleave.de/index.php

LG


RE: MyCode bearbeiten + Profilfeld im Thread - computexx - 14.10.2011

Hi,

Zu Punkt 2:
Arbeite im Style nicht mit overflow: scrolling; sondern mit white-space: normal; das sollte dein Problem lösen.

Edit:
Auch nach mehrmaligem durchlesen verstehe ich Punkt 1 glaub ich nicht ganz. Du verwendest in Beiträgen HTML Code, das ist mir klar. Du verwendest auch den TAG <blockquote> um Zitate zu präsentieren, möchtest aber, das diese einen anderen Style haben als jene Zitate die du über das Forum markierst (die nur zur Info, meines wissens nach, den selben HTML Tag verwenden)??


RE: MyCode bearbeiten + Profilfeld im Thread - SCOTTISH. - 14.10.2011

Hey!

Cool! Das mit dem Profilfeld hat schon mal geklappt! Super und ein riesen Dankeschön!

So, zum ersten. Ja, ich habe das Talent, umständlich zu umschreiben..
Also, die Zitate werden ja standartmäßig im Forum scheinbar durch ein blockquote optisch dargestellt. Zumindest ist das aus dem CSS und dem Quellcode zu entnehmen. Aber ich benutze den blockquote-tag eben auch "normal" und nicht als Zitat, um einen Einzug von bestimmten Dingen festzulegen. Als das kannte ich bisher den tag nur und wird in meiner vorherigen Forensoftware (wbblite) auch so benutzt. Da wir ein Rollenspiel sind und auch Datenblätter von anderen Foren bei uns posten (die das einfache blockquote teilweise eben beinhalten), wäre es ungünstig, wenn diese dann eben diese Formatierung wegen diesem Zusammenhang vom Zitat und dem blockquote in Kauf nehmen müssen.
Zusammenfassend: Ich möchte nicht, dass meine Zitate sich beim CSS auf das blockquote beziehen und dafür lieber selbst etwas basteln. Ich weiß nur nicht, wo ich das ändern kann.


RE: MyCode bearbeiten + Profilfeld im Thread - computexx - 14.10.2011

(14.10.2011, 13:38)SCOTTISH. schrieb: Hey!

Cool! Das mit dem Profilfeld hat schon mal geklappt! Super und ein riesen Dankeschön!

So, zum ersten. Ja, ich habe das Talent, umständlich zu umschreiben..
Also, die Zitate werden ja standartmäßig im Forum scheinbar durch ein blockquote optisch dargestellt. Zumindest ist das aus dem CSS und dem Quellcode zu entnehmen. Aber ich benutze den blockquote-tag eben auch "normal" und nicht als Zitat, um einen Einzug von bestimmten Dingen festzulegen. Als das kannte ich bisher den tag nur und wird in meiner vorherigen Forensoftware (wbblite) auch so benutzt. Da wir ein Rollenspiel sind und auch Datenblätter von anderen Foren bei uns posten (die das einfache blockquote teilweise eben beinhalten), wäre es ungünstig, wenn diese dann eben diese Formatierung wegen diesem Zusammenhang vom Zitat und dem blockquote in Kauf nehmen müssen.
Zusammenfassend: Ich möchte nicht, dass meine Zitate sich beim CSS auf das blockquote beziehen und dafür lieber selbst etwas basteln. Ich weiß nur nicht, wo ich das ändern kann.

Sehr gerne, wenn ich helfen kann, dann helfe ich auch :-)

Also das ist, denke ich nicht so schwer. Da du ja deinem HTML Tag auch einen Style zuweisen kannst. Einfacher wäre das ganze über den MyBB-Code denn da kannst du alles schon vordefinieren. Faktum ist für mich, das du auf jeden Fall in dem Styesheet 2 blockquote Klassen brauchst.

Beispiel:
Code:
.blockquote_1 {
background: #fff;
}
.blockquote_2 {
background: #000;
}
Je nachdem welches Blockquote du jetzt welcher klasse zuordnen willst, bleibt dir überlassen ... Wenn du eine Klasse dem blockquote zugewiesenn hast, dann kannst du es aufrufen in dem du <blockquote class="blockquote_2"> aufrufen.

Jetzt hoffe ich, dass ich mich klar ausgedrückt habe Big Grin


RE: MyCode bearbeiten + Profilfeld im Thread - SCOTTISH. - 14.10.2011

Ja, das wäre natürlich eine Möglichkeit, aber dennoch hätte ich dann das Problem, dass sämtliche "fremden" Daten von den anderen Foren dann nicht richtig formatiert wären. So gesehen suche ich anch einer Möglichkeit, dem Zitat selbst (quasi wie bei einem eigenen MyCode) eine abgesonderte Klasse zuzuweisen. Das wäre ja nicht das Problem. Ich wüsste nur eben nicht, wo ich die statt dem originalen Zitat ersetzen müsste. Es muss ja in irgendeiner Datei stehen, dass der Zitat-tag sich auf die blockquote-Klasse bezieht. So vielleicht etwas deutlicher?

Dann könnte ich im CSS für das blockquote das so einrichten, dass da nur ein Einzug gemacht wird und für das Zitat ganz unabhängig davon alles geregelt wird Wink


RE: MyCode bearbeiten + Profilfeld im Thread - SCOTTISH. - 14.10.2011

Ich habe mich jetzt zu später Stunde noch einmal genauer in die oben angegebene Doku eingelesen und da eben jenen Teil gefunden:

Code:
{type: 'separator'},
{type: 'button', name: 'mycode', sprite: 'mycode', insert: 'mycode', title: this.options.lang.title_mycode},
           |              |                  |               |                      |
       Typ            ID                 CSS-Klasse      Einzufügender Code     Alternativtext

Also, in der Doku steht ja dass ich das machen muss, wenn ich für ein eigenes myCode einen Button einsetzen will. Könnte ich dann quasi beim Quoteteil, der ja schon vorhanden sein muss, da es den Button dazu gibt, den Teil für die CSS-Klasse ändern?

Code:
{type: 'button', name: 'quote', sprite: 'quote', insert: 'quote', title: this.options.lang.title_quote},

Das steht im Moment in meiner editor.js ... wenn ich nach obigen Muster vorgehe und dann bei "sprite" eine andere KLasse angebe, müsste es doch rein theoretisch funktionieren, oder nicht? Mir fehlt da grade nämlich noch der kleine Schritt, wo das blockquote dann her kommt ^^


RE: MyCode bearbeiten + Profilfeld im Thread - StefanT - 16.10.2011

Der Editor arbeitet ja nicht mit HTML sondern mit BBCode...


RE: MyCode bearbeiten + Profilfeld im Thread - SCOTTISH. - 16.10.2011

Das ist mir klar. Aber so weit ich das weiß, beruhen ja die BBCodes auch auf HTML und das muss ja irgendwo festgelegt sein, oder nicht?


RE: MyCode bearbeiten + Profilfeld im Thread - StefanT - 16.10.2011

Schau mal in der inc/class_parser.php. Wink


RE: MyCode bearbeiten + Profilfeld im Thread - SCOTTISH. - 16.10.2011

Okay, da habe ich soweit alles gefunden und jedes blockquote bei dem Teil zum Zitat gegen "quote1" ausgetauscht, gespeichert und mein CSS angepasst. Allerdings scheint das nicht so zu funktionieren, weil mur noch das Datum und die Uhrzeit der Formierung aus dem CSS folgen... Hier mal ein Bild und die jeweiligen Ausschnitte aus dem CSS und der Datei:


Code:
    /**
    * Parses quote MyCode.
    *
    * @param string The message to be parsed
    * @param boolean Are we formatting as text?
    * @return string The parsed message.
    */
    function mycode_parse_quotes($message, $text_only=false)
    {
        global $lang, $templates, $theme, $mybb;

        // Assign pattern and replace values.
        $pattern = array(
            "#\[quote=([\"']|&quot;|)(.*?)(?:\\1)(.*?)(?:[\"']|&quot;)?\](.*?)\[/quote\](\r\n?|\n?)#esi",
            "#\[quote\](.*?)\[\/quote\](\r\n?|\n?)#si"
        );

        if($text_only == false)
        {
            $replace = array(
                "\$this->mycode_parse_post_quotes('$4','$2$3')",
                "<quote1><cite>$lang->quote</cite>$1</quote1>\n"
            );
        }
        else
        {
            $replace = array(
                "\$this->mycode_parse_post_quotes('$4','$2$3', true)",
                "\n{$lang->quote}\n--\n$1\n--\n"
            );
        }

        do
        {
            $message = preg_replace($pattern, $replace, $message, -1, $count);
        } while($count);

        if($text_only == false)
        {
            $find = array(
                "#(\r\n*|\n*)<\/cite>(\r\n*|\n*)#",
                "#(\r\n*|\n*)<\/quote1>#"
            );

            $replace = array(
                "</cite><br />",
                "</quote1>"
            );
            $message = preg_replace($find, $replace, $message);
        }
        return $message;
    }
    
    /**
    * Parses quotes with post id and/or dateline.
    *
    * @param string The message to be parsed
    * @param string The username to be parsed
    * @param boolean Are we formatting as text?
    * @return string The parsed message.
    */
    function mycode_parse_post_quotes($message, $username, $text_only=false)
    {
        global $lang, $templates, $theme, $mybb;

        $linkback = $date = "";

        $message = trim($message);
        $message = preg_replace("#(^<br(\s?)(\/?)>|<br(\s?)(\/?)>$)#i", "", $message);

        if(!$message) return '';

        $message = str_replace('\"', '"', $message);
        $username = str_replace('\"', '"', $username)."'";
        $delete_quote = true;

        preg_match("#pid=(?:&quot;|\"|')?([0-9]+)[\"']?(?:&quot;|\"|')?#i", $username, $match);
        if(intval($match[1]))
        {
            $pid = intval($match[1]);
            $url = $mybb->settings['bburl']."/".get_post_link($pid)."#pid$pid";
            if(defined("IN_ARCHIVE"))
            {
                $linkback = " <a href=\"{$url}\">[ -> ]</a>";
            }
            else
            {
                eval("\$linkback = \" ".$templates->get("postbit_gotopost", 1, 0)."\";");
            }
            
            $username = preg_replace("#(?:&quot;|\"|')? pid=(?:&quot;|\"|')?[0-9]+[\"']?(?:&quot;|\"|')?#i", '', $username);
            $delete_quote = false;
        }

        unset($match);
        preg_match("#dateline=(?:&quot;|\"|')?([0-9]+)(?:&quot;|\"|')?#i", $username, $match);
        if(intval($match[1]))
        {
            if($match[1] < TIME_NOW)
            {
                $postdate = my_date($mybb->settings['dateformat'], intval($match[1]));
                $posttime = my_date($mybb->settings['timeformat'], intval($match[1]));
                $date = " ({$postdate} {$posttime})";
            }
            $username = preg_replace("#(?:&quot;|\"|')? dateline=(?:&quot;|\"|')?[0-9]+(?:&quot;|\"|')?#i", '', $username);
            $delete_quote = false;
        }

        if($delete_quote)
        {
            $username = my_substr($username, 0, my_strlen($username)-1);
        }

        if($text_only)
        {
            return "\n".htmlspecialchars_uni($username)." $lang->wrote{$date}\n--\n{$message}\n--\n";
        }
        else
        {
            $span = "";
            if(!$delete_quote)
            {
                $span = "<span>{$date}</span>";
            }
            
            return "<quote1><cite>{$span}".htmlspecialchars_uni($username)." $lang->wrote{$linkback}</cite>{$message}</quote1>\n";
        }
    }

Code:
quote1 {
    border-left: 15px solid :#60605D
    border-right: 15px solid :#60605D
    background: #60605D;
    margin: 0;
    padding: 4px; }

quote1 cite {
    font-weight: bold;
    border-left: 15px solid :#60605D
    border-right: 15px solid :#60605D
    background: #60605D;
    font-style: normal;
    display: block;
    margin: 4px 0; }

quote1 cite span {
    background: #60605D;
    float: right;
    font-weight: normal; }

quote1 cite span.highlight {
    background: #60605D;
    float: none;
    font-weight: bold;
    padding-bottom: 0; }