![]() ![]() |
2010-02-06 23:21
Post
#1
|
|
|
Wannabe Reputation: Group: Membri Joined: 01-2008 Member No.: 2.782 |
Salutare,
Am un div 400*200px. In el vreau sa includ un fisier.html via php care contine mult text dar tocmai din acesta cauza sunt nevoit sa afisez doar o parte din el (cum e pe prima pagina a ziarelor unde sunt multe articole: e titlu, o poza, o bucata de text si apoi un link ... [Citeste mai departe]). Cum fac sa afisez doar inceputul acestui fisier in acel div (care ramane fix ca dimensiune) si sa am link catre pagina corespunzatoare? Cum fac ca de fiecare data, in functie de continutul fisierului, div-ul sa fie umplut complet? Spre exemplu, nu vreau ca php sa includa in div doar primele 50 de cuvine pentru ca daca am cuvinte scurte ramane spatiu gol in partea de jos iar daca am cuvinte lungi o sa iasa textul din div (in acest caz ar fi o solutie overflow:hidden dar asta nu rezolva primul caz). Sper ca ati inteles ce vreau sa fac. Merci, george |
|
|
|
2010-02-07 4:41
Post
#2
|
|
|
• • • Inna KorR • • • Reputation: Group: Membri Joined: 12-2006 From: Geosynchronous orbit Member No.: 1.142 |
Salut, iti dau o solutie partiala, pentru ca functioneaza bine doar pentru portiuni de text scurte si fara HTML.
Urmeaza sa-ti faci din PHP calculul pentru cea mai scurta lungime de text (in functie de marimea si fontul folosit de tine), iar daca ai nevoie de continut altul decat plain-text va trebui sa adaugi (tot din PHP) separatoare de cuvant + tag-uri, pe care ulterior sa le folosesti in codul de mai jos la .split si .join in loc de spatiu. CODE <div id="text_container" style="overflow:auto; width:400px; height:200px;"> <div id="actual_text"><?=strip_tags(file_get_contents('http://www.pez.at/')); ################### ?></div> </div> <script language="javascript" type="text/javascript"> <!-- var tc = document.getElementById("text_container"); var at = document.getElementById("actual_text"); var at_array = new Array(); var more = ' ...'; if(at.offsetHeight>tc.offsetHeight) { at.innerHTML+=more; at_array = at.innerHTML.split(" "); startScanning(); } function startScanning() { if(!tc||!at) return; at_array.pop(); at_array.pop(); at.innerHTML = at_array.join(' ') + more; if(at.offsetHeight>tc.offsetHeight) startScanning(); } // --> </script> |
|
|
|
2010-02-07 10:29
Post
#3
|
|
|
Wannabe Reputation: Group: Membri Joined: 01-2008 Member No.: 2.782 |
Apreciez solutia ta dar nu prea ma ajuta.
In primul rand nu stiu JS. Al doilea rand, dupa cum spuneam, este vorba de un fisier HTML care contine tag-uri HTML (img, p, h etc). Tot din php trebuie sa se poata face ceva gen functia substr(); insa nu prea stiu cum sa o aplic........ This post has been edited by geo86: 2010-02-07 10:41 |
|
|
|
2010-02-13 12:25
Post
#4
|
|
|
Wannabe Reputation: Group: Membri Joined: 01-2008 Member No.: 2.782 |
Salutare, Am un div 400*200px. In el vreau sa includ un fisier.html via php care contine mult text dar tocmai din acesta cauza sunt nevoit sa afisez doar o parte din el (cum e pe prima pagina a ziarelor unde sunt multe articole: e titlu, o poza, o bucata de text si apoi un link ... [Citeste mai departe]). Cum fac sa afisez doar inceputul acestui fisier in acel div (care ramane fix ca dimensiune) si sa am link catre pagina corespunzatoare? Cum fac ca de fiecare data, in functie de continutul fisierului, div-ul sa fie umplut complet? Spre exemplu, nu vreau ca php sa includa in div doar primele 50 de cuvine pentru ca daca am cuvinte scurte ramane spatiu gol in partea de jos iar daca am cuvinte lungi o sa iasa textul din div (in acest caz ar fi o solutie overflow:hidden dar asta nu rezolva primul caz). Sper ca ati inteles ce vreau sa fac. Merci, george Am rezolvat. Am gasit pe un site o functie personalizata care taie string-ul dupa un anumit numar de caractere si am setat height: auto la DIV. Acum am alta problema. String-ul meu este continutul unui fisier HTML. El este taiat dupa 500 de caractere. Problema este ca am toate sansele ca de fiecare data taiaerea sa se faca intre tag-ul de deschidere si cel de inchidere (spe exemlu, daca am "<p>Aici string-ul se taie..." nu imi va mai fi inclus si tag-ul de inchidere </p>). Aveti vreo idee cum pot sa repar ? |
|
|
|
2010-03-03 1:23
Post
#5
|
|
|
Junior Member Reputation: Group: Membri Joined: 06-2006 From: bucuresti Member No.: 156 |
div-ul tau in care pui continutul ar trebui sa se intinda pe inaltime in functie de continut.
|
|
|
|
2010-03-28 10:04
Post
#6
|
|
|
Wannabe Reputation: Group: Membri Joined: 05-2008 Member No.: 3.309 |
In primul rand ar trebui ca PHP-ul tau sa genereze exact cat continut ai nevoie si nu sa trunchezi tu manual o parte din el. In al doilea rand, cum a spus si ionut, in momentul in care afisezi continut undeva acel container trebuie sa aiba capacitatea de a se lungi sau (desi nu e recomandat) macar un scoll bar.
Pentru situatia ta specifica exista CMS-uri care fac treaba asta, in Joomla de exemplu poti sa pui in administrare in continut o delimitare, tot ce e inaintea delimitarii apare pe prima pagina, tot ce e dupa apare cand apesi pe read more, mult mai civilizat. In plus, continutul este cel mai important aspect al site-ului tau, nu il tai la intamplare la un anumit numar de caractere, il intrerupi intr-un punct in care are putin sens, sau chiar scrii un text de intro separat. Stiu ca asta ineamna ca site-ul tau va fi mai putin "automat" dar n-o sa gasesti nici un script care va fi in stare sa decida unde este bine sa opreasca un aticol astfel incat cei care il citesc sa fie tentati sa apese "read more". This post has been edited by radu.tanasescu: 2010-03-28 10:06 |
|
|
|
2010-03-30 21:27
Post
#7
|
|
|
Wannabe Reputation: Group: Membri Joined: 01-2008 Member No.: 2.782 |
Am nota sugestiile voastre si o sa revin cu posturi in viitorul apropiat.
Momentan, din lipsa de timp, nu mai lucrez nimic. This post has been edited by geo86: 2010-03-30 21:27 |
|
|
|
![]() ![]() |
|
Lo-Fi Version | Time is now: 2010-09-09 8:00:20 |