Jenő képe

A következő módon oldanám meg:
template.php-ben az alábbi kód (nitobe sminkből copy-zva és módosítva)

function sminkneve_read_more_link($node) {
  if ($node != NULL) {
    $link_text  = t('<img class="teszolegesen" src="'.base_path().path_to_theme().'/image/kep.png" alt="Bővebben" />');
    $link_title = t('Bővebben: !title.', array('!title' => $node->title));
    $options = array(
      'attributes' => array('title' => $link_title),
      'html' => TRUE,
    );
    return l($link_text, 'node/' . $node->nid, $options);
  }
 
  return '';
}

A node.tpl.php-ban pedig:
<?php if ($teaser && $readmore): ?>
      <span class="readmore"><?php print sminkneve_read_more_link($node); ?></span>
<?php endif; ?>
0
0
Paal képe

Pár sort be tudnál ide másolni? Nem lehet, hogy az egy sima mysql, nem?
Valami ilyesmi:

DROP TABLE IF EXISTS `actions`;
CREATE TABLE `actions` (
  `aid` varchar(255) NOT NULL default '0',
  `type` varchar(255) NOT NULL default '',
  `func` varchar(255) NOT NULL default '',
  `params` longtext NOT NULL,
  `description` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`aid`),
  KEY `func` (`func`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
-- 
-- Tábla adatok: `actions`
-- 
 
INSERT INTO `actions` VALUES ('action_node_publish', 'Tartalom', 'action_node_publish', '', 'Publish node');
INSERT INTO `actions` VALUES ('action_node_unpublish', 'Tartalom', 'action_node_unpublish', '', 'Unpublish node');
INSERT INTO `actions` VALUES ('action_node_sticky', 'Tartalom', 'action_node_sticky', '', 'Make node sticky');
INSERT INTO `actions` VALUES ('action_node_unsticky', 'Tartalom', 'action_node_unsticky', '', 'Make node unsticky');
0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

fox mulder képe

Ha felteszek itt egy kérdést, öt perc múlva megtalálom a megoldást...

Szóval a kódom így nézett ki:

$info = array(
        'has_title'   => TRUE,
        'title_label' => t('Name'),
        'has_body'    => TRUE,
        'body_label'  => t('Description'),
        'help'        => $node -> help,
        'description' => $node -> body,
        'type'        => $node -> machine_readable_name,
        'name'        => $node -> title,
        'module'      => 'MODULOM_NEVE'
);
node_type_save((object) $info);

A Clear cached data gombra kattintva a System modul system_clear_cache_submit() függvénye fut le, abban a drupal_flush_all_caches() függvény, abban pedig a node_types_rebuild(), melyben a tartalomtípus törlésre kerül, if(!empty($info->disabled)). Ez pedig akkor van, ha a node_type táblában a module mező értéke NEM 'node'!

A fenti kódba tehát a 'MODULOM_NEVE' helyett 'node'-ot kellett írni és lőn csoda. A _node_types_build() megfelelő részében az alábbi a megjegyzés:

// Check for node types from disabled modules and mark their types for removal.
// Types defined by the node module in the database (rather than by a separate
// module using hook_node_info) have a module value of 'node'.

Nekem nem tiszta, hogy miért 'törölhető' a modulom által létrehozott tartalomtípus, hiszen nem a hook_node_info()-val hoztam létre. Ezek szerint nem illik használni a node_type_save() függvényt modulban?
0
0

Fox Mulder

Keveqiah képe

Tisztában vagyok vele, hogy ott van, néztem is, de egy nagyon alap, mindentől mentes feltöltés példa kellene.
Kezdésként pl, hogy hogyan kapom meg az #ahah által meghívott függvényből a form file típusú mező tartalmát.

Jelenleg ez van a függvényben:

  $field = content_fields($field_name, $type_name);
 
  // Build the new form.
  $form_state = array('submitted' => FALSE);
  $form_build_id = $_POST['form_build_id'];
  $form = form_get_cache($form_build_id, $form_state);
 
  if(empty($form['files']['picture']))
  {
    drupal_set_message(t('Nincs fájl kiválasztva'), 'error');
    print drupal_to_js(array('data' => theme('status_messages')));
    exit;
  }
 
  print drupal_to_js(array('status' => TRUE, 'data' => theme_item_list($form['post'])));
  exit;

Ez addig jó is, hogyha üres a file mező, akkor hiba. FF firebug konzol XHR fülön szépen meg is jelenik a kérés és a Post adatok között ott vigyorog a "files[picture]" mező üresen.
Viszont ha már választok ki fájlt, a kérés nem teljesül.

Tényleg ennyire bonyolult dolgot kértem, vagy mindenki csak a már meglévő modulokat használja és kopipaszte módon szerkesztgeti?

0
0
aboros képe

elég vaskos mennyiségű dokumentáció lelhető fel a témában, de legyen. sose csináltam konkrétan ilyet, úgyhogy ezt most csak a te kedvedért írtam meg.

template.php

function SMINKNEVE_preprocess_page(&$vars, $hook) {
  if (arg(0) == 'node' && is_numeric(arg(1)) && arg(2) == 'iframe') {
    $vars['template_files'][] = 'page-iframe';
  }
}

page-iframe.tpl.php:

<?php
// $Id: page.tpl.php,v 1.4 2009/07/13 23:52:58 andregriffin Exp $
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language ?>" >
  <head>
    <title><?php print $head_title ?></title>
    <?php print $head ?>
    <?php print $styles ?>
    <?php print $scripts ?>
  </head>
  <body>
 
    <!-- Layout -->
    <div class="container"> <!-- add "showgrid" class to display grid -->
      <div id="main">
        <?php print $content ?>
      </div> <!-- /#main -->
    </div> <!-- /.container -->
    <!-- /layout -->
 
  <?php print $closure ?>
 
  </body>
</html>

ez _minden_ nodeot elérhetővé tesz node/%nid/iframe útvonalon. nincs header, logo, sidebarok, footer, semmi nincs, csak maga a page content van. viszont kommentestül. kiindulásnak jó lesz talán, legalábbis az elvet szépen mutatja szerintem.

kódírással, kipróbálással, posztmegírással együtt 17 perc volt. :)

0
0

-
clear: both;

Den képe

ha valamire nincs gomb:

function xyz_user_fullname_ds_field($entity) {
  if (isset($entity->field_fullname[LANGUAGE_NONE][0]['value']) && $entity->field_fullname[LANGUAGE_NONE][0]['value']) {
    $username = $entity->field_fullname[LANGUAGE_NONE][0]['value'];
  }
  else {
    $username = $entity->name;
  }
 
  $element = array(
    '#type' => 'link',
    '#href' => 'user/' . $entity->uid,
    '#title' => $username,
    '#prefix' => '<h2>',
    '#suffix' => '</h2>',
  );
 
  return render($element);
}

Röviden, amikor a juzer infot irja ki, akkor a nevet a beírt teljes névvel lecseréled. Ez a kód itt fenn már majdnem jó neked, de alapnak mindenképpen. Ezt a fv-t egy ds kód mező hívja, return xyz_user_fullname_ds_field($entity) van csak benn -> a kód kikerül az adatbázisból, verzióikezelhető, kódszínezés, etc.

A LANGUAGE_NONE-al a bohóckodást már nem csinálnám, helyette a field_get_items() függvényt kell használni.

0
0
Szotyi képe

Amiket kipróbáltam de nem működtek:

  1. settings.php-be átírtam a base_url-t a következőképp:
    $base_url = 'http://localhost';
  2. Eredmény: bejött az kezdőoldal smink nélkül (értsd: csak egyszerű szöveg,) és valamennyi menülink ilyesmi, mint például ez: http://localhost/user/password

  3. $base_url = 'localhost';
    Eredmény: smink nélküli kezdőoldal, csak még plusz felül egy hibajelzés is:
    ( ! ) Notice: Undefined offset: 1 in /var/www/html/refmenthet.hu/includes/bootstrap.inc on line 453
    Call Stack
    #	Time	Memory	Function	Location
    1	0.0000	133008	{main}( )	../index.php:0
    2	0.0003	226264	drupal_bootstrap( )	../index.php:15
    3	0.0003	226072	_drupal_bootstrap( )	../bootstrap.inc:1120
    4	0.0004	226796	conf_init( )	../bootstrap.inc:1134

    A menü linkek ilyenné változtak:
    http://localhost/refmenthet.hu/localhost/
    http://localhost/refmenthet.hu/localhost/node/247
  4. Pathologic modult is kipróbáltam:
    Modul nélkül például ezen a nodeon http://refmenthet.hu/node/2059 a kép localhoston ide mutat:
    <img alt="" src="/sites/default/files/Clipboard01.jpg"

    S persze nem jeleníti meg a képet.

    Modult bekapcsolva - majd Webhelybeállítás - Beviteli formák - Full HTML sor végén [ beállítás ] - Pathologic előtt bepipálni [ Beállítások mentése ]
    Adott node szerkesztés és mentés után sem változott a helyzet.

Ha számít valamit egy drupal 6-os oldalról van szó.
Most még kipróbálom a .htaccess fájlt...

0
0

Péter

Illyés Edit képe

Ehhez egy új régiót kell létrehoznod a sminkben, ami majd ugyanúgy fog viselkedni, mint a meglévő fejléc-bal-közép-jobb-lábléc régiók.

1. Ha nincs template.php nevű fájlod, akkor hozz létre egyet, ha van, akkor nyisd meg. Ebben a fájlban kell deklarálnod a régiókat:

<?php
function sminkneve_regions() {
   return array(
      'right' => t('right sidebar'),
      'left' => t('left sidebar'),
      'content' => t('content'),
      'header' => t('header'),
      'footer' => t('footer'),
      'tartalomfent' => t('tartalomfent'),
  );
}
?>

2. A page.tpl.php-ban (és ha szükséges, akkor a style.css fájlban) meghatározod, hogy hová kerüljön a 'tartalomfent' nevű régió:

<?php
<div id="main">
<?php print $messages; ?>
<?php print $tartalomfent; ?>
<?php print $breadcrumb; ?>
<h1 class="title"><?php print $title; ?></h1>
<div class="tabs"><?php print $tabs; ?></div>
<?php print $help; ?>
<?php print $content; ?>
</div>

3. Ezek után a blokk beállítások oldalon bármelyik blokkot beteheted a 'tartalomfent' régióba, az a középső content rész fölött fog megjelenni.

0
0
makgab képe

    Én két rendszert néztem:
  • Ledger
  • Symboltech

Az xml talán az egyik legelterjedtem adatcsere formátum. Én egy szkripttel töltöttem be. Online lehetőséget nem szeretem, mert ha megszakad a kapcsolat, akkor gondot okoz a félig elküldött adat. Bár elvileg ezt is ügyesen ki lehet védeni talán.
Szerintem időzítőből lehet megoldani optimálisan. Pl. ügyviteli adatokat időközönként a Drupal-ra feltölteni (ftp,sftp). A Drupal oldalon meg egy időzítővel (ha van friss fájl) be lehet tölteni.

Ez lenne az egyszerű elv. Egy kis segítség egy szkripthez, pl.:

<?php
  // ********************************
  // get product data from upload xml
  // ********************************
  // ...
  $xml_webgroup_id = array();
  $xml = simplexml_load_file("./path/to/uploaded/products.xml");     // FROM XML
  foreach ( $xml as $prd ) {
     $xml_title = $prd->name . "\n";
     $xml_code = $prd->code . "\n";
     $xml_id = $prd->id . "\n";
     foreach ( $prd->ProductWebGroups->ProductWebGroup as $wg ) {
        $xml_webgroup_id[] = $wg;
        }
 
     if ( $product_q = commerce_product_load_by_sku( $xml_id ) ) {
           echo "\nUpdate...\n";
           $product = new StdClass();
           $product->product_id = $product_q->product_id; // here is set id for the modify product
           $product->title = $xml_title;
           $product->sku = $xml_id;
           $product->status = '1';
           $product->revision_timestamp = time();
           // $product->type = $xml_producttype;
           $product->type = 'product';
           $product->uid = $user->uid;
           $product->created = time();
           $product->changed = time();
           $product->field_symbol_code[LANGUAGE_NONE][0]['value'] = $xml_code;
           $i = 0;
           foreach ( $xml_webgroup_id as $wid ) {
              $product->field_productgroups[LANGUAGE_NONE][$i]['tid'] = $xml_webgroup_id[$i];
              $i++;
              } // foreach
           commerce_product_save($product);
           $xml_webgroup_id = array(); // empty variable
 
        } else {
           echo "\nInsert...\n";
           $product = commerce_product_new('product');
           $product->title = $xml_title;
           $product->sku = $xml_id;
           $product->status = '1';
           $product->revision_timestamp = time();
           // $product->type = $xml_producttype;
           $product->uid = $user->uid;
           $product->created = time();
           $product->changed = time();
           $product->field_symbol_code[LANGUAGE_NONE][0]['value'] = $xml_code;
           $i = 0;
           foreach ( $xml_webgroup_id as $wid ) {
              $product->field_productgroups[LANGUAGE_NONE][$i]['tid'] = $xml_webgroup_id[$i];
              $i++;
              } // foreach
           commerce_product_save($product);
           $xml_webgroup_id = array(); // empty variable
        } // if
 
  } // end of foreach
 
  // ...
?>
0
0

HTML hirlevél küldése

Richter Miklós képe

Szervusztok mesterek!

Lenne egy problémám és sajnos nem tudom megoldani.

Hiirlevelet szeretnék küldeni, úgy hogy HTML elemeket, amelyeket beleírök a hirlevéltörzsbe maradéktalanul vigye át és ennek megfelelő kinézettel jelenjen meg a fogado oldalon.
Használom a mimemail modult és be van állítva, hogy az leküldött hirlevél formálya HTMl legyen.
Az általam készített HTML a html szerkesztőben hiba nékül jelenik meg:

Plusz ha elküldöm a hirlevelet, akkor még itt is jó:http://www.buvarkodj.com/content/buvarkodjcom-30

Drupal verzió: