node/add/... jogosultság

fox mulder képe

Sziasztok!

A Pro Drupal Development 2. ed. alapján próbálkozom, de nem sikerül elérnem, hogy egy nem jogosult felhasználó számára ne is jelenjen meg egy link (a hozzáférés meg van tagadva, de azt szeretném, hogy a link se jelenjen meg).
A modulom definiál egy tartalomtípust:

function my_module_node_info() {
return array(
'my_content_type' = array(
...
'module' => 'my_content_type',
...
),
...
);
}

hook_perm():
function my_module_perm() {
return array('create my content type', 'delete my content type');
}
Drupal verzió: 

SQL lekérdezési hiba?!

kispi92 képe

A meglévő drupalomat szeretném "frissíteni" adatbázis frissítése által, de az importálási kísérlet után sajnos folyton-folyvást egy alább látható üzenetbe ütközöm a phpmyadmin közlése szerint:

SQL-lekérdezés:

Blokk megjelenítése akkor ha...

wildface86 képe

Hy evereybody!

Szerettem volna azt megoldani, hogy a tartalom bevezetője után belőni egy blokkot, ami sikerült is.

template.php

 
Function sminkemneve_preprocess_node(&$vars) {
  if ($vars['page'] != 0) {
    $adblock = module_invoke('block', 'block', 'view', 9);
 
$vars['content'] = $vars['field_rovatok_rendered'] . $vars['field_bevezeto_szoveg_rendered'];
 
$vars['content'] .= '<div id="block-block-9">' . $adblock['content'] . '</div>';
 
$vars['content'] .= $vars['node']->content['body']['#value'];
  }
}
Fórum: 
Drupal verzió: 

Drupal 7.4 telepitese magyarositassal

eggproject képe

Sziasztok....

en most toltottem le a fooldalrol a drupal 7.4-et es a hozza tartozo forditast [aminek a neveben 7.2 van] es el is indul a telepites a modul fel is mennek de utanna elszal

Hiba történt a felület fordítások importálásakor.

Drupal verzió: 

Kép usemap probléma D7 esetén

LaciApu képe

Sziasztok!

A tartalomba beillesztett képre szeretnék linkeket elhelyezni, mintegy alternatív képes menü. Nyolc linket szeretnék a képre rakni, de csak háromig működik. Ha egy negyedik 'area' definíciót is beillesztek a kimenet forrásából eltűnik a teljes 'map' html tag. A beillesztett html kód:

Fórum: 
Drupal verzió: 
aboros képe

csak egy tipp, de tulajdonképpen, ha jól értem be akarod sorszámozni a li tagokat.
a theme_links() -el meg tudod ezt csinálni.
http://api.drupal.org/api/function/theme_links

én azt csinálnám, hogy ezt a függvényt bővíteném még egy attribútummal és ha az true, akkor be is sorszámozom az elemeket... így:

function playground_links($links, $attributes = array('class' => 'links'), $numbering = FALSE) {
  $output = '';
 
  if (count($links) > 0) {
    $output = '<ul'. drupal_attributes($attributes) .'>';
 
    $num_links = count($links);
    $i = 1;
 
    foreach ($links as $key => $link) {
      $class = $key;
      //
      // Figyelj, itt változik az eredetihez képest
      //
      if ($numbering){
        $class .= ' item-'.$i;
      }
      // Ennyi volt a változás ;)
 
      // Automatically add a class to each link and also to each LI
      if (isset($link['attributes']) && isset($link['attributes']['class'])) {
        $link['attributes']['class'] .= ' ' . $key;
      }
      else {
        $link['attributes']['class'] = $key;
      }
      // Add first and last classes to the list of links to help out themers.
      $extra_class = '';
      if ($i == 1) {
        $extra_class .= 'first ';
      }
      if ($i == $num_links) {
        $extra_class .= 'last ';
      }
      $output .= '<li '. drupal_attributes(array('class' => $extra_class . $class)) .'>';
 
      // Is the title HTML?
      $html = isset($link['html']) && $link['html'];
 
      // Initialize fragment and query variables.
      $link['query'] = isset($link['query']) ? $link['query'] : NULL;
      $link['fragment'] = isset($link['fragment']) ? $link['fragment'] : NULL;
 
      if (isset($link['href'])) {
        $output .= l($link['title'], $link['href'], $link['attributes'], $link['query'], $link['fragment'], FALSE, $html);
      }
      else if ($link['title']) {
        //Some links are actually not links, but we wrap these in <span> for adding title and class attributes
        if (!$html) {
          $link['title'] = check_plain($link['title']);
        }
        $output .= '<span'. drupal_attributes($link['attributes']) .'>'. $link['title'] .'</span>';
      }
 
      $i++;
      $output .= "</li>\n";
    }
 
    $output .= '</ul>';
  }
 
  return $output;
}

aztán a page.tpl.php -ban így íródik ki a primary_links:

 if (isset($primary_links)) {
  print theme('links', $primary_links, array('class' => 'links primary-links'), TRUE) 
}

(eredetileg ugye az a TRUE nincs benne, azt most fűztük bele)

0
0

-
clear: both;

dj képe

szolgáltatókat akik havidíj nélkül nyújtanak ilyen szolgáltatást. Találtam is elég sokat. Előnye a költségmentesség kiszámíthatatlan forgalom esetén, hátránya, hogy az sms árának valamivel több, mint 50% marad nálunk forgalom esetén. Elég egyszerű rutin megy az ilyen szolgáltatóknál. Kell egy php fájl ami a GET-el küldött adatokat feldolgozza. Akit én választottam az a következő adatokat küldi: sms-id, prefix, uzenet, telefonszam, díjkategória. Sikeres akció után OK karaktereket vár .

A nyilvántartás érdekében létrehoztam egy sms nevű táblát ami tartalmazza a fenti adatokat valamint a dátum és user mezőket, id egyedi kulccsal.

A fogadó program példa tagság kezeléssel a membership modult felhasználva, üzenetben az fn karakterek után a felhasználónevet várom:

<?php
  $id = $_GET[ "id" ];
  $prefix = $_GET[ "prefix" ];
  $uzenet = $_GET[ "uzenet" ];
  $telefonszam = $_GET[ "telefonszam" ];
  $kategoria = $_GET[ "kategoria" ];
 
  require_once './includes/bootstrap.inc';
  drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
 
  $uid = -1;
 
  if ( substr( $uzenet, 0, 2 ) == 'fn' ) {
    $uname = substr( $uzenet, 2 );
    $user = db_fetch_object(db_query("SELECT uid FROM {users} WHERE name = '%s'", $uname));
    if (  empty( $user ) ) {
      echo "Hibas felhasznalonev!";
      exit;
    }
    $uid = $user->uid;
    if ( ! db_query( 'INSERT INTO {sms} ( id, prefix, uzenet, telefonszam, kategoria, uid )
      VALUES ( %d, \'%s\', \'%s\', \'%s\', %d, %d )',
      $id, $prefix, $uzenet, $telefonszam, $kategoria, $uid ) ) {
          echo "Hibas/mar letezo sms!";
          exit;
    }
    $result = db_fetch_object(db_query("SELECT expires FROM {membership} WHERE uid = %d", $uid));
    if( ! empty( $result ) ) { // már tag a felhasználó
        // 30 nappal meghosszabbodik a tagsága
        $expires_date = getdate( strtotime( "+30 day", $result->expires ) );
        $datestamp = mktime(0, 0, 0, $expires_date['mon'], $expires_date['mday'], $expires_date['year']);
        if ( ! db_query( 'UPDATE {membership} SET oid = %d, lastmod = %d, expires = %d WHERE uid = %d', 
             $uid, mktime(), $datestamp, $uid ) ) {
             db_query( 'DELETE FROM {sms} WHERE id = %d', $id );
             echo "Hibas adatfrissites!";
             exit;
      }
    } else { // még nem tag a felhasználó
      $member = user_load(array('name' => $uname));
      $role = variable_get('membership_role', 0);
      $expires_date = getdate( strtotime( "+30 day" ) ); // 30 napos tagságot kap
      $datestamp = mktime(0, 0, 0, $expires_date['mon'], $expires_date['mday'], $expires_date['year']);
      if ( ! db_query('INSERT INTO {membership} (uid, oid, lastmod, expires) VALUES (%d, %d, %d, %d)',
         $member->uid, $uid, mktime(), $datestamp) ) {
              db_query( 'DELETE FROM {sms} WHERE id = %d', $id );
              echo "Hibas tagsag bevitel!";
              exit;
      }
      if ( ! db_query('INSERT INTO {users_roles} (uid, rid) VALUES (%d, %d)', $member->uid, $role) ) {
           db_query( 'DELETE FROM {sms} WHERE id = %d', $id );
           echo "Hibas felhasznalo modositas!";
           exit;
      }
    }
  } else if ( $uzenet == "További lehetőségek" ) {
 
    // hibás lefutás esetén
    echo "HIBA!";
    exit;
  } else {
    echo "Nem kezelt sms uzenet!";
    exit;
  }
  echo "OK";
?>

Remélem segít annak akit érdekel.

Üdv!
Dudás József

0
0

Üdv!
Dudás József

Sk8erPeter képe

A korábban említett views-view-field--NÉZET-MACHINE-NAME--BLOCK-NÉZET-MACHINE-NAME--title.tpl.php fájlok feleslegesek, egyébként is hatékonyabb preprocess függvényekből felülbírálni ezeket a változókat, mint magából a template-fájlból. Cache-törlés után tehát töröltem őket, és felülbíráltam a template_preprocess_views_view_field() függvényt a saját theme-emben, majd az abban szereplő kódból csekkoltam, létezik-e az adott scope-ban olyan függvény, mely külön az adott nézet adott megjelenítésére vonatkozó preprocess, és ha igen, meghívtam azt is - mint kiderült, ezek a függvények speciel automatikusan nem hívódnak meg.

Az alábbi kód megfelelően működik tehát a "Content: Title" belinkelt fieldjénél, hozzácsapja a $_GET['page']-et, vagyis a pager adott pozícióját:

  1. /**
  2.  * Implements template_preprocess_views_view_field()
  3.  * @see http://api.drupal.org/api/views/theme!theme.inc/function/template_preprocess_views_view_field/7
  4.  * Process a single field within a view.
  5.  * This preprocess function isn't normally run, as a function is used by default, for performance. However, by creating a template, this preprocess should get picked up.
  6.  */
  7. // /* -- Comment out this line if you want to use this function
  8. function MYTHEME_preprocess_views_view_field(&$vars) {
  9. // $vars['output'] = $vars['field']->advanced_render($vars['row']);
  10.  
  11. // innen: http://drupal.org/node/939462#comment-4476264
  12. if (isset($vars['view']->name)) {
  13. $function = 'MYTHEME_preprocess_views_view_field__' . $vars['view']->name . '__' . $vars['view']->current_display;
  14.  
  15. if (function_exists($function)) {
  16. $function($vars);
  17. // visszatérhetünk, legyen külön preprocess...
  18. return;
  19. }
  20. }
  21. }
  22. // */
  23.  
  24. /**
  25.  * Implements template_views_view_field__VIEW_MACHINE_NAME__DISPLAY_MACHINE_NAME()
  26.  * @see template_views_view_field()
  27.  * @see MYTHEME_views_view_field()
  28.  */
  29. // /* -- Comment out this line if you want to use this function
  30. function MYTHEME_preprocess_views_view_field__VIEW_MACHINE_NAME__DISPLAY_MACHINE_NAME(&$vars) {
  31. // $vars['output'] = $vars['field']->advanced_render($vars['row']);
  32.  
  33. if (isset($vars['row']->nid, $vars['row']->node_title)) {
  34. $path = drupal_get_path_alias('node/' . $vars['row']->nid);
  35. $options = array();
  36. if (isset($_GET['page'])) {
  37. $options['query'] = array(
  38. 'page' => $_GET['page']
  39. );
  40. }
  41.  
  42. $vars['output'] = l($vars['row']->node_title, $path, $options);
  43. }
  44. }
  45. // */
1
0

Modulok egy admin menübe csoportosítása

Wathfea képe

Sziasztok!

Van 3 modulom ami egy csoportba tartozik. Azt szeretném elérni, hogy az admin oldalon belül a configuration menüben megjelenjenek egy kategóriában. Ezt miként tudom elérni?

Drupal verzió: