Willkommen im neuen Forum von concrete5.de.
Die Anmeldung ist ab dem 15.10.2020 nur noch mit E-Mail Adresse und Passwort möglich. Eine Anmeldung mit Benutzername ist nicht mehr möglich.

Diese Nachricht löschen.
Anhang entfernen?
Zurück zur Themenliste
P
Prof.P 0.png 26.06.2011 22:04

Wie und Wo optimalerweise JavaScript in meine Seite einbinden?

Hallo,

Ich möchte gerne eine Seite in meinem conrete5 haben, in der ich per PHP script Datenbankeinträge mache, soweit klappt das auch alles.
Dazu habe ich mir das PHP Code package installiert ("nd_php_package").

Jetzt will ich aber per JavaScript noch eine Kalender-Funktion haben und diverse clientseitige Eingabeprüfungen usw.
Dazu habe ich mir eine JavaScript-Library runtergeladen und will die einbinden.

Jetzt kommt die große Preisfrage: wie und wo mach ich das am besten?
Ich mache das derzeit in meinem PHP script, aber es klappt nicht, weil ich die location der .JS-files nicht kenne.

Dachte da an sowas:
[php]
<?php
[...]
echo "
<script type='text/javascript' src='js/calendar/calendarDateInput.js'></script>
[...]
";
?>
[/php]


Aber wo lege ich diese Datei calendarDateInput.js hin?
Nach
\concrete5\concrete\js
oder
\concrete5\js

Und wo bau ich den Aufruf ein? Am liebsten in meinem PHP snippet, da ich ihn ja nur auf der einen Seite brauche und nicht in den Template Header usw..

concrete5.4.1.1
M
mr-fan 0.png 27.06.2011 09:22
Dafür gibt es Events!

Damit könntest du den Conctroller packages/nd_php_package/controller.php erweitern:

http://www.concrete5.org/documentation/developers/system/events/

http://www.concrete5.org/community/forums/customizing_c5/eventsextendpagetype-question/

Oder du machst aus dem PHP Block einen eigenen Block und bennenst alles um.....und verpasst der view.js und view.css das benötigte JS

aber grundsätzlich wenn du eh schon Tabellen brauchst, oder änderst...PHP Script einsetzt...warum nicht gleich einen eigenen Block dafür nehmen??

Gruß Martin
R
RII 0.png 27.06.2011 09:50
Hallo,
du brauchst eigentlich keine extra calendar js dafür, concrete 5 hat selber viele "Widgets" die man einfach aufrufen kann! das sind die "helpers" einen Kalender kannst du mit [php]$dtt = Loader::helper('form/date_time');[/php] aufrufen
siehe die Doku zu den Helpers.

Rii
P
Prof.P 0.png 29.06.2011 00:14
Disse 'RII' pid='400' dateline='1309161026':

Hallo,
du brauchst eigentlich keine extra calendar js dafür, concrete 5 hat selber viele "Widgets" die man einfach aufrufen kann! das sind die "helpers" einen Kalender kannst du mit [php]$dtt = Loader::helper('form/date_time');[/php] aufrufen
siehe die Doku zu den Helpers.

Rii


Danke, ich werde nen eigenen Block machen.
Gibt es ein gutes Tutorial das zeigt, wie ich Db-Abfragen aus nem c5 Block heraus mache? Bsp. wären hilfreich, vor allem um das MySQL-Result set (mehrere rows) in PHP Variablen zu stopfen...
M
mr-fan 0.png 29.06.2011 12:01
http://www.codeblog.ch/de/2008/10/concrete5-block-code-ausfuhren/

http://c5cookbook.com/

http://www.weblicating.com/index.php/c5/cheat-sheet

http://www.google.de/

;)

Ps.: das Buch von Remo (erster Link) auf Amazon ist sehr sehr interessant - für einen richtig flotten Einstieg in C5!

Gruß Martin
L
Ligerat 0.png 16.04.2012 11:32
Hi,
bin neu hier, aber ich kann dir viell. helfen.

Ich binde meine JavaScripts immer in die header.php oder in die footer.php unter themes ein. Das ganze sieht wie folgt aus.

<head>

<link rel="stylesheet" media="screen" type="text/css" href="<?php echo $this->getStyleSheet('css/reset.css')?>" />
<link rel="stylesheet" media="screen" type="text/css" href="<?php echo $this->getStyleSheet('css/main.css')?>" />

<! --- JavaScript Start --- >

<?php
$html = Loader::helper('html');
$this->addHeaderItem($html->javascript('ui.js'));
$this->addHeaderItem($html->javascript('jquery.easing.1.3.js'));
$this->addHeaderItem($html->javascript('jquery.mousewheel.min.js'));
?>

<! --- JavaScript Ende --- >

<?php Loader::element('header_required'); ?>

</head>

Es ist unbedingt wichtig die Einbindung vor der Zeile <?php Loader::element('header_required'); ?> einzufügen, da das sonst nicht funktioniert, das selbe gilt beim footer.

Beachte das beim footer $this->addFooterItem steht.

Die jquery einzubinden ist nicht nötig, da diese schon standart ist in C5.
Die einzelnen JavaScript Dateien kopiert Ihr in den js-Ordner.

Hoffe es hat dir helfen können.
L
Left 0.png 05.04.2013 17:16
Disse 'Ligerat' pid='640' dateline='1334568756':


Hoffe es hat dir helfen können.


Ich habe es mal probiert, funktioniert tatsächlich. Danke.

______________
Java-Bücher für Anfänger: hier

Nachricht hinzufügen