我正在学习 php 和创建主题。
不幸的是,当我在编辑一个我目前在 drupal 中使用的主题时,我在主题中犯了一个错误,所以即使我要点击 drupal/index.php,也没有任何显示。我想将我损坏的drupal 主题更改为一个工作主题,但我无法这样做,因为我什至无法查看管理部分。
我正在学习 php 和创建主题。
不幸的是,当我在编辑一个我目前在 drupal 中使用的主题时,我在主题中犯了一个错误,所以即使我要点击 drupal/index.php,也没有任何显示。我想将我损坏的drupal 主题更改为一个工作主题,但我无法这样做,因为我什至无法查看管理部分。
如何通过 Drupal.org 上的数据库页面重置主题有直接从 SQL 提示符更改主题的说明。
目前尚不清楚这是否适用于最新版本的 Drupal,因此请在尝试此操作之前备份您的数据库。
更改前端主题的最简单方法是将其设置在您的 sites/default/settings.php 中:
$conf['theme_default'] = 'minelli';
在对您当前的问题进行排序方面,这里有一个简单的方法应该可以工作......假设您当前的主题称为“custom_theme”。
sites/default/themes
可能是“”)mv custom_theme custom_theme.bak
”之类的操作)cp -a ../../../themes/garland ./custom_theme
”正如其他人之前所说,强烈建议您为管理员使用与普通用户不同的主题(以防万一)。选择一个安全的管理主题(如花环),然后如果你正在玩主题,你几乎总是可以进入管理界面。
或者,如果您使用 Drupal 6,删除/移动损坏的主题文件夹将使 Drupal 将主题更改为默认主题(Garland)。
也许并行使用两个主题会有所帮助。
为“用户前端”设置一个 - 您正在开发的那个/admin/build/themes
,另一个标准,如花环,您不会更改,作为“管理后端”:/admin/settings/admin
。
如果您碰巧破坏了您正在开发的主题,您只需转到管理区域(/admin
),它将切换回花环。
您还可以通过包含以下代码在主题中插入新的登录表单:
`<?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
;)
另请参阅以下堆栈溢出问题。它与他们有关
现在是解决方案:删除坏主题的文件并清除缓存。清除缓存后,您将能够再次登录。
主要困难是您必须在未登录的情况下清除缓存。
如果不是,那么试试这个:
如果你有 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';
小心,因为这些行中的任何一条错误都会把事情搞得一团糟。
干杯!
穆达萨阿里
据我所知,主题设置以及每个用户都存储在数据库中。摆脱主题的最快方法可能是将其从主题路径中删除。
只需将其移动到您的桌面上,Drupal 就应该能够检测到您请求的主题丢失并指向您的默认主题。
更新:在我的 Drupal 5 安装上试过这个,结果是“干净的”。我建议将工作中的 Drupal 主题复制到您的主题目录中(先复制一份)。
值得一提的是,如果您使用“ Sections ”模块将不同的主题应用到站点的不同部分,Drupal 站点上给出的说明不一定有效——您可能会发现将问题主题目录移出way 是正确查看管理界面的唯一方法。