Rower06 képe

a Calendar-ban minden magyarra van állítva. Viszont az agenda-block.tpl-ben van néhány sor,amit lehet h ki kellene valahogy egészítenem?

/**
 * @file
 * Template for displaying the agenda in a block
 */
 
// Build some neat dates
$today = time() - time() % (3600 * 24);
$dates[date('Y-m-d', $today)]         = t('Today');
$dates[date('Y-m-d', $today - 86400)] = t('Yesterday');
$dates[date('Y-m-d', $today + 86400)] = t('Tomorrow');
 
 
// List of keys to display
$keys    = array_map('trim', explode(',', $block->display_keys));
$nolabel = array_map('trim', explode(',', $block->hide_labels));

 foreach ($events as $day):

  $date = $day[0]['start date'];
 
  // Substitute today/yesterday/tomorrow
  if (isset($dates[$day[0]['when']])) {
    $date = $dates[$day[0]['when']];
  }
 

 echo $date;

     foreach ($day as $event):
  1.  echo $event['index']; ">  echo $event['title'];

       foreach ($keys as $key):
       if (!empty($event[$key])):

    •  if (!in_array($key, $nolabel)):
       echo _agenda_translate($key); :
       endif;
       echo $event[$key];
    •  endif;
       endforeach;

  2.  endforeach;

 endforeach;

0
0

Kezdő vagyok, de tanulni akarok!!!

Köszönöm mindenkinek a segítségét és a türelmét :)

pero képe

óó, bocsánat, ezt valóban összekavartam egy kicsit.

A drupal_get_form:
(ezt hívom meg a "page callback" függvényben többször.)

drupal_render(drupal_get_form('order_undertake_form_'.$order_items[$nid]->nid,$order_items[$nid]->nid,$order_items[$nid]->field_rendeles_felrakas[LANGUAGE_NONE][0]['value'],$order_items[$nid]->field_rendeles_felrakas_datuma[LANGUAGE_NONE][0]['value'],$order_items[$nid]->field_rendeles_surgos[LANGUAGE_NONE][0]['value'],$ar))

Azaz a Form id az: order_undertake_form_[nid]
plusz átadok egyéb paramétereket is.

A hook_form() pedig elég szokványos:

function order_undertake_form($form, &$form_state, $ordernid, $hely, $datum, $surgos, $ar) {
  if ($surgos)
    $form['surgos'] = array(
      '#markup' => '<div class="surgos">'.t('Urgent').'</div>',
      );
 
 $form['upload_date'] = array(    
  '#type' => 'date_popup', 
  '#default_value' => $datum,
  '#date_format' => 'Y-m-d',
  '#required' => TRUE, 
  '#tree' => TRUE,
  );	
 
  $form['felrakas'] = array(
    '#markup' => '<div class="felrakashely">'.$hely.'</div>',
  );
 
  $form['pricemarkup'] = array(
    '#markup' => '<div>Fuvar költség:</div><div class="ar">'.number_format($ar, 0, ',', ' ').' EUR</div>',
  );
 
  $form['ordernid'] = array('#type' => 'hidden', '#value' => $ordernid);
  $form['price'] = array('#type' => 'hidden', '#value' => $ar);
 
  $form['submit'] = array(
    '#prefix' => '<div class="submit">',
    '#sufix' => '</div>',
    '#value' => t('Elvállalom'),
    '#type' => 'submit', 
  );	
  return $form;
}
0
0
lonalore képe

Szerintem a legegyszerűbb készíteni rá egy saját tokent, és a helyettesítési mintával összerakni. Kérdés, hogy mi az ami szerint a sorszámozás menne, ha a File ID-je szerint, akkor valami hasonló token kell neked:

  1. /**
  2.  * Implements hook_token_info().
  3.  */
  4. function MODULE_token_info() {
  5. $info['tokens']['file']['fid-pad-left'] = array(
  6. 'name' => t('Fid padded on the left'),
  7. 'description' => t("Create a padded number from fid, e.g. 1 => 000001"),
  8. );
  9.  
  10. return $info;
  11. }
  12.  
  13. /**
  14.  * Implements hook_tokens().
  15.  */
  16. function MODULE_tokens($type, $tokens, array $data = array(), array $options = array()) {
  17. $replacements = array();
  18.  
  19. if ($type == 'file' && !empty($data['file'])) {
  20. $file = $data['file'];
  21.  
  22. foreach ($tokens as $name => $original) {
  23. switch ($name) {
  24. case 'fid-pad-left':
  25. $replacements[$original] = str_pad($file->fid, 6, "0", STR_PAD_LEFT);
  26. break;
  27. }
  28. }
  29. }
  30.  
  31. return $replacements;
  32. }

A kódot nem teszteltem, csak mintaként írtam gyorsan, lehet hibás... :)

0
0
HF leon képe

Egyik megoldás, ha máshogy nem megy, ha beírod a settings.php tetejére az alábbiak egyikét.

Fix domain használatához:

  1. <?php
  2. // Force HTTPS
  3. if ( (!array_key_exists('HTTPS', $_SERVER)) && (PHP_SAPI !== 'cli') ) {
  4. header('HTTP/1.1 301 Moved Permanently');
  5. header('Location: https://example.org'. $_SERVER['REQUEST_URI']);
  6. exit();
  7. }
  8.  
  9. // Remove www
  10. if ($_SERVER['HTTP_HOST'] == 'www.example.org') {
  11. header('HTTP/1.0 301 Moved Permanently');
  12. header('Location: https://example.org'. $_SERVER['REQUEST_URI']);
  13. exit();
  14. }


Általános domain használatához:

  1. <?php
  2. if ( (!array_key_exists('HTTPS', $_SERVER)) && (PHP_SAPI !== 'cli') ) {
  3. if (substr($_SERVER['HTTP_HOST'], 0, 4) <> 'www.') {
  4. $new_url = 'www.' . $_SERVER['HTTP_HOST'];
  5. } else {
  6. $new_url = $_SERVER['HTTP_HOST'];
  7. }
  8. $new_url .= $_SERVER['REQUEST_URI'];
  9.  
  10. header('HTTP/1.1 301 Moved Permanently');
  11. header('Location: https://'. $new_url);
  12. exit();
  13. }
0
0
dj képe

A menüben létrehozod a két URL-t, a formot meghívod. Onnantól kezdve a form api dogozik helyetted. Ha implementálsz form_neve_validate és/vagy form_neve_submit függvényeket akkor azt hívja a submit gomb megnyomásakor.

Ilyenkor, ha másik URL-en jeleníted meg az eredményt akkor a form_neve_submit függvényben tudod átirányítani az oldalt:

/**
 * Implements hook_menu().
 */
function urlap_menu() {
  $items['urlap/form'] = array(
    'title' => 'Test form',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('urlap_my_form'),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
  );
  $items['urlap/result'] = array(
    'title' => 'Test result',
    'page callback' => 'urlap_result',
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
  );
  return $items;
}
 
/**
 * Implements hook_form().
 */
function urlap_my_form($form, $form_state) {
  $form['elso_mezo'] = array(
    '#type' => 'fieldset',
    '#prefix' => '<div id="elso-mezo">',
    '#suffix' => '</div>',
  );
 
  $form['elso_mezo']['azonosito'] = array(
    '#type' => 'textfield',
    '#title' => t('Title'),
    '#size' => 15,
    '#maxlength' => 20,
    '#default_value' => isset($form_state['values']['azonosito']) ? $form_state['values']['azonosito'] : '',
  );
 
  $form['masodik_mezo'] = array(
    '#type' => 'fieldset',
    '#prefix' => '<div id="masodik-mezo">',
    '#suffix' => '</div>',
  );
 
  $form['masodik_mezo']['chbox_1'] = array(
    '#title' => t('Checkbox-1'),
    '#type' => 'checkbox',
    '#return_value' => 1,
    '#default_value' => isset($form_state['values']['chbox_1']) ? $form_state['values']['chbox_1'] : '',
  );
 
  $form['masodik_mezo']['chbox_2'] = array(
    '#title' => t('Checkbox-2'),
    '#type' => 'checkbox',
    '#return_value' => 2,
    '#default_value' => isset($form_state['values']['chbox_2']) ? $form_state['values']['chbox_2'] : '',
  );
 
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Text'),
  );
 
  return $form;
}
 
/**
 * Validate urlap_my_form.
 */
function urlap_my_form_validate($form, &$form_state) {
  if (empty($form_state['values']['azonosito'])) {
    // Do not process submit if form validate is false.
    // Go back to form and show error message.
    form_set_error('azonosito', t('Error message'));
  }
  else {
    if (!preg_match('(^[0-9a-zA-Z-öüóőúéáűíÖÜÓŐÚÉÁŰÍ\.\s]+$)', $form_state['values']['azonosito'])) {
      // Do not process submit if form validate is false.
      // Go back to form and show error message.
      form_set_error('azonosito', t('Error message'));
    }
  }
}
 
/**
 * Submit urlap_my_form.
 */
function urlap_my_form_submit($form, &$form_state) {
  $params = array(
    'azonosito' => $form_state['values']['azonosito'],
    'chbox_1' => $form_state['values']['chbox_1'],
    'chbox_2' => $form_state['values']['chbox_2'],
  );
  // Page redirect to urlap/result URL with GET parameters.
  $form_state['redirect'] = array('urlap/result', array('query' => $params));
}
 
/**
 * Result page. 
 * 
 * Called from urlap_menu.
 */
function urlap_result() {
  $results = array(
    '!id' => '',
    '!cb1' => t('off'),
    '!cb2' => t('off'),
  );
  if (isset($_GET['azonosito'])) {
    $results['!id'] = check_plain($_GET['azonosito']);
  }
  if (isset($_GET['chbox_1']) && !empty($_GET['chbox_1'])) {
    $results['!cb1'] = t('on');
  }
  if (isset($_GET['chbox_2']) && !empty($_GET['chbox_2'])) {
    $results['!cb2'] = t('on');
  }
 
  // Output results.
  return array(
    '#markup' => t('Form results id: !id, check box 1: !cb1, check box 2: !cb2', $results),
  );
}

Megoldható ugyanazon az oldalon is az eredmény kiíratása:

/**
 * Implements hook_menu().
 */
function urlap_menu() {
  $items['urlap/form'] = array(
    'title' => 'Test form',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('urlap_my_form'),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
  );
  return $items;
}
 
/**
 * Implements hook_form().
 */
function urlap_my_form($form, $form_state) {
  if (!isset($form_state['values']['azonosito']) || empty($form_state['values']['azonosito'])) {
    // Create form.
    $form['elso_mezo'] = array(
      '#type' => 'fieldset',
      '#prefix' => '<div id="elso-mezo">',
      '#suffix' => '</div>',
    );
 
    $form['elso_mezo']['azonosito'] = array(
      '#type' => 'textfield',
      '#title' => t('Title'),
      '#size' => 15,
      '#maxlength' => 20,
      '#default_value' => isset($form_state['values']['azonosito']) ? $form_state['values']['azonosito'] : '',
    );
 
    $form['masodik_mezo'] = array(
      '#type' => 'fieldset',
      '#prefix' => '<div id="masodik-mezo">',
      '#suffix' => '</div>',
    );
 
    $form['masodik_mezo']['chbox_1'] = array(
      '#title' => t('Checkbox-1'),
      '#type' => 'checkbox',
      '#return_value' => 1,
      '#default_value' => isset($form_state['values']['chbox_1']) ? $form_state['values']['chbox_1'] : '',
    );
 
    $form['masodik_mezo']['chbox_2'] = array(
      '#title' => t('Checkbox-2'),
      '#type' => 'checkbox',
      '#return_value' => 2,
      '#default_value' => isset($form_state['values']['chbox_2']) ? $form_state['values']['chbox_2'] : '',
    );
 
    $form['submit'] = array(
      '#type' => 'submit',
      '#value' => t('Text'),
    );
  }
  else {
    // Create results.
    $results = array(
      '!id' => '',
      '!cb1' => t('off'),
      '!cb2' => t('off'),
    );
    if (isset($form_state['values']['azonosito'])) {
      $results['!id'] = check_plain($form_state['values']['azonosito']);
    }
    if (isset($form_state['values']['chbox_1']) && !empty($form_state['values']['chbox_1'])) {
      $results['!cb1'] = t('on');
    }
    if (isset($form_state['values']['chbox_2']) && !empty($form_state['values']['chbox_2'])) {
      $results['!cb2'] = t('on');
    }
 
    // Output results.
    $form['result'] = array(
      '#markup' => t('Form results id: !id, check box 1: !cb1, check box 2: !cb2', $results),
    );
  }
 
  return $form;
}
 
/**
 * Validate urlap_my_form.
 */
function urlap_my_form_validate($form, &$form_state) {
  if (empty($form_state['values']['azonosito'])) {
    // Do not process submit if form validate is false.
    // Go back to form and show error message.
    form_set_error('azonosito', t('Error message'));
  }
  else {
    if (!preg_match('(^[0-9a-zA-Z-öüóőúéáűíÖÜÓŐÚÉÁŰÍ\.\s]+$)', $form_state['values']['azonosito'])) {
      // Do not process submit if form validate is false.
      // Go back to form and show error message.
      form_set_error('azonosito', t('Error message'));
    }
  }
}
 
/**
 * Submit urlap_my_form.
 */
function urlap_my_form_submit($form, &$form_state) {
  $form_state['rebuild'] = TRUE;
}
4
0

Üdv!
Dudás József

aboros képe

íme egy view, ami ezt csinálja:

$view = new view;
$view->name = 'node_terms';
$view->description = '';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'node';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->override_option('fields', array(
  'name' => array(
    'label' => '',
    'alter' => array(
      'alter_text' => 0,
      'text' => '',
      'make_link' => 0,
      'path' => '',
      'link_class' => '',
      'alt' => '',
      'prefix' => '',
      'suffix' => '',
      'help' => '',
      'trim' => 0,
      'max_length' => '',
      'word_boundary' => 1,
      'ellipsis' => 1,
      'strip_tags' => 0,
      'html' => 0,
    ),
    'link_to_taxonomy' => 1,
    'exclude' => 0,
    'id' => 'name',
    'table' => 'term_data',
    'field' => 'name',
    'relationship' => 'none',
  ),
  'name_1' => array(
    'label' => '',
    'alter' => array(
      'alter_text' => 0,
      'text' => '',
      'make_link' => 0,
      'path' => '',
      'link_class' => '',
      'alt' => '',
      'prefix' => '',
      'suffix' => '',
      'help' => '',
      'trim' => 0,
      'max_length' => '',
      'word_boundary' => 1,
      'ellipsis' => 1,
      'strip_tags' => 0,
      'html' => 0,
    ),
    'exclude' => 1,
    'id' => 'name_1',
    'table' => 'vocabulary',
    'field' => 'name',
    'relationship' => 'none',
  ),
));
$handler->override_option('arguments', array(
  'nid' => array(
    'default_action' => 'default',
    'style_plugin' => 'default_summary',
    'style_options' => array(),
    'wildcard' => 'all',
    'wildcard_substitution' => 'All',
    'title' => '',
    'breadcrumb' => '',
    'default_argument_type' => 'node',
    'default_argument' => '',
    'validate_type' => 'none',
    'validate_fail' => 'not found',
    'break_phrase' => 0,
    'not' => 0,
    'id' => 'nid',
    'table' => 'node',
    'field' => 'nid',
    'validate_user_argument_type' => 'uid',
    'validate_user_roles' => array(
      '2' => 0,
    ),
    'relationship' => 'none',
    'default_options_div_prefix' => '',
    'default_argument_user' => 0,
    'default_argument_fixed' => '',
    'default_argument_php' => '',
    'validate_argument_node_type' => array(
      'panel' => 0,
      'page' => 0,
      'story' => 0,
    ),
    'validate_argument_node_access' => 0,
    'validate_argument_nid_type' => 'nid',
    'validate_argument_vocabulary' => array(
      '1' => 0,
      '4' => 0,
      '3' => 0,
      '2' => 0,
    ),
    'validate_argument_type' => 'tid',
    'validate_argument_transform' => 0,
    'validate_user_restrict_roles' => 0,
    'validate_argument_php' => '',
  ),
));
$handler->override_option('access', array(
  'type' => 'none',
));
$handler->override_option('cache', array(
  'type' => 'none',
));
$handler->override_option('items_per_page', 0);
$handler->override_option('style_plugin', 'list');
$handler->override_option('style_options', array(
  'grouping' => 'name_1',
  'type' => 'ul',
));

figyeld meg, hogy a node id argumentumként szerepel a nézetben, az urlből szedi a node idt. (ha nem talál, nem jeleníti meg a nézetet.) mezőként a kifejezéseket és a szótárakat tartalmazza, utóbbi nem szerepel a megjelenítésben. listát jelenít meg a szótárak szerint csoportosítva. (azért nem szerepel a szótár a megjelenítésben, mert akkor minden listaelemben szerpelne mégegyszer a szótár neve)

egyelőre egy megjelenítőt se állít elő, mert nem tudom hogyan akarod használni. adj hozzá blokkot vagy panel panet vagy amit gondolsz. (akár minden nodenak lehet egy rss csatornája, ami a kifejezéseit tartalmazza.. nem sok értelmét látom :P de lehet:)

sql lekérdezést semmiképpen ne hegessz a sminkbe, még akkor se, ha szabályosan (drupálosan) csinálod. nem lesz jó neked az, hidd el. úgy általában nem látom értelmét, hogy ehhez a feladathoz bármit is buheráljál kód szinten, még ha a kód tiszta és hibátlan, akkor is értelmetlen, erre van a views.

0
0

-
clear: both;

Paal képe

Gondolom azt csináltad, hogy a Views-ban engedélyezted a "calendar" nézetet. Ez alapértelmezetten a "weboldal.hu/calendar" útvonalon érhető el. A szívatás az a dologban, hogy az alapértelmezett beállításokkal mintegy archívum működik, és a tartalmak létrehozásának/utolsó módosításának dátuma szerint rendezi, jeleníti meg a tartalmakat.

Te nyilván felvettél egy "Datetime" típusú mezőt valamelyik tartalom típusodhoz, és te ez alapján szeretnéd, hogy a tartalmak megjelenjenek a naptárban.

Akkor nézzük az elejétől.

  1. Hozz létre egy új mezőt az adott tartalomban mondjuk "Date" névvel.
  2. Vigyél fel pár node-ot, kitöltött dátummal.
  3. Engedélyezd a Views-ban a "calendar" nézetet, és nyisd meg szerkesztésre. Mindenhol a "Default" nézetet szerkeszted!
  4. A "Default" nézet "Mezők" részében add hozzá (+) a "Tartalom: Dátum - (field_date)" mezőt.
  5. Az "Arguments" részben kattints a "Dátum: Date (node) Tartalom: Updated date" linkre, és szerkesztés módban választ a "Törlés" gombot.
  6. A "Default" nézet "Arguments" részében add hozzá újként (+) a "Dátum: Date (node)" mezőt.
    Beállítások:
    • "Action to take if argument is not present: Provide default argument"
    • "Default argument type: Current date"
    • A "Date field(s):" részben válaszd ki a "Tartalom: Dátum - (field_date)" sort, és kattints a "Frissítés" gombra.
  7. A "Default" nézet "Mentés"e.

Most már (elvileg) ha a "weboldal.hu/calendar" nézetben nem a node utolsó módosításának ideje alapján, hanem a "Date" mezőben megadott dátum alapján rendezi sorba a tartalmakat.

Kicsit bugos pont ez a rész amúgy, fontos a sorrend betartása. Bővebben itt: http://drupal.org/node/350279#comment-1223870

Szóval ha "The calendar_nav style requires a Date argument." hibaüzenetet kapsz, akkor rossz sorrendben csináltad... ;)

Én szépen bele is futottam, amikor próbálgattam a nézetet átalakítani, hogy elkészülhessen ez a leírás.

Kíváncsi vagyok, jó lett-e!

Itt az export:

$view = new view;
$view->name = 'calendar';
$view->description = 'A multi-dimensional calendar view with back/next navigation.';
$view->tag = 'Calendar';
$view->view_php = '';
$view->base_table = 'node';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->override_option('fields', array(
  'title' => array(
    'label' => '',
    'link_to_node' => 1,
    'exclude' => 0,
    'id' => 'title',
    'field' => 'title',
    'table' => 'node',
    'relationship' => 'none',
  ),
  'field_date_value' => array(
    'label' => 'Date',
    'alter' => array(
      'alter_text' => 0,
      'text' => '',
      'make_link' => 0,
      'path' => '',
      'link_class' => '',
      'alt' => '',
      'prefix' => '',
      'suffix' => '',
      'help' => '',
      'trim' => 0,
      'max_length' => '',
      'word_boundary' => 1,
      'ellipsis' => 1,
      'strip_tags' => 0,
      'html' => 0,
    ),
    'link_to_node' => 0,
    'label_type' => 'widget',
    'format' => 'default',
    'multiple' => array(
      'multiple_number' => '',
      'multiple_from' => '',
      'multiple_to' => '',
      'group' => TRUE,
    ),
    'repeat' => array(
      'show_repeat_rule' => '',
    ),
    'fromto' => array(
      'fromto' => 'both',
    ),
    'exclude' => 0,
    'id' => 'field_date_value',
    'table' => 'node_data_field_date',
    'field' => 'field_date_value',
    'relationship' => 'none',
  ),
));
$handler->override_option('arguments', array(
  'date_argument' => array(
    'default_action' => 'default',
    'style_plugin' => 'default_summary',
    'style_options' => array(),
    'wildcard' => 'all',
    'wildcard_substitution' => 'Minden',
    'title' => '',
    'breadcrumb' => '',
    'default_argument_type' => 'date',
    'default_argument' => '',
    'validate_type' => 'none',
    'validate_fail' => 'not found',
    'date_fields' => array(
      'node_data_field_date.field_date_value' => 'node_data_field_date.field_date_value',
    ),
    'year_range' => '-3:+3',
    'date_method' => 'OR',
    'granularity' => 'month',
    'id' => 'date_argument',
    'table' => 'node',
    'field' => 'date_argument',
    'validate_user_argument_type' => 'uid',
    'validate_user_roles' => array(
      '2' => 0,
    ),
    'relationship' => 'none',
    'default_options_div_prefix' => '',
    'default_argument_user' => 0,
    'default_argument_fixed' => '',
    'default_argument_php' => '',
    'validate_argument_node_type' => array(
      'merci_reservation' => 0,
      'merci_reservation_template' => 0,
      'book' => 0,
      'page' => 0,
      'picture' => 0,
      'story' => 0,
    ),
    'validate_argument_node_access' => 0,
    'validate_argument_nid_type' => 'nid',
    'validate_argument_vocabulary' => array(),
    'validate_argument_type' => 'tid',
    'validate_argument_transform' => 0,
    'validate_user_restrict_roles' => 0,
    'validate_argument_php' => '',
  ),
));
$handler->override_option('filters', array(
  'status' => array(
    'operator' => '=',
    'value' => 1,
    'group' => '0',
    'exposed' => FALSE,
    'expose' => array(
      'operator' => FALSE,
      'label' => '',
    ),
    'id' => 'status',
    'table' => 'node',
    'field' => 'status',
    'relationship' => 'none',
  ),
));
$handler->override_option('access', array(
  'type' => 'none',
  'role' => array(),
  'perm' => '',
));
$handler->override_option('cache', array(
  'type' => 'none',
));
$handler->override_option('title', 'Calendar');
$handler->override_option('header_empty', 1);
$handler->override_option('items_per_page', 0);
$handler->override_option('use_more', 0);
$handler->override_option('style_plugin', 'calendar_nav');
$handler = $view->new_display('calendar', 'Calendar page', 'calendar_1');
$handler->override_option('path', 'calendar');
$handler->override_option('menu', array(
  'type' => 'none',
  'title' => '',
  'description' => '',
  'weight' => 0,
  'name' => 'navigation',
));
$handler->override_option('tab_options', array(
  'type' => 'none',
  'title' => '',
  'description' => '',
  'weight' => 0,
));
$handler->override_option('calendar_colors', array(
  '0' => array(),
));
$handler->override_option('calendar_colors_vocabulary', array());
$handler->override_option('calendar_colors_taxonomy', array());
$handler->override_option('calendar_popup', 0);
$handler->override_option('calendar_date_link', '');
$handler = $view->new_display('calendar_block', 'Calendar block', 'calendar_block_1');
$handler->override_option('block_description', 'Calendar');
$handler->override_option('block_caching', -1);
$handler = $view->new_display('calendar_period', 'Year view', 'calendar_period_1');
$handler->override_option('style_plugin', 'calendar_style');
$handler->override_option('style_options', array(
  'display_type' => 'year',
  'name_size' => 1,
  'max_items' => 0,
));
$handler->override_option('attachment_position', 'after');
$handler->override_option('inherit_arguments', TRUE);
$handler->override_option('inherit_exposed_filters', TRUE);
$handler->override_option('displays', array(
  'calendar_1' => 'calendar_1',
  'default' => 0,
  'calendar_block_1' => 0,
));
$handler->override_option('calendar_type', 'year');
$handler = $view->new_display('calendar_period', 'Month view', 'calendar_period_2');
$handler->override_option('style_plugin', 'calendar_style');
$handler->override_option('style_options', array(
  'display_type' => 'month',
  'name_size' => '99',
  'with_weekno' => '1',
  'date_fields' => NULL,
  'max_items' => 0,
));
$handler->override_option('attachment_position', 'after');
$handler->override_option('inherit_arguments', TRUE);
$handler->override_option('inherit_exposed_filters', TRUE);
$handler->override_option('displays', array(
  'calendar_1' => 'calendar_1',
  'default' => 0,
  'calendar_block_1' => 0,
));
$handler->override_option('calendar_type', 'month');
$handler = $view->new_display('calendar_period', 'Day view', 'calendar_period_3');
$handler->override_option('style_plugin', 'calendar_style');
$handler->override_option('style_options', array(
  'name_size' => '99',
  'with_weekno' => 0,
  'max_items' => 0,
  'max_items_behavior' => 'more',
  'groupby_times' => 'hour',
  'groupby_times_custom' => '',
  'groupby_field' => '',
));
$handler->override_option('attachment_position', 'after');
$handler->override_option('inherit_arguments', TRUE);
$handler->override_option('inherit_exposed_filters', TRUE);
$handler->override_option('displays', array(
  'calendar_1' => 'calendar_1',
  'default' => 0,
  'calendar_block_1' => 0,
));
$handler->override_option('calendar_type', 'day');
$handler = $view->new_display('calendar_period', 'Week view', 'calendar_period_4');
$handler->override_option('style_plugin', 'calendar_style');
$handler->override_option('style_options', array(
  'name_size' => '99',
  'with_weekno' => 0,
  'max_items' => 0,
  'max_items_behavior' => 'more',
  'groupby_times' => 'hour',
  'groupby_times_custom' => '',
  'groupby_field' => '',
));
$handler->override_option('attachment_position', 'after');
$handler->override_option('inherit_arguments', TRUE);
$handler->override_option('inherit_exposed_filters', TRUE);
$handler->override_option('displays', array(
  'calendar_1' => 'calendar_1',
  'default' => 0,
  'calendar_block_1' => 0,
));
$handler->override_option('calendar_type', 'week');
$handler = $view->new_display('calendar_period', 'Block view', 'calendar_period_5');
$handler->override_option('style_plugin', 'calendar_style');
$handler->override_option('style_options', array(
  'display_type' => 'month',
  'name_size' => '1',
));
$handler->override_option('attachment_position', 'after');
$handler->override_option('inherit_arguments', TRUE);
$handler->override_option('inherit_exposed_filters', TRUE);
$handler->override_option('displays', array(
  'calendar_1' => 0,
  'default' => 0,
  'calendar_block_1' => 'calendar_block_1',
));
$handler->override_option('calendar_type', 'month');
$handler = $view->new_display('block', 'Upcoming', 'block_1');
$handler->override_option('fields', array(
  'title' => array(
    'label' => '',
    'link_to_node' => 1,
    'exclude' => 0,
    'id' => 'title',
    'field' => 'title',
    'table' => 'node',
    'relationship' => 'none',
    'format' => 'default',
  ),
  'changed' => array(
    'label' => '',
    'link_to_node' => 0,
    'exclude' => 0,
    'id' => 'changed',
    'field' => 'changed',
    'table' => 'node',
    'relationship' => 'none',
    'date_format' => 'small',
    'format' => 'default',
  ),
));
$handler->override_option('arguments', array());
$handler->override_option('filters', array(
  'status' => array(
    'operator' => '=',
    'value' => 1,
    'group' => '0',
    'exposed' => FALSE,
    'expose' => array(
      'operator' => FALSE,
      'label' => '',
    ),
    'id' => 'status',
    'table' => 'node',
    'field' => 'status',
    'relationship' => 'none',
  ),
  'date_filter' => array(
    'operator' => '>=',
    'value' => array(
      'value' => NULL,
      'min' => NULL,
      'max' => NULL,
      'default_date' => 'now',
      'default_to_date' => '',
    ),
    'group' => '0',
    'exposed' => FALSE,
    'expose' => array(
      'operator' => FALSE,
      'label' => '',
    ),
    'date_fields' => array(
      'node.changed' => 'node.changed',
    ),
    'granularity' => 'day',
    'form_type' => 'date_select',
    'default_date' => 'now',
    'default_to_date' => '',
    'id' => 'date_filter',
    'table' => 'node',
    'field' => 'date_filter',
    'override' => array(
      'button' => 'Use default',
    ),
    'relationship' => 'none',
  ),
));
$handler->override_option('title', 'Upcoming');
$handler->override_option('items_per_page', 5);
$handler->override_option('use_more', 1);
$handler->override_option('style_plugin', 'list');
$handler->override_option('style_options', array(
  'grouping' => '',
  'type' => 'ul',
));
$handler->override_option('block_description', 'Upcoming');
$handler->override_option('block_caching', -1);
0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

mat323 képe

Kedves Webappz! Köszönöm a részletes megoldásodat, de sajnos elakadtam a megvalósítása közben.

Először is beszúrtam a template.php végére:

function phptemplate_user_login_block() {
  $form = array(
    '#action' => url($_GET['q'], drupal_get_destination()),
    '#id' => 'user-login-form',
    '#base' => 'user_login',
  );
  $form['name'] = array('#type' => 'textfield',
    '#title' => t('Username'),
    '#maxlength' => USERNAME_MAX_LENGTH,
    '#size' => 15,
    '#required' => TRUE,
  );
  $form['pass'] = array('#type' => 'password',
    '#title' => t('Password'),
    '#maxlength' => 60,
    '#size' => 15,
    '#required' => TRUE,
  );
  $form['submit'] = array('#type' => 'submit',
    '#value' => t('Log in'),
    '#id' => t('elfogad'),
  );
  $items = array();
  if (variable_get('user_register', 1)) {
    $items[] = l(t('Create new account'), 'user/register', array('title' => t('Create a new user account.')));
  }
  $items[] = l(t('Request new password'), 'user/password', array('title' => t('Request new password via e-mail.')));
  $form['links'] = array('#value' => theme('item_list', $items));
  return _phptemplate_callback('user-login-block', array('form' => $form));
}

Sajnos ott akadtam el, hogy mi legyen a user-login-block.tpl.php file tartalma? :(

Ezzel próbálkoztam, de a bejelentkező űrlap helyén csak az "array" felirat jelenik meg

  <div class="block block-<?php print $block->module; ?>" id="block-<?php print $block->module; ?>-<?php print $block->delta; ?>">
    <h2 class="title">
      <?php print $block->subject; ?>
    </h2>
    <div class="content">
    <div class="elfogad">
      <?php print $block->content; ?>
      <?php print $form; ?>
    </div>
    </div>
  </div>

Próbálkoztam ezzel is:

<?php return drupal_render($form); ?>
0
0
zoliky képe

Mukodik ha igy csianalom:

function mytheme_item_list($items = array(), $title = NULL, $type = 'ul', $attributes = NUL) {
   $output = '';
   if(variable_get('node_counter', 0) % 2 == 0) $output = '<div class="right"></div><hr size="1" class="cleaner" /></div>'; 
    $output .= '<div class="item-list">';
  if (isset($title)) {
    $output .= '<h3>'. $title .'</h3>';
  }
 
  if (!empty($items)) {
    $output .= "<$type". drupal_attributes($attributes) .'>';
    $num_items = count($items);
    foreach ($items as $i => $item) {
      $attributes = array();
      $children = array();
      if (is_array($item)) {
        foreach ($item as $key => $value) {
          if ($key == 'data') {
            $data = $value;
          }
          elseif ($key == 'children') {
            $children = $value;
          }
          else {
            $attributes[$key] = $value;
          }
        }
      }
      else {
        $data = $item;
      }
      if (count($children) > 0) {
        $data .= theme_item_list($children, NULL, $type, $attributes); // Render nested list
      }
      if ($i == 0) {
        $attributes['class'] = empty($attributes['class']) ? 'first' : ($attributes['class'] .' first');
      }
      if ($i == $num_items - 1) {
        $attributes['class'] = empty($attributes['class']) ? 'last' : ($attributes['class'] .' last');
      }
      $output .= '<li'. drupal_attributes($attributes) .'>'. $data ."</li>\n";
    }
    $output .= "</$type>";
  }
  $output .= '</div>';
  return $output;
}

Megis nem lehetne megoldani anelkul, hogy ezt az egesz kodot berakjam a template.php fajlba ? Kicsit tul sok egy apro modositasert.

0
0
nevergone képe

Én egy elég csúnya megoldást választottam, ha lesz időm, akkor kijavítom, de tény: működik.
Van egy tartalomtípus, amely tartalmazza a banner képét, és a linket, amelyre mutatni fog. A modul neve ptbanner

ptbanner.info

name = PT bannerkezelés
description = PT bannerek megjelenítése
package = PT
version = 6.x-1.0
core = 6.x

ptbanner.module

<?php
 
/* hook_block() implementáció */
function ptbanner_block($op = 'list', $delta = 0, $edit = array())  {
  $cucc = theme('ptbanner_block_output');
  switch ($op) {
    case 'list':
      for ($i=0; $i<7; $i++)  {
        $block[$i]['info'] = 'PT banner '.$i;
        $block[$i]['cache'] = BLOCK_NO_CACHE;
      }
      return $block;
    case 'view':
      $banner_elem = theme('ptbanner_block_output');
      $block['content'] = '<a href="'.$banner_elem['banner_link_url'][$delta].'"><img src="/'.$banner_elem['banner_kep_url'][$delta].'"></a>';
      return $block;
  }
}
 
 
/* hook_theme() implementáció */
function ptbanner_theme($existing, $type, $theme, $path)  {
  return array(
    'ptbanner_block_output' => array(
      'arguments' => array()
    ),
  );
}
 
 
// TODO: elég csúnya megoldás, javítani kell!!!
function ptbanner_sql() {
  $result = db_query (db_rewrite_sql ("SELECT DISTINCT ctb.field_banner_kep_fid, ctb.field_banner_link_url FROM {node} n
              INNER JOIN {content_type_banner} ctb ON n.nid = ctb.nid WHERE n.type = '%s' AND n.status = 1 ORDER BY RAND() LIMIT 7"), 'banner');
  while ($banner = db_fetch_array($result)) {
    $output['banner_link_url'][] = $banner['field_banner_link_url'];
    $result2 = db_query (db_rewrite_sql ("SELECT filepath FROM {files} f WHERE f.fid = '%d'"), $banner['field_banner_kep_fid']);
    while ($banner_img = db_fetch_array($result2))
      $output['banner_kep_url'][] = $banner_img['filepath'];
  }
  return $output;
}
 
 
/* sminkfüggvény a megjelenítéshez */
function theme_ptbanner_block_output() {
  static $result;
  if (!$result)
    $result = ptbanner_sql();
  $output = $result;
  return $output;
}
?>

Az eredményt itt találod.
(Mielőtt valaki megfed: nem vagyok SQL guru.) :)

0
0