Jump to content
php.lv forumi

Par rakstu saīsinājumu


AndrejsLi

Recommended Posts

Atvainojos, ja ko no manis teiktā nebūs iespējams saprast, esmu nūģis programmēšanā :)

 

Ziņu lapā ir saīsināti raksti ar excerp, raksti atrodas pie ziņas bildes labā sāna. Excerp sākās ar noteiktu vārdu skaitu, bet gribētos, lai tas sāktos ar noteiktu teksta rindu skaitu. Excerp atrastos vienā līnijā ar bildes beigām. Izmantoju WP. Kā to dabūt gatavu? Paldies par atbildi jau iepriekš.

Link to comment
Share on other sites

Vajag, lai saīsinājuma ierobežojums būtu nevis noteikts vārdu skaits, bet rindu skaits tekstā.

Diezgan stūlbs risinajums :(

Padomā par to ka, būs ļoti daudz gadijumu kad teksts vienkārši aprausies, izveidojot 'smieklīgus teikumus' ..

 

Optimālāk ir vedot rakstam 'galviņu' ( īsu aprakstu par pašu rakstu), tad arī varēsi nokoriģēt teksta garumu...

Link to comment
Share on other sites

Vārdus apraut noteikti neplānoju, ja kāds vārds ietu pāri beidzamajai rindai, aiz priekšpēdējā vārda būtu vienkārši daudzpunktes.. Un kā izveidot šādu "galviņu"? Kā varētu saukties manas problēmas risinājums, kuru sameklēt Googlē?

 

Šāds risinājums izskatītos ļoti kompakti, vismaz manuprāt.

Link to comment
Share on other sites

Esmu darījis savādāk, bez visādiem more un bez papildus lauka datubāzē. Piemēram, visi raksti tomēr ir rindkopās sadalīti. Nu lūk, katram rakstam pirmo rindkopu taisi tādu, kādai jābūt galviņai jebšu ievadam. Pluss ir tas, ka nebūs jāmeklē frāze pa diviem laukiem datubāzē un teksts ir viengabalains. Kad atver rakstu, tad viņš ir viens. Mazāk galvu jālauza.

 

A kā paņemt pirmo rindkopu, tas jau atkarīgs no tā, kā tev teksta lauks ieglabājas datubāzē. Vai tas ir <p>teksts</p>, vai rindkopas atdalās ar diviem <br>, vai arī plain textarea ar \r\n sekvenci. Un tad ar preg_match vai preg_match_all izcel pirmo.

 

Parasti lietoju savu funkciju getFirstChars($text, 100) un iegūstu pirmos simbolus, ne vairāk, kā uzdoto daudzumu, bet funkcijā doto tekstu saskalda pa vārdiem (tjipa explode(' ', $text)) un tad saliek kopā, pārbaudot garumu. Nu un "lasīt vairāk" nolikt vienā konkrētā vietā? Diez, kā šajā forumā Quote poga stāv vienā vietā neatkarīgi no teksta daudzuma? :D (laikam sajuka tev doma)

Link to comment
Share on other sites

Vajadzīgs teksta apstrādes algoritms, kas rēķina vārdu platumu atkarībā no izmantotā fonta. Var apvienot ar vārdu pārnešanu jaunā rindā, lai smukāk.

 

Protams, nosacījumi - fiksēts fonts, izmērs un citi.

 

Sarežģīti? Primitīvā variantā uztaisi array a-z lielie mazie un platums pixeļos, tālāk viens cikls skaita garumu pa teksta atdalītājiem break uz max rindu skaits.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...