Drupalchat smiley

Murgi képe

Sziasztok!

Hogyan tudnám a drupalchat-ben használatos smiley-kat feltüntetni az oldalon belül?
Views-ra gondoltam, de nem tudom, hol/hogy kell beállítani, hogy a smiley-kat tartalmazó fájl tartalmát megjelenítsem:
modules/drupalchat/smileys/very_emotional_emoticons-png/png-32x32/

Más megoldásokat is örömmel fogadok.
Köszönöm

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

Nem pontosan értem a feladatot. Szimplán egy könyvtár tartalmát szeretnéd listáztatni, vagyis az összes smiley-hoz tartozó képet? Mert akkor ehhez egy max. 3 soros PHP-kód is megteszi, persze a megfelelő blokk definiálása után modulból. Bár azt nem tudom, mennyire vágod, hogy kell egy egyszerű blokkot definiálni Drupallal:
Declaring the block
http://drupal.org/node/1104464

Vagy van külön ahhoz Views-támogatás a modulban, hogy az összes smiley URL-jeit kinyerje? Mert akkor tényleg az a leggyorsabb, legegyszerűbb megoldás.

0
0
Murgi képe

„Szimplán egy könyvtár tartalmát szeretnéd listáztatni, vagyis az összes smiley-hoz tartozó képet?”

Igen pontosan ezt szeretném, de nem tudom, hogy a modulban a hol lehet megbizonyosodni a Views-támogatásról.
Az egyszerű blokk definiálását sajnos nem vágom, ráadásul ez a PHP-kódolás is magas.

0
0
Sk8erPeter képe

Nincs Views-támogatás a modulhoz, belenéztem a kódjába.

Na, gondoltam gyorsan csinálok még valami jót az újév előtt. :D

Úgyhogy elkészítettem neked egy minimodult, annyit csinál, hogy definiál egy blokkot, amiben egy sima rendezetlen lista (unordered list, <ul>) formájában kiíratom az általad is említett könyvtár gif-kiterjesztésű képeit.
Szóval most azt mutatom meg röviden, hogyan hozz létre egy olyan egyszerű modult, mint a faék, remélem, hasznos lesz:

  1. Hozz létre a sites/all/modules könyvtáron belül egy murgi nevű könyvtárat (legyen mondjuk ez a modul neve, a felhasználóneved alapján :D).
  2. Vegyél elő egy egyszerű szövegszerkesztőt, pl. Notepad++ tök jó.
  3. Hozz létre egy fájlt
    murgi.info
    néven, és rakd bele az első pontban létrehozott könyvtárba.
    Ez legyen a tartalma:

    1. name = Customization Module
    2. description = Customizing stuffs on the site...
    3. core = 7.x
    4. package = Murgi

    Persze az itt szereplő adatokat az egyenlőségjel után szabadon átírhatod, kivéve a core részt. :)

  4. Ezután hozz létre egy fájlt
    murgi.module
    néven, és rakd ugyanebbe a könyvtárba.

    Ez legyen a tartalma:

    1. <?php
    2.  
    3. /**
    4.  * Implements hook_block_info().
    5.  *
    6.  * Define all blocks provided by the module.
    7.  */
    8. function murgi_block_info() {
    9.  
    10. $blocks = array();
    11.  
    12. if(module_exists('drupalchat')){
    13. $blocks['drupalchat_smileys'] = array(
    14. 'info' => t('DrupalChat Smileys'), // The name that will appear in the block list.
    15. 'cache' => DRUPAL_CACHE_GLOBAL, // The block is the same for every user on every page where it is visible.
    16. );
    17. }
    18.  
    19. return $blocks;
    20. }
    21.  
    22. /**
    23.  * Implements hook_block_view().
    24.  *
    25.  * Prepares the contents of the block.
    26.  */
    27. function murgi_block_view($delta = '') {
    28.  
    29. $block = array();
    30.  
    31. switch ($delta) {
    32. case 'drupalchat_smileys': {
    33. $block['subject'] = t('DrupalChat smileys');
    34. $items = array();
    35.  
    36. $drupalchat_path = drupal_get_path('module', 'drupalchat');
    37. $drupalchat_smileys_path = $drupalchat_path . '/smileys/very_emotional_emoticons-png/png-32x32';
    38. // collecting smileys
    39. // http://php.net/manual/en/function.glob.php
    40. $drupalchat_smileys_array = glob($drupalchat_smileys_path.'/{*.gif}', GLOB_BRACE);
    41. foreach ($drupalchat_smileys_array as $filename) {
    42. $image_variables = array(
    43. 'path' => $filename,
    44. 'attributes' => array( 'class' => array('drupalchat-smileys-image')),
    45. 'alt' => 'DrupalChat smileys',
    46. );
    47. $items[] = theme('image', $image_variables);
    48. }
    49.  
    50. $block['content'] = theme('item_list', array('items' => $items, 'attributes' => array('class' => 'drupalchat-smileys-block inline clearfix'), 'type' => 'ul'));
    51. }
    52. break;
    53.  
    54. }
    55. return $block;
    56. }
  5. Most engedélyezd az új modulodat az
    admin/modules
    oldalon.
  6. Helyezd el az új blokkot az
    admin/structure/block
    oldalon a kívánt helyre!
  7. Kész vagy. Ilyesmi lesz az eredmény:

    list of DrupalChat smileys

    Ezt aztán tetszőlegesen testreszabhatod még CSS-sel.
    Persze a smiley-kat táblázatszerűen is ki lehetne íratni, itt most egy egyszerű rendezetlen lista-formátumban került kiíratásra.

Remélem, ez kezdetnek jó lesz!

BÚÉK!

4
0
Murgi képe

Sk8erPeter örök hála és 1000 köszönet!
Februárban repülök haza viszek neked finom söröket
csak mond, hogy hova postázzam majd ;)

Boldog új évet kívánok minden kedves fórumtársamnak! :)

Murguly Zoltán

0
0
csakiistvan képe

Szerintem ettól függ hol akarod szerepeltetni. Ha blokként egy adott régióban, akkor a fentiek igazak, de attól függ hol akarod pontosan szerepeltetni.

Ha egy formban, akkor egy form_alter kell neked, ha nodeban akkor node_preprocess, stb. Sok függ attól hová szeretnéd, de ha nem csak egy blokkban, akkor ezt mindneképp kódolós feladatnak érzem.

0
0

Drupal full-stack developer at Wunderman Thompson Budapest

Murgi képe

A tervem az volt, hogy egy nodeban, de ezek után már mindegy hol jelenik meg csak meg tudjak birkózni a feladattal.
Kipróbálom a form_alter és a node_preprocess lehetőségeit aztán jelentkezem mire jutottam és köszönöm!

0
0
csakiistvan képe

Oké, de nodeban hol? Szerkesztéskor, vagy pl a node/1 oldalon? szerkesztéshez a form_alter kell, node/1 -hez a node_prepocess. ha pontosítod, biztos van oylan aki komolyabban is tud neked segíteni.

0
0

Drupal full-stack developer at Wunderman Thompson Budapest

Murgi képe

Köszi István!
Pontosítom:
a felhasználok nem tudják milyen smileyk állnak a rendelkezésükre.
Ezt szeretném megmutatni egy node/... oldalon.
Meg tudnám csinálni ezt egy táblázatban, de 1 napig tartana az összes kis képet belinkelgetni. Ha meg kiteszek egy linket, ami a könyvtár tartalmára mutat azt nem látja senki mert azt írja, hogy „Az oldal nem található”
A node_preprocess-t meg sehol nem találom :(

0
0