aboros képe

a célom az volt, hogy cck field permissions hiányában megoldjam valahogyan (nem vagyok sajnabajna modulfejlesztő), hogy egy adott típus bizonyos mezőjét csak egy adott user (1) tudja szerkeszteni. végülis sikerült valamilyen szinten megoldanom, az lenne a kérdésem, hogy a megoldás gány e, illetve mik a buktatók, ha vannak ilyenek vagy esetleg teljesen rossz megközelítésben próbálkozom.

megoldásom a template.php -ban:

function garland_node_form($form) {
	global $user;
	if ($form['#node']->type == "maki" && $user->uid != 1){
		$form['field_makifajta'][0]['value']['#attributes']['readonly'] = 'true';
	}
	  $output = "\n<div class=\"node-form\">\n";
 
	  // Admin form fields and submit buttons must be rendered first, because
	  // they need to go to the bottom of the form, and so should not be part of
	  // the catch-all call to drupal_render().
	  //drupal_set_message(print_r($form));
	  $admin = '';
	  if (isset($form['author'])) {
		$admin .= "    <div class=\"authored\">\n";
		$admin .= drupal_render($form['author']);
		$admin .= "    </div>\n";
	  }
	  if (isset($form['options'])) {
		$admin .= "    <div class=\"options\">\n";
		$admin .= drupal_render($form['options']);
		$admin .= "    </div>\n";
	  }
	  $buttons = drupal_render($form['buttons']);
 
	  // Everything else gets rendered here, and is displayed before the admin form
	  // field and the submit buttons.
	  $output .= "  <div class=\"standard\">\n";
	  $output .= drupal_render($form);
	  $output .= "  </div>\n";
 
	  if (!empty($admin)) {
		$output .= "  <div class=\"admin\">\n";
		$output .= $admin;
		$output .= "  </div>\n";
	  }
	  $output .= $buttons;
	  $output .= "</div>\n";
 
	  return $output;
}
0
0

-
clear: both;

hosszu.kalman képe

A séma létrehozáskor már nincs benne SQL, mert a Drupal az adatbázistól függően fogja legenerálni az SQL-t.
A hook_schema-tól itt olvashatsz:
http://api.drupal.org/api/function/hook_schema/6

Ezek a típusok érhetőek el:
http://drupal.org/node/159605

És ez a referencia:
http://drupal.org/node/146939

Kb ilyesmi egy schema:

<?php
function modulneve_schema() {
  $schema = array();
 
  $schema['tabla_neve'] = array(
    'description' => 'Leiras a tablarol',
    'fields' => array(
      'ez_egy_auto_incerement_mezo_neve' => array(
        'type' => 'serial',
        'unsigned' => TRUE,
        'not null' => TRUE),
      'ez_egy_int' => array(
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0),
      'ez_egy_varchar' => array(
        'type' => 'varchar',
        'length' => 32,
        'not null' => TRUE,
        'default' => ''),
      'ez_egy_text' => array(
        'description' => 'The title of this node, always treated as non-markup plain text.',
        'type' => 'text',
        'length' => 255,
        'not null' => TRUE,
        'default' => ''),
      'ez_egy_datum' => array(
        'type' => 'datetime',
        'not null' => TRUE,
        'default' => ''),
      ),
    // Indexek, stb
    'indexes' => array(
      'node_changed'        => array('changed'),
      'node_created'        => array('created'),
      ),
    'unique keys' => array(
      'nid_vid' => array('nid', 'vid'),
      'vid'     => array('vid')
      ),
    'primary key' => array('nid'),
  );
  return $schema;
}
?>
0
0
Sk8erPeter képe

http://jsbeautifier.org/
ezzel lehet HTML-t is szépíteni...

  1. <div id="block-search-form" class="block block-search">
  2. <form action="http://domain.hu/?q=search/node/" method="GET" id="search-block-form"
  3. accept-charset="UTF-8">
  4. <div>
  5. <div class="container-inline">
  6. <div class="form-item form-type-textfield form-item-search-block-form">
  7. <input onclick="this.value=&#039;&#039;;" onfocus="this.select()" onblur="this.value=!this.value?&#039;Keresés...&#039;:this.value;"
  8. type="text" id="edit-search-block-form--2" name="search_block_form" value="Keresés..."
  9. size="12" maxlength="128" class="form-text" />
  10. </div>
  11. <div class="form-actions form-wrapper" id="edit-actions">
  12. <input type="submit" id="edit-submit" name="op" value="Keresés" class="form-submit"
  13. />
  14. </div>
  15. <input type="hidden" name="form_build_id" value="form-nkTufJZivlbJOZAYJKlnrg_o3-GEC-Ehdw9LlRf-_84"
  16. />
  17. <input type="hidden" name="form_id" value="search_block_form" />
  18. </div>
  19. </div>
  20. </form>
  21. </div>

====================

Kérdéseim:

  1. próbáltad kikapcsolt JavaScripttel is, hogy úgy sem működik-e?
  2. miért nem jQuery-t használsz, és helyette inkább "inline" JavaScriptet, beledobálva a különböző eseményekhez tartozó attribútumokba a dolgokat?
  3. miért használod az aposztróf HTML-entitását itt? (&#039;)
  4. onclick="this.value=&#039;&#039;;"
    Értem, hogy mi a célod, de miért csinálsz ilyet? Miért nem hagyod, hogy a júzer döntse el, hogy a korábbi értéket felül akarja-e bírálni, vagy sem? Halál idegesítőek az ilyen dolgok felhasználóként.
  5. onfocus="this.select()"
    Lásd előző kérdés.
  6. onblur="this.value=!this.value?&#039;Keresés...&#039;:this.value;"
    Ez teljes mértékben helytelen. Már eleve a this.value=!this.value.
  7. Hogyan csinálod mindezt a módosítást?
    Feltételezem, nem valami tisztességes hook_form_alter()-ben vagy hasonlóban... :)
  8. "de nem tudom, hogy tudok ilyen id-t dinamikusan generálni"
    Miért akarsz ilyen id-t generálni? Miért bírálod felül a Drupal működését?
0
0
SecMan képe

Először is: Starterkitből indultál?

Amúgy a Zen templates könyvtárában lévő page.tpl.php-ból kiderül, hogy a régiók különböző css class-okat kapnak attól függően milyen régiók vannak éppen használatban. Ha mind a két sidebar, akkor:

  • $content_class = 'layout-3col__right-content';
  • $sidebar_first_class = 'layout-3col__first-left-sidebar';
  • $sidebar_second_class = 'layout-3col__second-left-sidebar'

Ezeket a classokat kell megkeresni a sass könyvtárban, azon belül pedig a layouts mappában, azon belül pedig a zen alap gyári elrendezés a layout-3col.
A _layout-3col.scss -ben így találod meg pl.: __first-left-sidebar,
és a gyári alap grid system a zen grid szerint tudod kialakítani a layoutot.

Nagyképernyős megjelenésen (@include zen-respond-to(xl)): 119. sortól:

  1. &__right-content {
  2. @include zen-grid-item(2, 2);
  3. }
  4.  
  5. &__left-sidebar,
  6. &__first-left-sidebar,
  7. &__second-left-sidebar {
  8. @include zen-new-row(right);
  9. @include zen-grid-item(1, 3, right);
  10. }

Kb. ez kellene helyette neked:

  1. &__right-content {
  2. @include zen-grid-item(1, 2);
  3. }
  4. &__first-left-sidebar{
  5. @include zen-new-row(right);
  6. @include zen-grid-item(1, 3, right);
  7. }
  8. &__second-left-sidebar{
  9. @include zen-new-row(right);
  10. @include zen-grid-item(1, 1, right);
  11. }

így a right-content 1 oszlop széles, a másodikban kezdődik.
A first-left mivel "right" float, ezért úgy kell értelmezni, hogy 1 oszlop széles jobbról a harmadikból kezdve (vagyis az első oszlop balról nézve), a second-left pedig 1 oszlop széles szintén jobbról nézve az első oszlopban (balról a harmadik)

Persze jobb lenne mindjárt a class-t is átírni second-right-sidebar -ra, és ezt a változást a page.tpl.php-ban is átírni.
Illetve a szépséghibája szerintem a 3 oszlopnak, hogy a sidebar-ok ugyanolyan szélesek lesznek, mint a tartalmad. De persze ezt is át lehet írni.

0
0

Dinamikus adatfeltöltés egy SELECT mezőbe

HoLa képe

Jó napot!

Nekem van egy SELECT mezőm:

$form['mennyi']['feed_item_length'] = array(
  '#type' => 'select',
  '#title' => t('Hány darab'),
  '#required' => TRUE,
  '#default_value' => variable_get('feed_item_length','1'),
  '#options' => array(
    '1' => t('1 db'),
    '2' => t('2 db'),
    '3' => t('3 db'),
    'more' => t('több'),
  ),
);

és szeretnék a későbbiekben adatbázisból kiolvasott adatokkal feltölteni a lehetőségeket ('#options' => array() ), viszont nem tudom, hogyan lehetne ezt megvalósítani. Egyenlőre azzal próbálkoztam, hogy beletettem egy cikust:

dinamikusan generált form küldésre hibát ad

hedda7 képe

Sziasztok!

Egy saját modulban készítettem egy olyan formot, amivel csoportosított adatokat kívánok megjeleníteni, ezek a csoportok és a csoportokba tartozó adatok dinamikusan jönnek adatbázisból, ezért így próbáltam a formot is összeállítani.

A problémám, hogy a form submit után ha nem az üres formot küldöm el, akkor a következő hibaüzenet jelenik meg:
Nem érvényes választást talált a rendszer. Javasolt a webhely gazdájával felvenni a kapcsolatot.

Drupal verzió: 

hook_field_info_settings db update

fgabor képe

Sziasztok!

Belefutottam egy problémába, amire jó megoldást nem találtam. Saját modul, saját cck field - hook_field_info-val hoztam létre, hozzá hook_field_info_settings-el 2 columns-ot. Ilyesmi a kód:

function example_field_info() {
  return array(
    'example' => array(
       'label' => t('Example field'),
       'description' => t('Store text data in the database.'),
    ),
  );
}
 
function example_field_info_settings ($op, $field) {
    switch ($op) {
      case 'database columns':
Drupal verzió: 
Melyik modulhoz, modulokhoz kapcsolódik a téma?: 

D7: Übercart - Social Media probléma

Dean képe

Sziasztok!

Nem találok megoldást a nemzetközi fórumokon sem arra a problémára, hogy az Übercart a rendelés véglegesítésekor összeakad a Social Media modullal.

Kínomban azt tervezem, hogy egyszerűen kikommentezem a socialmedia.tokens.inc fileban a 133. sort, így legalább nem küldi ki a hibaüzenetet több sorba.
Pl. ilyeneket:
Notice: Undefined index: widgets socialmedia_tokens() függvényben (/home/.../modules/socialmedia/socialmedia.tokens.inc 133 sor).

A kérdéses kód részlet:

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