Hallo zusammen,
Kurze Frage:
Kann man im Template "metamodel_unrendered.html5" keine
ausführen?PHP-Code:$this->import('Database');
Erhalte diese Meldung
Besten DankCode:Call to a member function prepare() on a non-object in
Grüessli
Steven
Hallo zusammen,
Kurze Frage:
Kann man im Template "metamodel_unrendered.html5" keine
ausführen?PHP-Code:$this->import('Database');
Erhalte diese Meldung
Besten DankCode:Call to a member function prepare() on a non-object in
Grüessli
Steven
Mal abgesehen davon, daß so etwas nicht in ein Template gehört: das $this ist im Template das Template Objekt und nicht das Modul, das die Methode import() bereit stellt. Es kann so also nicht funktionieren.
import Befehle funktionieren in MetaModels garnicht! Du musst getInstance nehmen.
Darf man fragen wofür du die Datenbankabfrage benötigst?
Ich habe zuletzt eine PHP-Datei mit folgendem Inhalt inkludiert:
Allerdings musste ich auf eine weitere Datenbank (nicht Contao) zugreifen.PHP-Code:mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
Das funktioniert einwandfrei im MM-Template.
Ja das funktioniert sollte man aber NIEMALS machen. Was brauchtest du von der anderen DB? Der beste Weg wäre die andere DB über Tags ins System zu holen und dann sauber über die MetaModels Komponenten drauf zu zu greifen
Ich habe ja eine Händlersuche über MM umgesetzt, da der Textfilter aber noch nicht funktioniert, habe ich eine Seite vorgeschaltet, die die PLZ abfragt und diese in der externen DB mit Koordinaten abgleicht + Entfernung zu den einzelnen MM Datensätzen berechnet. Dann sortiere ich das MM Array um und begrenze es auf den eingestellten Umkreis.
"NIEMALS" aus Sicherheitsgründen, Performance oder warum?
Kannst du das mit den Tags kurz erläutern? Kann da gerade nichts mit anfangen… Danke und Grüße
Genau die selbe Anforderung hatten wir auch und haben es dann so gemacht:
https://community.contao.org/de/show...l=1#post259668
Aus Sicherheitsgründen sollte man sowas niemals im Template machen und wenn du unbedingt die 2te Tabelle brauchst (ich schätze du meinst eine Tabelle und keine Datenbank, alles andere wäre noch schlimmer) dann würde ich schon die Database Klasse von Contao nutzen um wenigstens ein Hauch an Sicherheit mitzubringen.
Ja, euer Projekt habe ich mir schon angesehen. Hatte den Storelocator auch schon im Einsatz, allerdings war mir das Anpassen der Eingabefelder/die Detailausgabe zu umständlich, da ich das ziemlich flexibel und einfach zu erweitern haben muss. Es sind tatsächlich mehrere Tabellen in einer weiteren Datenbank –*man könnte sie sicherlich in die Contao DB integrieren, allerdings wollte ich da erstmal auf Nummer sicher gehen um nichts kaputt zu machen (ja, ich habe einen Cron laufen, der mir regelmäßig einen Dump abspeichert). Ich befürchte für das was du beschreibst reichen meine Kenntnisse einfach noch nicht aus.![]()
Wir stehen dir zur Verfügung wenn du Hilfe buchen willst. Du kannst es auch so lassen aber ich mach mir Sorgen dass das nicht lange gut geht.
Nein ich meinte das Attribute "Tags".
Und schon wieder eine Frage:
Es geht darum, dass ich gerne auf eine externe Tabelle zugreifen möchte,
ich habe das immer mit der Datenbankklasse von Contao in etwa so gelöst:
bis ich auf diesen Thread gekommen bin.Code:<?php $phrase = $this->raw; $this->import('Database'); $objData = $this->Database->prepare("SELECT mp_date FROM mm_tagespost WHERE hp_menue LIKE '%$phrase%' ORDER BY mp_date DESC")->execute(1); if ($objData->mp_date): echo 'zuletzt verwendet: '.$objData->mp_date; endif; ?>
Ich spiele mich schon eine Weile und komme auch mit getInstance hier nicht wirklich weiter was hier definitiv auf meine fehlenden Kenntnisse zurückzuführen ist.
Ich würde Euch bitten, hier evtl. den grundsätzlichen Code zu posten mit welchem man von einem metamodels-Template aus auf eine andere (wenn möglich beliebige) Tabelle innerhalb der gleichen Contao-Installation zugreifen kann.
das Einzige was ich in etwa in diese Richtung gefunden habe ist das hier:
Leider möchte ich aber keine andere mm_tabelle im herkömmlichen Sinne referenzieren, sondern die Ausgabe an eine andere Bedingung knüpfen (in meinem Falle eine Durchsuchung)PHP-Code:<?php #Vorbereiten $producer = MetaModelFactory::byTableName('mm_producer')->findById($arrItem['raw']['producer']); # Die spalte 'name' aus dem array $producer ausgeben echo $producer->get('name'); ?>
Über den Code würde ich mich freuen...
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)