Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sktót newsów na stronie, podział po naciśnięciu 2x Enter
camelx
post
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 14.06.2004
Skąd: Warszawa

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


Szukałem tego na forum ale jakoś nie mogłem znaleźć.

Mam prosty system newsów oparty o MySQL. Chciał bym zrobić coś takiego, że kiedy wpisuję tekst i ncisnę 2 razy enter (2x<br>) to wtedy na stronie głównej wyświetla się tylko skrót newsa (to co jest przed dwoma <br>) a gdy nacisnę "więcej..." wyświetla mi się cały news.
Wygląda to mniej więcje tak:
Cytat
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean id nibh. Curabitur mollis lorem id orci. Morbi a turpis vel justo suscipit consectetuer.<br>
<br>
----------------to wyświetla się po naciśnięciu na link "więcej..."----------
Phasellus condimentum volutpat justo. Integer nibh. Etiam tristique lobortis pede. Quisque ante metus, ultricies non, bibendum quis, egestas quis, quam. Nullam feugiat.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean id nibh. Curabitur mollis lorem id orci. Morbi a turpis vel justo suscipit consectetuer. Phasellus

Takie rozwiązanie stosowane jest na niektórych stronach, np. na digarcie.
System newsów już mam, chodzi mi tylko o to jak zrobić ten podział newsa który opisałem wyżej ?

PS. Mam nadzię, że dobrze to wyjaśniłem. Będę bardzo wdzięczny za pomoc smile.gif

Ten post edytował camelx 10.11.2004, 16:29:42


--------------------
windows nie jest wirusem... wirusy coś robią :)
Go to the top of the page
+Quote Post
hwao
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




tablica explode( '<br><br>', $text );

mozesz zamiast ' dac " i wporwadzic \n
Go to the top of the page
+Quote Post
camelx
post
Post #3





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 14.06.2004
Skąd: Warszawa

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


explode? ale jak mam jej użyć?
Przypomnę, że chodzi mi o to, że zawartość przed <br><br> chcę wyświetlić na stronie główne (to będzie skrót newsów) a resztę (to co jest po <br><br>) chcę wyświetlić dopiero po kliknięciu na "więcej..." (piszę to, bo nie wiem czy dobrze mnie zrozumiałeś).
Był bym wdzięczny za napisanie mi jakiejś (nawet najprostrzej) funkcji do tego, lub dokładniejsze objaśnienie winksmiley.jpg


--------------------
windows nie jest wirusem... wirusy coś robią :)
Go to the top of the page
+Quote Post
hwao
post
Post #4


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




  1. <?php
  2.  
  3. $strText = 'Ble ble ....... lala <br><br> a to reszta;-)';
  4.  
  5. $arrEx = explode( '<br><br>', $strText );
  6.  
  7. // wersja skrocona
  8.  
  9. echo $arrEx[0];
  10.  
  11. // wersja full
  12.  
  13. echo $strText;
  14.  
  15. ?>
Go to the top of the page
+Quote Post
camelx
post
Post #5





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 14.06.2004
Skąd: Warszawa

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


hmmm, wyświttla mi się coś takiego
Cytat
Ble ble ....... lala Ble ble ....... lala

a to reszta;-)
dry.gif
Nie jestem zbyt dobry w php więc może pokaże mój system news:
  1. <?php
  2.  
  3.  
  4. $fid = '1';
  5.  
  6.  
  7. $template->set_filenames(array(
  8. 'glowna_news' => 'UT/news.tpl'
  9. ));
  10.  
  11. $sql=&#092;"SELECT `topic_id`,`forum_id`,`topic_title`,`topic_poster`,`topic_time`,`top
    i
  12. _replies`,`topic_status`,`topic_vote`,`topic_type`, `topic_first_post_id` FROM \".TOPICS_TABLE.\" WHERE `forum_id` = \".$fid.\" ORDER BY `topic_type` DESC , `topic_id` DESC LIMIT 3\"
  13.  
  14. $result = $db->sql_query($sql);
  15. if( !$result )die(\"Błąd0\"); 
  16. while( $co = $db->sql_fetchrow($result) ) 
  17. $user_id = $co['topic_poster'];
  18. $post_id = $co['topic_first_post_id'];
  19. $topic_id = $co['topic_id'];
  20. $post_time = $co['topic_time']; 
  21. $replies = $co['topic_replies']; 
  22. $title = $co['topic_title']; 
  23. $status = $co['topic_status']; 
  24. $vote = $co['topic_vote']; 
  25. $type = $co['topic_type']; 
  26.  
  27. $sql1 = \"SELECT `username` from \".USERS_TABLE.\" WHERE user_id like \".$user_id.\" LIMIT 1\"
  28. $result1 = $db->sql_query($sql1); 
  29. if( !$result1 )die(\"Błąd1\"); 
  30. $co1 = $db->sql_fetchrow($result1); 
  31. $nick = $co1['username'];
  32. $avatar = $co['user_avatar'];
  33.  
  34. $sql2 = \"SELECT `post_text`,`bbcode_uid` from \".POSTS_TEXT_TABLE.\" WHERE post_id = \".$post_id.\" LIMIT 1\";
  35. $result2 = $db->sql_query($sql2); 
  36. if( !$result2 )die(\"Błąd2\"); 
  37. $co2 = $db->sql_fetchrow($result2); 
  38. $text= $co2['post_text']; 
  39. $bbcode_uid= $co2['bbcode_uid']; 
  40.  
  41. //dane pobrano 
  42.  
  43. //data dla ludzi a nie timestamp;) 
  44. $data = strftime(\"%d.%m.%@%H:%M:%S\",$post_time); 
  45. //zarejestrowany i nick linkiem do profilu albo napis Gość 
  46. $nick=($user_id != \"-1\") ? \"<A class=s HREF=\"\".$phpbb_root_path.\"/profile.php?mode=viewprofile&u=\".$user_id.\"\">$nick</A>\" : \"Gość\"
  47. //temat linkiem do forum + ewentualnie ankieta/przyklejony/ogłoszenie 
  48. $title=\"<class=\"news-title\" HREF=\"\".$phpbb_root_path.\"viewtopic.php?p=\".$post_id.\"#\".$post_id.\"\">\".$title.\"</A>\"
  49. if($vote==1)$title=\"[Ankieta] \".$title; 
  50. if($type==1)$title=\"<B>Przyklejony: \".$title.\"</B>\"
  51. elseif($type==2)$title=\"<B>Ogłoszenie: \".$title.\"</B>\"
  52. else $title=\"\".$title.\"\"
  53. //wyświetlanie: 
  54.  
  55. // --- MYŚL, ŻE TRZEBA COŚ ZMIENIĆ W TYM FRAGMCIE KODU !!!
  56.  
  57. //zaprzegnijmy BBCode do pracy i pokażmy tresc 
  58. $text = make_clickable($text); 
  59. $text = smilies_pass($text); 
  60. $text = nl2br($text).\"<BR>\"; 
  61. $text = bbencode_second_pass($text, $bbcode_uid); 
  62.  
  63. // ---- KONIEC !!!
  64.  
  65. //no i komentarze link tak jak ODpowiedz na forum (tylko przy niektórych ustawieniach forum nie działa) 
  66. $comment = \"<A HREF=\"\".$phpbb_root_path.\"viewtopic.php?p=\".$post_id.\"#\".$post_id.\"\">Komentarze</A> [\".$replies.\"]\"
  67. $more = \"<A HREF=\"\".$phpbb_root_path.\"viewtopic.php?p=\".$post_id.\"#\".$post_id.\"\">więcej...</A> <BR>\";
  68.  
  69.  
  70. //template by camel
  71.  
  72. $template->assign_block_vars('long', array(
  73. 'TYTUL' => $title,
  74. 'AUTOR' => $nick,
  75. 'DATA' => $data,
  76. 'TRESC' => $text,
  77. 'KOMENTARZE' => $comment,
  78. 'MORE' => $more,
  79. 'AVATAR' => $board_config['poster_avatar'],
  80. )
  81. );
  82.  
  83. //template end
  84.  
  85. }
  86.  
  87. $template->pparse('glowna_news');
  88.  
  89.  
  90.  
  91. ?>


to jest mniej więcej coś takiego...

próbowałem już użyć tego "explode" ale wtedy wyświetlało się zamiast newsa "Array" dry.gif

Dodam jeszcze, że te newsy są zintegrowane z phpBB.

Jak mam użyć tego "explode" w moim skrypcie questionmark.gif

Ten post edytował camelx 10.11.2004, 20:52:45


--------------------
windows nie jest wirusem... wirusy coś robią :)
Go to the top of the page
+Quote Post
peterj
post
Post #6





Grupa: Zarejestrowani
Postów: 121
Pomógł: 0
Dołączył: 9.02.2004
Skąd: Warszawa

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


  1. <?php
  2. $short_text = explode( '<br><br>', $co2[post_text]);
  3. // $short_text['0'] zawiera pierwszą część newsa
  4.  
  5. $text= $co2['post_text']; // cały news
  6. ?>


--------------------
Warsztat: Apache 1.3.29 / PHP 4.3.4 / MySQL 3.23.58 / Winsyntax
Go to the top of the page
+Quote Post
camelx
post
Post #7





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 14.06.2004
Skąd: Warszawa

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


A więcj jest tak:
Jeżeli wyświetlam $short_text wyświetla mi się napis "Array"
Jeżeli wyświetlam $short_text['0'] wyswietla mi się cały news bez uwzglądnienia <br> (czyli wszystko w jednym ciągu bez nowych linii) sad.gif

i co ja mam z tym zrobić... ?

Ten post edytował camelx 10.11.2004, 21:26:41


--------------------
windows nie jest wirusem... wirusy coś robią :)
Go to the top of the page
+Quote Post
hwao
post
Post #8


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




zamien na inny separator bo <br> masz jakies nie jasne problemy (pewnie znaki konca lini ;-) ) na np {koniec} i tyle bedzie latwo i przjezyscie a nie dawno byl temat na temat ;-) {tnij} i nawet byla ulepszona wersja tegoo ze stronicowaniem :-)
Go to the top of the page
+Quote Post
krysk
post
Post #9





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 20.04.2002
Skąd: Szczecin

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


poprawiony kod peterj, powinno działać ;-)
<br> - > <br />


  1. <?php
  2. $short_text = explode( '<br /><br />', $co2[post_text]);
  3. // $short_text['0'] zawiera pierwszą część newsa
  4.  
  5. $text= $co2['post_text']; // cały news
  6. ?>


--------------------
Krzysztof Wójcik
Zend Certified Engineer
Go to the top of the page
+Quote Post
Kuziu
post
Post #10





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Jak nie wiesz jak użyć EXPLODE ... to nie wiem czy to Twój system newsów ...


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
camelx
post
Post #11





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 14.06.2004
Skąd: Warszawa

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


Kaziu --> przeczytaj mojego pierwszego posta. Napisałem: "Mam prosty system newsów..." a nie "Napisałem sobie prosty system newsów..". Dopiero później użyłem słowa "mój" w sensie, że ja go używam winksmiley.jpg . To jest właściwie taki mod do phpBB (http://www.phpbb.kraina.pl/forum/viewtopic.php?t=1203). Ja go trochę zmodyfikowałem (dodałem kilka rzeczy i dostsosowałem do swoich potrzeb). Fragment kodu, który zamieściłem wyżej jest tylko urywkiem "mojego" systemu.
Dla Twojej świadomości, umiał bym zrobić taki (lub podobny) system newsów. Do tego wcale nie potrzebne było explode.
Ale po co czepiać się szczegółów, przecież nie o to w tym temacie chodzi...

krysk --> To nic nie dało... Wciąż wyświetla mi się cały news, w dodatku bez uwzględnienia enterów (<br>). Może to dlatego, że wcześniej została użyta funkcja nl2br, albo dlatego, że tojest pobierane z bazy danych questionmark.gif Wczoraj długo się z tym męczyłem i nic mi nie wychodzi. Może użyć czegoś innego zamiast explode...?

Ten post edytował camelx 11.11.2004, 10:30:44


--------------------
windows nie jest wirusem... wirusy coś robią :)
Go to the top of the page
+Quote Post
hwao
post
Post #12


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




  1. <?php
  2.  
  3. $arr = explode( '<br><br>', $text ); // czy czym tam dzielisz nie mozliwe jest jak dzielisz <br><br> zeby to nie pokrojilo dobrze przypatrz sie dobrze kodowi...
  4.  
  5. $text = $arr[0];
  6. $text = make_clickable($text);
  7. $text = smilies_pass($text);
  8. $text = nl2br($text).&#092;"<BR>\";
  9. $text = bbencode_second_pass($text, $bbcode_uid); 
  10.  
  11. ?>
Go to the top of the page
+Quote Post
Kuziu
post
Post #13





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Cytat(hwao @ 2004-11-10 18:43:15)
  1. <?php
  2.  
  3. $strText = 'Ble ble ....... lala <br><br> a to reszta;-)';
  4.  
  5. $arrEx = explode( '<br><br>', $strText );
  6.  
  7. // wersja skrocona
  8.  
  9. echo $arrEx[0];
  10.  
  11. // wersja full
  12.  
  13. echo $strText;
  14.  
  15. ?>

no jak po takim czymś nie wiedziałeś że w 1 zmiennej siedzi krótka wersja a w 2 całość ... to wątpie że byś napisał taki system newsów ...

i przeczytaj dokładnie mojego Nick'a


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
camelx
post
Post #14





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 14.06.2004
Skąd: Warszawa

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


Kuziu --> Dlaczego myślisz, że nie wiedziałem...? Skończmy ten OT.

hwao --> nie wiem jakim cudem, ale kiedy pobieram tekst z bazy danych to nie działa (bo jeśli mam tekst w stylu 'Ble ble ....... lala <br><br> a to reszta;-)' to jest ok). myślę, że to jest spowodowane tym, że dane pobierane są z bazy i do tworzenia nowych lini użyte jest nl2br($text)."<BR>" (ale mogę się mylić winksmiley.jpg )

Ten post edytował camelx 11.11.2004, 12:45:17


--------------------
windows nie jest wirusem... wirusy coś robią :)
Go to the top of the page
+Quote Post
hwao
post
Post #15


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




najlepiej pozbadz sie znakow nowej lini itp pewnie sa one tam wpisane ( wes sobie wyswietl samo zrodlo i zoabacz czy te <br><br> sa pod rzad i tak samo napisane) musisz porpostu pokombinowac (ale i tak radzil bym Ci zamienic te <br><br> na cos lepszego np {tnij} i tyle)
Go to the top of the page
+Quote Post
rogrog
post
Post #16





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


a moze tak

  1. <?php
  2.  
  3. $arr = explode( &#092;"nn\", $text ); // dzielimy po nn a nie br - br powstają później po przepuszczeniu przez nl2br
  4.  
  5. $text = $arr[0];
  6. $text = make_clickable($text);
  7. $text = smilies_pass($text);
  8. $text = nl2br($text).&#092;"<BR>\";
  9. $text = bbencode_second_pass($text, $bbcode_uid);
  10.  
  11. ?>


--------------------
Go to the top of the page
+Quote Post
Kuziu
post
Post #17





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Cytat(camelx @ 2004-11-10 21:50:40)
hmmm, wyświttla mi się coś takiego
Cytat
Ble ble ....... lala Ble ble ....... lala

a to reszta;-)



a no dlatego ...
napisał 2 zmienne pod rząd .. i myślałeś że nie dizała ... dlatego ...


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
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: 20.08.2025 - 18:16