Itt van egy elvileg működő
Itt van egy elvileg működő kód.
<?php echo "Az alapüzenet szövege\n\n"; // Ide írd be a kiküldendő szöveget $rid = 3; // a választott szerepkör azonosítója $query = 'SELECT ur.uid FROM {users_roles} AS ur WHERE ur.rid = :rid'; $uids = $result->fetchCol(); $users = user_load_multiple($uids); echo "Az üzenetet megkapták:\n\n"; foreach ($users as $user) { echo $user->name . "\n"; } ?>
Csökönyi Ferenc
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
akkor szerintem butaságot szeretnél
A file_save_upload() használata a helyes út. Ez egyben elvégzi a validálást és a feltöltést is, valamint létrehozza a $file objektumot is, amivel a továbbiakban azt csinálsz, amit akarsz. Az infocsop_application_fer_validate() függvény is teljesen szükségtelen. A hook_validate() node és nem file validálásra van. A submit() hurkodban végrehajthatod az egész műveletet.
update: látom, az nem hook_validate() akart lenni, ettől függetlenül nem kell :)
<?php function foo_menu() { $items = array(); $items['foo'] = array( 'title' => 'Foo', 'page callback' => 'page_example_foo', 'access arguments' => array('access content'), ); return $items; } function page_example_foo() { return drupal_get_form('foo_form'); } function foo_form(&$form_state){ $form['#attributes'] = array('enctype' => "multipart/form-data"); $form['upload'] = array( '#type' => 'file', '#title' => 'Filename' ); $form['submit'] = array( '#type' => 'submit', '#value' => 'Upload file', "#submit" => array("foo_submit"), ); return $form; } function foo_submit($form, &$form_state){ $validators = array('file_validate_extensions' => array('txt')); $path = file_directory_path()."/directory"; if (file_check_directory($path, FILE_CREATE_DIRECTORY)) { if ($file = file_save_upload('upload', $validators, $path)) { $name = $_FILES["files"]["name"]["upload"]; drupal_set_message("The ". "$name"." file was uploaded."); } } } ?>
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
Én ezt így csináltam meg, fél
Én ezt így csináltam meg, fél évvel ezelőtt, ma már lehet, tudnék rá szebb módot is:
Nekem az volt a lényeg, hogy ul liben jelenjenek meg. Nem fűzhettem a vesszőt magához az $itemhez, mert különben a vessző bekerült a linkbe, azt meg nem szeressük.
function SMINKNEVE_content_view_multiple_field($items, $field, $values) { $output = ''; $i = 0; //ezt a feltételt lehet bárhogy alakítani, ahogy jó, én már nem emlékszem, hogy nekem miért így volt jó.. if ($field['field_name'] == 'MEZŐNEVE' && $field['type_name'] == 'TÍPUSENEVE') { $output .='<ul class="MEZŐNEVE">' ; foreach ($items as $item) { if (!empty($item) || $item == '0') { $output .= '<li class="field-item field-item-'. $i .' '. ($i % 2 ? 'odd' : 'even'); if ($i == 0) { $output .= ' first'; } if ($i != count($items)-1) { $output .= ' no-last'; } $output .= '">'. $item .'</li>'; $i++; } } $output .= '</ul>'; return $output; } //ez az eredeti theme_content_view_multiple_field. foreach ($items as $item) { if (!empty($item) || $item == '0') { $output .= '<div class="field-item field-item-'. $i .' '. ($i % 2 ? 'odd' : 'even'); if ($i == 0) { $output .= ' first'; } if ($i != count($items)-1) { $output .= ' no-last'; } $output .= '">'. $item .'</div>'; $i++; } } return $output;
Na és ezután css:
.no-last:after{ content: ","; }
----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
Magyar nyelven működő t() függvény
A forrás szövegben érdemes elkülöníteni a magyar t és az angol t() függvényeket, mert egyébként egy több ezer soros modulban, nem tudjuk kézben tartani a fordítás állapotát.
Először elkészítjük a modult a hun_t() függvénnyel, majd ha szükséges lesz akkor rákeresünk a hun_t-re és átírjuk angolra a szöveget és sima t()-re.
Íme egy egyszerű példa d6-ban:
Csak az en kellett hu-ra módosítani.
Ezzel a hun_t()-vel megadott szöveget lehet fordítani bármilyen nyelvre a drupal adminisztrációs felületén többek között angolra is.
function sajatmodul_hun_t($string, $args = array(), $langcode = NULL) { global $language; static $custom_strings; $langcode = isset($langcode) ? $langcode : $language->language; // First, check for an array of customized strings. If present, use the array // *instead of* database lookups. This is a high performance way to provide a // handful of string replacements. See settings.php for examples. // Cache the $custom_strings variable to improve performance. if (!isset($custom_strings[$langcode])) { $custom_strings[$langcode] = variable_get('locale_custom_strings_' . $langcode, array()); } // Custom strings work for English too, even if locale module is disabled. if (isset($custom_strings[$langcode][$string])) { $string = $custom_strings[$langcode][$string]; } // Translate with locale module if enabled. // elseif (function_exists('locale') && $langcode != 'en') { //!! itt figyeljük a magyar nyelvet, az alap string magyar, ezért nem fordítjuk elseif (function_exists('locale') && $langcode != 'hu') { $string = locale($string, $langcode); } if (empty($args)) { return $string; } else { // Transform arguments before inserting them. foreach ($args as $key => $value) { switch ($key[0]) { case '@': // Escaped only. $args[$key] = check_plain($value); break; case '%': default: // Escaped and placeholder. $args[$key] = theme('placeholder', $value); break; case '!': // Pass-through. } } return strtr($string, $args); } }
-------------------------------
http://www.realdream.hu
- A hozzászóláshoz regisztráció és bejelentkezés szükséges






Két példa-régiót hozunk létre
Két példa-régiót hozunk létre.
Ez megy a smink .info file-jába:
És így teszed ki a page.tpl.php-ban:
Ahhoz, hogy használatba tudd venni (hogy a Drupal észrevegye az új régiót), újra kell építtetni a "Theme registry" nevű jószágot:
Utána már a blokkok beállítófelületén kiválasztható, hogy ebbe is kerülhessen blokk (Illetve a "Blokk-régiók mutatása" linkre kattintva kéne, hogy látszódjanak is.)