Modul-Entwicklung
[gelöst]Fehlemeldung Deprecated function
Eingetragen von th3o2211 (87) am 20.09.2012 - 09:07 Uhr inHallo Drupalfreunde,
ich bekomme diese Fehlermeldung :
<?php
Deprecated function: Call-time pass-by-reference has been deprecated in drupal_load() (Zeile 1128 von C:\xampp\htdocs\USERNAME\drupal\includes\bootstrap.inc).
?>wenn ich eine Funktion mit 2 Parametern aufrufe. Die Stelle sieht so aus:
<?php
function mein_modul_compare_submit ($form, &$form_state) {
$datum1 = $form_state['values']['datum1'];
$datum2 = $form_state['values']['datum2'];
//dpm($form_state['triggering_element']['#executes_submit_callback']);
if($form_state['triggering_element']['#executes_submit_callback'] == TRUE or $form_state['triggering_element']['#executes_submit_callback'] == 1) {
$output_weather_compare = mm_weather_show_compare($datum1, &$datum2);
echo $output_weather_compare;
}
}
?>Die Funktion die ich aufrufe ist natürlich vorhanden und ich hab auch dort die Parameter drin. Ich habe dieses Konstruk nochmal in meinem
Modul verwand, da bekomme ich aber diese Fehlermeldung nicht. Ich würde mich über eueren Rat freuen
[gelöst]Erster Wert von Auswahlfeldern in Formular
Eingetragen von raffi (21) am 20.09.2012 - 07:53 Uhr inHallo,
ich habe ein Problem mit einem checkbox-Element in meinem Formular. Die Auswahl von mehreren Werten klappt soweit, allerdings bereitet mir der erste Wert gehörige Probleme. Er wird weder in die Datenbank übernommen (bzw. immer übernommen), noch bleibt er gecheckt, falls ein Fehler im Formular auftritt. Alle anderen Werte zeigen die korrekte Funktionalität. Meine bisherigen Versuche sehen folgendermaßen aus:
<?php
...
# Wert wird immer in die DB geschrieben, egal ob gewählt oder nicht
if ($form_state['values']['moduletype'][0] == 0) {
$node->field_modultyp[0]['value'] = $form['moduletype_options']['#value'][0];
}
...
?><?php
# Wert wird nie in die DB übernommen
if ($form_state['values']['moduletype'][0] != null) {
$node->field_modultyp[0]['value'] = $form['moduletype_options']['#value'][0];
}
?>Die zugehörige Formularerstellung:
<?php
$form['moduletype_options'] = array(
'#type' => 'value',
'#value' => array(
'Recommendation',
'Newsletter',
'Pricing',
'Assortment Planning',
'Data Cleansing',
'Scoring',
),
);
$form['instance']['moduletype'] = array(
'#title' => 'Modultyp',
'#type' => 'checkboxes',
'#description' => 'Modultyp(en)',
'#options' => $form['moduletype_options']['#value'],
);
?>Danke und viele Grüße
Wenn User ihre Profile verändern -> hook_user_presave?
Eingetragen von xip (65) am 18.09.2012 - 13:18 Uhr inHallo,
ich habe ein Locationfield bei mir in den Userdatas und dies möchte ich gerne befüllen. Also wenn ein User sei Profil ändert möchte ich vor dem Speichern noch kurz eine Adresse eintragen die dann im Field gespeichert wird.
Welchen Hook brauche ich dafür? Und worauf muss ich achten?
Dank euch.
[gelöst] Modul addressfield mit eigenen Ländern belegen
Eingetragen von xip (65) am 15.09.2012 - 13:14 Uhr inHallo ihr,
ich nutze addressfield um Adressen zum Contents abzuspeichern. Aber ich möchte nicht das die User sowas selber eintippen, sondern lasse das Ganze durch ein GeoField ausfüllen.
Also ich lese die Position aus dem GeoField und machen ein reverse Geocoding über Goolge:
<?php
function xip_geolocate($location) {
$data = array ( 'Strasse' => NULL,
'plz' => NULL,
'Land' => NULL,
'Stadt' => NULL );
$json = drupal_http_request("http://maps.googleapis.com/maps/api/geocode/json?latlng=$location&sensor=true");
$response = drupal_json_decode($json->data);
switch ($response['status']) {
case 'OK':
foreach($response['results'] as $results)
{
if (isset($results['address_components'][0]['types'][0]))
{
if(strcmp($results['address_components'][0]['types'][0],"postal_code")==0 && !isset($data['plz']))
{
$data['plz'] = $results['address_components'][0]['long_name'];
}
if(strcmp($results['address_components'][0]['types'][0],"route")==0 && !isset($data['Strasse']))
{
$data['Strasse'] = $results['address_components'][0]['long_name'];
}
if(strcmp($results['address_components'][0]['types'][0],"country")==0 && !isset($data['Land']))
{
$data['Land'] = $results['address_components'][0]['long_name'];
}
if(strcmp($results['address_components'][0]['types'][0],"locality")==0 && !isset($data['Stadt']))
{
$data['Stadt'] = $results['address_components'][0]['long_name'];
}
}
}
break;
case 'ZERO_RESULTS':
break;
case 'OVER_QUERY_LIMIT':
watchdog('geolocate', t('OVER QUERY LIMIT'), array(), WATCHDOG_ALERT);
break;
}
if(!isset($data['Stadt']))
$data['Stadt']=' ';
if(!isset($data['Land']))
$data['Land']=' ';
if(!isset($data['plz']))
$data['plz']=' ';
if(!isset($data['Strasse']))
$data['Strasse']=' ';
return($data);
}
?>das klappt auch alles super!!!
Nur, wenn ich danach die Daten überschreibe von dem adressfield klappt das mit dem Land nicht.
Google gibt mir z.B. Germany und das Ding will De. Naja. Ich hab jetzt kein Bock für alle Länder die Abkürzungen rauszusuchen und das auch immer zu pflegen.
Es gibt da im Modul die Funktion _addressfield_country_options_list . Damit könnte man das irgendwie im Modul ändern. Habt ihr sowas schon mal gemacht?
Habt ihr da eine Idee??
Vielen Dank
Distribution eines Modules mit eigenem jquery plugin?
Eingetragen von doca (16) am 14.09.2012 - 12:58 Uhr inHallo liebe Drupalgemeinde,
ich habe ein Problem, an dem ich nun schon seit 5 Stunden sitze und nicht wirklich weiter komme.
Ich habe ein Modul entwickelt, das im Modulverzeichnis ein jquery,plugin laden soll. Wenn ich mit drupal_add_js() die Datei einbinde, wird die Datei tatsächlich geladen, allerdings erscheint ein
[gelöst] jQuery: Abfrage einer Checkbox in der Node-Form
Eingetragen von tfranz (125) am 13.09.2012 - 16:35 Uhr inHallo,
ich habe eine – hoffentlich – kleine Frage in Verbindung mit jQuery:
Ich möchte den Status einer Checkbox in der Node-Add-Form abfragen und habe dazu ein kleines Modul geschrieben (siehe Anhang).
Die Checkbox sieht im Markup wie folgt aus:
<div class="form-item form-type-checkbox form-item-field-calculate-und">
<input type="checkbox" class="form-checkbox" value="1" name="field_calculate[und]" id="edit-field-calculate-und">
<label for="edit-field-calculate-und" class="option">Calculate </label></div>Das Modul:
<?php
function java_form_alter(&$form, $form_state, $form_id){
if($form_id == 'article_node_form'){
$form['field_calculate']['#after_build'] = array('_load_my_javascript');
}
}
function _load_my_javascript($element){
drupal_add_js( drupal_get_path('module', 'java') . '/java.js');
return($element);
}
?>Die Javascript-Funktion, welche ich lade:
(function ($) {
alert("START");
$('#edit-field-calculate-und:checkbox').change(function() {
alert("KLICK");
});
})(jQuery);Nach dem Aufrufen einer Node-Form über /node/add/article erscheint zuerst die jQuery-Alertbox "START": das Script wird also geladen.
Nur bekomme ich keine Rückmeldung, sobald ich auf die Checkbox klicke ... was ich aber gerne hätte ...
Wo liegt mein Denkfehler?
Danke für jeden Hinweis,
Tobias
Eigene Felder mit der Schema API definieren
Eingetragen von xrammit (1) am 12.09.2012 - 16:46 Uhr inHallo zusammen,
ich bin dabei ein Modul zu entwickeln, das einen eigenen node type definiert. Diesem node type füge ich anschließend einige (von Drupal oder anderen Modulen schon bereitgestellten) Felder hinzu.
Außerdem möchte ich ihm aber auch noch zwei selbst definierte Felder hinzufügen.
In einem Hook im eigenen Modul, wie kann ich ein array verändern?
Eingetragen von xip (65) am 12.09.2012 - 12:23 Uhr inHallo Ihr,
bin gerade dabei ein Modul zum Forum zu programmieren. Möchte dazu einige Parameter die bereits in der Variable $node gespeichert sind verändern.
Jetzt die Frage wie??? Kann ich einfach die Werte überschreiben und dann werden diese automatisch so in die Datenbank übernommen??
Oder muss ich die einzelen Variablen abfangen und eigene SQL Statements daraus bauen um die Datenbank zu ändern?
Hab ein Modul und will dadrin wenn ein neuer Beitrag im Forum gepostet wird einige Werte verändern.
Also:
<?php
function testkanickel_node_insert($node)
{
$node->title = "Testueberschrift";
debug($node);
}
?>im Debug scheints ja zu klappen, nur in der Datenbank taucht es so nicht auf.
stdClass::__set_state(array(
'uid' => '1',
'name' => 'admin',
'type' => 'forum',
'language' => 'und',
'title' => 'Testueberschrift',
'status' => 1,
'promote' => 0,
..
..
..
Könnt ihr mir da weiterhelfen?
Gruß
-Patrick
Selectbox in drupal schreiben
Eingetragen von th3o2211 (87) am 12.09.2012 - 07:45 Uhr inHallo Drupalfreunde,
danke erstmal, dass ihr euch diesen Beitrag anschaut :-) . Ich schreibe momentan zur übung ein kleines Modul und bin auch soweit mit dem gröbsten fertig. Das Problem was ich jetzt habe
ist, dass ich eine datums selectbox machen möchte.
Ich habe es so versucht:
<?php
function user_interface_output() {
$output = '<html>';
$output .= '<body>';
$output .= '<form action="#" method="post">';
$output .= 'Datum:';
$output .= '<select name="tag" style="border: thin solid #777777">
<option>*</option>';
for ($i = 1; $i <= 9; $i++) {
if(@$_POST['tag'] == "0".$i){ $selected = "selected='yes'"; } else { $selected="";}
$output .= "<option $selected>0$i</option>";
$output .= "<option>0".$i."</option>";
}
for ($i = 10; $i <= 31; $i++) {
if(@$_POST['tag'] == $i){ $selected = "selected='yes'"; } else { $selected="";}
$output .= "<option $selected>$i</option>";
}
return $output;
}
function user_interface_user() {
$input =user_interface_output();
echo $input;
?>Die checkbox mit den einzelnen Tagen kommt auch zum vorschein doch leider "zerreißt" er mir die Seite, sie wird weiß und das template wird nicht mehr richtig angezeigt.
Gibt es vllt eine andere Möglichkeit wie ich dieses Problem löse?
Vielen dank für eure Antwort :-)
Proximity: Location: Startpunkt von GeoField aus Profil.
Eingetragen von xip (65) am 11.09.2012 - 16:23 Uhr inHallo,
ich möchte gerne für die Umkreissuche von Proximity den Startpunkt, den der User normalerweise selber eingeben muss, aus dem Userprofil holen.
Dieser ist dort als GeoField hinterlegt. Nutze für die Profile das Modul Profile2.
- Anmelden oder Registrieren um Kommentare zu schreiben
- Weiterlesen

Neue Kommentare
vor 1 Tag 18 Stunden
vor 1 Woche 5 Tagen
vor 1 Woche 6 Tagen
vor 9 Wochen 3 Tagen
vor 9 Wochen 4 Tagen
vor 9 Wochen 4 Tagen
vor 10 Wochen 2 Tagen
vor 10 Wochen 2 Tagen
vor 10 Wochen 6 Tagen
vor 10 Wochen 6 Tagen