Skocz do zawartości


Zdjęcie

forum IPB SEO Optymalizacja Przewodnik


  • Zaloguj się, aby dodać odpowiedź
34 odpowiedzi w tym temacie

#1 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 15 06 2012 - 13:53

Najnowsza wersja IPB (począwszy od 3.3.3) daje ogromne możliwości i poprawia błędy poprzednich wydań, dzięki czemu optymalizacja SEO jest znacznie łatwiejsza, a można też pokusić o kilka poprawek, które posłużą nam jako niezły dopalacz SEO(optymalizacja), a przynajmniej solidne przygotowanie do pozycjonowania.

Wymagania:

  • IPB 3.3.3 i wyżej
  • mod rewrite - htaccess
  • 10 minut wolnego czasu :P

Uwagi:

  • jeśli twoje forum ma już inną formę przyjaznych linków(np. domyślne) zadbaj o ich przekierowania w .htaccess dając 301 dla starej formatki linków! W ten sposób przeniesiesz ruch ze starych adresów www i Page Rank.

Part 1: Przyjazne adresy www i optymalizacje jakich dotąd nie było na forum IPB

Tezy:

  • maksymalne skrócenie adresu WWW
  • przyjazne adresy stron

Gotowe rozwiązanie IPB:

  • htt p://nazwa-forum.pl/forum/ID-tytul-forum/
  • htt p://nazwa-forum.pl/topic/ID-tytul-tematu/
  • htt p://nazwa-forum.pl/user/ID-nazwa-użytkownika/

Prawda, że długie? Ponadto pojawia się hierarchizacja treści: /katalog/podkatalog, a takich rozwiązań nie lubimy!

Proponowane ustawienia:

  • htt p://nazwa-forum.pl/tytul-forum-fID/
  • htt p://nazwa-forum.pl/tytul-tematu-tID/
  • htt p://nazwa-forum.pl/nazwa-użytkownika-mID/

Rozwiązanie:

  • Wejdź do lokalizacji: admin/applications/forums/extensions/ i otwórz plik furlTemplates.php
  • Podmień domyślną zawartość:
    $_SEOTEMPLATES = array(
    
    'showannouncement' => array( 'app' => 'forums',
    'allowRedirect' => 1,
    'out' => array( '#showannouncement=(.+?)((?:&|&)f=(.+?))?(&|$)#i', 'forum-$3/announcement-$1-#{__title__}/$4' ),
    'in' => array( 'regex' => '#/forum-(\d+?)?/announcement-(\d+?)-#i',
    'matches' => array( array( 'showannouncement', '$2' ), array( 'f', '$1' ) ) ) ),
    
    'showforum' => array( 'app' => 'forums',
    'allowRedirect' => 1,
    'out' => array( '#showforum=(.+?)(&|$)#i', 'forum/$1-#{__title__}/$2' ),
    'in' => array( 'regex' => '#^/forum/(\d+?)-#i',
    'matches' => array( array( 'showforum', '$1' ) ) ) ),
    'showtopicunread'=> array( 'app' => 'forums',
    'allowRedirect' => 1,
    'out' => array( '#showtopic=(.+?)(?:&|&)view=getnewpost(&|$)#i', 'topic/$1-#{__title__}/unread/$2' ),
    'in' => array( 'regex' => '#^/topic/(\d+?)-([^/]+?)/unread(/|$)#i',
    'matches' => array( array( 'showtopic', '$1' ),
    array( 'view', 'getnewpost' ) ) ) ),
    
    'showtopicnextunread'=> array( 'app' => 'forums',
    'allowRedirect' => 1,
    'out' => array( '#showtopic=(.+?)(?:&|&)view=getnextunread(&|$)#i', 'topic/$1-#{__title__}/nextunread/$2' ),
    'in' => array( 'regex' => '#^/topic/(\d+?)-([^/]+?)/nextunread(/|$)#i',
    'matches' => array( array( 'showtopic', '$1' ),
    array( 'view', 'getnextunread' ) ) ) ), 'showtopic' => array( 'app' => 'forums',
    'allowRedirect' => 1,
    'out' => array( '#showtopic=(.+?)(\#|&|$)#i', 'topic/$1-#{__title__}/$2' ),
    'in' => array( 'regex' => '#^/topic/(\d+?)-#i',
    'matches' => array( array( 'showtopic', '$1' ) ) ) ),
    'acteqst' => array( 'app' => 'forums',
    'allowRedirect' => 1,
    'out' => array( '#act=ST(.*?)&t=(.+?)(&|$)#i', 'topic/$2-#{__title__}/$3' ),
    'in' => array( 'regex' => '#^notavalidrequest$#i',
    'matches' => array( array( 'showtopic', '0' ) ) ) ),
    
    'act=idx' => array( 'app' => 'forums',
    'allowRedirect' => 0,
    'out' => array( '#act=idx(&|$)#i', 'index$1' ),
    'in' => array( 'regex' => '#^/index(/|$|\?)#i',
    'matches' => array( array( 'act', 'idx' ) ) ) ),
    );
    Na taką:

    //optymalizacja SEO by Makensis dla Tweaks.pl v.2,0
    $_SEOTEMPLATES = array( 'acteqst' => array( 'app' => 'forums',
    'allowRedirect' => 1,
    'out' => array( '#act=ST(.*?)&t=(.+?)(&|$)#i', 'topic/$2-#{__title__}/$3' ),
    'in' => array( 'regex' => '#^notavalidrequest$#i',
    'matches' => array( array( 'showtopic', '0' ) ) ) ),
    'showtopicunread'=> array( 'app' => 'forums',
    'allowRedirect' => 1,
    'out' => array( '#showtopic=(.+?)(?:&|&)view=getnewpost(&|$)#i', '#{__title__}-t$1/$2' ),
    'in' => array( 'regex' => '#^/topic/(\d+?)-([^/]+?)/unread(/|$)#i',
    'matches' => array( array( 'showtopic', '$1' ),
    array( 'view', 'getnewpost' ) ) ) ),
    
    
    'showtopicnextunread'=> array( 'app' => 'forums',
    'allowRedirect' => 1,
    'out' => array( '#showtopic=(.+?)(?:&|&)view=getnextunread(&|$)#i', 'topic/$1-#{__title__}/nextunread/$2' ),
    'in' => array( 'regex' => '#^/topic/(\d+?)-([^/]+?)/nextunread(/|$)#i',
    'matches' => array( array( 'showtopic', '$1' ),
    array( 'view', 'getnextunread' ) ) ) ), 'showannouncement' => array( 'app' => 'forums',
    'allowRedirect' => 1,
    'out' => array( '#showannouncement=(.+?)((?:&|&)f=(.+?))?(&|$)#i', 'forum-$3/announcement-$1-#{__title__}/$4' ),
    'in' => array( 'regex' => "#/forum-(\d+?)?/announcement-(\d+?)-#i",
    'matches' => array( array( 'showannouncement', '$2' ), array( 'f', '$1' ) ) ) ),
    
    'showforum' => array( 'app' => 'forums',
    'allowRedirect' => 1,
    'out' => array( '#showforum=(.+?)(&|$)#i', '#{__title__}-f$1/$2' ),
    'in' => array( 'regex' => "#-f(\d+?)\/#i",
    'matches' => array( array( 'showforum', '$1' ) ) ) ), 'showtopic' => array( 'app' => 'forums',
    'allowRedirect' => 1,
    'out' => array( '#showtopic=(.+?)(&|$)#i', '#{__title__}-t$1/$2' ),
    'in' => array( 'regex' => "#-t(\d+?)\/#i",
    'matches' => array( array( 'showtopic', '$1' ) ) ) ),
    'act=idx' => array( 'app' => 'forums',
    'allowRedirect' => 0,
    'out' => array( '#act=idx(&|$)#i', 'index$1' ),
    'in' => array( 'regex' => "#/index(/|$|\?)#i",
    'matches' => array( array( 'act', 'idx' ) ) ) ),
    );
  • Zapisz zmiany w pliku i prześlij plik na serwer
  • Wejdź do lokalizacji: admin/applications/members/extensions/ i otwórz plik furlTemplates.php
  • Podmień zawartość:
    'showuser' => array( 'app' => 'members',
    'allowRedirect' => 1,
    'out' => array( '#showuser=(.+?)((?:&|&)f=(.+?))?(&|$)#i', 'user/$1-#{__title__}/$2$4' ),
    'in' => array( 'regex' => "#^/user/(\d+?)-#i",
    'matches' => array( array( 'showuser', '$1' ) ) ) ),
    Na:
    //optymalizacja SEO by Makensis dla Tweaks.pl v.2.0
    'showuser' => array( 'app' => 'members',
    'allowRedirect' => 1,
    'out' => array( '#showuser=(.+?)((?:&|&)f=(.+?))?(&|$)#i', '#{__title__}-m$1/$2$4' ),
    'in' => array( 'regex' => "#-m(\d+?)\/#i",
    'matches' => array( array( 'showuser', '$1' ) ) ) ),
  • Zapisz zmiany w pliku i prześlij plik na serwer
  • Zaloguj się do Panelu Administratora i wybierz: Zarządzanie pamięcią podręczną, a następnie: Przebuduj pamięć podręczną FURL
  • Jeśli Twoje forum istnieje już jakiś czas w sieci to musisz usunąć stare ustawienia przyjaznych linków z cache forum, w tym celu wejdź w zakładkę: Zaawansowane -> SQL Managment -> Przegląd Bazy
  • W okienku Zapytania SQL u dołu ekranu wpisz:
    UPDATE topics SET title_seo = '' WHERE 1;
    UPDATE forums SET name_seo = '' WHERE 1;
  • Kliknij: Wykonaj zapytanie. Jeśli wystąpi błąd sprawdź czy nie masz prefixa przed tabelami jak np. ibf_ czy ipb_ i uzupełnij nazwy o brakujący prefix
  • Wejdź do lokalizacji: admin/applications/forum/modules_public/forums i otwórz plik topics.php
  • Podmień zawartość:
    $this->registry->output->silentRedirect($this->settings['base_url']."showtopic=".$topicData['tid']. $stUrlParam ."#entry".$post['pid'], $topicData['title_seo'], 302, 'showtopic' );
    na:
    //optymalizacja SEO by Makensis dla Tweaks.pl v.2.0
    $this->registry->output->silentRedirect($this->settings['base_url']."showtopic=".$topicData['tid']. $stUrlParam ."&#entry".$post['pid'], $topicData['title_seo'], 302, 'showtopic' );
    I w dalszej części kodu:
    $this->registry->output->silentRedirect( $this->settings['base_url']."showtopic=".$topicData['tid']."{$stUrlParam}{$search_hl}"."#entry".$pid, $topicData['title_seo'], 302, 'showtopic' );
    Na:
    //optymalizacja SEO by Makensis dla Tweaks.pl v.2.0
    $this->registry->output->silentRedirect( $this->settings['base_url']."showtopic=".$topicData['tid']."{$stUrlParam}{$search_hl}"."&#entry".$pid, $topicData['title_seo'], 301, 'showtopic' );
  • Zapisz zmiany w pliku i prześlij plik na serwer
  • Jeśli występują jakiekolwiek błędy w przekierowaniach to zaloguj się do Panelu Administracyjnego i w głównym menu: Tools & Settings wybierz: System Settings, a następnie zakładkę: System i otwórz pozycję: Search Engines Optimization i wybierz: 'yes' dla opcji: Use .htaccess mod_rewrite. Jeśli nie masz jeszcze w lokalizacji FTP pliku .htaccess musisz go utworzyć ręcznie, Gotowiec znajduje się na podanej stronie IPB, musisz go tylko skopiować i umieścić na serwerze w katalogu głównym forum
  • Teraz w templatce w skin_topic => post, zmień:
    <a itemprop="replyToUrl" data-entry-pid='{$post['post']['pid']}' href='{parse url="showtopic={$post['post']['topic_id']}&amp;page={$this->request['page']}{$post['post']['PermalinkUrlBit']}#entry{$post['post']['pid']}" template="showtopic" seotitle="{$topic['title_seo']}" base="public"}' rel='bookmark' title='{$topic['title']}{$this->lang->words['link_to_post']} #{$post['post']['post_count']}'>
    <a itemprop="replyToUrl" data-entry-pid='{$post['post']['pid']}' href='{parse url="showtopic={$post['post']['topic_id']}{$post['post']['PermalinkUrlBit']}#entry{$post['post']['pid']}" template="showtopic" seotitle="{$topic['title_seo']}" base="public"}' rel='bookmark' title='{$topic['title']}{$this->lang->words['link_to_post']} #{$post['post']['post_count']}'>
    
    

    Na:
     

    <a itemprop="replyToUrl" data-entry-pid='{$post['post']['pid']}' href='{parse url="showtopic={$post['post']['topic_id']}&amp;page={$this->request['page']}{$post['post']['PermalinkUrlBit']}/#entry{$post['post']['pid']}" template="showtopic" seotitle="{$topic['title_seo']}" base="public"}' rel='bookmark' title='{$topic['title']}{$this->lang->words['link_to_post']} #{$post['post']['post_count']}'>
    <a itemprop="replyToUrl" data-entry-pid='{$post['post']['pid']}' href='{parse url="showtopic={$post['post']['topic_id']}{$post['post']['PermalinkUrlBit']}/#entry{$post['post']['pid']}" template="showtopic" seotitle="{$topic['title_seo']}" base="public"}' rel='bookmark' title='{$topic['title']}{$this->lang->words['link_to_post']} #{$post['post']['post_count']}'>
    
    

    I:



    I zapisz zmiany

     

Uwagi odnośnie optymalizacji do artykułu według punktów zmian:

2 - oprócz zmiany w formacie linków zastosowano poważną modyfikację dla strony głównej. Od teraz nowa treść, nowe odpowiedzi w tematach powinny być szybciej i lepiej indeksowane, ponieważ nie ma już przekierowania 302(tzw. tymczasowe przeniesienie strony, bardzo niewskazane w GW) do nich tylko bezpośredni odnośnik. Jakie wady tego rozwiązania? Możliwy mniej równomierny podział Page Rank na podstrony, ale nie ma nic za darmo.

12 - poprawa przekierowań z Widoku użytkownika i na stronie głównej w pozycji data ostatniego posta. Dla Widoku użytkownika zmieniono rodzaj przekierowania z 302 na bardziej sensowne i dające szanse na przeniesienie PageRank z profilu użytkownika przekierowanie 301. Informacje po znaku # są ignorowane przez krawlery wyszukiwarek, więc nic nie stoi na przeszkodzie, aby wykorzystać ten adres i dodać go do sieci połączeń wewnątrz forum. 302 dla pozycji data ostatniego posta jest wskazana, ponieważ zastosowano lepsze rozwiązanie w punkcie 2. oraz tytuł odnośnik - data nie jest wskazana do przekierowania 301.

Ogólne uwagi odnośnie przyjaznych adresów na forum IPB

Jak wiemy użytkownicy nie dbają o to, aby linki do stron dawać w formie bbcode, zazwyczaj ogranicza się to do wklejenia adresu WWW, a parser forum czy portalu zamienia je na przyjazne linki. Im krótszy adres tym większe prawdopodieństwo, że nie zostanie obcięty tytuł linka i tytuł odnośnika będzie łatwiej identyfikowalny dla krawlerów. Np. htt p://nazwa-forum.pl/topic/ID-tytul-tematu/ zamieszczony na jakimś forum da w efekcie coś takiego htt p://nazwa-forum.pl/forums/.....matu/ , gdy się ograniczy długość znaków w tytule możliwe jest go zachowanie w całości bądź mniejsze "okrojenie" przez parser np. do takiego modelu: htt p://nazwa-forum.pl/tytul-tematu-tID/


Part II Szlifowanie forum IPB
Poprawiamy inne bugi i niedoskonałości naszego forum IPB.
Odwiedź takie tematy:

Zmiana tytułu tagów - do dopracowania na razie możemy zmienić lichy tekst /tags/forums na /dowolny-tytul/forums. W najbliższym czasie będzie pełna poprawka

  • Wejdź do lokalizacji: admin/applications/core/extensions/ i otwórz plik furlTemplates.php
  • Podmień zawartość:
    'tags' => array( 'app' => 'core',
    'allowRedirect' => 0,
    'out' => array( '#app=core(&amp;|&)module=search(&amp;|&)do=search(&amp;|&)search_tags=(\S+?)(&amp;|&)search_app=(\S+?)(&amp;|&|$)#i', 'tags/$6/$4/$7' ),
    'in' => array( 'regex' => "#/tags/(\S+?)/(\S+?)/#i",
    'matches' => array( array( 'app', 'core' ), array( 'module', 'search' ), array( 'do', 'search' ), array( 'search_tags', '$2' ), array( 'search_app', '$1' ) ) ) ),
    Na na przykład:
    //optymalizacja SEO by Makensis dla Tweaks.pl v.1.0
    'tags' => array( 'app' => 'core',
    'allowRedirect' => 0,
    'out' => array( '#app=core(&amp;|&)module=search(&amp;|&)do=search(&amp;|&)search_tags=(\S+?)(&amp;|&)search_app=(\S+?)(&amp;|&|$)#i', 'czytaj/$6/$4/$7' ),
    'in' => array( 'regex' => "#/czytaj/(\S+?)/(\S+?)/#i",
    'matches' => array( array( 'app', 'core' ), array( 'module', 'search' ), array( 'do', 'search' ), array( 'search_tags', '$2' ), array( 'search_app', '$1' ) ) ) ),

Ze względu na rozwoją sytuację modułu "tagi" (do SEOVB to jak stąd do kosmosu) zmiany w tagach rozdzieliłem na kolejny artykuł:

  • poprawa tagów w tym poprawa templatki wyświetlania tagów na podstronie (domyślnie ponad 40 linków wychodzących!), tak aby księgowano tylko podobną zawartość, a nie fora, podfora, inne tagi, nazwy użytkowników etc. itd.


  • 2

#2 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 02 01 2013 - 19:21

AKTUALIZACJE PORADNIKA - WAŻNE

 

 

W IPB 3.4.1 należy dodatkowo w punkcie 11:

  • Wejdź do lokalizacji: admin/applications/forum/modules_public/forums i otwórz plik topics.php
  • Podmień zawartość:
    $this->registry->output->silentRedirect($this->settings['base_url']."showtopic=".$topicData['tid']. $stUrlParam ."#entry".$post['pid'], $topicData['title_seo'], 302, 'showtopic' );
    Na:
    $this->registry->output->silentRedirect($this->settings['base_url']."showtopic=".$topicData['tid']. $stUrlParam ."&#entry".$post['pid'], $topicData['title_seo'], 302, 'showtopic' );

Można również przetestować 301 dla tego przekierowania, które wydaje się trafniejszym przekierowaniem ze strony głównej.

W IPB 3.4.2 należy dodatkowo w punkcie 11:

  • Wejdź do lokalizacji: admin/applications/forum/modules_public/forums i otwórz plik topics.php
  • Podmień zawartość:
    $this->registry->output->silentRedirect($this->settings['base_url']."showtopic=".$topicData['tid']. $stUrlParam ."#entry".$post['pid'], $topicData['title_seo'], 302, 'showtopic' );
    Na:
    $this->registry->output->silentRedirect($this->settings['base_url']."showtopic=".$topicData['tid']. $stUrlParam ."&".$post['pid'], $topicData['title_seo'], 302, 'showtopic' );

Można również przetestować 301 dla tego przekierowania, które wydaje się trafniejszym przekierowaniem ze strony głównej.

 

W IPB 3.4.3 i 3.4.4 dodano znacznik: 'isPagesMode'   => 1, który należy uzupełnić w furltemplates dla forum( w przeciwnym wypadku nie będzie działał podział na strony!). W tym celu wykonaj ponownie instrukcję:

  • Wejdź do lokalizacji: admin/applications/forums/extensions/ i otwórz plik furlTemplates.php
     
  • Podmień domyślną zawartość:
      
     $_SEOTEMPLATES = array(
        
        'showannouncement'     => array( 'app'     => 'forums',
                 'allowRedirect' => 1,
                 'out'         => array( '#showannouncement=(.+?)((?:&|&amp;)f=(.+?))?(&|$)#i', 'forum-$3/announcement-$1-#{__title__}/$4' ),
                 'in'         => array( 'regex' => '#/forum-(\d+?)?/announcement-(\d+?)-#i',
                         'matches' => array( array( 'showannouncement', '$2' ), array( 'f', '$1' ) ) ) ),
                    
        'showforum'     => array( 'app'     => 'forums',
                 'allowRedirect' => 1,
                 'out'         => array( '#showforum=(.+?)(&|$)#i', 'forum/$1-#{__title__}/$2' ),
                 'in'         => array( 'regex' => '#^/forum/(\d+?)-#i',
                         'matches' => array( array( 'showforum', '$1' ) ) ) ),    
    'showtopicunread'=> array( 'app'     => 'forums',
                 'allowRedirect' => 1,
                 'out'             => array( '#showtopic=(.+?)(?:&|&amp;)view=getnewpost(&|$)#i', 'topic/$1-#{__title__}/unread/$2' ),
                 'in'             => array( 'regex' => '#^/topic/(\d+?)-([^/]+?)/unread(/|$)#i',
                             'matches' => array( array( 'showtopic', '$1' ),
                         array( 'view', 'getnewpost' ) ) ) ),
                        
        'showtopicnextunread'=> array( 'app'     => 'forums',
                 'allowRedirect' => 1,
                 'out'             => array( '#showtopic=(.+?)(?:&|&amp;)view=getnextunread(&|$)#i', 'topic/$1-#{__title__}/nextunread/$2' ),
                 'in'             => array( 'regex' => '#^/topic/(\d+?)-([^/]+?)/nextunread(/|$)#i',
                                 'matches' => array( array( 'showtopic', '$1' ),
                             array( 'view', 'getnextunread' ) ) ) ),    'showtopic'     => array( 'app'     => 'forums',
                 'allowRedirect' => 1,
                 'out'         => array( '#showtopic=(.+?)(\#|&|$)#i', 'topic/$1-#{__title__}/$2' ),
                 'in'         => array( 'regex' => '#^/topic/(\d+?)-#i',
                         'matches' => array( array( 'showtopic', '$1' ) ) ) ),    
    'acteqst'     => array( 'app'     => 'forums',
                 'allowRedirect' => 1,
                 'out'         => array( '#act=ST(.*?)&t=(.+?)(&|$)#i', 'topic/$2-#{__title__}/$3' ),
                 'in'         => array( 'regex' => '#^notavalidrequest$#i',
                         'matches' => array( array( 'showtopic', '0' ) ) ) ),
            
        'act=idx'     => array( 'app'     => 'forums',
                 'allowRedirect' => 0,
                 'out'         => array( '#act=idx(&|$)#i', 'index$1' ),
                 'in'         => array( 'regex' => '#^/index(/|$|\?)#i',
                         'matches' => array( array( 'act', 'idx' ) ) ) ),
        );
        
    Na taką:

        //optymalizacja SEO by Makensis dla Tweaks.pl v.2.1 (dla IPB 3.4.4)
    $_SEOTEMPLATES = array(    'acteqst'     => array( 'app'     => 'forums',
                 'allowRedirect' => 1,
    'isPagesMode'   => 1,
                 'out'         => array( '#act=ST(.*?)&t=(.+?)(&|$)#i', 'topic/$2-#{__title__}/$3' ),
                 'in'         => array( 'regex' => '#^notavalidrequest$#i',
                         'matches' => array( array( 'showtopic', '0' ) ) ) ),    
    'showtopicunread'=> array( 'app'     => 'forums',
                 'allowRedirect' => 1,
    'isPagesMode'   => 1,
                 'out'             => array( '#showtopic=(.+?)(?:&|&amp;)view=getnewpost(&|$)#i', '#{__title__}-t$1/$2' ),
                 'in'             => array( 'regex' => '#^/topic/(\d+?)-([^/]+?)/unread(/|$)#i',
                             'matches' => array( array( 'showtopic', '$1' ),
                         array( 'view', 'getnewpost' ) ) ) ),
                    
            
        'showtopicnextunread'=> array( 'app'     => 'forums',
                 'allowRedirect' => 1,
                 'out'             => array( '#showtopic=(.+?)(?:&|&amp;)view=getnextunread(&|$)#i', 'topic/$1-#{__title__}/nextunread/$2' ),
                 'in'             => array( 'regex' => '#^/topic/(\d+?)-([^/]+?)/nextunread(/|$)#i',
                                 'matches' => array( array( 'showtopic', '$1' ),
                             array( 'view', 'getnextunread' ) ) ) ),    'showannouncement'     => array( 'app'                         => 'forums',
                                                                                     'allowRedirect' => 1,
                                                                                     'out'                 => array( '#showannouncement=(.+?)((?:&|&amp;)f=(.+?))?(&|$)#i', 'forum-$3/announcement-$1-#{__title__}/$4' ),
                                                                                     'in'         => array( 'regex' => "#/forum-(\d+?)?/announcement-(\d+?)-#i",
                                                                                                                                     'matches' => array( array( 'showannouncement', '$2' ), array( 'f', '$1' ) ) ) ),    
    
        'showforum' => array( 'app'         => 'forums',
                     'allowRedirect' => 1,
                     'out'                 => array( '#showforum=(.+?)(&|$)#i', '#{__title__}-f$1/$2' ),
                     'in'         => array( 'regex' => "#-f(\d+?)\/#i",
                             'matches' => array( array( 'showforum', '$1' ) ) ) ),    'showtopic' => array( 'app'         => 'forums',
                     'allowRedirect' => 1,
                     'out'                 => array( '#showtopic=(.+?)(&|$)#i', '#{__title__}-t$1/$2' ),
                     'in'         => array( 'regex' => "#-t(\d+?)\/#i",
                             'matches' => array( array( 'showtopic', '$1' ) ) ) ),    
         'act=idx'     => array( 'app'                         => 'forums',
                                                             'allowRedirect' => 0,
                                                             'out'                 => array( '#act=idx(&|$)#i', 'index$1' ),
                                                             'in'         => array( 'regex' => "#/index(/|$|\?)#i",
                                                                                                             'matches' => array( array( 'act', 'idx' ) ) ) ),
        );
        
     
  • Zapisz zmiany  w pliku i prześlij plik na serwer


Użytkownik makensis edytował ten post 28 04 2013 - 15:38

  • 0

#3 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 17 01 2013 - 20:25

Part III SEO TITLE IPB cd..
Niedawno zwróciłem uwagę, że tagi <TITLE> - tytuły w IPB nie są doskonałe. O ile dla tematów możemy się przyczepić, że są zbyt długie to dla forów z kolei mamy bardzo krótkie tytuły.
Domyślny schemat tytułów tematów wygląda tak: {nazwa tematu} - {nazwa działu} - {nazwa całego forum}, dla forów: {tytuł forum} - {nazwa całego forum}. My chcemy uzyskać taki efekt
{nazwa tematu} - {nazwa działu} - {nazwa całego forum} => {nazwa tematu} - {nazwa działu}
{tytuł forum} - {nazwa całego forum} => {tytuł forum} - {tytuł działu} - {nazwa całego forum}

Do dzieła!
  • Otwieramy plik: forums.php w lokalizacji: /admin/applications/forums/modules_public/forums
  • W linii 212 podmień:
    	$this->registry->getClass('output')->setTitle( strip_tags($this->forum['name']) . ' - ' . ipsRegistry::$settings['board_name'] );
    
    na:
    	$this->registry->getClass('output')->setTitle( strip_tags($this->forum['name']) . ' - ' . $this->registry->getClass('class_forums')->forum_by_id[ $this->forum['parent_id'] ]['name'] . ' - ' . ipsRegistry::$settings['board_name'] );
    
  • Otwieramy plik: topics.php w lokalizacji: /admin/applications/forums/modules_public/forums
  • W linii 376 szukamy polecenia:
    $this->registry->output->setTitle( strip_tags( $topicData['title'] ) . '<%pageNumber%> - ' . $forumData['name'] . ' - ' . $this->settings['board_name']);
    
    I podmieniamy na:
    $this->registry->output->setTitle( strip_tags( $topicData['title'] ) . '<%pageNumber%> - ' . $forumData['name'] );
    
  • Zapisujemy zmiany i voila :)

  • 0

#4 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 18 01 2013 - 14:34

Part IV Tagi przyjazne SEO
Od wersji IPB 3.3 mamy możliwość wstawiania tagów do tematów. W widoku tematu pojawia nam się dodatkowe okno z informacją o artykułach o tych samych tagach. I tutaj pojawia się "piaskownica", ponieważ oprócz samych temat, po osoby aktywne w wątku. W tym artykule pokażę jak spersonalizować okno tagów, aby linki tam zamieszczone nabrały odpowiedniej mocy.
Do dzieła!
  • Wybierz "topic" w "skin_forum", w twojej domyślnej skórce forum
  • Znajdź bit:

    <if test="showForumNav:|: ! $inforum && $data['nav']">
    		 <foreach loop="nav:$data['nav'] as $nav">
    		 <a href="{parse url="$nav[1]" template="showforum" base="public" seotitle="$nav[2]"}" class="ipsText_small desc">{$nav[0]}</a> <span class="ipsText_small desc">&rarr;</span>&nbsp;
    		 </foreach>
    		 </if>
    i usuń go..
    W tym momencie w zależności od stopnia skomplikowania forum pozbyliśmy się od 4 do 20 linków..cd:
  • Zapisz zmiany i voila! Niestety dalsza edycja templatki zaburza widok tematów na forum. Jeszcze nie rozwiązałem tego problemu.
Teraz skróćmy adres tagów IPB!

Tezy:
  • maksymalne skrócenie adresu WWW
  • przyjazne adresy stron
Gotowe rozwiązanie IPB:
  • htt p://nazwa-forum.pl/tags/forums/tytul+tagu/
Prawda, że długie? Ponadto pojawia się hierarchizacja treści: /katalog/podkatalog, a takich rozwiązań nie lubimy!

Proponowane ustawienia:
  • htt p://nazwa-forum.pl/tytul+tagu/
Rozwiązanie:
  • Wejdź do lokalizacji: admin/applications/core/extensions/ i otwórz plik furlTemplates.php
  • Znajdź linijkę:

    'tags' => array( 'app' => 'core',
    'allowRedirect' => 0,
    'out' => array( '#app=core(&amp;|&)module=search(&amp;|&)do=search(&amp;|&)search_tags=(\S+?)(&amp;|&)search_app=(\S+?)(&amp;|&|$)#i', 'tags/$6/$4/$7' ),
    'in' => array( 'regex' => "#/tags/(\S+?)/(\S+?)/#i",
    'matches' => array( array( 'app', 'core' ), array( 'module', 'search' ), array( 'do', 'search' ), array( 'search_tags', '$2' ), array( 'search_app', '$1' ) ) ) ),
    
    I zamień na:

    //optymalizacja SEO by Makensis dla Tweaks.pl v.2,2
    'tags' => array( 'app' 	 => 'core',
    'allowRedirect' => 0,
    'out'		 => array( '#app=core(&amp;|&)module=search(&amp;|&)do=search(&amp;|&)search_tags=(\S+?)(&amp;|&)search_app=forums(&amp;|&|$)#i', 'czytaj-$4/' ),
    	 'in'		 => array( 'regex' => "#/czytaj-(\S+?)/#i",
    		 'matches' => array( array( 'app', 'core' ), array( 'module', 'search' ), array( 'do', 'search' ), array( 'search_tags', '$1' ), array( 'search_app', 'forums' ) ) ) ),
    
  • Zapisz zmiany w pliku
  • Zaloguj się do Panelu Administratora i wybierz: Zarządzanie pamięcią podręczną, a następnie: Przebuduj pamięć podręczną FURL
  • Od tego momentu nasze linki do tagów uległy ZNACZNEMU skróceniu!

  • 0

#5 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 24 01 2013 - 17:38

Part V Tagi przyjazna templatka a'la vB SEO

  • Wybierz "topicViewTemplate" w "skin_topic", w twojej domyślnej skórce forum
  • Znajdź bit:
    {parse template="topic" group="forum" params="$tdata, $forum, array(), false"}
    
    i zamień na:
    {parse template="seo_makensis" group="forum" params="$tdata, $forum, array(), false"}
    
  • Dodaj nowy bit:
    Nazwa bitu szablonu: seo_makensis
    Dodaj do grupy: skin_forum
    Zmienne: $data, $forum_data, $other_data, $inforum
  • Otworzy ci się panel edycji bitu "seo_makensis", w którym wklejasz:
    <if test="queuedtopic:|:($this->memberData['is_mod'] AND ! $data['approved']) OR $data['_isDeleted']">
    <tr itemscope itemtype="http://schema.org/Article" class='__topic <if test="!$data['folder_img']['is_read']">unread</if> expandable moderated' id='trow_{$data['_tid']}' data-tid="{$data['_tid']}">
    <else />
    <tr itemscope itemtype="http://schema.org/Article" class='__topic <if test="!$data['folder_img']['is_read']">unread</if> expandable' id='trow_{$data['_tid']}' data-tid="{$data['_tid']}">
    </if>
    <td class='col_f_icon altrow short'>
    {parse template="generateTopicIcon" group="global_other" params="$data['folder_img'], isset($data['_unreadUrl']) ? $data['_unreadUrl'] : ''"}
    </td>
    <td class='col_f_content <if test="hasmodlinks:|:$this->memberData['is_mod'] == 1 || $forum_data['permissions']['TopicSoftDelete']"> with_mod_links</if>'>
    
    <if test="hasPrefix:|:!empty($data['tags']['formatted']['prefix'])">
    {$data['tags']['formatted']['prefix']}
    </if>
    
    <h4>
    {$data['prefix']}
    <a itemprop="url" id="tid-link-{$data['_tid']}" href="{$data['_url']}" title='{parse exp<b></b>ression="strip_tags($data['title'])"} {$this->lang->words['topic_started_on']} {parse date="$data['start_date']" format="LONG"}' class='topic_title' <if test="topicDeletedReason:|:$data['_isDeleted']">data-tooltip="{parse exp<b></b>ression="sprintf( $this->lang->words['tdb__forumindex'], $other_data['sdData'][ $data['tid'] ]['members_display_name'] )"} {parse date="$other_data['sdData'][ $data['tid'] ]['sdl_obj_date']" format="long"}
    	 <if test="showReason:|:$forum_data['permissions']['SoftDeleteReason']">
    	 <br /><span><if test="$other_data['sdData'][ $data['tid'] ]['sdl_obj_reason']">{$other_data['sdData'][ $data['tid'] ]['sdl_obj_reason']}<else />{$this->lang->words['tdb__noreasongi']}</if></span>
    	 </if>
    "</if>>
    <span itemprop="name">{$data['title']}</span>
    </a>
    </h4>
    
    </td>
    
    
    </tr>
    <if test="adCodeCheck:|:isset($data['_adCode']) AND $data['_adCode']">
    <tr>
    <th scope='col' colspan='<if test="adCodeColSpan:|:$this->memberData['is_mod'] == 1">6<else />5</if>'>
    {$data['_adCode']}
    </th>
    </tr>
    </if>
    
  • Zapisz zmiany
  • Teraz wybierz: Wyszukiwanie i bit: SearchResultsWrapper
  • Wyszukaj w kodzie:
    <if test="hasSearchResultsTags:|:$total > 0 AND $search_tags != ''">
    {parse exp<b></b>ression="sprintf( $this->lang->words['tag_search_results'], $total, $search_tags )"}
    </if>
    
    I zamień na:
    <if test="hasSearchResultsTags:|:$total > 0 AND $search_tags != ''">
    <h1 class='ipsType_pagetitle'> {parse exp<b></b>ression="$search_tags "} </h1>
    {parse exp<b></b>ression="sprintf( $this->lang->words['tag_search_results'], $total, $search_tags, "by Makensis SEO" )"}
    </if>
    
    Usuń:
    <if test="IPSLib::appIsSearchable( 'core', 'search' )">
    	 <li <if test="helpTab:|:$this->request['search_app'] == 'core'">class='active'</if>><a href='{parse url="{$url_string}&amp;search_app=core" base="public"}'>{IPSLib::getAppTitle( 'core' )}</a></li>
    	 </if>
    
    Za:
    <div class='ipsLayout_left'>
    
    Wstaw:
    <if test="hasSearchResultsTags:|:$total == 0 AND $search_tags == ''">
    
    A następnie:
    Za:
    <a href='{parse url="{$url_string}&amp;search_app={$current_key}&amp;search_app_filters[{$this->request['search_app']}][searchInKey]={$_data['0']}" base="public"}'>{$_data[1]}</a>
    	 </li>
    	 </foreach>
    	 </ul>
    </if>
    </div>
    
    
    Wstaw:
    </if>
    
  • Zapisz zmiany i w razie potrzeby przebuduj skin.

    Przykład zastosowania widzisz na dole niniejszego artykułu i po kliknięciu na tagi u góry artykułu.

  • 0

#6 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 30 01 2013 - 17:33

Part VI Przyjazna SEO strona wyszukiwania (np. tagów)
Najlepszym rozwiązaniem jest, aby Google nie księgowało profili użytkowników, ale nie każde forum ma włączoną domyślnie tą funkcję, dlatego prezentuję sposób jak obciąć wyniki wyszukiwania o niepotrzebne odnośniki do profili użytkowników, ostatniego posta itp. W ten sposób usuwamy 2/3 linków obciążających daną stronę WWW.
  • W templatce Wyszukiwanie wybierz: AsForumAsTopic
  • Usuń:
    	<br />{$this->lang->words['aft_started_by']} {$data['starter']}, {parse date="$data['start_date']" format="DATE"}
    	 <if test="hasTags:|:count($data['tags']['formatted'])">
    	 &nbsp;<img src='{$this->settings['img_url']}/icon_tag.png' /> {$data['tags']['formatted']['truncatedWithLinks']}
    	 </if>
    
    Zamień:
    	{$this->lang->words['view_result']}
    
    Na:
    	{$data['_shortTitle']}
    

    Zamień:

    	<a href='{parse url="{$f[1]}" template="showforum" seotitle="{$f[2]}" base="public"}'>{$f[0]}</a>
    
    Na:
    	{$f[0]}
    

    Zamień:
    	<br />{$this->lang->words['n_last_post_by']} {$data['last_poster']},
    	 <a href='{parse url="showtopic={$data['tid']}&amp;view=getlastpost" seotitle="{$data['title_seo']}" template="showtopic" base="public"}' title='{$this->lang->words['goto_last_post']}'>{parse date="$data['_last_post']" format="DATE"}</a>
    
    Na:
    	<br /> Ostatni post: {parse date="$data['_last_post']" format="DATE"}
    

    Zamień:
    	<a href='{parse url="showtopic={$data['tid']}&amp;view=getlastpost" seotitle="{$data['title_seo']}" template="showtopic" base="public"}' title='{$this->lang->words['goto_last_post']}'>{$this->lang->words['n_posted']} {parse date="$data['_post_date']" format="DATE"}</a>
    
    Na:
    	{$this->lang->words['n_posted']} {parse date="$data['_post_date']" format="DATE"}
    

    Najlepszym rozwiązaniem by było usunięcie nazwy forum z listy tematów, zmniejszy to keywords density dla wyszukwianej frazy - gdy pokrywa się nazwa forum z wyszukiwaną frazą.
  • W lokalizacji: /admin/applications/core/modules_public/search otwórz plik: search.php
    Znajdź:
    $this->registry->output->setTitle( IPSText::urldecode_furlSafe( $this->request['search_tags'] ) . ' - ' . $this->lang->words['st_tags'] . ' - ' . IPSLib::getAppTitle( $this->request['search_app'] ) . ' - ' . ipsRegistry::$settings['board_name'] );
    
    Zamień na:
    $this->registry->output->setTitle( IPSText::urldecode_furlSafe( $this->request['search_tags'] ) . ' dowiedz się więcej na Tweaks.pl');
    
  • Zapisz zmiany w pliku

  • 0

#7 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 02 02 2013 - 18:30

Part VII Optymalna struktura linków na forum IPB
To jest najważniejsza rzecz, od której powinno się zacząć optymalizacje forum IPB i stanowi jeden z najlepszych przykładów dobrej szkoły SEO :) Do rzeczy - w tym momencie zmniejszamy liczbę linków na forum o ponad 50% i tym samym zapalamy w większości optymalizatorach stron WWW zieloną lampkę dla IPB! Co ciekawe najnowsze IPB 3.4 posiada tą funkcję domyślnie włączoną, jednak starsze fora i aktualizowane niestety mają ją wyłączoną. Chodzi tu o usunięcie z widoku botów i gości możliwość klikania na nazwy użytkowników i tym samym przeglądania ich profili.

Szacowanie zysków i strat..

Co zyskujemy:
  • nawet 50 % mniej linków wewnętrznych w całej strukturze forum
  • lepsze księgowanie zawartości przez roboty i podział PageRank
Co tracimy:
  • goście nie mogą przeglądać profili użytkowników z poziomu forum (dopiero po zalogowaniu)
Jak widać zysków jest dużo więcej!

Podaję instrukcję jak zmienić to ustawienie dla starszych forów zachowując ruch z profili i jak poprawić działanie tej funkcji w nowych forach IPB:
[hide]
  • W panelu ACP wybierz: Użytkownicy(suers), a następnie Grupy(Manage Member Groups)
  • Kliknij dwukrotnie grupę Gość(guests), aby ją edytować
  • Wybierz zakładkę: Global i ustaw: Can view member profiles and member list? na "No"
  • Teraz wejdź na FTP forum i otwórz plik: View.php w lokalizacji: /admin/applications/members/modules_public/profile
  • Usuń z pliku poniższą komendę:

    W IPB 3.3.X:

    	//-----------------------------------------
    	 // Can we access?
    	 //-----------------------------------------
    	
    	 if ( !$this->memberData['g_mem_info'] )
    	 {
    	 $this->registry->output->showError( 'profiles_off', 10245, null, null, 403 );
    	 }
    

    W IPB 3.4.X:

      //-----------------------------------------
            // Can we access?
            //-----------------------------------------
            
            if ( !$this->memberData['g_mem_info'] && ( $this->memberData['member_id'] != $member['member_id'] ) )
            {
                $this->registry->output->showError( 'profiles_off', 10245, null, null, 403 );
            }
    
  • Zapisz zmiany i ciesz się nowym, lżejszym o linki do profili użytkowników forum!
[/hide]

Powyższa zmiana pozwoli nadal przeglądać gościom profile użytkownika, ale tylko z lokalizacji wyszukiwarki Google - o ile profil jest zaksięgowany w wynikach wyszukiwania!
---
Można też w prosty sposób idąc tym torem zachować poprzednią funkcjonalność nadając linkom profili atrybut rel="nofollow" lub stworzyć własne przekierowanie zamiast standardowego błędu 403.
  • 0

#8 hop

hop

    Nowy

  • 2 postów

Napisano 04 02 2013 - 02:41

bardzo fajny temat. część zastosowalem u siebie i prwie jestem zadowolony.
Niestety nie wszystko dziala u mnie tak do końca dobrze, bo:



link, który wygląda na końcu tak
trala-lala-t11315/?view=getnewpost

po kliknieciu w link zmienia sie na takie cos

trala-lala-t11315#entry340325

a to powosuje błąd
ewidentnie brakuje / przed #
dzieje się tak jak nigdy nie odwiedzalem jeszcze tego tematu. Dla gości wszystko działa ok. O co może chodzić - nie jestem pewien czy to po zastosowaniu Twojej zmiany czy już po samym upgrae do 3.4.2 takie coś mi sie zdarzyło.


I druga sprawa odnośnie linków.
Wcześniej miałem linki kończące się na .htm z racji tego, że nie widziałem u Ciebie przykładu aby pozbyć się tych topic itd ale zachować rozszerzenie, to zdecydowalem sie przejść na końcówkę w linkach "/"
w htaccess wpisałem tylko:
RewriteRule ^([a-z0-9-_]+).(html|htm)$ /$1/ [R=301,L]

i niby fajnie działa i stare linki z google juz mi działają. Jednak stare linki kończące się na : bla-bla-bla-t22312.htm/page__st__20

takich linków mój wpis w htaccess niestety nie złapie. Czy masz pomysł na taki stan rzeczy aby mi "sok" nie wyciekał?
  • 0

#9 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 04 02 2013 - 12:23

Wyślij mi dane dostępowe do FTP na maila, postaram się pomóc. Na innych forach, ale w 3.4.1 nie ma takiego problemu z getnewposts, na wszelki wypadek sprawdź czy postąpiłeś zgodnie z aktualizacją w drugim poście.
  • 0

#10 hop

hop

    Nowy

  • 2 postów

Napisano 04 02 2013 - 13:59

no to przyznaje se, ze nie zmienilem tego pod ipb 3.4.2 ale po tej zmianie i tak mi nie działało - chyba, ze musiałbym jakiś cache wyczyścić. Jadnakk znalazłem #entry gdzies na gorze tego pliku topic.php przepisany bodajze do zmiennej pid i tam to #entry zmienilem na /#entry i zaczęło działać.
Nie wiem tylko czy nie rzutuje to na całość ale jakoś działa.

Użytkownik hop edytował ten post 04 02 2013 - 14:01

  • 0

#11 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 04 02 2013 - 14:25

Generalnie to jest przekierowanie 302, nie testowałem z 301, bo na forum Tweaksa strona główna działa nieco inaczej(lepiej ;) ). Poza tym to co masz w # ignorują boty, więc nie ma co się nad tym rozchodzić.

  • 0

#12 Diox

Diox

    Nowy

  • 4 postów

Napisano 13 05 2013 - 14:38

Witam. Otóż wykonałem wszystkie czynności aż do PART V

Poczym wchodzę na forum i nie mogę wejśc w żaden temat ponieważ wyskakuje błąd 404.

O co chodzi?

 

Mod_rewrite był włączony, już jest ok :D

Btw. Bardzo dobry poradnik!



Użytkownik Diox edytował ten post 13 05 2013 - 14:41

  • 0

#13 Diox

Diox

    Nowy

  • 4 postów

Napisano 16 05 2013 - 14:14

Mam poważny problem, po zmianie FURLA na ten krótszy nie mogę wejść w profil który w nicku ma specjalne znaki

np.

http://www.pcgforum.pl/realny%E2%84%A2-m39/


  • 0

#14 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 17 05 2013 - 03:16

Coś źle wykonałeś, albo masz stary plik core.php (teraz nie musisz edytować funkcji makeSeoTitle, aby mieć polskie znaki w linkach). Sprawdziłem przed chwilą zakładając temat /realny%E2%84%A2-t54361/ (dział moderatorów, ale temat działa..).

 

update.. przecież odnośnik działa tylko masz komunikat wyraźny: "Nie masz uprawnień do przeglądania profili użytkowników.". Popraw uprawnienia zgodnie z poradnikiem plus mój trick i wszystkie profile będą czytelne dla użytkowników i botów wyszukiwarek.


  • 0

#15 Diox

Diox

    Nowy

  • 4 postów

Napisano 17 05 2013 - 13:57

Nie masz uprawnień bo jesteś gościem, musiałbyś się zalogować

login:test

hasło:test

Spróbuje poprawiać jeszcze raz każdy krok zobaczymy oby się udało.

Kiedyś miałem tak samo z tym kodowaniem i też nie działało.

Nieprawidłowe przekierowanie
      
      
      
      
      
        
        
          Firefox wykrył, że serwer przekierowuje żądanie tego zasobu w sposób uniemożliwiający jego ukończenie.
        

        
        

  Problem ten może się pojawić w wyniku zablokowania lub odrzucenia ciasteczek.

Taki błą


Użytkownik Diox edytował ten post 17 05 2013 - 14:15

  • 0

#16 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 18 05 2013 - 11:04

Nie wiem o czym piszesz, odśwież cache przeglądarki i tyle. Zalogowałem się i mam taki komunikat:

 

Nie możemy tego znaleźć!

[#404]

Nie udało się odnaleźć strony, którą próbujesz wyświetlić. Kliknij tutaj, aby powrócić do strony głównej

 

Wypadałoby też napisać jaka wersja forum.


  • 0

#17 Diox

Diox

    Nowy

  • 4 postów

Napisano 31 05 2013 - 19:32

3.3.4


  • 0

#18 Corle1

Corle1

    Nowy

  • 2 postów

Napisano 02 07 2013 - 10:15

Przewodnik jest genialny. Sam jeszcze wczoraj myślałem, że nic już nie wykombinuję z forum i tym brzydkim /topic/ itp. Do tego masa niepotrzebnych linków wewnętrznych w tagach. A tu okazuje się, że jest ratunek i to po Polsku. :) Ogromne dzięki!

 

Mam jeszcze tylko 2 pytania:
1. Czy po aktualizacjach IPB jest ryzyko, że będzie trzeba zaczynać zabawę od nowa? Czy tylko w skrajnych przypadkach jak z tym dodaniem 'isPagesMode'   => 1

2. Rozumiem, że używając forum w wersji IPB 3.4.5, aktualizacja 3.4.1 oraz 3.4.2 mnie nie dotyczy?

 

Jedna uwaga jeszcze:
w poście nr4  dochodzi jeszcze linijka w nowym IPB (przynajmniej tak przypuszczam) – ‘isPagesMode’ => true,
Dodałem ją również w zmienionym kodzie, domyślam się że powinna tam być? Na screenie wrzuciłem to o co mi chodzi:
 link

 

Jeszcze raz ogromne dzięki. W sumie to chyba powinieneś jakoś zmonetyzować tę wiedzę. Bo nazwałbym ją najbardziej potrzebnym poradnikiem dla IPB, szczególnie na starcie ;)


  • 0

#19 makensis

makensis

    Naczelny

  • 5 036 postów

Napisano 02 07 2013 - 16:43

1. Invision Power nie wydaje już aktualizacji tylko kolejne wersje skryptu, które są niezależne - mogą być aktualizacją jak i nową instalacją, co za tym idzie wymagają one podmiany wszystkich plików(nadpisania). Będziesz musiał usunąć z paczki takie pliki jak furltemplates.php oraz topics.php . Reszta bez zmian. Nie radzę instalować nowszej wersji IPB zaraz po jej wydaniu, po czasie okazuje się, że wprowadza ona nowe błędy, które trzeba łatać.

2. jw. każda wersja IPB posiada już wcześniejsze zmiany

3. isPagesMode - dla nowych forów to nie problem już jest w templatce FURLa, pisałem to z myślą o osobach co mają stare wersje pliku.

 

Dzięki ;)


  • 0

#20 Corle1

Corle1

    Nowy

  • 2 postów

Napisano 02 07 2013 - 20:59

[...]

3. isPagesMode - dla nowych forów to nie problem już jest w templatce FURLa, pisałem to z myślą o osobach co mają stare wersje pliku.

 

Dzięki ;)

Dzięki za wcześniejsze informacje w sumie samym IPB bawię się od kilku dni, więc przydatne. ;)  Co do tego 3-ciego problemu miałem na myśli, że robiąc wszystko według poradnika ta linijka (w IPB 3.4.5) zostanie usunięta, dlatego zastanawiałem się czy gdyby jej tam nie było, to czy mogłoby to zaszkodzić?

 

Pozwoliłem sobie na jeszcze małą modyfikację w IPB 3.4.5 w pliku topics.php mianowicie, kod:
$this->registry->output->silentRedirect($this->settings['base_url']."showtopic=".$topicData['tid']. $stUrlParam ."#entry".$post['pid'], $topicData['title_seo'], 302, 'showtopic' );

Zamieniłem na:

$this->registry->output->silentRedirect($this->settings['base_url']."showtopic=".$topicData['tid']. $stUrlParam ."&/#entry".$post['pid'], $topicData['title_seo'], 302, 'showtopic' );

Bez tego niestety w nowych odpowiedziach link tworzył się z końcówką http://strona/temat#entry37/ zamiast http://strona/temat/#entry37. Co dziwne w starych było wszystko ok i przenosiło do ostatniego posta. Pisał o tym wyżej @hop, ale mam nadzieję, że pomoże to osobom, które nie wiedziały gdzie to dodać. ;) Mam nadzieję, że to poprawna forma.

 

 

Druga sprawa, co myślisz by wywalić polskie znaki z linków? Google i tak wyświetla adresy z IPB po breadcrumbach, a podając gdzieś link nie wyskakują „krzaczki”, przez co jest czytelniejszy i krótszy. Oczywiście są różne szkoły więc każdy musi to indywidualnie rozważyć ;) Jakby jednak ktoś zechciał to modyfikacja jest banalna:
 
W pliku admin/sources/base/core.php
szukamy kodu:
if ( IPS_DOC_CHAR_SET != 'UTF-8' )
{
/* http://community.invisionpower.com/resources/bugs.html/_/ip-board/i-broke-furls-urls-with-accents-r41236 */
/* AJAX requests have HTML entities, so convert to accents then romanize */
if ( strstr( $text, '&#' ) )
{
$text = html_entity_decode( $text, ENT_NOQUOTES, 'UTF-8' );
}

$text = self::convertAccents($text);
}

I przerzucamy $text = self::convertAccents($text); poza nawias to znaczy:

if ( IPS_DOC_CHAR_SET != 'UTF-8' )
{
/* http://community.invisionpower.com/resources/bugs.html/_/ip-board/i-broke-furls-urls-with-accents-r41236 */
/* AJAX requests have HTML entities, so convert to accents then romanize */
if ( strstr( $text, '&#' ) )
{
$text = html_entity_decode( $text, ENT_NOQUOTES, 'UTF-8' );
}

}
$text = self::convertAccents($text);

Nie wiem czy to błąd twórców, czy tak miało być, ale po tym zabiegu wywaliło polskie ogonki z linków ;)



Użytkownik Corle1 edytował ten post 02 07 2013 - 20:59

  • 1

Zobacz więcej tematów z tagiem: IPB IP.Board



Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych