Radio gombok

lili_ képe

írtam egy kis formot D5 alatt íme.

function emberek_radios_form(){
 
 $tomb=array();
 $tomb["egy"]="hetfo";
 $tomb["ketto"]="kedd";
 $tomb["harom"]="szerda";
 
 $form["radiom"] = array(
   "#type" => "radios",
    "#title" => t("Képek"),
   "#options" => $tomb
 
  );
 
  var_dump($form["radiom"]);
 
  return $form;
 
 }

kérdésem!

hogyan tudom elérni a radio elemeket külön-külön?
ugyanis szeretnék hozzá theme fvényt írni, h a radio gombok egy táblázat egy-egy külön sorában jelenjenek meg.
ehhez viszont az elemeket valahogy szét kellene szednem?

RaptoR képe

Nem kell szétszednek őket, a radio elemei a $form['radiom']['egy'], $form['radiom']['ketto'] stb. tömbök lesznek. Tehát ha egyesével akarod ezeket renderelni, akkor simán be kell raknod őket külön-külön a drupal_render() függvénybe, pl. drupal_render($form['radiom']['egy']).

0
0
lili_ képe

meg tudnád mutatni pl: hogyan tudom őket egy egy tábla sorba berakni?
próbálkoztam de nem sikerült lehet nem jól adtam be a theme nevet
így adtam be:

function emberek_radios_form(){
 
$tomb=array();
$tomb["egy"]="hetfo";
$tomb["ketto"]="kedd";
$tomb["harom"]="szerda";
 
$form["radiom"] = array(
   "#type" => "radios",
    "#title" => t("Képek"),
   "#options" => $tomb
 
  );
 
  var_dump($form["radiom"]);
 
	$form["#theme"] = "emberek_radios_form_theme";
 
  return $form;
 
}
 
function emberek_radios_form_theme(){
 
 
$r = "";
 
$sor = array();
   $sor[] = array(
  /* itt lehet megadni h  mi szerepeljen majd a fejlécben*/
   array("data" => " MUNKATÁRSAK: ", "header" => true));
 
 foreach($form_values["radiom"] as $kulcs => $ertek){
        $sor[] = array(
        array("data" => drupal_render($form["radiom"][$ertek])));
 
     }
 
    $r .= theme("table", NULL, $sor);
   $r .= drupal_render($form);
 
    return $r;
 
 
 
}
 
 
function emberek_hivas(){
 
 
$l="";
 
$k=drupal_get_form("emberek_radios_form");
 
$l.=$k;
 
return $l;
 
 
}
0
0

mini

Pasqualle képe

// $Id$
 
/**
* @file Drupal.hu test.
*/
 
/**
* Implementation of hook_menu().
*/
function dhu_menu() {
  $items['dhu'] = array(
    'title' => 'Test',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('dhu_test_form'),
    'access callback' => 'user_access',
    'access arguments' => array('access content'),
    'weight' => '-10',
    'type' => MENU_NORMAL_ITEM,
  );
 
  return $items;
}
 
/**
* Implementation of hook_theme().
*/
function dhu_theme() {
  $items['test_form'] = array(
    'arguments' => array('form' => NULL),
  );
  return $items;
}
 
/**
* The test form.
*/
function dhu_test_form(&$form_state) {
  $header = array(
    array('data' => t('Days')),
    array('data' => t('First day of the week')),
  );
 
  $form['header'] = array(
   '#type' => 'value',
   '#value' => $header,
  );
 
  $form['test']['#tree'] = TRUE;
 
  $days = array(
    1 => t('Monday'),
    2 => t('Tuesday'),
    3 => t('Wednesday'),
    4 => t('Thursday'),
    5 => t('Friday'),
    6 => t('Saturday'),
    7 => t('Sunday'),
  );
 
  foreach ($days as $key => $day) {
    $form['test'][$key]['day'] = array(
      '#type' => 'markup',
      '#value' => $day,
    );
  }
 
  $form['test']['first_day'] = array(
    '#type' => 'radios',
    '#options' => $days,
    '#default_value' => 1,
  );
 
  $form['#theme'] = 'test_form';
  return $form;
}
 
/**
* Theme the test form.
*
* @ingroup themeable
*/
function theme_test_form($form) {
  $header = $form['header']['#value'];
  $rows = array();
 
  foreach (element_children($form['test']) as $key) {
    // Build the table row.
    $rows[] = array(
      array('data' => drupal_render($form['test'][$key]['day'])),
      array('data' => drupal_render($form['test']['first_day'][$key])),
    );
  }
 
  $output = theme('table', $header, $rows);
  $output .= drupal_render($form);
 
  return $output;
}
0
0
nevergone képe

Na ezt most aztán én sem értem teljesen... mármint a működését. :S

0
0
lili_ képe

$form['test'][$key]['day'] rész miért kell bele?
le tudnád írni h mégis hogyan működik amit írtál?
nagyon érdekelne, a drupal.org-on elolvastam a form kezelését de nem nagyon
tudom kitalálni h mi miért kell bele ?
amit én írtam be fenti kód nem tudom h miért nem jó?

0
0

mini

Pasqualle képe

$form['test'][$key]['day'] csak egy plusz oszlopot ad, egyaltalan nem kell, csak hogy latszodjon, hogy ott valoban sorok vannak, es az egyes radio gombok a megfelelo sorban vannak..
------------------------------------
(nem ismerem a D5-ost teljesen, de szerintem) a peldadban hibas sorok javitasai:
$form["#theme"] = "emberek_radios_form"
function theme_emberek_radios_form() {
foreach($form["radiom"] as $kulcs => $ertek){
array("data" => drupal_render($form["radiom"][$kulcs])));

-----------------------------------
hogyan mukodik amit irtam:
van ket tomb a form[test][1..7][day], form[test][first_day]

a form[test][first_day] radios tipus tehat az is egy tomb, es a tomb egyes elemei az #options-bol adodoan form[test][first_day][1..7]

es a ket tomb egyes elemeit a nekik megfelelo sorban jelenitem meg..

de valojaban sose szoktam gondolkozni hogyan irjam meg es miert. Igy lattam a Drupal core-ban es masutt, tehat igy hasznalom. A peldakod fo reszeit is sajat modulbol olloztam ossze..

0
0
lili_ képe

nemsokára kipróbálom és majd visszaírok és köszönöm

0
0

mini

lili_ képe

nagyon szuper amit beírtál köszike

0
0

mini