Kilka lat temu skonfigurowałem witrynę z Drupal 6.9, a potem zapomniałem o tym. Mam 160 stron użytkowników, którzy są wszyscy spamerami i muszę usunąć wszystkie oprócz 3. Robienie tej jednej strony jest boleśnie powolne z powodu wywołań MySQL (tak mi się wydaje). Mam również około 2500 postów na forum do usunięcia.
Trochę boję się bezpośrednio usunąć rekordy z bazy danych.
Widziałem moduł o nazwie „masowe usuwanie”, ale jest on dla Drupala w wersji 5 i nie jest dostępny dla wersji 6.
źródło
select all
przycisk wyboru wszystkich elementów na wszystkich stronach - kliknij go i Kill-em-all!Ten sposób zabijania węzłów jest bardzo wolny, ale najbardziej bezpieczny
Czy dla użytkowników możesz programowo określić użytkownika, którego chcesz usunąć? Jeśli to możliwe, możesz użyć poprzedniej funkcji jako przykładu, aby usunąć niepotrzebnych użytkowników.
źródło
Zamiast tworzyć niestandardowy moduł dla tego zadania, możesz użyć prostego skryptu i uruchomić go za pomocą Drusha . Ponieważ musisz przetworzyć wielu użytkowników i węzłów, zalecane jest użycie interfejsu API Batch (i można go używać z Drush ).
źródło
Jeśli, podobnie jak ja, wolisz podejście w języku Python (prawdopodobnie tutaj rzadko, ale nadal), jest to przejrzysty i skuteczny sposób rozwiązania tego problemu:
Kroki są w zasadzie:
drush sql-cli -r $your-path-to-drupal -l $your-site-url
python delete-users.py
Jestem pewien, że jest na to lepszy sposób, ale to jest moje zhakowane rozwiązanie, które działa dobrze.
źródło
for i in `drush sql-query 'SELECT list of usernames'`; do drush --yes user-cancel --delete-content $i; done
.Wypróbuj następujące 2 moduły dla D6:
User Prune https://drupal.org/project/user_prune i User Delete https://drupal.org/project/user_delete
User Prune pozwala na masowe usuwanie nieaktywnych użytkowników na podstawie określonych kryteriów.
User Delete pozwala usunąć użytkownika i usunąć całą przesłaną zawartość, w tym węzły i komentarze
źródło
Wdrożyłem niestandardowy moduł do usuwania wszystkich użytkowników indrupal 7. W obszarze admin / people znajduje się nowy formularz do wykonania tej operacji.
Zbyt drush.
To projekt piaskownicy. Dziękuję
Link do projektu.
źródło
Użyj zaawansowanego modułu użytkownika . Ten moduł dodaje zakładkę „zaawansowane” do strony zarządzania użytkownikami. Na tej karcie możesz filtrować użytkowników według dowolnego atrybutu (rola, status itp.) I zaznacz wszystko. Jeśli wybierzesz metodę usuwania użytkowników jako usuń użytkownika i usuń całą zawartość, możesz również usunąć całą utworzoną przez nich zawartość.
źródło
Jeśli masz dostęp do Drush i chcesz szybkiego rozwiązania, które pozwoli zachować użytkowników na białej liście i nie wymaga instalowania dodatkowych modułów:
Przed wklejeniem skoryguj zarówno
@example.org
listę użytkowników, jak i listę użytkowników.('keepthisuser1', 'andthisuser2')
źródło
Przydałby się moduł Usuń wszystko .
Po zainstalowaniu możesz na przykład:
lub
Wersja Drupal 6 w dev, ale z notatek:
źródło
Pierwotne pytanie dotyczy 6, ale użycie odpowiedzi Chrisa Burgessa można zastosować do Drupala 8;
źródło