hook_help()

makgab képe

Hi!

A hook_help() implementációt szeretném megcsinálni, de elakadtam.
Addig jutottam, hogy a hook_help()-ben definialtam a menük útvonalát, ki is írja a rövid súgót.
De egy bővített súgót is szeretnék, mint a drupal felhasználók modulja, ahol megjelenik a rövid súgó alatt egy link ([további segítség...]), amire kattintva egy bővített szöveg jelenik meg. Ezt szeretném én is, de nem tudtam kiolvasni a 'user.pages.inc'-ből a megoldást.
Tudnátok segíteni?

G.

<?php
 
function mymodule_help($section) {
   switch ($section) {
 
   case 'base/rendszer/felhasznalo':
       return 'Felhasználók karbantartása';  // ehhez kellene a bővített szöveg linkje
 
   case 'base/rendszer/csoport':
       return 'Csoportok karbantartása';
 
   // case 'base/help#felhasznalo':
   //    return 'Ez lenne a bővített szöveg... blabla...';  // itt lenne a bővített szöveg
 
   }
}
 
?>
Drupal verzió: 
lili_ képe

anno én is próbálkoztam vele, meg is jelenik a link de nem jön be rá az oldal

pl: saját modulomban. emberek.module
 
/*hook_help*/
function emberek_help($section) {
  switch ($section) {
 
  /*az emberek modulról meg fog jelenni a "SÚGÓ" menüpont alatt egy leírás
  erről a modulról*/
    case 'admin/help#emberek':
       $output .= 'Ez a modul megjeleníti a szervezeti egységeket, a hozzájuk tartozó adatokat,
       személyeket. Lehetőséget bizonyos adatok módosítására, törlésére.';
       return $output;
    case 'emberek':
     return '<p>'. t('Személyek megjelenítése ABC sorrendben.') .'</p>';
 
     }
}
0
0

mini

makgab képe

Igen, ez kevés, valami még hiányzik. Ezt nem tudom, mi kell még. :)

G.

0
0
makgab képe

Ettől szerintem nem lesz még link. Valami hiányzik.

Van akinek ez működik?

G.

0
0
makgab képe

A theme.inc-ben van egy funkció. Nem tudja valaki, hogy pontosan mi kell, hogy ez működjön?

G.

<?php
 
/**
 * Returns code that emits the 'more help'-link.
 */
function theme_more_help_link($url) {
  return '<div class="more-help-link">'. t('[<a href="@link">more help...</a>]', array('@link' => check_url($url))) .'</div>';
} 
 
?>
0
0
eMeLA képe

Neked ezzel semmit nem kell csinálnod, működik ez saját magától is.

theme_ kezdetű függvények csak a kinézetet határozzák meg, velük nem lehet menüpontot létrehozni.

Ha mégis érdekel a dolog, akkor a template.php fájl "használatának" nézz utána.
A drupal.org-on van róla leírás.

0
0

...mit tudok: http://web.termuves.hu

makgab képe

Tudom, hogy ezzel nincs dolgom.
Az a kérdés, hogyan fog automatikusan működni? Ez nem világos egészen.

G.

0
0
makgab képe

Mi kell hogy automatikusan működjön a theme_more_help_link()?

G.

0
0
lili_ képe

case 'admin/build/workflow/actions':
      $help = t('Use this page to set actions to happen when transitions occur. To <a href="@link">configure actions</a>, use the actions module.', array('@link' => url('admin/actions')));
      break;
 
ezt találtam sietve ezzel tudsz valamit kezdeni?
 
kiszedtem a user.modul hook_helpjéből, az oldaladon ha megnézed az "admin/user/roles" oldalt akkor ott van egy súgó szövegrész, és ebben van két link 
 
--"jogosultsági körrel" és a "neveit"
 
 
a case 'admin/user/roles':
      return t('<p>Roles allow you to fine tune the security and administration of Drupal. A role defines a group of users that have certain privileges as defined in 
 
<a ref="@permissions">user permissions</a>./*lehet ez?*/
 
 Examples of roles include: anonymous user, authenticated user, moderator, administrator and so on. In this area you will define the <em>role names</em> of the various roles. To delete a role choose "edit".</p><p>By default, Drupal comes with two user roles:</p>
      <ul>
      <li>Anonymous user: this role is used for users that don\'t have a user account or that are not authenticated.</li>
      <li>Authenticated user: this role is automatically granted to all logged in users.</li>
      </ul>', array('@permissions' => url('admin/user/access')));
0
0

mini

makgab képe

Magától kell működnie, de még valami feltétel hiányzik.
A user.module részlete:

<?php
// ------------------------
function user_help($path, $arg) {
  global $user;
 
  switch ($path) {
    case 'admin/help#user':
      $output = '<p>'. t('The user module allows users to register, login, and log out. Users benefit from being able to sign on because it associates content they create with their account and allows various permissions to be set for their roles. The user module supports user roles which establish fine grained permissions allowing each role to do only what the administrator wants them to. Each user is assigned to one or more roles. By default there are two roles <em>anonymous</em> - a user who has not logged in, and <em>authenticated</em> a user who has signed up and who has been authorized.') .'</p>';
      $output .= '<p>'. t("Users can use their own name or handle and can specify personal configuration settings through their individual <em>My account</em> page. Users must authenticate by supplying a local username and password or through their OpenID, an optional and secure method for logging into many websites with a single username and password. In some configurations, users may authenticate using a username and password from another Drupal site, or through some other site-specific mechanism.") .'</p>';
      $output .= '<p>'. t('A visitor accessing your website is assigned a unique ID, or session ID, which is stored in a cookie. The cookie does not contain personal information, but acts as a key to retrieve information from your site. Users should have cookies enabled in their web browser when using your site.') .'</p>';
      $output .= '<p>'. t('For more information, see the online handbook entry for <a href="@user">User module</a>.', array('@user' => 'http://drupal.org/handbook/modules/user/')) .'</p>';
      return $output;
    case 'admin/user/user':
      return '<p>'. t('Drupal allows users to register, login, log out, maintain user profiles, etc. Users of the site may not use their own names to post content until they have signed up for a user account.') .'</p>';
    case 'admin/user/user/create':
    case 'admin/user/user/account/create': 
 
// ----------- ...stb.
?>

Itt az 'admin/user/user' esetében automatice megjelenik a "[további segítség...]" link, ami az 'admin/help#user' hivatkozás.

G.

0
0
lili_ képe

nem értem mi hiányzik

0
0

mini

Pasqualle képe

menu.inc

function menu_get_active_help() {
...
      // Add "more help" link on admin pages if the module provides a
      // standalone help page.
      if ($arg[0] == "admin" && module_exists('help') && module_invoke($name, 'help', 'admin/help#'. $arg[2], $empty_arg) && $help) {
        $output .= theme("more_help_link", url('admin/help/'. $arg[2]));
      }

a [more help...] link csak az admin/*/valami oldalakon latszik ha letezik az admin/help#valami

eleg fura egy kod az biztos..

0
0
makgab képe

Így már érthető, hogy csak ott működik.
Ha szeretnék magamnak egy ilyen bővített súgót, akkor meg kell "írnom ezt a linket"?

G.

0
0
Pasqualle képe

function mymodule_help($section) {
   switch ($section) {
...
    case 'base/rendszer/felhasznalo':
     $output = '<p>'. 'Felhasználók karbantartása' .'</p>';
     $output .= theme("more_help_link", url('base/help/felhasznalo'));
     return $output;

ha extremebb sugot akarsz kesziteni akkor az Advanced help modult ajanlom

0
0
makgab képe

Ezt kerestem. Megjelent a [további segítség...] link, csak a link nem jó.
A bővített súgó nem jelenik meg, helyette a 'base'-be (főmenübe) dob.
A bővített súgó link-jét hogy kellene megadnom?

G.

<?php
function mymodule_help($section) {
   switch ($section) {
...
    case 'base/rendszer/felhasznalo':
     $output = '<p>'. 'Felhasználók karbantartása' .'</p>';
     $output .= theme("more_help_link", url('base/help/felhasznalo'));
     return $output;
    case 'base/help#felhasznalo':
     $output = '<p>'. t('Ez a bővített súgó') .'</p>';
        return $output;
...
?>
0
0
aboros képe

hook_menu -ben definiálnod kell azt az útvonalat, ahol a bővített súgód lesz és egy eljárást is készítened kell, ami a bővített súgót jeleníti majd meg a megadott útvonalon. arra linkelsz majd a hook_help -ből.

0
0

-
clear: both;

makgab képe

Vagyis, ha pl. url('base/help/felhasznalo') van megadva, akkor a hook_menu()-ben kell egy
"menu"?
De ez meg fog jelenni egy menüpontként is a baloldali menüblokkban, nem?

G.

<?php
...
$items['base/help/felhasznalo'] = array(
    'title' => t('Felhasznalo Súgó'),
    'description' => t('Felhasználó súgó'),
    'page callback' => 'help_felhasznalo',
    'access callback' => 'user_access',
    'access arguments' => array('lister hook'),
    'file' => 'hook.help.inc',
  ); 
...
?>

G.

0
0
aboros képe

többféle "TYPE" létezik.
lehet MENU_CALLBACK és akkor nem tartozik hozzá menüpont, csak az útvonalat regisztrálod, hogy oldalt jeleníthess meg rajta. ez kellene neked.
lehet MENU_SUGGESTED_ITEM az alapból kikapcsoltan jön létre és így nem is jelenik meg.

...
$items['base/help/felhasznalo'] = array(
    'title' => t('Felhasznalo Súgó'),
    'description' => t('Felhasználó súgó'),
    'page callback' => 'help_felhasznalo', #help_felhasznalo fgv fogja eloallitani az oldalt ami a bovitett sugo?
    'access callback' => 'user_access',
    'access arguments' => array('lister hook'),
    'type' => MENU_CALLBACK, #itt a csel ami neked kell
    'file' => 'hook.help.inc',
  ); 
...
0
0

-
clear: both;