Adatlap onmouseover-re

chrispooh képe

Sziasztok,

tudtok segíteni abban, hogy az http://www.ifood.tv/ oldalán is látható "Active Featured Members" részben hogy oldották meg azt, hogy ha a felhasználó képe fölé visszük az egeret, akkor megjelenik a felhasználó pár adata?

Fórum: 
hosszu.kalman képe

Gondolom a jobb oldali "Active Featured Members " részre gondolsz.

Én úgy fognék neki, hogy létrehozok egy blokkot amiben a felhasználók adatai szerepelni fognak. Ehhez szükség lesz egy DB lekérdezésre, hogy meg tudjuk jeleníteni a szükséges felhasználókat.

Ha neked is a 12 legutóbb bejelentkezett felhasználóra van szükséged akkor a következő a lekérdezés:

<?php
$result = db_query_range('SELECT uid FROM {users} WHERE uid <> 0 AND STATUS = 1 ORDER BY login DESC', 0, 12);
while ($user_obj = db_fetch_object($result)) {
  $user = user_load(array('uid' => $user_obj->uid));
  //itt mar kiirhatod a szukseges dolgokat
}
?>

Ezután lényegében megvan a felhasználókról minden kiíratandó adatod.

Létezik egy BetterTip nevű jQuery plugin amivel elég egyszerűen meg lehet csinálni a kért megjelenést.
Pl az agykontroll webshopjában a termékek képe felé helyezve az egeret: http://agykontroll.hu/nodeorder/term/1

Végső soron annyi történik, hogy a lekérdezésbe megjeleníted a kért adatokat, és egy div-be (ami nem látható, tehát display: none;) létrehozod azt, amit akkor akarsz megjeleníteni amikor a felhasználó az egeret a user képe főlé viszi.

Ez így érthető, vagy írjak róla részletesebben? Egyáltalán jóra gondolok?

0
0
chrispooh képe

Köszönöm Kálmán a segítséget, teljesen erre gondoltam.
Ha esetleg van időd és türelmed, szívesen olvasnánk a teljes megvalósítást, hiszen szerintem hasznos funkció lenne ez sok oldalon, tehát gondolom másokat is érdekelhet.

chrispooh

0
0
hosszu.kalman képe

Okés! Megcsinálom amint lesz rá időm!

0
0
hosszu.kalman képe

Létre kell hozni egy blokkot aminek a következő a tartalma:

<script type="text/javascript" src="<?php print url("misc/jquery.js") ?>"></script>
<script type="text/javascript" src="<?php print url("misc/bettertip/jquery.bettertip.js") ?>"></script>
<style type="text/css" media="all">@import "<?php print url("misc/bettertip/jquery.bettertip.css") ?>";</style>
 
<style type="text/css">
div.utolso-bejelentkezok {
  float: left;
  width: 60px;
  text-align: center;
}
</style>
 
<script type="text/javascript">
 
var base_url = <?php print url() ?>;
 
$(function() {
  // Felhasznalo kepenek kattintasanak kezelese
  $('a.betterTip').click(function() {
    // Az id-ban szerepen a user id, ezert felbontjuk
    var uid_array = $(this).attr('id').split('_');
    // Atiranyitjuk az oldalt a felhasznalo profiljara
    document.location.href = base_url + 'user/' + uid_array[1];
    // A visszateres hamis
    return false;
  });
});
</script>
 
<?php
// A 12 legutoljara bejelentkezett aktiv (nem tiltott) felhasznalo lekerdezese
$result = db_query_range('SELECT uid FROM {users} WHERE uid <> 0 AND STATUS = 1 ORDER BY login DESC', 0, 12);
while ($user_obj = db_fetch_object($result)) {
  // Felhasznalo betoltese
  $user = user_load(array('uid' => $user_obj->uid));
 
  // Ha nincs a felhasznalonak kepe akkor egy alapertelmezett kep jelenik meg
  $user->picture = ($user->picture) ? $user->picture : url("files/profile_pictures/nincskep1.jpg");
  ?>
  <div class="utolso-bejelentkezok">
    <a id="user_<?php print $user->uid ?>" href="$betterTip_<?php print $user->uid ?>" class="betterTip" title="$content"><img src="<?php print $user->picture ?>" width="50" /></a>
  </div>
 
  <!-- ez az a resz ami megjelenik ha a kep fele visszuk az egeret -->
 
  <div id="betterTip_<?php print $user->uid ?>" style="display: none;">
    <div class="betterTip_name"><?php print $user->name ?></div>
    <div>
      <div><img src="<?php print $user->picture ?>" /></div>
      <div>
        <p>
          <?php print $user->profile_nem ?> | <?php print $user->profile_orszag ?><br />
          Member since: <?php print format_date($user->created, 'custom', 'Y-m-d H:i' ); ?>
        </p>
      </div>
    </div>
  </div>
  <?php
}
?>

Kell hozzá a bettertip nevű jQuerty plugin (js fájl és a hozzá tartozó css) és természetesen a jQuery is.
A stílust úgy alakítjuk ahogy akarjuk, én most csak beírtam valamit.

A hyperlink href attributumába be kell írni annak a html objektumnak az azonosítóját (ID), amit meg akarunk jeleníteni amikor felévisszük az egeret. Mivel mindegyiket egyértelműen azonosítani kell így használjuk az egyedi uid-t. Így alakul ki az, hogy a kép href-be bekerül a $betterTip_[uid] és alatta pedig van egy div aminek az id-ja betterTip_[uid]. Ennek a div-nek alapból nem szabad hogy látszódjon, ezért inline css-be display: none;
A hivatkozó híperlink tiltle tag-je legyen a $content, ezzel jelezzük, hogy egy másik html objektum tartalmát szeretnénk betölteni.

A kód elején van egy js kód ami annyit csinál, hogy ha rákattintuk a kis képre akkor bejön a felhasználó oldala. Ezért létrehoztam egy base_url változót, amibe a feltelepített Drupal címe található (pl domain.com/drupal), így nem kell direktbe megadni a linkeket, és minden oldalon működik.

Természetesen szükséges a profile modul is, hogy el tudjuk kérni a felhasználó nemét és országát.

Eléggé kapkodva írtam, így lehet zavaros de remélem érthető. Ha valami nem világos akkor írj nyugodtan!

A működést meg tudod nézni a http://www.kalman-hosszu.com/drupal-5/regisztralt-felhasznalok oldalon található jobb oldali blokkban.

0
0
chrispooh képe

Köszönöm Kálmán, nagyszerű leírás és nagyszerűen működik. Már át is alakítottam az oldalalm igényei szerint, nagyon hasznos funkciónak találom.
Köszönöm még egyszer!

Krisztián

0
0
lili_ képe

Drupal 5 alatt dolgozok.

Feladat: Olyan modult szeretnék írni, ami listázza egy adott intézményen belül dolgozó
emberek nevét, címét, telefonszámát, e-mail címét, képét.
Minden adatot adatbázisból nyerek ki.
Hogyan tudnám azt megoldani, hogy elsődlegesen a személy nevét és képét kérdezem le és
jelenítem meg, és a többi adat( az adott személy telefonszáma, e-mail címe) csak akkor jelenne meg ha a személy képére viszem az egeret?

Az adatbázisban van egy szemelyek táblám, oszlopai rendre:
--id
--nev
--cim
--email
--telefon
--kep

megj: sql lekérdezéssel és modul írással nincsen problémám, engem konkrétan a div-es részek érdekelnének..
valami ehhez hasonlót kellene írnom, mint ami fent olvasható?
csak nálam nem regisztrált felhasználókról van szó!!

0
0

mini

nevergone képe

Igen, hasonló a feladat, ezért (is) gyorsan indíts a kérdésednek egy új témát! :)

0
0
lili_ képe

megtettem!

0
0

mini