Saját modul készítése

rune92 képe

Sziasztok!

Kezdő drupalos vagyok, eddig Wordpresst használtam egy megrendelés miatt jutottam el a Drupalhoz, de jók a tapasztalataim!

A következő kérdésem lenne ( fontos, hogy egyedileg kell megírni a modult) :

Egy olyan modult kellene készítenem, ami lekérdezi a felhasználókat és összeadja azoknak a számát, majd ezt kiírja. "Felhasználók száma: " + x;

Még nem igazán értem a működését a drupalnak, gondolom a theme_user_list-et kellene használnom, de hogy ezt h íratom ki vele és hogyan működtetem, arra még nem jöttem rá. Nagyon kevés a magyar leírás modul fejlesztés terén.

Az első függvény amit sikerült működésre bírnom, az drupal_set_message, amit csak beírtam modulba és akk egyből kiírta, amit kellett.

Előre is köszönöm segítségeteket!

aruna képe

inaktív, blokkolt user-eket is:

http://drupal.org/node/1176190#comment-4568490

1
0
rune92 képe

Köszönöm!

Csak aktív felhasználókra volt szükségem, de így már megtudtam oldani!

$aktiv = db_query("SELECT count(1) from {users} WHERE status = 1")->fetchField();

0
0
rune92 képe

A modulnak létre kellene hoznia egy menüpontot, ahova helyezné a tartalmát, ehhez kérnék segítséget!:)

0
0
aruna képe

googli-s megoldás:

http://stackoverflow.com/questions/9400442/how-to-add-a-menu-item-from-m...

Az új kérdésnél indíts új fórumtémát legközelebb.

0
0
rune92 képe

köszi, bár ezt még nem értem teljesen:/

function mmodule_menu() {
$items['user'] = array(
'title' => 'Page name',
'description' => t('Account'),
'menu_name' => 'main-menu',
'weight' => 8,
'access callback' => TRUE,
'page callback' => 'drupal_goto',
'page arguments' => array('user'),
'access arguments' => array('view own profile'), // permission
'type' => MENU_NORMAL_ITEM,
);

return $items;
}

Ez a függvény létrehoz egy új menüpontot, de ezt a modulba kell illeszteni?

Ha beillesztem nem történik semmi..

Rendben van, legközelebb új témát nyitok:)

0
0
aruna képe

talán jobb lett volna ha az API függvényt linkelem be:

http://api.drupal.org/api/drupal/modules%21system%21system.api.php/funct...

A linkelt függvényből egy darab lehet csak a modulodban, viszont a függvényen belül akárhány menüpontod/útvonalad. Nézd meg a példákat.

  function mymodule_menu() {
    $items['abc/def'] = array(
      'page callback' => 'mymodule_abc_view',
    );
    return $items;
  }
 
  function mymodule_abc_view($ghi = 0, $jkl = '') {
    // Amit a végén return-el visszaadsz, az jelenik meg az oldalon.
  }

szerk: A menü cache-t törölnöd kell, hogy az új menüpont látszódjon.

0
0
rune92 képe

return- be a tartalmat helyezem bele? Mármint azt írtad, amit belehelyezek az jelenik meg oldalon, szóval ha a modult ott akarom megjeleníteni akkor oda kell raknom a megfelelő változót?

Na de ne szaladjunk ennyire előre, beillesztettem a kódot, de nem jelent meg a menüpont, erre azt írtad törölni kell a menü cache-t, eltudod nekem mondani, mire szolgál ez a cache(drupalban) és hogyan törlöm?

Ne haragudj a hülye kérdésekért, nagyon az elején járok még, lelkes amatőr vagyok:)

0
0
nevergone képe

Modulírási előtti gyors kérdés: a Drupalt mennyire ismered?

0
0
rune92 képe

Hali!

Ha megnézed az első posztomat, akkor ott leírtam, hogy eddig Wordpresst használtam, ezt a rendszert egy munka miatt kell használnom, így tegnap előtt feltelepítettem és azóta függvényeket bogarászok és ismerkedem a struktúrájával.

Szóval még csak barátkozok a rendszerrel!

0
0
nevergone képe

Igazán nem akarok beleszólni, de biztosan megfelelő irány, ha egy teljesen ismeretlen rendszernél rögtön a programozással kezded anélkül, hogy magát a rendszert megismernéd?
Különösen úgy – és ezt ne vedd sértésnek – hogy a hozzászólásaid alapján az általános PHP ismereteidet sem ártana rendbe szedni.

Én a helyedben fognám Gusztáv könyvét, elolvasnám kétszer, közben pedig ezer dolgot kipróbálnék a Drupalban, mi ez, mit tud, mire való, hogyan működik, stb. Ha programozni szeretnéd, akkor pedig végképp, hiszen itt ilyen van, hogy hook rendszer, alter-ek és preprocesszek, Form API, stb.

2
0
rune92 képe

Teljes mértékben igazad van, de sürget az idő, ezt meg kell oldanom, utána tudok mást csinálni!

Én eddig site builder feladatokat láttam el, és wordpress-be építettem, ha ezt a modult sikerül megoldani, akkor nyerek időt, hogy részletesebben megismerjem a rendszert!

Gusztáv könyvét meg mindenképp lekezdem olvasni, de most ezt meg kell oldanom!

Segítetek nekem?

0
-3
szantog képe

„Teljes mértékben igazad van, de sürget az idő, ezt meg kell oldanom, utána tudok mást csinálni!”

Erre is van megfelelő fórum.

3
-2

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

rune92 képe

Én nem munkát akarok közvetíteni, hanem segítséget kérni, kösz srácok.

0
-2
nevergone képe

Nem trollkodásnak szánom, de szerintem szantogabornak igaza van. Ahogy fentebb is írtam, számomra úgy tűnik, hogy a Drupalt sem ismered és PHP programozásban sem vagy a helyzet magaslatán.
Így pedig a segítség igazából az lenne, hogy valaki megírja helyetted, viszont ezt mégsem várhatod el. Más lenne a helyzet, ha azt lenne itt, hogy nagyjából megy, csak valahol picit megakadtál. De akármilyen nehéz kimondani, nincs így, neked úgy kompletten nem megy. Ezért is javasoltam fent, hogy tetszik vagy nem, de ne rohanj előre. Ha pedig annyira kritikus, akkor passzold másnak (azt se mondom, hogy innen valakinek), mert attól tartok, ennek csak gányolás lesz a vége.

3
-1
aboros képe

de legalábbis nagyon unalmas ;) tekintve, hogy van egy tonna dokumentáció amiben ezek a dolgok mind le vannak írva.

igen, a tartalmat helyezzed bele. amit a page callback visszaad, az kerül majd callbackhez tartozó útvonalon a page.tpl.php -ban a $content változóba. nagy általánosságban.

teszem azt mondjuk:

 function lifeuniverseandeverything_menu() {
    $items['answer/ultimate-question'] = array(
      'page callback' => 'lifeuniverseandeverything_answer_view',
    );
    return $items;
  }
 
  function lifeuniverseandeverything_answer_view() {
    return t('The Answer is: 42');
  }

ez a modul egy "menüt" hoz létre a http://example.com/answer/ultimate-question útvonalon, ahol pedig az aktuális nyelvre fordítva jeleníti meg, hogy 'The answer is: 42' a tartalomban. mert ugye van még fejléc is lábléc, oldalsávok, kitudja milyen régiók. ez csak a content lesz. ahogy kell, körülötte a teljes drupalod tokkal vonóval.

a menü cache a néhány drupal cache egyike. az a dolga, hogy egy gyorstárba helyezi a felépített menüt, hogy ne kelljen minden oldalletöltéskor újra szétnézni, hogy mégis milyen modulok milyen menüket hoznak létre. tudod törölni például drush segítségével egy elegáns drush cc paranccsal vagy az admin_menu modul használatakor a kis drupal ikonra kattintva találsz még mindenféle cache törlésre direkt menüpontokat.

a lelkesség jó, kitartást, sok türelmet kívánok.

5
0

-
clear: both;

nevergone képe