Помощник
Дата поста: | В теме: | За сообщение: | Поблагодарили: | ||
---|---|---|---|---|---|
20.7.2009, 19:17 |
Как сделать навигацию по сайту |
Ну все зависит от дизайна архитектуры. Самое просто можно, что то вроде такого: [php]<?php class Navigator { private $links = array(); public addLink($title, $href) { $links[] = array('title' => $title, 'href' => $href); } public getNavigation($separator = " >> ") { $nav = ""; for (int i = 0; i < count($links); i++) { $nav .= '<a href="'. $links[i]['href'] .'">'. $links[i]['href'] .'</a>'; if (i != count($links) - 1) { $nav .= $separator; } } } } ?>[/php] Далее так: index.php: [php]<?php .... $nav = new Navigator(); $nav.addLink('Главная', 'index.php'); .... ?>[/php] модуль.php [php]<?php if ($_GET['action'] == 'add') { $nav.addLink('Добавить что-то', 'add.php'); } else if ($_GET['action'] == 'edit') { $nav.addLink('Редактировать что-то', 'edit.php'); } ?>[/php] Код писал тут и не проверял |
Спасибо сказали: (0) |
||
16.7.2009, 12:32 |
Диапазон данных |
Если на PHP пишешь, то проверить наличие переменных, и если они существуют добавить в конец запроса "Where Pages Between 200 And 600". Т.е. $sql = "Select Name, Pages From Books"; if (!empty($from) && !empty($to)) { $sql .= " Where Pages Between 200 And 600"; } FordogeN, в твоем случае нельзя будет вывести все записи |
Спасибо сказали: (0) |
||
16.7.2009, 5:41 |
Учебник по div где найти |
Xap, http://htmlbook.ru/content/?id=90 FordogeN, O_o |
|||
10.7.2009, 13:33 |
Обработка входящих данных |
Конечно-же регулярки безопасней. В случае: [php]$id = (int)$_GET['id'];[/php] Что если в $_GET['id'] будет значение "ха-ха"? [php]$page = str_replace("update","",$page);[/php] А это, что вы делаете, я не понял? И еще у вас не правильные регулярки: /^[0-9]+$/ /^[a-z0-9]+$/i ^ - значит начало слова; $ - конец; i - игнорировать регистр А в вашем случае, если просто, что-нибудь, где-нибудь встречается удолетворяющее выражению, будет возвращено true. |
Спасибо сказали: (0) |
||
9.7.2009, 19:23 |
Биржа труда |
Время пока есть, пиши в аську, обсудим. |
|||
9.7.2009, 15:22 |
Биржа труда |
а за деньги кота в мешке нехотелось бы брать. А заказать в наше время не судьба? |
|||
8.7.2009, 20:18 |
Javascript и выпадающий список |
java script: <script type="text/javascript"> function getCookie(c_name) { if (document.cookie.length > 0) { c_start = document.cookie.indexOf(c_name + "="); if (c_start != -1) { c_start = c_start + c_name.length + 1; c_end = document.cookie.indexOf(";", c_start); if (c_end == -1) c_end = document.cookie.length; return unescape(document.cookie.substring(c_start, c_end)); } } return ""; } function setCookie(c_name, value, expiredays) { var exdate = new Date(); exdate.setDate(exdate.getDate() + expiredays); document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "": ";expires=" + exdate.toGMTString()); } window.onload = function() { var mySelect = document.getElementById('mySelect'); var mySelectedIndex = getCookie('mySelectedIndex'); if (mySelectedIndex != null && mySelectedIndex != "") { mySelect.selectedIndex = mySelectedIndex; } mySelect.onchange = function() { setCookie('mySelectedIndex', mySelect.selectedIndex, 1); } } </script> SELECT: <select id="mySelect"> <option value="0">Privet 0</option> <option value="1">Privet 1</option> <option value="2">Privet 2</option> <option value="3">Privet 3</option> <option value="4">Privet 4</option> <option value="5">Privet 5</option> </select>
|
|||
8.7.2009, 19:50 |
Собственный шаблонизатор |
А не разместить <table><tr><td width=200>ШАБЛОН_МЕНЮ</td> в menu.tpl, а <td width=200>ШАБЛОН_КОНТЕНТА</td> в content.tpl? Или у вас в зависимости от логики может исчезать левая колонка? |
Спасибо сказали: (0) |
||
7.7.2009, 13:34 |
Собственный шаблонизатор |
Логика скрипта: [php]$res = mysql_query("выборка_пунктов_меню", $msConnect); $puncts = array(); while ($row = mysql_fetch_array($res)) { $puncts[] = $row; } $template['puncts'] = $puncts; // Дальше выводим шаблон[/php] В шаблоне: [php]<?php foreach ($template['puncts'] as $punkt) : ?> <li><a href="<?php print $punkt['href']; ?>"><?php print $punkt['name']; ?></a></li> <?php endforeach; ?>[/php] Думаю суть ясна. |
Спасибо сказали: (0) |
||
3.7.2009, 18:03 |
Вопросы по SQL |
но не более 255. Так было в MySQL 3.* и старше, щас там можно хранить гораздо больше, насколько я знаю. пс. ещё хотел спросить, как переименовать таблицу? Например с news на NEWS (для удобства). Вроде update() используется, но я не знаю как применить к имени таблицы ALTER TABLE news RENAME NEWS; Вроде так. Для редактирования самой таблицы, а не записей в ней, используется ALTER TABLE, а не UPDATE TABLE. |
Спасибо сказали: (0) |
||
3.7.2009, 9:58 |
Вопросы по SQL |
Начал изучать SQL и появился вопросик. Правильно ли я делаю запрос? insert into TOBAR values (1, 'Tovar name', 'tovar price', 'count'), (2, 'Tovar name2', 'tovar price2', 'count2'), (3, 'Tovar name3', 'tovar price3', 'count3); Мне кажется ошибка в том, что первое поле (ID), у тебя установлено как PRIMARY KEY (первичный ключ), и в таблице уже есть записи с ID=1, 2, 3. Поэтому и ругается (ID должен быть уникальным). А так все правильно |
Спасибо сказали: (0) |
||
26.6.2009, 15:35 |
Как проверить email-адрес на правильность? Регулярные выражения |
1) http://phpclub.ru/detail/article/regexp_1 2) http://phpclub.ru/detail/article/regexp_2 Читаем и разбираемся. |
Спасибо сказали: (0) |
||
26.6.2009, 9:15 |
Вопросы по МАССИВАМ |
Если я правильно понял, то вот функция: <?php function myExplode($str, $separators = ',:%') { $mas = array(); $tok = strtok($str, $separators); while ($tok) { $mas[] = $tok; $tok = strtok($separators); } return $mas; } print_r(myExplode('Bodya, Katya, Ira% Lena: Roma')); ?> В результате: Array ( [0] => Bodya [1] => Katya [2] => Ira [3] => Lena [4] => Roma )
|
|||
20.6.2009, 21:59 |
Лайтбокс |
sol, хм не знаю почему это назвали модальными окнами. Потому что, модальные окна - это окна которые блокируют основное приложение (в данном случае веб-страницу), пока модальное окно не завршит свою работу |
|||
15.6.2009, 11:27 |
Учусь новому методу записи пару вопросов |
$pass = (isset($_GET['pass'])) ? $_GET['pass'] : ''; Это тернарный условный оператор, если его распить то получится примерно так: if (isset($_GET['pass']) { $pass = $_GET['pass']; } else { $pass = ''; } нафиг палочки || ? Дизъюнкция. Раз это не знаешь, может пока не стоит в программирование лезть...? Или начать с какого нибудь Pascal'а...? это типа если логин Кристиан и пароль севрет, то все гуд? Это типо автор проверяет логин из входных параметров с нужным логином без учета регистра, и пароль с учетом регистра... |
Спасибо сказали: (0) |
||
14.6.2009, 19:06 |
Про растягивающиеся верстку даже не знаю, как правильно задать вопрос... |
HTML: <table class="main"> <tr><td class="header" colspan="3">шапка</td></tr> <tr><td class="left">Левый блок</td><td class="center">Тело</td><td class="right">Правый блок</td></tr> </table> CSS: .main { width: 100%; } .main td { vertical-align: top; } .left { width: 200px; } .right { width: 200px; } Все, все ваши колонки тянуться по вертикали. |
|||
14.6.2009, 16:21 |
Как учиться PHP? видеоматериалы, эл. книги, книги ? |
Никаких видео не надо, это шлак который ничему не научит. "Книга PHP 5/6 и My SQL 6. Разработка Web-приложений. Колисниченко" - тоже шлак голимый, в котором ничего нормально нет, куча ошибок и подобного. Если совсем не знаком с программированием на PHP (просто сначала нужно понять все принципы и т.п.), то посоветовать ничего не могу. Но если есть небольшой опыт, обязательно нужно прочитать одну из этих - http://www.ozon.ru/context/detail/id/2527057/, http://www.ozon.ru/context/detail/id/2527057/ (их читать в любом случае желательно). А вообще все книги, которые вы выбрали - шлак полный, они все у меня были (когда начинал изучать PHP), и все эти книги я бы с удовольствием сжег Читайте зарубежных авторов, их зря переводить не будут. А наших брать не надо, 90% из них подобны Колисниченко (а это еще тот дурак!) |
Спасибо сказали: (0) |
||
12.6.2009, 11:51 |
Каталог фирм |
Дизайн с моего "недизайнерского" взгляда вроде ничего. Сильно напрягает в боковых колонках то, что нет переноса строк в списках (если это так можно назвать), это вам не облако тегов Верстка - боже упаси такое еще хоть раз увидеть, если через валидатор прогнать, с сотню ошибок наверно будет Особенно вот эта "конструкция" меня свалила: <td width="220" bgcolor="#EEEEEE"> <p style="margin-left: 10px"><font face="Trebuchet MS" size="6"> <font color="#CC0000"><a href="http://firms.nerfo.ru/"> <span style="text-decoration: none"><font color="#CC0000">К</font></span></a></font><a href="http://firms.nerfo.ru/"><font color="#666666"><span style="text-decoration: none">аталог<br> </span> </font></a></font><a href="http://firms.nerfo.ru/"> <font face="Trebuchet MS" size="2" color="#000000"> <span style="text-decoration: none">фирм, организаций,</span><strong style="font-weight: 400"><span style="text-decoration: none"> предприятий</span></strong></font></a></td> Этот код можно заменить одной строкой в 20 символов |
|||
11.6.2009, 11:43 |
Сайт выпал из яши |
рекламы нет на нем никакой ток меня что-то перекинуло на порно сайт _http://sn27.net/ |
|||
3.6.2009, 19:25 |
При клике на кнопку открывается реклама |
ZiTosS, не знал... Просто гадостей таких ни разу не делал |
|||
3.6.2009, 6:57 |
Собственный шаблонизатор |
Я давно себе писал, может пригодится: [php]<?php // Шаблонизатор class Templater { private $template_dir; // В конструктор передаем директорию, в которой находятся шаблоны public function __construct($template_dir) { $this->template_dir = $template_dir; } public function setDir($dir) { $this->dir = $dir; } public function getDir($dir) { return $this->dir; } // Добавляем переменную шаблона (значение, имя переменной) public function addVariable($variable, $name) { $this->$name = $variable; } // Выводим шаблон public function displayTemplate($template_file) { require_once $this->template_dir.$template_file; } } ?>[/php] Класс использовать примерно так: [php]<?php $templater = new Templater('templates/'); $templater->addVariable('Главная страница', 'title'); $templater->addVariable('Содержимое главной', 'content'); $templater->displayTemplate('template.tpl'); ?>[/php] Ну и сам шаблон (template.tpl): [php]<html> <head> <title> <?php print $this->title; ?> </title> </head> <body> <?php print $this->content; ?> </body> </html>[/php] |
|||
2.6.2009, 10:20 |
Информация для начинающих по js |
Спасибо сказали: (0) |
|||
2.6.2009, 10:17 |
Подключение дополнительных модулей |
Решение я нашел)) но очень не хорошее. Почему, же? Можно начать с такого... Ну самое просто, что я могу предложить, это примерно так: index.php: [php]<?php // Подключение файлов require_once 'functions.php'; // Модуль по умолчанию $module = 'index'; if (isset($_GET['module'])) { $module_tmp = trim($_GET['module']); if (preg_match("/^[a-z0-9_]+$/i", $module_tmp)) { $module = $module_tmp; } else { die('Ошибка'); } } if (file_exists('modules/' .$module. '/module.php')) { require_once 'modules/' .$module. '/module.php'; } else { die('Ошибка'); } ?>[/php] modules/guest/module.php (модуль гостевой): [php]<?php // Допустим это модуль гостевой книги // Заголовок $template['title'] = 'Гостевая книга'; // Якобы динамическая генерация контента $template['messages'] = 'Сообщения гостевой книги'; $template['xz'] = 'Еще, какой нить контент...'; // Отобразить шаблон (в template переменные шаблона) display_template('header.tpl', $template); display_template('guest.tpl', $template); display_template('footer.tpl', $template); ?>[/php] functions.php (функция для наипростейшего шаблонизатора): <?php function display_template($file, $template) { require_once $file; } ?> header.tpl, guest.tpl, footer.tpl: [php]<html> <head> <title><?php print $template['title']; ?></title> </head> <body> -------------------------- <h1>Сообщения</h1> <?php print $template['messages']; ?> <h2>Еще что-то</h2> <?php print $template['xz']; ?> ----------------------- <div>Copyright 2009</div> </body> </html>[/php] |
|||
29.5.2009, 21:10 |
Насколько удобен Code Igniter? |
Шлак Когда пишешь свой движок, можно реализовать все, что угодно и при этом как тебе удобно... Используя фреймворк ты накидываешь на свою голову всяческие ограничения, правила и т.п. + огромный размер скрипта, куча нафиг не нужных классов/функций/файлов и т.п. Лучше не использовать никаких фреймворков. Хотя если писать проект, который по дизайну будет схожь с дизайном фреймворка, можно съэкономить немного времени. Вообще советую написать свой небольшой каркас движка, который можно будет внедрить в проект любого направления! Я давно такой написал и использую его почти во всех своих проектах. По поводу Code Ingniter, из всех с которыми я работал, понравился больше всех, довольно удобная штука, но есть и минусы, уже не помню какие, очень давно им не пользовался... |
Спасибо сказали: (0) |
||
25.5.2009, 1:16 |
Массивы в JS |
Я делаю вот так: <script type="text/javascript"> var mas = new Array(); mas[0] = "1"; mas[2] = "3"; if (mas[1]) { alert("Существует"); } else { alert("Не существует"); } </script> |
|||
Текстовая версия | Сейчас: 25.4.2024, 3:59 |