Modul-Entwicklung
Bilder ausgeben
Eingetragen von svi (4) am 03.02.2011 - 11:46 Uhr inhallo,
ich möchte mit cck erstellte/gespeicherte bilder in einem eigenen module ausgeben. eine möglichkeit wäre, eine eigene funktion zu schreiben, die einen string als rückgabewert wie hier
<?php
/**
* @param string op one of 'list','view','save' and 'configure'
* @param integer delta to identify the block
* @param array edit only for 'save' operation
*/
function svi_module_v001_block($op = 'list', $delta = 0, $edit = array()) {
$block = array();
if ($op == 'list') {
$block[0]['info'] = t('SVI module V001');
}
else if ($op == 'view') {
$block_content = '';
$query = " SELECT n.nid, f.filepath as image, c.field_news_title_value as title, c.field_news_article_value as article ";
$query.= " FROM {node} AS n ";
$query.= " LEFT JOIN {content_type_news} AS c ON c.nid = n.nid ";
$query.= " LEFT JOIN {content_field_image_item} AS image ON image.nid = n.nid ";
$query.= " LEFT JOIN {files} AS f ON f.fid = image.field_image_item_fid ";
$query.= " WHERE n.type='%s' AND f.filename != '' ";
$query.= " GROUP BY f.filename ORDER BY n.nid DESC ";
$query_result = db_query($query, 'news');
$collectorNodeIds = array();
while ($item = db_fetch_object($query_result)) {
if (!in_array($item->nid, $collectorNodeIds)) {
$collectorNodeIds[] = $item->nid;
$block_content.= '<div class="news_dataset">';
$block_content.= '<div class="news_image">'."<img src='".$item->image."' /></div>";
$block_content.= '<div class="news_title">'.l($item->title,'node/'.$item->nid).'</div>';
$block_content.= '<div class="news_article">'.substr($item->article,0,300).' ...</div>';
$block_content.= '<div class="news_more_link">'.l('more','node/'.$item->nid).'</div>';
$block_content.= '</div>';
}
}
$block['subject'] = 'svi_module_v001';
if ($block_content == '') {
$block['content'] = 'Sorry, no content.';
}
else {
$block['content'] = $block_content;
}
}
return $block;
}
?>enthält. meine frage: was ist die beste vorgehensweise? gibt es bereits eine funktion zur bildausgabe, die ich ansprechen sollte? und wie sieht es mit der automatischen generierung von thumbnails aus? bin für jeden hinweis dankbar!
- Anmelden oder Registrieren um Kommentare zu schreiben
Bin ich zu blöd für die Hooks?
Eingetragen von Anna Bolika (26) am 31.01.2011 - 17:26 Uhr inIn ferner Zukunft habe ich einmal vor, einen speziellen Parser vor die Ausgabe eines Artikels zu setzen.
Ich habe jetzt erst mal ein Test-Modul erstellt und gefühlte 1000 Hooks ausprobiert. Nie ist etwas passiert. Hier sind meine ersten Gehversuche und meine anna.module sieht so aus:
echo "Hallo";
function anna_view($a, $b, $c, $d, $e, $f) {
AHAH form_state an JS Funktion übergeben
Eingetragen von Wehrlem (7) am 28.01.2011 - 18:37 Uhr inHallo zusammen,
wie kann ich $form_state an die js Funktion übergeben. Mein bisheriger Code funktioniert so nicht...
<?php
function mein_modul_chart_form(){
$form['segment'] = array(
'#title' => t('Segment'),
'#type' => 'fieldset',
'#description' => t('Segment of the Corporation'),
);
$form['segment_options'] = array(
'#type' => 'value',
'#value' => array(t('Telecommunications'), t('Finance'),t('Commerce'), t('Sports-Super League'), t('Pharmacie'), t('Industrie')),
);
$form['segment']['pos'] = array(
'#title' => t('Segment'),
'#type' => 'select',
'#description' => t('Choose the segment of the Corporation'),
'#options' => $form['segment_options']['#value'],
'#ahah' => array(
'event' => 'change',
'path' => 'admin/content/fbcorp/perfo/chart/chart_js',
'wrapper' => 'target',
'effect' => 'fade',
),
);
$form['target'] = array(
'#type' => 'markup',
'#prefix' => '<div id="target">',
'#value' => fbcorp_simplecharts(),
'#suffix' => '</div>',
);
return $form;
}
functionmein_modul_chart_js($form, &$form_state) {
$segment_key = $form_state['values']['pos'];
$segment = $form_state['values']['segment_options'][$segment_key];
$output = fbcorp_simplecharts( $segment);
drupal_json(array('status' => TRUE, 'data' => $output));
}
?>Kann man das überhaupt so machen? Oder gibt es andere Möglichkeiten? Vielen Dank für eure Hilfe.
- Anmelden oder Registrieren um Kommentare zu schreiben
Formularbeschreibung nach fehlgeschlagener Validierung ausblenden
Eingetragen von rubens (4) am 28.01.2011 - 14:58 Uhr inHallo,
ich habe, wie im Drupalbuch beschrieben ein einfaches Formular erstellt. Bei function formexample_page gebe ich Text aus der über dem Formular steht. Wenn das Formular nach dem absenden die Validierung nicht besteht soll der Text nicht mehr erscheinen. Leider bekomme ich dies nicht hin. Für Lösungen wäre ich sehr dankbar.
<?php
/**
* Implementation of hook_menu().
*/
function formexample_menu() {
$items['formexample'] = array(
'title' => 'Viev the form',
'page callback' => 'formexample_page',
'access arguments' => array('access content'),
);
return $items;
}
/**
* Menücallback, wird aufgerufen wenn der Benutzer http:// beispiel.de/?q=formexample aufsucht.
*/
function formexample_page() {
$output = t('Hier steht der Text der nach fehlgeschlagener Validierung nicht mehr erscheinen soll');
$output .= drupal_get_form('formexample_nameform');
return $output;
}
/**
* Definiert ein Formular.
*/
function formexample_nameform() {
$form['user_name'] = array(
'#title' => t('Your Name'),
'#type' => 'textfield',
'#description' => t('Trag dein Namen ein.'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('submit')
);
return $form;
}
/**
* Validiert das Formular.
*/
function formexamplet_nameform_validate($form, &$form_state) {
if (!$form_state['values']['user_name']) {
form_set_error('user_name', t('Du sollst deinen Namen eintragen'));
}
}
/**
* Formularübermittlung nach der Validierung durchführen.
*/
function formexample_nameform_submit($form, &$form_state) {
$name = $form_state ['values']['user_name'];
drupal_set_message(t('Danke %name',
array('%name' => $name)));
}
?>Hook_install überwachen
Eingetragen von kemijo (34) am 28.01.2011 - 10:30 Uhr inHallo
es geht schon wieder um ein bereits existierendes Modul, dass vermutlich nicht auf D7 portiert werden wird. Das liebe ich an der World Wide Open Source Community. :-)
Übergabe eine Variablen an Hook
Eingetragen von kissinger (32) am 27.01.2011 - 21:56 Uhr inHallo!
Ich beschäftige mich noch nicht allzu lange mit Drupal7, daher ist das mit den Hooks noch nicht so klar.
Meine Frage: Ich möchte ein Argument aus der URL auslesen, mein Aufruf: example.com/member/frosch
Im Menü-Hook kann ich das Argument weitergeben an die Funktion "member_anzeige".
function member_menu(){
$items['member/%'] = array(
Fehler bei Simpletest
Eingetragen von kissinger (32) am 26.01.2011 - 11:07 Uhr inHallo!
Ich habe das Modul Testing aktiviert. Wenn ich nun einen Test ausführen möchte (egal welchen) kommt folgende Fehlermeldung.
Woran liegt das?
Danke!
Frage zu Form API
Eingetragen von kissinger (32) am 25.01.2011 - 17:02 Uhr inHallo!
Eine Frage zur neuen Form API in D7.
Ich habe über das Admin UI den Usern neue Felder hinzugefügt (Vorname, Name).
Diese werden dann auch bei der Registrierung usw. angezeigt.
Wie nun kann ich von einem beliebigen Modul aus auf diese Felder zugreifen, also diese neu erstellten Felder für einen bestimmten User auslesen und ggf. ändern?
Danke!
Modul für Drupal 7 portieren
Eingetragen von kemijo (34) am 25.01.2011 - 10:48 Uhr inHallo
ich nutze ein Modul unter 6.x, dass ich gerne unter Version 7 zum laufen bringen möchte. In diesem Modul werden die aktuellen Image presets abgerufen mit der Funktion imagecache_presets(). Bis jetzt habe ich in 7 keine entsprechenden Ersatz für diese Funktion gefunden. Gibt es da eine entsprechende Funktion?
Frage zu hookmenu
Eingetragen von kissinger (32) am 23.01.2011 - 23:36 Uhr inHallo!
Ich möchte die Daten im Pfad einer URL direkt nach der Domain weiterverarbeiten.
Wenn ich in hook_menu das so mache: $items['xyz/%'] = array( ... dann funktioniert das (z.B. example.de/xyz/123).
Ich erhalte den Wert 123 und kann damit arbeiten, ich möchte aber auf das Pfad-Element xyz verzichten.

Neue Kommentare
vor 3 Wochen 5 Tagen
vor 3 Wochen 5 Tagen
vor 3 Wochen 5 Tagen
vor 3 Wochen 5 Tagen
vor 3 Wochen 5 Tagen
vor 3 Wochen 6 Tagen
vor 3 Wochen 6 Tagen
vor 4 Wochen 15 Stunden
vor 4 Wochen 1 Tag
vor 4 Wochen 3 Tagen