Přeskočit přímo na text


Zpracování php skriptu

Kategorie: Jak na to?
Týká se verze: Drupal 6.x

Prosím o nakopnutí. Potřeboval bych poradit, jak docílím toho, když mám vytvořený node kde je pouze vložený nějaký php skript(třeba dotaz na databázi) abych měl jako výstup pouze výstup tohoto kodu bez drupal obalu (napřklad proto, abych ho mohl zpracovat na jiném webu). Myslím tedy bílou stránku s textem výstupu toho kodu. Pokud je to teda možné. A za druhé by mne zajímalo, jestli je možné nějakakým způsobem použít drupal funkce v externím souboru, který je uložen někde v souborovém systému drupalu. Všeho jsem schopný docílit jiným způsobem, ale rád bych využil drupalu hlavně z bezpečnostních důvodů. Nejsem profík, takže se možná ptám blbě. Ale i pár facek někdy nakopne. Děkuji

 

šablona v slozce

šablona v slozce MUJMODUL

obsah souboru mujsoubor.tpl.php

print $content;

Casti toho modulu

obsah souboru mujmodul.php

/**
 * Implementation of hook_menu().
 */
function MUJMODUL_menu() {  // nastudovat hook_menu
}

function MUJMODUL_preprocess_page(&$variables) {
  if (arg(0)== 'moje-cesta') {
    $variables['template_file'] = 'mujsoubor';
  }
}

function MUJMODUL_theme_registry_alter(&$theme_registry) {
  $theme_hook = 'page'; // my hook name
  $modulepath = drupal_get_path('module', 'mujmodul');
  array_unshift($theme_registry[$theme_hook]['theme paths'], $modulepath);
}

tak zhruba takhle.

Tohle bych zrejme neresil ani

Tohle bych zrejme neresil ani sablonou, pokud delat veci poradne, tak sql dotaz by mel byt v modulu.

v hook_menu mit callback na cestu a funkci, funkce zavola sql dotaz a posle data na vystup pomoci print a pak uz jen exit v te same funkci.

samozrejme otazka je, jaka data vypisujete, v jakem formatu, atd… treba se to da resit i jinak nez vlastnim modulem.

<?php
function mujmodul_menu() {
  $items['moje-cesta'] = array(
    'page callback' => 'mujmodul_export',
    'access arguments' => array('mujmodul export'),
  );
}

function mujmodul_export() {
  // nastavit hlavicky/format dokumentu
  // db_query, atd...
  print $data;
  exit;
}
?>

Boostrapovani drupalu

Boostrapovani drupalu z externiho skriptu
Staci pridat bootstrap.inc a pote bootstrapovat drupal
Drupal ma nekolik bootstrap fazi, viz dokumentace bootstrap.inc – http://api.drupal.org/…inc/6/source
 

<?php
/**
 * First bootstrap phase: initialize configuration.
 */
define('DRUPAL_BOOTSTRAP_CONFIGURATION', 0);
/**
 * Second bootstrap phase: try to call a non-database cache
 * fetch routine.
 */
define('DRUPAL_BOOTSTRAP_EARLY_PAGE_CACHE', 1);
/**
 * Third bootstrap phase: initialize database layer.
 */
define('DRUPAL_BOOTSTRAP_DATABASE', 2);
/**
 * Fourth bootstrap phase: identify and reject banned hosts.
 */
define('DRUPAL_BOOTSTRAP_ACCESS', 3);
/**
 * Fifth bootstrap phase: initialize session handling.
 */
define('DRUPAL_BOOTSTRAP_SESSION', 4);
/**
 * Sixth bootstrap phase: load bootstrap.inc and module.inc, start
 * the variable system and try to serve a page from the cache.
 */
define('DRUPAL_BOOTSTRAP_LATE_PAGE_CACHE', 5);
/**
 * Seventh bootstrap phase: find out language of the page.
 */
define('DRUPAL_BOOTSTRAP_LANGUAGE', 6);
/**
 * Eighth bootstrap phase: set $_GET['q'] to Drupal path of request.
 */
define('DRUPAL_BOOTSTRAP_PATH', 7);
/**
 * Final bootstrap phase: Drupal is fully loaded; validate and fix
 * input data.
 */
define('DRUPAL_BOOTSTRAP_FULL', 8);

?><br />
Kod externiho skriptu<br />
<?php
//set the working directory to your Drupal root
chdir('/home/public_html/drupal/');

//require the bootstrap include
require_once './includes/bootstrap.inc';

//Load Drupal
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
//(loads everything, but doesn't render anything)

//display a node
print '<pre>';
print_r(node_load(12));
print '</pre>';
?>

priklad z: http://www.avenuewebmedia.com/…l-php-script

Poslat nový komentář

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.
  • You can use Texy! to format and alter entered content.
  • Povolené HTML značky: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <p> <br> <b> <i> <h2> <img> <pre> <sup> <sub> <pre class="php"> <span class="php-keyword1"> <span class="php-var"> <span class="php-num"> <img class="screenshot"> <p class="beginner"> <a class="greybox"> <h3> <h4>

Více informací o možnostech formátování

Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.

Hledat

Přihlášení

Bezpečnost Drupalu

Z hlediska bezpečnosti je Drupal na velmi vysoké úrovni, díky propracovanému systému hlášení, prověřování a řešení možných problémů.

Čtěte více a odebírejte bezpečnostní aktuality

Poslední komentáře

Kdo je online

Momentálně je online 0 uživatelů a 0 hostů.