Как написать свою CMS
|
|
selbus | Дата: Вторник, 09.11.2010, 19:38 | Сообщение # 11 |
Продвинутый
Группа: Модераторы
Сообщений: 177
Статус: 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 |
Знаток
Группа: Проверенные
Сообщений: 132
Статус: Offline
| Подскажите, как сделать вывод категорий в нескольких колонках. Например: Code Категория 1 Категория 2 Категория 3 Категория 4
|
|
| |
selbus | Дата: Воскресенье, 05.12.2010, 10:42 | Сообщение # 13 |
Продвинутый
Группа: Модераторы
Сообщений: 177
Статус: 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 |
Знаток
Группа: Проверенные
Сообщений: 132
Статус: Offline
| Прикольно. Но эта функция выводит только названия категорий. А где же ссылки?
|
|
| |
selbus | Дата: Воскресенье, 05.12.2010, 10:58 | Сообщение # 15 |
Продвинутый
Группа: Модераторы
Сообщений: 177
Статус: Offline
| Ссылки я не стал описывать. Но думаю в приведенном примере все предельно понятно.
|
|
| |
kaiser | Дата: Вторник, 07.12.2010, 23:00 | Сообщение # 16 |
Знаток
Группа: Проверенные
Сообщений: 132
Статус: Offline
| В принципе с ссылками разобрался. У меня следующий вопрос. Как реализовать отображение изображений, как это реализовано на UCOZ. Я имею введу такие переменные как $IMAGE1$. У меня уже есть наработки, но пока ничего не выходит.
Сообщение отредактировал kaiser - Вторник, 07.12.2010, 23:02 |
|
| |
selbus | Дата: Среда, 08.12.2010, 07:27 | Сообщение # 17 |
Продвинутый
Группа: Модераторы
Сообщений: 177
Статус: Offline
| Что за наработки? Выложил бы, может, что подсказал бы.
|
|
| |
kaiser | Дата: Среда, 08.12.2010, 21:23 | Сообщение # 18 |
Знаток
Группа: Проверенные
Сообщений: 132
Статус: 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 |
Продвинутый
Группа: Модераторы
Сообщений: 177
Статус: 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 |
Знаток
Группа: Проверенные
Сообщений: 132
Статус: Offline
| Спасибо за подсказку, теперь всё заработало. Осталось придумать как реализовать [IMAGE1-left] и [IMAGE1-right].
|
|
| |