Skocz do zawartości


Zdjęcie

forum IPB przyjazne adresy stron www dla ZAAWANSOWANYCH


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

#1 makensis

makensis

    Naczelny

  • 5035 postów

Napisano 27 07 2012 - 17:32

Od czasu wydania IPB 3.3 do IPB 3.4.0(!) pod znakiem zapytania była możliwość głębszej customizacji adresów www generowanych przez IPB. O tym, że są one niedoskonałe pisałem wiele razy, ale niestety do dziś InvisionPower nie wykonało zbyt wiele, aby zoptymalizować tworzone przez forum przyjazne adresy WWW. Weźmy sprawy w swoje ręce! Zapraszam do artykułu.

Źródłem inspiracji niech będzie Wikipedia, która była pionierem pod względem optymalizacji treści właśnie dla wyszukiwarek internetowych. Otóż Wikipedia stanowi doskonałe źródło informacji w wielu językach i właśnie aspekt lokalizacji językowej adresów WWW zadecydował o jej popularności tej encyklopedii nie tylko w wersji anglojęzycznej! W tytułach linków pojawiły się narodowe znaki diakrytyczne.

O tym, że Google inaczej widzi zapytania z polskimi i bez polskich znaków diakrytycznych łatwo się przekonać wpisując daną frazę ze znakimi polskimi jak i bez nich. Otrzymane wyniki mogą się różnić i na pewno nie będzie to wina odczytów z różnych serwerów Google. Dowód?

Dołączona grafika

Zmiana adresów podstron na takie, które zawierają polskie znaki diakrytyczne w forum IPB (National words in url addresses of forums IPB)

Wymagania:
  • IPB 3.3.3 lub IPB 3.2.X(wystarczy zmiana z pominięciem 4-6 punktu)
  • kodowanie znaków forum: UTF-8
Zalecenia:
  • forum nieanglojęzyczne - szczególnie pozytywny wpływ powinny zauważyć fora krajów posiadających całkowicie odrębny alfabet np. rosyjskie, ukraińskie, tajskie, wietnamskie etc.
I krok:
  • Przejdź do lokalizacji: /admin/source/base/ i edytuj plik: core.php
  • Znajdź funkcję: makeSeoTitle( $text ) i podmień zawartośc funkcji na:
    	 {
    	
    	 if ( ! $text )
    	
    	 {
    	
    	 return '';
    	
    	 }
    	
    	
    	
    	/* Usuniecie niepotrzebnych znakow */
    	
    	 $text = urldecode( $text );
    	
    	 $text = htmlspecialchars_decode( $text );
    	
    	 $text = html_entity_decode( $text );
    	
    	 $text = strip_tags($text);
    	
    	
    	
    	 /* Zabawa z kodowaniem */
    	
    	 /* if ( IPSText::isUTF8($text) && strtolower( IPS_DOC_CHAR_SET ) != 'utf-8' )
    	
    	 {
    	
    	 if ( mb_detect_encoding( $text ) == "UTF-8" )
    	
    	 {
    	
    	 $text = mb_convert_encoding( $text, IPS_DOC_CHAR_SET, "UTF-8" );
    	
    	 } else {
    	
    	 $text = mb_convert_encoding( $text, IPS_DOC_CHAR_SET );
    	
    	 }
    	
    	 } else {
    	
    	
    	
    	 } */
    	
    	
    	
    	 if ( ! $text )
    	
    	 {
    	
    	 return '';
    	
    	 }
    	
    	
    	
    	 /* Preserve %data */
    	
    	 $text = preg_replace('#%([a-fA-F0-9][a-fA-F0-9])#', '-xx-$1-xx-', $text);
    	
    	 $text = str_replace( array( '%', '`' ), '', $text);
    	
    	 $text = preg_replace('#-xx-([a-fA-F0-9][a-fA-F0-9])-xx-#', '%$1', $text);
    	
    	
    	
    	 mb_internal_encoding( IPS_DOC_CHAR_SET );
    	
    	 mb_regex_encoding( IPS_DOC_CHAR_SET );
    	
    	
    	
    	 $text = preg_replace( '/&#(\d){2,};/', '', $text );
    	
    	
    	
    	 /* Finish off */
    	
    	 /*$text = mb_strtolower($text, IPS_DOC_CHAR_SET);*/
    	
    	
    	
    	 if ( strtolower( IPS_DOC_CHAR_SET ) == 'utf-8' )
    	
    	 {
    	
    	 $text = preg_replace( '#&.+?;#'	 , '', $text );
    	
    	
    	
    	 $rgx = "[^\w\d\-_ ]";
    	
    	 mb_ereg_search_init( $text );
    	
    	 $r = @mb_ereg_search($rgx, "msri");
    	
    	
    	
    	 if ( $r )
    	
    	 {
    	
    	 $r = mb_ereg_search_getregs();
    	
    	
    	
    	 while ( $r )
    	
    	 {
    	
    	 $text = str_replace( $r[0], '', $text );
    	
    	 $r = mb_ereg_search_regs();
    	
    	 }
    	
    	 }
    	
    	 }
    	
    	 else
    	
    	 {
    	
    	 $text = preg_replace( '/&#(\d){2};/', '', $text );
    	
    	 $text = preg_replace( '/[^a-z0-9- '.implode($this->plChars['i4']).']*/', '', $text );
    	
    	 }
    	
    	
    	
    	 $text = str_replace( array( '`', ' ', '+', '.', '?', '_', '#', '&', ';', '*' ), '-', $text );
    	
    	 $text = preg_replace( "#-{2,}#", '-', $text );
    	
    	 $text = trim($text, '-');
    	
    	
    	
    	 return ( $text ) ? $text : '-';
    	
    	 }	
    


  • Zapisz zmiany w pliku. Funkcję można oczywiście zooptymalizować we własnym zakresie.

  • Przejdź do lokalizacji: admin/sources/classes/output i edytuj plik publicOutput.php

  • Usuń:
    	if ( strstr( $_toTest, '%' ) )
    	 {
    	 /* Lowercase it as some browsers send %E2 but it will be stored as %e2 */
    	 $_toTest = strtolower( $_toTest );
    	 }
    


  • Zapisz zmiany w pliku

  • Wyczyść cache FURL oraz usuń wszystkie stare wpisy FURL przez wpisanie komend SQL w panelu administracyjnym lub phpMyAdmin:
    UPDATE ibf_topics SET title_seo = '' WHERE 1
    UPDATE ibf_forums SET name_seo = '' WHERE 1
Efekt:

Dołączona grafika

Powyższy temat nie wyczerpuje kwestii tworzenia przyjaznych odnośników do forum IPB. Zapraszam do przeczytania artykułu: poprawa SEO w IPB.

  • 0

#2 makensis

makensis

    Naczelny

  • 5035 postów

Napisano 18 01 2013 - 23:19

Cieszą się Rosjanie, Tajowie i Polacy, bo spełniły się ich modlitwy i IPB 3.4.1 już domyślnie akceptuje narodowe znaki diakrytyczne w adresach WWW! Działa to wyśmienicie i jak widać IPS w końcu zmierza w dobrym kierunku..

  • 0

#3 makensis

makensis

    Naczelny

  • 5035 postów

Napisano 24 01 2013 - 16:42

IPB 3.4.2 już po testach. System się sprawdza i sam akceptuje polskie znaki w adresach WWW, oczywiście jeśli chcemy mieć duże i małe litery w odnośnikach to wykonujemy poniższą instrukcję:

Zmiana linków IPB 3.4.X na takie, które zawierają duże i małe litery (Uppercase letters in friendly url addresses(FURL) on forums IPB)

Jest to kontynuacja niniejszego artykułu, a właściwie uzupełnienie nowej wersji IPB o możliwość akceptacji dużych i małych liter w adresach WWW. Miłej lektury :)
  • 0

#4 makensis

makensis

    Naczelny

  • 5035 postów

Napisano 01 01 2015 - 21:36

Zmiana adresów podstron na takie, które zawierają polskie znaki diakrytyczne w forum IPB jest kompatybilne z IPB 3.4.7.


  • 0

#5 makensis

makensis

    Naczelny

  • 5035 postów

Napisano 09 09 2015 - 10:28

Zmiana adresów podstron na takie, które zawierają polskie znaki diakrytyczne w forum IPB jest kompatybilna z IPB 3.4.8.

  • 0

Podobne tematy

Nie znalazłem podobnego tematu - chcę założyć nowy wątek i uzyskać szybką pomoc!
Zobacz więcej tematów z tagiem: IPB IP.Board



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

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