drupal 7 – ¿Arrancar correctamente drupal para un archivo PHP independiente?

Pregunta:

Esto es lo que tengo ahora mismo:

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

Recibo un montón de errores de lo anterior cuando lo ejecuto de forma independiente. Funciona bien en mi módulo. Algunos de los errores son:

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).

Respuesta:

Con mucho, la forma más fácil de administrar el bootstrap es usar drush php-script , alias scr.

archivo.php:

<?php
echo l('Link', 'path');

Cli:

drush @alias scr file.php

Producción:

<a href="/path">Link</a>

De esta manera, no necesita lidiar con nada con respecto al bootstrap, drush lo resolverá por completo por usted y le brinda la capacidad de usarlo fácilmente en todos los sitios gracias a los alias. (Incluso podría funcionar en sitios remotos, aunque no lo he probado)

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım