Понедельник, 25.09.2017
Меню сайта
Авторизация
Логин:
Пароль:
Поиск
Статистика
Рейтинг@Mail.ru
Rambler's Top100 Яндекс цитирования
Наша кнопка
[ Новые сообщения · Участники · Правила форума · Поиск ]
Страница 2 из 4«1234»
Модератор форума: selbus 
Форум » Программирование » WEB Программирование » Как написать свою CMS (Пишем свою CMS на PHP)
Как написать свою CMS
selbusДата: Вторник, 09.11.2010, 19:38 | Сообщение # 11
Продвинутый
Группа: Модераторы
Сообщений: 152
Статус: Offline
Можно еще распределить по массивам:
Code
function seo($contents){
$inurl = array(
"'(?<!/)index.php\?mod=([a-zA-Z]*)&(amp;)?page=([0-9]*)'",
"'(?<!/)index.php\?mod=([a-zA-Z]*)'"
);
$outurl = array(
"/\\1/\\3",
"/\\1/"
);
return preg_replace($inurl,$outurl,$contents);
}
 
kaiserДата: Четверг, 02.12.2010, 16:30 | Сообщение # 12
Знаток
Группа: Проверенные
Сообщений: 111
Статус: Offline
Подскажите, как сделать вывод категорий в нескольких колонках. Например:
Code
Категория 1   Категория 2   Категория 3   Категория 4
 
selbusДата: Воскресенье, 05.12.2010, 10:42 | Сообщение # 13
Продвинутый
Группа: Модераторы
Сообщений: 152
Статус: Offline
Вот один вариант вывода в нескольких колонках.
Функция:
Code
<?php
function category($cols,$res){
$width = 100/$cols;
$row = mysql_num_rows($res);
$table .= "<table cellpadding=\"2\" cellspacing=\"0\" width=\"100%\">";
for ($i=0;$i<$row;$i+=$cols){
$table .= '<tr>';
for ($e=0;$e<$cols;$e++){
$id = $i + $e;
$table .= "<td height=\"10\" width=\"".$width."%\">";
if($id<$row){
$table .= mysql_result($res,$id,"name");
}
else{
$table .="";
}
$table .= "</td>";
}
$table .= "</tr>";
}
$table .= "</table>";
return $table;
}
?>

Применение:

Code
<?php
$res = mysql_query("SELECT * FROM таблица_категорий ORDER BY name");
$cols = 4;
echo category($cols,$res);
?>
 
kaiserДата: Воскресенье, 05.12.2010, 10:55 | Сообщение # 14
Знаток
Группа: Проверенные
Сообщений: 111
Статус: Offline
Прикольно. Но эта функция выводит только названия категорий. А где же ссылки?
 
selbusДата: Воскресенье, 05.12.2010, 10:58 | Сообщение # 15
Продвинутый
Группа: Модераторы
Сообщений: 152
Статус: Offline
Ссылки я не стал описывать. Но думаю в приведенном примере все предельно понятно.
 
kaiserДата: Вторник, 07.12.2010, 23:00 | Сообщение # 16
Знаток
Группа: Проверенные
Сообщений: 111
Статус: Offline
В принципе с ссылками разобрался. У меня следующий вопрос. Как реализовать отображение изображений, как это реализовано на UCOZ. Я имею введу такие переменные как $IMAGE1$.
У меня уже есть наработки, но пока ничего не выходит.


Сообщение отредактировал kaiser - Вторник, 07.12.2010, 23:02
 
selbusДата: Среда, 08.12.2010, 07:27 | Сообщение # 17
Продвинутый
Группа: Модераторы
Сообщений: 152
Статус: Offline
Что за наработки? Выложил бы, может, что подсказал бы.
 
kaiserДата: Среда, 08.12.2010, 21:23 | Сообщение # 18
Знаток
Группа: Проверенные
Сообщений: 111
Статус: Offline
Вот моя наработка:
Code

//массив с именами файлов
$array = array("14167164.jpg","17459082.jpg","18505264.jpg");
for($e = 0; $e < count($array); $e++){
   $image[$e+1] = "/uploads/news/images/$array[$e]";
   }
$text = "[IMAGE1][IMAGE2][IMAGE3]";
$pattern = "#\[IMAGE([0-9]*)\]#es";
$text = preg_replace($pattern, "<img src=\"[b]$image[1][/b]\" border=\"0\">", $text);
echo $text;

В этом случае выводит только первое изображение. Пробывал менять $image[1] на $image\[\\1\]. Но выводит ошибку.


Сообщение отредактировал kaiser - Среда, 08.12.2010, 21:58
 
selbusДата: Среда, 08.12.2010, 22:19 | Сообщение # 19
Продвинутый
Группа: Модераторы
Сообщений: 152
Статус: Offline
Не. Такой код работать не будет. Регулярные выражения построены правильно, в частности $pattern. Но на выходе лучше использовать функцию. Попробуй сделать следующее:
Code
function get_img($id){
global $image;
$img = $image[$id];
return "<img src=\"$img\" border=\"0\">";
}

$array = array("14167164.jpg","17459082.jpg","18505264.jpg");
   
for($e = 0; $e < count($array); $e++){  
$image[$e+1] = "/uploads/news/images/$array[$e]";  
}

$text = "[IMAGE1][IMAGE2][IMAGE3]";
$pattern = "#\[IMAGE([0-9]*)\]#es";
$text = preg_replace($pattern, "get_img('\\1')", $text);
echo $text;
 
kaiserДата: Среда, 08.12.2010, 23:08 | Сообщение # 20
Знаток
Группа: Проверенные
Сообщений: 111
Статус: Offline
Спасибо за подсказку, теперь всё заработало. Осталось придумать как реализовать [IMAGE1-left] и [IMAGE1-right].
 
Форум » Программирование » WEB Программирование » Как написать свою CMS (Пишем свою CMS на PHP)
Страница 2 из 4«1234»
Поиск: