Drupal 8 Framework von Unterverzeichnis aufrufen ?
Eingetragen von manarak (57)
am 19.11.2018 - 21:28 Uhr in
am 19.11.2018 - 21:28 Uhr in
Hallo,
folgendes Skript (ist ein Beispiel, dass den eingeloggten User ausgibt) funktioniert wenn es im Drupal-Stammordner untergebracht ist, jedoch nicht in einem Unterverzeichnis.
Was müsste ich machen, damit es auch ab einem Unterverzeichnis funktioniert?
Danke für Eure Hilfe
<?php
use Drupal\Core\DrupalKernel;
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
$autoloader = (require_once 'autoload.php');
try {
$request = Request::createFromGlobals();
$kernel = DrupalKernel::createFromRequest($request, $autoloader, 'prod');
$kernel->prepareLegacyRequest($request);
} catch (HttpExceptionInterface $e) {
$response = new Response('', $e->getStatusCode());
$response
->prepare($request)
->send();
exit;
}
\Drupal::moduleHandler()
->addModule('system', 'core/modules/system');
\Drupal::moduleHandler()
->addModule('user', 'core/modules/user');
\Drupal::moduleHandler()
->load('system');
\Drupal::moduleHandler()
->load('user');
$account = \Drupal::service('authentication')
->authenticate($request);
if ($account) {
\Drupal::currentUser()
->setAccount($account);
if (\Drupal::currentUser()->isAuthenticated()) {
$outprout = "is logged<br>";
$user = \Drupal\user\Entity\User::load(\Drupal::currentUser()->id());
$outprout .= "<br>username:".$user->get('name')->value;
$outprout .= "<br>uid:".$user->get('uid')->value;
echo $outprout;
}
}
?>
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich verstehe Deine Frage
am 19.11.2018 - 23:43 Uhr
Ich verstehe Deine Frage nicht. Dieses "Script" ist ein Auszug aus einem Drupal-Modul. Das kann natürlich nur funktionieren, wenn es in der Drupal-Struktur an einer passenden Stelle eingebunden wird. Also muß es in eine Datei, die einer speziellen Namenskonvention unterliegt, an einer passenden Stelle in der Drupal Programmstruktur vorhanden sein. Anders funktioniert Drupal nun mal nicht. Was soll jetzt die Frage nach einem Unterverzeichnis?
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
kein Auszug aus einem
am 20.11.2018 - 00:58 Uhr
kein Auszug aus einem Modul.
es ist ein eigenständiges Skript, dass die Drupal-Funktionen einbindet.
man (oder zumindest ich) kann nicht alles mit Drupal machen, z.B. Zahlungsbestätigungen automatisch verarbeiten, die per Post oder Get reinkommen.
also... wer weiss, wie man das in einem Unterverzeichnis zum laufen bekommt?
meine persönliche Webseite: drupaldope.com
enthält Tipps & Tricks zu Drupal 8 & 9 (auf Englisch)
Gibt es einen Error? Ab
am 20.11.2018 - 07:43 Uhr
Gibt es einen Error? Ab welcher Stelle innerhalb deines Scripts läuft es nicht mehr wie erwartet?
Das Erstellen einer Callback URL in Drupal ist relativ einfach möglich mit einem eigenen Modul, definieren eines Routings für die Callback URL und einem Controller, der die Post oder Get Anfrage verarbeitet.
Es wird nötig sein, die
am 20.11.2018 - 11:40 Uhr
Es wird nötig sein, die eigenen Scripte in ein eigenes Modul zu packen. Es wundert mich, daß Dein Script überhaupt funktioniert hat. Das war vermutlich reines Glück. Eine Drupal-Funktion erwartet, daß bestimmte Setups durchlaufen wurden. Das kannst Du aber nicht mit einem Script außerhalb von Drupal garantieren. Deshalb werden Scripts außerhalb von Drupal, die Drupal Funktionen aufrufen in der Regel nicht laufen (es mag Ausnahmen geben). Lerne, wie man eigene Module innerhalb von Drupal erstellt. Mit Hilfe der Drupal-Console kannst Du Dir ein Skelett dafür erstellen lassen und mußt dann "nur noch" das Innenleben erstellen. mit den Befehlen drupal gm (generate Module) und Drupal gcon (generate Controller) geht das recht fix. Mit dem zweiten Befehl bindest Du Funktionen an URLs an, was bei Drupal 7 mittels hook_menu passierte. Der Aufruf der URL löst dann die Funktion aus.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *