Oto co mam teraz:
<?php
define('DRUPAL_ROOT', '/var/www/clients/client1/web15/web');
include_once(DRUPAL_ROOT . '/includes/bootstrap.inc');
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
// drupal_flush_all_caches();
$users = views_get_view_result('userlist', 'uid_list');
$i = 0;
foreach ($users as $user) {
$filename = 'sites/default/files/generated_pdfs/individual_pdf_report_' . $user->uid . '.pdf';
generate_employee_pdf($user->uid, $filename);
error_log('Generated ' . $filepath);
$i++;
}
// create object
$zip = new ZipArchive();
// open archive
if ($zip->open("sites/default/files/generated_zips/individual-reports.zip", ZIPARCHIVE::CREATE) !== TRUE) {
die ("Could not open archive");
}
// initialize an iterator
// pass it the directory to be processed
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("sites/default/files/generated_pdfs/"));
// iterate over the directory
// add each file found to the archive
foreach ($iterator as $key=>$value) {
$zip->addFile(realpath($key), $value->getFilename()) or die ("ERROR: Could not add file: $key");
}
// close and save archive
$zip->close();
?>
Otrzymuję mnóstwo błędów z powyższego, gdy uruchamiam samodzielny. Działa dobrze w moim module. Niektóre z błędów to:
Warning: Invalid argument supplied for foreach() in drupal_depth_first_search() (line 56 of /var/www/clients/client1/web15/web/includes/graph.inc).
Warning: Invalid argument supplied for foreach() in _module_build_dependencies() (line 229 of /var/www/clients/client1/web15/web/includes/module.inc).
Warning: include_once(sites/all/modules/views_bulk_operations/actions/archive.action.inc): failed to open stream: No such file or directory in views_bulk_operations_load_action_includes() (line 56 of /var/www/clients/client1/web15/web/sites/all/modules/views_bulk_operations/views_bulk_operations.module).
7
bootstrapping
Joren
źródło
źródło
Odpowiedzi:
Zdecydowanie najłatwiejszym sposobem zarządzania bootstrap jest użycie skryptu php drush , alias scr.
plik.php:
Cli:
Wynik:
W ten sposób nie musisz zajmować się niczym w odniesieniu do bootstrapu, drush rozwiąże go całkowicie za Ciebie i da ci możliwość łatwego używania go na różnych stronach dzięki aliasom. (Może nawet działać na zdalnych stronach, chociaż nie próbowałem tego)
źródło
@alias
ma zrobić? Dostaję tylkoCould not find the alias @alias
. Niestety podany link jest uszkodzony. Czy możesz to naprawić i rozwinąć wyjaśnienie?twój samodzielny bootstrap Drupal 7 nie jest w porządku.
Spróbuj tego:
Mam nadzieję że to pomoże.
źródło
require_once DRUPAL_ROOT . '...'; // include required module files to work with here
wystarczy:
źródło
Ostatni błąd
jest błędem w VBO. views_bulk_operations_load_action_includes () nie używa DRUPAL_ROOT podczas korzystania z include_once. Złożyłbym błąd i naprawił go w VBO.
Drugi błąd (2 są ze sobą powiązane) może być związany z brakiem używania funkcji DRUPAL_ROOT podczas _system_rebuild_module_data () podczas uzyskiwania dostępu do pliku .info modułów. Umieściłbym punkty przerwania w system_rebuild_module_data () dla zmiennej $ moduły i sprawdzę, czy potrafisz ją wskazać. Po raz kolejny zgłoś błąd do rdzenia drupal, ponieważ nie widzę tego problemu w kolejce problemów.
Powodzenia!
źródło