Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] nietypowe stonicowanie (pager), dłuższy tekst
KCG
post
Post #1





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

Ostrzeżenie: (0%)
-----


Chciałbym, aby część tekstu przenosiła się na drugą stronę, jeśli nie mieści się w wysokości strony, np. tu:
http://pytak.no-ip.org/~trudny/motocykl/sh...o=moto&id=4
'Over 130...' powinno być na drugiej stronie. Próbowałem liczyć znaczniki załamań linii, ale to nie zawsze jest wymierne, ponieważ dłuższe linie są zawijane. Myślałem też, żeby liczyć znaki w linii i rozpoznać zawijanie, jeśli jest więcej, ale to też różnie wychodzi. Macie jakiś pomysł?
Tu mój kod:
  1. <?php
  2. $opis = nl2br(stripslashes($moto['o_moto_opis']));
  3. $not = explode('<br />',$opis);
  4. $ile = count($not);
  5. if (!$_GET['cdn']) {
  6. if ($ile <= 30) echo $opis; else {
  7. for ($i = 0; $br <= 30; $i++) {
  8. $length = strlen($not[$i]);
  9. if ($length > 78) {
  10. $br2 = $length/78;
  11. $br += ceil($br2);
  12. }
  13. echo $not[$i].'<br />';
  14. $br++;
  15. }
  16. echo '<p class="cent"><a href="'.adres().'cdn=1&amp;start='.$i.'">Następna strona &gt;</a></p>';
  17. }
  18. } else {
  19. for ($i = $_GET['start']; $i <= $ile; $i++) {
  20. echo $not[$i].'<br />';
  21. }
  22. echo '<p class="cent"><a href="javascript: history.back();">&lt; Poprzednia strona</a></p>';
  23. }
  24. ?>


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 19)
woj_tas
post
Post #2





Grupa: Zarejestrowani
Postów: 230
Pomógł: 36
Dołączył: 31.03.2006
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


Wstaw znacznik. Wordpres wstawia <!--more--> . Musisz pamiętać tylko o tym aby go nie wyświetlać na stronie.


--------------------
Go to the top of the page
+Quote Post
KCG
post
Post #3





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

Ostrzeżenie: (0%)
-----


Nie bardzo rozumiem. Mógłbyś coś więcej napisać?


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
.radex
post
Post #4





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


stwórz jakiś pseudoznacznik ( np. <!--more-->) Podczas wczytywania strony rozbij za pomocą np. explode tekst - explode('<!--more-->', $text) i wczytaj ten element tablicy jaka jest strona.


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
KCG
post
Post #5





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

Ostrzeżenie: (0%)
-----


Tylko chodzi jak to podzielić smile.gif


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
Xniver
post
Post #6





Grupa: Zarejestrowani
Postów: 108
Pomógł: 26
Dołączył: 29.02.2008

Ostrzeżenie: (0%)
-----


Jak to jak?
  1. <?php
  2. $text = explode('<!-nextPage-!>', $text);
  3.  
  4. foreach($text as $pageNum => $pageText)
  5. {
  6. echo 'Strona ' . $pageNum . '<br />';
  7. echo $pageText . '<br />';
  8. }
  9. ?>


Ten post edytował Xniver 5.03.2008, 19:10:30
Go to the top of the page
+Quote Post
KCG
post
Post #7





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

Ostrzeżenie: (0%)
-----


No może niejasno napisałem. Wiem, jak podzielić, tylko nie wiem, w którym momencie tekstu miałbym wstawić ten znak? Chodzi o to, aby wysokość strony była stała. Czyli jeśli wysokość bloku tekstu jest większa niż miejsca, część przenosi się na drugą stronę.


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
dadexix
post
Post #8





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

Ostrzeżenie: (0%)
-----


a szerokość strony jest stała czy zmienna?


--------------------
"Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...]
Grins: mów normalnie do mnie a nie po polsku
Ja: normalnie to znaczy jak?
Grins: No w PHP... inaczej mój parser ledwo kuma:)
Go to the top of the page
+Quote Post
KCG
post
Post #9





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

Ostrzeżenie: (0%)
-----


Stała, ok. 460px.


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
.radex
post
Post #10





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


a to ciężko. Musisz sobie poobliczać wielkość X*Y jednego znaku (i pamiętaj że np. "i" ma inną szerokość od "w") i później pamiętać o \n itp. itd. etc. etc. Jednym słowem mówiąc - bez sensu. Bardzo dużo pracy a wyniki nie będą wspaniałe. Lepiej się pofatygować ze specjalnym tagiem.


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
KCG
post
Post #11





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

Ostrzeżenie: (0%)
-----


Tzn. jak pofatygować ze specjalnym tagiem?


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
.radex
post
Post #12





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


Cytat(Xniver @ 5.03.2008, 19:09:28 ) *
Jak to jak?
  1. <?php
  2. $text = explode('', $text);
  3.  
  4. foreach($text as $pageNum => $pageText)
  5. {
  6.     echo 'Strona ' . $pageNum . '
  7. ';
  8.     echo $pageText . '
  9. ';
  10. }
  11. ?>

No przecie było powiedziane.

Ten post edytował radex_p 7.03.2008, 08:05:30


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
barthpl
post
Post #13





Grupa: Zarejestrowani
Postów: 142
Pomógł: 35
Dołączył: 5.12.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


No zasadniczo chodzi o to abyś podczas tworzenia/edytowania tekstu sam wstawiał znacznik <!-- more --> i potem go wykorzystał przy tworzeniu strony.


--------------------
Jeżeli pomogłem rozwiązać Twój problem, kliknij pomógł.
Go to the top of the page
+Quote Post
KCG
post
Post #14





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

Ostrzeżenie: (0%)
-----


To zasadniczo ja to wiem.
Chodzi mi o to, skąd wiedzieć, gdzie ten znak wstawić?


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
.radex
post
Post #15





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


OMG! Wstaw go sobie tam gdzie sobie zażyczysz. A jak nie będzie równo to przesuń. Nie stwarzaj niestworzonych problemów.


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
KCG
post
Post #16





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

Ostrzeżenie: (0%)
-----


Nie stwarzam problemów, tylko zauważ, że każdy wstawi inny opis z różną ilością załamań wymuszonych i naturalnych, a dla niektórych w ogóle nie będzie potrzebna druga strona, bo się zmieści. Po prostu mnie nie zrozumiałaś :]
Może ktoś ma pomysł, jak to zrobić?


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
.radex
post
Post #17





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


Jaki znowu inny opis?! Wyrażaj się jasno, bo ja nie wiem w końcu, czy chodzi o jakieś komentarze userów, czy masz lay z szerokością w procentach, w każdym bądź razie o ile dobrze zrozumiałem (a pewnie tak nie jest) to co chcesz osiągnąć nie jest (sensownie) wykonalne. Obliczenie szerokości znaków to kupę roboty, a i tak nie będziesz miał fajnych efektów.


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
KCG
post
Post #18





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

Ostrzeżenie: (0%)
-----


Tak się składa, że nie ja to ustalam, jak ma wyglądać.
To jest ogłoszenie i każdy może napisać, co chce. A mi chodzi o to, żeby wysokość strony była stała, więc jeśli tekstu jest za dużo część powinna zostać przeniesiona na drugą stronę. I pytam, jeśli jest to możliwe, jak to zrobić.


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
.radex
post
Post #19





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


No to ja ci (po raz n-ty) odpowiadam:

Teoretycznie jest możliwe:

Cytat
Musisz sobie poobliczać wielkość X*Y jednego znaku (i pamiętaj że np. "i" ma inną szerokość od "w") i później pamiętać o \n itp. itd. etc. etc.


Praktycznie nie:

Cytat
Jednym słowem mówiąc - bez sensu. Bardzo dużo pracy a wyniki nie będą wspaniałe.


Więc czy nie lepiej po prostu zrobić ograniczenie ilości?


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
KCG
post
Post #20





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

Ostrzeżenie: (0%)
-----


Dzięki w każdym razie, trzeba przemyśleć faktycznie, czy warto.


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 03:59