silversk8r képe

Adj' Isten!
köszi a modult, pár hete nekem is nagyon jól jött volna :)
talán mág mindig keresed a választ, és másoknak is jól jöhet. Az alábbi kódot tedd az $output = theme('status_messages') . drupal_render($form); elé

    //drupal_set_message(var_export($_FILES, true));
    if ($_FILES['files']['error']['up_field'] == 0 && $_FILES['files']['size']['up_field'] > 0) {
      $fileinfo = 'Feltöltött fájl neve: \''. $_FILES['files']['name']['up_field'] .'\', mérete: '. $_FILES['files']['size']['up_field'];
      drupal_set_message($fileinfo);
      //avagy
      $form['aha']['#prefix'] .= $fileinfo;
    }

nem volt jobb ötletem mint a php $_FILES tömbjéből elővenni az adatokat.

ahah fájlfeltöltés működése: http://drupal.org/node/399676#comment-1451556

0
0
Sk8erPeter képe

Nagy Gusztáv már elmondta a lényeget és a megoldást.

Annyit tennék hozzá, hátha később hasznos lesz, hogy rosszul közelíted meg a kérdést: "nem találtam meg, hogy hogyan hivatkozhatok az alapértelmezett címoldalra" - nem az alapértelmezett címoldalra kell "hivatkozni", ami a /node elérési útvonalon található.
A /node elérési útvonal pedig azért működik, mert azt létrehozza a node_menu() függvény:

  $items['node'] = array(
    'page callback' => 'node_page_default', 
    'access arguments' => array('access content'), 
    'menu_name' => 'navigation', 
    'type' => MENU_CALLBACK,
  );

Ennek hatására meghívódik a node_page_default() függvény. Itt a

$build = node_view_multiple($nodes);

sor miatt - amennyiben van már létrehozott node - értelemszerűen a node_view_multiple() függvény hívódik meg, ahol nem adódik át paraméterben explicite a $view_mode, aminél így a default érték jut érvényre, vagyis a teaser ($view_mode = 'teaser').

Neked tehát nem az a feladatod, hogy a /node elérési úton megjelenő tartalmat módosítsd, hanem hogy egy másik elérési úton valósítsd meg Views segítségével a node-ok hasonló megjelenítését 'full' (és nem 'teaser') view mode-dal, és ezt állítsd be alapértelmezett kezdőlapnak. Ehhez nyújt segítséget a Views modulban már előre definiált frontpage view, és Nagy Gusztáv előbbi hozzászólása.

2
0
nandorsoma képe

Képzeld már írtam, hogy meddig jutottam, amikor írtál. Egyébként jött még egy hibaüzenet amiben ez segített.

Szóval a megoldás egyik része:
Létre kell hozni egy tmp mappát a gyökérkönyvtárban, melynek én mondjuk 777 jogosultságot adtam. Állítólag a 755 biztonságosabb, de az előbbi a biztos.
Megkeresed azt a fájlt amire a hibaüzenet vonatkozik. Ez jelen esetben az includes/file.inc állomány.
Ennek a hivatkozott soránál(1897.) kezdődik a következő kód:

function file_unmanaged_save_data($data, $destination = NULL, $replace = FILE_EXISTS_RENAME) {
  // Write the data to a temporary file.
  $temp_name = drupal_tempnam('temporary://', 'file');
  if (file_put_contents($temp_name, $data) === FALSE) {
    drupal_set_message(t('The file could not be created.'), 'error');
    return FALSE;
  }
 
  // Move the file to its final destination.
  return file_unmanaged_move($temp_name, $destination, $replace);
}

$temp_name = drupal_tempnam('temporary://', 'file'); sorban a temporary://-t átírjuk tmp/ -re. Ez a sor hivatkozik a korábban létrehozott mappára.

Ha itt abbahagyjuk akkor egy újabb hibaüzenetbe futunk, amire a megoldás a fenti komment.

Röviden:

http://439cserkesz.net78.net/admin/config/media/file-system

Ezen az oldalon a Temporary Directory legyen: tmp

Ezzel remélhetőleg, most már véglegesen megoldódott a probléma! :)

0
-2
HF leon képe

Köszönöm!

Én a webfelületen tudok egy megoldást a rejtett mezők használata, majd egy sima text mezőben az értékek felhasználása. Ez a rész jól megy.

Viszont a különféle mezőkhöz való hozzáférést, még nem egészen értem. Legyen szó egy modulról, vagy a .theme fájlról. Itt nem egészen tiszta, mikor hogy érhetem el a különféle eltárolt mezőket.

Sajnos erről a részről nem találtam eddig jó leírást. A témafájlban jól tudok a különféle .twig fájlokhoz plusz változókat hozzáadni.

Viszont a különféle eltárolt adatok lekérdezése csak a google közreműködésével ment eddig. Ha ebben tudnál segíteni, annak nagyon örülnék! Jó lenne megértenem a logikáját :).

  1. $language = \Drupal::languageManager()->getCurrentLanguage()->getId();
  2. $language_name = \Drupal::languageManager()->getCurrentLanguage()->getName();
  3. $sitename = \Drupal::config('system.site')->get('name');

Például a fenti kódban a nyelvet a nyelv nevét és a szájt nevét kérem le.
Ilyen esetben lenne jó tudnom, hogy például az adott nézet mezőit hogyan érhetném el, vagy például egy korábban definiált számlista mező összes társított név értékeit miként kérhetném le.

(Most egyszerűen beleírtam a twig fájlba a számlista mező értékeit, amit az adott tartalomnál a rögzített értékekkel együtt használok fel a kívánt megjelenítéshez. Viszont, mi van , ha a lista később bővül, ekkor újra a twig fájlt is szerkesztenem kéne, ami nem elegáns. Ezért lenne jó lekérnem a mező összes lehetséges értékét és ezt átadnom a twig fájlnak.)

0
0
HF leon képe

Tehát másold a region.tpl.php fájlt a system modul mappájából a témád templates mappájába és írd át így a tartalmát:

  1. <?php if ($content): ?>
  2. <div id="<?php print $region; ?>" class="<?php print $classes; ?>">
  3. <?php print $content; ?>
  4. </div>
  5. <?php endif; ?>

Kérlek tanulmányozd át a fentebbi hozzászólásaim még egyszer!

A drupal belső működésébe beleszólni, mint egyes részek osztályaihoz plusz osztályokat hozzáadni a template.php fájlban lehet.

Például a fentebb lévő kódban szereplő változókhoz máshogy nem férsz hozzá. Sok jó dolgot meg lehet csinálni így. Persze ehhez némi php tudás is kell. Ugyanakkor a tpl fájlok is php fájlok, tehát ott is szükséged lehet minimális php tudásra.

A region.tpl.php fájl megjegyzéseiben ott a leírás, hogy elérhető az adott régió neve, ahogy a .info fájlban megadtad.

Arra is van lehetőség, hogy minden régiónak külön tpl fájlt csinálj teljesen egyedien, de ez csak különleges esetekben szükséges a te problémádnak nem ez lenne a legjobb megoldása.

Ha nagyon nem szeretnél ilyesmivel vesződni, akkor talán segíthet az alábbi modul:
Region Class

Ne add fel! Kitartás, tanulás! Talán az elején nehéznek tűnik, de hidd el, ha, már megy, akkor látni fogod, milyen egyszerű a drupal 7 sminkelése. Ahhoz, hogy igazán egyedi kinézetű oldalakat csinálj erre szükség van!

1
0
opera11 képe

Nos a readme fájlban tényleg találtam valamit, konkrétan azt, hogy az alábbi kóddal ellehet tüntetni bizonyos textareakról a formázási leghetőséget. A leírás szerint a drupal témám template.php fájlába kell bemásolnom. Nos ennek az lett csak az eredménye, hogy az oldal működésképtelen lett és kiírta, hogy php hiba a valahanyadik sorban.

Egyébként FF-al néztem és ott működik mind a kettő szerkesztő, de Operában amit elötte ki kell bontani, azok nem, szóval ez valami Opera+TinyMCE Javascript bug.

Az IMCE képfeltöltő modullal való összekapcsolás miatt már ugyanide a template.phpba bemástam ezt a kódot Lehet, hogy az a gond? Php-hoz nagyon nemértek..(Bár anélkül is próbáltam, de úgysem akaródzott...

Lehet, hogy mégiscsak a BUEeditor lesz a befutó :)

function theme_tinymce_theme($init, $textarea_name, $theme_name, $is_running) {
  switch ($textarea_name) {
    // Disable tinymce for these textareas
    case 'log': // book and page log
    case 'img_assist_pages':
    case 'caption': // signature
    case 'pages':
    case 'access_pages': //TinyMCE profile settings.
    case 'user_mail_welcome_body': // user config settings
    case 'user_mail_approval_body': // user config settings
    case 'user_mail_pass_body': // user config settings
    case 'synonyms': // taxonomy terms
    case 'description': // taxonomy terms
      unset($init);
      break;
 
    // Force the 'simple' theme for some of the smaller textareas.
    case 'signature':
    case 'site_mission':
    case 'site_footer':
    case 'site_offline_message':
    case 'page_help':
    case 'user_registration_help':
    case 'user_picture_guidelines':
      $init['theme'] = 'simple';
      foreach ($init as $k => $v) {
        if (strstr($k, 'theme_advanced_')) unset($init[$k]);
      }
      break;
  }
 
  /* Example, add some extra features when using the advanced theme.
 
  // If $init is available, we can extend it
  if (isset($init)) {
    switch ($theme_name) {
     case 'advanced':
       $init['extended_valid_elements'] = array('a[href|target|name|title|onclick]');
       break;
    }
  }
 
  */
 
  // Always return $init
  return $init;
}
0
0
aruna képe

"Az a kérdésem, hogy a drupal 7 máshol is tárolja azt az információt, hogy egy node adott fieldjéhez milyen termek vannak hozzárendelve, vagy elég ezekből kitörölnöm?"

nem tudom a választ. De igazából nem szerencsés így csinálni (bár megismered így a táblákat), mert pont erre vannak az API függvények, amiknek az a dolguk, hogy minden táblában takarítsanak, ahol kell.

Én így állnék neki:

- A hook_node_presave() hook-ot implementálnám csak.

- Ebben a hook-ban a $node tartalmazza a term id-t ($tid). A term id-vel betöltheted az összes node-ot, ami még ehhez a term-hez van hozzárendelve a taxonomy_select_nodes() függvénnyel.

- A betöltött node-okon végigtekersz egy ciklussal, és megszünteted a hozzárendelésüket az adott term-hez, és elmented mindegyik node-ot.

SZERK: Valahogy így, nem próbáltam a kódot!

function unique_term_node_presave($node) {
  if(!empty($node->status) && $node->status && !empty($node->field_structure)){
    $tids= field_get_items('node', $node, 'field_structure');
    if(is_array($tids)){
      foreach($tids as $tid){
        if ($nids = taxonomy_select_nodes($tid) ) {
          $nodes = node_load_multiple($nids);
          foreach ($nodes as $node_obj) {
            foreach($node_obj->field_structure[$node_obj->language] as $index => $tag) {
              if($tag['tid'] == $tid) {
                unset($node_obj->field_structure[$node_obj->language][$index]);
              }   
            }
            node_save($node_obj);
            watchdog('content', 'Node saved: %title.', array('%title' => $node_obj->title), WATCHDOG_NOTICE, l(t('view'), 'node/' . $node_obj->nid));
          }
        }
      }
    }
  }
}
1
0
Illyés Edit képe

Bocsi, de hülyeséget írtam. Az arg() függvénnyel csak akkor tudsz a fenti módon dolgozni, ha Views modullal állítottad elő a /termekek, /termekek/pekaru, stb. oldalakat. Szokványos esetben az arg() mindig "node" értéket fog visszaadni.

Büntetésből akkor most részletesen leírom:

<?php
 
/*
Hol vagyok?
*/
 
$utvonal = explode("/", drupal_get_path_alias('node/'.$node->nid));
 
/*
Vegyük az $utvonal tömb első elemét, értéke pl. www.akarmi.hu/termekek/pekaru/kenyer esetén 'termekek' lesz. Ezt kell majd később összevetnünk a Primary menü linkjeinek  útvonalával (/termekek, /szolgaltatasok, stb).
*/
 
$ittvagyok = $utvonal[0];
 
/*
A Primary menü azonosítója mid=2. Ellenőrizni a menu adatbázis-táblában! A menu_get_item() visszaad egy tömböt, ebből kell majd kihalásznunk előbb a Primary menü gyermekeit, majd a gyermekekhez tartozó útvonalakat.
*/
 
$menu = menu_get_item(2);
 
/*
Ebben a tömbben fogjuk tárolni a Primary menü útvonalait.
*/
 
$tomb = array();
 
/*
És most halászunk...
*/
 
$szam = 0;
foreach ($menu['children'] as $child) {
 
/*
Fogjuk a Primary menü gyermekeit...
*/
 
$menuitem = menu_get_item($child);
 
 
/*
A gyermekek ['path'] eleme kell nekünk, pontosabban a hozzájuk tartozó útvonal álnév.
*/
 
$ut = drupal_get_path_alias($menuitem['path']);
 
/*
Adjuk hozzá ahhoz a tömbhöz, amiben a Primary menü útvonalait tároljuk.
*/
 
$tomb[$szam] = $ut;
 
$szam++;
 
}
 
/*
Most elkezdjük kiírni a Primary menü elemeit.
*/
 
$szamlalo = 0;
 
foreach ($primary_links as $link){
 
/*
Ha valamelyik primary link útvonala megyegyezik az $ittvagyok értékével, rátesszük az "aktív" stílusosztályt.
*/
 
if ($tomb[$szamlalo] == $ittvagyok){
 
$aktiv = ' class="aktiv" ';
}
 
else {
 
$aktiv = "";
}
 
?>
 
<li<?php print $aktiv ?>>
 
<?php print $link; $szamlalo++; ?>
 
</li>
 
<?php } ?>

Nem biztos, hogy működik, mert most nem tudom tesztelni. De valahogy így...

Sajnos nem sikerült szépen formáznom ezt a hozzászólást...

U.i.: Értelemszerűen a page.tpl.php fájlba kell a fenti kódot beilleszteni. Valamint kell egy CSS osztály az .aktiv osztályra:

li.aktiv a {
color: #ffcc00;
}

U.u.i.: Kipróbáltam, működik.

0
0

Közeledik a 4.7.0-ás kiadás

Hojtsy Gábor képe
Frissítés: a kód fagyasztást Dries szeptember 15-re tolta el néhány fontos változtatás beépítése miatt.

A Drupal 4.7-es kiadás egyre közelebb kerül, Dries bejelentése szerint szeptember elsején tervezi a kód befagyasztását, mely után csak hibajavítások kerülnek majd a forrásba. Már most számos újítás került az alaprendszerbe, többek között AJAX technikával működő űrlapok, összecsukható űrlap szakaszok, folkszonómia támogatás, DocBook exportálás a könyvekhez, stb. Ráadásul a 4.6.3 és 4.5.5-ben előrehozottan bevezetett új XML-RPC kódkönyvtár is része a leendő kiadásnak.

Van azonban számos további olyan szolgáltatás, melyek még tesztelést, kód áttekintést igényelnek, és ebben nagyban számítanak a felhasználók segítségére. Előkészített, és folt formájában elérhető szolgáltatás csak akkor fog kimaradni, ha nem akad tesztelő!

A most látható változások alapján nem kell majd sok módosítást végezni a kiegészítő modulokon, hogy együtt tudjanak működni a 4.7-es sorozattal. Bővebben a jelenlegi fejlesztői verzióra történő frissítésről szóló dokumentumban lehet olvasni.

Kategóriák: 

Drupal 5.1 telepítés

uborka képe

Ez első képernyőn az alábbi hibaüzeneteket írja ki:

Notice: Undefined index: profile in f:\a_szerver\www\dazar\install.php on line 395

Notice: Undefined index: profile in f:\a_szerver\www\dazar\install.php on line 395

Notice: Undefined variable: base in f:\a_szerver\www\dazar\includes\form.inc on line 348

Notice: Undefined variable: base in f:\a_szerver\www\dazar\includes\form.inc on line 358

Notice: Undefined variable: redirect in f:\a_szerver\www\dazar\includes\form.inc on line 268