Wielkość czcionki po konwersji z phpbb3

Założony przez  sebastos.

nazwa i wersja skryptu, z którego migrowano: phpbb3
wersja skryptu MyBB: 1.6.3 polska paczka
adres forum: http://radioastrolog.pl/konwert
opis problemu:
Nie wiem do końca czy ten dział jest odpowiedni. Jeśli nie, proszę o przeniesienie.

Z wieloma rzeczami przy konwersji sobie poradziłem, ale od kilku godzin siedzę nad kilkoma sprawami dotyczącymi treści postów np. rozmiaru czcionki.
w phpbb3 te polecenia:
[size=50][/size]
[size=85][/size]
[size=150][/size]
[size=200][/size]
odpowiadają tym w mybb:
[size=-4][/size]
[size=0][/size]
[size=4][/size]
[size=8][/size]
Jak to masowo zmienić?

Może coś z tego wątku mógłbym wykorzystać, ale wpisywałem wiele rzeczy i nic nie dało efektu...

Przykład jak to wygląda teraz, a jak powinno:
http://www.forum.radioastrolog.pl/kayah-...t3193.html
http://radioastrolog.pl/konwert/showthread.php?tid=65
Nikt nie zna rozwiązania?
SoulReaver napisał 11.05.2011, 20:41:
W środku tygodnia maleje aktywność, więc nie musisz się tak szybko przypominać ;)
możesz sprecyzować ? które fragmenty ( domyślam się, że sygnatura ) mają niewłaściwe rozmiary ?
dodatkowo jak wygląda treść postu/sygnatury, która daje niewłaściwy wynik
(11.05.2011, 19:59)SoulReaver napisał(a): możesz sprecyzować ? które fragmenty ( domyślam się, że sygnatura ) mają niewłaściwe rozmiary ?
w tym wypadku akurat sygnatura, ale w innym miejscu też posty.
(11.05.2011, 19:59)SoulReaver napisał(a): dodatkowo jak wygląda treść postu/sygnatury, która daje niewłaściwy wynik
treść BBCode już podałem w pierwszym poście, chyba że chodzi o coś innego.

zmieniłem już notatnikiem/geditem, ale przy okazji odkryłem, że tych zmian trzeba zrobić więcej, a ręcznie to mordęga, bo użytkownicy używali np. takich wielkości czcionek 151, 152, 153, 155, 156...
dałoby się to jakoś zautomatyzować, żeby np. od 151-160 zamieniło na 4, a od 161-170 na 5 itd.?
da się zautomatyzować w prosty sposób, ale wiesz, nie miałem nigdy forum opartego o phpBB
chodziło mi o to, bym mógł zobaczyć BBCode [ size=xxx ] i jaki on daje efekt wyjściowy
ot tyle ;)

wcale nie trzeba zamieniać wprost rozmiarów phpBB na MyBB, można ich używać osobno, bądź w ogóle "przepisać" MyBB tak, by działało na BBCodach z phpBB

dlatego powtarzam, napisz który tekst odpowiada któremu bbcode, tak bym wiedział jakie xxx w size=xxx odpowiada jakiej wielkości tekstu
(12.05.2011, 15:48)SoulReaver napisał(a): 1. da się zautomatyzować w prosty sposób
2. chodziło mi o to, bym mógł zobaczyć BBCode [ size=xxx ] i jaki on daje efekt wyjściowy
ot tyle ;)

3. wcale nie trzeba zamieniać wprost rozmiarów phpBB na MyBB, można ich używać osobno, bądź w ogóle "przepisać" MyBB tak, by działało na BBCodach z phpBB

4. dlatego powtarzam, napisz który tekst odpowiada któremu bbcode, tak bym wiedział jakie xxx w size=xxx odpowiada jakiej wielkości tekstu
1. o, super. :)
2. teraz już pozmieniałem w notatniku tą tabelę w bazie, więc raczej nie jest to możliwe.
3. najbardziej by mi chyba odpowiadało, żeby działały oddzielnie.
4. już to napisałem w pierwszym poście. :) chyba, że chodzi Ci o nazwy typu "xx-small"?
chciałem podejść do problemu nieco inaczej, ale skoro:
(12.05.2011, 16:07)sebastos napisał(a): 3. najbardziej by mi chyba odpowiadało, żeby działały oddzielnie.

to chyba takie rozwiązanie będzie Ci odpowiadać
plik inc/class_parser.php, linia 555+
function mycode_handle_size($size$text)
{
    
$size intval($size)+10;

    if(
$size 50)
    {
        
$size 50;
    }

    
$text "<span style=\"font-size: {$size}pt;\">".str_replace("\'""'"$text)."</span>";

    return 
$text;


skupmy się na fragmencie:
1    if($size > 50)
2    {
3        $size = 50;
4    }
z tego fragmentu wynika, że MyBB obsługuje rozmiary do wartości 50, wszystko powyżej zamienia właśnie na 50
jeżeli założymy, że BBCode z phpBB zaczyna się od 50, to należy zamienić linię #3 i wstawić kod, który będzie zamieniał odpowiednie wartości z phpBB na odpowiednie w MyBB

zapisując to analogicznie do tego, co napisałeś wcześniej:
(12.05.2011, 09:35)sebastos napisał(a): dałoby się to jakoś zautomatyzować, żeby np. od 151-160 zamieniło na 4, a od 161-170 na 5 itd.?

podany przeze mnie fragment kodu należało by zapisać następująco:
if($size 50) {
    if ( 
$size 150 && $size 161 ) {
        
$size 4;
    } else if ( 
$size 160 && $size 171 ) {
        
$size 5;
    } else {                
// gdy nie przewidzimy istnienia jakiegoś przedziału wartości
        
$size 50;
    }

dzięki wielkie!
w tym tygodniu będę robił konwersję, więc sprawdzę jak to działa.
a gdybym chciał użyć rozmiarów z phpbb3 na mybb to co powinienem zrobić?

edit:
ostatecznie użyłem:
        if($size 50) {
    if ( 
$size 50 && $size 70 ) {
        
$size 6;
    } else if ( 
$size 69 && $size 80 ) {
        
$size 7;
    } else if ( 
$size 79 && $size 90 ) {
        
$size 8;
    } else if ( 
$size 89 && $size 110 ) {
        
$size 9;
    } else if ( 
$size 109 && $size 130 ) {
        
$size 10;
    } else if ( 
$size 129 && $size 150 ) {
        
$size 11;
    } else if ( 
$size 149 && $size 160 ) {
        
$size 12;
    } else if ( 
$size 159 && $size 180 ) {
        
$size 13;
    } else if ( 
$size 179 && $size 201 ) {
        
$size 15;
    } else if ( 
$size 200 && $size 250 ) {
        
$size 16;
    } else {                
// gdy nie przewidzimy istnienia jakiegoś przedziału wartości
        
$size 11;
    }

zasadniczo podobnie ;) też grzebać w tej funkcji, tylko zrobić to tak, jak ma to phpBB zrobione (a tego nie wiem i nie udało mi się tej wiedzy uzyskać od Ciebie :P )
Temat rozwiązany, ale istnieje inny "myk" który może się komuś przydać:

UPDATE tabela
SET kolumna = REPLACE(kolumna, "STRING_A", "STRING_B")
WHERE kolumna LIKE "%STRING_A%";

To zamieni wszystkie "STRING_A" w kolumnie "kolumna" na "STRING_B" tabeli "tabela". Nie wiem jak dokładnie sprawa wygląda z wydajnością, ale testowałem na jednym shared przy 30k postów i nie było problemów.
dobrze rozumiem, że to trzeba by zamieniać dla każdej wielkości czcionek?



Użytkownicy przeglądający ten wątek:

1 gości