DIV und JavaScript einem Contenttype zuweisen
am 12.03.2013 - 09:17 Uhr in
Hallo Forum,
ich möchte gerne folgendes realisieren und habe keinen Plan wie und wonach ich da suchen sollte. Ich möchte einen Contenttyp erstellen, der einen Titel und einen Textbody besitzt (das ist natürlich kein Problem) und zusätzlich möchte ich gerne zwei DIVs haben. Kann ich diese auch irgendwie als Feld hinzufügen? Im nächsten Schritt wäre es cool, für genau diesen Contenttyp eine JavaScript-Datei nutzen zu können.
mit freundlichem Gruß
Jens
- Anmelden oder Registrieren um Kommentare zu schreiben

Hallo,ich schildere es Dir
am 12.03.2013 - 09:34 Uhr
Hallo,
ich schildere es Dir mal nur in groben Zügen, damit Du weißt wonach Du suchen musst:
Ich weiß jetzt nicht was Du mit den div's vorhast, aber am besten wäre, Du würdest für deinen Contenttype eine eigene .tpl-Datei nach dem Muster node--[dein_contenttype] erstellen. Dort kannst Du das Markup differenzieren.
Für die Javascript-Geschichte brauchst Du eine template.php in Deinem Themeverzeichnis. Dort kannst Du den Contenttype abfragen und mit drupal_add_js() nur bei diesem eine JS-Datei laden.
Solltest Du eine Core-Theme benutzen wie Garland oder Bartik mussst Du Dir zuerst ein Sub-Theme anlegen um die Änderungen dann dort anzulegen.
Gruß
Christian
Hi, also in die DIVs soll
am 12.03.2013 - 09:44 Uhr
Hi,
also in die DIVs soll einmal eine OpenLayers-Karte und das andere DIV dient als "Infofenster" außerhalb von Drupal arbeitet der Spaß auch prima, soll aber eben eingearbeitet werden. Schade, ich muss also wieder basteln, dachte das geht eventuell über die Administratoroberfläche.
vielen Dank ich begebe mich auf die Suche.
mfg
Jens
Eine Openlayers-Karte
am 12.03.2013 - 10:03 Uhr
Eine Openlayers-Karte bekommst Du auch als Feld rein http://drupal.org/project/openlayers . Markup hast Du dann mehr als Du Dir wünscht. Ein "Infofenster" wohl auch - oder als Block.
[edit]
Vielleicht erledigt sich dann das mit dem JS auch, wenn es auf die Map bezogen ist.
Gruß
Christian
Okay ich probiere es mal aus,
am 13.03.2013 - 11:37 Uhr
Okay ich probiere es mal aus, aber ich glaube nicht dass sich die JavaScript-Geschichte ändert. Ich bin echt auf das Modul gespannt.
Da gibt es eine auch gute
am 13.03.2013 - 11:44 Uhr
Da gibt es eine auch gute Doku dazu http://drupal.org/node/1636666
Gruß
Christian
Hi, abermals Danke, die lese
am 13.03.2013 - 11:52 Uhr
Hi, abermals Danke, die lese ich mir gerade durch und ich merke dass die Idee zweier DIVs und dem adden einer JavaScript-Datei deutlich leichter ist, denn irgendwie bietet mir Drupal nicht die Optionen die ich benötige. Unter anderem ein WebFeatureService zu integrieren und ein CustomControll für ein SelectFeature.
mfg
Jens
Geocoder
am 13.03.2013 - 12:14 Uhr
Geocoder http://drupal.org/project/geocoder gehört auch mit ins Paket, ich weiß nicht genau ob es in der Doku entsprechend erwähnt wird.
Beim Integrieren der
am 13.03.2013 - 12:14 Uhr
Beim Integrieren der Beispielkarte erhalte ich leider sofort diese Fehlermeldung
Notice: Undefined property: stdClass::$name in openlayers_layer_sanity_check() (Zeile 397 von /var/www/hemcau/sites/all/modules/openlayers/openlayers.module).
Notice: Undefined variable: map in openlayers_layer_sanity_check() (Zeile 399 von /var/www/hemcau/sites/all/modules/openlayers/openlayers.module).
Ist alles nicht so einfach*G*
Okay, die Fehler verschwinden
am 13.03.2013 - 12:40 Uhr
Okay, die Fehler verschwinden mit dem Hinzufügen des GeoCoders-danke.
Ich habe das Gefühl ich
am 13.03.2013 - 16:09 Uhr
Ich habe das Gefühl ich stelle mich zu dämlich an, wenn ich die Standardkarte (also den standardisierten OL-COntent) hinzufüge, ist lediglich der Text zu sehen, aber weit und breit keine Karte.
mfg
Jens
und leider verschwinden die Fehlermeldungen doch nicht, ich kann sie aber nicht künstlich reproduzieren
Ähnliches Problem
am 13.03.2013 - 17:40 Uhr
Hallo Jens,
wenn du dein Problem gelöst hast, dann poste doch bitte einmal deine Lösung. Ich habe auf gis.andylicht.de/wettermap bereits eine OpenLayers-Konfiguration mit einem WMS und einem WFS. Auf ein map-click-Event werden im benachbarten DIV alle Informationen zu den Wetterstationen in Highcharts ausgegeben. Ich versuche mich auch gerade dabei, diese Geschichte in meine Seite Hemitheconyx-caudicinctus.de einzubinden. Es mangelt allein schon die Fähigkeit einen WFS zu integrieren und auch mit KML komme ich bis dato nicht weiter. Ich werde wahrscheinlich den ersten Weg gehen und die Methode der beiden DIVs wählen. Es wäre schön wenn oteno das ganze noch ein wenig erklären könnte.
vielen Dank
Andy
Ich habe da auch einige Zeit
am 13.03.2013 - 18:29 Uhr
Ich habe da auch einige Zeit gebraucht, bis da einigermaßen durchgestiegen bin. Da sind echt viele Rädchen an denen man drehen kann/muss.
Ich kann nur empfehlen, die Anleitung die ich oben verlinkt habe, ordentlich durchzuarbeiten. Ich würde es zuerst mal mit WKT machen, wenn das läuft, einen WFS anschließen. Das ist durchaus eine Materie für sich - ich habe mir, als ich damit zu tun hatte, auch das O'Reilly Buch "Mapping with Drupal" besorgt.
Gruß
Christian
[edit]
Und ich kann Euch auch nicht von vornherein sagen, ob das so klappt wie ihr das vorhabt. Die Ausgangsfrage war ja doch ein bisschen anders gestellt...
Hi, danke für die
am 14.03.2013 - 10:11 Uhr
Hi,
danke für die umfangreiche Hilfestellung. Ich habe mir das Buch bestellt und werde mit dem Mapping via Drupal-Module später loslegen und erstmal die Gechichte mit den beiden DIVs aufgreifen. Ich benutze das Omega-Theme und habe nun in meinem Subtheme-Templates-Ordner die Datei 'node-wettermap.tpl.php' erzeugt.
Die Datei schaut dabei ganz easy aus, wird aber wahrscheinlich so nicht arbeiten (es dauert wohl echt eine Weile sich in "fertige" Systeme" einzuarbeiten),jedenfalls werden meine Testinhalte übergangen:
<wettermap<?php print $attributes; ?>>
<?php print $user_picture; ?>
<?php print render($title_prefix); ?>
<?php if (!$page && $title): ?>
<header>
<h2<?php print $title_attributes; ?>><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
</header>
<?php endif; ?>
<?php print render($title_suffix); ?>
<?php if ($display_submitted): ?>
<footer class="submitted"><?php print $date; ?> -- <?php print $name; ?></footer>
<?php endif; ?>
<div<?php print $content_attributes; ?>>
<?php
// We hide the comments and links now so that we can render them later.
hide($content['comments']);
hide($content['links']);
print render($content);
?>
</div>
/*hier sind die beiden DIVs
*
*
*/
<div id="wmap">Testinhalt</div>
<div id="highcharts">Testinhalt</div>
/*
*
*/
<div class="clearfix">
<?php if (!empty($content['links'])): ?>
<nav class="links node-links clearfix"><?php print render($content['links']); ?></nav>
<?php endif; ?>
<?php print render($content['comments']); ?>
</div>
</wettermap>
vielen Dank für deine Hilfe.
mfg
Andy
Auf den ersten Blick fehlt
am 14.03.2013 - 10:35 Uhr
Auf den ersten Blick fehlt ein Hyphen (-), so wird die Datei nicht geladen. Die Datei muss also node--wettermap.tpl.php heißen, wenn Dein Inhaltstyp 'wettermap' heißt. Außerdem sollte eine node.tpl.php - aus dem System kopiert - in Deinem Verzeichnis liegen, damit spezifische node--[jenachdem].tpl.php geladen werden.
Der
<wettermap>-Tag ist mir jetzt auch neu ;)Gruß
Christian
[gelöscht]
In meinem Verzeichnis? Ist
am 14.03.2013 - 12:14 Uhr
In meinem Verzeichnis? Ist das Template-Verzeichnis des Subthemes nicht richtig? Und warum sollte der Tag nicht richtig sein, denn bei node.tpl.php stand 'article' als Tag....
mfg
Andy
Okay, Okay, ich hätte es einfach selber ausprobieren können, mit articel statt wettermap funktioniert es, nun muss ich nur noch die Javascriptdateien integrieren.
Also sorry, ich kann ja hier
am 14.03.2013 - 12:17 Uhr
Also sorry, ich kann ja hier nicht bei null anfangen...
<article>ist ja auch ein HTML-Tag.Das Hyphen fehlt im Datei-Namen, wie oben schon ausführlich erläutert.
Gruß
Christian
Du hast ja auch vollkommen
am 14.03.2013 - 12:30 Uhr
Du hast ja auch vollkommen recht. Ich weiß auch gar nicht warum ich mich bei Drupal so schwer tue. Wahrscheinlich will ich einfach viel zu schnell zu viel und werde ungeduldig. Wie gesagt das einbinden der DIVs hat bereits prima geklappt, jetzt versuche ich erstmal die JavaScript-Dateien zu integrieren.
mfg
Andy
Hi Christian, leider klappt
am 14.03.2013 - 13:10 Uhr
Hi Christian,
leider klappt das bei mir noch nicht ganz so, wie gedacht. Eventuell kannst du mal über eine Funktion drüber schauen:
<?php
<?php
/**
* @file
* This file is empty by default because the base theme chain (Alpha & Omega) provides
* all the basic functionality. However, in case you wish to customize the output that Drupal
* generates through Alpha & Omega this file is a good place to do so.
*
* Alpha comes with a neat solution for keeping this file as clean as possible while the code
* for your subtheme grows. Please read the README.txt in the /preprocess and /process subfolders
* for more information on this topic.
*/
function node_add_javascript($node)
{
$type = node_type_get_name($node);
if($type == 'wettermap')
{
drupal_add_js('jQuery(document).ready(function(){alert("Funktion wird gelesen und klappt");});','inline');
drupal_add_js('sites/all/libraries/openlayers/lib/OpenLayers.js');
drupal_add_js('sites/all/libraries/highcharts/highcharts.js');
drupal_add_js('sites/all/libraries/highcharts/modules/exporting.js');
drupal_add_js('sites/all/libraries/mapjs/wettermap.js');
}
}
?>
?>
Ich habe die Einleitung einfach mal dabei gelassen. Ich interpretiere das so, dass ich weitere Subtheme-Funktionen in dieser Template-Datei (befindet sich im Subtheme) in diese hineinschreiben soll. Aber ich weiß nicht einmal ob die Datei abgearbeitet wird.
mfg
Andy
Hallo,die Funktion
am 14.03.2013 - 20:59 Uhr
Hallo,
die Funktion
node_add_javascript($node)kenne ich nicht, wo ist die her, wo wird die aufgerufen?Ich mache es z.B. so:
function DEINTHEME_preprocess_page(&$vars) {if (isset($vars['node'])) {
if ($vars['node']->type == 'DEININHALTSTYP') {
drupal_add_js('PFADZURDATEI/wettermap.js', 'file');
}
}
}
und das kommt in die template.php meines Themes.
Gruß
Christian
Okay, ich danke dir. Ich habe
am 14.03.2013 - 23:08 Uhr
Okay, ich danke dir. Ich habe mir die Funktion ausgedacht, denn ich habe nirgends etwas zu den Funktionsnamen/Funktionen gefunden. Ich probiere das morgen gleich mal aus und beantworte dir das ganze dann. Vielen Dank für deine Bemühungen!
mit freundlichem Gruß
Andy
ja, leider ich wieder. Also
am 15.03.2013 - 10:47 Uhr
ja, leider ich wieder. Also die javascript-Dateien scheinen geladen zu werden, jedenfalls tauchen die entsprechenden Links in der Linkliste auf. Nur leider passiert rein gar nichts, woran kann das liegen?Liegt es vielleicht an der Lade-Reihenfolge?
Hier eventuell einmal der Link zur entsprechenden Seite.LINK
Wenn ich das ganze fertig habe, würde ich es schriftlich festhalten und in meinem Block veröffentlichen (der Block dient vor allem mir als Erinnerungsstütze), da würde ich dich und deine Seite verlinken, wenn das OK ist.
mit freundlichem Gruß
Andy
Hallo, kann man mal
am 15.03.2013 - 11:07 Uhr
Hallo,
kann man mal festhalten, dass Einfügen von Divs und das reine Hinzufügen einer Javascript-Datei zu einem speziellen Inhaltstyp klappt?
Wenn ja, würde ich an Deiner Stelle für weitere Probleme ein neues Thema mit diesem speziellen Problem aufmachen - dann ist die Wahrscheinlichkeit höher, dass Du entsprechenden Input bekommst.
Gruß
Christian