1 felhasználó 1 saját speciális node felvitele

Prancz Ádám képe

Sziasztok!

Van egy oldalam, ahol a felhasználók felvihetnek speciális tartalmakat, amelyek közül az egyik egy CV-t tartalmazó speciális tartalom típus.
A problémám az lenne, hogy meg szeretném akadályozni, hogy ebből az adott felhasználó többet is felvihessen. Van erre valami jó megoldás, ami hosszútávon is megállja a hejét?

Tehát összefoglalva azt akarom, hogy az x user csak 1 db adatlapot tudjon felvinni, ha másodszorra is fel akarná vinni akkor pedig adjon neki egy hibaüzenetet, hogy szerkessze a meglévő adatlapját!
Esetleg még jobb lenne, hogy ha felviszi az adatlapot, akkor eltűnjön a tartalom beküldése menüből ez a funkció!

Köszönöm a segítségeket!

yasztibike képe

Ez szerintem megoldható a "Content Profile" modullal. ( http://drupal.org/project/content_profile ) Beállítod, hogy az legyen a profil tartalom és abból csak egyet tudnak küldeni. Ezt és a nézetét tudod a ckk-val , a views-al formázgatni. :)

0
0
Prancz Ádám képe

Szia! Köszi az elképzelést, de már van egy csomó meglévő sima regisztrált userem, már lassan 100 és nem biztos, hogy mindenki tölt fel ilyen adatlapot, mert eléggé hosszú!
És így egyszerűbb regisztrálni.... Szóval valami más ötlet kéne, mert ha ezzel szembesül egyből a felhasználóm, akkor nem regisztrálna fel senki:)

0
0
Bálint képe

Semmi köze a regisztrációhoz a Content Profile-nak, az csak egy lehetőség, hogy ott is használatban legyen. Tökéletesen használható arra, amit szeretnél.

0
0
Prancz Ádám képe

Félek, hogy összebarmolja a rendszert úgyhogy mivel a lenti modullok kihullotak, így tedd meg légyszi, hogy válaszolsz nekem ezekre!
1. Van egy 5 adatból álló alap regisztráció. Ezt szeretném megőrizni ha a content profilt használom
2. Van a CV rérsz aminek kb van 60 cck fieldje amit mindet ki kell tölteni. Ennek így a különállóságát meg lehetne őrizni? Magyarul, úgy ahogy most van, hogy kvázi egy külön adatlap legyen amit vagy kitölt a felhasználó pluszba vagy nem, de ha kitölt akkor szeretném az adatlapjához kapcsolni.

Érthető így, hogy mire gondolok? Szívesen részletezem mégjobban mert nagyon félek tőle, hogy majd nem tudom visszacsinálni ha így belemegyek:-)

Köszi!

0
0
Bálint képe

Nos, először is, elmondanád, hogy miért nem próbálod ki localhoston vagy bárhol a dolgokat, hogy ha nem vagy benne biztos, hogy mit csinálsz?

1. Semmi köze hozzá, ahogy már írtam.
2. Igen, erre való.

0
0
nevergone képe

Egyetértek, érdemes lenne kipróbálni ahelyett, hogy minden apró problémánál teljes megoldást várna, mert lassan itt rakják össze neki a teljes oldalt, és ennek kezd egy kicsit kihasználás-szaga lenni.
Szóval örülnék, ha a felhasználótól lassan nem csak kérdés születne, hanem válasz is mások kérdéseire, problémáira. Vagy legalább egy kis próbálkozást, hogy önálló munka, dokumentációk olvasása, próbálgatás-ismerkedés, ilyesmi.

0
0
Prancz Ádám képe

Szerintem másoknak hasznos lesz ha hasonló problémába ütköznek, hogy elolvashatják itt a kész megoldásokat. Biztos örülni fognak, ha nem kell napokat keresgélniük, meg tesztelgetniük a különböző lehetőségeket. A lehetőségeimhez mérten egyelőre ezt tudom visszaadni a közösségnek, ha szerinted nem hasznos ez akkor természetesen ez is egy vélemény, de az a pár byte amit az írásaim foglalnak szerintem megér annyit, hogy másoknak megtakarítok 1-2 óra keresgélést.

0
0
asrob képe

Prancz Ádám képe

Köszönöm:-) Kipróbálom őket!

0
0
Prancz Ádám képe

A Node limit nem jött be, mert nem tudom, külön-külön a csoporton bellüli userekre alkalmazni:-( nézem a másikat. Ez a contentprofil dolog valamiért nagyon nem szimpatikus nekem de a végén még megnézem ezt is:-)

0
0
asrob képe

Tudsz vele felhasználóra korlátozni illetve csoportra is.

0
0

--
Borsa Péter
https://peterborsa.eu

Prancz Ádám képe

Alaposan csak a node limitet néztem, de ezzel az a baj, hogy ha csoportra korlátozok akkor a limiten együtt osztozik a csoport nem tagonként, magyarul az összes feltöltött node száma lehet csak max X.
Ha felhasználóra akkor pedig gondolom nem működik a * meg hasonlók, vagy igen? Így meg fel kell sorolni 1000 felhasználót, az megint csak nem jó és mindig hozzá kell adnom, ha van egy újabb regisztrált.

Ha működne valami all kapcsoló a node limit user nodnál akkor az jó lenne! Tudsz ilyenről esetleg?

0
0
asrob képe

ez tipikusan az mikor konkrét megoldást keresel valamire ami a te elgondolásod szerint kellene hogy legyen. A node limitnél nem úgy van megoldva alapból ahogy szeretnéd de van neki szép issue queue-ja, lehet hozzá patchet beküldeni hogy legyen szép userlista amiből akkor ki tudod választani melyik userre is kell a korlátozás.

0
0

--
Borsa Péter
https://peterborsa.eu

hosszu.kalman képe

Én letölthető megoldást nem ismerek rá, de egy elég apró modullal meg lehetne csinálni. Kb ilyesmi:

/**
 * Implementation of hook_perm().
 *
 * Define the following perm:
 *   - create unlimited cv
 *
 * @return array of defined permissions
 *
 */
function cv_acc_perm() {
  return array('create unlimited cv');
}
 
/**
 * Implementation of hook_nodeapi().
 */
function cv_acc_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  global $user;
  if ($op == 'prepare' && $node->type == 'cv' && cv_acc_user_has_cv($user->uid) && !user_access('create unlimited cv')) {
    drupal_access_denied();
    drupal_goto();
  }
}
 
function cv_acc_user_has_cv($uid) {
  return (bool) db_result(db_query("SELECT COUNT(*) FROM {node} WHERE type = 'cv' AND uid = %d", $uid));
}

Ekkor access denied oldalt kap, vagy esetleg ha újat akar beküldeni akkor a már létezőhöz ugrik:
/**
 * Implementation of hook_perm().
 *
 * Define the following perm:
 *   - create unlimited cv
 *
 * @return array of defined permissions
 *
 */
function cv_acc_perm() {
  return array('create unlimited cv');
}
 
/**
 * Implementation of hook_nodeapi().
 */
function cv_acc_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  global $user;
  if ($op == 'prepare' && $node->type == 'cv' && $cv_nid = cv_acc_user_has_cv($user->uid) && !user_access('create unlimited cv')) {
    drupal_goto('node/' . $cv_nid);
  }
}
 
function cv_acc_user_has_cv($uid) {
  return db_result(db_query("SELECT nid FROM {node} WHERE type = 'cv' AND uid = %d", $uid));
}

Persze ha többet hozott létre akkor ez nem tökéletes.

Nem próbáltam, csak most írtam de szerintem ha nincs rá kész megoldás akkor megpróbálhatod valami ilyesmivel.

0
0
Prancz Ádám képe

Uhh erre nem számítottam, de köszi szépen.
Már eléggé kezdem megismerni a Drupalt, úgyhogy itt az ideje mélyebb vizekre evezni és megnézni ezt a saját modul fejlesztése részt! Ez hosszabb idő lesz, de majd jelentkezem, ha sikerült megcsinálni! Addig ha valaki mégis talál egy modult akkor ne féljen megosztani velem! :-)
Köszi mindenkinek a segítséget és az ötleteket!

0
0
Prancz Ádám képe

Ha valaki más is beleszaladna hasonlóba:

Van a Node Limit modul: az nem jó mert az összes típuson bellüli modul számát korlátozza.
Ám létezik egy olyan is, hogy node_limitnumber ami pont ezt tudja ami kellett!

0
0