Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Проблем със странициране на новини и снимки

Featured Replies

Здравейте, използвам един скрипт за новини с текст и снимки. Всяка новина се запазва в папка news в отделен текстов файл. Та въпроса ми е може ли да се направи странициране на този модул за новини. Ето го кода : <?php // Тази функция чете всички новини. function getNewsList(){ $fileList = array(); // Отваря директорията if ($handle = opendir("news")) { // Чете всички файлове от директорията. while ($file = readdir($handle)) { if (!is_dir($file)) { $fileList[] = $file; } } } rsort($fileList); return $fileList; } ?> //така се показва новината . <?php $list = getNewsList(); foreach ($list as $value) { $newsData = file("news/".$value); $newsTitle = $newsData[0]; $submitDate = $newsData[1]; unset ($newsData['0']); unset ($newsData['1']); $newsContent = ""; foreach ($newsData as $value) { $newsContent .= $value; } echo "<tr><th align='left'>$newsTitle</th> <th align='right'>$submitDate</th></tr>"; echo "<tr><td colspan='2'>".$newsContent. "<br/><hr size='1'/></td></tr>"; } ?> Използвам този код за странициране, но нещо не се получава: // --------- СТРАНИЦИРАНЕ ---------- echo "<br />Страници:<br />"; for($x=1; $x<=ceil(count($lines)/$item_per_page);$x++){ if ($x==$page) { echo "$x&nbsp;"; continue; } echo ("<a href=\"news.php?page=$x\">$x</a>&nbsp;"); } // --------- ДО ТУК СТРАНИЦИРАНЕ ---------- Грешката, която ми връща е : Division by zero in /www/site/news.php on line 64 като line 64 е: for($x=1; $x<=ceil(count($lines)/$item_per_page);$x++){ Предварително благодаря

  • Автор

Ако така изглежда: // --------- СТРАНИЦИРАНЕ ---------- echo "<br />Страници:<br />"; for($x=1; $x<=ceil(count($lines)/$item_per_page=0);$x++){ if ($x==$page) { echo "$x&nbsp;"; continue; } echo ("<a href=\"site/public.php?page=$x\">$x</a>&nbsp;"); } // --------- ДО ТУК СТРАНИЦИРАНЕ ---------- Дава грешка Division by zero in /www/site/news.php on line 64

  • Автор

Въртях суках но не можах да направя страницирането ...

Проблема е описан в PHP грешката.

for($x=1; $x<=ceil(count($lines)/$item_per_page=0);$x++){

Смени стойността на въпросната променлива:

Пример:

for($x=1; $x<=ceil(count($lines)/5);$x++){

Написах направо стойност, тъй като не видях някъде другаде да използваш въпросната променлива.

Редактирано от darkyto (преглед на промените)

  • Автор

Ето го кода отнасящ се за тази променлива, но не знам как да го променя за конкретния случай : $item_per_page = 3; if(isset($_GET['page'])) $page = $_GET['page']; else $page = 1; $reji_ot_elem = ($item_per_page*$page)-$item_per_page; $sm = array_slice($lines, $reji_ot_elem, $item_per_page); Аз се опитвам да приложа към моя проект скрипт за странициране взет от друго място. Ако може помогнете за странициране на този блок новини: <?php // Тази функция чете всички новини. function getNewsList(){ $fileList = array(); // Отваря директорията if ($handle = opendir("news")) { // Чете всички файлове от директорията. while ($file = readdir($handle)) { if (!is_dir($file)) { $fileList[] = $file; } } } rsort($fileList); return $fileList; } ?> //така се показва новината . <?php $list = getNewsList(); foreach ($list as $value) { $newsData = file("news/".$value); $newsTitle = $newsData[0]; $submitDate = $newsData[1]; unset ($newsData['0']); unset ($newsData['1']); $newsContent = ""; foreach ($newsData as $value) { $newsContent .= $value; } echo "<tr><th align='left'>$newsTitle</th> <th align='right'>$submitDate</th></tr>"; echo "<tr><td colspan='2'>".$newsContent. "<br/><hr size='1'/></td></tr>"; } ?>

Защо не вкараш всички пътища до файловете с новини в масив. След това избираш интервала (пр. 3-8) новини, които да се покажат на страницата и показваш съдържанието на файловете от съответните позиции в масива.

нещо такова:

$page; (променлива за номер на страница)
$news_per_page; (променлива за брой новини на страница)
$news; (масив за пътя до файловете с новините - на всяка позиция път към отделен файл)
//files => $news (нямам в момента възможност да тествам за да ти напиша примерен код)
for($i=($page-1)*$news_per_page+1;$i<=$page*$news_per_page;$i++) {
 echo $news[$i]; (примерно)
}

Надявам се съм ти помогнал.

Редактирано от darkyto (преглед на промените)

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.