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:
Kod:
[size=50][/size]
[size=85][/size]
[size=150][/size]
[size=200][/size]
odpowiadają tym w mybb:
Kod:
[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?
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+
Kod PHP:
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:
Kod:
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:
Kod PHP:
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:
Kod PHP:
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
)
Temat rozwiązany, ale istnieje inny "myk" który może się komuś przydać:
Kod:
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?