Переключение тем в Drupal без веб-интерфейса - PullRequest
4 голосов
/ 20 мая 2009

Я нахожусь в процессе изучения php и создания тем.

К сожалению, когда я редактировал тему, которую я в настоящее время использовал в drupal, я допустил ошибку в теме, так что больше ничего не появляется, даже если я нажму на drupal / index.php. Я хочу изменить свою сломанную тему drupal на рабочую, но я не могу этого сделать, потому что не могу даже просмотреть раздел администрирования.

Ответы [ 9 ]

15 голосов
/ 20 мая 2009

Страница Как сбросить тему с помощью базы данных * Страница 1003 * на Drupal.org содержит инструкции по изменению темы непосредственно из командной строки SQL.

Не совсем понятно, будет ли это работать в самой последней версии Drupal, поэтому создайте резервную копию базы данных, прежде чем пытаться это .

4 голосов
/ 19 августа 2009

Самый простой способ изменить тему веб-интерфейса - установить ее в ваших сайтах / default / settings.php:

$conf['theme_default'] = 'minelli';
2 голосов
/ 24 декабря 2009

Или, если вы используете Drupal 6, удаление / перемещение поврежденной папки темы заставит Drupal изменить тему на тему по умолчанию (Garland).

2 голосов
/ 20 мая 2009

С точки зрения сортировки вашей текущей проблемы, вот простой способ сделать это, который должен работать ... Допустим, ваша текущая тема называется "custom_theme".

  • Перейдите в каталог вашей темы (вероятно, "sites/default/themes")
  • Сделайте резервную копию вашей темы разработки (т.е. переместите ее в другое место, если вы используете командную строку Linux, сделайте что-то вроде "mv custom_theme custom_theme.bak")
  • Скопируйте сюда тему гирлянды и назовите ее так же, как вашу сломанную тему (при использовании командной строки LInux что-то вроде этого должно работать "cp -a ../../../themes/garland ./custom_theme"
  • Попробуйте просмотреть ваш сайт сейчас. Теперь вместо вашей сломанной темы следует использовать гирлянду.

Как уже говорили другие, также настоятельно рекомендуется использовать другую тему для администраторов, как для обычных пользователей (на случай, если что-то сломается). Выберите безопасную тему администратора (например, гирлянду), и тогда вы почти всегда сможете получить доступ к интерфейсу администратора, если играете с ними.

1 голос
/ 15 января 2014

Пожалуйста, смотрите также следующую проблему переполнения стека. это связано с ними

Теперь вот решение: Удалите файлы плохой темы и очистите кеш. После очистки кеша вы сможете снова войти в систему.

Основная трудность заключается в том, что вы должны очистить кеш без входа в систему.

Попробуйте один из способов очистки кеша, описанный в Очистка кеша Drupal

Если нет, то попробуйте это:

Если у вас есть 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';

Будьте осторожны, так как неправильное использование любой из этих строк может так же сильно испортить ситуацию.

Ура!

Мудассар Али

1 голос
/ 12 ноября 2012

Вы также можете вставить новую форму входа в вашу тему, включив этот код:

 `<?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;)

1 голос
/ 20 мая 2009

Возможно, использование двух тем параллельно поможет.

Установите один для "пользовательского интерфейса" - тот, который вы разрабатываете на /admin/build/themes, другой - стандарт, такой как гирлянда, который вы НЕ собираетесь изменять, в качестве "административного бэкэнда": /admin/settings/admin.

Если вам случится нарушить тему, которую вы разрабатываете, вы просто зайдете в админку (/admin), она переключится обратно на гирлянду.

0 голосов
/ 11 августа 2010

Стоит отметить, что если вы используете модуль " Sections " для применения различных тем к различным частям сайта, инструкции, приведенные на сайте Drupal, не обязательно будут работать - вы можете найти что удаление каталога проблемной темы - единственный способ правильно увидеть интерфейс администратора.

0 голосов
/ 20 мая 2009

Насколько я знаю, настройки темы хранятся в базе данных, а также для каждого отдельного пользователя. Самый быстрый способ избавиться от темы - это удалить ее из пути к теме.

Просто перенесите его на свой рабочий стол, и Drupal сможет обнаружить, что запрошенная вами тема отсутствует, и вместо этого указать вам значение по умолчанию.

Обновление: попробовал это на моей установке Drupal 5, оказалось «чисто». Я предлагаю скопировать рабочую тему Drupal в каталог вашей темы (сначала сделайте копию).

...