Прочитај повеќе во PHP

vlatko_95

Чоек
Член од
26 септември 2008
Мислења
260
Поени од реакции
66
Имам еден портал во php, го средувам моментално, па ако може некој да ми помогне како да го направам она "Прочитај повеќе", за да не ми ги пишува цели текстови бидејќи одземаат многу простор..
 
Г

Грејвдигер

Гостин
Прво дефинирај колку карактери да ти биде воведот на секој артикл, 200 карактери, 250... со
PHP:
substr($artikl,0,200);
и после тоа ќе додадеш линк што ќе го зима id-то од артиклот и ќе го линкуваш до целата содржина на артиклот
PHP:
<a href="artikl.php?id='.$id.'">читај повеќе</a>
 

vlatko_95

Чоек
Член од
26 септември 2008
Мислења
260
Поени од реакции
66
Прво дефинирај колку карактери да ти биде воведот на секој артикл, 200 карактери, 250... со
PHP:
substr($artikl,0,200);
и после тоа ќе додадеш линк што ќе го зима id-то од артиклот и ќе го линкуваш до целата содржина на артиклот
PHP:
<a href="artikl.php?id='.$id.'">читај повеќе</a>
Вака, прв пат правам вакво нешто, и се ова ми е ново. Ако може да ми објасниш малку подетално, пошто уште не разбирам баш лесно. Еве го кодот од текстот.

<h2><?php echo $row_getDisplay['title']; ?></h2>
<p class="updated">Напишано на: <?php echo $row_getDisplay['formatted']; ?></p>
<p><?php echo nl2br($row_getDisplay['blog_entry']); ?></p>
Јас треба да ја скратам со "Прочитај повеќе" оваа линија:

<p><?php echo nl2br($row_getDisplay['blog_entry']); ?></p>
 
Г

Грејвдигер

Гостин
Како што гледам кај тебе не ти е ниту линкуван насловот на артиклот, туку само насловот ти го пишува како најобичен текст. Како ќе додадам читај повеќе, ако не ја знам адресата до целата содржина на артиклот. А за ограничување на воведот на Х карактери кодот (мислам дека) треба да биде вака:
PHP:
<?php echo substr($row_getDisplay['blog_entry'], 0, 200); ?>
 

vlatko_95

Чоек
Член од
26 септември 2008
Мислења
260
Поени од реакции
66
Како што гледам кај тебе не ти е ниту линкуван насловот на артиклот, туку само насловот ти го пишува како најобичен текст. Како ќе додадам читај повеќе, ако не ја знам адресата до целата содржина на артиклот. А за ограничување на воведот на Х карактери кодот (мислам дека) треба да биде вака:
PHP:
<?php echo substr($row_getDisplay['blog_entry'], 0, 200); ?>
Нешто направив, ама пак не ми е како што сакам. Кажи ми само, дали текстовите би требало сите да ми се зачувуваат на еден посебен фајл, каде што секој текст ќе си има наслов, и сл, а после со линк од тој текст да ги зимам новостите и да ги ставам на порталот, со тоа проритај повеќе. Ккао што разбрав треба вака да функционира, ама пак имам некој нејаснотии во оваа логика. Ако новостите се пишуваат сите во тој еден фајл, линкот во прочитај повеќе ќе те носи до сите нив, а не само до таа што ќе ја кликнеш..
 
Г

Грејвдигер

Гостин
Какви фајлови сеа... не работиш со db? Ако работиш со посебни фајлови на секој нов напис ќе треба да ја обновуваш почетна страна, па и другите... не се исплаќа да работиш на тој начин.Прочитај тука како да направиш сопствено cms, едноставно е објаснето и не верувам дека ќе имаш проблеми.

Друго, може да се послужиш со RedStar CMS, нема многу функции но лесно може да си го прилагодиш спрема своите потребни. Само запази и на безбедноста, лозинката не е енкриптирана, ќе треба и тоа да го средиш.
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Друже, зашто запишуваш во фајл, а не во база ? :/

Иначе за ова да го изведеш мораш првин да поставиш структура како ќе се запишуваат артиклите, еве да речеме дека таа би била вака:
id, title, description, content и сега...

PHP:
// gi zimash site artikli ili pa ako imash pagination dodavash uslovi vo kverito
$artikli = mysql_query("select * from artikli", $connection);

// prikazhivanje na artiklite
while( $row = mysql_fetch_array($artikli) ) {
echo $row['title'] . '<br />';
echo $row['description'] . '<br />';
echo ’row['content'] . '<br />'; // ili pak content (vovedniot tekst mozhesh da go skratish na odreden br na karakteri

// i sega generirash link za prochitaj povekje
echo '<a href="artikli.php?id="' . $row['id'] .'>Prochitaj povekje</a>';
}
Ова да речеме ти се наоќа во index.php, после тоа креираш (доколку сеуште немаш еден фајл artikli.php и таму правиш

PHP:
$id = GET['id'];
$artikl = mysql_query("select * from artikli where id = " . $id, $connection);
// i gi prikazhuvash rezultatite
Значи ова ти е основно објасвнуање, треба да внимаваш и на валидација од SQL Injection, исто така имаш посебни библиотеки за utf8 стрингови... али како за почеток да ја сватиш логиката мислам дека вака би ја разбрал логиката :)

Едит: Да напоменам дека кодот го пишував дирекно на форум, не е тестирам, можно е да има ситни или синтаксички грешки.
 

vlatko_95

Чоек
Член од
26 септември 2008
Мислења
260
Поени од реакции
66
Ај вака, сега значи ова се е поврзано со датабаза, и вчитува новости од датабазата. Новостите се впишуваат дирекно од датабазата во фајлот кај што треба да излезат новостите и никаде на друго место, така да ја не разбирам каде да го линкувам насловот? Кога ќе ја скратам новоста, каде треба да дадам линк, за да ми ја види целата новост?


Новоста е напишана во овој дел, насловот, датата на пишување, текстот.

PHP:
><?php do { ?>
                                <h2><?php echo $row_getDisplay['title']; ?></h2>
                                <p class="updated">Напишано на: <?php echo $row_getDisplay['formatted']; ?></p>
                                <p><?php echo nl2br($row_getDisplay['blog_entry']); ?></p>
                              <?php } while ($row_getDisplay = mysql_fetch_assoc($getDisplay)); ?>
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Вака... секој артикл претпоставувам треба да има ID односно уникатна вредност (незнам како ти е крстена тебе таа колона, еве ќе претпоставиме дека си ја крстил ID), е сега, пред да ги испишеш сите артикли правиш квери select * from artikli и после ги прикажуваш (кодот што го пиша во последниот пост) артиклите, така ?
Е сега, дур ги прикажуваш резултатите... направи еден линк
PHP:
// Значи овој код можеш да го ставиш било каде
// одбери ти каде сакаш да биде прикажано тоа „Прочитај повеќе“
// и таму пиши го овој код
echo '<a href="artikli.php?id="' . $row_getDisplay['ID'] . '>Прочитај повеќе</a>';
...е сега, горниов код треба да ти биде во фајлот каде што ги прикажуваш артиклите (да претпоставиме дека фајлот се вика index.php)... и сега кога корисникот ќе дојде на сајтот... ќе му се прикажат новостите... и ќе има еден линк „Пролитај повеќе“ кој ќе води до http://ime_na_sajt.com/artikli.php?id=Nekoj_Broj (тоа Nekoj_Broj е ID од секој артикл поединечно).

Откако ќе го направиш тоа... треба да креираш фајл artikli.php (во ист фолдер кај што ти е и index.php [односно фајлот кај шо ги прикажуваш новостите]) и во него со GET метода ја зимаш ID вредноста, правиш конекција со базата, правиш квери select * from artikli where id = id_vchitana_so_get_metod и после тоа само ги печатиш резултатите (значи тука ја печатиш цела статија, не само воведниот дел) и тоа е тоа. :)
 

Kajgana Shop

На врв Bottom