Random fejléckép

Csete Attila képe

Sziasztok!

Szeretnék egy random fejlécképes megoldást Drupal 5 alatt és a zen sminket használva.

Konkrétan ilyen modult nem találtam.

Tudnátok segíteni, hogyan tudom ezt megoldani egyszerűen.
(nem vagyok programozó, tehát ha kódolás, akkor úgy írjátok légyszi mint a hülyéknek)

Köszi
Attila

Drupal verzió: 
Fórum: 
aboros képe

most hirtelen nem tudok előrántani egy működő drupal 5 + zen kombót, de kb ezt kellene csinálnod:

sminked mappájába csinálsz egy "header" mappát (mondjuk) és ebbe másolod bele a képeket, amiket random fejléc háttérnek akarsz használni. az egyszerűség kedvéért csináld azt, hogy mindegyik jpg legyen és sorszámok legyenek a filenevek. tehát: 0.jpg, 1.jpg, 2.jpg ... 42.jpg .. stb. jegyezd meg, hogy hány darab van. most a példában 10 lesz.

a sminked template.php -ját egészítsd ki ezzel:

function SMINKEDNEVE_random_header() {
  $image_num = random(10); //vagy amennyi képed van
  return 'style="background: transparent url(' . base_path() . path_to_theme() . '/header/' . $image_num . '.jpg) no-repeat scroll left top;"';
}

a sminked page.tpl.php -jában keress egy olyan részt, hogy:

<div id="header">

ezt kéne ilyenre változtatni:

<div id="header" <?php print SMINKEDNEVE_random_header(); ?>>

a sminked css filejaiból szedj ki minden olyan dolgot, ami a #header idhez rendel background tulajdonságot. töröld a kesst, frissíts és elvileg mennie is kell.

nem próbáltam ki, remélem működik, ha mégse, akkor kérdezz bátran, írd le, hogy mi nem működik.

0
0

-
clear: both;

Csete Attila képe

Szia!

Először is köszi, hogy segítesz és Buék!

Írtam, hogy nem lesz egyszerű velem.

Végigmentem a lépéseken.

Az eredmény fehér halál lett. Azt kiderítettem, hogy a template.php miatt.

Speckó helyre kellett volna szúrnom a kódot? Mit ronthattam el.

Üdv
Attila

0
0
aboros képe

az egész template.php -t másold ide légyszi, ami a fehér halált okozza.

0
0

-
clear: both;

Csete Attila képe

<?php
// $Id: template.php,v 1.1.2.2 2008/04/20 23:25:07 johnalbin Exp $
 
/**
 * @file
 *
 * OVERRIDING THEME FUNCTIONS
 *
 * The Drupal theme system uses special theme functions to generate HTML output
 * automatically. Often we wish to customize this HTML output. To do this, we
 * have to override the theme function. You have to first find the theme
 * function that generates the output, and then "catch" it and modify it here.
 * The easiest way to do it is to copy the original function in its entirety and
 * paste it here, changing the prefix from theme_ to phptemplate_ or zen_. For
 * example:
 *
 *   original: theme_breadcrumb()
 *   theme override: zen_breadcrumb()
 *
 * DIFFERENCES BETWEEN ZEN SUB-THEMES AND NORMAL DRUPAL SUB-THEMES
 *
 * The Zen theme allows its sub-themes to have their own template.php files. The
 * only restriction with these files is that they cannot redefine any of the
 * functions that are already defined in Zen's main template files:
 *   template.php, template-menus.php, and template-subtheme.php.
 * Every theme override function used in those files is documented below in this
 * file.
 *
 * Also remember that the "main" theme is still Zen, so your theme override
 * functions should be named as such:
 *  theme_block()      becomes  zen_block()
 *  theme_feed_icon()  becomes  zen_feed_icon()  as well
 *
 * However, there are two exceptions to the "theme override functions should use
 * 'zen' and not 'mytheme'" rule. They are as follows:
 *
 * Normally, for a theme to define its own regions, you would use the
 * THEME_regions() fuction. But for a Zen sub-theme to define its own regions,
 * use the function name
 *   eneklesponthu_alap_regions()
 * where eneklesponthu_alap is the name of your sub-theme. For example, the zen_classic
 * theme would define a zen_classic_regions() function.
 *
 * For a sub-theme to add its own variables, instead of _phptemplate_variables,
 * use these functions:
 *   eneklesponthu_alap_preprocess_page(&$vars)     to add variables to the page.tpl.php
 *   eneklesponthu_alap_preprocess_node(&$vars)     to add variables to the node.tpl.php
 *   eneklesponthu_alap_preprocess_comment(&$vars)  to add variables to the comment.tpl.php
 *   eneklesponthu_alap_preprocess_block(&$vars)    to add variables to the block.tpl.php
 */
 
 
/*
 * Initialize theme settings
 */
include_once 'theme-settings-init.php';
 
 
/*
 * Sub-themes with their own page.tpl.php files are seen by PHPTemplate as their
 * own theme (seperate from Zen). So we need to re-connect those sub-themes
 * with the main Zen theme.
 */
include_once './'. drupal_get_path('theme', 'zen') .'/template.php';
 
 
/*
 * Add the stylesheets you will need for this sub-theme.
 *
 * To add stylesheets that are in the main Zen folder, use path_to_theme().
 * To add stylesheets thar are in your sub-theme's folder, use path_to_subtheme().
 */
 
// Add any stylesheets you would like from the main Zen theme.
drupal_add_css(path_to_theme() .'/html-elements.css', 'theme', 'all');
drupal_add_css(path_to_theme() .'/tabs.css', 'theme', 'all');
 
// Then add styles for this sub-theme.
drupal_add_css(path_to_subtheme() .'/layout.css', 'theme', 'all');
drupal_add_css(path_to_subtheme() .'/eneklesponthu_alap.css', 'theme', 'all');
 
// Avoid IE5 bug that always loads @import print stylesheets
zen_add_print_css(path_to_subtheme() .'/print.css');
 
 
 
/**
 * Declare the available regions implemented by this theme.
 *
 * @return
 *   An array of regions.
 */
/* -- Delete this line if you want to use this function
function eneklesponthu_alap_regions() {
  return array(
    'left' => t('left sidebar'),
    'right' => t('right sidebar'),
    'navbar' => t('navigation bar'),
    'content_top' => t('content top'),
    'content_bottom' => t('content bottom'),
    'header' => t('header'),
    'footer' => t('footer'),
    'closure_region' => t('closure'),
  );
}
// */
 
 
/**
 * Return a themed breadcrumb trail.
 *
 * @param $breadcrumb
 *   An array containing the breadcrumb links.
 * @return
 *   A string containing the breadcrumb output.
 */
/* -- Delete this line if you want to use this function
function zen_breadcrumb($breadcrumb) {
  return '<div class="breadcrumb">'. implode(' › ', $breadcrumb) .' ›</div>';
}
// */
 
 
/**
 * Override or insert PHPTemplate variables into all templates.
 *
 * @param $vars
 *   A sequential array of variables to pass to the theme template.
 * @param $hook
 *   The name of the theme function being called (name of the .tpl.php file.)
 */
/* -- Delete this line if you want to use this function
function eneklesponthu_alap_preprocess(&$vars, $hook) {
  $vars['sample_variable'] = t('Lorem ipsum.');
}
// */
 
/**
 * Override or insert PHPTemplate variables into the page templates.
 *
 * @param $vars
 *   A sequential array of variables to pass to the theme template.
 */
/* -- Delete this line if you want to use this function
function eneklesponthu_alap_preprocess_page(&$vars) {
  $vars['sample_variable'] = t('Lorem ipsum.');
}
// */
 
/**
 * Override or insert PHPTemplate variables into the node templates.
 *
 * @param $vars
 *   A sequential array of variables to pass to the theme template.
 */
/* -- Delete this line if you want to use this function
function eneklesponthu_alap_preprocess_node(&$vars) {
  $vars['sample_variable'] = t('Lorem ipsum.');
}
// */
 
/**
 * Override or insert PHPTemplate variables into the comment templates.
 *
 * @param $vars
 *   A sequential array of variables to pass to the theme template.
 */
/* -- Delete this line if you want to use this function
function eneklesponthu_alap_preprocess_comment(&$vars) {
  $vars['sample_variable'] = t('Lorem ipsum.');
}
// */
 
/**
 * Override or insert PHPTemplate variables into the block templates.
 *
 * @param $vars
 *   A sequential array of variables to pass to the theme template.
 */
/* -- Delete this line if you want to use this function
function eneklesponthu_alap_preprocess_block(&$vars) {
  $vars['sample_variable'] = t('Lorem ipsum.');
}
// */
 
 
/**
 * Override the Drupal search form using the search-theme-form.tpl.php file.
 */
/* -- Delete this line if you want to use this function
function phptemplate_search_theme_form($form) {
  return _phptemplate_callback('search_theme_form', array('form' => $form), array('search-theme-form'));
}
// */
 
/**
 * Generate the HTML representing a given menu item ID.
 *
 * An implementation of theme_menu_item_link()
 *
 * @param $item
 *   array The menu item to render.
 * @param $link_item
 *   array The menu item which should be used to find the correct path.
 * @return
 *   string The rendered menu item.
 */
/* -- Delete this line if you want to use this function
function zen_menu_item_link($item, $link_item) {
  // If an item is a LOCAL TASK, render it as a tab
  $tab = ($item['type'] & MENU_IS_LOCAL_TASK) ? TRUE : FALSE;
  return l(
    $tab ? '<span class="tab">'. check_plain($item['title']) .'</span>' : $item['title'],
    $link_item['path'],
    !empty($item['description']) ? array('title' => $item['description']) : array(),
    !empty($item['query']) ? $item['query'] : NULL,
    !empty($link_item['fragment']) ? $link_item['fragment'] : NULL,
    FALSE,
    $tab
  );
}
// */
 
/**
 * Duplicate of theme_menu_local_tasks() but adds clear-block to tabs.
 */
/* -- Delete this line if you want to use this function
function zen_menu_local_tasks() {
  $output = '';
 
  if ($primary = menu_primary_local_tasks()) {
    $output .= '<ul class="tabs primary clear-block">'. $primary .'</ul>';
  }
  if ($secondary = menu_secondary_local_tasks()) {
    $output .= '<ul class="tabs secondary clear-block">'. $secondary .'</ul>';
  }
 
  return $output;
}
// */
 
/**
 * Overriding theme_comment_wrapper to add CSS id around all comments
 * and add "Comments" title above
 */
/* -- Delete this line if you want to use this function
function zen_comment_wrapper($content) {
  return '<div id="comments"><h2 id="comments-title" class="title">'. t('Comments') .'</h2>'. $content .'</div>';
}
// */
 
/**
 * Duplicate of theme_username() with rel=nofollow added for commentators.
 */
/* -- Delete this line if you want to use this function
function zen_username($object) {
 
  if ($object->uid && $object->name) {
    // Shorten the name when it is too long or it will break many tables.
    if (drupal_strlen($object->name) > 20) {
      $name = drupal_substr($object->name, 0, 15) .'...';
    }
    else {
      $name = $object->name;
    }
 
    if (user_access('access user profiles')) {
      $output = l($name, 'user/'. $object->uid, array('title' => t('View user profile.')));
    }
    else {
      $output = check_plain($name);
    }
  }
  else if ($object->name) {
    // Sometimes modules display content composed by people who are
    // not registered members of the site (e.g. mailing list or news
    // aggregator modules). This clause enables modules to display
    // the true author of the content.
    if ($object->homepage) {
      $output = l($object->name, $object->homepage, array('rel' => 'nofollow'));
    }
    else {
      $output = check_plain($object->name);
    }
 
    $output .= ' ('. t('not verified') .')';
  }
  else {
    $output = variable_get('anonymous', t('Anonymous'));
  }
 
  return $output;
}
// */
 
<?php
function SMINKEDNEVE_random_header() {
  $image_num = random(10); //vagy amennyi képed van
  return 'style="background: transparent url(' . base_path() . path_to_theme() . '/header/' . $image_num . '.jpg) no-repeat scroll left top;"';
}
?>

Attila

0
0
aboros képe

nem function SMINKEDNEVE_random_header
hanem function zen_random_header

(ennek megfelelően a page.tpl.php -ban is zen_random_header lesz ugye a hívás)

a function SMINKEDNEVE_random_header előtti kacsacsőr-kérdőjel-php rész nem kell, az csak azért volt itt a segítségben, hogy a drupal.hu színezze a kódot.
ugyanígy nem kell a file végére a kérdőjel-kacsacsőr kombó sem, az is csak azért volt itt, hogy megfelelően formázza a drupal.hu a kódot. neked ezeket soha nem kell (szinte) használni. a template.php elején van egy kacsacsőr-kérdőjel-php, a végén nincs lezárás soha.

0
0

-
clear: both;

Csete Attila képe

Megpróbáltam a változtatásokkal.

Nem ment így sem. Az alapháttért betöltötte, de semmi többet.

A page.tpl.php így néz ki:
(a fejléckép igazából a header-inner háttere most, így ott is kipróbáltam)
Illetve kipróbáltam még a zen_random_header -el is), de semmi.

Van még tipped, hogy mi lehet?

    <div id="header" <?php print eneklesponthu_alap_random_header(); ?> ><div id="header-inner" class="clear-block">
 
      <?php if ($logo || $site_name || $site_slogan): ?>
        <div id="logo-title">
 
          <?php if ($logo): ?>
            <div id="logo"><a href="szerkesztoket-keresunk" title="<?php print t('Home'); ?>" rel="home"><img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" id="logo-image" /></a></div>
          <?php endif; ?>
 
          <?php if ($site_name): ?>
            <?php
              // Use an H1 only on the homepage
              $tag = $is_front ? 'h1' : 'div';
            ?>
            <<?php print $tag; ?> id='site-name'><strong>
              <a href="<?php print $base_path; ?>" title="<?php print t('Home'); ?>" rel="home">
                <?php print $site_name; ?>
              </a>
            </strong></<?php print $tag; ?>>
          <?php endif; ?>
 
          <?php if ($site_slogan): ?>
            <div id='site-slogan'><?php print $site_slogan; ?></div>
          <?php endif; ?>
 
        </div> <!-- /#logo-title -->
      <?php endif; ?>
 
      <?php if ($header): ?>
        <div id="header-blocks">
          <?php print $header; ?>
        </div> <!-- /#header-blocks -->
      <?php endif; ?>
 
    </div></div> <!-- /#header-inner, /#header -->
0
0
Jenő képe

Így működik jól:

function SMINKNEVE_random_header() {
  $image_num = rand(0,9); //minimum, maximum ertek, ami kozott visszaad egy szamot
  return 'style="background: transparent url(' . base_path() . path_to_theme() . '/header/' . $image_num . '.jpg) no-repeat scroll left top;"';
}
0
0