在没有Web界面的情况下在Drupal中切换主题

时间:2009-05-20 06:05:48

标签: php drupal content-management-system themes

我正在学习php和创建主题。

不幸的是,当我正在编辑我目前在drupal中使用的主题时,我在主题中犯了一个错误,以至于不再显示任何内容,即使我要点击drupal / index.php。我想将破碎的drupal主题改为工作主题,但我无法这样做,因为我甚至无法查看管理部分。

9 个答案:

答案 0 :(得分:15)

Drupal.org上的 How To reset your theme via the database 页面提供了直接从SQL提示符更改主题的说明。

目前还不清楚这是否适用于最新版本的Drupal,因此在尝试此操作之前备份您的数据库

答案 1 :(得分:4)

更改前端主题的最简单方法是在您的sites / default / settings.php中设置它:

$conf['theme_default'] = 'minelli';

答案 2 :(得分:2)

或者如果您使用Drupal 6,删除/移动损坏的主题文件夹将使Drupal将主题更改为默认主题(Garland)。

答案 3 :(得分:2)

在对当前问题进行排序方面,这里有一个简单的方法可以解决...让我们说你当前的主题叫做“custom_theme”。

  • 转到您的主题目录(可能是“sites/default/themes”)
  • 备份您的开发主题(例如,如果您使用Linux命令行执行类似“mv custom_theme custom_theme.bak”的操作,请将其移至其他位置)
  • 将花环主题复制到此处并将其命名为与您的主题相同(如果使用LInux命令行,则此类内容应该有效“cp -a ../../../themes/garland ./custom_theme
  • 立即尝试查看您的网站。它现在应该使用花环而不是你破碎的主题。

正如其他人之前所说,强烈建议您为管理员使用不同的主题,就像对普通用户一样(如果你破坏了东西)。选择一个安全的管理主题(如花环),然后如果你正在玩主题,你几乎总能进入管理界面。

答案 4 :(得分: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;)

答案 5 :(得分:1)

也许并行使用两个主题会有所帮助。

为“用户前端”设置一个 - 您在/admin/build/themes开发的用户前端,另一个标准,如花环,您不会更改,作为“管理后端”:{{1} }。

如果您碰巧打破了正在开发的主题,只需转到管理区域(/admin/settings/admin),它就会切换回花环。

答案 6 :(得分:1)

另请参阅以下堆栈溢出问题。 它与他们有关

现在这里是解决方案: 删除坏主题的文件并清除缓存。清除缓存后,您将能够再次登录。

主要困难是您必须在不登录的情况下清除缓存。

尝试使用其中一种清除缓存中描述的缓存的方法 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';

要小心,因为让这些行中的任何一行出错都会让事情变得非常糟糕。

干杯!

Mudassar Ali

答案 7 :(得分:0)

据我所知,主题设置存储在数据库中,也存储在每个用户中。摆脱主题的最快方法可能是将其从主题路径中删除。

只需将其移到您的桌面上,Drupal应该能够检测到您所请求的主题缺失并指向默认值。

更新:在我的Drupal 5安装上试过这个,结果是'干净'。我建议将一个有效的Drupal主题复制到你的主题目录中(先复制一份)。

答案 8 :(得分:0)

值得一提的是,如果您使用“Sections”模块将不同的主题应用于网站的不同部分,则Drupal网站上提供的说明不一定有效 - 您可能会发现移动问题主题目录是唯一正确查看管理界面的方法。