我第一次使用CodeIgniter 2.0创建一个多语言网站,其中主页包含幻灯片。我正在我的笔记本电脑上开发它 - localhost / website /.
我正在使用routes.php文件来指定要调用哪个语言函数来设置变量,具体取决于格式为http://localhost/website/language/page_id/some-page-title
的url。因此http://localhost/website/en/1/Home-Page
给出了page_id 1的英文页面。
路由文件因此具有:
$route['default_controller'] = "content";
$route['en/(:num)/(:any)'] = "content/en/$1";
$route['de/(:num)/(:any)'] = "content/de/$1";
$route['es/(:num)/(:any)'] = "content/es/$1";
etc
内容控制器中的语言功能(en函数)的示例是:
public function en ($page_id) {
$language="en";
$lang_array['css']="base.css";
$this->get_content($page_id, $lang_array);
}
然后get_content函数会执行所有操作。
内容控制器的索引功能如下所示:
public function index() {
//setting defaults for when arrive straight at home page or with no language in url
$page_id=1;
$lang_array['language']="en";
$lang_array['css']="base.css";
$this->get_content($page_id, $language);
}
我的问题是,当我去http;//localhost/website/
时,一切正常,包括幻灯片。但是,当我转到网址http://localhost/website/en/1/Home-Page
时,一切正常,除了幻灯片中的图片不会出现(即使它们都执行相同的代码,当我查看页面上的视图源时,html输出是相同的)
我唯一能想到的事实是,如果我只是放http;//localhost/website/
那么将调用索引函数来激活构造函数,但是如果我放置http://localhost/website/en/1/Home-Page
那么索引和构造函数被绕过了。然而,不知道为什么其他的东西仍然有效,但图片幻灯片没有。这是你认为的原因吗?任何解决方案?
由于
汤姆·
答案 0 :(得分:0)
我能想到的是未定义变量上的某种JavaScript错误,可能与未设置的$ lang_array ['language']有关。
在索引中,您将密钥设置为默认为“en”,
public function index() {
//setting defaults for when arrive straight at home page or with no language in url
$page_id=1;
$lang_array['language']="en";
$lang_array['css']="base.css";
$this->get_content($page_id, $language);
}
但是在 en 方法中,你没有
public function en ($page_id) {
$language="en";
$lang_array['css']="base.css";
$this->get_content($page_id, $lang_array);
}
因为它们看起来几乎相同,所以你应该将相同的行为抽象为私有函数,或者修改路由以将语言作为参数发送到单个函数。