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
Sk8erPeter képe

Legegyszerűbb megoldás az, ha egy #after_builddel egy tetszőleges modulban megadsz egy függvényt, amivel eltünteted a formot, ha nem a magyar nyelvű felületet használják.
De ettől még a magyar nyelvű felületet böngészve persze a külföldi felhasználók is ugyanúgy be fognak tudni jelentkezni vagy regisztrálni!

Példa:

  1. /**
  2.  * Denying registering or logging in when not using the Hungarian interface
  3.  */
  4. function YOURMODULE_deny_login_or_register_form_after_build(&$form, &$form_state) {
  5. global $language;
  6. if ($language->language !== 'hu') {
  7. $form = array();
  8.  
  9. $form['login_or_register_denied'] = array(
  10. '#value' => '<div class="form-item">' . t("We're sorry, but logging in or registering is currently enabled only for Hungarian users.") . '</div>'
  11. );
  12. }
  13.  
  14. return $form;
  15. }
  16.  
  17. /**
  18.  * Implementation of hook_form_FORM_ID_alter()
  19.  */
  20. function YOURMODULE_form_user_login_alter(&$form, &$form_state) {
  21. $form['#after_build'][] = 'YOURMODULE_deny_login_or_register_form_after_build';
  22. }
  23.  
  24. /**
  25.  * Implementation of hook_form_FORM_ID_alter()
  26.  */
  27. function YOURMODULE_form_user_login_block_alter(&$form, &$form_state) {
  28. $form['#after_build'][] = 'YOURMODULE_deny_login_or_register_form_after_build';
  29. }
  30.  
  31. /**
  32.  * Implementation of hook_form_FORM_ID_alter()
  33.  */
  34. function YOURMODULE_form_user_register_alter(&$form, &$form_state) {
  35. $form['#after_build'][] = 'YOURMODULE_deny_login_or_register_form_after_build';
  36. }

Teszteltem, működik: ha nem a magyar nyelvű felületen keresztül próbálnak regelni vagy bejelentkezni, akkor megjeleníti a figyelmeztetést. De ez persze csak előszűrőnek jó.
(YOURMODULE persze mindenhol helyettesítendő a saját modulod machine name-jével.)

0
0
jason30 képe

azért hittem, hogy drupal kérdés, mert egy másik honlapomon felhasználtam egy dátumot és időt kiíró php-t, ahol az tökéletesen jeleníti meg az időt, drupal alatt viszon valamiért 6 órával kevesebbet ír ki:

/*********************************************************************
* Azonosító: 1   --  2006. 02. 16.                                   *
* Azonosító: 2   --  2006. 02. 16. 20 óra 32 perc                    *
* Azonosító: 3   --  2006. 02. 16. 20 óra 32 perc 29 másodperc       *
* Azonosító: 4   --  2006. 02. 16. 20:32                             *
* Azonosító: 5   --  2006. 02. 16. 20:32:29                          *
* Azonosító: 6   --  2006. február 16.                               *
* Azonosító: 7   --  2006. február 16. 20 óra 32 perc                *
* Azonosító: 8   --  2006. február 16. 20 óra 32 perc 29 másodperc   *
* Azonosító: 9   --  2006. február 16. 20:32                         *
* Azonosító: 10  --  2006. február 16. 20:32:29                      *
* ------------------------------------------------------------------ *
* Azonosító: 11  --  2006/02/16                                      *
* Azonosító: 12  --  2006/02/16 20:32                                *
* Azonosító: 13  --  2006/02/16 20:32:29                             *
* Azonosító: 14  --  06/02/16                                        *
* Azonosító: 15  --  06/02/16 20:32                                  *
* Azonosító: 16  --  06/02/16 20:32:29                               *
* ------------------------------------------------------------------ *
* Azonosító: 17  --  02/16/2006                                      *
* Azonosító: 18  --  02/16/2006 20:32                                *
* Azonosító: 19  --  02/16/2006 20:32:29                             *
* Azonosító: 20  --  02/16/06                                        *
* Azonosító: 21  --  02/16/06 20:32                                  *
* Azonosító: 22  --  02/16/06 20:32:29                               *
*********************************************************************/
 
function Date_and_Time($azonosito = 0, $nap = 0)
{
// Dátumadatok megszerzése
$y = date("Y");
$m = date("m");
$f = date("F");
$j = date("j");
$l = date("l");
$h = date("H");
$i = date("i");
$s = date("s");
$y2 = substr($y, 2);
 
// Hónapnév magyarrá alakítása
switch($f)
	{
	case "January":
		$f = "Január";
		break;
	case "February":
		$f = "Február";
		break;
	case "March":
		$f = "Március";
		break;
	case "April":
		$f = "Április";
		break;
	case "May":
		$f = "Május";
		break;
	case "June":
		$f = "Június";
		break;
	case "July":
		$f = "Július";
		break;
	case "August":
		$f = "Augusztus";
		break;
	case "September":
		$f = "Szeptember";
		break;
	case "October":
		$f = "Október";
		break;
	case "November":
		$f = "November";
		break;
	case "December":
		$f = "December";
		break;
	}
 
// Napnév magyarrá alakítása
switch($l)
	{
	case "Monday":
		$l = "Hétfő";
		break;
	case "Tuesday":
		$l = "Kedd";
		break;
	case "Wednesday":
		$l = "Szerda";
		break;
	case "Thursday":
		$l = "Csütörtök";
		break;
	case "Friday":
		$l = "Péntek";
		break;
	case "Saturday":
		$l = "Szombat";
		break;
	case "Sunday":
		$l = "Vasárnap";
		break;
	}
 
// Dátum - és időforma meghatározása azonosító alapján	
switch($azonosito)
	{
	case "1":
		$printer = $y . ". " . $m . ". " . $j . ".";
		break;
	case "2":
		$printer = $y . ". " . $m . ". " . $j . ". " . $h . " óra " . $i . " perc";
		break;
	case "3":
		$printer = $y . ". " . $m . ". " . $j . ". " . $h . " óra " . $i . " perc " . $s . " másodperc";
		break;
	case "4":
		$printer = $y . ". " . $m . ". " . $j . ". " . $h . ":" . $i;
		break;
	case "5":
		$printer = $y . ". " . $m . ". " . $j . ". " . $h . ":" . $i . ":" . $s;
		break;
	case "6":
		$printer = $y . ". " . $f . " " . $j . ".";
		break;
	case "7":
		$printer = $y . ". " . $f . " " . $j . ". " . $h . " óra " . $i . " perc";
		break;
	case "8":
		$printer = $y . ". " . $f . " " . $j . ". " . $h . " óra " . $i . " perc " . $s . " másodperc";
		break;
	case "9":
		$printer = $y . ". " . $f . " " . $j . ". " . $h . ":" . $i;
		break;
	case "10":
		$printer = $y . ". " . $f . " " . $j . ". " . $h . ":" . $i . ":" . $s;
		break;
	case "11":
		$printer = $y . "/" . $m . "/" . $j;
		break;
	case "12":
		$printer = $y . "/" . $m . "/" . $j . " " . $h . ":" . $i;
		break;
	case "13":
		$printer = $y . "/" . $m . "/" . $j . " " . $h . ":" . $i . ":" . $s;
		break;
	case "14":
		$printer = $y2 . "/" . $m . "/" . $j;
		break;
	case "15":
		$printer = $y2 . "/" . $m . "/" . $j . " " . $h . ":" . $i;
		break;
	case "16":
		$printer = $y2 . "/" . $m . "/" . $j . " " . $h . ":" . $i . ":" . $s;
		break;
	case "17":
		$printer = $m . "/" . $j . "/" . $y;
		break;
	case "18":
		$printer = $m . "/" . $j . "/" . $y . " " . $h . ":" . $i;
		break;
	case "19":
		$printer = $m . "/" . $j . "/" . $y . " " . $h . ":" . $i . ":" . $s;
		break;
	case "20":
		$printer = $m . "/" . $j . "/" . $y2;
		break;
	case "21":
		$printer = $m . "/" . $j . "/" . $y2 . " " . $h . ":" . $i;
		break;
	case "22":
		$printer = $m . "/" . $j . "/" . $y2 . " " . $h . ":" . $i . ":" . $s;
		break;
	default:
		$printer = "Az azonosító értékének 1 és 22 közé kell esnie!";
		break;
	}
 
// Napnév hozzáfűzése
if($nap == 1)
	{
	$printer = $l . ", " . $printer;
	}
elseif($nap == 2)
	{
	$printer .= ", " . $l;
	}
print($printer);
}
0
0
jodri2003 képe

Igen, pontosan ez volt a probléma. Sajnos az általad írt kódrészlet nincs benne a belinkelt helyen, pedig szerintem nagyon ott lenne a helye.
A kód egyébként nem titkos, íme:

/**
 * @file
 * Kaszói nevezést megvalósító modul 2010-ben.
 */
 
/**
 * Implementation of hook_menu().
 */
function kaszo_menu() {
	//global $user;
	$items = array();
 
	$items['kaszonevezesiurlap'] = array(
			'title' => 'Kaszó nevezési űrlap',
			'page callback' => 'kaszo_page',
			'access arguments' => array('access content'),
			'type' => MENU_CALLBACK);
	$items['kaszonevezesilista'] = array(
			'title' => 'Rajtlista',
			'page callback' => 'kaszo_page_list',
			'access arguments' => array('access content'),
			'type' => MENU_CALLBACK);
 
	return $items;
}
 
/**
 * Menu callback; displays a Drupal page containing recent kaszo entries.
 */
 function kaszo_page($a = NULL, $b = NULL) {
 
	//print theme('page','<p>Az előnevezési határidő lejárt. További nevezéseket a helyszínen fogadunk, a nevezési kiírásnak megfelelően.</p>Rendezőség');
 
	return kaszofeldolgoz_page();
}
 
function kaszofeldolgoz_page() {
	return drupal_get_form('kaszo_form');
}
 
 
function kaszo_form($form_state) {
	$options1= array('1' => 'Igen', '0' => 'Nem');
	$options2= array('1' => 'Férfi', '0' => 'Nő');
 
	//fejléc kezdete	
	$form['csapatvez'] = array(
			'#type' => 'fieldset',
			'#title' => 'Csapatvezető',
			'#tree' => TRUE,
			);
	$form['csapatvez']['neve'] = array(
			'#type' => 'textfield',
			'#title' => 'Csapatvezető neve',
			'#default_value' =>  variable_get('neve', ''),
			'#required' => true ,
			'#description' => 'Ide írd a csapatvezető nevét vagy egyénileg nevező esetén a teljes nevedet. A csapatvezető az a személy aki a nevezési irodán a csapat nevezési csomagját egyben veszi át. A nevezési irodába technikai okok miatt csak a csapatvezető léphet be.',
			);
 
	$form['csapatvez']['email'] = array(
			'#type' => 'textfield',
			'#title' => 'Csapatvezető e-mail címe',
			'#default_value' => variable_get('email', ''),
			'#required' => true ,
			'#description' => 'A létező e-mail címe a csapatvezetőnek, melyen a kapcsolatot szeretné tartani.',
			);
 
 
	// Description Versenyzők szakasz kezdete
 
 
	$form['details'] = array(
			'#type' => 'fieldset',
			'#title' => 'Versenyzők'			
			);
 
	for ($i=1; $i<=30; $i++) {
 
		$form['details']['neve'.$i] = array(
				'#type' => 'textfield',
				'#title' => '',
				'#size' => 30,
				'#maxlength' => 30,
				'#default_value' =>  variable_get('neve' . $i , ''),
				'#description' => $i.'. Versenyző neve',
				'#prefix' => '<tr><td class="kaszosorneve">',
				'#suffix' => '</td>',
				);
		$form['details']['ev'.$i] = array(
				'#type' => 'textfield',
				'#title' => '',
				'#size' => 5,
				'#maxlength' => 4,
				'#default_value' =>  variable_get('ev' . $i , ''),
				'#description' => '',
				'#prefix' => '<td class="kaszosorev">',
				'#suffix' => '</td>',
				);
 
 
		$form['details']['neme'.$i] = array(
				'#type' => 'select',
				'#title' => '',
				'#size' => 1,
				'#maxlength' => 4,
				'#options' => $options2,
				'#default_value' =>  variable_get('neme' . $i , 1),
				'#description' => '',
				'#prefix' => '<td class="kaszosorneme">',
				'#suffix' => '</td>',
				);
 
		$form['details']['egyesulet'.$i] = array(
				'#type' => 'textfield',
				'#title' => '',
				'#size' => 30,
				'#maxlength' => 30,
				'#default_value' =>  variable_get('egyesulet' . $i , ''),
				'#description' => '',
				'#prefix' => '<td class="kaszosoregyesulet">',
				'#suffix' => '</td>',
				);
 
		$form['details']['licenc'.$i] = array(
				'#type' => 'textfield',
				'#title' => '',
				'#size' => 7,
				'#maxlength' => 10,
				'#default_value' =>  variable_get('licenc' . $i , ''),
				'#description' => '',
				'#prefix' => '<td class="kaszosorlicenc">',
				'#suffix' => '</td>',
				);
 
		$form['details']['ironmanoke'.$i] = array(
				'#type' => 'select',
				'#title' => '',
				'#size' => 1,
				'#maxlength' => 10,
				'#options' => $options1 ,
				'#default_value' =>  variable_get('ironmanoke' . $i , 0),
				'#description' => '',
				'#prefix' => '<td class="kaszosorironmanoke">',
				'#suffix' => '</td></tr>',
				);
 
 
	}
 
 
	$form['hidden'] = array('#type' => 'value', '#value' => 'is_it_here');
	$form['submit'] = array('#type' => 'submit', '#value' => t('Beküldés'));
 
	$form['details']['neve1']+=array('#required' => true);
	$form['details']['ev1']+=array('#required' => true);
	$form['details']['egyesulet1']+=array('#required' => true);
 
	return $form;
}
 
function theme_kaszo_form($form) {
	drupal_add_css(drupal_get_path('module', 'kaszo') .'/kaszo.css');
	//drupal_add_css(drupal_get_path('module', 'kaszo') .'/kaszoprint.css','module','print');
 
	$output = '';
	$output .= '<div class="formblokknevez">';
	$output .= drupal_render($form['csapatvez']);
	$output .= drupal_render($form['csapatvez']['neve']);
	$output .= drupal_render($form['csapatvez']['email']);
 
 
	//$output .= drupal_render($form['details']);
 
	$output .='
			<table>
			<tr>
			<td class=kaszosorneve>Versenyző neve</td>
			<td class=kaszosorev>Sz.év</td>
			<td class=kaszosorneme>Neme</td>
			<td class=kaszosoregyesulet>Egyesület</td>
			<td class=kaszosorlicenc>Licenc</td>
			<td class=kaszosorironmanoke>Ironmanre neveztem</td>
			</tr>
			</table><table>';
 
	for ($i=1;$i<=30;$i++)
	{
		$output .= drupal_render($form['details']['neve'.$i]);
		$output .= drupal_render($form['details']['ev'.$i]);
		$output .= drupal_render($form['details']['neme'.$i]);
		$output .= drupal_render($form['details']['egyesulet'.$i]);
		$output .= drupal_render($form['details']['licenc'.$i]);
		$output .= drupal_render($form['details']['ironmanoke'.$i]);
	}
 
	$output .= '</table></div>';
	$output .= drupal_render($form['submit']);
 
	$output .= drupal_render($form);
	return $output;
}
 
function kaszo_theme() {
 
return array(
    'kaszo_form' => array(
      'arguments' => array('form' => NULL),
    ),
  );
}

És természetesen köszönet a gyors segítségért.
Jodri

0
0