Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

[gelöst] Bild in Drupal Form einfügen (Form Api)

Eingetragen von 1000 (764)
am 23.02.2015 - 00:33 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x

Normallerweise kann man ein Bild einfach per

<IMG SRC="image.png" ALT="Alt Text" WIDTH=42 HEIGHT=62>

einfügen. Aber wie füge ich das Bild im Drupal Code ein?

  $form['markup-link'] = array(
        '#markup' => l(t('Reisen'), 'http://www.xxxx.de/vergleichsrechner3'),

Diese Funktion dient der automatischen Übersetzungsmöglichkeit. Nur wie kann ich direkt über den Link ein Bild anzeigen?

‹ View anzeigen, so lange Enddatum nicht erreicht [gelöst] Bild in Drupal Form einfügen (Form Api) ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn ein img-Tag über die

Eingetragen von wla (9461)
am 23.02.2015 - 12:26 Uhr

Wenn ein img-Tag über die l-funktion eingebaut werden soll, mußt man das Attribut "html" => true setzen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Leider verstehe ich diese

Eingetragen von 1000 (764)
am 24.02.2015 - 00:48 Uhr

Leider verstehe ich diese Ausführung nicht. Wie genau sieht der Code dann aus bzw. wo genau soll ich das einfügen?

etwa

$form['markup-link'] = array(
        'html' => true l(t('Reisen'), 'http://www.xxxx.de/vergleichsrechner3'),

  • Anmelden oder Registrieren um Kommentare zu schreiben

Bild

Eingetragen von stBorchert (6003)
am 24.02.2015 - 07:46 Uhr

Moin.
Was genau möchtest Du denn machen? Einen verlinktes Bild ausgeben?
In diesem Fall ersetzt Du den ersten Parameter der [api:l:7]-Funktion mit einem entsprechenden Aufruf zu [api:theme_image:7] und setzt in den Optionen den Wert für "html" auf TRUE:

<?php
$image
= theme('image', array(
 
'path' => drupal_get_path('theme', 'meintheme') . '/images/image.png',
 
'alt' => t('my fancy image'),
));
$form['markup-link'] = l($image, 'http://www.example.com', array('html' => TRUE));
?>

Bitte lies Dir auch die entsprechenden API-Seiten zu den Funktionen durch und schau Dir auch mal die Forms API Referenz an.

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich glaube das ist schon so

Eingetragen von 1000 (764)
am 25.02.2015 - 02:22 Uhr

Ich glaube das ist schon so in etwa was ich suche. Allerdings genau genommen möchte ich ein verlinktes Bild überhalb eines Textlinks anzeigen. Also im Prizip beides. Link und Bild übereinander.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Der Designer pass jetzt

Eingetragen von 1000 (764)
am 25.02.2015 - 21:06 Uhr

Der Designer pass jetzt einfach das Bild an, so dass es aussieht als sei ein Link unterhalb des Bildes platziert. Dann sollte es klappen. Vielen Dank!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ihr redet da über die Form

Eingetragen von landvogt512 (89)
am 26.02.2015 - 09:43 Uhr

Ihr redet da über die Form API.. willst du ein Formular machen, oder das Bild in einem Node anzeigen?
In der Node machst du die Änderungen in der node--*******.tpl.php - und der Code sieht da anders aus.

LG, Marc

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das Bild soll mittles Form

Eingetragen von 1000 (764)
am 26.02.2015 - 16:56 Uhr

Das Bild soll mittles Form Api eingebunden werden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe den Code jetzt

Eingetragen von 1000 (764)
am 26.02.2015 - 19:04 Uhr
Zitat:

<?php

$image
= theme('image', array(
 
'path' => drupal_get_path('theme', 'meintheme') . '/images/image.png',
 
'alt' => t('my fancy image'),
));
$form['markup-link'] = l($image, 'http://www.example.com', array('html' => TRUE));
?>

Ich habe den Code ausprobiert. Leider funktioniert der Code so nicht. Es erscheinen nur Fehlermeldungen. "Fatal error"

Fatal error: Unsupported operand types in /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/includes/form.inc on line 1808 Call Stack: 0.0001 654984 1. {main}() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/index.php:0 0.1468 8714024 2. menu_execute_active_handler() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/index.php:25 0.2014 12864176 3. drupal_deliver_page() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/includes/menu.inc:532 0.2014 12864792 4. drupal_deliver_html_page() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/includes/common.inc:2589 0.2014 12866208 5. drupal_render_page() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/includes/common.inc:2701 0.2023 13130168 6. block_page_build() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/includes/common.inc:5784 0.2665 25682600 7. block_get_blocks_by_region() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/modules/block/block.module:268 0.2665 25682912 8. block_list() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/modules/block/block.module:318 0.2665 25682912 9. _block_render_blocks() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/modules/block/block.module:686 0.2665 25684808 10. module_invoke() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/modules/block/block.module:902 0.2665 25685632 11. call_user_func_array:{/var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/includes/module.inc:866}() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/includes/module.inc:866 0.2665 25686120 12. custom_xxxxxxxxxxxxxxxx_block_view() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/includes/module.inc:866 0.2665 25686840 13. drupal_get_form() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/sites/all/modules/custom_xxxxxxxxxxxxxxxx/custom_xxxxxxxxxxxxxxxx.module:725 0.2665 25688040 14. drupal_build_form() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/includes/form.inc:130 0.2697 25721160 15. drupal_process_form() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/includes/form.inc:385 0.2697 25725008 16. form_builder() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/includes/form.inc:885 0.2706 25757192 17. form_builder() /var/www/vhosts/xxxxxxxxxxxxxxxx.de/httpdocs/includes/form.inc:1906

Außerdem habe ich festgestellt, dass es keinen Image Type in der Form Api gibt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Und wo hast du diesen code

Eingetragen von maen (547)
am 27.02.2015 - 07:36 Uhr

Und wo hast du diesen code eingefügt?

  • Anmelden oder Registrieren um Kommentare zu schreiben

FormsAPI

Eingetragen von stBorchert (6003)
am 27.02.2015 - 10:20 Uhr

Moin.
Mein Beispiel war auch nur als Start für den korrekten Code gedacht. Ich ging eigentlich davon aus, dass Du Dir zumindest mal die Forms API (speziell #markup) anschaust :(

Du musst das form-item natürlich auch richtig aufbauen, damit das funktioniert.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das habe ich mir angeschaut.

Eingetragen von 1000 (764)
am 27.02.2015 - 17:37 Uhr

Das habe ich mir angeschaut. Leider werde ich daraus weder schlau noch kann ich mir einen fehlerfreien Code daraus zusammenbasteln. Versucht habe ich es schon. Außerdem glaube ich dass die Verlinkung zu "Markup" nicht zur gewünschten Position führt. Weiter unten ist ein Abschnitt mit dem Titel #Markup. Das dort beschriebene gibt schon eher Sinn. Ich werde noch einmal ein wenig in der Grütze rühren :-) Vielen Dank!

$image = theme('image', array(
  'path' => drupal_get_path('theme', 'xxxxxx') . '/images/pic.png',
  'alt' => t('Tanzmaus'),
));
$form['markup-link'] = array(
    '#type' => 'item',
'#html' => TRUE,
    '#markup' => check_plain($image));

So wird das img Tag schon mal als Text ausgegeben. Aber html klappt irgendwie nicht.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe mal was ähnliches gemacht

Eingetragen von maen (547)
am 27.02.2015 - 17:38 Uhr

in Kombi was Stefan schrieb hilft Dir das vielleicht:
http://leaner-drupal.tumblr.com/post/112230858936/programmatically-add-i...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Da programmiere ich lieber

Eingetragen von 1000 (764)
am 27.02.2015 - 18:23 Uhr

Ich kriege es einfach nicht hin. Noch eine Idee wie es tatsächlich aussehnen kann?

  • Anmelden oder Registrieren um Kommentare zu schreiben

1000 schrieb Ich kriege es

Eingetragen von SteffenR@drupal.org (2262)
am 28.02.2015 - 20:51 Uhr
1000 schrieb

Ich kriege es einfach nicht hin. Noch eine Idee wie es tatsächlich aussehnen kann?

Gibt es denn einen Grund, wieso du dein Bild per check_plain ausgeben lassen möchtest?
Dies sorgt nur dafür, dass dir dein Markup direkt mit gefiltert wird - sprich erzeugt den Output, den du gerade erhälst.

Wenn du das check_plain entfernst, wird dir auch das Bild korrekt ausgegeben.

Außerdem ist '#html' => TRUE an dieser Stelle falsch / nicht nötig - dieses Attribut wird auch vom type item nicht unterstützt.
https://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7#item

SteffenR

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich dachte es wäre eine

Eingetragen von 1000 (764)
am 01.03.2015 - 03:05 Uhr

Ich dachte es wäre eine Sicherheitsfunktion von Drupal, um einen Schutz vor Hackern zu ermöglichen. Tatsächlich funktioniert es so. Das Bild lässt sich nun an der gewünschten Position anzeigen.

Leider ist das Bild noch nicht exakt in der richtigen Position. Gibt es eine Möglichkeit dort css Befehle zu verwenden? Ich habe es so einmal versucht. Leider tut sich da gar nichts. Das Bild bewegt sich keinen Millimeter vom Fleck! Wie in Stein gemeißelt!

$image = theme('image', array(
  'path' => drupal_get_path('theme', 'xxxxxxxx') . '/images/pig.png',
  'alt' => t('Tanzmaus'),
));
$form['#attached']['css'] = array(
  drupal_get_path('theme', 'meintheme') . '/css/custom.css',
);
$form['markup-link'] = array(
    '#type' => 'item',
  '#attributes' => array('class' => array(t('pig_bu'))),
    '#markup' => $image);

.pig_bu{margin:20px !important; }

  • Anmelden oder Registrieren um Kommentare zu schreiben

Auch hier die Frage - wieso

Eingetragen von SteffenR@drupal.org (2262)
am 01.03.2015 - 08:47 Uhr

Auch hier die Frage - wieso setzt du die Klasse in eine t-Funktion?
Die t Funktion wird in Drupal nur verwendet, wenn du den darin enthaltenen String übersetzbar machen möchtest. Dies sollte bei CSS Klassen nicht der Fall sein.

Prüf doch bitte mal in den Chrome Developer Tools oder in Firefox, ob dein CSS überhaupt eingebunden wird und der Pfad hier auch korrekt ist.
Wenn dies der Fall ist, kannst du dann schauen wo es hier hängt.

SteffenR

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Css-Datei wird nicht

Eingetragen von 1000 (764)
am 01.03.2015 - 15:11 Uhr

Hab es jetzt anders gemacht und es hat geklappt. Vielen Dank noch einmal für eure Hilfe!

So klappt es:

$image = theme('image', array(
  'path' => drupal_get_path('theme', 'xxxxxxxxxx') . '/images/pig.jpg',
  'alt' => t('Tanzmaus'),
));
$form['#attached']['css'] = array(
  drupal_get_path('theme', 'xxxxxxxxxx') . '/css/custom.css',
);
$form['markup-link'] = array(
    '#type' => 'item',
      '#markup' => '<span class="pig_bu"><a href="http://www.xxxxxxxxxx.de/vergleichsrechner3">'.$image.'</a></span>');

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie schaut denn deine Form

Eingetragen von SteffenR@drupal.org (2262)
am 01.03.2015 - 14:58 Uhr

Wie schaut denn deine Form aus bzw. dein #attached Teil im Form Array?

Wenn du dich an die Doku hälst, funktioniert das Ganze wie folgt:

Einbindung von CSS aus Modul

$form['#attached']['css'] = array(
    drupal_get_path('module', 'my_module') . '/css/my_module.css',
  );

Einbindung von CSS aus Theme

$form['#attached']['css'] = array(
    drupal_get_path('theme', 'my_theme') . '/css/my_theme.css',
  );

SteffenR

  • Anmelden oder Registrieren um Kommentare zu schreiben

Deine Antwort war schneller.

Eingetragen von 1000 (764)
am 01.03.2015 - 15:15 Uhr

Deine Antwort war schneller. Ich hab schon eine Lösung gefunden und im letzen Post eingefügt. Viele Dank noch einmal!

  • 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 3 Tagen
  • Hey danke
    vor 2 Wochen 4 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 4 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 2 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 2 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 6 Tagen
  • In der entsprechenden View
    vor 3 Wochen 6 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 6 Tagen
  • gelöst
    vor 6 Wochen 3 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20456

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 16 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