Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2012, 22:37   #1
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию подключение модулей

Добрый день, не могу догадаться, как можно осуществить следующее:
пусть имеется шаблон такого типа:
Код:
<html>
 <head>
 </head>
<body>
 <div id="block1">
   module_position("left");
 </div>
 <div id="block2">
   module_position("center");
 </div>
</body>
</html>
module_position("left"); - метка, в которую должен подключаться отдельный файл со скриптом, например, который выводит что-то. Подключается например require_once(путь до файла);

Функция парсинга, которая найдет все module_position("позиция");

Код:
function ParseTemplate($template_path){
$temp=file_get_contents($template_path);
 		$positons=preg_match_all("/module_position\(\"([^\)]*)\"\)/", $temp, $positions);
}
В результате в массиве $positions будут храниться все эти метки, в которые должны подключаться модули.
А теперь вопрос, как сделать так. что бы модули подключились именно в это место?
CodeNOT вне форума Ответить с цитированием
Старый 02.02.2012, 23:10   #2
serres
Пользователь
 
Регистрация: 04.11.2007
Сообщений: 77
По умолчанию

не проще ли написать статический метод который будет вставлять гужный вам модуль

modul.php
PHP код:
class modul {
     static 
functoim getCentr(){
     return 
"<div> bla bla </div>"
     
}

а потом обратиться там где он нужен

[HTML]

request (modul.php);
<html>
<head>
</head>
<body>
<div id="block1">
module_position("left");
</div>
<div id="block2">
<?php echo modul::getCentr()?>
</div>
</body>
</html>

[HTML]


/*** другими словами

1) сначала создаем класс в не шаблона MODUL.PHP
2) request не важно где (оюычно в самом верху до шаблона)
3) потом вызываем статический метод где он нам нужен

Последний раз редактировалось serres; 02.02.2012 в 23:14.
serres вне форума Ответить с цитированием
Старый 02.02.2012, 23:16   #3
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

Такое уже сделал, но мне бы хотелось как раз что бы эти метки отыскать и вставить туда нужный мне модуль
CodeNOT вне форума Ответить с цитированием
Старый 03.02.2012, 07:59   #4
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

Никто не писал шаблонизаторы?
CodeNOT вне форума Ответить с цитированием
Старый 03.02.2012, 08:11   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,166
По умолчанию

Писал...
Цитата:
В результате в массиве $positions будут храниться все эти метки, в которые должны подключаться модули.
А теперь вопрос, как сделать так. что бы модули подключились именно в это место?
может str_replace - замена всех меток на то - что нужно?
ADSoft вне форума Ответить с цитированием
Старый 03.02.2012, 08:23   #6
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

например, имеется файл modul.php, например я из базы выдергиваю имя модуля и его место в шаблоне, т.е. позицию, например left, и я хотел бы подключить как раз на ту позицию, на которой он должен стоять, и да, модулей например может быть много. я просто не понимаю, как это в Joomla реализовано, может кто разбирал движок, дак скажет, или даже кинет исходник)
CodeNOT вне форума Ответить с цитированием
Старый 03.02.2012, 09:18   #7
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,166
По умолчанию

ну не знаю как там в джумле реализовано - но думаю тоже не так как вы думаете. Хотя наверное можно и так собирать.... ну грубо говоря так:
- взяли шаблон страницы
- делаем цикл по переменным - которые есть на странице
- по соответствию с БД или еще как - находим название модуля соответствующее нужной метке ..
делаем include или requere_once соотв модуля - но моудль должен отработать и глобальной переменной какой то выдать результат своей работы - str_replace(метка,то что модуль сгенерил нам)
... конец цикла
потом выводим готовую страницу
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подключение нужных модулей Student1992 PHP 1 23.11.2011 21:49
Подключение модулей Adblock WordPress и другие CMS 1 23.01.2011 13:51
Создание и подключение модулей Claster Общие вопросы Delphi 4 28.02.2009 12:14
подключение модулей... Teleport Помощь студентам 2 25.06.2008 00:26
подключение модулей... Teleport Помощь студентам 1 13.06.2008 15:04