Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Okienko "aktualnosci" - jak dodac obrazek...
Forum PHP.pl > Forum > Przedszkole
darth_sidious
Witajce.

Od dluzszego juz czasu borykam sie z nastepujacym problemem i zadne rozwiazanie nie przychodzi mi do glowy. A mianowicie... W jednym miejscu stronki mam tabelke zawierajaca "aktualnosci", czyli okienko, ktore pobiera czesc calej wiadomosci i wyswietla jej fragment i nie ma z tym problemu.
1.Ale jak zrobic, aby mozliwe bylo wyswietlenie opcjonalnie (nie zawsze) dolaczonego obrazka?
2.Jak uzaleznic ilosc pobieranych znakow od wysokosci tego obrazka?

Kod ponizej


  1. <table border="0">
  2. <tr>
  3. <td style="BACKGROUND: url(gfx/aktualnosci_bg.jpg) #E8F7D3 no-repeat top;width: 210px; height: 266px; font-size: 8pt; padding-top: 33px;">
  4. <div class="akt_tekst" style="text-align:justify;">

  1. <?php
  2. $pobranie = "select * from newsy where glowna = '1' LIMIT 1";
  3. $wynik_pobrania = mysql_query($pobranie) or die (mysql_error());
  4. $wiersz = mysql_fetch_array($wynik_pobrania);
  5. $tekst = substr($wiersz['tresc_bez_tagow'],0,365);
  6. $art = wordwrap($tekst, 27, "\n", true);
  7. echo $art;
  8. echo "...<br /><br />";
  9. echo "<a href=\"aktualnosci.php\">czytaj więcej</a>";
  10. ?>

  1. </div>
  2. </td>
  3. </tr>


Nie oczekuje gotowego rozwiazania, ale chociaz jakiejsc wskazowki jak to ogarnac ;-)

Pozdrawiam
Darth
hiszpanespaniol
ad 1.sposobów na wyswietlenie obrazków jest kilka: javascript, html, css. Tu nie ma problemu.

Jeśli chodzi o opcjonalne wyświetlenie, to wystarczy zrobić jakiegoś if'a który sprawdzi czy Twojemu artykułowi w bazie odpowiada jakiś obrazek. Jeżeli obrazek istnieje, to wyświelić, jeżeli nie, to nie. To też nie jest problem. Szczegółowo nie napiszę, bo na bazach się nie znam.



ad 2. Z tego co mi wiadomo, to biblioteka GD dla PHP ma możliwość zbadania wysokości obrazka. . Samo PHP dostarcza funkcje getimagesize Powiedzmy, że masz tą wysokośc zwróconą przez  funkcję imagesy() (czyli tą od biblioteki GD). Teraz sobie musisz ustalić stosunek długości tekstu do wysokosci obrazka. Powiedzmy, że w div'ie szerokim na 400px i wysokim na 200px (bo go 200 pikselowy obrazek rozepchał), mieści się 500 znaków tekstu obok obrazka. Ustalasz sobie stosunek wysokości do długości tekstu i tą zmienna wstawiasz go jako parametr do obcinania tekstu. To jest nieprawidłowe podejście, bo decydujesz o wyglądzie strony na poziomie PHP, a tak sie nie powinno robić.

Jak podzielisz 200 na 500, to wyjdzie 0,4. Pomnóż to przez 100 i masz parametr do obcinania tekstu. Gdy obrazek będzie wyższy to wtedy się zrobi 400 / 500 czyli dajesz 800 literek w tekście. 



To jest podejście bardzo poglądowe i nieprecyzyjne. Ale może nasunie Ci jakis pomysł.
edit: a post pisany tuż przed snem więc wybacz składnię
darth_sidious
Hmmm rozwiazanie dosc ciekawe i mimo, ze jak piszesz dosc pogladowe podsunelo mi rozwiazanie bazujace rzecz jasna na Twoich podowiedziach... Jak to troche ogarne - dam znac... Dzieki ;-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.