Невозможно удалить тип содержимого компонента после удаления функции

Проблема

Удаление функции, которая создает тип содержимого, скрывает ссылку «Удалить» в admin/structure/types.

Проблема на Drupal.org

24 голоса | спросил Aram Boyajyan 23 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 23 Sep 2012 19:50:56 +0400 2012, 19:50:56

5 ответов


15

Решение

Используя hook_uninstall() в файле FEATURE_NAME.install и изменив статус типа контента, система считает, что это незаблокированный настраиваемый тип контента.

Я разместил это также на d.org .

<?php
/**
 * Implements hook_uninstall().
 */
function FEATURE_NAME_uninstall() {

  // List custom content types added by this feature
  $custom_ctypes = array(
    'blog',
  );

  // Go through each and unlock the content type
  foreach ($custom_ctypes as $ctype) {
    db_query("UPDATE {node_type} SET `custom` = 1, locked = 0 WHERE type = :ctype", array(':ctype' => $ctype));
  }

  // Clean Drupal cache; this is necessary for the "Delete" link to appear
  // next to the content type created by the feature.
  drupal_flush_all_caches();

}

Это приведет к появлению кнопки «Удалить» для этого типа содержимого, поэтому вы можете удалить его из администратора.

Надеюсь, это поможет кому-то!

ответил Aram Boyajyan 23 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 23 Sep 2012 19:50:56 +0400 2012, 19:50:56
11

Для меня решение было загрузить страницу удаления вручную, так как на странице типов контента нет ссылки «удалить». Для этого вам просто нужно создать URL-адрес самостоятельно, следуя той же структуре URL-адреса, что и страница удаления для других типов контента:

администратора /структура /типы /управления /YOUR_CONTENT_TYPE_MACHINE_NAME /удалить

Появилась страница подтверждения удаления типа содержимого, которая затем позволила мне удалить тип содержимого.

Для справки см. эту тему на Drupal.org:

https://drupal.org/node/1055460#comment-7297680

Привет,

@cmsdave

ответил cmsdave 4 J0000006Europe/Moscow 2013, 03:39:14
3

Вышеуказанный метод не удаляет таксономии, но это может быть достигнуто путем добавления следующего после отключения и удаления модуля:

// Delete taxonomies.
$machine_names = array('taxonomy_a', 'taxonomy_b');
foreach ($machine_names as $machine_name) {
  $taxonomy = taxonomy_vocabulary_machine_name_load($machine_name);
  taxonomy_vocabulary_delete($taxonomy->vid);
}
ответил Juampy NR 15 MaramFri, 15 Mar 2013 07:00:56 +04002013-03-15T07:00:56+04:0007 2013, 07:00:56
1

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

Чтобы вручную удалить тип контента, созданный с помощью функции # 16, что Nedjo предлагает следующее:

  
  • Отключите эту функцию. У меня иногда возникают проблемы с этим - функция не отключается. В этом случае удалите код модуля функции.
  •   
  • Определите имя машины для типа контента, подлежащего удалению, например, «mytype».
  •   
  • В базе данных верните значения таблицы node_type в значения по умолчанию, как если бы тип содержимого был создан вручную через интерфейс:
  •   

mysql> UPDATE node_type SET module = 'node', custom = 1, modified = 1, locked = 0 WHERE type = 'mytype';

     
  • Очистить кеши, чтобы обеспечить изменение типа контента.
  •   
  • Через пользовательский интерфейс в admin /structure /types удалите тип содержимого.
  •   
ответил cayerdis 28 J000000Monday14 2014, 02:47:19
0

Если вы используете модуль admin_menu , вы все равно увидите ссылки удаления в выпадающем меню Структура /Типы содержимого /[имя типа содержимого] /Удалить, даже если они не отображаются на странице типов контента.

Я бы сказал, что это безопасно использовать эту ссылку удаления, если вы убедитесь, что больше нет ссылок на этот тип контента.

ответил Mirsoft 18 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 18 Sep 2015 16:12:36 +0300 2015, 16:12:36

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132