Просмотр полной версии : Трюки на CodeIgniter
MafiaBoy3
18.08.2008, 08:36
У меня вопрос по Code Igniter.
Можно ли url создаваемый code igniter изменить на обыкновенный. Кто делал подобное, никак не получается!
www.your-site.com/index.php/user/12
Можно ли как-нибудь сделать www.your-site.com/index.php?user=12 ну или что-то подобное?
Это тебе нужен mod_rewrite. Поищи в нете мануал по нем. Еще можешь поискать по ЧПУ. разницы нет
MafiaBoy3
18.08.2008, 09:21
А я думал, что это начибучил CodeIgniter , ведь он делает такие урлы для поисковых машин!
Можно ли сайт , созданный с CodeIgniter замаскировать так чтобы он выглядел так, как-будто его сделали на голом php????
можно,можно даже замаскировать под Asp.net все зависит от твоей фантазии и рук
Нужно отключить чпу и руками привить все пути в файлах
А что ссылка www.your-site.com/index.php/user/12 не похоже что это может быть и пхп и/или хтмл голый?
Скорее всего ТС просто не заметил файл .htaccess. Можешь удалить его, и править вручную все ссылки, но вообще, у CodeIgniter по-идее можно отключить ЧПУ.
m0nsieur
18.08.2008, 11:02
Может тебе этого хватит, что написано в мануале:
Подключение строки запроса
В некоторых случаях вы можете предпочесть использовать строки запроса в URL:
index.php?c=products&m=view&id=345
CodeIgniter опционально поддерживает эту возможность, которая может быть подключена в файле application/config.php file. Если вы откроете ваш конфигурационный файл, то найдете там:
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
Так же можешь настроить под себя роутинг.
MafiaBoy3
18.08.2008, 11:43
Вообщем есть ссылка вида www.your-site.com/index.php/profile/12
Необходимо сделать её вида www.your-site.com/profile.php?id=12
Триггеры здесь не помогут...
Ты хотя бы с функциями фреймворка разберись. Википедия сказала:
Возможность использование ЧПУ. Так же возможно использовать стандартый вид адресной строки.
m0nsieur
18.08.2008, 11:57
Попробуй решить проблему через URI Роутинг
$route['profile.php?id=:num'] = "model/function";
Как-то так, поэкспериментируй в этом направлении.
P.S. Спроси на русском форуме CodeIgniter, там достаточно быстро отвечают.
http://code-igniter.ru/forum/general.html
presidentua
19.08.2008, 10:46
на первой странице все сказали -
Enabling Query Strings
In some cases you might prefer to use query strings URLs:
index.php?c=products&m=view&id=345
CodeIgniter optionally supports this capability, which can be enabled in your application/config.php file. If you open your config file you'll see these items:
$config['enable_query_strings'] = FALSE;
If you change "enable_query_strings" to TRUE this feature will become active. Your controllers and functions will then be accessible using the "trigger" words you've set to invoke your controllers and methods:
index.php?c=controller&m=method
MafiaBoy3
20.08.2008, 07:54
Вот о чём говорит мануал по CodeIgniter
Подключение строки запроса
В некоторых случаях вы можете предпочесть использовать строки запроса в URL:
index.php?c=products&m=view&id=345
CodeIgniter опционально поддерживает эту возможность, которая может быть подключена в файле application/config.php file. Если вы откроете ваш конфигурационный файл, то найдете там:
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
Если изменить «enable_query_strings» в положение TRUE, то эта возможность активируется. Ваши контроллеры и функции в них будут доступны при помощи определенных «триггерных» слов:
index.php?c=controller&m=method
Но мне абсолютно непонятно как мне сделать на своём сайте url вида prodile.php?id=$id?
Мне сказали на этом форуме что это возможно, но блин как?
Если CodeIgniter ВООБЩЕ НЕ ОБРАБАТЫВАЕТ GET запросы, а триггеры это вообще другое, мне не нужно в url выводить какой-то метод...........
Замени
$config['enable_query_strings'] = FALSE;
на
$config['enable_query_strings'] = TRUE;
Если CodeIgniter ВООБЩЕ НЕ ОБРАБАТЫВАЕТ GET запросы, а триггеры это вообще другое, мне не нужно в url выводить какой-то метод...........
:confused: :confused: :confused: :confused: :confused: :confused: :confused: :confused:
m0nsieur
20.08.2008, 10:16
Но мне абсолютно непонятно как мне сделать на своём сайте url вида prodile.php?id=$id?
Мне сказали на этом форуме что это возможно, но блин как?
Специально для тех кто в ТАНКЕ повторю
Попробуй решить проблему через URI Роутинг
$route['profile.php?id=:num'] = "имя_модели/имя_функции_которая_будет_о брабатывать";
Почитай вот здесь - http://code-igniter.ru/user_guide/general/routing.html
Там через роуты и регулярные выражения можно выявлять нужные тебе строки и передавать на обработку конкретной модели и функции.
presidentua
20.08.2008, 12:58
http://code-igniter.ru/user_guide/general/urls.html
Пипец... то что там вставили кусок кода с тригеррами это же не значит что они там нужны.
А нужную тебе задачу можна решить многими способами, их уже назвали:
1. через URI Роутинг
2. $config['enable_query_strings'] = FALSE;
3. переписать систему под свои нужды
4. МодРеврайт
Но как по мне, лучше пиши на голом ПХП без фреймворков, просто это тольок самая маленькая проблема которая всплила, но чтобы решать остальные нужно действительно знать хорошо ПХП.
presidentua
20.08.2008, 17:58
- а что тогда мне трогать???
Ну достатчоно сложный вопрос, так как незнаю твои целей! Но попробую ответить...
Хоч сделать сайт? тогда возьми готовый движок типа Джомла
Хоч научиться кодить и одновременно сделать сайт? сделай на Джомле, а дальше учись кодить изменяя саму Джомлу или написав к ней плагин...
хоч научиться кодить? бери какую то интересную небольшую задачу и релизовывай, типа Аська-Бота, парсера Гугла или еще что-то такого маленького
хоч научиться кодить используя ООП? выполни пункт перед этим, дальше напиши какой-то оплезный обьект, а потом розберись с Фреймворком типа КодеИгнайтера
хоч выучить фреймворк? сделай 4 пункта перед этим, а потом читай докуменаттйию по Фрейморку
ВОт маленький списочек... )
MafiaBoy3
23.08.2008, 18:54
Вот ещё что...
Все мы знаем что при запуске нашего сайта управление передаётся файлу index.php в котором содержится необходимая информация для работы сайта(дирректории ядра, приложения ит.д)
А вот мне для сайта нужно чтобы на главной странице сайта отображался index.php (т.е. главаная страница с модулями загрузки,регистрации и т.д.) То есть работало всё так как если бы codeignitera не было и в помине!!!
Как такое можно осуществить?
Ты понял устройство ядра CodeIgniter'a ?
Там есть такая себе модель MVC(Model->Controller->View)
Так вот. По дефолту в фраемворке установлена главня страница -> welcom
Открой папку system/application/view/
Все файлы в этой папки отвечают за вывод информации на экран
Там должет быть файл welcom.php или чтото подобное.
Открой его. Внимательно посмотри. ты видишь там вывод чего-либо?
Вот, то что ты ищешь. Там обычный вывод HTML кода.
ИМХО: ты задаешь очень даже тупые вопросы. Документации к Фреймворку мало на русском, но достаточно, стобы не задавать такие тупые вопросы.
Вообще поищи в поисковиках. Я сейчас интересуюсь этой темой(CodeIgniter) и понаходил уйму информации.
Чем я руководствуюсь:
http://chtivo.webhost.ru/articles/mvc.php - понять азы работы MVC
http://www.codeigniter.ru/ - сборник ссылок
http://www.codeigniter.org.ru/ - ещё не смотрел что это, нашел когда этот пост писал
http://habrahabr.ru/blogs/codeigniter/ - некоторая информация
http://code-igniter.ru/ - а здесь должен ты жить...тут и русская документация, и форум
Мне этого хватает.
Можешь написать в аську, я тебе куски кода покажу, как правильно пользоваться шаблонизатором, а то вижу, ты "читаешь книгу, видишь фигу"
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot