Cięcie tekstu na stronie
Umieszczenie długiego tekstu na stronie WWW bywa kłopotliwe. Strona nie wygląda wtedy najlepiej, zniechęca do czytania, rozjeżdża się. Można oczywiście podzielić tekst na podstrony, ale nie jest to zadanie łatwe ani optymalne.
Jarosław Kordys
Ręczne wstawianie odnośników czy poprawianie tekstu w wielu dokumentach html jest pracą syzyfową i skutkuje wieloma błędami. Dysponując kontem obsługującym technologię php możemy łatwo zautomatyzować budowę takiego serwisu.
Podany kod jest szablonem do budowy strony, realizującym kilka zadań. Wyświetla treść w zależności od wywołanej zmiennej. Konwertuje znaki w treści z CP na ISO, dzięki czemu można używać dowolnego edytora przy zmianie treści. Dzieli treść zawartą w zmiennych tekstowych na słowa i wyświetla ich określoną ilość (określoną zmienną $limit). Dynamicznie buduje menu nawigacyjne umożliwiające dostęp do dalszej części tekstu.
Utworzenie takiej strony krok po kroku:
1 Utwórz szablon strony w HTML (index.php)
2 W miejscu w którym ma się pojawiać tekst wstaw polecenie ‘include('tresc.php');’
3 Linki w menu mają mieć postać <a href="index.php? tresc=home">home</a> <a href="index.php?tresc=strona1"> strona1</a> <a href="index.php?tresc=strona2"> strona2</a> <a href="index.php?tresc=strona3"> strona3</a>
4 Utwórz plik 'tresc.php'
5 Do niego wklej tekst szablonu.
<?
$limit|=100; //tu musisz ustawic limit słów na stronie (empiria najlepszym doradcą)![]()
/*to są zmienne przechowujące tekst strony. Po jednej na podstrone. Mogą zawierać proste tagi <br> <ul> <b> itp. Oczywiście można je wsadzić do osobnego pliku i includować go jak w pkt.2*/
$teksthome=" ";
$tekststrona1=" ";
$tekststrona2=" ";
$tekststrona3=" ";
/*ta część odpowiada za sterowanie stroną. Przypisuje zmiennej $całytekst zmienną zawierającą tekst z danej podstrony. Aby powiększyć ilość podstron wystarczy wstawić następne if($tresc==strona1) $ calytekst =$tekststrona1;else{“ poprawić numerek w zmiennej $tekststrona1; i dostawić jeden nawias zamykający w oznaczonym miejscu*/
if($tresc==home) $calytekst=$teksthome;else{
if($tresc==strona1) $calytekst =$tekststrona1; else{
if($tresc== strona2) $calytekst =$tekststrona2;else{
if($tresc==strona3) $calytekst=$tekststrona3;
//if($tresc==strona1) $ calytekst =$tekststrona1;else{ //Ten tekst dostaw tyle razy ile podstron wiecej potrzebujesz
else {$calytekst=$teksthome;}}}} /* Tu dostaw jeden nawias dla każdej dodatkowej podstrony*/
echo"<br />";
//Dalej już jest prosto
$calytekst = strtr($calytekst, "\xA5\x8C\x8F\xB9\x9C\x9F", "\xA1\xA6\xAC\xB1\xB6\xBC"); //konwersja znaków zapisanych w CP na ISO
$page|=0; //jak page nie ma wartości to ma się równać 0
$tablica=array(); //stwórz tablicę
$tablica=split ('[ ]',$calytekst); /*tablica zawiera słowa z calytekst separatorem słów jest pojedyncza spacja. Dobrze będzie jak tekst będzie porządnie sformatowany */
$ilosc=sizeof($tablica); //ilość slow w tablicy
// wyświetla kolejne elementy tablicy słów aż do osiągnięcia limitu
for($z=$page*$limit;$z<($page+1)*$limit;$z++)
{
echo"$tablica[$z] ";
}
echo"<br> <br>";
//sterowanie linkami zaczerpnięte z forum webinside.pl, autorstwa swierszczyka, lekko przerobione
if ($ilosc > $limit) {
if (($ilosc%$limit) != 0) $l_stron = 1; else $l_stron = 0;
$pomoc = (int)($ilosc/$limit);
$l_stron = ($l_stron+$pomoc)-1;
if ($page >= 1) {
$pomoc = $page-1;
print "<a href=index.php?tresc=$tresc&page=$pomoc>poprzednia</a>\n";
}
$i=0;
while ($i <= $l_stron) {
if ($page == $i)
print " | <b>$i</b>\n";
else
print " | <a href=index.php?tresc=$tresc&page=$i>$i</a>\n";
$i++;
}
if ($page < $l_stron) {
$pomoc = $page+1;
print " | <a href=index.php?tresc=$tresc&page=$pomoc>następna</a>\n";
}
}?>
Wklejono z <http://www.webinside.pl/php/tutoriale/27>
Trochę mi to nie działa jak to jest opisane. Może jest w tym skrypcie jakiś błąd.
Czy ktoś mógłby zerknąć i sprawdzić czy nie ma tam jakiegoś błędu???
