【发布时间】:2010-10-27 13:09:16
【问题描述】:
我正在学习php和创建主题。
不幸的是,当我在编辑一个我目前在 drupal 中使用的主题时,我在主题中犯了一个错误,以至于没有任何东西出现,即使我要点击 drupal/index.php。我想将损坏的 drupal 主题更改为可用的主题,但我无法这样做,因为我什至无法查看管理部分。
【问题讨论】:
标签: php drupal content-management-system themes
我正在学习php和创建主题。
不幸的是,当我在编辑一个我目前在 drupal 中使用的主题时,我在主题中犯了一个错误,以至于没有任何东西出现,即使我要点击 drupal/index.php。我想将损坏的 drupal 主题更改为可用的主题,但我无法这样做,因为我什至无法查看管理部分。
【问题讨论】:
标签: php drupal content-management-system themes
另请参阅以下堆栈溢出问题。 它与他们有关
现在是解决方案: 删除不良主题的文件并清除缓存。清除缓存后就可以重新登录了。
主要的难点是你必须在不登录的情况下清除缓存。
尝试其中一种清除缓存的方法 Clearing Drupal's cache
如果没有,那就试试这个:
如果你有 drush,输入的命令是
drush vset theme_default garland
在命令行或通过管理界面(例如 PHPMyAdmin)输入以下查询
UPDATE system SET status=1 WHERE name = 'garland';
然后:
UPDATE variable SET value='s:7:"garland"' WHERE name = 'theme_default';
TRUNCATE cache;
TRUNCATE cache_bootstrap;
TRUNCATE cache_block;
请注意,'s:7' 指的是以下字符串的长度。根据需要进行修改。这是数据库手术,很棘手。 要么 如果您使用的是每个用户的主题,而您只是以管理员身份将其搞砸了,请尝试
UPDATE users SET theme='garland' WHERE uid = '1';
要小心,因为其中任何一条错误都会把事情搞得一团糟。
干杯!
穆达萨阿里
【讨论】:
您还可以通过包含以下代码在您的主题中插入新的登录表单:
`<?php
if(!user_is_logged_in() ){
print drupal_render(drupal_get_form('user_login'));
}else{
print "You are already logged in!";
}?>`
在您损坏的主题的page.tpl.php 文件中的任何位置,然后使用您的admin credentials 注册;)
【讨论】:
Drupal.org 上的 How To reset your theme via the database 页面提供了直接从 SQL 提示符更改主题的说明。
目前尚不清楚这是否适用于最新版本的 Drupal,因此在尝试此操作之前备份您的数据库。
【讨论】:
drush vset theme_default garland 是该页面上最简单的方法。
值得一提的是,如果您使用“Sections”模块将不同的主题应用于网站的不同部分,则 Drupal 网站上给出的说明不一定有效——您可能会发现移动问题不碍事的主题目录是正确查看管理界面的唯一方法。
【讨论】:
或者,如果您使用的是 Drupal 6,删除/移动损坏的主题文件夹将使 Drupal 将主题更改为默认主题 (Garland)。
【讨论】:
更改前端主题的最简单方法是在您的站点/默认/settings.php 中设置它:
$conf['theme_default'] = 'minelli';
【讨论】:
在对您当前的问题进行排序方面,这是一种应该可行的简单方法...假设您当前的主题名为“custom_theme”。
sites/default/themes”)mv custom_theme custom_theme.bak”之类的操作)cp -a ../../../themes/garland ./custom_theme”正如其他人之前所说,强烈建议您为管理员使用与普通用户不同的主题(以防您破坏内容)。选择一个安全的管理主题(如 garland),然后如果您正在使用主题,您几乎总是可以进入管理界面。
【讨论】:
也许并行使用两个主题会有所帮助。
为“用户前端”设置一个 - 您正在 /admin/build/themes 开发的另一个,另一个标准,例如您不会更改的 garland,作为“管理后端”:/admin/settings/admin。
如果您碰巧破坏了您正在开发的主题,您只需转到管理区域 (/admin),它就会切换回 garland。
【讨论】:
据我所知,主题设置以及每个用户都存储在数据库中。摆脱主题的最快方法可能是将其从主题路径中删除。
只需将它移动到您的桌面上,Drupal 就应该能够检测到您请求的主题丢失了,并将您指向默认主题。
更新:在我的 Drupal 5 安装上试过这个,结果“干净”。我建议将一个可用的 Drupal 主题复制到您的主题目录中(先复制一份)。
【讨论】: