Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Wmaster.ru - дизайн портал, все для вебмастера. Выпуск 59.


Информационный Канал Subscribe.Ru

.:: Всё для Web-мастера  - выпуск 59  ::..

 

В этом выпуске:

Так же на сайте:

Действия:

<< задать вопрос >>
 << прислать статью >>

<< прислать заявку на обзор сайта >>

 

Всего подписчиков - 5785+

 :: Свежие новости портала Wmaster.Ru :: 

Недавно на главную страницу сайта был поставлен скрипт для вывода новых тем форума на главную страницу... там что все новые темы сейчас у вас навиду :) Кстати и в рассылке появился раздел "Новые темы на форуме Wmaster.Ru", так что теперь всё новенькое будет приходить вам прямо на мыло :) Возможно посещаемость форума тоже повысится ;)


Хотите рекламировать свой сайт на Wmaster.Ru или в этой рассылке...Пишите на mail@wmaster.ru

 :: *Лучший хостинг* :: 

Лучший хостинг - 99.9% UPTIME

  Besthosting - отличный хостинг по низким ценам. Тарифный план "Оптимальный", 1 GB места на диске, PHP, PERL, MySQL, веб-панель, скрипты - от 6 уе. в мес! Домен бесплатно, первый месяц хостинга бесплатно! Смотреть. Партнерская программа - получай 25% с каждой покупки и 1 цент за каждый переход.

  :: Динамическая навигация на PHP ::

Автор: Джейсон Пирс (Jason Pearce) и A List Apart

Перевод: Марат Мамяшев
Источник: http://webmascon.com

Превращение неупорядоченных списков в элегантные системы навигации уже давно стало излюбленным развлечением многих веб-разработчиков. Несмотря на это, добавление уникальных id или class'ов для отображения элемента меню, отражающего текущую страницу пользователя, может стать весьма трудоемким. Даже если вместо этого вы используете атрибуты id в body, как то делается на ALA, трудности будут возникать все равно. Да и к тому же легко наделать много ошибок. Но благодаря PHP эту работу можно автоматизировать.

Я рассматриваю это руководство как объединение статей Кристофера Робинса "Управление контентом с помощью PHP" и "Укрощение списков" Марка Ньюхауза. Отпрыском, полученным от такого слияния, будет отдельный документ - navigation.php. Используя PHP мы включим наше навигационное меню в каждую страницу нашего сайта. В отличие от других вариантов навигации, наш будет знать на какой странице находится пользователь в данный момент и соответственно изменит индикатор в меню.

Отображение текущего положения пользователя на сайте в навигации

Чтобы визуально отобразить, какая часть вашего старательно созданного меню представляет текущую страницу, вам, как обычно, надо создать id или class со значением текущей страницы и соответственным стилем. Ваша разметка и CSS будут выглядеть примерно так:

HTML
<div id="navigation">
  <ul>
    <li><a href="#">Страница 1</a></li>
    <li id="currentpage"><a href="#">Страница 2</a></li>
    <li><a href="#">Страница 2</a></li>
    <li><a href="#">Страница 4 </a > </li >
   </ul >
 </div >
 
CSS
#navigation ul {
 list-style: none;
 margin: 0;
 padding: 0;
 }
 
#navigation li {
 background: #ccc;
 border-left: 1px solid #999;
 float: left;
 margin: 0;
 padding: 0;
 }
 
#navigation a {
 color: #666;
 font-weight: bold;
 padding: 5px 10px;
 text-decoration: none;
 }
 
#navigation a:hover {
 color: #333;
 }
 
#navigation #currentpage a {
 background: #fff;
 color: #333;
 }

Навигационное меню демонстрирует на какой странице находится в данный момент пользователь, путем отображения "Страницы 2" другим цветом и с другим фоном. Как разработчик вы будете помнить, что вам придется вручную перенести id="currentpage" с одной ссылки на другую в процессе разработки остальных страниц. Об этом можно забыть использую PHP.

PHP - серверный язык с открытым исходным кодом. Для использования PHP вам необходима установка соответственного модуля на сервер. На большинстве Linux-серверов этот модуль уже установлен. Для серверов Microsoft этот модуль доступен также. Если вы не уверены насчет своего сервера, просто спросите службу поддержки своего хостинга.

Что дальше?

 

Мы начнем с удаления навигационного меню из всех страниц. Удаленный код мы поместим в документ, который назовем navigation.php. Этот документ будет содержать только (X)HTML, который отвечает за структуру вашего меню. Таким образом, файл будет содержать приведенный выше <div id="navigation" > и все его внутреннее содержание.

Когда вы удалите все меню изо всех страниц, наступит время PHP. От вас это потребует знания некоторых основ PHP.

Функция PHP include() предоставляет удобный способ вызвать посторонний файл с сервера. Мне больше нравится хранить все мои подключаемые файлы в одной папке с названием phpincludes.

<?php include("phpincludes/navigation.php"); ?>

Вам также придется добавлять уникальный идентификатор в верхнюю часть каждой страницы, которую будет распознавать PHP (лучше всего до HTML тэга). Для этого создайте переменную $thisPage и присвойте ей значение, которое описанием и уникально для каждой страницы.

Называйте документы проще. Если вы работаете над страницей "О нас", присвойте переменной значение "About Us". Как показано далее:

<?php $thisPage="About Us"; ?> <html> <head >

Так как PHP язык, работающий на стороне сервера, сервер возьмет на себя обработку документа и включения в него файла navigation.php еще до того, как файл будет отправлен в браузер. Все что нам осталось - это добавить немного PHP в файл навигации.

Объединение

Если вы еще не совсем поняли, текущая страница определяется интерпретатором PHP на основании значения переменной $thisPage. Когда мы присвоили уникальное значение переменной $thisPage XHTML файлу (в самом начале то тэга <HTML>), мы можем создать систему навигации, которая будет автоматически добавлять id="currentpage" ссылке текущей страницы в меню еще до того, как страница будет отправлена пользователю. Это делается следующим образом:

HTML и PHP-код для файла navigation.php

<div id="navigation">
  <ul>
    <li<?php if ($thisPage=="Page One") 
      echo " id=\"currentpage\""; ?>>
      <a href="#">Страница 1</a></li>
    <li<?php if ($thisPage=="Page Two") 
      echo " id=\"currentpage\""; ?>>
      <a href="#">Страница 2</a></li>
    <li<?php if ($thisPage=="Page Three") 
      echo " id=\"currentpage\""; ?>>
      <a href="#">Страница 3</a></li>
    <li<?php if ($thisPage=="Page Four") 
      echo " id=\"currentpage\""; ?>>
      <a href="#">Страница 4 </a> </li>
  </ul>
 </div>

Будьте внимательны с синтаксисом PHP. Два знака "=" и бэкслэши перед кавычками обязательны. Кроме того не забудьте поставить реальные ссылки вместо значка "#".

Загрузите файлы на сервер и потестируйте их. Это важно, т.к. пока вы не установили на своей машине собственный http-сервер с PHP интерпретатором или используете редакторы, вроде Dreamweaver'а, PHP-код не будет работать.

Если все будет верно, то сервер получит ваш запрос, распознает его и запустит обработку PHP кода на вашей странице, подключит файл navigation.php и вернет сгенерированный (X)HTML документ, где будет указано ваше текущее положение на сайте.

Другие применения переменной $thisPage Хотя возможности бесконечны, другим моим любимым приемом является использования этой переменной для оптимизации страницы для поисковых систем. Хотя вы и дали каждому документу удобное имя, почему бы не пойти дальше и не добавить документу некоторых дополнительных параметров. Вот еще несколько вариантов использования переменной $thisPage:

<?php $thisPage="О нас"; ?>
<head><html>
<title>Название компании<?php if ($thisPage!="")
  echo " | $thisPage"; ?></title>
<meta name="title" content="Company Name<?php
  if ($thisPage!="") echo " | $thisPage"; ?>" />
<meta name="keywords" 
content="<?php if ($thisPage!="")
  echo "$thisPage, "; ?>
company name, keyword1, keyword2,
  keyword3" />

Когда файл будет обработан, поисковик получит документ с уникальными параметрами, вроде этого:

<head><html>
<title>Название компании | О нас</title>
<meta name="title" content="Company Name | О нас" />
<meta name="keywords" content="О нас, company name, keyword1, 
keyword2, keyword3" />

Джейсон Пирс (Jason Pearce)

 

 

  :: Обзоры недели :: 

Сайт Wmaster.ru продаёт архив из 100 шаблонов для сайта всего за 4$. Присылайте заявки и заказывайте 100 шаблонов для сайта по мылу mail@wmaster.ru с пометкой "шаблон". Оплата в WEBMONEY.

 У ревьювера проблемы с компьютером... в следующем выпуске обещаем сделать двойной обзор.

Жду сайты на вскрытие по e-mail: inxo@wmaster.ru. Отправивший ссылку на этот почтовый ящик гарантированно получит один хост и два хита. :)
Если кто-то не согласен с моей трезвой оценкой - выслушаю ваше мнение и останусь при своем. :)

  :: Вопросы :: 


Вопрос №93 - Вопрос такой: на странице несколько маленьких ссылок-картинок, как
сделать так, чтобы нажав на ссылку-картинку ведущая от ссылки картинка
открывалась
а) в новом окне (может есть варианты),
б) в новом окне, но активным оставалось первое окно (на переднем
плане), второе и другие окна как-бы открывались ЗА ним. Я такое где-то
видел, не могу вспомнить где. Ответить


y

:: Вопрос-Ответ ::

№92 - Подскажите мне пожалуйста как сделать выпадающее меню, но чтобы там был не текст, а картинки - как в ICQ - при нажатии на кнопочку "смайлики" или "эмоции" выпадало меню с содержимым, при наведении на элемент он выделялся контуром а при нажатии - выполнялся бы мой скрипт. 


Ответ от Валеры Шипкова

Это очень просто. Чтобы были картинки - нужно использовать форму, а  не конструктор меню .;)


on TOP (наверх)

:: Новые заметки на http://www.cody.ru  ::

CODY's REG][STER / Заметки CODY - http://www.cody.ru 

01.03.04

acms

сообщения с форума

06.03.04

Protoplex…

кто откроет блог сервис ???

:: Новые темы на Forum.Wmaster.Ru  ::

Каталог файлов

Оцените пожалуйста сайт белоруccкого web-мастера

Кажется, я скоро стану парнем!...

Покажите пожалуйста ваш .htaccess

Ваше мнение

Самый лучший и перспективный ...

JS hide html

Хочу создать пару небольших интернет-проектов

  Оглавление y

 

Ведущий рассылки:

Cody (Bochkarev Anton)

ICQ: 148780826
mail: webmaster@wmaster.ru 
www: http://www.wmaster.ru 

Перепечатка материалов разрешается, только после письменного разрешения автора (e-mail). При перепечатке любого материала с рассылки видимая ссылка на источник www.wmaster.ru  и все имена, ссылки авторов обязательны.
© Copyright Wmaster Group 2002-2004. © Все права защищены.


Besthosting.com.ua

Количество подписчиков: [ Subscribe: 3262 ]  [ Protoplex: 329 ] [ List.Mail: 2194 ]





http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное