SMF HELP!

SMF Help! - For Users SMF/TP => Mods - Problemy, Integracje, Funkcjonalność => Wątek zaczęty przez: Draco 08.06.2009 21:55:12



Tytuł: PostPrefix - pogrubienie lub kolorowanie prefixu
Wiadomość wysłana przez: Draco 08.06.2009 21:55:12
No więc mod PostPrefix. Fajna sprawa jednak nie do końca rozwiązana. Ponieważ prefix przyjmuje kolor danego thema i "zlewa" się z kolorem tematu, jak widać na poniższym screenie:

(http://poligon.ricoroco.com/fora/foto/uploads/5360b9fb93.jpg)

Bardzo przydałoby się możliwość kolorowania prefixu lub przynajmniej pogrubienia go, gdyż nie wygląda to ładnie a tak by było czysto i przy większej ilości prefixów w tematach będzie to przejrzyście. Dla mnie idealnym rozwiązaniem byłoby kolorowanie prefixu - osobny kolor dla osobnego prefixu.

Nie chce iść na łatwiznę i prosić o gotowe rozwiazanie  ;) Ale przydałaby się wskazówka co i gdzie pozmieniać  :crazy:

Wrzucam tutaj kod instalki pobranej stąd tłumaczenia K@milo:

GeSHi -› Code: [select]
<modification xmlns="http://www.simplemachines.org/xml/modification" xmlns:smf="http://www.simplemachines.org/">
    <id>jaybachatero:post-prefix</id>
    <version>1.1</version>

    <file name="$sourcedir/Post.php">
        <operation>
            <search position="before"><![CDATA[
    // At about this point, we&#39;re posting and that&#39;s that.
    ignore_user_abort(true);
    @set_time_limit(300);
]]></search>
            <add><![CDATA[

    //This is for the prefix.
    if (!empty($_POST[&#39;post_prefix&#39;]))
        $_POST[&#39;subject&#39;] = $_POST[&#39;post_prefix&#39;] . &#39;: &#39; . $_POST[&#39;subject&#39;];
]]></add>
        </operation>
    </file>

    <file name="$sourcedir/ManagePosts.php">
        <operation>
            <search position="after"><![CDATA[
        // Update the actual settings.
        updateSettings(array(
            &#39;removeNestedQuotes&#39; => empty($_POST[&#39;removeNestedQuotes&#39;]) ? &#39;0&#39; : &#39;1&#39;,
]]></search>
            <add><![CDATA[
        //Â The boards for post_prefix
        if (in_array(0, $_POST[&#39;post_prefix_boards&#39;]))
            $_POST[&#39;post_prefix_boards&#39;] = 0;
        else
            $_POST[&#39;post_prefix_boards&#39;] = implode(&#39;,&#39;, $_POST[&#39;post_prefix_boards&#39;]);

        // Fix UTF-8 stuff.
        $_POST[&#39;post_prefix&#39;] = preg_replace(&#39;~&amp;#(\d{4,5}|[2-9]\d{2,4}|1[2-9]\d);~&#39;, &#39;&#38;#$1;&#39;, $_POST[&#39;post_prefix&#39;]);
        $_POST[&#39;post_prefix&#39;] = preg_replace(&#39;~&(#\d*)?$~&#39;, &#39;&#39;, $_POST[&#39;post_prefix&#39;]);
]]></add>
        </operation>

        <operation>
            <search position="before"><![CDATA[
            &#39;edit_disable_time&#39; => empty($_POST[&#39;edit_disable_time&#39;]) ? &#39;0&#39; : (int) $_POST[&#39;edit_disable_time&#39;],
]]></search>
            <add><![CDATA[          &#39;post_prefix&#39; => htmlspecialchars($_POST[&#39;post_prefix&#39;], ENT_QUOTES),
            &#39;post_prefix_boards&#39; => $_POST[&#39;post_prefix_boards&#39;],
]]></add>
        </operation>

        <operation>
            <search position="before"><![CDATA[ $context[&#39;page_title&#39;] = $txt[&#39;manageposts_settings&#39;];
]]></search>
            <add><![CDATA[
    //Load the jump to data.
    loadJumpTo();
]]></add>
        </operation>

        <operation>
            <search position="after"><![CDATA[  // Check if your PHP is able to use spell checking.
]]></search>
            <add><![CDATA[
    // Explode post_prefix boards
    if (!empty($modSettings[&#39;post_prefix_boards&#39;]) && $modSettings[&#39;post_prefix_boards&#39;] != &#39;0&#39;)
        $modSettings[&#39;post_prefix_boards&#39;] = explode(&#39;,&#39;, $modSettings[&#39;post_prefix_boards&#39;]);
]]></add>
        </operation>
    </file>

    <file name="$sourcedir/ManagePermissions.php">
        <operation>
            <search position="before"><![CDATA[
                &#39;karma_edit&#39; => false,
]]></search>
            <add><![CDATA[
                &#39;post_prefix&#39; => false,
]]></add>
        </operation>
    </file>

    <file name="$themedir/Admin.template.php">
        <operation>
            <search position="replace"><![CDATA[
                <td valign="top">
                    <input type="text" name="edit_disable_time" id="edit_disable_time_input" value="&#39;, empty($modSettings[&#39;edit_disable_time&#39;]) ? &#39;0&#39; : $modSettings[&#39;edit_disable_time&#39;], &#39;" size="5" /> &#39;, $txt[&#39;manageposts_minutes&#39;], &#39;
                </td>
            </tr><tr class="windowbg2">
                <td align="right" colspan="2">
                    <input type="submit" name="save_settings" value="&#39;, $txt[&#39;manageposts_settings_submit&#39;], &#39;" />
                </td>
            </tr>
]]></search>
            <add><![CDATA[
                <td valign="top">
                    <input type="text" name="edit_disable_time" id="edit_disable_time_input" value="&#39;, empty($modSettings[&#39;edit_disable_time&#39;]) ? &#39;0&#39; : $modSettings[&#39;edit_disable_time&#39;], &#39;" size="5" /> &#39;, $txt[&#39;manageposts_minutes&#39;], &#39;
                </td>
            </tr><tr class="windowbg2">
                <td colspan="2"><hr /></td>
            </tr><tr class="windowbg2">
                <th width="50%" align="right">
                    <label for="poast_prefix">&#39;, $txt[&#39;post_prefix&#39;], &#39;</label>:
                    <div class="smalltext" style="font-weight: normal;">&#39;, $txt[&#39;post_prefix_note&#39;], &#39;</div>
                </th>
                <td valign="top">
                    <input type="text" name="post_prefix" id="post_prefix" value="&#39;, empty($modSettings[&#39;post_prefix&#39;]) ? &#39;&#39; : $modSettings[&#39;post_prefix&#39;], &#39;" size="30" />
                </td>
            </tr><tr class="windowbg2">
                <th width="50%" align="right" valign="top">
                    <label for="post_prefix_boards">&#39; ,$txt[&#39;post_prefix_boards&#39;], &#39;:<br /></label>
                    <span class="smalltext" style="font-weight: normal;">&#39; ,$txt[&#39;post_prefix_boards_desc&#39;], &#39;</span>
                </th>
                <td>
                    <select name="post_prefix_boards[]" id="post_prefix_boards" size="10" multiple="multiple">;
                        <option value="0" &#39; .(isset($modSettings[&#39;post_prefix_boards&#39;]) && $modSettings[&#39;post_prefix_boards&#39;] == 0 ? &#39;selected="selected"&#39; : &#39;&#39;). &#39;>&#39; .$txt[&#39;post_prefix_boards_all&#39;]. &#39;</option>&#39;;
                foreach ($context[&#39;jump_to&#39;] as $category)
                {
                    echo &#39;
                        <option disabled="disabled">----------------------------------------------------</option>
                        <option disabled="disabled">&#39;, $category[&#39;name&#39;], &#39;</option>
                        <option disabled="disabled">----------------------------------------------------</option>&#39;;
                    foreach ($category[&#39;boards&#39;] as $board)
                        echo &#39;
                        <option value="&#39; .$board[&#39;id&#39;]. &#39;" &#39; .(isset($modSettings[&#39;post_prefix_boards&#39;]) && is_array($modSettings[&#39;post_prefix_boards&#39;]) ? in_array($board[&#39;id&#39;], $modSettings[&#39;post_prefix_boards&#39;]) ? &#39;selected="selected"&#39; : &#39;&#39; : &#39;&#39;). &#39;> &#39; . str_repeat(&#39;&nbsp;&nbsp;&nbsp; &#39;, $board[&#39;child_level&#39;]) . &#39;|--- &#39; . $board[&#39;name&#39;] . &#39;</option>&#39;;
                }
            echo &#39;
                    </select>
                </td>
            </tr><tr class="windowbg2">
                <td align="right" colspan="2">
                    <input type="submit" name="save_settings" value="&#39;, $txt[&#39;manageposts_settings_submit&#39;], &#39;" />
                </td>
            </tr>
]]></add>
        </operation>
    </file>

    <file name="$themedir/Post.template.php">
        <operation>
            <search position="replace"><![CDATA[
    echo &#39;
                            <tr>
                                <td align="right" style="font-weight: bold;&#39;, isset($context[&#39;post_error&#39;][&#39;no_subject&#39;]) ? &#39;color: red;&#39; : &#39;&#39;, &#39;" id="caption_subject">
                                    &#39;, $txt[70], &#39;:
                                </td>
                                <td>
                                    <input type="text" name="subject"&#39;, $context[&#39;subject&#39;] == &#39;&#39; ? &#39;&#39; : &#39; value="&#39; . $context[&#39;subject&#39;] . &#39;"&#39;, &#39; tabindex="&#39;, $context[&#39;tabindex&#39;]++, &#39;" size="80" maxlength="80" />
                                </td>
                            </tr>
]]></search>
            <add><![CDATA[
    if (allowedTo(&#39;post_prefix&#39;))
    {
    echo &#39;
                            <tr>
                                <td align="right" style="font-weight: bold;" id="post_prefix">
                                    &#39;, $txt[&#39;post_prefix&#39;], &#39;:
                                </td>
                                <td>
                                    <select name="post_prefix" id="post_prefix">
                                        <option value="" />&#39;;

                                    $post_prefix = explode(&#39;,&#39;, $modSettings[&#39;post_prefix&#39;]);
                                    foreach ($post_prefix as $prefix)
    echo &#39;
                                        <option value="&#39;, ltrim($prefix), &#39;" >&#39;, ltrim($prefix), &#39;</option>&#39;;
    echo &#39;
                                    </select>
                                </td>
                            </tr>&#39;;
    }
    echo &#39;
                            <tr>
                                <td align="right" style="font-weight: bold;&#39;, isset($context[&#39;post_error&#39;][&#39;no_subject&#39;]) ? &#39;color: red;&#39; : &#39;&#39;, &#39;" id="caption_subject">
                                    &#39;, $txt[70], &#39;:
                                </td>
                                <td>
                                    <input type="text" name="subject"&#39;, $context[&#39;subject&#39;] == &#39;&#39; ? &#39;&#39; : &#39; value="&#39; . $context[&#39;subject&#39;] . &#39;"&#39;, &#39; tabindex="&#39;, $context[&#39;tabindex&#39;]++, &#39;" size="80" maxlength="80" />
                                </td>
                            </tr>
]]></add>
        </operation>
    </file>

    <file name="$languagedir/Admin.polish.php">
        <operation>
            <search position="before"><![CDATA[
$txt[&#39;edit_disable_time_zero&#39;] = &#39;0 wyłączone&#39;;
]]></search>
            <add><![CDATA[
$txt[&#39;post_prefix&#39;] = &#39;Lista prefixow przed dodaniem postu.&#39;;
$txt[&#39;post_prefix_note&#39;] = &#39;Oddziel każdy prefix przecinkiem (<b>,</b>)&#39;;
$txt[&#39;post_prefix_boards&#39;] = &#39;Działy gdzie ma widnieć prefix&#39;;
$txt[&#39;post_prefix_boards_desc&#39;] = &#39;Zaznacz działy aby pokazać prefix.&#39;;
$txt[&#39;post_prefix_boards_all&#39;] = &#39;Wszystkie działy&#39;;

]]></add>
        </operation>
    </file>

    <file name="$languagedir/Post.polish.php">
        <operation>
            <search position="end" />
            <add><![CDATA[
$txt[&#39;post_prefix&#39;] = &#39;Prefix&#39;;
]]></add>
        </operation>
    </file>

    <file name="$languagedir/ManagePermissions.polish.php">
        <operation>
            <search position="end" />
            <add><![CDATA[

//PostPrefix permissions.
$txt[&#39;permissionname_post_prefix&#39;] = &#39;Dodaj prefix&#39;;
$txt[&#39;permissionhelp_post_prefix&#39;] = &#39;Jesli właczysz pozwolenie dla tej grup/y, bedzie/a mogli wybrac/zaznaczyc prefix dla swojego tematu.&#39;;
]]></add>
        </operation>
    </file>
</modification>
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.054s | speed:168.22 KB/s



Za wszelkie wskazówki THX z góry  :drinks:


Tytuł: Odp: PostPrefix - pogrubienie lub kolorowanie prefixu
Wiadomość wysłana przez: roco 10.06.2009 22:51:45
Cześć Draco! :)

Sorka balowałem 2 dni hehe

OK. widzę ten kod.. no i co widzę?

Oczywiście wiesz, że to mod do wersji smf 1.xx? Co nie znaczy, że to jakaś trudność, żeby go zintegrować z smf 2.0

Widzę, że ten mod robi tzw. "bźźź" i nie wiele więcej.. to nie jest to co myślisz, lub to co może się naprawdę przydać..

Widzisz ten fragment:

GeSHi -› Code: [select]
    <file name="$sourcedir/Post.php">
        <operation>
            <search position="before"><![CDATA[
   // At about this point, we're posting and that's that.
   ignore_user_abort(true);
   @set_time_limit(300);
]]></search>
            <add><![CDATA[

   //This is for the prefix.
   if (!empty($_POST['post_prefix']))
       $_POST['subject'] = $_POST['post_prefix'] . ': ' . $_POST['subject'];
]]></add>
        </operation>
    </file>
// Created by GeSHi 1.0.8.10 | code: -› [code=XML] | load:0.001s | speed:693.19 KB/s



to ten kawałek:

GeSHi -› Code: [select]
    //This is for the prefix.
    if (!empty($_POST['post_prefix']))
        $_POST['subject'] = $_POST['post_prefix'] . ': ' . $_POST['subject'];
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.024s | speed:6.09 KB/s



- po prostu zlewa "w locie" - wcześniej utworzony "prefix" z linkiem, który jest nazwą posta, (subiect), dodając dwukropek i spację.. i to wszystko.. ot bźźź
Tj. to dodaje do postu, czyli nazwy topiku, (kiedy go otworzysz, będzie w nazwie i również jako < title >), i w pliku MessageIndex.template.php.

Muszę się niestety poddać.. łatwiej byłoby napisać nowego moda.. sorka!
- nawet jakby dodał to zobaczysz kod zamiast np. koloru..
czyli np. < span style = " color: red; " >Prefix1: < / span >Nazwa topa.. zamiast: Prefix1: Nazwa topa
- co oczywiście wynika z mechanizmów samoobrony smf..

Ten mod dokleja kawałek czystego textu do linka, którym jest Nazwa Topa i widać to w dwóch miejscach..
Jednak, kiedy wyedytujesz posta i np. wybierzesz inny prefix to doda do już istniejącego.. czyli np. zobaczysz - Prefix2: Prefix1: Nazwa topa. ...bzdura nie? ale to wynika z kodu tego moda..

Nie można go pokolorować, ani nic z nim zrobić.. no może można spróbować przez htmlspecialchars, ale to też bullshit, lepiej byłoby zainstalować moda do kolorowania postów czy działów, bo takie są i są bardziej przydatne niż to gówienko..
Tak, więc, Draco przykro mi, ale nie mogę tego zrobic i wynika to wyłącznie z konstrukcji kodu.

Napisałeś:

Quote: [select]
Fajna sprawa jednak nie do końca rozwiązana. Ponieważ prefix przyjmuje kolor danego thema i "zlewa" się z kolorem tematu, jak widać na poniższym screenie:


To nieprawda! - ten cały prefix, to słowo doklejone z przodu linka, którym jest Nazwa Topa i musi wyglądać jak reszta linka i jeśli taki top przykleisz to będzie link topa pogrubiony i tym samym prefix, bo razem daje ten link.. Gościu nie przemyślał sprawy do końca.. może to turek? nieważne.. jest sporo modów które są po prostu mało-potrzebne i to jeden z takich "okazów"...


Wskazówka?

Nie ma sensu instalować tego moda już lepiej samemu to robić "z palca" np. tworzysz topik, gdzie dajesz jakieś tipsy, to np. piszesz:

[Tip] Port Forwarding pod BitTornado

I masz swój prefix, lub inny w zależności od potrzeb.. - to tylko kwestia dogadania się z ludźmi, jak sądzę..
Taki tips..

No nic, jak widać nie mogłem w tej kwestii pomóc, a pisze to po gruntownej analizie powyższego kodu instalki moda, przykro mi.  :bezradny:

Może znajdą się osoby, które stwierdzą coś innego, jednak jestem pewien tego co piszę..

Pozdrawiam  ;)
roco


Tytuł: Odp: PostPrefix - pogrubienie lub kolorowanie prefixu
Wiadomość wysłana przez: Draco 10.06.2009 22:59:41
No cóż szkoda.... wiem, że to jest pod 1.1.x ale właśnie zainstalowałem sobie takie testowe forum właśnie z 1.1.9  ... i powiem, że niejako więcej tych modów pod 1.1.9 nawet starszych, które po kosmetycznych zmianach nadają się pod 1.1.9 i śmigają sobie pięknie. Widziałem taki mod właśnie z prefixem pod IPB czy vB ... fajne sprawa bo prefixy takie można dawać pod różne działy, w różnych kolorach...ale na IPB się nie przerzuce wole smf  :D Nic pozostaje czekać być może pojawi się podobny mod... na razie sprawa się nie pali więc nie ma tak duże problemu...zresztą nie jest to rzeczy wymagana a jedynie fajny dodatek z tego by był dla większego porządku na forum...

Pozdro serdeczne  :drinks:


Tytuł: Odp: PostPrefix - pogrubienie lub kolorowanie prefixu
Wiadomość wysłana przez: roco 10.06.2009 23:13:49
Zainteresuj się modami do kolorowania działów i postów, ponieważ one działają podobnie, tylko lepiej.. na stewkę je znajdziesz na smf.org. Poszukaj również modów typu SEO, ale nie kombinuj z żadnymi które stosują ModRewrite, bo spieprzysz sobie forum.. Ale są różne mody i czasami warto pomyszkować w tamtych rejonach, zresztą nie tylko..
Możesz też utworzyć takie działy i kategorie, że porządek będzie automatyczny, i wiele tu zależy od Twojej inwencji i Twoich ludzi.
Chyba był też mod który dodawał przed topem (linkiem) jakąś grafę, której można nazwać anchory, co poprawia widzialność dla robotów np. z google itp..

SMF, choć nie jest tak rozbudowany jak np. płatny IPB, (co kosztuje tyle co system operacyjny..), to i tak jest lepszy, ponieważ jest wręcz jak plastelinka i można go formować dowolnie, nawet można oprzeć stronki na silniku z smf'a.
Chyba też widziałem do skryptu smf dodawanie gwiazdek do topów, ale nie ocenianie, to też widziałem.. Trzeba pomyśleć, ponieważ modów nie dość, że codziennie przybywa, to jest ich zatrzęsienie..

Pozdrówka  :plane:
roco


Tytuł: Odp: PostPrefix - pogrubienie lub kolorowanie prefixu
Wiadomość wysłana przez: Draco 10.06.2009 23:18:00
No właśnie i za to kocham SMF. Fajna rzecz zrobić sobie taki poligon doświadczalny w formie testowego forum i trenować... tak ja robie. I ciągle człowiek uczy się czegoś nowego...nie offtopując ... lece poszperać na smf.org za tym prefixem bo teraz smaka sobie narobiłem  ;) Pozdro


Tytuł: Odp: PostPrefix - pogrubienie lub kolorowanie prefixu
Wiadomość wysłana przez: roco 10.06.2009 23:32:53
Ja po za własnym Poligonem, polecam poligon na localhoście, (czyli własny serverek), dobry edytor, kilka klientów ftp, porównywarkę plików i co najmniej 3 przeglądarki w systemie...
Ok. ja też spadam, a top niech zostanie, może znajdą się inne tipsy w kwestiach prefixów lub podobnie..

Narka :)