kovetes gomb elrejtese

Pasqualle képe

mielott barki hozzaszolna, kerem olvassa el ezt a temat:
http://drupal.hu/forum/kedves-forumtarsak

a konkret kerdes az, hogyan lehet a kovetes gombot elrejteni. a kerdezo azt szeretne tudni, hogy a felhasznaloi oldalon a kovetes gomb csak az adminisztratori csoportnak legyen lathato. az nem problema ha a kovetes lap elerheto barki szamara, csak annyi kell, hogy az a gomb (local task) ne legyen ott.

a kerdezonek a beepitett kovetes funkciora lenne szuksege, tehat nem akar views modult hasznalni.

itt van egy majdnem mukodo megoldas:
http://drupal.hu/forum/kovetes-funkcio-kikapcsolasa#comment-22216

a maradek problema mar csak annyi, hogy a link az admin felületről is eltűnik, tehat ezt kellene megoldani. plusz kiegesziteskent jo lenne ha az a gomb latszodna az adminisztratoroknak, mert most nekik sincs ott.

mivel a kerdezo teljesen jaratlan a Drupalban es programozashoz sem ert, kerem a valaszokat minel reszletesebben leirni, hogy a valaszbol uj ismeretekre lehessen szert tenni, ne csak gyorsan megoldani..

a kerdezo konkret sminkje az a3_atlantis amire az eddigi megoldas nem is mukodik. szoval ha valaki megoldast keres, ezt is figyelembe veheti..

ha valakinek van meg jobb megoldasa az is johet. (a views modul nem szamit jobb megoldasnak)

koszonom

Fórum: 
aboros képe

ezt írnám a template.php -ba:

function a3_atlantis_menu_local_task($link, $active = FLASE) {
  //ha /user/% oldalon vagyok es nincs joga felhasznalok adminisztraciojahoz es a link /track akkor extra class adok
  if (arg(0) == 'user' && is_numeric(arg(1)) && !user_access('adminster users') && strpos($link, '/track')) {
    return '<li class="tracker no-admin">'. $link ."</li>\n";
  }
  //ellenkezo esetben marad az eredeti felallas, ha aktiv a tab, akkor active classt kap
  return '<li '. ($active ? 'class="active" ' : '') .'>'. $link ."</li>\n";
}

ezután a cssből így céloznám:

li.tracker.no-admin {
display: none;
}

a kerdezo konkret sminkje az a3_atlantis amire az eddigi megoldas nem is mukodik.

ez szerintem nem lehetséges, a theme_menu_local_task() miért ne működne a3 atlantis (vagy bármilyen egyéb) sminkkel?

0
0

-
clear: both;

Pasqualle képe

azt en sem ertettem, de nem akart mukodni. arra gondoltam, hogy a 3as szam kavarhat be, ahogy a kotojelek is be tudnak kavarni.

ugyhogy phptemplate_menu_local_task() fuggvenyre kellett cserelnem.. de lehet, hogy csak ugyetlen voltam..

0
0
aboros képe

mivel írja, hogy figyel gondoltam legyen valaki aki ki is próbálja, nem csak figyel, mint a vadászkutya.

prúf of konszept szkrínsot (elméletet bizonyító képernyőfotó;)

tehát az a3_atlantis/template.php -filehoz hozzá kell fűzni (végére bekopizni) pontosan ezt:

function a3_atlantis_menu_local_task($link, $active = FALSE) {
  //ha /user/% oldalon vagyok es nincs joga felhasznalok adminisztraciojahoz es a link /track akkor extra class adok
  if (arg(0) == 'user' && is_numeric(arg(1)) && !user_access('adminster users') && strpos($link, '/track')) {
    return '<li class="tracker no-admin">'. $link ."</li>\n";
  }
  //ellenkezo esetben marad az eredeti felallas, ha aktiv a tab, akkor active classt kap
  return '<li '. ($active ? 'class="active" ' : '') .'>'. $link ."</li>\n";
}

ezután a style.css -be beírni pontosan ezt:

ul.tabs li.tracker.no-admin {
display: none;
}

így akinek nincs olyan joga, hogy 'felhasználók adminisztrációja', nem látja a követés fület.

ettől még bárki eléri a user/42/track oldalt!!!

amire mondjuk egy hirtelen drup-fu megoldás lehet ez, szintén az a3_atlantis/template.php -ba kellene írni:

function a3_atlantis_preprocess_page($vars) {
  if (!user_access('adminster users') && arg(0) == 'user' && is_numeric(arg(1)) && arg(2) == 'track') {
    drupal_goto('user/' . arg(1));
  }
}

ez, bár nem valami elegáns, de hatékony és könynű bekopizni és szépen áttessékeli majd a jogtalanul user/42/track -re látogatókat a user/42 -re, ahol meg nincs úgyse fül. ha megint megpróbálja mögé írni, hogy /track, ugyanúgy a /user/42 -n találja magát.

azt hiszem ezt a követés gomb elrejtése problémát egy életre megoldottuk. :)
ennél jobb megoldást szerintem már csak views -al vagy saját modullal lehet csinálni.

0
0

-
clear: both;

iza képe

Holnap visszajelzek ha nálam is működik. Azért jelzem arra nem tértél ki, aminél a másik topikban a lezárás előtt szó volt és ami szerintem a lényeg, hogy a módszereddel nem sérül az admin jogosultság?

0
0
aboros képe

ez egy topikketőzés, ami itt elhangzott, abban semmi olyan újdonság nincsen, ami amott ne hangzott volna el. jó lenne, ha reménykedés helyett inkább kipróbálnád a segítséget, mielőtt leoltod, a másik szál se ment volna át lángháborúba, ha így teszel, úgyhogy most talán inkább próbáld ki a dolgot, mielőtt még kétszer hozzászólsz. (ja és új kérdésnek új témát illik nyitni, benne van a beküldési irányelvekben, tudod az a sok szöveg, amit mindig mindenki végigpörget gyorsan az első űrlapelemig, ahelyett, hogy elolvasná. pont mint a readme.txt fileok...)

0
0

-
clear: both;

iza képe

Okos gyerek vagy, csak módfelett szemtelen. Ha ez nem a virtuális téren történik, -hanem mondjuk az utcán-, már szájbakaptalak volna érte. És más is, nem csak én.

Egyébként pedig hiteltelenek vagytok ezzel a viselkedéssel. A Drupalt nem lehet kritizálni, csak jót lehet róla mondani? Miért? Hiszen a valóság más! Tele van koncepcióhibával. Egy nagy kalap szar az egész. Az más kérdés, hogy még így is jobb mint a konkurencia. Ez a hiteles beszéd!

Ja, és ezt sem írtam volna ha nem húzol fől. Köszönd magadnak! Lehet moderálni. De nem velem kell kezdeni, hanem veled. Mindig a magadfajta üt először aztán sopánkodik, hogy úgy kezdődött a vetekedés, hogy visszaütöttek. Nem fórumtárs, megint te kezdted! Csak téged ugye nem lehet kimoderálni, mert mint mondtam, okos gyerek vagy. Ez a szemlélet pedig megteremti a kettős mércét a moderálásban. És te ezzel mind tisztában vagy, ezért mered csinálni. Csúnyán visszaélsz vele.

A viszont nemlátásra! Ilyen áron nem kell a segítségetek!

0
0
Pasqualle képe

iza, ne haragudj de Ádámnak most tokeletesen igaza van, mar megint megszegted a forum 3. szabalyat. nem lehetne pofazas helyett kicsit probalkozni is, de tenyleg.. a megoldasa gyonyoruen mukodik es ennel egyszerubben mar nem lehet leirni..

es a Drupal kritika egy hozza nem ertotol nagyonis serto viselkedes.

0
0
pp képe

Iza-nak ilyen a stílusa, ezen pedig nem tudunk változtatni. Kérlek titeket ne is akarjatok. Vagy, ha ezt teszitek, akkor tegyétek ezt magánba(mint ahogyan én is), ez egy szakmai fórum. Felesleges idézgetni a fórum szabályzatát, ha egyszer nem olvasta el vagy nem érdekli, most se fogja.

pp

0
0
iza képe

Milyen jó lett volna a tpik-lezárás helyett a topikonkénti egyesével történő sorszámozást és az automata hivatkozást is megoldani. Szerintem sokaknak hiányzik. Nekem is. És jelenleg nincs rá valóban működő megoldás publikálva.

Figyelek, reménykedek. Karácsonyi ajándékként talán ez is megérkezik. :-)

0
0
aboros képe

mindkét témában elhangzott a megoldás: saját modult kell írni (sőt, az automata hivatkozás alapból adott, core comment.module eleve megoldja!)
a megoldás ez.
ez kétféle képpen lehetséges:

  1. megtanulsz modult írni (nem boszorkányvudu) és megírod, ha elakadsz konkrétat kérdezel és segítünk
  2. megfizeted az ember idejét aki meg tudja ezt írni (biztos van ilyen ember itt több is és megírni se tart túl sokáig, legalábbis tuti kevesebb ideig tart, mint a vetyengés, hogy mennyire béna a drupal, meg miért nem így, meg úgy, és hogy képzeljük, hogy ilyet válaszolunk...)
0
0

-
clear: both;

xmarket képe

Szerintem, ha megoldható "ne égesd be" a kódba....

Blokkal:
Létrehozol egy új menüt és a tracker menüpontot átteszed ebbe a menübe, a menü megjelenítő blokkjánál pedig beállítod, h mely csoportoknak elérhető. Így ugyan nem local task lesz, de nem kell kódolni és egyszerűbb karbantartani.
+++
Ez csak a global trackerre használható, felhasználónként nem.
---

De ha ragaszkodsz a menüelem letiltásához:
A linkelt, már majdnem jó megoldást tovább fejlesztve:

Jogosultsággal:

function a3_atlantis_menu_local_task($link, $active = FALSE) {
  if (strpos($link, '/track')) {
    if (user_access("administer content")) {
      return '<li class="tracker">'. $link ."</li>\n";
    }
    return "";
  }
  return '<li '. ($active ? 'class="active" ' : '') .'>'. $link ."</li>\n";
}

Jogosultsági csoporttal:

function a3_atlantis_menu_local_task($link, $active = FALSE) {
  global $user;
 
  if (strpos($link, '/track')) {
    //vagy ahogy te hívod.
    if (in_array("adminisztratori csoport", $user->roles)) {
      return '<li class="tracker">'. $link ."</li>\n";
    }
    return "";
  }
  return '<li '. ($active ? 'class="active" ' : '') .'>'. $link ."</li>\n";
}
0
0

-----------------------
2 ok a Drupalra:
1. A Drupal az egy Drupal (magyarul: Drupal). Valamikor tartalomkezelőnek indult....
2. Ha kilép az alapító folytathatjuk magyarul. :)

Pasqualle képe

hogyan tudok local task menupontot attenni mashova?

0
0
iza képe

Reménykedek.

0
0