Kalender einbinden

Hast du Probleme oder Fragen bei der Einrichtung bestimmter Plugins ? Diese kannst du hier loswerden.
Netz
Beiträge: 54
Registriert: 22. Mär 2010, 10:15

Kalender einbinden

Beitrag von Netz »

Hi.

Ich verwende die Version 2.1.8 und versuche mich erfolglos daran einen Kalender (V1.61) auf einer admidiofremden Seite HTML einzubauen.

Die HTML-Seite ist einfach in .php umbenannt.

Klar, schaffe ich es den Kalender anzeigen zu lassen und mit etwas Handarbeit, habe ich auch die Navigation in den Monaten mal laufen gehabt. Aber eigentlich sollte das ja gar nicht nötig sein.

Über das Einfügen von

Code: Alles auswählen

echo '<link rel="stylesheet" type="text/css" href="'. THEME_PATH. '/css/system.css" />
<script type="text/javascript" src="'.$g_root_path.'/adm_program/libs/jquery/jquery.js"></script>
<script type="text/javascript" src="'.$g_root_path.'/adm_program/libs/tooltip/ajax-tooltip.js"></script>';
sollte es eigentlich vieles integriert werden.

Dabei habe ich zwei Probleme:
  • Was ist genau mit Kopfbereich gemeint?
  • Muss bei einem Befehl wie echo nicht zwingend vorher gesagt werden, dass php genutzt werden soll?
Dann sollte doch am einfachsten (trotz höherer Serverlast), der Kalender so eingebaut werden können.

Code: Alles auswählen

3. Haben die vorherigen Varianten nicht zum Erfolg geführt kann man die Plugins auch direkt über eine URL  einbinden. Allerdings wird bei dieser Variante die common.php für jedes Plugin wiederholt abgearbeitet, was der Performance des Webservers nicht gerade dienlich ist.

<?php
  include("http://www.example.org/Pfad-zu-Admidio /adm_plugins/login_form/login_form.php");
?>
Die calender.css habe ich brav im header der Seite und der my_header.php eingebunden.

Was mache ich falsch?

Dnke und Gruß
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

Die Seite infach von .html in .php umzubennen wird nicht viel nutzen. Denn wie Du schon richtig vermutet hast, handelt es sich hier um PHP-Anweisungen, die daher auch als PHP Code kenntlich gemacht werden müssen. Aber der Reihe nach:

- Die Datei sollte eine PHP Datei sein, daher startet sie grundsätzlich mit <?php
- Als erstes ist dann die common.php von Admidio einzubinden, das funktioniert mit einem einfachen include("Pfad/common.php");
- Mit dem Kopfbereich ist der Header gemeint, also das was zwischen <head> </head> steht. Dort müssen die genannten Anweisungen platziert werden, damit CSS, JQuery und Ajax geladen werden.
- Und abschliessend kann irgendwo im <body> Bereich der Kalender geladen werden, auch hier wieder mit einem einfachen include("Pfad/calendar.php");

Mehr ist es nicht. So steht es (mit Ausnahme der genauen Beschriebung vom Kopfbereich) auch in der Doku...
Netz
Beiträge: 54
Registriert: 22. Mär 2010, 10:15

Beitrag von Netz »

Ich verliere langsam den Glauben an mich! :shock:

Was mache ich denn falsch?

Code: Alles auswählen

<?php 
include_once($_SERVER['DOCUMENT_ROOT']. "/admidio/adm_program/system/common.php");
header('Content-type: text/html; charset=utf-8');
header(echo '<link rel="stylesheet" type="text/css" href="'. THEME_PATH. '/css/system.css" />
<script type="text/javascript" src="'.$g_root_path.'/adm_program/libs/jquery/jquery.js"></script>
<script type="text/javascript" src="'.$g_root_path.'/adm_program/libs/tooltip/ajax-tooltip.js"></script>
<link rel="stylesheet" type="text/css" href="http://www.xyz.de/admidio/adm_plugins/calendar/calendar.css" />';)
?>


<html>
	<body>
		
<h1>Hallo Welt!</h1>

 <?php
    include($_SERVER['DOCUMENT_ROOT']. "/admidio/adm_plugins/calendar/calendar.php");
?>
</body>
</html>
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

Warum so kompliziert? Halte Dich doch einfach an einen "normalen" Dateiaufbau:

Code: Alles auswählen

<?php
//Admidiointegration
include_once($_SERVER['DOCUMENT_ROOT']. "/admidio/adm_program/system/common.php");

//Dateikopf
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Test Calendar-Plugin</title>
<link rel="stylesheet" type="text/css" href="'. THEME_PATH. '/css/system.css" />
<script type="text/javascript" src="'.$g_root_path.'/adm_program/libs/jquery/jquery.js"></script>
<script type="text/javascript" src="'.$g_root_path.'/adm_program/libs/tooltip/ajax-tooltip.js"></script>
<link rel="stylesheet" type="text/css" href="'.$g_root_path.'/adm_plugins/calendar/calendar.css" />
</head>

<body>

<p>Hier kommt jetzt das Calendar-Plugin:</p>

<!-- Breite der Ausgabe begrenzt -->
<div style="width: 250px">
';

//Anzeige Calendar-Plugin
include($_SERVER['DOCUMENT_ROOT']. "/admidio/adm_plugins/calendar/calendar.php");

//Dateiende
echo '
</div>
</body>
</html>';

?>
Das ganze im UTF-8 Format ohne BOM z.B. als cal.php speichern und fertig....
Netz
Beiträge: 54
Registriert: 22. Mär 2010, 10:15

Beitrag von Netz »

Danke. Bei mir ist es reine Unwissenheit.

Im Firefox funktioniert mit dem Code bei mir leider die Monatsnavigation und das Anzeigen der Termininfo beim Mouseover nicht, obwohl beide jetzt in Opera und im IE funktionieren.
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

Kann eigentlich fast nicht sein, dann müsste JQuery nicht funktionieren. Link zu Deiner Seite?
Netz
Beiträge: 54
Registriert: 22. Mär 2010, 10:15

Beitrag von Netz »

Als ich den Link kopieren wollte, funktionierte es auf einmal.

Sorry, mein FF muss etwas falsch geladen haben. :oops:

Also, ich danke dir vielmals!
Netz
Beiträge: 54
Registriert: 22. Mär 2010, 10:15

Kalender in zwei verschiedenen Seiten

Beitrag von Netz »

Hi.

Ich habe versucht den Kalender in einer zweiten Seite einzubinden, doch dort kann ich nicht vor und zurück in den Monaten blättern, wohl aber die Tooltips betrachten.

Kann mich einer eben aufklären, was da schlief läuft?

Seite1 (läuft)
Seite2 (will nicht)
Zuletzt geändert von Netz am 12. Mai 2010, 09:43, insgesamt 1-mal geändert.
Grüße von und aus,
dem Netz!
Netz
Beiträge: 54
Registriert: 22. Mär 2010, 10:15

Beitrag von Netz »

Ich habe jetzt verschiedene Browser getestet und nur beim IE 8 und dem FF3.6 funktioniert die Monatsnavigation auf der erst genannten Seite.

Kann die Navigation nicht einfacher/ kompatibler gelöst werden? Das Ajax ist zwar sehr schön, aber gefällt mir nicht, da ich nicht darauf vertrauen kann, dass es bei allen Menschen läuft. :-)
Grüße von und aus,
dem Netz!
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

Netz hat geschrieben:Kann die Navigation nicht einfacher/ kompatibler gelöst werden? Das Ajax ist zwar sehr schön, aber gefällt mir nicht, da ich nicht darauf vertrauen kann, dass es bei allen Menschen läuft. :-)
Wenn man eine so dynamische Navigation wünscht, ist halt Javascript/Ajax zwingend vorauszusetzen. Da gibt es kein "einfacher". Kompatibel ist das in jedem Fall - es sei denn der Benutzer schaltet Javascript aus. Und das kann ihm keiner nehmen!
Netz
Beiträge: 54
Registriert: 22. Mär 2010, 10:15

Beitrag von Netz »

Naja, php ginge ja auch, aber wenn sich für AJAX entschieden wurde, dann nehme ich das gerne an.


Woran liegt es denn nun, dass die Navigation unter Link 2 nicht geht, unter Link 1 aber schon?
Grüße von und aus,
dem Netz!
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

Netz hat geschrieben:Naja, php ginge ja auch, aber wenn sich für AJAX entschieden wurde, dann nehme ich das gerne an.
Nein, PHP geht nicht für dynamische Umschaltung der Monate. Das funktioniert nur mit einer Scriptsprache, die Clientseitig arbeitet und nicht Serverseitig.

Ich habe im Plugin aber eine PHP-Übergabevariable date_id angelegt, die Du nutzen kannst (zu sehen im Quellcode von calendar.php). Damit kannst Du den Kalender grundsätzlich mit jedem beliebigen Monat aufrufen:

Code: Alles auswählen

calendar.php?date_id=082011
--> Ruft den Kalender im August 2011 auf.

Warum der Ajaxchange auf der zweiten Seite nicht läuft lässt sich so nur spekulieren. Lass doch mal zum Testen die Einbindung aller anderen JS Scripst weg (zB die Lightbox, die Du da noch mit eingebunden hast) - möglicherweise stören irgendwelche JQuery Teile sich gegenseitig!
Netz
Beiträge: 54
Registriert: 22. Mär 2010, 10:15

Beitrag von Netz »

Tatsächlich, die lightbox war nicht kompatibel. Danke!
Grüße von und aus,
dem Netz!
gampsei

Beitrag von gampsei »

Ich habe meine cal.php mit Frontpage gemacht..
zumindest zuerst eine normale Html Seite danach hab ich den Code so wie
matzman2000 am: 23.03.2010 09:06 verfasst hat,
mit dem speichern bin ich nicht zurande gekommen weil das Programm keine .php speichern kann.
darum hab ichs einfach danach in .php umbenannt.
und jetzt zeigen die kleinen Popups keine ü oder ä an.
was kann ich machen.
der Code ist so eingegeben worden..


<?php
//Admidiointegration
include_once($_SERVER['DOCUMENT_ROOT']. "/ver/adm_program/system/common.php");

//Dateikopf
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>EV-Bruck</title>
<link rel="stylesheet" type="text/css" href="'. THEME_PATH. '/css/system.css" />
<script type="text/javascript" src="'.$g_root_path.'/adm_program/libs/jquery/jquery.js"></script>
<script type="text/javascript" src="'.$g_root_path.'/adm_program/libs/tooltip/ajax-tooltip.js"></script>
<link rel="stylesheet" type="text/css" href="'.$g_root_path.'/adm_plugins/calendar/calendar.css" />
</head>


<body leftmargin="90">
<body>

<p></p>

<!-- Breite der Ausgabe begrenzt -->
<div style="width: 350px">
';

//Anzeige Calendar-Plugin
include($_SERVER['DOCUMENT_ROOT']. "/ver/adm_plugins/calendar/calendar.php");

//Dateiende
echo '
</div>
</body>
</html>';

?>

Ich weiß wirklich nicht weiter.. und was heist ohne BOM abspeichern
sollte jemand zeit und lust haben dann bitte ich um AW.
danke Gerhard

http://www.ev-bruck.at/cal.php
Benutzeravatar
fasse
Administrator
Beiträge: 6165
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hallo Gerhard,

deine editierte Seite ist nicht mehr als UTF8-Seite gespeichert worden. Da Admidio alle Texte als UTF8 zurück gibt, werden Sonderzeichen jetzt nicht richtig dargestellt. Kannst du auch prüfen, indem du im Browser die Zeichenkodierung auf UTF8 umstellst, dann werden die Sonderzeichen in den Popups richtig dargestellt.

Also die Datei noch einmal mit einem Texteditor öffnen und als UTF8-Datei speichern.
Schau dir dazu auch noch mal die Doku an: http://www.admidio.org/dokuwiki/doku.ph ... on_dateien

Viele Grüße
Fasse
Antworten