Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

kleines Modul für Google Maps [gelöst]

Eingetragen von Anonymous (0)
am 28.04.2009 - 12:52 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hallo zusammen,

Nun habe ich ein sehr einfaches Modul geschrieben, welches nur einige wenige Eingaben braucht (Titel, Menülink und Code). Für die Einstellung muss "Full HTML" angegeben werden, weil sonst wichtige Tags aussortiert werden (Artikel einstellen kann eh nur der Berechtigte).
Natürlich wäre hier die Trennung von Markup und Text möglich gewesen, ich habe das aber bewusst mit in den Artikel genommen, damit es wirklich von jedem/r verwendet werden kann.

Das Modul besteht aus drei Dateien (.info, .module, .admin.inc) und benötigt keine weiteren Hilfsmittel.
Vielleicht gibt es einige Leute, die das gerne mal antesten möchten und vielleicht auch noch Vorschläge und Verbesserungen einbringen möchten.

Die Installation läuft gleich ab, wie bei sonstigen Zusatzmodulen(sites/all/modules/custom/meinmodul). Eine Konfiguration ist nicht nötig, jedoch die Mapgrösse könnte im Artikelcode noch angepasst werden. Nach der Installation erscheint ein Modul "mapdrei" welches zuerst aktiviert werden muss.

Jetzt erscheint auch ein neuer Inhaltstyp mit dem Namen "Mapdrei", also einfach einen neuen Eintrag anlegen.
Den Google Code müsst ihr von eurem eigenen (gratis) Google-Konto (unter Google Maps) holen, wo ihr zuerst euren Anfahrtspunkt setzen und beschriften solltet.
Ist die Google Map erstellt, so kann ganz einfach durch den Klick auf "Link" (oben rechts in Google Maps) der Code kopiert werden. Nach dem Kopieren fügt ihr den Code einfach in den Artikel in Drupal ein, "Full HTML" als Eingabetyp nicht vergessen.

Es können auch mehrere Maps erzeugt werden...

Gruss

Fredi

P.S. einfach kurz anschreiben, wenn jemand interessiert ist (info1@my-webshop.ch).

‹ Image per php script erstellen und einbinden Bild vor Textausgabe ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

ALso der richtige Ort für

Eingetragen von Alexander Langer (3416)
am 28.04.2009 - 13:14 Uhr

Also der richtige Ort für neue öffentliche Module ist drupal.org ;-)

--
mortendk: everytime you use contemplate... Thor is striking down from above with his mighty hammer - crushing and killing a kitten!

webseiter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das ist noch etwas früh

Eingetragen von minou (nicht überprüft) (0)
am 28.04.2009 - 13:22 Uhr

Hallo,

danke für den Tipp mit drupal.org, das habe ich unter Umständen dann auch vor.
Da dies mein erstes Klein-Modul ist, hätte ich eben gerne etwas Feedback gehabt bevor ich es der Community vorstelle.

Schöne Grüsse

Fredi

  • Anmelden oder Registrieren um Kommentare zu schreiben

na dann lade es doch hier

Eingetragen von dawehner (2639)
am 03.05.2009 - 11:20 Uhr

na dann lade es doch hier hoch.

Als tipp im Voraus, ich glaube du solltest hier mit dem Filtersystem arbeiten, dann gibt es auch keine Probleme, vlt., mit den Tags.

Dem Benutzer FullHTML zu erlauben ist potenziell erstmal nicht gut, da du nicht mehr kontrollieren kannst was er macht.
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.de
SirFiChi ist auch dein Halbgott.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Filtersystem

Eingetragen von minou (nicht überprüft) (0)
am 04.05.2009 - 07:07 Uhr

Hallo dereine,

dein Einwand mit den Rechten ist natürlich schon zu beachten. Aber anscheinend habe ich mich in diesem Punkt unklar ausgedrückt.
Die Map ist eigentlich dafür gedacht, dass der Betreiber der Site eine Anfahrtsmap hat, also ist dies für andere User gar nicht aufrufbar, ausser die Rechte wurden vergeben.
Warum das bei mir nicht gegangen ist mit der Filteranzeige, da habe ich bis jetzt keine Erklärung dafür.
Für die Mapeinträge habe ich einen eigenen Inhaltstypen angelegt und dieser lief und läuft auch vollständig, bis auf den Umstand dass man den Filter nicht sah bzw. dieser einfach nicht zur Auswahl stand...

Bin natürlich auch noch absoluter Neuling, was die Modulerstellung angeht.

Ich stelle hier gerne den Stand der vorhandenen Dateien ein, es werden sicher noch unschöne Codierungen oder fehlender Code auffallen - würde mich nicht wundern. :-)

Gruss

Fredi

P.S. Sorry, mein english lässt mehr als zu wünschen übrig...
Und wegen dem Filter, könnte es sein dass ich die Variable "$format = -1", der Menüfunktion übergeben muss?!?
Die laufende Map findest du unter http://my-webshop.ch --> "Drupal 6.10".

Also:

Hier die mapdrei.info (sites/all/modules/custom/mapdrei/*)

; $Id$

name = MapDrei
description = eine einfache Map die mit Code der öffentlichen Google Map erstellt wird.
core = 6.x

Hier die mapdrei.module:

<?php

// $Id$


/**
* @file
* The User can create an Google Map, easy with your Example-Code in the public Map from your Google Account.
*
* This Module create an Article, copy and paste the public Code from Google Map!
*/



/**
* Implementation from hook_perm()
*/
function mapdrei_perm() {
  return array(
'create mapdrei', 'delete mapdrei', 'edit mapdrei', 'view mapdrei');
}


/**
* Implementation of hook_access().
*/
function mapdrei_access($op, $node, $account) {
  switch (
$op) {
    case
'create':
     
// Anonymous users cannot post even if they have the permission.
     
return user_access('create mapdrei', $account) && $account->uid ? TRUE : NULL;
      break;
    case
'update':
      return
user_access('edit mapdrei', $account) || (user_access('edit mapdrei', $account) && ($node->uid == $account->uid)) ? TRUE : NULL;
      break;
    case
'delete':
      return
user_access('delete mapdrei', $account) || (user_access('delete mapdrei', $account) && ($node->uid == $account->uid)) ? TRUE : NULL;
      break;
    case
'view':
      return
user_access('view mapdrei') == TRUE;
  }
}






/**
* Implementation von hook_menu()
*/
function mapdrei_menu() {
 
$items['admin/settings/mapdrei'] = array(
   
'title' => 'Map Drei',
   
'description' => 'Konfigurieren der Map drei',
   
'page_callback' => 'drupal_get_form',
   
'page_arguments' => array('mapdrei_admin_settings'),
   
'access_arguments' => array('administer site configuration'),
   
'type' => MENU_NORMAL_ITEM,
   
'file' => 'mapdrei.admin.inc'
 
);
  return
$items;
}


/**
* Implementieren von hook_node_info().
*/
function mapdrei_node_info() {
  return array(
   
'mapdrei' => array(
     
'name' => 'Mapdrei',
     
'module' => 'mapdrei',
     
'description' => t('Create a Map'),
     
'has_title' => TRUE,
     
'title_label' => t('Title'),
     
'has_body' => TRUE,
     
'body_label' => t('Body'),
     
'min_word_count' => 5,
     
'locked' => TRUE
   
)
  );
}


/**
* Implementieren von hook_form()
*/
function mapdrei_form($node) {
 
$type = node_get_types('mapdrei', $node);
 
$form['title'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Google Map Title'),
   
'#required' => TRUE,
   
'#default_value' => isset($node->title) ? $node->title : '',
   
'#weight' => -5,
   
'#maxlength' => 100
 
);
 
$form['mapdrei_filter']['body'] = array(
   
'#type' => 'textarea',
   
'#title' => t('write or paste code'),
   
'#default_value' => isset($node->body) ? $node->body : '',
   
'#rows' => 7,
   
'#required' => TRUE,
  );
// Momentan erzwinge ich die Filteranzeige mit folgender Zeile (dank Hilfe)
 
$form['mapdrei_filter']['format'] = filter_form(FILTER_FORMAT_DEFAULT);
  return
$form;
}

?>

Hier noch die mapdrei.admin.inc: (Pfad wie oben)

<?php

// $Id$


/**
* @ingroup form
* see system_settings_form()
* This can see in the Admin Section.
*/

function mapdrei_admin_settings() {
 
node_set_types('mapdrei', 'MapDrei');
 
$options = node_get_types('names');
 
$form['mapdrei_node_types'] = array(
 
'#type' => 'hidden',
   
'#title' => t(''),
   
'#default_value' => variable_get('mapdrei_node_types', array('mapdrei', 'MapDrei')), //Hier noch ev. etwas ändern...
   
);
    return
$form;
}

?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Modul

Eingetragen von stBorchert (6003)
am 04.05.2009 - 08:01 Uhr

Moin!
Ersteinmal: schön, dass Du das Modul hinbekommen hast. Mit der Umsetzung solcher Ideen lernt man als Entwickler echt viel über Drupal.
Jedoch (nur mal so nebenbei gefragt; und ohne Deine Leistung schmälern zu wollen): gibt es irgendeinen Unterschied der Handhabung des Moduls zu folgender Vorgehensweise?
- ich erstelle mir einen Inhaltstyp mit Titel, Beschreibung und MapCode
- ich erstelle mir eine neue Node des gerade erstellten Typs und trage dort den HTML-Code der google-Map ein

 Stefan

--
2 Personen mit Halbwissen sind schlimmer als Einer, der gar nichts weiss.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Modul - Unterschied Artikel und Map

Eingetragen von minou (nicht überprüft) (0)
am 04.05.2009 - 08:33 Uhr

Hallo Stefan,

ja es gibt einen Unterschied :-)
Wenn man den Code direkt in einen Artikel schreibt so kann man diesen zwar so zum laufen bringen, möchte man aber die Mapgrösse oder sonstwas bearbeiten ist der Code defekt beim 2. abspeichern Warum genau das so ist weiss ich auch (noch) nicht genau, aber darum ja dieser Versuch. Ob das ev. nur am WYSYWYG-Editor liegt oder an einer eventuellen Umwandlung von Codeteilen in Entitäten (oder beidem), habe ich nicht geprüft.
Jedenfalls sollte man grundsätzlich diesen Inhaltstypen von der Editor-Bearbeitung ausschliessen.

Ich habe mir lange überlegt ob ich die Map getrennt aufbauen soll, also den Key, Geocode und Ansichtsgrösse als Variablen in den Rest einzufügen (mit einer entsprechenden *.tpl Datei). Doch es ging mir hier um einen wirklich einfachen und kinderleichten Einbau einer solchen Map...
Ohne das Modul muss man bei jeder Bearbeitung den gesamten Code neu einkopieren mitsamt Änderungen, weil sonst wie gesagt der Code "zerstört" wird. Das kann ich wohl mir zumuten, aber ist m.E. sehr unsauber und für Dritte kein Weg.
Danke für die Kritik, ich bin wirklich um jeden Ansatz froh, denn bei solchen Fragen lerne ich ja etwas. Die Frage ist ja auch berechtigt ("ginge es nicht einfacher?"), wäre ev. auch mein erster Gedanke gewesen, wenn ein anderer sowas vorgestellt hätte.
Ich habe doch schon einiges lernen können was geht und was nicht so gut machbar ist, aber das WARUM ist oft noch eine grosse Unbekannte.

Gruss

Fredi

P.S. du hast natürlich irgendwo recht, wenn du sagst dass dies auch ohne Modul möglich wäre. Aber hier käme dann schon gestellte Frage nach der Sicherheit. Dann müsste ich ja wirklich für den Inhaltstypen Page oder Story das Full-HTML zulassen. So habe ich eine klare Trennung zwischen diesem "Admin-Artikel" und den anderen möglichen Eingaben. Zudem muss ich ja auch den Editor ausschliessen...

  • Anmelden oder Registrieren um Kommentare zu schreiben

gMao

Eingetragen von stBorchert (6003)
am 04.05.2009 - 09:14 Uhr
minou schrieb

Wenn man den Code direkt in einen Artikel schreibt so kann man diesen zwar so zum laufen bringen, möchte man aber die Mapgrösse oder sonstwas bearbeiten ist der Code defekt beim 2. abspeichern

Hm, konnte ich bei mir noch nicht feststellen. Ich kann die Parameter der Map beliebig bearbeiten und abspeichern.

minou schrieb

Jedenfalls sollte man grundsätzlich diesen Inhaltstypen von der Editor-Bearbeitung ausschliessen.

Da spricht ja nichts dagegen.

minou schrieb

Ohne das Modul muss man bei jeder Bearbeitung den gesamten Code neu einkopieren mitsamt Änderungen,

Siehe oben ...

minou schrieb

Danke für die Kritik, ich bin wirklich um jeden Ansatz froh, denn bei solchen Fragen lerne ich ja etwas.

Das war nicht als Kritik gemeint, sondern als (ernstgemeinte) Frage. Das Modul nimmt mir (so seh ich das jedenfalls) nur den Schritt der Erstellung eines neuen Inhaltstypen ab :-).

minou schrieb

Ich habe doch schon einiges lernen können was geht und was nicht so gut machbar ist, aber das WARUM ist oft noch eine grosse Unbekannte.

Und genau für solche Erfahrungen ist es m.E. wichtig, solche Module zu schreiben. Egal, ob sie nun Sinn machen, oder nicht :-).
Wichtig ist der Lerneffekt.

minou schrieb

Dann müsste ich ja wirklich für den Inhaltstypen Page oder Story das Full-HTML zulassen.

Nö, Du hast ja dafür einen speziellen Inhaltstypen, der nur für diesen Zweck erstellt wird. Page und Story haben andere Aufgaben.

hth,

 Stefan

--
2 Personen mit Halbwissen sind schlimmer als Einer, der gar nichts weiss.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Frage...

Eingetragen von minou (nicht überprüft) (0)
am 04.05.2009 - 09:54 Uhr

Hallo Stefan,

Ich möchte nochmal kurz antworten.

Zu deinen Versuchen:
arbeitest du mit fck- oder dem tinyeditor, die Probleme mit der Umschreibung des Codes bei der Bearbeitung traten vor allem damit auf (mit "page" als Inhaltstyp). Wie gesagt ob es ohne Editor geht habe ich nicht explizit getestet.

Inhaltstyp:
Das ist ja auch die angedachte Funktionalität des ganzen Modules, es soll einfach einen Inhaltstypen bereitstellen, der keine weiteren Aufwände benötigt.

Kritik:
habe mich wohl etwas kompliziert ausgedrückt, ich fand deine Frage pragmatisch. Also auch wenn ich es Kritik nannte, so meine ich das im positiven Sinne.

Page/Story:
Da stehe ich jetzt wohl auf dem Schlauch. Wie meinst du das, dass ich weder Page noch Story benötigen würde. Wenn ich kein Map-Modul installiert habe, so muss ich doch Page oder Story verwenden?
Oder habe ich dich hier falsch verstanden?

Das "Modul" soll ja auch nicht unbedingt öffentlich gemacht werden, gerade weil der Nutzen nur so klein ist. Dies war - wie du wahrscheinlich vermutest - als erster Test für mich gedacht, auch wenn das Modul "nutzlos" :-) ist.

Gruss

Fredi

  • Anmelden oder Registrieren um Kommentare zu schreiben

Inhaltstypen

Eingetragen von stBorchert (6003)
am 04.05.2009 - 09:59 Uhr
minou schrieb

arbeitest du mit fck- oder dem tinyeditor, die Probleme mit der Umschreibung des Codes bei der Bearbeitung traten vor allem damit auf (mit "page" als Inhaltstyp). Wie gesagt ob es ohne Editor geht habe ich nicht explizit getestet.

Ich habs mit beiden Editoren versucht und auch ohne. Funktioniert jedes Mal.

minou schrieb

Page/Story:
Da stehe ich jetzt wohl auf dem Schlauch. Wie meinst du das, dass ich weder Page noch Story benötigen würde. Wenn ich kein Map-Modul installiert habe, so muss ich doch Page oder Story verwenden?

Nö. Du kannst Dir doch beliebig viele eigene Inhaltstypen erstellen: admin/content/types/add. Ohne CCK ist man zwar bei den Feldern etwas limitiert, aber es funktioniert.

 Stefan

--
2 Personen mit Halbwissen sind schlimmer als Einer, der gar nichts weiss.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Inhaltstypen

Eingetragen von minou (nicht überprüft) (0)
am 04.05.2009 - 10:15 Uhr

Hallo Stefan,

da hast du natürlich recht, dass man weitere Inhaltstypen erstellen kann. Ich meinte damit eigentlich, dass es bei der Grundinstallation nur diese beiden Typen gibt und dass es Aufwand erfordert...
(bei meinen Aussagen nahm ich immer den User ohne irgendwelche Kenntnisse an.)

Das mit den Editoren kann ich mir nicht erklären, vielleicht liegt es an der Drupal Version, weil inzwischen anstatt des damals installierten 6.8 die Vers. 6.11 läuft. Ich könnte nicht mal mehr sicher sagen, ob es ev. auch nur in der 5.6er Version so war.

Wenn das nicht mehr auftritt umso besser...
Ich fand die Diskussion sehr interessant und für mich sehr informativ.

Gruss und schönen Dank für deine Zeit, die du sicher auch nicht im Überfluss übrig hast :-)

Fredi

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 1 Tag
  • Hey danke
    vor 2 Wochen 2 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 2 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 8 Stunden
  • Da scheint die Terminologie
    vor 3 Wochen 11 Stunden
  • Kannst doch auch alles direkt
    vor 3 Wochen 4 Tagen
  • In der entsprechenden View
    vor 3 Wochen 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 4 Tagen
  • gelöst
    vor 6 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20453

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 31 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association