myty - Handbuch für Redakteure und Administratoren

Aktuelle Info zu Sicherheitsrisiken: In den aktuellen Versionen ab 4.1. sind keine Sicherheitsprobleme bekannt.  

myty Core

modul: core
Release Info
Version: 3.5
SELECT SQL_CALC_FOUND_ROWS modulesfaq_questions.*, modulesfaq_answers.Version,`modulesfaq_questions`.`id`,`modulesfaq_questions`.`status` FROM `modulesfaq_questions` LEFT JOIN modulesfaq_answers ON modulesfaq_questions.id=modulesfaq_answers.modulesfaq_questions_id AND modulesfaq_answers.id=567 WHERE 1 AND modulesfaq_questions.id=390 AND `modulesfaq_questions`.`language` = 'de' AND `modulesfaq_questions`.status = 'enabled' LIMIT 0,1

Initialisierung

Um die Funktionalitäten der Software zu nutzen muss an erster Stelle jeder Vorlage das myty-Framework initialisiert werden. Es gibt dafür 2 Varianten:

Benutzung der xml-Tags

Wenn man eine normale Seitenvorlage erstellt, in der man die xml-Tags benutzen möchte muss die Datei “/tycon/prepend.php“ angebunden werden.

include('/tycon/prepend.php');

Diese Datei lädt alle Kernkomponenten der Software und lädt den nachfolgenden Inhalt in einen Puffer, der mittels des Skripts “/tycon/append.php“ abgearbeitet wird. Dises Skript wird nach dem schließenden <html>-Tag eingebunden.

<!-- Inhalt der Vorlage --> </body> </ html> include('../tycon/append.php');

Initialisierung für AJAX-Skripte

Falls man keine xml-Tags benutzen möchte (zum Beispiel in einem AJAX-Skript oder einem dynamischen XML-Dokument) wird empfohlen das Skript “/tycon/prepend_light.php“ einzubinden. Dieses Skript stellt je nach Definition nur bestimmte Kernkomponenten zur Verfügung. Folgendes Beispiel zeigt die Benutzung dieses Skripts:

define('MYTY_INITIALIZATION_LEVEL','siteroles'); include('../tycon/prepend_light.php');  // Verarbeitung und Ausgabe des Skripts...

folgende Werte sind für das MYTY_INITIALIZATION_LEVEL definierbar:

  • session | initiiert nur die Sitzung
  • paths | Pfaderkennung (stellt die Standardpfade (mytyInstallPath, mytyBasePath, documentRoot als globale Variablen zur Verfügung)
  • version | lädt die Versionsinformationen
  • errorhandling | aktiviert die Fehlerbehandlung (Warnungen und Fehler seitens PHP werden in die Datei /myty_log umgeleitet)
  • database | lädt die Datenbankverbindung
  • config | lädt die Setupeinstellungen
  • siteroles | lädt die Rechteverwaltung und stellt Informationen über den aktuellen Benutzer zur Verfügung
  • libraries | Bindet die Kernbibliotheken ein
  • handlers | Führt die Requesthandler bei Bedarf aus

Jedes der genannten Runlevel beinhaltet auch die davor gelisteten. Als Beispiel: Wenn man das Runlevel „database“ definiert werden auch die Runlevel session, paths, version und errorhandling durchlaufen.

Weiterhin gibt es noch die Möglichkeit nur Backend-Nutzer zu erlauben. Diese Entscheindung trifft man, in dem man die Konstante „MYTY_INITIALIZATION_TYPE“ mit dem Wert „backend“ oder „frontend“ definiert. Ruft ein Frontend-Nutzer dann dieses Skript auf wird die Statusmeldung 404 ausgegeben und die weitere Abarbeitung gestoppt.

tyImage

Informationen zu tyImage sind in der Tag-Documentation unter dynamische Bildbereiche zu finden.

Mailmodul

Textteil verfassen

Im neuesten Patch für die Verson 3.3.5 ist es möglich den Textteil einer E-Mail-Nachricht gesondert anzugeben.

Um einen eigenen Textteil festzulegen muss im Template ein Bereich innerhalb des body-Tags folgendes geschrieben werden:

<ty-mail:textpart> Textteil </ty-mail:textpart>

Im Textteil kann man zur übersichtlicheren Bearbeitung Zeilenumbrüche (<br/>) einfügen. Diese werden dann beim verschicken der Vorlage verworfen. Zu beachten ist, dass jeder Umbruch innerhalb dieses Tags auch ein Umbruch in der späteren Textmail ist.

HTML-Tags sind im Textteil nicht erlaubt und werden dann als Tag dargestellt.

tyDB

tyDBSetTables

array tyDBSetTables([bool $debug])

Überprüft die vorhandenen Module mit den Tabellen. Wenn eine Tabelle fehlt, wird die SQL-Datei des Modules mit der fehlenden Tabelle ausgeführt. Im Debug-Modus sieht man Details.

benötigtes Recht für Debug-Modus

setup/backend/setup - show

tyDBGetModulesTable

array tyDBGetModulesTable([string $modules])

Gibt alle Tabellen zu den Modulen zurück (durchsucht dazu die SQL-Dateien in den einzelnen Modulen). Es ist auch möglich sich nur einzelne Module zurückzugeben.

tyDBSize

string tyDBSize([string $database])

Gibt Größe der DB zurück. Es ist auch möglich weitere Datenbanken auszulesen, man benötigt dazu dann natürlich auch das Recht.

benötigtes Recht

setup/backend/setup - show

tyDBFormatSize

string tyDBFormatSize([int $size])

Wandelt den übergebenen Byte-Wert in KB; MB; GB um. Sinnvoll bei der Verwendung von tyDBSize.

tyDB::exec

void tyDB::exec( string $sql )

Führt eine Datenbankabfrage aus, ohne das Ergebnis auszuwerten. Diese Methode ist geeignet zum Eintragen, aktualisieren oder Löschen von Datensätzen, da hier keine Ergebnisse geliefert werden.

Für Abfrage mittels Select nehmen Sie bitte tyDB::query.

tyDB::query

ressource tyDB::query( string $sql )

Führt eine Datenbankabfrage aus, und liefert das Ergebnis als MySQL Ressource zurück. Nach dem diese Datenbankabfrage ausgeführt wurde, kann das Ergebniss in einer Iterationsschleife mittels tyDB::fetchAssoc( ressource ) gelesen werden. Beispiel:

$sql = "SELECT id,name FROM table"; $queryResult = tyDB::query( $sql ); while($row = tyDB::fetchAssoc( $queryResult ) ){   // $row enthält Daten des Ergebnisses der Abfrage }

Bitte beachten Sie, das Fehler in der Datenbankabfrage zu einer Exception führen, die separat mittels try-catch behandelt werden muss:

try{ // datenbankabfrage(n) }catch(Exception $e){    trigger_error($e->getMessage()); }

tyDB::fetchAssoc

mixed tyDB::fetchAssoc( ressource $queryResult )

Liefert den ermittelten (aktuellen) Datensatz als Assoziatives Array zurück. Eine erneute Abfrage führt dazu das das nächste Ergbnis abgerufen wird. Im Fehlerfall (oder wenn keine weiteren Daten mehr vorliegen) wird false zurückgeliefert.

  
Autor: Conrad Gerlach
letzte Änderung: 07.09.2011
Kommentare 0
Fragen von Nutzern 0
ähnliche Themen 0

Ähnliche Beiträge

Es sind keine Beiträge verfügbar.

Empfohlene Beiträge

Es sind keine Beiträge verfügbar.

Kommentieren

 

Stellen Sie eine Frage

 

offene Fragen

Zu diesem Beitrag existieren keine offenen Fragen.

SELECT modulesfaq_questions.*, (SELECT modulesfaq_answers.id FROM modulesfaq_answers WHERE modulesfaq_answers.status='enabled' AND modulesfaq_answers.modulesfaq_questions_id = modulesfaq_questions.id ORDER BY modulesfaq_answers.Version DESC Limit 1) AS answer, (SELECT modulesfaq_answers.id FROM modulesfaq_answers WHERE modulesfaq_answers.modulesfaq_questions_id = modulesfaq_questions.id ORDER BY modulesfaq_answers.Version DESC Limit 1) AS answerCount, (SELECT COUNT(*) FROM modulesfaq_questions AS MQ WHERE MQ.Modul = modulesfaq_questions.Modul GROUP BY MQ.Modul) AS questionsByModul FROM modulesfaq_questions WHERE 1 AND modulesfaq_questions.language = 'de' AND modulesfaq_questions.status = 'enabled' AND modulesfaq_questions.Modul = 'core' ORDER BY modulesfaq_questions.Modul, modulesfaq_questions.pos, modulesfaq_questions.Frage

Alle Beiträge zum Thema

Auf Facebook teilen