За последние 24 часа нас посетили 16699 программистов и 1694 робота. Сейчас ищут 857 программистов ...

Проблема при создании CMS

Тема в разделе "PHP для новичков", создана пользователем kagbox, 4 апр 2008.

  1. kagbox

    kagbox Активный пользователь

    С нами с:
    4 апр 2008
    Сообщения:
    1
    Симпатии:
    0
    Программирую небольшую cms.
    Структуракаталогов выглядит следующим образом:
    корневой каталог, в котором находятся:
    - adm ( каталог, в котором лежат файлы администрирования);
    - main (каталог, в котором лежит таблица стилей и изображения);
    head.php (шапка сайта)
    left.php (левая сторона)
    index.php
    right.php (правая сторона)
    sub.php (нижняя часть сайта)

    страница выглядит следующим образом:
    head.php
    left.php СТРАНИЦА ВЫВОДА ИНФОРМАЦИИ (начальная index.php) right.php
    sub.php

    Страница вывода информации подключает страницы дизайна следующим образом:

    <?php

    require_once ("head.php");
    require_once ("left.php");

    ВЫВОД ИНФОРМАЦИИ

    require_once ("right.php");
    require_once ("sub.php");

    ?>

    Файл head.php включает в себя ссылку на таблицу стилей:
    <link rel='stylesheet' href='main/styles.css' type='text/css'>

    Однако, если файл вывода информации лежит в каталоге (например в adm), происходит сбой вывода таблицы стилей (так как неверно определяется корневой каталог)

    Вопрос такой: Как определить корневой каталог - как это возможно сделать?
    [/b]
     
  2. +Sten+

    +Sten+ Активный пользователь

    С нами с:
    27 авг 2007
    Сообщения:
    978
    Симпатии:
    0
    Можно использовать полный путь: site.com/main/styles.css.
     
  3. Clone

    Clone Guest

    href='/main/styles.css'

    И это только моё имхо, но я бы не стал собирать страничку из нескольких php-файлов. Лучше сделать простенький шаблонизатор, который будет выводить "дизайн сайта" и где-то в определённом месте(content-wrapper'е) выводить контент, будет это главная страница или контент, который отдал модуль...
     
  4. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Пропишите в конфиге полный путь к сайту, а потом в css
    FULL_PATH . "/css/myCss.css"

    Если я не ошибаюсь, require нужно использовать до первого вывода информации в браузер. Вместо него лучше использовать include_once.
     
  5. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    ошибаешься

    Разница между require и include
     
  6. Anonymous

    Anonymous Guest

    o_O

    ты меня расстроил...
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Файл стиле загружает не сервер, а браузер клиента. Если style.css лежит например в корне сайта, то для страницы адреса site.ru/index.php адрес файла стилей может быть просто style.css, если адрес вида - site.ru/adm/index.php, то путь к файлу стилей должен быть ../style.css
     
  8. Clone

    Clone Guest

    Горбунов Олег, к чему это набивание постов?
    [vs], не проще ли / в начале адреса поставить и не заморачиваться?;)
     
  9. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
  10. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Самый удобный и ИМХО верный вариант это прописывать base href - в теге <head />:
    Код (Text):
    1. <base href="http://сайт.ру/" />
    И если ты решишь переместить свой движок в папку subfolder, например. тебе не придёться переписывать все пути, а просто поправить base href:
    Код (Text):
    1. <base href="http://сайт.ру/subfolder/" />
     
  11. Clone

    Clone Guest

    lexa, не знаю, сам иногда так делаю, но такой подход ассоциируется с кривостью и косостью... Не знаю почему... А ещё, по-моему бывают проблемы с таким подходом... Ток щас не вспомню какие, давно использовал...
     
  12. Anonymous

    Anonymous Guest

    нормально, нормально. BASE для этого и придуман.
     
  13. Professor

    Professor Активный пользователь

    С нами с:
    2 янв 2008
    Сообщения:
    121
    Симпатии:
    0
    Адрес:
    г. Одесса, Украина
    Тоже использую BASE и всем советую.
     
  14. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Internet Explorer в ява-скриптах иногда игнорирует BASE.
     
  15. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Dagdamor, в каких ситуациях?
    [js]var a = document.createElement('A')
    a.setAttribute('href', 'lol')
    a.innerHTML = 'Отшлёпай меня!'
    document.body.appendChild(a)[/js]
    Нормально работает.
     
  16. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    lexa
    Вроде поднимали уже этот вопрос в теме движка моего...
    http://php.ru/forum/viewtopic.php?p=41977#41977
    Щас заброшу тамошний пример снова на сервер, проверь.
     
  17. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Надеюсь Шива (или кто там) покарает этих долба*бов из команды разработчиков IE.

    Тем не менее, проще один раз в яваскриптовом редиректи ссылку поменять (засунув в функцию), чем во всём дизайне.