Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: CMS softtime
 
 автор: ventor   (07.04.2012 в 18:22)   письмо автору
 
 

Всем привет!подскажите уважаемые Кузнецов М.В., Симдянов И.В. каким образом можно выводить статьи постранично используя ваши классы? за ранее спасибо!

<?php
  
////////////////////////////////////////////////////////////
  // 2005-2008 (C) Кузнецов М.В., Симдянов И.В.
  // PHP. Практика создания Web-сайтов
  // IT-студия SoftTime 
  //    - портал по Web-программированию
  //  - коммерческие услуги
  // - мобильные проекты
  //   - некоммерческие проекты
  ////////////////////////////////////////////////////////////
  // Выставляем уровень обработки ошибок 
  // ()
  
error_reporting(E_ALL & ~E_NOTICE);

  
// Инициируем сессию
  
session_start();
  
// Устанавливаем соединение с базой данных
  
require_once("config/config.php");
  
// Подключаем SoftTime FrameWork
  
require_once("config/class.config.php");
  
// Заголовок
  
require_once("utils.title.php");

  
// Определяем параметр для статей
  
define("ARTICLE"1);

  try
  {
    
// Если не передан параметр id_position - выводим список статей
    
if(empty($_GET['id_position']))
    {
      
// Проверяем GET-параметры, предотвращая SQL-инъекцию
      
$_GET['page']       = intval($_GET['page']);
      
$_GET['id_catalog'] = intval($_GET['id_catalog']);
  
      if(empty(
$_GET['id_catalog']))
      {
        
// Запрашиваем параметры текущего раздела
        
$query "SELECT * FROM $tbl_catalog 
                  WHERE id_catalog = 
$_GET[id_catalog]";
        
$cat mysql_query($query);
        if(!
$cat)
        {
          throw new 
ExceptionMySQL(mysql_error(), 
                                   
$query,
                                  
"Ошибка при извлечении 
                                   параметров текущего раздела"
);
        }
        
$catalog mysql_fetch_array($cat);
      }
  
      
//Подключаем верхний шаблон
      
if(empty($catalog['name'])) $pagename $catalog['name'];
      else 
$pagename "Статьи";
      if(empty(
$catalog['keywords'])) $keywords $catalog['keywords'];
      else 
$pagename "Ключевые слова";
  
      
// Запрашиваем подразделы текущего раздела
      
$query "SELECT * FROM $tbl_catalog
                WHERE hide = 'show' AND id_parent = 
$_GET[id_catalog]
                ORDER BY pos"
;
      
$sub mysql_query($query);
      if (!
$sub)
      {
        throw new 
ExceptionMySQL(mysql_error(), 
                                 
$query,
                                
"Ошибка при обращении к 
                                 блоку статей"
);
      }
      if(
mysql_num_rows($sub))
      {
        
// Верхний шаблон
        
require_once ("templates/top.php");
        
// Название
        
echo title($pagename);
        echo 
"<div class=\"main_txt\">";
        while(
$subcatalog mysql_fetch_array($sub))
        {
          echo 
"<a href=\"".$_SERVER['PHP_SELF']."?id_catalog=".$subcatalog['id_catalog']."\" 
                       class=\"menu_lnk\"><h3>"
.
                       
htmlspecialchars($subcatalog['name'])."</a></h3>";
        }
        echo 
"</div>";
      }
  
      
// Запрашиваем статьи текущего раздела
      
$query "SELECT * FROM $tbl_position
                WHERE hide = 'show' AND id_catalog = "
.$_GET['id_catalog']."
                ORDER BY pos"
;
      
$pos mysql_query($query);
      if (!
$pos)
      {
        throw new 
ExceptionMySQL(mysql_error(), 
                                 
$query,
                                
"Ошибка при обращении к 
                                 блоку статей"
);
      }
      if(
mysql_num_rows($pos) > 0)
      {
        
// Статься одна и подразделов нет
        
if(mysql_num_rows($pos) == && !mysql_num_rows($sub))
        {
          
// Получаем параметры текущей статьи
          
$position mysql_fetch_array($pos);
          
// Если статья на самом деле является ссылкой - осуществляем редирект
          
if($position['url'] != 'article')
          {
            echo 
"<HTML><HEAD>
                  <META HTTP-EQUIV='Refresh' CONTENT='0; URL=
$position[url]'>
                  </HEAD></HTML>"
;
            exit();
          }
          
// Статья одна и нет подразделов - выводим содержимое статьи
          
$_GET['id_position'] = $position['id_position'];
          
// Название и ключевые слова
          
$pagename $position['name'];
          if(empty(
$pagename)) $pagename "БИПСИ";
          
$_GET['id_catalog'] = $position['id_catalog'];
          
$keywords $position['keywords'];
          
// Верхний шаблон
          
require_once ("templates/top.php");
          
// Название
          
echo title($pagename);
          require_once(
"article_print.php");
        }
        
// Статей несколько или имеются также подразделы
        
else
        {
          echo 
"<div class=\"main_txt\">";
          while(
$position mysql_fetch_array($pos))
          {
            if(
$position['url'] != 'article')
            {
              echo 
"<a href=\"".htmlspecialchars($position['url'])."\" 
                        class=\"main_txt_lnk\">
                     "
.htmlspecialchars($position['name'])."</a><br>";
            }
            else
            {
              echo 
"<a href=\"$_SERVER[PHP_SELF]?id_catalog=$_GET[id_catalog]&".
                   
"id_position=$position[id_position]\" 
                     class=\"main_txt_lnk\">"
.htmlspecialchars($position['name'])."</a><br>";
            }
          }
          echo 
"</div>";
        }
      }
    }
    else
    {
      
// Проверяем GET-параметры, предотвращая SQL-инъекцию
      
$_GET['id_position'] = intval($_GET['id_position']);
      
// Получаем параметры текущей статьи
      
$query "SELECT * FROM $tbl_position
                WHERE hide = 'show' AND 
                      id_position = 
$_GET[id_position]";
      
$pos mysql_query($query);
      if (!
$pos)
      {
        throw new 
ExceptionMySQL(mysql_error(), 
                                 
$query,
                                
"Ошибка при обращении к 
                                 блоку статей"
);
      }
      if(
mysql_num_rows($pos))
      {
        
$position mysql_fetch_array($pos);
        
// Если статья на самом деле является ссылкой - осуществляем редирект
        
if($position['url'] != 'article')
        {
          echo 
"<HTML><HEAD>
                <META HTTP-EQUIV='Refresh' CONTENT='0; URL=
$position[url]'>
                </HEAD></HTML>"
;
          exit();
        }
        
//Подключаем верхний шаблон
        
$pagename $position['name'];
        if(empty(
$pagename)) $pagename "БИПСИ";
        
$_GET['id_catalog'] = $position['id_catalog'];
        
$keywords $position['keywords'];
        require_once (
"templates/top.php");
  
        
// Название
        
echo title($pagename);
        
// Выводим статью
        
require_once("article_print.php");
      }
    }

    
//Подключаем нижний шаблон
    
require_once ("templates/bottom.php");
  }
  catch(
ExceptionMySQL $exc)
  {
    require_once(
"exception_mysql_debug.php");
  }
  catch(
ExceptionMySQL $exc)
  {
    require_once(
"exception_mysql_debug.php"); 
  }
  catch(
ExceptionMember $exc)
  {
    require_once(
"exception_member_debug.php"); 
  }
?>



делал вот такой запрос
$obj = new pager_mysql( $tbl_position,
                "WHERE id_catalog = $_GET[id_catalog]",
                "ORDER BY pos",
                 $pnumber, 
                $page_link, 
                "&amp;id_catalog=$_GET[id_catalog]");


и дальше запутался....

  Ответить  
 
 автор: Slo_Nik   (08.04.2012 в 01:59)   письмо автору
 
   для: ventor   (07.04.2012 в 18:22)
 

в книге "PHP практика создания web-сайтов"(2-е издание), на странице 506....

  Ответить  
 
 автор: ventor   (08.04.2012 в 10:27)   письмо автору
 
   для: Slo_Nik   (08.04.2012 в 01:59)
 

Сделал по другому,через ф-цию...правда теперь немного лишнего кода получилось(точнее подключение лишнего файла) зато сам код представленный выше почти остался без изминения! Копирайты я думаю оставить все равно,авторы скрипта за внесением небольшого изминения не обидяться!

  Ответить  
 
 автор: ventor   (08.04.2012 в 15:35)   письмо автору
6 Кб
 
   для: ventor   (08.04.2012 в 10:27)
 

еще вот вопросик...каким образом поправить поиск теперь...он вроде бы находить позиции но статью не выводит(
вот так выглядить ссылка на формировании статьи(постраничная навигация)
http://site.ru/index.php?id_catalog=1&id_position=1&page=1


меняем формировании ссылки в поиске

echo "<div class=main_txt><a class=\"main_txt_lnk\" 
                  href=index.php?id_catalog=$position[id_catalog]".
                 "&id_position=$position[id_position]"."&page=$_GET[page]>".
                 "$position[name]</a></div>";


не выводит статью,подскажите причину!
файл прикреплен

  Ответить  
 
 автор: ventor   (08.04.2012 в 17:22)   письмо автору
 
   для: ventor   (08.04.2012 в 15:35)
 

Автор скрипта бывает тут?

  Ответить  
 
 автор: cheops   (08.04.2012 в 19:52)   письмо автору
 
   для: ventor   (07.04.2012 в 18:22)
 

Дальше нужно просто вывести объект в виде строки, так можно получить навигационную строку
<?php
   
echo $obj;
Мето $obj->get_page() вернет двумерный объект с содержимым таблицы $tbl_position для текущей страницы.

PS Если не сложно, прикрепляйте такие объемные листинги в виде файла.

  Ответить  
 
 автор: ventor   (08.04.2012 в 21:32)   письмо автору
 
   для: cheops   (08.04.2012 в 19:52)
 

Или вы меня не поняли,либо я Вас! выводит поиск по "name" ,но при нажатии на ссылку пустая страница (выводит только заголовок статьи) не выводит параграфы именно!

то есть мы вводим в строку поиска что ищем, выводит найденные результаты но при нажатии на ссылки (ссылки статей) у нас только заголовок!

PS: извините не сразу заметил прикрепление файлов!

  Ответить  
 
 автор: cheops   (08.04.2012 в 23:21)   письмо автору
 
   для: ventor   (08.04.2012 в 21:32)
 

>Или вы меня не поняли,либо я Вас! выводит поиск по "name" ,но при нажатии на ссылку пустая
>страница
А какая ссылка имеется в виду, навигационная (с номерами статей) или какой-то заголовок?

  Ответить  
 
 автор: ventor   (09.04.2012 в 13:29)   письмо автору
 
   для: cheops   (08.04.2012 в 23:21)
 

Выводиться и результаты поиска и навигационная строка,выводиться например название статьи(в которой встречается комбинация слов которое мы ищем) как ссылка и при нажатии на нее выводить только заголовок этой статьи,то есть сама статья и принадлежащие ей изображения не выводяться...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования