SMF HELP!

SMF Help! - For Users SMF/TP => Funkcjonalność SMF, Obsługa, Administracja, SSI => Wątek zaczęty przez: tomeh 01.04.2009 11:30:43



Tytuł: Wyłączenie jednej z statystyk forum
Wiadomość wysłana przez: tomeh 01.04.2009 11:30:43
Cześć, mam taki problem jak wyłączyć te statystyki

(http://img517.imageshack.us/img517/7329/bikecentrumstatystyki.jpg)

Może nie ma takiej opcji co wyłącza tylko to a pozostawia pozostałe więc jeśli się nie da w ten sposób to jak usunąć z widoku w statystykach to coś. Wiadomo najbardziej fajnie by było po prostu to wyłączyć i aby się nie wyświetlało a nie pracowało pod spodem także ale może być ostateczne tyko usunięcie tego aby nie było tego widać. To tyle w pytaniu dzięki po raz kolejny za odpowiedź.


Tytuł: Odp: Wyłączenie jednej z statystyk forum
Wiadomość wysłana przez: roco 02.04.2009 01:52:02
Same staty możesz powyłączać w Zezwoleniach dla grup userów. Tzn. nie będzie się wyświetlał link do statów.

Natomiast ten ..dinks, czyli same liczniki, żeby wyłączyć, to trzeba dłubnąć w kodzie i wyłączyć parę linii kodu, tj jedną tabelę, inaczej się nie da.

To są liczniki i napewno Adminowi są potrzebne, ponieważ masz tam rozpiskę, po rozwinięciu, ile miałeś odwiedzin i kiedy, ile i kiedy było najwięcej on-line itp.

Jeśli bardzo będziesz chciał to wyłączyć, to pokażę Ci jak, ale najpierw się nad tym zastanów, ok?

Pozdrawiam :)
roco


Tytuł: Odp: Wyłączenie jednej z statystyk forum
Wiadomość wysłana przez: tomeh 02.04.2009 20:03:39
Jeśli nie jest to zmienianie wielu rzeczy i prosta chirurgia to poproszę. Mi tam potrzebne są tylko informacje z serwera który mówi mi prawie wszystko to co ta opcja. Reszta statystyk jest mi bardzo przydatna ale akurat ten taśmowiec nie. Dzięki za pomoc


Tytuł: Odp: Wyłączenie jednej z statystyk forum
Wiadomość wysłana przez: roco 02.04.2009 23:16:40
A co powiesz na takie rozwiązanie - te liczniki widzi tylko i wyłącznie admin, anie od goscia do global moderatora - nikt ich nie zobaczy?

To się przydaje, wierz mi, np.: łatwo się zoriętować że np. w marcu miałeś bardzo dużo odwiedzin powiedzmy 15 tys. ale nie przybyło nowych itd.. łatwo można sqmać, że to był nalot robotów, albo zapętlił się ten głupek z onetu co potrafi zeżreć 5BG transferu.. jako dodatkowe info, takie liczniki dla samego admina są w pełni uzasadnione i to mogę zaakceptować. w innym wypadku każesz mi pomyśleć, że np. ktos odrąbuje w samochodzie lusterka boczne, bo bez nich samochód wydaje mu się ładniejszy hehe, albo dlatego, że w ogóle nie lubi lusterek..

Oczywiście mozesz sobie wychlastać całkiem tą < tr >, ale ja o tym nie chcę wiedzieć ok? bo to byłoby jak z tymi lusterkami..

Mogę Ci pokazać jak w tej całej tabeli wyłączyć całe < tr > dla wszystkich po za adminem, okay?

W stylu default, masz plik: "Stats.template.php", oczywiście zrób kopie i na niej pracuj.

Plik nie jest długaśny i na końcu masz javascript do rozsuwania miesięcy i po wyżej < tr > z < td > i < table > i to wyłączymy dla gapiów.

Wyedytuj ten plik, najlepiej Notepad  , (podświetlanie składni - php)

znajdź około linii od 171 do 189 masz taki kawałek:

(Znajdź ten kawałek, żeby go później zamienić na podany poniżej w całości..)

GeSHi -› Code: [select]
    foreach ($context['top_time_online'] as $poster)
        echo '
                        <tr>
                            <td width="60%" valign="top">'
, $poster['link'], '</td>
                            <td width="20%" align="left" valign="top">'
, $poster['time_online'] > 0 ? '<img src="' . $settings['images_url'] . '/bar.gif" width="' . $poster['time_percent'] . '" height="15" alt="" />' : '&nbsp;', '</td>
                            <td width="20%" align="right" valign="top" nowrap="nowrap">'
, $poster['time_online'], '</td>
                        </tr>'
;
    echo '
                    </table>
                </td>
            </tr><tr>
                <td class="catbg" colspan="4"><b>'
, $txt['smf_stats_5'], '</b></td>
            </tr><tr>
                <td class="windowbg" width="20" valign="middle" align="center"><img src="'
, $settings['images_url'], '/stats_history.gif" width="20" height="20" alt="" /></td>
                <td class="windowbg2" colspan="4">'
;

    if (!empty($context['monthly']))
    {
        echo '
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.067s | speed:12.22 KB/s



A w połowie, czyli w linii 183 masz masz < /tr >< tr >, pokażę Ci to z linią poniżej:

GeSHi -› Code: [select]
            </tr><tr>
                <td class="catbg" colspan="4"><b>', $txt['smf_stats_5'], '</b></td>
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.061s | speed:1.35 KB/s



To kliknij pomiedzy te 2 < /tr > tu < tr > i daj kilka enterów i tę pierwszą zakończ końcem stringu czyli < /tr>';
Żeby wygladało tak:

GeSHi -› Code: [select]
            </tr>';



            <tr>
                <td class="catbg" colspan="4"><b>'
, $txt['smf_stats_5'], '</b></td>
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.061s | speed:1.50 KB/s




I pomiędzy dodaj formułe dla admina z otwrtą klamerką {

czyli to    if ($context['allow_admin']) {

Oczywiście żeby przejść już do naszej włąsciwej < tr> zastosujemy echo i całość, powinna wygladać tak:

Czyli zamień na to:

GeSHi -› Code: [select]
    foreach ($context['top_time_online'] as $poster)
        echo '
                        <tr>
                            <td width="60%" valign="top">'
, $poster['link'], '</td>
                            <td width="20%" align="left" valign="top">'
, $poster['time_online'] > 0 ? '<img src="' . $settings['images_url'] . '/bar.gif" width="' . $poster['time_percent'] . '" height="15" alt="" />' : '&nbsp;', '</td>
                            <td width="20%" align="right" valign="top" nowrap="nowrap">'
, $poster['time_online'], '</td>
                        </tr>'
;
    echo '
                    </table>
                </td>
            </tr>'
;

    if ($context['allow_admin']) {
    echo '

            <tr>
                <td class="catbg" colspan="4"><b>'
, $txt['smf_stats_5'], '</b></td>
            </tr><tr>
                <td class="windowbg" width="20" valign="middle" align="center"><img src="'
, $settings['images_url'], '/stats_history.gif" width="20" height="20" alt="" /></td>
                <td class="windowbg2" colspan="4">'
;

    if (!empty($context['monthly']))
    {
        echo '
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.067s | speed:12.95 KB/s




Jeszcze musimy zamknąś poza kończącą < /tr > - klamerkę }

Czyli po wklejeniu kodu będzie to linia 250 czyli

            < /td>
   Czyli za tą  < /tr>
      < /table>
      < script

(przed zmiana to była linia: 245)

Za tą < / tr> zakończymy string ';

i zamkniemy klamerkę:

}

Będzie to wyglądało tak:

GeSHi -› Code: [select]
                </td>
            </tr>';
}
    echo '

        </table>
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.059s | speed:693 B/s




Top było po to, żeby można się było jeszcze czegoś btw nauczyć.

Teraz zrobimy po całości

znajdź linię 171 aż do <script... - włącznie:

GeSHi -› Code: [select]
    foreach ($context['top_time_online'] as $poster)
        echo '
                        <tr>
                            <td width="60%" valign="top">'
, $poster['link'], '</td>
                            <td width="20%" align="left" valign="top">'
, $poster['time_online'] > 0 ? '<img src="' . $settings['images_url'] . '/bar.gif" width="' . $poster['time_percent'] . '" height="15" alt="" />' : '&nbsp;', '</td>
                            <td width="20%" align="right" valign="top" nowrap="nowrap">'
, $poster['time_online'], '</td>
                        </tr>'
;
    echo '
                    </table>
                </td>
            </tr><tr>
                <td class="catbg" colspan="4"><b>'
, $txt['smf_stats_5'], '</b></td>
            </tr><tr>
                <td class="windowbg" width="20" valign="middle" align="center"><img src="'
, $settings['images_url'], '/stats_history.gif" width="20" height="20" alt="" /></td>
                <td class="windowbg2" colspan="4">'
;

    if (!empty($context['monthly']))
    {
        echo '
                    <table border="0" width="100%" cellspacing="1" cellpadding="4" class="tborder" style="margin-bottom: 1ex;" id="stats">
                        <tr class="titlebg" valign="middle" align="center">
                            <td width="25%">'
, $txt['smf_stats_13'], '</td>
                            <td width="15%">'
, $txt['smf_stats_7'], '</td>
                            <td width="15%">'
, $txt['smf_stats_8'], '</td>
                            <td width="15%">'
, $txt['smf_stats_9'], '</td>
                            <td width="15%">'
, $txt['smf_stats_14'], '</td>';
        if (!empty($modSettings['hitStats']))
            echo '
                            <td>'
, $txt['smf_stats_10'], '</td>';
        echo '
                        </tr>'
;

        foreach ($context['monthly'] as $month)
        {
            echo '
                        <tr class="windowbg2" valign="middle" id="tr_'
, $month['id'], '">
                            <th align="left" width="25%">
                                <a name="'
, $month['id'], '" id="link_', $month['id'], '" href="', $month['href'], '" onclick="return doingExpandCollapse || expand_collapse('', $month['id'], '', ', $month['num_days'], ');"><img src="', $settings['images_url'], '/', $month['expanded'] ? 'collapse.gif' : 'expand.gif', '" alt="" id="img_', $month['id'], '" /> ', $month['month'], ' ', $month['year'], '</a>
                            </th>
                            <th align="center" width="15%">'
, $month['new_topics'], '</th>
                            <th align="center" width="15%">'
, $month['new_posts'], '</th>
                            <th align="center" width="15%">'
, $month['new_members'], '</th>
                            <th align="center" width="15%">'
, $month['most_members_online'], '</th>';
            if (!empty($modSettings['hitStats']))
                echo '
                            <th align="center">'
, $month['hits'], '</th>';
            echo '
                        </tr>'
;

            if ($month['expanded'])
            {
                foreach ($month['days'] as $day)
                {
                    echo '
                        <tr class="windowbg2" valign="middle" align="left">
                            <td align="left" style="padding-left: 3ex;">'
, $day['year'], '-', $day['month'], '-', $day['day'], '</td>
                            <td align="center">'
, $day['new_topics'], '</td>
                            <td align="center">'
, $day['new_posts'], '</td>
                            <td align="center">'
, $day['new_members'], '</td>
                            <td align="center">'
, $day['most_members_online'], '</td>';
                    if (!empty($modSettings['hitStats']))
                        echo '
                            <td align="center">'
, $day['hits'], '</td>';
                    echo '
                        </tr>'
;
                }
            }
        }
        echo '
                    </table>'
;
    }

    echo '
                </td>
            </tr>
        </table>
        <script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.085s | speed:36.56 KB/s



Zaznacz ten kawałek i zamień na to:

GeSHi -› Code: [select]
    foreach ($context['top_time_online'] as $poster)
        echo '
                        <tr>
                            <td width="60%" valign="top">'
, $poster['link'], '</td>
                            <td width="20%" align="left" valign="top">'
, $poster['time_online'] > 0 ? '<img src="' . $settings['images_url'] . '/bar.gif" width="' . $poster['time_percent'] . '" height="15" alt="" />' : '&nbsp;', '</td>
                            <td width="20%" align="right" valign="top" nowrap="nowrap">'
, $poster['time_online'], '</td>
                        </tr>'
;
    echo '
                    </table>
                </td>
            </tr>'
;

    if ($context['allow_admin']) {
    echo '

            <tr>
                <td class="catbg" colspan="4"><b>'
, $txt['smf_stats_5'], '</b></td>
            </tr><tr>
                <td class="windowbg" width="20" valign="middle" align="center"><img src="'
, $settings['images_url'], '/stats_history.gif" width="20" height="20" alt="" /></td>
                <td class="windowbg2" colspan="4">'
;

    if (!empty($context['monthly']))
    {
        echo '
                    <table border="0" width="100%" cellspacing="1" cellpadding="4" class="tborder" style="margin-bottom: 1ex;" id="stats">
                        <tr class="titlebg" valign="middle" align="center">
                            <td width="25%">'
, $txt['smf_stats_13'], '</td>
                            <td width="15%">'
, $txt['smf_stats_7'], '</td>
                            <td width="15%">'
, $txt['smf_stats_8'], '</td>
                            <td width="15%">'
, $txt['smf_stats_9'], '</td>
                            <td width="15%">'
, $txt['smf_stats_14'], '</td>';
        if (!empty($modSettings['hitStats']))
            echo '
                            <td>'
, $txt['smf_stats_10'], '</td>';
        echo '
                        </tr>'
;

        foreach ($context['monthly'] as $month)
        {
            echo '
                        <tr class="windowbg2" valign="middle" id="tr_'
, $month['id'], '">
                            <th align="left" width="25%">
                                <a name="'
, $month['id'], '" id="link_', $month['id'], '" href="', $month['href'], '" onclick="return doingExpandCollapse || expand_collapse('', $month['id'], '', ', $month['num_days'], ');"><img src="', $settings['images_url'], '/', $month['expanded'] ? 'collapse.gif' : 'expand.gif', '" alt="" id="img_', $month['id'], '" /> ', $month['month'], ' ', $month['year'], '</a>
                            </th>
                            <th align="center" width="15%">'
, $month['new_topics'], '</th>
                            <th align="center" width="15%">'
, $month['new_posts'], '</th>
                            <th align="center" width="15%">'
, $month['new_members'], '</th>
                            <th align="center" width="15%">'
, $month['most_members_online'], '</th>';
            if (!empty($modSettings['hitStats']))
                echo '
                            <th align="center">'
, $month['hits'], '</th>';
            echo '
                        </tr>'
;

            if ($month['expanded'])
            {
                foreach ($month['days'] as $day)
                {
                    echo '
                        <tr class="windowbg2" valign="middle" align="left">
                            <td align="left" style="padding-left: 3ex;">'
, $day['year'], '-', $day['month'], '-', $day['day'], '</td>
                            <td align="center">'
, $day['new_topics'], '</td>
                            <td align="center">'
, $day['new_posts'], '</td>
                            <td align="center">'
, $day['new_members'], '</td>
                            <td align="center">'
, $day['most_members_online'], '</td>';
                    if (!empty($modSettings['hitStats']))
                        echo '
                            <td align="center">'
, $day['hits'], '</td>';
                    echo '
                        </tr>'
;
                }
            }
        }
        echo '
                    </table>'
;
    }

    echo '
                </td>
            </tr>'
;
}
    echo '
        </table>
        <script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.075s | speed:42.28 KB/s




Skutkiem czego - zniknie dla wszystkich po za adminem cała ta dolna tabela z licznikami, łącznie z nagłówkiem.

Mam nadzieje, że to Ci pomoże i może innym. celowo nie załączam tego pliku, poniewaz jest to dość łatwe, a sądzę, że taka wiedza zawsze może się przydac jakiemuś adminowi skryptu smf nie ;)

Pozdrawiam :)
roco


Tytuł: Odp: Wyłączenie jednej z statystyk forum
Wiadomość wysłana przez: tomeh 02.04.2009 23:35:00
te statystyki jakoś znacznie na przestrzeni lat wpływają na zużycie pamięci bazy danych? Czy to kilo bajtowe sprawy nawet po wielu latach. Osobiście nadal uważam że akurat to nie jest potrzebne ale jeszcze się wstrzymam z wyłączeniem tego. Opisane musze powiedzieć bardzo do rzeczy i wyczerpująco.


Tytuł: Odp: Wyłączenie jednej z statystyk forum
Wiadomość wysłana przez: roco 02.04.2009 23:52:31
MB to produkuja najczęściej logi błędów i te po przejrzeniu warto usuwać.. Nie ma się czym przejmować to niezauważalna sprawa..

Wyłącz jak w przykładzie, to naprawdę proste i wrzuć na server, najpierw zmieniając nazwę tego pliku co tam już jest, żeby się nie nadpisało.. jak nie przetestujesz, to jak sobie będziesz później radził.., a to akurat proste i dobry trening zarazem..

Te staty będą dalej ale tylko dla admina, opal inną przegladarkę i to sprawdź.

Zanim podałem to rozwiązanie, to najpierw je napisałem i przetestowałem - jest ok i działa dokładnie tak jak napisałem.

napewno powiedzmy porzy dużej liczbie odwiedzajacych i odwiedzających staty, wyłączenie dla nich tych dodatkowych liczników to mniej odwołań do bazy, czyli mniejszy ruch..

Pozdrawiam :)
roco