PDA

Просмотр полной версии : Пара новых вопросов.


AgS
17.10.2009, 14:42
Всем добрый день!
Возникла следующая проблема, помогите разобраться кто может:
- есть самописный портал на php и mysql.Сайт разделен на блоки(шапка, леввый блок, основной контент/текс, правый блок и нижний блок) все они подрубаются через include, есть простая админка и есть директория modules в которой есть 4 php файла(1 выводит опрос, 2 выводит рекламный блок, 3 выводит погоду, а 4 выводит 5 последних статей), возникла потребность сделать так, что бы в админке можно было подключать определённый модуль к той или иной стороне.

D1mOn
17.10.2009, 14:53
НУ через мускуль. Таблицу с модулями сделай. И выбирай какой включить, а какой нет.

AgS
17.10.2009, 15:01
Маленькое пожелание, ненадо подкалывать, язвить в теме, нехотите ничего дельного писать, тогда лучьше вообще не пишите. Сразу говорю безобид.
Я это спрашиваю для того чтобы самому научиться, готовые ответы меня не интересуют, а лучьший способ на мой взгляд научиться, спросить у тех кто это умеет и может помочь.

И если честно думал сделать так: в mysql создать таблицу "r_l_block" с полями "link", "side",(например "modules/golos.php" и "right") в файле правого блока например сделать подключение к бд, сделать запрос на вывод данных из созданной нами таблицы с условием что быдут выводиться только те элементы в которых в поле side указана например right, а дальше в файле правого блока делать:

$result = mysql_query("SELECT * FROM r_l_block WHERE side=right", $db);
$a = mysql_fetch_array($result);
do
{
include "$a[link]";
}
while ($a = mysql_fetch_array($result));

но недумаю что это совсем правильно, и возник вопрос как это все операции делать не ручками а через админку?? и отсюда ещё тогда вопросы:
как сделать чтобы админка сама понимала сколько модулей лежит в дерриктории выводила их название(описание по возможности из данного файла) и давала на выбор куда их подключать? с подключением примерно понимаю как сделать, а как заставить админку показывать подули никак не допру.

и ещё вопрос подскажите для чего нужен or die();

AgS
18.10.2009, 16:56
неужели никто не может подсказать как реализовать данные вещи??

Sharky
18.10.2009, 17:22
тебе в #3 посте сказали

L I G A
18.10.2009, 17:41
cоздай таблицу к примеру ,как ты писал, с такой структурой:

+---------------+
|link | side |id|
+---------------+

link//название модуля
side//cтатус
допустим ты ее создал и заполнил

+----------------+
| link | side|id|
| right| on |1|
| left| off |3|
| centr| on |3|
+----------------+

далее:

$query = "SELECT * FROM `moduls`";
$nme = mysql_query($query);
$urlRoww = mysql_fetch_assoc($nme);
$modul =$urlRoww['link'];
$status=$urlRoww['side'];
//пихаем в массив
$modularray=explode(' ',$modul);
$statusarray=explode(' ',$status);

тут можешь использовать различные проверки во избежания глобально/локального инкоуда.
for($i=0;$i<=count($statusarray);$i++)
{
if($statusarray[$i]=='on')
{
include('moduls/'.$modularray[$i].'.php')
}
}
обновлять статусы модулей примерно так:
mysql_query("UPDATE `moduls` SET `side`='".$status."' WHERE `id`=".$id.");
но это ,ты уже сам домозгуй,да и весь процесс который я описал тоже, т.к. он не совершенный.
Я всего лишь описал один из методов.

AgS
18.10.2009, 18:14
так посути начало в голове проясняться как это реалезовать.
только вот вопрос как сделать проверку файлов в каталоге(а точнее php файлов модулей)??

m0Hze
18.10.2009, 18:23
file_exist(name);

AgS
18.10.2009, 18:27
ушёл пробовать, вечером отпишусь о результатах..