Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 14.07.2012
Сообщений: 46
1

Автоматизация динамического сайта

16.07.2012, 12:58. Показов 2896. Ответов 31
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, мастера пыха! =)
Описание:
Сайт порезан на фрагменты-блоки, подключаемые функцией require_once(), например, require_once('menu.php') и т.д. Некоторые из этих блоков являются статическими (шапка, футер), меню формируется автоматически из заполнения файлами и подкаталогами одного из каталогов. В ссылке каждого из пунктов меню содержится гет-информация, содержащая адрес контент-блока сайта. Все это уже удалось реализовать, в т.ч. и с вашей помощью =). И все работает.

Задача:
Хочу сделать автоматический титл и заголовок страницы. То есть, при переходе по любой из ссылок меню должно генерироваться значение тегов <title>...</title> и <h1>...</h1>. Основная сложность (для меня) в том, что эти теги будут находиться в каркасе шаблона, которому "неизвестно", какой контент открыт в данный момент в подключенном блоке контента.
В надежде на помощь постарался расписать все максимально подробно =)

Как этого можно достичь?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2012, 12:58
Ответы с готовыми решениями:

Автоматизация сайта
Я только начал разбираться в основах программирования.Есть цель сделать автоматизированный сайт,...

Создание динамического сайта
Добрый день. Мне надо создать динамический сайт с php-страницами. Хочу использовать фреймворк...

Автоматизация для добавления товаров, чтобы после заполнения марки, модели остальное описание парсилось с другого сайта
Карточка товара состоит из марки, модели, описания, картинок, тайтла, дескриптора и разных...

APACHE+PHP+MYSQL+PHPMYADMIN эта связка актальна для динамического сайта?
APACHE+PHP+MYSQL+PHPMYADMIN эта связка актуальна для динамического сайта сколько искал инфы...

31
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
16.07.2012, 13:34 2
создаете в бд таблицу с допустим тремя полями id, title, num
id автоинкремент, первичный, num int и title Я думаю varchar(255) за глаза хватит.
а дальше проверяете адрес скрипта - если такой то - извлекаете такой то титл, если другой - другой.
как то так (способов много)
0
0 / 0 / 0
Регистрация: 14.07.2012
Сообщений: 46
16.07.2012, 15:22  [ТС] 3
KOPOJI, спасибо за ответ, но я имел в виду создание полностью автоматизированного алгоритма. В вашем варианте мне придется при добавлении новой страницы вносить новую инфу в бд, что не есть гуд.
Нужно:
Заливается новый файл/подкаталог в каталог с контентом -- Автоматически появляется новая ссыль в меню (сделано) -- При переходе на новую страницу генерируется автоматический титл и заголовок под эту страницу (не сделано!). Информацию скрипт должен брать из пункта меню, то есть при переходе на страницу Кирпичи должны быть соответствующие титл и заголовок.
Как-то так... =)
0
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,800
16.07.2012, 15:36 4
нуа как у вас пункт меню появляется ? тип из заголовка новости вы текст берете?
0
0 / 0 / 0
Регистрация: 14.07.2012
Сообщений: 46
16.07.2012, 15:38  [ТС] 5
crautcher, я перебираю файлы в директории, отсекаю расширения и добавляю теги ссылок.
Обсуждалось и отлаживалось здесь
0
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,800
16.07.2012, 15:52 6
не ,адрес понятно , меня итересует как вы берете текст для ссылки который , как я понимаю , надо в тайтл запихнуть
0
0 / 0 / 0
Регистрация: 14.07.2012
Сообщений: 46
16.07.2012, 16:03  [ТС] 7
crautcher, дык, элементарно вроде, даже для меня )))
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function get_files($path, $dir)
{ $next_path= $path.$dir;  
  $next_pathEn= urlencode($path.$dir);
  
   if(is_file($next_path) )
    { $title= substr(win_utf8($dir), 0, -4); // echo $title;
       echo "<li class=file> <a href='/?cont=$next_pathEn'>".$title."</a></li>"; //обрезаем, перекодируем, вписыаем    
       // session_start();  $_SESSION[$next_pathEn] = $title; echo $_SESSION[$next_pathEn].<br>;
    } else
    {   if ($dir!="Content")
        {  echo "<div class=dir onclick='open_hide(\"dir_$next_pathEn\")'>".  
          win_utf8($dir). "</div>";
        }
      echo  "<ul class=dir id=dir_$next_pathEn style='display:none;'>";
     
   $files= scandir($next_path);
       foreach ($files as $f) 
       { if(($f != '.') && ($f != '..') ) 
            {   get_files($next_path.'/', $f, $id );
            }
       }
      echo "</ul>"; 
    }
}
Содержимое директории Контент проходит проверку на файл/не файл. Если файл, ставится относительный путь к нему, если нет - то к нему доплюсовывается путь по поддиректориям.
Пришлось немного покривляться с кодировками, поскольку на серваке вся кириллица кодируется в вин, а у меня везде утф-8 прописан. А большинство имен директорий кириллические. Но эта проблема уже решена. Все работает.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
16.07.2012, 16:08 8
Цитата Сообщение от KorniloFF Посмотреть сообщение
Содержимое директории Контент проходит проверку на файл/не файл. Если файл, ставится относительный путь к нему, если нет - то к нему доплюсовывается путь по поддиректориям.
так причем тут это? непонятно, каким образом должен формироваться заголовок страницы, откуда его брать? по моему, это же самое спрашивал и crautcher
0
0 / 0 / 0
Регистрация: 14.07.2012
Сообщений: 46
16.07.2012, 16:24  [ТС] 9
KOPOJI, ааа, понял вопрос.

Цитата Сообщение от KorniloFF Посмотреть сообщение
Информацию скрипт должен брать из пункта меню, то есть при переходе на страницу Кирпичи должны быть соответствующие титл и заголовок.
То есть, исходя из приведенного кода, должно быть содержимое переменной $title.
Я не понял вопроса, поскольку в приведенной цитате уже вроде это упоминал... =(
0
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,800
16.07.2012, 16:39 10
ну у вас есть же $next_pathEn в гете ,всегото надо отделить название файла и также его
PHP
1
substr(win_utf8($dir), 0, -4);
0
0 / 0 / 0
Регистрация: 14.07.2012
Сообщений: 46
16.07.2012, 16:43  [ТС] 11
crautcher, помогите отделить, не могу понять как это сделать регулярными выражениями, исходя из того, что длина слов будет везде разная...
А вообще, думал, может еще способы передачи данных из файла в файл есть, потому что все же в адрес не запихнешь... Мне идея с адресной строкой вообце-то говоря вообще не нравится, поскольку мы далеко уходим от ЧПУ.
Но если других способов нет, то придется пользоваться этим.
0
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,800
16.07.2012, 16:47 12
pathinfo() http://php.net/manual/en/function.pathinfo.php

еслибы вы нормально спроектировали бы свой проект такого гамароя не было-бы
0
0 / 0 / 0
Регистрация: 14.07.2012
Сообщений: 46
16.07.2012, 16:53  [ТС] 13
crautcher, это мои первые пых-коды. Я ни начем не настаиваю. Есть идеи - выкладывайте. Например, что именно НЕ нормально спроектировано. Я только начал учиться и пришел сюда за помощью.
Есть форум, где я модератор и консультирую людей по хтмл, ксс и прочему. Тоже утомляюсь отвечать на глупые вопросы.
Свои коды я выкладываю как образец своего понимания, заранее зная, что далеко не все верно. Подскажите, если сможете, где ошибки, недочеты, говнокоды и проч. Я готов переделать все заново, лишь бы понять оптимальную структуру построения кодов на пхп.
0
198 / 166 / 23
Регистрация: 20.04.2011
Сообщений: 750
Записей в блоге: 1
16.07.2012, 17:41 14
конечно вы сделали как по мне не очень разумно, если вы хотите такое управление, то лучше было бы использовать javascript+html(фреймы) как основу, а php как генератор динамического контента.
0
0 / 0 / 0
Регистрация: 14.07.2012
Сообщений: 46
16.07.2012, 17:54  [ТС] 15
Цитата Сообщение от c4boomb Посмотреть сообщение
конечно вы сделали как по мне не очень разумно, если вы хотите такое управление, то лучше было бы использовать javascript+html(фреймы) как основу, а php как генератор динамического контента.
Это как раз для меня проблемы не представляет, потому, в качестве обучения, я этот вариант не рассматриваю.

Сделал:
PHP
1
2
$url= pathinfo($_SERVER['REQUEST_URI']);
echo utf8_encode($url['filename']);
Проблемы:
1. Не получается вернуть утф-8 кодировку, возвращается строка вида
?cont=Content%2FJavascripts%2F%C0%ED%F2%E8%EC%E0%F2+%C0%ED%F2%E8%F1%EF%E0%EC+%E8 +%C0%ED%F2%E8%F0%E5%F4
2. Даже если справлюсь с кодировкой, не представляю как из пути от папки Контент (длина пути из-за вложенных подкаталогов будет каждый раз разная) получить имя файла...

Пока в тупике, продолжаю гуглить. Надеюсь на помощь и конструктивную критику.
0
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,800
16.07.2012, 18:03 16
и что вы делаете в вашем примере , выже линк делали /?cont=$next_pathEn
PHP
1
2
$url= pathinfo(urldecode($_GET['cont']));
echo utf8_encode($url['filename']);
1
c4boomb
16.07.2012, 18:09
  #17

Не по теме:

KorniloFF, целью обучения всегда является получить самый короткий путь к решению определённого задания

0
0 / 0 / 0
Регистрация: 14.07.2012
Сообщений: 46
16.07.2012, 18:22  [ТС] 18
crautcher, спасибо за идею!
Но в заголовке получается:
Àíòèìàò Àíòèñïàì è Àíòèðåô


c4boomb, полностью согласен. Однако, чтобы определить длину разных путей, ее нужно знать, то есть попробовать. Чем я и занимаюсь =). Все коды я буду оптимизировать с высоты приобретенных знаний, но она пока не велика. Вот сейчас, напирмер, изучаю структуру ООП в пхп, создание классов.
0
198 / 166 / 23
Регистрация: 20.04.2011
Сообщений: 750
Записей в блоге: 1
16.07.2012, 18:25 19
HTML5
1
<meta http-equiv="content-type" content="text/html; charset=Windows-1251">
Какая кодировка у вас в этом теге? Какая кодировка файлов ? основного и остальных
0
0 / 0 / 0
Регистрация: 14.07.2012
Сообщений: 46
16.07.2012, 18:35  [ТС] 20
Ура!!! Справился с кодировкой, использовав пользовательскую функцию.
Конечный код:
PHP
1
2
3
4
echo "<h1>";
$url= pathinfo(urldecode($_GET['cont']));
echo win_utf8($url['filename']);
echo "</h1>";
Всем спасибо! Аналогичным образом сделаю и титл.

Добавлено через 2 минуты
Цитата Сообщение от c4boomb Посмотреть сообщение
Какая кодировка у вас в этом теге? Какая кодировка файлов ? основного и остальных
На оба вопроса - утф-8. Читал, что она предпочтительнее для пыха.
Проблема была в том, что при получении массива имен файлов из директории, учитывая, что они кириллические, почему-то возвращалась вин-кодировка. Соответственно - вопросы в ромбиках!
0
16.07.2012, 18:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.07.2012, 18:35
Помогаю со студенческими работами здесь

Автоматизация html сайта
Есть html сайт человек вел его вручную - вставлял новые страницы прям из &quot;шаблонов ворда&quot; весь...

Автоматизация действий на сайте, бот для сайта
Задача стоит в том чтобы работать с сайтом авторизоваться, парсить некоторые данные, добовлять...

Автоматизация сохранения страниц с возрастающим адресом с веб-сайта
Здравствуйте. Хочу решить одну проблему. Есть сайт, в нем есть набор картинок, каждая картинка - на...

Поддержка динамического сайта
Такой вопрос. Исходя из предыдущих коментариев о работе динамеческого сайта я углубился в CMS....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru