Modul-Entwicklung
Userdaten auslesen...
Eingetragen von Tiega (8) am 14.12.2010 - 15:29 Uhr inHey Leute,
ich hatte mal erwähnt das ich die Drupal Userdatenbank mit einer Externen Datenbank synchronisieren möchte. Hab mich daraufhin etwas mit Hooks beschäftigt.
Bis jetzt bin ich aber nicht weit gekommen.... da ich nicht weiß wie ich an die Daten komme die übergeben werden sollen....
Google spuckt mir nur zb. "$user->name" aus, ich such wahrscheinlich nach dem falschen^^
<?php
// $Id $
/**
*@file
*Synchronisiert die Userdaten der Drupal Datenbank mit der Datenbank
*/
function datenbank_Sync() {
include("db_connect.php");
$timestamp = time();
$datum = date("Y-m-d",$timestamp);
$sql = "INSERT INTO user (username, password, firstname, lastmane, email, ) VALUES ('$user->name', '$user->passwort')";
}
/**
* Implementierung von hook_user().
*/
function Sync_user($op, &$edit, &$account, $category = NULL) {
if($op == 'register') {
datenbank_Sync();
}
}
?>Viele Grüße
DB_SELECT Frage D7
Eingetragen von Lennard (39) am 13.12.2010 - 11:25 Uhr inBräuchte mal drinngen einen Rat. Beim Portieren meines D6 Modul zu D7.
Hatte eine Tabelle mit Pager und Filter gehabt. die vorher so ausschaute !
$sql = "SELECT vid, uid, send FROM {table} ";
$tablesort = tablesort_sql($header);
if (!empty($filter['where'])) {
von Modul erzeugter Block lässt sich nicht verschieben
Eingetragen von Meister Lampe (36) am 11.12.2010 - 16:49 Uhr inHallo,
ein Komilitone und ich entwickeln derzeit ein eigenes Modul welches ein css dropdown-menu erzeugt. Das Modul als solches arbeitet einwandfrei, allerdings sind wir nun dabei zu dem Modul einen Block zu erstellen, welcher dann frei einer jeweiligen Region zuweisbar sein soll. Der Block an sich ist da.
Nun zu unserem Problem:
wenn ich dem Block eine Region zuweise und auf speichern klicke bekomme ich eine Meldung das alles gespeichert wurde, wenn ich dann allerdings in der Liste schaue hat sich nichts verändert und der Block ist immernoch deaktiviert.
Ich poste hier mal den Code, vielleicht kann ja jemand etwas damit anfagen:
<?php
/*function SimpleTabs_init()
{
global $user;
drupal_set_message(nl2br(print_r($user,1)));
}*/
/**
* implementation of hook_perm
*/
function css_dropdown_perm()
{
return array('view SimpleTabs');
}
/**
* implementation of hook_menu
*/
function css_dropdown_menu()
{
$items = array();
$items['admin/settings/css_dropdown'] = array(
'title' => 'css_dropdown',
'description' => 'Admin Sample Page',
'page callback' => 'css_dropdown_admin',
'weight' => -50,
'access arguments' => array('view css_dropdown'),
//'type' => MENU_CALLBACK,
);
$items['css_dropdown'] = array(
'title' => 'css_dropdown',
'description' => 'mache css_dropdown',
'page callback' => 'css_dropdown',
'access arguments' => array('view css_dropdown')
);
return $items;
}
function css_dropdown_admin()
{
return '<hr>admin simple tabs<hr>';
}
function css_dropdown($mlid = 0)
{
drupal_add_css('sites/all/includes/dropdown.css');
$page_content = '<div id="menu1">';
$page_content .= css_dropdown_menues();
return $page_content.'</div>';
}
function css_dropdown_menues($mlid = 0)
{
$page_content = '<ul>';
$result = db_query("SELECT *FROM {menu_links} WHERE `menu_name` = 'navigation' AND `plid` = %d AND `hidden` = 0 ORDER BY weight ASC;",$mlid);
while($link = db_fetch_array($result)) {
$page_content .= '<li><a href="#">'.$link['link_title'].'</a>';
if($link['has_children']) $page_content .= css_dropdown_menues($link['mlid']);
$page_content .= '</li>';
}
return $page_content.'</ul>';
}
function css_dropdown_block($op = 'list', $delta = '', $edit = array()) {
// The $op parameter determines what piece of information is being requested.
switch ($op) {
case 'list':
// If $op is "list", we just need to return a list of block descriptions.
// This is used to provide a list of possible blocks to the administrator;
// end users will not see these descriptions.
$blocks['configurable-text'] = array(
'info' => t('Example: configurable text string'),
'visibility' => '1',
);
// A block can provide default settings. In this case we'll enable the
// block and make it visible only on the 'node/*' pages.
$blocks['empty'] = array(
'info' => t('Example: empty block'),
'status' => TRUE,
'weight' => 0,
'visibility' => 1,
'pages' => 'node/*',
);
return $blocks;
case 'configure':
// If $op is "configure", we need to provide the administrator with a
// configuration form. The $delta parameter tells us which block is being
// configured. In this example, we'll allow the administrator to customize
// the text of the first block.
$form = array();
if ($delta == 'configurable-text') {
// All we need to provide is a text field, Drupal will take care of
// the other block configuration options and the save button.
$form['block_example_string'] = array(
'#type' => 'textfield',
'#title' => t('Block contents'),
'#size' => 60,
'#description' => t('This string will appear in the example block.'),
'#default_value' => variable_get('block_example_string', t('Some example content.')),
);
}
return $form;
case 'save':
// If $op is "save", we need to save settings from the configuration form.
// Since the first block is the only one that allows configuration, we
// need to check $delta to make sure we only save it.
if ($delta == 'configurable-text') {
// Have Drupal save the string to the database.
variable_set('block_example_string', $edit['block_example_string']);
}
#return; // Das muss raus gem. hook_blook API Beschreibung
case 'view':
// If $op is "view", then we need to generate the block for display
// purposes. The $delta parameter tells us which block is being requested.
switch ($delta) {
case 'configurable-text':
// The subject is displayed at the top of the block. Note that it
// should be passed through t() for translation.
$block['subject'] = t('Title of configurable-text block');
// The content of the block is typically generated by calling a custom
// function.
$block['content'] = block_example_contents(1);
break;
case 'empty':
$block['subject'] = t('Title of block #2');
$block['content'] = block_example_contents(2);
break;
}
return $block;
}
}
function block_example_contents($which_block) {
switch ($which_block) {
case 1:
// Modules would typically perform some database queries to fetch the
// content for their blocks. Here, we'll just use the variable set in the
// block configuration or, if none has set, a default value.
return variable_get('block_example_string', t('A default value.'));
case 2:
// It is possible that your block will not have any content, since it is
// probably dynamically constructed. In this case, Drupal will not display
// the block at all.
return;
}
}
?>Weiß jemand woran es liegen könnte das der Block sich nicht in eine Region verschieben lässt?
LG Meister Lamp
Eigenes Node-Feld
Eingetragen von sagredo (50) am 10.12.2010 - 03:21 Uhr inHi,
für ein Modul brauche ich bei einem bestimmten Content-Type ein Zusatzfeld. Ich füge per hook_form in der
http://api.drupal.org/api/drupal/developer--hooks--node.php/function/hoo...
hier gezeigten Weise z.b. ein Textfeld ein, also z.B.
$form['field1'] = array(
'#type' => 'textfield',
'#title' => t('Custom field'),
'#default_value' => $node->field1,
Gibt es best practices um strukturierte Module zu schreiben?
Eingetragen von Ghommey (3) am 09.12.2010 - 18:57 Uhr inHallo,
ich soll in naher Zukunft umfangreiche Module für eine Drupal-basierende Intranet Seite programmieren.
Bis jetzt wurde dafür ein proprietäres CMS verwendet.
Insgesamt bin ich sehr begeistert von Drupal.
Bei der Programmierung von Modulen kommt es mir ein wenig unsauber vor.
Ich habe davor mit Frameworks wie Zend gearbeitet, die eine sehr klare
Struktur erzwingen.
[erledigt] Manche eigene Module erscheinen nicht in Modul-Liste, andere schon.
Eingetragen von GodsBoss (3) am 09.12.2010 - 12:49 Uhr inIch weiß nicht, was es ist, aber es ist definitiv kein Drupal-Problem.
[Gelöst] db_query(); funktioniert nicht richtig unter hook_form_submit();
Eingetragen von Peter Majmesku (656) am 08.12.2010 - 02:16 Uhr inHi,
zunächst musste ich feststellen, dass hook_form_submit(); erst dann funktioniert, wenn ich unter hook_form_alter(); eine submit-Funktion definiere: $form['#submit'][] = 'alter_product_submit'; (= habe ich hier herausgefunden: http://drupal.org/node/399328).
Suche
Eingetragen von benny1979 (119) am 24.11.2010 - 17:34 Uhr inHallo,
kennt jemand die interne Funktionsweise der Suche? Ich kann nicht nachvollziehen, warum in der Tabelle "search_index" die einzelnen Wörter einer "sid" zugewiesen werden, diese "sid" in "search_node_links" dann aber mehreren Nodes (nid) gleichzeitig zugewiesen werden kann. Ich habe mal stichprobenartig einige dieser Nodes geöffnet und konnte die Suchwörter nur teilweise finden.
- Anmelden oder Registrieren um Kommentare zu schreiben
- Weiterlesen
i18n Taxonomy: Wo sind die strings gespeichert?
Eingetragen von no2x (98) am 19.11.2010 - 01:18 Uhr inMoin,
ich verwende in einem Projekt das i18n Taxonomy Translation Modul. Die Taxonomy Begriffe werden für jede Sprache übersetzt (Option "Begriffe lokalisieren. Begriffe sind für alle Sprachen gleich, aber ihr Name und die Beschreibung können lokalisiert werden").

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 17 Stunden
vor 4 Wochen 1 Tag
vor 4 Wochen 3 Tagen