Wathfea képe

Nah ha tudom, hogy keressek már is jobb a dolog. :) Az írásod jó nagyon így már érthető nekem is mi is ez a hook_form_alter dolog.
Csináltam hát egy külön modult, viszont nem akarja csak azért se kiszedni azokat a mezőket amiket nem akarok:

/* A publicbookings_adatok form elemeinek eltűntetése */
function nodisplay_form_alter(&$form, $form_state, $form_id) {
  if ($form_id == 'publicbookings_clientinfo_form') {
    $form['client']['title']['#access'] = FALSE;
     $form['client']['first_name']['#access'] = FALSE;
     $form['client']['last_name']['#access'] = FALSE;
     $form['client']['phone']['#access'] = FALSE;
     $form['client']['comments']['#access'] = FALSE;
  }
}

Azon filózom, hogy lehet nem ez a clientinfo_form a form_id?
A publicbookings.public.ini fileban pedig így kezdi el a formot:

function publicbookings_clientinfo_form($values, &$form_state=array()) {
  $form = array();
  if ( isset($form_state['values']) ) {
    $values = $form_state['values'] + $values;
  }
  $form['client'] = array(
    '#title' => t('Adataid'),
    '#type' => 'fieldset',
  );
 
  $form['client']['client_id'] = array(
    '#type' => 'value',
    '#value' => $values['client_id'],
   );
  $form['client']['title'] = array(
    '#title' => t('Title'),
    '#type'  => 'select',
    '#options' => publicbookings_title(),
    '#default_value' => 0,
  );
...stb.

Hogy tudom megkapni a helyes form_id?
Próbáltam print_r-e kiiratni a form tömböt de abban id hivatkozás nem volt.
Más?

Egyébként nem szeretnél írni egy olyan szösszenetet, hogy miként lenne megoldható az, hogy magának a modulnak az admin oldali beállítások között választhassam hogy egy olyan formot rakjon ki ahol minden adatot kér pl vonatkozzon ez a nem regisztrált emberekre ha meg regelt akkor csak az emailt?

Tehát példa esetben mikor fel akarok tölteni valamit alaphelyzetben megjelenik egy form ami mindent kér de ha admin menüben bejelölök egy választót akkor csak e-mailt...

0
0
DTB képe

Nem, igy szoktam ellenőrizni:

<?php
  global $user;
    print '<pre>';
    print_r($user);
    print '</pre>';
?>

A teljes, módositott user_load függvény igy néz ki, a kiemelt sorok az ujak, ezeket több lehetséges helyre beszurva :-) is kipróbáltam, az eredmény mindig a fent leírt....


function user_load($array = array()) {
  // Dynamically compose a SQL query:
  $query = array();
  $params = array();
 
  foreach ($array as $key => $value) {
    if ($key == 'uid' || $key == 'status') {
      $query[] = "$key = %d";
      $params[] = $value;
    }
    else if ($key == 'pass') {
      $query[] = "pass = '%s'";
      $params[] = md5($value);
    }
    else {
      $query[]= "LOWER($key) = LOWER('%s')";
      $params[] = $value;
    }
  }
  $result = db_query('SELECT * FROM {users} u WHERE '. implode(' AND ', $query), $params);
 
  if (db_num_rows($result)) {
    $user = db_fetch_object($result);
    $user = drupal_unpack($user);
 
    $user->roles = array();
    if ($user->uid) {
      $user->roles[DRUPAL_AUTHENTICATED_RID] = 'authenticated user';
    }
    else {
      $user->roles[DRUPAL_ANONYMOUS_RID] = 'anonymous user';
    }
    $result = db_query('SELECT r.rid, r.name FROM {role} r INNER JOIN {users_roles} ur ON ur.rid = r.rid WHERE ur.uid = %d', $user->uid);
    while ($role = db_fetch_object($result)) {
      $user->roles[$role->rid] = $role->name;
    } 
     user_module_invoke('load', $array, $user);
  }
  else {
    $user = FALSE;
  }
// Módosítás innen   
    if ( !$user===FALSE) {   
        echo' lefutott ';
        $user->storer = array();
        $result = db_query('SELECT b.nid, b.field_inf_value FROM {storerole} s INNER JOIN {content_type_bolt} b ON s.nid = b.nid WHERE s.uid = %d', $user->uid);
        while ($s=db_fetch_object($result)) {   
           $user->storer[$s->nid] = $s->field_inf_value;
        }
    }
// Eddig
  return $user;
}

Még annyit, hogy a függvénynek ez a pontja nem mindig fut le, ezt tudom én is, de ha echot szúrok be, akkor látszik, hogy mikor hívódik meg, de az új role értékek akkor sem látszanak...:-(
Utóirat, másnap :-)

Egy megoldást találtam rá, bár nekem nem ez kellene, de hátha mást is érdekel:

<?php
global $user;
$user_uid= array('name'=>$user->name);
$myuser = module_invoke('user', 'load', $user_uid); 
 
$storer = array();
 
$result = db_query('SELECT b.nid, b.field_inf_value FROM {storerole} s INNER JOIN {content_type_bolt} b ON s.nid = b.nid WHERE s.uid = %d', $user->uid);
while ($s=db_fetch_object($result)) {
$storer[$s->nid] = $s->field_inf_value;
}
 
module_invoke('user','save',$myuser,array('storer'=>$storer)); 
 
echo '<pre>';
print_r($user);
echo '</pre>';
?>

Ezzel a megoldással az $user[data] értékéhez lehet az új értékeket adni...
Igazából az a kérdés, hogy a global $user objecthez melyik belépési ponton, melyik funkciónál kell hozzáadni a módosítást, mert az user_load nem vált be. (vagy valamit rosszul csináltam) Tipp?

0
0
xpkiller képe

Tegnap óta nem aludtam.. sokáig töprengtem, nem tudtam elaludni, majd jött pár ötlet, hogy csinálok egy copyt az eredeti sminkről, és megnézem megjelenik-e a szerkesztő, megjelent, majd, hogy a saját sminket mikor elkezdtem faragni elbénáztam, és még nem állítottam be minden régiót..stb, mikor már beaktiváltam a sminket, tehát belekerülhetett szemét az adatbázisba, tehát átállítottam másik sminkre, kitakarítottam az adatbázist, és újra beaktiváltam.. semmi változás.
Most azt találtam ki, hogy ok, akkor egyenként felülírom a saját smink file-jaimat az eredeti sminkével, és kiderült, hogy ha a saját page.tpl.php-mat lecserélem az eredetire (amitől persze széthullik az oldal, de sebaj) akkor megjelenik a szerkesztő, tehát akkor csak ebben van valami baj.
És nem értem, semmi hibát nem találok benne.
Pekopizom, hátha valaki kiböki, hogy hol van az egy vessző hiba.

<?php
// page.tpl.php for orvosilapok.hu by IDS Solutions Ltd. 2009
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="<?php print $language->language; ?>" xml:lang="<?php print $language->language; ?>">
 
  <head>
    <title><?php print $head_title; ?></title>
    <?php print $head; ?>
    <?php print $styles; ?>
    <?php print $scripts; ?>
  </head>
 
<body class="<?php print $body_classes; ?>">
<div id="lap" class="clearfix">
	<div id="test">
		<div id="fej">
			<div id="fej-bal"><a href="<?php print $base_path ?>" title="<?php print t('Home') ?>"><img src="/sites/orvosilapok.hu/themes/orvosi/images/orv_fej.jpg" alt="<?php print t('Home') ?>" /></a></div>
			<div id="fej-jobb-fent">
		            <?php if ($header_middle): ?>
		            <?php print $header_middle; ?>
		            <?php endif; ?>
			</div>
			<div id="fej-jobb-lent">
			    <div id="lapmenu">
		              <?php if ($header_last): ?>
		              <?php print $header_last; ?>
		              <?php endif; ?>
		            </div>
			</div>
		</div>
		<div id="bal-sav">
		    <?php if ($sidebar_first): ?>
		       <div id="sidebar-first">
		         <?php print $sidebar_first; ?>
		       </div><!-- /sidebar-first -->
		    <?php endif; ?>
		    <?php print $feed_icons; ?>
		</div>
		<div id="jobb-sav">
	            <?php if ($sidebar_last): ?>
	            <div id="sidebar-last">
	              <?php print $sidebar_last; ?>
	            </div><!-- /sidebar_last -->
	            <?php endif; ?>
		</div>
		<div id="kozep">
			<div id="kozep-fej"><div id="kozep-fej-szoveg">Magyar Orvos</div></div>
			<div id="kozep-torzs">
		            <?php if ($help): ?>
		              <?php print $help; ?>
		            <?php endif; ?>
		            <?php if ($messages): ?>
		              <?php print $messages; ?>
		            <?php endif; ?>
 
		            <?php if ($content_top): ?>
		            <div id="content-top">
		              <?php print $content_top; ?>
		            </div><!-- /content-top -->
		            <?php endif; ?>
		            <?php if ($tabs): ?>
		              <div id="content-tabs">
		                <?php print $tabs; ?>
		              </div>
		            <?php endif; ?>
 
			    <div id="content-inner">
	                      <?php if ($title): ?>
		                <h1 class="title"><?php print $title; ?></h1>
		              <?php endif; ?>
		                <div id="content-content">
		                  <?php print $content; ?>
		                </div>
		            </div><!-- /content-inner -->
		           <?php if ($content_bottom): ?>
		            <div id="content-bottom">
		              <?php print $content_bottom; ?>
		            </div><!-- /content-bottom -->
		           <?php endif; ?>
			</div>
		</div>
		<br class="clearfloat">
		<div id="lablec"><?php echo '<div id="footer1"><a href="/contact">'.iconv('ISO8859-2', 'UTF-8', 'Kapcsolat</a>&nbsp;|&nbsp;<a href="/jognyilatkozat">Jognyilatkozat</a>&nbsp;|&nbsp;<a href="/sitemap">Oldaltérkép</a>').'</div><div id="footer2">'.iconv('ISO8859-2', 'UTF-8','&copy; 2006-2009 - Mediprint Kft.').'</div>'; ?></div>
	</div>
</div>
</body>
</html>
0
0

Drupal futtatása frameben

drgyz képe

A drupállal való ismerkedést ingyenes webszervereken (uw, extra) kezdtem. Ezek nem kielégítő szolgáltatása vezetett oda, hogy előfizettem egy fizetős szolgáltatásra, mondjuk fizetos.hu néven
A multi site révén sok portált tudok létrehozni xy.fizetos.hu stb. néven.
Viszont a probléma az, hogy most egy olyan portalt akarok létrehozni, aminek a valami.fizetos.hu neve nem felel meg, mert a valami és a fizetos nem illenek össze.

hook_menu problema

zoliky képe

Olvasgatom a "Learning Drupal 6 Module Development" konyvet es benne talaltam egy darab kodot, amelyet ha meghivok egy browszerben allitolag adatokat ir a kepernyore.

/**
 * Implementation of hook_menu()
 */
function emailusers_menu() {
  // Need to pass User ID here:
  $items['admin/emailusers/compose/%'] = array(
  'title' => 'Compose a Message',
  'page callback' => 'emailusers_compose',
  'page arguments' => array(3), // <- userID (from % in node path)
  'access arguments' => array('administer users'),
  'type' => MENU_CALLBACK,
  );
return $items;
}

Drupal views hasznalata

zoliky képe

Nekifogtam a "nezeteket" tanulmanyozni. Szeretnem elohivni az osszes "node" tipusu tartalom nevet es belerakni egy block-ba. Ez sikerult is, csak szuksegem van meg egy olyan adatra, hogy hanyan irtak hozaszolast a node-hoz.

Sajnos a drupal ket nezetet hoz letre, ez pedig ket DIV.
Itt van egy kep: http://img408.imageshack.us/my.php?image=viewsmw2.jpg

Hogyan tudnam ezt a ket adatot egy DIV-be belerakni, peldaul igy listaza:

- Elso node 5
- Masodik node 3
- Negyedik node 1

A szam a hozaszolasokat mutatja.
Valami hasonlo kimenetre lenne szuksegem:

 

Töménytelen hibaüzenet!

sirdani képe

Sziasztok, telepítem az oldalam extrára és ez jött be:
An error occurred. http://onlineallas.extra.hu/install.php?locale=hu&profile=default&id=3&o...
Warning: realpath() [function.realpath]: Unable to access /nfs/x0601/o/on/onlineallas/wwwroot/sites/all/themes/engines in /nfs/extra/prepend/prepend.php(159) : system created function on line 16

teljesen dinamikus menü útvonal

mhncsa képe

Sziasztok!

Azt szeretném megoldani, hogy a regisztrált usereknek a kezdőoldala www.weboldal.hu/username címen legyen elérhető. A többi oldal pedig /username/oldal1, /username/oldal2...
Minden oldal tartalmát modul állítaná elő dinamikusan.

Az megvan, hogy lehet wildcard-t használni, amikor a modullal csinálom a menut:

Drupal verzió: 
Melyik modulhoz, modulokhoz kapcsolódik a téma?: