PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): [1] 2 »

> Найдено сообщений: 30
Roni Отправлено: 24 Марта, 2013 - 11:06:42 • Тема: Сжатие js и css • Форум: Вопросы новичков

Ответов: 7
Просмотров: 302
Area, поищите, как вариант:

http://www[dot]vectora[dot]ru/articles-a[dot][dot][dot]rmance-penalties

http://ktonanovenkogo[dot]ru/vokrug-[dot][dot][dot]i-na-server[dot]html
Roni Отправлено: 24 Марта, 2013 - 10:43:20 • Тема: Сжатие js и css • Форум: Вопросы новичков

Ответов: 7
Просмотров: 302
Area, своей функцией вы будете сживать каждый раз. А можно настроить отдачу уже сжатого однажды архивов. Без этого геморроя который по ссылке)) Радость
Roni Отправлено: 24 Марта, 2013 - 10:24:23 • Тема: Сжатие js и css • Форум: Вопросы новичков

Ответов: 7
Просмотров: 302
Имхо - повтори, очистив кэш браузера перед каждой проверкой)))
Roni Отправлено: 24 Марта, 2013 - 07:37:25 • Тема: оператор switch • Форум: Вопросы новичков

Ответов: 1
Просмотров: 72
Значит из запроса get не приходит act
Причем здесь свитч...

PHP:
скопировать код в буфер обмена
  1. if ( !isset($_GET['act']) or empty($_GET['act']) ) $_GET['act'] = '';
Roni Отправлено: 24 Марта, 2013 - 06:45:36 • Тема: Мультирегиональность и uri • Форум: Вопросы новичков

Ответов: 0
Просмотров: 89
Думаю как лучше спроектировать сайт с поддержкой множества городов.
Сайт->город->объект

Сейчас это выглядит так:
site.com/catalog/?city=132&salon=12
А думаю может лучше так:
site.com/catalog/moskow/?salon=12
Или даже:
site.com/catalog/moskow/sonystore

Данные в базе:
INSERT INTO `city` VALUES (город_id, страна_id, регион_id, 'Москва');

Проблема к том, что запрос парсерится так, что страничка (модуль, ресурс) запрашивается из базы по полному пути (subcat/cat/node/innet):
- site.com/catalog/ так он выдаст то что надо
- site.com/catalog/moskow/ А по такому запрому физически просто ничего в базе нет.

Проблема2, в базе имена кириллицей в урле латиницей. И что если в разных регионах совпадут названия городов, или с Украиной например.

Если бы было мало городов, то можно было бы в структуре ресурсов для каждого города создать каталог, но нужно все города.

И имеет ли это смысл вообще делать? Хотя бы с точки поискового продвижения.
Roni Отправлено: 22 Марта, 2013 - 13:14:22 • Тема: Пытаюсь: изменить цвет глаз мальчика с карего на серый. Не получается. • Форум: Вопросы новичков

Ответов: 6
Просмотров: 218
Ого, а можно кириллицей что-ли?!))
Roni Отправлено: 22 Марта, 2013 - 12:56:54 • Тема: Хранить ли слеш в конце констант? • Форум: Вопросы новичков

Ответов: 15
Просмотров: 807
LIME пишет:
а почему ты уверен что слеш уже не стоит в DR?
Вообще с этого вопрос и пошел, хочется стандартизировать, и не гадать, в каких константах есть слеш, в каких нет. Т.к. столкнулся с тем. что в WINNT, выдается DR уже со слешем... поэтому пока решил писать так

PHP:
скопировать код в буфер обмена
  1. if ( substr($_SERVER['DOCUMENT_ROOT'],-1,1) == '/' ){
  2.         define("ROOT",$_SERVER['DOCUMENT_ROOT']);
  3. }else{
  4.         define("ROOT",$_SERVER['DOCUMENT_ROOT'].'/');
  5. }
Roni Отправлено: 22 Марта, 2013 - 06:49:29 • Тема: Хранить ли слеш в конце констант? • Форум: Вопросы новичков

Ответов: 15
Просмотров: 807
Как делаете вы?

PHP:
скопировать код в буфер обмена
  1.  
  2. // Вариант 1
  3. define("ROOT",$_SERVER['DOCUMENT_ROOT'].'/');
  4. define('MODULES_DIR', ROOT."modules/");
  5. include(MODULES_DIR.'file.php')
  6.  
  7. // Вариант 2
  8. define("ROOT",$_SERVER['DOCUMENT_ROOT']);
  9. define('MODULES_DIR', ROOT."/modules");
  10. include(MODULES_DIR.'/file.php')
Roni Отправлено: 22 Марта, 2013 - 05:12:41 • Тема: Не понимаю ООП • Форум: Объектно-ориентированное программирование

Ответов: 112
Просмотров: 35596
Читаю шаблоны проектирования, но тоже не вижу конкретного применения. Пока использую статические классы, без наследования. Ну максимум класс возвращающий объекты по запросу. Хотя уже так гораздо удобнее чем, без ООП. А вот как писать интерфейсами, не доходит... Попробую написать интерфейс к модулям для страничек... Ниндзя
Roni Отправлено: 21 Марта, 2013 - 18:09:10 • Тема: Вопросы кэширования • Форум: Объектно-ориентированное программирование

Ответов: 1
Просмотров: 1117
Проблема: на формирование некоторых редко обновляемых блоков приходится каждый раз выполнять много запросов к базе, например, - меню. Меню состоит из категорий Id, надо пройтись по этому списку и вернуть для каждого объект, из объекта getTitle, getFullUrl для вставки в меню. Еще некоторые условия, вывод в шаблон и тд.

В принципе уже сгенерировынный код меню можно хранить в файловом кэше.

Сочинил такой костыль:
PHP:
скопировать код в буфер обмена
  1. class CmsCacheModel{
  2.  
  3.         public static function setCache($type, $key, $value){
  4.                 if (empty($type) or empty($key) or empty($value)) return false;
  5.                 $cachePath= ROOT."/cache/$type";
  6.                 if (!is_dir($cachePath)) mkdir ($cachePath);
  7.                
  8.                 $h = fopen($cachePath."/$key.cache", "c");
  9.                 flock ($h,LOCK_EX);
  10.                 ftruncate($h, 0);
  11.                         fwrite($h, $value);
  12.                 flock ($h,LOCK_UN);
  13.                 fclose($h);
  14.         }
  15.        
  16.         public static function getCache($type, $key){
  17.                 if (empty($type) or empty($key)) return false;
  18.                 $file= ROOT."cache/$type/$key.cache";
  19.                 if (!file_exists($file)) return false;
  20.                
  21.                 $h = fopen($file, 'r');
  22.                 $data = fread($h, filesize($file));
  23.                 return $data;
  24.         }
  25.         public static function deleteCacheByType($type){
  26.                 if (empty($type)) return false;
  27.                 $cachepath= ROOT."cache/$type/";
  28.                 if (!is_dir($cachepath)) return false;
  29.                
  30.                 $dir = opendir($cachepath);
  31.                 while ($file = readdir($dir)){
  32.                         if($file == '.' or $file == '..') continue;
  33.                         unlink($cachepath.$file);
  34.                 }
  35.         }
  36.  
  37. }


setCache('menu', 'main', $content);

Т.е. когда будет проходить любое действие с меню, или категорией (редактирование, добавление, удаление, перенос, опции). Весь кэш этого типа удаляется (все типа меню).

Вроде работает, если везде где надо удалять кэш, после обновлений.

Тут еще подумал. Что можно кэшировать и другие сущности. Например базовые настройки сайта. Данные и настройки категорий.

Например, еще проблемные моменты:
1. Каждый раз генерировать Title. Это надо пройтись по родителям catalog/dom/vedro/cat чтобы забрать тайтлы родителей + название сайта.
2. Breadcrumbs опять же приходится пройтись. Что бы из "catalog/dom/vedro/cat" сделать: "Главная / Каталог / Дом / Ведро / Кот"

Какие будут мысли? Радость
Roni Отправлено: 18 Марта, 2013 - 08:24:34 • Тема: Ошибка • Форум: Вопросы новичков

Ответов: 11
Просмотров: 471
wolfcruel это она в создании таблицы в `кавычках`. И теперь поищи в запросах, которые из пхп идут.

Хз, возможно:
PHP:
скопировать код в буфер обмена
  1.                 if(!$mode) {
  2.                         $where = "`from`";


Хотя тогда получится movement.`from`, не знаю на сколько это будет работать))
Roni Отправлено: 28 Февраля, 2013 - 18:37:40 • Тема: Вложить select в insert • Форум: SQL и Архитектура БД

Ответов: 6
Просмотров: 45
Мелкий, отлично работает. Я о таком варианте и не подумал...
Roni Отправлено: 28 Февраля, 2013 - 18:20:18 • Тема: Вложить select в insert • Форум: SQL и Архитектура БД

Ответов: 6
Просмотров: 45
INSERT INTO tablename(url) SELECT ...
Это по сути копирование всей строки. А если нужно только одну ячейку скопировать, а остальные данные придут из php?

Что-по подобное ожидал, но не работает:
CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO `table`(a,b,c, url) VALUES(?,?,?, (SELECT url FROM `table` WHERE id=?))
Roni Отправлено: 28 Февраля, 2013 - 17:59:46 • Тема: Вложить select в insert • Форум: SQL и Архитектура БД

Ответов: 6
Просмотров: 45
Нужно в новую строку поместить данные из родительского узла (другой строки этой же таблицы). Единственное про пришло это запросом отправить такую конструкция, чтобы не делать два запроса из php.
Какие есть пути для решения задачи?

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT @b:=`url` FROM `table` WHERE `id`=1;
  2. INSERT `table`(`url`) VALUES(@b);
Roni Отправлено: 28 Февраля, 2013 - 09:14:24 • Тема: Какой создать индекс • Форум: Работа с СУБД

Ответов: 2
Просмотров: 555
Да, mysql. Жаль, что нельзя
Спасибо.

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB