Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z prostą księgą gości
44cichy44
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 20.04.2011

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


Witam. Zostałem poproszony o edycję kody na ksigę wpisów, ale nie daje rady wiec piszę do Was.

Nie umię zrobić aby dodany tekst przechodził automatycznie do następnej linijki np po 100 znkach.

Zamieszczam początkowy fragment kodu. Dodam że kod zostałpobrany z gotowego pliku.

  1. <?php
  2.  
  3.  
  4. class ksiega_gosci {
  5.  
  6. var $obramowanie; // Grubość obramowania
  7.  
  8. var $szerokosc; // Szerokość skryptu na stronie - formularze i listy wpisów
  9. var $szerokosc_form; // Szerokość opisu formularza
  10. var $szerokosc_note; // Szerokość opisu wpisu
  11. var $szerokosc_navi; // Szerokość opisu paska opisu nawigacji
  12. var $maxsize; // Maksymalna ilość znaków we wpisie
  13.  
  14. var $kolor; // Kolor tła skryptu
  15. var $kolor_lini; // Kolor lini oddzielajacej wpisy
  16. var $kolor_liter_a; // Kolor liter pola autor
  17. var $kolor_liter_n; // Kolor liter pola wpisu
  18. var $kolor_liter_d; // Kolor liter pola daty
  19. var $kolor_liter_ue; // Kolor liter pól Usuń i Edytuj
  20.  
  21. var $wielkosc_lini; // Grubość linii oddzielającej
  22. var $wielkosc_liter_a; // Wielkość liter autor
  23. var $wielkosc_liter_n; // Wielkość liter wpisu
  24. var $wielkosc_liter_d; // Wielkość liter daty
  25. var $wielkosc_liter_ue; // Wielkość liter pól Usuń i Edytuj
  26.  
  27.  
  28. var $file; // Plik z wpisami
  29. var $note_jump; // Ilość wpisów na stronie
  30. var $note_count; // Liczba wpisów w pliku z wpisami
  31. var $isRefreshed; // Czy strona została odświerzona
  32. var $refreshCode; // Kod odświerzania
  33. var $OneNoteLines; // Liczba linii jednego wpisu
  34.  
  35. var $COMMENTS; // Odpowiedzi skryptu na aktywność użytkownika
  36. var $NAVIGATION; // Napisy nawigacyjne
  37. var $FIELD; // Nazwy pól
  38. var $ACTION; // Akcje formularzy
  39.  
  40.  
  41. function ksiega_gosci($file)
  42. {
  43. // Inicjacja wartości domyślnych
  44. $this->obramowanie = 0;
  45. $this->szerokosc = 500;
  46. $this->szerokosc_form = 200;
  47. $this->szerokosc_note = 100;
  48. $this->szerokosc_navi = 300;
  49. $this->maxlen = 15;
  50. $this->maxsize = 500;
  51.  
  52. $this->kolor = "red";
  53. $this->kolor_lini = silver;
  54. $this->kolor_liter_a = black;
  55. $this->kolor_liter_w = silver;
  56. $this->kolor_liter_n = white;
  57. $this->kolor_liter_d = silver;
  58. $this->kolor_liter_g = black;
  59. $this->kolor_liter_ue = black;
  60.  
  61. $this->wielkosc_lini = 5;
  62. $this->wielkosc_liter_a = 3;
  63. $this->wielkosc_liter_w = 3;
  64. $this->wielkosc_liter_n = 3;
  65. $this->wielkosc_liter_d = 2;
  66. $this->wielkosc_liter_g = 3;
  67. $this->wielkosc_liter_ue = 3;
  68.  
  69. $this->file = $file;
  70. $this->note_jump = 10;
  71. $this->OneNoteLines = 5;
  72. $this->note_count = count(file($this->file))/$this->OneNoteLines;
  73. $this->isRefreshed = 0;
  74. $this->refreshCode = md5(date("Y-m-d-H-i-s"));
  75.  
  76. $this->NAVIGATION[0] = "FIRST";
  77. $this->NAVIGATION[1] = "PRIV";
  78. $this->NAVIGATION[2] = "NEXT";
  79. $this->NAVIGATION[3] = "LAST";
  80. $this->NAVIGATION[4] = "EDIT";
  81. $this->NAVIGATION[5] = "DEL";
  82. $this->NAVIGATION[6] = "ADD";
  83. $this->NAVIGATION[7] = "EDIT SAVE";
  84. $this->NAVIGATION[8] = "RESET";
  85.  
  86. $this->FIELD[0] = "AUTHOR";
  87. $this->FIELD[1] = "EMAIL";
  88. $this->FIELD[2] = "WWW";
  89. $this->FIELD[3] = "GG";
  90. $this->FIELD[4] = "NOTE";
  91.  
  92.  
  93. $this->ACTION[0] = "PAGEFIRST";
  94. $this->ACTION[1] = "PAGEPRIV";
  95. $this->ACTION[2] = "PAGENEXT";
  96. $this->ACTION[3] = "PAGELAST";
  97. $this->ACTION[4] = "EDITNOTE";
  98. $this->ACTION[5] = "DELSAVENOTE";
  99. $this->ACTION[6] = "ADDSAVENOTE";
  100. $this->ACTION[7] = "EDITSAVENOTE";
  101. $this->ACTION[7] = "RESET";
  102.  
  103.  
  104. }
  105.  
  106. function setCookieLock()
  107. {
  108. $refreshCode = $_POST['refreshCode'];
  109. $refreshCodeCookie = $_COOKIE['refreshCodeCookie'];
  110.  
  111. if($refreshCode == trim($refreshCodeCookie)) $this->isRefreshed = 1;
  112. if(isset($refreshCode) && $refreshCode != "") setcookie("refreshCodeCookie", $refreshCode, mktime(24, 0, 0, date("m"), date("d"), date("Y")));
  113. }
  114.  
  115. // Funkcja pokazująca wpisy
  116. function wypisz($admin = false)
  117. {
  118. $page = $_POST['page'];
  119.  
  120. $szerokosc1 = $this->szerokosc_note;
  121. $szerokosc2 = $this->szerokosc - $szerokosc1;
  122.  
  123. $szerokosc3 = $this->szerokosc_navi;
  124. $szerokosc4 = $this->szerokosc - $szerokosc3;
  125.  
  126. $note_file = file($this->file);
  127. $note_line_count = count($note_file);
  128. $note_count = $note_line_count/$this->OneNoteLines;
  129.  
  130. if(!isset($page) || (int)$page < 1) $page = 1;
  131.  
  132. $page_count = ceil($note_count/$this->note_jump);
  133.  
  134. $page_first = 1;
  135. $page_priv = $page - 1;
  136. $page_next = $page + 1;
  137. $page_last = $page_count;
  138.  
  139. if($page_priv < 1) $page_priv = 1;
  140. if($page_next > $page_count) $page_next = $page_count;
  141.  
  142. $note_line_from = ($page - 1) * $this->note_jump * $this->OneNoteLines;
  143. $note_line_to = $note_line_from + $this->note_jump * $this->OneNoteLines;
  144. if($note_line_to > $note_line_count) $note_line_to = $note_line_count;
  145.  
  146. //echo "PF: $page_first, PP: $page_priv, P: $page, PN: $page_next, PL: $page_last, PC: $page_count <br>";
  147. //echo "NF: $note_line_from, NT: $note_line_to, NC: $note_line_count <br>";
  148.  
  149. ?>
  150. <script language="Javascript">
  151.  
  152. function pageFirst()
  153. {
  154. document.ksiegagosci.action.value = '<? echo $this->ACTION[0]; ?>';
  155. document.ksiegagosci.page.value = <? echo $page_first; ?>;
  156. document.ksiegagosci.submit();
  157. }
  158.  
  159. function pagePriv()
  160. {
  161. document.ksiegagosci.action.value = '<? echo $this->ACTION[1]; ?>';
  162. document.ksiegagosci.page.value = <? echo $page_priv; ?>;
  163. document.ksiegagosci.submit();
  164. }
  165.  
  166. function pageNext()
  167. {
  168. document.ksiegagosci.action.value = '<? echo $this->ACTION[2]; ?>';
  169. document.ksiegagosci.page.value = <? echo $page_next; ?>;
  170. document.ksiegagosci.submit();
  171. }
  172.  
  173. function pageLast()
  174. {
  175. document.ksiegagosci.action.value = '<? echo $this->ACTION[3]; ?>';
  176. document.ksiegagosci.page.value = <? echo $page_last; ?>;
  177. document.ksiegagosci.submit();
  178. }
  179.  
  180. function noteEdit(noteid)
  181. {
  182. document.ksiegagosci.noteid.value = noteid;
  183. document.ksiegagosci.action.value = '<? echo $this->ACTION[4]; ?>';
  184. document.ksiegagosci.page.value = <? echo $page; ?>;
  185. document.ksiegagosci.submit();
  186. }
  187.  
  188. function noteDel(noteid)
  189. {
  190. if(confirm('<? echo $this->COMMENTS[6]; ?>'))
  191. {
  192. document.ksiegagosci.noteid.value = noteid;
  193. document.ksiegagosci.action.value = '<? echo $this->ACTION[5]; ?>';
  194. document.ksiegagosci.page.value = <? echo $page; ?>;
  195. document.ksiegagosci.submit();
  196. }
  197. }
  198. countNoteChars();
  199.  
  200. </script>
  201. <?
  202.  
  203. $this->COMMENTS[7] = str_replace("<%PAGE%>", $page, $this->COMMENTS[7]);
  204. $this->COMMENTS[7] = str_replace("<%PAGECOUNT%>", $page_count, $this->COMMENTS[7]);
  205. $this->COMMENTS[7] = str_replace("<%NOTECOUNT%>", $note_count, $this->COMMENTS[7]);
  206.  
  207. echo "<form name=\"ksiegagosci\" action=\"$PHP_SELF\" method=\"post\">";
  208.  
  209. echo "<input type=\"hidden\" name=\"noteid\" value=\"\">";
  210. echo "<input type=\"hidden\" name=\"action\" value=\"\">";
  211. echo "<input type=\"hidden\" name=\"page\" value=\"$page\">";
  212. echo "<input type=\"hidden\" name=\"refreshCode\" value=\"".$this->refreshCode."\">";
  213.  
  214. echo "<table cellspacing=\"0\" cellpadding=\"0\" align=\"center\" border=\"0\" width=\"".$this->szerokosc."\">";
  215.  
  216. echo "<tr bgcolor=\"$this->kolor\">";
  217. echo "<td align=\"left\" valign=\"top\" width=\"".$this->szerokosc."\" colspan=\"3\">";
  218.  
  219. echo "<table cellspacing=\"0\" cellpadding=\"0\" align=\"center\" border=\"0\" width=\"".$this->szerokosc."\"><tr>";
  220. echo "<td width=\"$szerokosc3\" align=\"left\">";
  221.  
  222. echo $this->COMMENTS[7];
  223.  
  224. echo "</td>";
  225. echo "<td width=\"$szerokosc4\" align=\"right\">";
  226.  
  227. if($page != $page_first) echo "<a href=\"java script:pageFirst()\">".$this->NAVIGATION[0]."</a>&nbsp;|&nbsp;";
  228. else echo $this->NAVIGATION[0] ."&nbsp;|&nbsp;";
  229.  
  230. if($page != $page_first) echo "<a href=\"java script:pagePriv()\">".$this->NAVIGATION[1]."</a>&nbsp;|&nbsp;";
  231. else echo $this->NAVIGATION[1] ."&nbsp;|&nbsp;";
  232.  
  233. if($page < $page_last) echo "<a href=\"java script:pageNext()\">".$this->NAVIGATION[2]."</a>&nbsp;|&nbsp;";
  234. else echo $this->NAVIGATION[2] ."&nbsp;|&nbsp;";
  235.  
  236. if($page < $page_last) echo "<a href=\"java script:pageLast()\">".$this->NAVIGATION[3]."</a>";
  237. else echo $this->NAVIGATION[3];
  238.  
  239. echo "</td>";
  240. echo "</tr></table>";


Ten post edytował 44cichy44 15.02.2013, 13:43:43
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
markonix
post
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Po 100 znakach? W połowie słowa ma być enter?

Po co w ogóle jakieś odstępy robić w PHP? Jeżeli chcesz aby tekst miał jakąś tam szerokość to zrób to na div (HTML/CSS).

Ten post edytował markonix 15.02.2013, 13:52:35


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





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


dziwna ta księga gości smile.gif
Go to the top of the page
+Quote Post
44cichy44
post
Post #4





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 20.04.2011

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


Wiem, że dziwna bo taką dostałem znalezioną gotową wersję na internecie.

Chodzi mi o toże powejściu na stronę jakktoś doda komentarz żeby nie pisało wszystkiego w jednej linijce takjak to jest teraz

Ten post edytował 44cichy44 15.02.2013, 14:13:27
Go to the top of the page
+Quote Post
markonix
post
Post #5





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Możesz zacząć używać spacji?

Nikt nie widzi jak jest teraz - rozwiń "w jednej linijce".


--------------------
Go to the top of the page
+Quote Post
44cichy44
post
Post #6





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 20.04.2011

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


Nie nabijajcie zbędnych postów. Ktoś pomoże jak zrobic żeby dodawane komentarze nie były w jednej linijce tylko automatycznie przechodziło niżej np po 100 znakach?.
Czy tylko wszyscy nabijają zbędne posty?
Go to the top of the page
+Quote Post
Szymciosek
post
Post #7





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Wg. mnie Twój pomysł można wyrzucić do kosza, ustawiając na 100 znaków może się zdarzyć tak, że utniesz słowo w połowie i przerzucisz do następnej linii co już przekłada się na komfort czytania.
Lepiej zrób tak jak pisali wyżej, ustaw sobie konkretny div np na 300px szerokości i do niego ładuj ten tekst chociażby wyjustowany, wtedy nic nie zostanie byle jak ucięte w połowie i lepiej będzie się czytało.

Pozdrawiam,
Szymon
Go to the top of the page
+Quote Post
mimol
post
Post #8





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

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


Nie jestem pewien czy o to ci chodzi, ale zakładając, że w zmiennej komentarz masz komentarz to można zrobić tak:
  1. $komentarz = substr_replace($komentarz, '<br>',100,0);
Go to the top of the page
+Quote Post
markonix
post
Post #9





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Cytat(44cichy44 @ 16.02.2013, 09:49:57 ) *
Nie nabijajcie zbędnych postów. Ktoś pomoże jak zrobic żeby dodawane komentarze nie były w jednej linijce tylko automatycznie przechodziło niżej np po 100 znakach?.
Czy tylko wszyscy nabijają zbędne posty?

Koleś jesteś bezczelny - podałem Ci logiczne rozwiązanie w moim pierwszym poście to się nawet nie umiesz do niego ustosunkować.

A za posty nikt mi nikt nie płaci, ani nie daje cukierków.


--------------------
Go to the top of the page
+Quote Post
44cichy44
post
Post #10





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 20.04.2011

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


Cytat(mimol @ 16.02.2013, 10:39:38 ) *
Nie jestem pewien czy o to ci chodzi, ale zakładając, że w zmiennej komentarz masz komentarz to można zrobić tak:
  1. $komentarz = substr_replace($komentarz, '<br>',100,0);


Dzięki jak będzie mi działał komp to sprawdzę.

Markonix - jak bym chciał html/css to bym się nie pytał o php
Go to the top of the page
+Quote Post
markonix
post
Post #11





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Co z tego że to dział PHP - może czasem są lepsze rozwiązania i logiczniejsze.
Kod użytkownika mimol nie ma najmniejszego sensu.

Przyjmując 10 znaków zamiast to komentarz będzie wyglądał tak:

Cytat
To jest ba
rdzo długi komentarz.

i czemu to ma służyć?


--------------------
Go to the top of the page
+Quote Post
mimol
post
Post #12





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

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


@markonix, przecież wystarczy wyszukać ostatnią spację w stringu [0]-[99], i w tym miejscu podzielić. I rozwiązanie wydaje się dobre.
Poza tym takie rozwiązanie JUŻ istnieje nazwa funkcji - wordwarp()
Chociaż sam na jego miejscu użyłbym css =)

Ten post edytował mimol 16.02.2013, 16:10:10
Go to the top of the page
+Quote Post
markonix
post
Post #13





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Czemu mi to tłumaczysz? Ja wiem jak prawidłowo podzielić string co X znaków ale nie podaje tu żadnych rozwiązań bo to głupota.
To ma jakiś tam sens przy długich słowach bez spacji ale to też da się w css ogarnąć za pomocą break-word bodajże.


--------------------
Go to the top of the page
+Quote Post
mimol
post
Post #14





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

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


Cytat
Nie umię zrobić aby dodany tekst przechodził automatycznie do następnej linijki np po 100 znkach.

Chyba jako jedyny podałem kod, który chciał @44cichy44
Cytat
Czemu mi to tłumaczysz?

Ponieważ, napisałeś, że mój kod jest bezsensu. Ja tak nie uważam, idealnie robi to co ma robić.
Cytat
Nie podaje tu żadnych rozwiązań bo to głupota.
To po co w ogóle piszesz?

Wszystkie twoje posty @markonix nie wnaszą nic do tematu
Go to the top of the page
+Quote Post
markonix
post
Post #15





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Co Twój kod robi?
Wstawia po 100 znakach enter - czyli wywala słowo w połowie do drugiej linii - no piękne działanie..
Potem już nic się nie dzieje - bo robi to tylko raz czyli tym bardziej taki skrypt jest bezsensu bo i tak długi komentarz się rozciągnie tylko że w drugiej linijce.

Mój pierwszy post wnosi najwięcej do tematu - robisz DIV i ustalasz jego szerokość - i na tym powinno się to skończyć.
A w przedostatnim podałem nazwę atrybutu css, który pomoże osiągnąć lepiej efekt.

Piękne demo:
http://jsfiddle.net/audetwebdesign/pTH6Y/

Ten post edytował markonix 16.02.2013, 18:54:28


--------------------
Go to the top of the page
+Quote Post
44cichy44
post
Post #16





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 20.04.2011

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


I dalej nic,i kombinuje css i php i nic nie mogę zrobić, za każdymrazem text sie nie zwija cobym nie robił, a kodzieznalazłemjeszcze coś takiego

  1. // Funkcja pomocnicza, do eliminacji długich wpisów (maxsize)
  2. function komentarz_normalizacja($note)
  3. {
  4. return substr(trim($note), 0, $this->maxsize);
  5. }
  6.  
  7. // Funkcja pomocnicza, do wyœwietlania informacji wewnštrz zformatowanej tabeli html
  8. function informacja($informacja, $align = "left")
  9. {
  10. echo "<table align=\"center\" cellspacing=\"0\" cellpadding=\"0\" width=\"".$this->szerokosc."\" bgcolor=\"$this->kolor\">";
  11. echo "<tr><td valign=\"top\" align=\"$align\">";
  12. echo "$informacja </br>";
  13. echo "<hr color=\"$this->kolor_lini\" size=\"$this->wielkosc_lini\">";
  14. echo "</td></tr>";
  15. echo "</table>";
  16. }
Go to the top of the page
+Quote Post
markonix
post
Post #17





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Jak się nie zwija to co się dzieje? Wychodzi poza div?


--------------------
Go to the top of the page
+Quote Post
44cichy44
post
Post #18





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 20.04.2011

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


Rozciąga się wszystko automatycznie.
Go to the top of the page
+Quote Post
!*!
post
Post #19





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


A zainstalowałeś już tapetę z żółtymi kwiatkami?

Jakbyś nie rozumiał sensu mojego pytania, to uznaj że tak mniej więcej wygląda Twoja odpowiedź. Może jakiś przykład online?


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
44cichy44
post
Post #20





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 20.04.2011

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


Online projekt mam zabronione pokazywanie. Tylko kod księgi moę dac bo jest powrzechnie dostępny na necie. Co bym nie robił to im dłuższy tekst wpisany w pole i zatwierdzony rozrzesza automatycznie na bok, że z szerokośći np 500px robi mi sie więcej niż powiedzmy z głupa 1500px.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 19.08.2025 - 21:58