Strony: [1] 2   Bottom Do dołu
   Drukuj   
ico Autor    
[EN] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [RU]
     Topic: Ostatnie wiadomości z centrum informacji na ostatnie tematy  [Przeczytany 8235 razy]
0 użytkowników i 1 Gość przegląda ten wątek.
Full Member
***
Offline
14.07.2023 20:33:45
Topic Starter
 Poland Mężczyzna
Poland
  WWW
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=651.msg1608#msg1608  
Cześć czy da się Ostatnie wiadomości z centrum informacji forum zamienić na ostatnie tematy ? Jeśli tak to bardzo proszę o pomoc w tej sprawie.


IP IP Zapisane
Administrator
*****
Imagination is more Important than Knowledge
Offline
08.05.2017 21:24:16
 United States Mężczyzna
United States
  WWW
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=651.msg1617#msg1617 Post #1 
Cześć Tomeh

Sorry, kompletnie mi umknął Twój topic, pewnie zmęczenie materiału.. szarej masy..

Oczywiście, że to możliwe, najprościej? - np. za po mocą funkcji SSI. --> ssi_recentTopics();

Edytujesz w stylu, którego używasz, plik: BoardIndex.template.php

Na początku pliku, trzeba dodać odniesienie do SSI.php. Chodzi o to, że trzeba włączyć ssi, żeby móc wywołać funkcje tam wpisane.

Pokażę to na stylu default

Na początku pliku masz m/w taki kod:

GeSHi -› Code: [select]
<?php
// Version: 1.1; BoardIndex

function template_main()
{
    global $context, $settings, $options, $txt, $scripturl, $modSettings;
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.074s | speed:1.75 KB/s



To zaraz, po zakomentowanej, (wyłączonej), linii // Version... bla bla trzeba dodać "włącznik" ssi czyli dopiszemy wywołane jednorazowe pliku SSI.php

GeSHi -› Code: [select]
<?php
// Version: 1.1; BoardIndex

require_once("SSI.php");

function template_main()
{
    global $context, $settings, $options, $txt, $scripturl, $modSettings;
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.069s | speed:2.23 KB/s



Następnie przenieśmy się do sekcji "Info Center', a dokładniej do sekcji: --> // This is the "Recent Posts" bar.

Masz tam ustawienie zależne od tego co masz włączone w PA, czyli w ogóle włączenie oraz pokazania ile ma być wpisów -->// Show lots of posts.

Chodzi dokładnie o ten wpis:

GeSHi -› Code: [select]
        // Show lots of posts.
        elseif (!empty($context['latest_posts']))
        {
            echo '
                        <table cellpadding="0" cellspacing="0" width="100%" border="0">'
;

            /* Each post in latest_posts has:
                    board (with an id, name, and link.), topic (the topic's id.), poster (with id, name, and link.),
                    subject, short_subject (shortened with...), time, link, and href. */

            foreach ($context['latest_posts'] as $post)
                echo '
                            <tr>
                                <td class="middletext" valign="top"><b>'
, $post['link'], '</b> ', $txt[525], ' ', $post['poster']['link'], ' (', $post['board']['link'], ')</td>
                                <td class="middletext" align="right" valign="top" nowrap="nowrap">'
, $post['time'], '</td>
                            </tr>'
;
            echo '
                        </table>'
;
        }
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.072s | speed:9.97 KB/s



Dodamy teraz wywołanie finkcji SSI przed zamykającą klamerką --> } po < /table> ' ;


Funkcja SSI, która odpowiada za wyświetlanie ostatnich Topics to // --> ssi_recentTopics(); w nawiasie można podać ilość Topics np. 8 lub np.12..
Funkcję wywołujemy echem po zakończonym stringu..

Dołożę teraz funkcję z określoną liczbą topów na 12,  przed zamykającą klamerką }


GeSHi -› Code: [select]
        // Show lots of posts.
        elseif (!empty($context['latest_posts']))
        {
            echo '
                        <table cellpadding="0" cellspacing="0" width="100%" border="0">'
;

            /* Each post in latest_posts has:
                    board (with an id, name, and link.), topic (the topic's id.), poster (with id, name, and link.),
                    subject, short_subject (shortened with...), time, link, and href. */

            foreach ($context['latest_posts'] as $post)
                echo '
                            <tr>
                                <td class="middletext" valign="top"><b>'
, $post['link'], '</b> ', $txt[525], ' ', $post['poster']['link'], ' (', $post['board']['link'], ')</td>
                                <td class="middletext" align="right" valign="top" nowrap="nowrap">'
, $post['time'], '</td>
                            </tr>'
;
            echo '
                        </table>'
;
        echo ssi_recentTopics(12);
        }
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.075s | speed:9.93 KB/s



Możesz dołożyć do testu, funkcję ssi_recentPost(), pod spodem funkcji już dodanej. Zobaczysz wtedy co Ci pasuje!

Do testów:

GeSHi -› Code: [select]
        // Show lots of posts.
        elseif (!empty($context['latest_posts']))
        {
            echo '
                        <table cellpadding="0" cellspacing="0" width="100%" border="0">'
;

            /* Each post in latest_posts has:
                    board (with an id, name, and link.), topic (the topic's id.), poster (with id, name, and link.),
                    subject, short_subject (shortened with...), time, link, and href. */

            foreach ($context['latest_posts'] as $post)
                echo '
                            <tr>
                                <td class="middletext" valign="top"><b>'
, $post['link'], '</b> ', $txt[525], ' ', $post['poster']['link'], ' (', $post['board']['link'], ')</td>
                                <td class="middletext" align="right" valign="top" nowrap="nowrap">'
, $post['time'], '</td>
                            </tr>'
;
            echo '
                        </table>'
;
        echo ssi_recentTopics(12);
        echo ssi_recentPosts(8);
        }
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.074s | speed:10.44 KB/s



Jak już zobaczysz, a dalej chcesz wyłączyć, może inaczej, zamienić ostatnie posts na ostatnie topics, to trzeba wyłączyć  kawałek kodu za pomocą: /*  */

/* Teraz wyłączymy część kodu odpowiadającą za ostatnie posty */

(w "środku" kodu znajduje się juz jedno wyłączenie, ale to nic nie znaczy, trzeba tylko wyłączyć odcinakami)

Dostaniemy taką postać:

GeSHi -› Code: [select]
        // Show lots of posts.
        elseif (!empty($context['latest_posts']))
        {
    /*      echo '
                        <table cellpadding="0" cellspacing="0" width="100%" border="0">';

            /* Each post in latest_posts has:
                    board (with an id, name, and link.), topic (the topic's id.), poster (with id, name, and link.),
                    subject, short_subject (shortened with...), time, link, and href. */

    /*      foreach ($context['latest_posts'] as $post)
                echo '
                            <tr>
                                <td class="middletext" valign="top"><b>', $post['link'], '</b> ', $txt[525], ' ', $post['poster']['link'], ' (', $post['board']['link'], ')</td>
                                <td class="middletext" align="right" valign="top" nowrap="nowrap">', $post['time'], '</td>
                            </tr>';
            echo '
                        </table>';
    */

        echo ssi_recentTopics(12);
        }
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.066s | speed:11.39 KB/s



Uwagi końcowe:

- Zanim jednak coś wyłączysz, to dopisz funkcje, czyli na początku pliku i dodaj echem funkcje ssi, tak jak jest to pokazane w przykładzie gdzie dodałem 2x funkcje SSI.
- Zobaczysz, czy tak chcesz mieć i jak ok, to zostaw to, co Ci potrzeba i wyłącz kod, tak jak jest to pokazane w przykładzie z wyłączeniem kodu.

- Nie edytuj plików na serwerze, tylko na dysku, później przed wgraniem, zmień nazwę pliku na serwerze i dopiero wgraj ten edytowany plik.
- Przed  każdą edycją twórz kopie plików.

Uważam, że to wspaniała sprawa z funkcją SSI, i za nią bardzo dziękuję ekipie z SMF Team.

Tameh, jak będziesz dokładny, będziesz edytował pliki porządnym edytorem, a nie tym gównianym notatnikiem systemowym, to będzie ok.

Pozdrawiam
roco



Attention! Testing modifications - Steam Profile

IP IP Zapisane
Full Member
***
Offline
14.07.2023 20:33:45
Topic Starter
 Poland Mężczyzna
Poland
  WWW
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=651.msg1650#msg1650 Post #2 
Jest dobrze.


Last Edit: 12.02.2010 00:38:16 by: tomeh IP IP Zapisane
Full Member
***
Offline
14.07.2023 20:33:45
Topic Starter
 Poland Mężczyzna
Poland
  WWW
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=651.msg1804#msg1804 Post #3 
A czy da się to zrobić aby się lepiej wpasowało w ten obszar gdzie są ostatnie wiadomości. Obecnie nie trzyma to tych proporcji - choć działa jak powinno to nie ma tego schematu jak nowe posty.


IP IP Zapisane
Administrator
*****
Imagination is more Important than Knowledge
Offline
08.05.2017 21:24:16
 United States Mężczyzna
United States
  WWW
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=651.msg1860#msg1860 Post #4 
Witam

No wiesz.. to jest odwołanie do pliku SSI.php gdzie wsio leci na standarciku czyli ma wyglądać jako-tako ale pod każdą przeglądarką.., a jak Ci się nie podoba to sobie zmień wygląd.. to tak m/w
To tak jakbyś miał super wieżę audio ful wypas a korektor miał ustawiony - w jednej linii w połowie wysokości... czyli "flat"

Mi się nie podobało i sobie zmieniłem, zobacz u mnie na głównej na dole gdzie mam ostatnie topiki i ostanie posty.. to są zmiany w pliku SSI.php.

Należy do tego pliku podchodzić z rozwagą i uwagą!, ale to zwykłe tabelki, które można sobie tak ostylować, żeby dobrze wyglądały w każdym stylu.

Pozdrawiam
roco



Attention! Testing modifications - Steam Profile

IP IP Zapisane
Full Member
***
Offline
14.07.2023 20:33:45
Topic Starter
 Poland Mężczyzna
Poland
  WWW
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=651.msg1961#msg1961 Post #5 
Zależało by mi na czymś takim jak na obrazku. To są nowe posty i tak samo aby wyglądały nowe tematy. Obecnie jak wklejam tą funkcję to daty napisania tematu są zaraz za linkiem do działu a nie na miejscu dalej tak jak na obrazku.



Znalazłem takiego moda http://custom.simplemachines.org/mods/index.php?mod=1314 - może to by ułatwiło zadanie jak takie coś zrobić. Aby funkcjonowały obie rzeczy na raz.

Jeszcze jak by się dało oddzielić nowe posty od  tych nowych tematów podobną belką jak mają nowe posty to było by cudownie.

Jak by ktoś pomógł to już chyba by było wszystko co mogę sobie wymarzyć na forum.


Last Edit: 07.03.2010 20:08:23 by: tomeh IP IP Zapisane
Administrator
*****
Imagination is more Important than Knowledge
Offline
08.05.2017 21:24:16
 United States Mężczyzna
United States
  WWW
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=651.msg1967#msg1967 Post #6 
Cześć Tomeh

Nie ten mod tylko pogmatwa sprawę, po za tym on zamienia te wpisy, a pokazałem Ci jak to prosto zrobić.
Co do wyglądu to pisałem, że jeśli chcesz to pozmieniać to należy poprawić prostą tabelkę w SSI.php
To co widzę na rysunku, to siermięga, nie podoba mi się takie rozwiązanie, ponieważ to tzw. "groch z kapustą"
Taka zlewająca się przeplatanka.
Mogę Ci to poprawić, ale muszę wiedzieć jaka wersja SMF i jak dokładnie chcesz żeby wyglądało, tak jak na focie?
Z dodatkową "belką" nie widzę problemu..

Tak więc potrzebne info jaka wersja forum, ew. plik BoardIndex.template.php ze stylu który używasz.

Pozdrawiam
roco

PS. sorry ale pod górkę mam z czasem, wręcz się z nim ścigam, dlatego trochę rzadziej tu ostatnio zaglądam,
ale to przejściowe, okay?



Attention! Testing modifications - Steam Profile

IP IP Zapisane
Full Member
***
Offline
14.07.2023 20:33:45
Topic Starter
 Poland Mężczyzna
Poland
  WWW
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=651.msg1968#msg1968 Post #7 
Cześć, tak identycznie jak zna zdjęciu, poniżej zrobiłem taki dokładny tego obraz o co mi chodzi w układzie.. Moje forum to SMF 1.1.11



W załączniku plik BoardIndex.template.php mojego stylu. Taka funkcja bardzo by była mi przydatna z tymi tematami.

Nie ma sprawy, poczekam i dzięki za pomoc oraz pozdrawiam ..


: : Attachment : :
Attachment BoardIndex.template.zip   -› 5.64 KB - pobrany 325 razy

IP IP Zapisane
Administrator
*****
Imagination is more Important than Knowledge
Offline
08.05.2017 21:24:16
 United States Mężczyzna
United States
  WWW
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=651.msg1976#msg1976 Post #8 
Identycznie to na pewno nie będzie, ponieważ są różnice w wersjach i na pewno w stylach.

Załączam poprawiony Boardindex ale to nie wszystko, żeby zadziałało, tj. wyglądało bardzo podobnie czyli Ostatnie posty i ostatnie tematy, to należy wyedytować plik SSI.php

Znajdź w swoim pliku SSI.php (dla wersji SMF 1.1.11), funkcję: ssi_recentTopics, około linii ~414 zaczyna się tabela i trzeba ją zamienić na inną.

To jest kawałek kodu z tabelą w środku:

GeSHi -› Code: [select]
    // Just return it.
    if ($output_method != 'echo' || empty($posts))
        return $posts;

    echo '
        <table border="0" class="ssi_table">'
;
    foreach ($posts as $post)
        echo '
            <tr>
                <td align="right" valign="top" nowrap="nowrap">
                    ['
, $post['board']['link'], ']
                </td>
                <td valign="top">
                    <a href="'
, $post['href'], '">', $post['subject'], '</a>
                    '
, $txt[525], ' ', $post['poster']['link'], '
                    '
, $post['new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new"><img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" alt="' . $txt[302] . '" border="0" /></a>', '
                </td>
                <td align="right" nowrap="nowrap">
                    '
, $post['time'], '
                </td>
            </tr>'
;
    echo '
        </table>'
;
}

// Show the top poster's name and profile link.
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.078s | speed:10.60 KB/s



Możesz zamiast zamieniać, to wyłączyć tylko samą tabelę i dopisać poniżej tę ode mnie.

To wyłączony kod tabeli:

GeSHi -› Code: [select]
    // Just return it.
    if ($output_method != 'echo' || empty($posts))
        return $posts;
/*
    echo '
        <table border="0" class="ssi_table">';
    foreach ($posts as $post)
        echo '
            <tr>
                <td align="right" valign="top" nowrap="nowrap">
                    [', $post['board']['link'], ']
                </td>
                <td valign="top">
                    <a href="', $post['href'], '">', $post['subject'], '</a>
                    ', $txt[525], ' ', $post['poster']['link'], '
                    ', $post['new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new"><img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" alt="' . $txt[302] . '" border="0" /></a>', '
                </td>
                <td align="right" nowrap="nowrap">
                    ', $post['time'], '
                </td>
            </tr>';
    echo '
        </table>';
*/


}

// Show the top poster's name and profile link.
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.074s | speed:11.21 KB/s



Należy po */ dodać kod ode mnie czyli ten kod:

GeSHi -› Code: [select]
    echo '
        <table border="0" width="100%" align="left" cellpadding="0" cellspacing="0" class="ssi_table">'
;
    foreach ($posts as $post)
        echo '
            <tr>
                <td class="middletext" align="left" valign="top" nowrap="nowrap">
                    <a href="'
, $post['href'], '"><b>', $post['subject'], '</b></a>
                    '
, $txt[525], ' ', $post['poster']['link'], '
                    '
, $post['new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new"><img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" alt="' . $txt[302] . '" border="0" /></a>', '
                 ('
, $post['board']['link'], ')</td>
                <td class="middletext" align="right" nowrap="nowrap">'
, $post['time'], '</td>
            </tr>'
;
    echo '
        </table>'
;
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.093s | speed:7.95 KB/s



Mogę Ci to uprościć, (choc nie jestem tego pewien..), i podam kod samej tabeli, tj już wyłączonej i po niżej dopisanej tej ode mnie, wystarczy zaznaczyć samą tabelę i ją nadpisać tym kodem:

GeSHi -› Code: [select]
    // Just return it.
    if ($output_method != 'echo' || empty($posts))
        return $posts;
/*
    echo '
        <table border="0" class="ssi_table">';
    foreach ($posts as $post)
        echo '
            <tr>
                <td align="right" valign="top" nowrap="nowrap">
                    [', $post['board']['link'], ']
                </td>
                <td valign="top">
                    <a href="', $post['href'], '">', $post['subject'], '</a>
                    ', $txt[525], ' ', $post['poster']['link'], '
                    ', $post['new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new"><img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" alt="' . $txt[302] . '" border="0" /></a>', '
                </td>
                <td align="right" nowrap="nowrap">
                    ', $post['time'], '
                </td>
            </tr>';
    echo '
        </table>';
*/

    echo '
        <table border="0" width="100%" align="left" cellpadding="0" cellspacing="0" class="ssi_table">'
;
    foreach ($posts as $post)
        echo '
            <tr>
                <td class="middletext" align="left" valign="top" nowrap="nowrap">
                    <a href="'
, $post['href'], '"><b>', $post['subject'], '</b></a>
                    '
, $txt[525], ' ', $post['poster']['link'], '
                    '
, $post['new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new"><img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" alt="' . $txt[302] . '" border="0" /></a>', '
                 ('
, $post['board']['link'], ')</td>
                <td class="middletext" align="right" nowrap="nowrap">'
, $post['time'], '</td>
            </tr>'
;
    echo '
        </table>'
;
}

// Show the top poster's name and profile link.
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.086s | speed:18.28 KB/s



Celowo podałem więcej kodu, żeby się łatwiej zoriętować..
to jest miejsce od tego kawałka:

// Just return it.

do tego kawałka:

// Show the top poster's name and profile link.

Piszę o tym, ponieważ tu łatwo się pomylić np. niechcący wychlastać tę klamerkę } i wtedy lipa..

Myślę, jednak, że sobie spokojnie z tym poradzisz. Jeśli to zrobisz, to będzie dokładnie co co potrzebuujesz.


Pozdrawiam
roco



Attention! Testing modifications - Steam Profile

: : Attachment : :
Attachment BoardIndexNEW.zip   -› 5.84 KB - pobrany 292 razy

IP IP Zapisane
Full Member
***
Offline
14.07.2023 20:33:45
Topic Starter
 Poland Mężczyzna
Poland
  WWW
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=651.msg1977#msg1977 Post #9 
Powiem tak, JESTEŚ WIELKI! Działa i wygląda  idealnie tak jak sobie to wymarzyłem.

Dziękuję ci pomoc


IP IP Zapisane
Full Member
***
Offline
14.07.2023 20:33:45
Topic Starter
 Poland Mężczyzna
Poland
  WWW
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=651.msg1978#msg1978 Post #10 
Taki błąd mi wyrzuca w raportach błędów, nie wiem jak to naprawić.



IP IP Zapisane
Administrator
*****
Imagination is more Important than Knowledge
Offline
08.05.2017 21:24:16
 United States Mężczyzna
United States
  WWW
Link:  http://poligon.ricoroco.com/fora/smf/index.php?topic=651.msg1979#msg1979 Post #11 
Tomku nie wiem.. za mało danych, wygląda na problem z jakimiś skryptami..

Z drugiej strony, wiesz zrobiłem to hmm z pamięci..
Wyedytuj plik BoardIndex.template.php i w linii ~283 powinieneś mieć wpis funkcji z SSI

GeSHi -› Code: [select]
        ssi_recentTopics(10); flush();
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.072s | speed:445 B/s




To zamień to na taki wpis:

GeSHi -› Code: [select]
        echo ssi_recentTopics(10);
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.066s | speed:426 B/s



Widzisz tę liczbę: 10 ? to jest ilość topików do wyświetlenia, możesz sobie ustawić np. 12 albo ile chcesz, ale jak tę liczbę wytniesz, czyli będzie tam w nawiasie pusto, to standardowo jest ustawione na 8 wpisów, sam zdecyduj.

Kiedy dokonasz zmian, to usuń te błędy i dopiero odświeżaj stronę.

Jeśli to nie pomoże, to przyczyna może leżeć gdzie indziej, może dodawałeś sam jakieś wpisy, albo edytowałeś pliki i np. dodałeś jakiś JavaScript?
Ew. podrzuć plik index.template.php

Może przydatna być informacja jakie są zainstalowane mody i jaka wersja php jest na tym Twoim serverku?


Pozdrawiam
roco



Attention! Testing modifications - Steam Profile

IP IP Zapisane
Strony: [1] 2   TOP^Do góry
   Drukuj   
On-Line: 10 Gości, 0 Użytkowników
 
Skocz do:  

Podobne Tematy
  Temat Zaczęty przez Odpowiedzi Wyświetleń Ostatnia wiadomość
normal_post RSS EverLost.pl - Forum Counter Strike - Centrum Informacji. bartosh 1 2971 Ostatnia wiadomość 25.01.2010 21:12:56
Autor roco
normal_post RSS Co to za problem - Wiadomości: leet tomeh 3 3164 Ostatnia wiadomość 16.11.2010 12:36:30
Autor tomeh
normal_post RSS Rozpoczęte tematy w profilu tomeh 0 1401 Ostatnia wiadomość 23.12.2010 14:59:51
Autor tomeh
* Share this topic...
In a forum
[BBCode]
[url=http://poligon.ricoroco.com/fora/smf/index.php?topic=651.0]Ostatnie wiadomości z centrum informacji na ostatnie tematy[/url]
In a site/blog
[xHTML]
<a href="http://poligon.ricoroco.com/fora/smf/index.php?topic=651.0" target="_blank">Ostatnie wiadomości z centrum informacji na ostatnie tematy</a>
Geo Visitors Map