dj képe

ha a modul fájlban felveszel saját témát és megcsinálod a template preprocesst hozzá:

/**
* Implements hook_theme().
*/
function MYMODULE_theme() {
return array(
'my_book_navigation' => array(
'variables' => array('book_link' => NULL),
),
);
}

/**
* Prepares variables for my book navigation templates.
*
* Default template: my-book-navigation.html.twig.
*
* @param array $variables
*/
function template_preprocess_my_book_navigation(&$variables) {
template_preprocess_book_navigation($variables);
}

Ezután már használhatod a saját twig fájlod. A modulod templates könyvtárában létrehozol egy my-book-navigation.html.twig fájlt ahol megírod a saját megjelenésedet.

Ezután már csak a block build funkciójában a #theme értékét átírod a saját témádra:


'#theme' => 'my_book_navigation',

és a blokk a saját megjelenést használja.

Ha van ennél egyszerűbb és drupal barátabb megoldás azt én is szívesen olvasom.

Szóval érdekelt a dolog, mert nem találtam szépnek amit fentebb leírtam. És rátaláltam a megoldásra: https://www.drupal.org/node/2100775

Kell hozzá a hook_theme_registry_alter és a hook_theme_suggestions_HOOK_alter.
Utóbbi azért, hogy egy suggestiont feltételesen a téma variables változójához adjunk amit a blokk téma hívásánál adunk meg. Így elérjük, hogy az eredeti navigáció twig fájlja is érvényesüljön és ha mi hívjuk a blokkunkból akkor a saját twig fájl is érvényesül.

Tehát a MYMODULE.module fájlban:

/**
 * Implements hook_theme_registry_alter()
 */
function MYMODULE_theme_registry_alter(&$theme_registry) {
  // Add new variable to variables array name suggestion.
  $theme_registry['book_navigation']['variables']['suggestion'] = NULL;
}
 
/**
 * Implements hook_theme_suggestions_HOOK_alter()
 */
function MYMODULE_theme_suggestions_book_navigation_alter(array &$suggestions, array $variables) {
  if (!empty($variables['suggestion'])) { 
    $suggestions[] = $variables['suggestion'];
  }
}

És a block class build funkciója módosul így:

  public function build() {
    $build = [];
    // Load the current node.
    $node = \Drupal::routeMatch()->getParameter('node');
    if (!empty($node->book['bid']) && empty($node->in_preview)) {
      $book_node = Node::load($node->book['bid']);
      if (!$book_node->access()) {
        return;
      }
      $build['test_book_navigation'] = array(
        '#theme' => 'book_navigation',
        '#book_link' => $node->book,
        '#suggestion' => 'book_navigation__MYMODULE',
        '#weight' => 100,
        // The book navigation is a listing of Node entities, so associate its
        // list cache tag for correct invalidation.
        '#cache' => [
          'tags' => $node->getEntityType()->getListCacheTags(),
        ],
      );
    }
 
    return $build;
  }

Ha ezután a téma könyvtárban létrehozod a book-navigation--MYMODULE.html.twig fájlt akkor a blokkod téma hívása már keresni fogja.

2
0

Üdv!
Dudás József

Sweetchuck képe

Az eredeti változat is megjelenítette a body mezőt, de csak teljes nézetben. (ha minden igaz)

Tesztelés továbbra sem árt.

// $Id$
 
/**
 * @file
 *    Add body field to poll content type.
 */
 
/*
  A működés egy kicsit megváltozott,
  még nem tudtam eldönteni hogy jobb lett vagy rosszabb. :)
 
  A bevezető (teaser) és a teljes nézet rendes kezelését egy kicsit nehezíti,
  hogy a Poll modul lefoglalja a {node_revisions}.teaser mezőt.
  Ezért nem lehet tudni hogy a teljes nézetben is meg kell-e jeleníteni a bevezetőt.
  Ez az információ az űrlap elküldésekor még rendelkezésre áll,
  tehát lehetett volna azt is csinálni,
  hogy a pollbody modul, egy saját 2 mezős (vid, teaser_include) adattáblában tárolja.
  De nem ezt választottam, hanem a <!--break--> jelölőhőz hasonlóan,
  belenyomtam egy másik jelölőt a {node_revisions}.body mezőbe.*/
 
/**
 * Implementation of hook_form_alter().
 */
function pollbody_form_alter(&$form, $form_state, $form_id) {
  if ( $form_id == 'poll_node_form') {
    $body_label = t('Body');
   if ( $row = db_fetch_object(db_query("SELECT body_label FROM {node_type} WHERE orig_type = 'poll'")) AND trim($row->body_label)) {
      $body_label = t($row->body_label); //Remélhetőleg angolul lett kitöltve.
    }
 
    $body           = '';
    $teaser         = '';
    $body_format    = FILTER_FORMAT_DEFAULT;
    $teaser_include = FALSE;
    if (isset($form_state['values'])) {
      $teaser         = $form_state['values']['teaser_js'];
      $teaser_include = $form_state['values']['teaser_include'];
      $body           = $form_state['values']['body'];
      $body_format    = $form_state['values']['format'];
    }
    else if (isset($form['#node']->pollbody)) {
      $teaser         = $form['#node']->pollbody['teaser'];
      $teaser_include = $form['#node']->pollbody['teaser_include'];
      $body           = $form['#node']->pollbody['body'];
      $body_format    = $form['#node']->pollbody['format'];
      if ( $teaser_include == FALSE ) {
        $body = $teaser .'<!--break-->'. $body;
      }
    }
 
    $form['body_field'] = node_body_field($form['#node'], $body_label, 0);
    $form['body_field']['#weight'] = -4;
    $form['body_field']['body']['#default_value'] = $body;
    $form['body_field']['format']['#default_value'] = $body_format;
    $form['body_field']['teaser_include']['#default_value'] = $teaser_include;
    $form['body_field']['teaser_js']['#default_value'] = $teaser;
  }
}
 
/**
 * Implementation of hook_nodeapi().
 */
function pollbody_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  if ($node->type != 'poll') return;
 
  switch ( $op ) {
    case 'insert' :
    case 'update' :
      if ( !$node->teaser_include ) {
        db_query("UPDATE {node_revisions} SET body = CONCAT('<!--ti-->', body) WHERE nid = '%d' AND vid = '%d'", $node->nid, $node->vid);
      }
      break;
 
    case 'view' :
      $teaser         = '';
      $teaser_include = FALSE;
      $body           = '';
      $body_format    = FILTER_FORMAT_DEFAULT;
 
      if (isset($node->op) AND $node->op == t('Preview')) {
        $teaser         = $node->teaser_js;
        $teaser_include = $node->teaser_include;
        $body           = $node->body;
        $body_format    = $node->format;
        $body = _pollbody_split_body($teaser_include, $body, $teaser);
      }
      else {
        if ( !isset($node->pollbody) ) {
          _pollbody_nodeapi_load($node);
        }
        $teaser         = $node->pollbody['teaser'];
        $teaser_include = $node->pollbody['teaser_include'];
        $body           = $node->pollbody['body'];
        $body_format    = $node->pollbody['format'];
      }
 
      if ( $a3 ) {
        $node->content['pollbody']['teaser']['#value'] = check_markup($teaser, $body_format);
      }
      else {
        if ( $teaser_include ) {
          $body = str_replace('<!--break-->', '', $body);
        }
        $node->content['pollbody']['body']['#value'] = check_markup($body, $body_format);
      }
      break;
 
    case 'load' :
      _pollbody_nodeapi_load($node);
      break;
 
  }
}
 
function _pollbody_nodeapi_load(&$node) {
  $node->pollbody = db_fetch_array(db_query("SELECT body, format FROM {node_revisions} WHERE vid = '%d'", $node->vid));
  $node->pollbody['teaser_include'] = TRUE;
  if (strpos($node->pollbody['body'], '<!--ti-->') === 0) {
    $node->pollbody['teaser_include'] = FALSE;
    $node->pollbody['body'] = drupal_substr($node->pollbody['body'], drupal_strlen('<!--ti-->'));
    //$node->body = $node->pollbody['body'];
  }
 
  $node->pollbody['teaser'] = node_teaser($node->pollbody['body'], $node->pollbody['format'], 0);
  $node->pollbody['body'] = _pollbody_split_body($node->pollbody['teaser_include'], $node->pollbody['body']);
}
 
/**
 * Ha kell, akkor levágja a bevezetőt a törzsről.
 *
 * @param boolean $teaser_include
 *    Azt hívatott jelezni hogy a bevezető látszik-e a tartalom teljes nézetében.
 *
 * @param string $body
 *    A tartalom törzse
 *
 * @param $teaser
 *    Ezt akkor kell megadni ha nem a <!--break--> mentén szerenténk leválasztani a bevezetőt.
 *    A $body a $teaser-rel kezdődik, és le kell csípni a $body elejéről.
 *
 * @return string
 *    A $teaser_include-tól függően a $body bevezetővel vagy annélkül.
 */
function _pollbody_split_body($teaser_include, $body, $teaser = NULL) {
  if ( $teaser_include == FALSE AND $teaser !== NULL ) {
    return drupal_substr($body, drupal_strlen($teaser));
  }
  else if ( $teaser_include == FALSE ) {
    if ( FALSE !== ($pos = strpos($body, '\r\n<!--break-->\r\n')) ) {
      return drupal_substr($body, $pos + drupal_strlen('\r\n<!--break-->\r\n'));
    }
    else if ( FALSE !== ($pos = strpos($body, '<!--break-->')) ) {
      return drupal_substr($body, $pos + drupal_strlen('<!--break-->'));
    }
  }
  else {
    return $body;
  }
}
0
0
HF leon képe

Open Graph protocol

  1.  
  2. <meta property="og:title" content="Page title" />
  3. <meta property="og:description" content="Page description" />
  4. <meta property="og:site_name" content="Site name" />
  5. <meta property="og:url" content="https://site.com/" />
  6. <meta property="og:locale" content="hu_HU" />
  7. <meta property="og:image" content="https://site.com/content-logo.png" />
  8. <meta property="og:image:type" content="image/png" />
  9. <meta property="og:type" content="website" />
  10.  

Az általad említett lap Wiki oldala szintén a fenti megoldást használja:
  1.  
  2. <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/4/44/H%C3%B3dmez%C5%91v%C3%A1s%C3%A1rh_.jpg/1200px-H%C3%B3dmez%C5%91v%C3%A1s%C3%A1rh_.jpg"/>
  3. <meta property="og:image:width" content="1200"/>
  4. <meta property="og:image:height" content="960"/>
  5. <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/4/44/H%C3%B3dmez%C5%91v%C3%A1s%C3%A1rh_.jpg/800px-H%C3%B3dmez%C5%91v%C3%A1s%C3%A1rh_.jpg"/>
  6. <meta property="og:image:width" content="800"/>
  7. <meta property="og:image:height" content="640"/>
  8. <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/4/44/H%C3%B3dmez%C5%91v%C3%A1s%C3%A1rh_.jpg/640px-H%C3%B3dmez%C5%91v%C3%A1s%C3%A1rh_.jpg"/>
  9. <meta property="og:image:width" content="640"/>
  10. <meta property="og:image:height" content="512"/>
  11. <meta name="viewport" content="width=1000"/>
  12. <meta property="og:title" content="Hódmezővásárhely – Wikipédia"/>
  13. <meta property="og:type" content="website"/>
  14.  

https://ogp.me/
Alább nézzük az általad említett lapot, ahol a Schema.org mikroadat modelljének json megoldását alkalmazták.
  1.  
  2. <script type="application/ld+json">
  3. {
  4. "@context": "https://schema.org",
  5. "@graph": [
  6. {
  7. "@type": "WebPage",
  8. "@id": "https://hodmezovasarhely.hu/",
  9. "url": "https://hodmezovasarhely.hu/",
  10. "name": "Főoldal - Hódmezővásárhely",
  11. "isPartOf": {
  12. "@id": "https://hodmezovasarhely.hu/#website"
  13. },
  14. "about": {
  15. "@id": "https://hodmezovasarhely.hu/#organization"
  16. },
  17. "datePublished": "2021-07-10T08:20:14+00:00",
  18. "dateModified": "2023-01-26T06:46:09+00:00",
  19. "breadcrumb": {
  20. "@id": "https://hodmezovasarhely.hu/#breadcrumb"
  21. },
  22. "inLanguage": "hu",
  23. "potentialAction": [
  24. {
  25. "@type": "ReadAction",
  26. "target": [
  27. "https://hodmezovasarhely.hu/"
  28. ]
  29. }
  30. ]
  31. },
  32. {
  33. "@type": "BreadcrumbList",
  34. "@id": "https://hodmezovasarhely.hu/#breadcrumb",
  35. "itemListElement": [
  36. {
  37. "@type": "ListItem",
  38. "position": 1,
  39. "name": "Kezdőlap"
  40. }
  41. ]
  42. },
  43. {
  44. "@type": "WebSite",
  45. "@id": "https://hodmezovasarhely.hu/#website",
  46. "url": "https://hodmezovasarhely.hu/",
  47. "name": "Hódmezővásárhely",
  48. "description": "Generációk jövője az Alföldön",
  49. "publisher": {
  50. "@id": "https://hodmezovasarhely.hu/#organization"
  51. },
  52. "potentialAction": [
  53. {
  54. "@type": "SearchAction",
  55. "target": {
  56. "@type": "EntryPoint",
  57. "urlTemplate": "https://hodmezovasarhely.hu/?s={search_term_string}"
  58. },
  59. "query-input": "required name=search_term_string"
  60. }
  61. ],
  62. "inLanguage": "hu"
  63. },
  64. {
  65. "@type": "Organization",
  66. "@id": "https://hodmezovasarhely.hu/#organization",
  67. "name": "Hódmezővásárhely",
  68. "url": "https://hodmezovasarhely.hu/",
  69. "logo": {
  70. "@type": "ImageObject",
  71. "inLanguage": "hu",
  72. "@id": "https://hodmezovasarhely.hu/#/schema/logo/image/",
  73. "url": "https://hodmezovasarhely.hu/wp-content/uploads/2021/07/HodmezovasarhelyLogo3.png",
  74. "contentUrl": "https://hodmezovasarhely.hu/wp-content/uploads/2021/07/HodmezovasarhelyLogo3.png",
  75. "width": 250,
  76. "height": 181,
  77. "caption": "Hódmezővásárhely"
  78. },
  79. "image": {
  80. "@id": "https://hodmezovasarhely.hu/#/schema/logo/image/"
  81. },
  82. "sameAs": [
  83. "https://www.facebook.com/vasarhelyiexpress"
  84. ]
  85. }
  86. ]
  87. }
  88. </script>
  89.  

https://schema.org/

A metatag modulhoz pedig itt egy cikk:
https://www.drupal.org/docs/contributed-modules/metatag/frequently-asked-questions-problems/howto-use-images-in-metatag

0
0

Hibás commentezés?

gdavid képe

Saját modult fejlesztettem de a fórum comment részéhez nem nyúltam, mégis valami gebasz van a nagyobb hozzászólás számoknál.

kiguberáltam az sql-t amit használ, leszedtem a commentet, meg pár ide nem vágó dolgot.

az eleje jó, de a közepén a thread rész igen érdekessé válik.
hogy lehet ez?

cid  	pid  	nid  	format  	timestamp  	name  	uid  	registered_name  	score  	thread  	status
2760  	0  	300  	1  	1190205504  	kohiszab  	391  	kohiszab  	0  	471g05/  	0
2765 	0 	300 	1 	1190213941 	Hotdog 	399 	Hotdog 	0 	471g06/ 	0
kisspepe képe

$view = new view;
$view->name = 'tutorialok_egyeb';
$view->description = 'Tutorialok Egyéb kezdőlap';
$view->tag = 'Tutorialok Egyéb';
$view->view_php = '';
$view->base_table = 'node';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Alapértelmezések', 'default');
$handler->override_option('sorts', array(
  'changed' => array(
    'order' => 'DESC',
    'granularity' => 'second',
    'id' => 'changed',
    'table' => 'node',
    'field' => 'changed',
    'relationship' => 'none',
  ),
  'created' => array(
    'order' => 'DESC',
    'granularity' => 'second',
    'id' => 'created',
    'table' => 'node',
    'field' => 'created',
    'relationship' => 'none',
  ),
));
$handler->override_option('filters', array(
  'type' => array(
    'operator' => 'in',
    'value' => array(
      'tutorialok' => 'tutorialok',
    ),
    'group' => '0',
    'exposed' => FALSE,
    'expose' => array(
      'operator' => FALSE,
      'label' => '',
    ),
    'id' => 'type',
    'table' => 'node',
    'field' => 'type',
    'relationship' => 'none',
  ),
  'name' => array(
    'operator' => '!=',
    'value' => 'Linux',
    'group' => '0',
    'exposed' => FALSE,
    'expose' => array(
      'operator' => FALSE,
      'label' => '',
    ),
    'case' => 0,
    'id' => 'name',
    'table' => 'term_data',
    'field' => 'name',
    'relationship' => 'none',
  ),
  'status' => array(
    'operator' => '=',
    'value' => '1',
    'group' => '0',
    'exposed' => FALSE,
    'expose' => array(
      'operator' => FALSE,
      'label' => '',
    ),
    'id' => 'status',
    'table' => 'node',
    'field' => 'status',
    'relationship' => 'none',
  ),
));
$handler->override_option('access', array(
  'type' => 'none',
));
$handler->override_option('cache', array(
  'type' => 'time',
  'results_lifespan' => '300',
  'output_lifespan' => '300',
));
$handler->override_option('use_ajax', TRUE);
$handler->override_option('use_pager', '1');
$handler->override_option('distinct', 0);
$handler->override_option('row_plugin', 'node');
$handler->override_option('row_options', array(
  'relationship' => 'none',
  'build_mode' => 'teaser',
  'links' => 0,
  'comments' => 0,
));
$handler = $view->new_display('page', 'Tutorialok Egyéb', 'page_1');
$handler->override_option('path', 'tutorialok/egyeb');
$handler->override_option('menu', array(
  'type' => 'none',
  'title' => '',
  'description' => '',
  'weight' => 0,
  'name' => 'navigation',
));
$handler->override_option('tab_options', array(
  'type' => 'none',
  'title' => '',
  'description' => '',
  'weight' => 0,
  'name' => 'navigation',
));

Amennyiben bekapcsolom a Különbözőt igenre, akkor nem jeleníti meg a bejegyzéseket többször, de a probléma, hogy akkor sem azt jeleníti meg ugye amit szeretnék. Most a nézetbe elvileg csak az lenne benne, hogy a Linux tags-el ellátott cikkeket ne jelenítse meg. Ehhez még hozzá kell majd venni a Windows tags-el ellátott cikkeket is.

Egy cikknél amúgy több tags is van. A válogatásnál a lényeg, hogy a Windows menüpont alá kiválogattam azokat a cikkeket, amiben a tags között szerepel a Windows. Ez működik is. Ugyan így a Linux menüpont alá is csináltam egy nézetet. Az egyéb menüponthoz meg a kettő ellentettje kellene, tehát amelyik cikkek tags-ében nem található meg a Linux és Windows kifejezés.

0
0

Két scrollbar kérdés

hellstar képe

Sziasztok!

Van egy három oszlopból álló drupal oldalam. (4.7) BAL - KÖZÉP - JOBB
Azt szeretném megoldani, hogy a default Explorer gördítősávok (jobb és alul) le legyenek tiltva, és csak a KÖZÉP -ső oszlopnak (tartalmaknak) legyen egy jobb oldali scrollja. Így a két szélső 'blokkos' rész és a fejléc is állandóan látszik.

A következő kérdés pedig az lenne, hogyan lehet azt megcsinálni, hogy ebből 4 oszlopos legyen, azaz BAL - KÖZÉP - KÖZÉP - JOBB, és a gördítősávok külön jelenjenek meg a két KÖZÉP oszlopon?

Válaszokat előre is köszönöm!

Fórum: 
BergR képe

Ennyi a node.tpl.php tartalma!

<div id="node-<?php print $node->nid; ?>" class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?> clear-block">
 
<?php print $picture ?>
 
<?php if (!$page): ?>
  <h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>
 
  <span class="meta">
  <?php if ($submitted): ?>
    <span class="submitted"><?php print $submitted ?></span>
  <?php endif; ?>
  </span>
 
  <div class="content">
    <?php print $content ?>
  </div>
 
  <span class="links"><?php print $links; ?></span>
</div>

Tehát azt mondod, hogy ez ilyen formában működne?:

<div id="node-<?php print $node->nid; ?>" class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?> clear-block">
 
<?php print $picture ?>
 
<?php if (!$page): ?>
  <h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>
 
  <span class="meta">
  <?php if ($submitted): ?>
    <span class="submitted"><?php print $submitted ?></span>
  <?php endif; ?>
  </span>
 
  <?php if ($page != 0) : ?>
   <div id="inline-ad">
     <?php
       $adblock = module_invoke('blockID', 'block', 'view', 1);
       print $adblock['content'];
     ?>
   </div>
  <?php endif; ?>
 
  <div class="content">
    <?php print $content ?>
  </div>
 
  <span class="links"><?php print $links; ?></span>
</div>

Hogy pontosítsak:
cím az valóban $title
forrás mező -> cck + link modul
dátum mező -> cck + date modul
cimkék "terms" -> cck + content taxonomy modul

0
0
Rower06 képe

a Calendar-ban minden magyarra van állítva. Viszont az agenda-block.tpl-ben van néhány sor,amit lehet h ki kellene valahogy egészítenem?

/**
 * @file
 * Template for displaying the agenda in a block
 */
 
// Build some neat dates
$today = time() - time() % (3600 * 24);
$dates[date('Y-m-d', $today)]         = t('Today');
$dates[date('Y-m-d', $today - 86400)] = t('Yesterday');
$dates[date('Y-m-d', $today + 86400)] = t('Tomorrow');
 
 
// List of keys to display
$keys    = array_map('trim', explode(',', $block->display_keys));
$nolabel = array_map('trim', explode(',', $block->hide_labels));

 foreach ($events as $day):

  $date = $day[0]['start date'];
 
  // Substitute today/yesterday/tomorrow
  if (isset($dates[$day[0]['when']])) {
    $date = $dates[$day[0]['when']];
  }
 

 echo $date;

     foreach ($day as $event):
  1.  echo $event['index']; ">  echo $event['title'];

       foreach ($keys as $key):
       if (!empty($event[$key])):

    •  if (!in_array($key, $nolabel)):
       echo _agenda_translate($key); :
       endif;
       echo $event[$key];
    •  endif;
       endforeach;

  2.  endforeach;

 endforeach;

0
0

Kezdő vagyok, de tanulni akarok!!!

Köszönöm mindenkinek a segítségét és a türelmét :)

pero képe

óó, bocsánat, ezt valóban összekavartam egy kicsit.

A drupal_get_form:
(ezt hívom meg a "page callback" függvényben többször.)

drupal_render(drupal_get_form('order_undertake_form_'.$order_items[$nid]->nid,$order_items[$nid]->nid,$order_items[$nid]->field_rendeles_felrakas[LANGUAGE_NONE][0]['value'],$order_items[$nid]->field_rendeles_felrakas_datuma[LANGUAGE_NONE][0]['value'],$order_items[$nid]->field_rendeles_surgos[LANGUAGE_NONE][0]['value'],$ar))

Azaz a Form id az: order_undertake_form_[nid]
plusz átadok egyéb paramétereket is.

A hook_form() pedig elég szokványos:

function order_undertake_form($form, &$form_state, $ordernid, $hely, $datum, $surgos, $ar) {
  if ($surgos)
    $form['surgos'] = array(
      '#markup' => '<div class="surgos">'.t('Urgent').'</div>',
      );
 
 $form['upload_date'] = array(    
  '#type' => 'date_popup', 
  '#default_value' => $datum,
  '#date_format' => 'Y-m-d',
  '#required' => TRUE, 
  '#tree' => TRUE,
  );	
 
  $form['felrakas'] = array(
    '#markup' => '<div class="felrakashely">'.$hely.'</div>',
  );
 
  $form['pricemarkup'] = array(
    '#markup' => '<div>Fuvar költség:</div><div class="ar">'.number_format($ar, 0, ',', ' ').' EUR</div>',
  );
 
  $form['ordernid'] = array('#type' => 'hidden', '#value' => $ordernid);
  $form['price'] = array('#type' => 'hidden', '#value' => $ar);
 
  $form['submit'] = array(
    '#prefix' => '<div class="submit">',
    '#sufix' => '</div>',
    '#value' => t('Elvállalom'),
    '#type' => 'submit', 
  );	
  return $form;
}
0
0
lonalore képe

Szerintem a legegyszerűbb készíteni rá egy saját tokent, és a helyettesítési mintával összerakni. Kérdés, hogy mi az ami szerint a sorszámozás menne, ha a File ID-je szerint, akkor valami hasonló token kell neked:

  1. /**
  2.  * Implements hook_token_info().
  3.  */
  4. function MODULE_token_info() {
  5. $info['tokens']['file']['fid-pad-left'] = array(
  6. 'name' => t('Fid padded on the left'),
  7. 'description' => t("Create a padded number from fid, e.g. 1 => 000001"),
  8. );
  9.  
  10. return $info;
  11. }
  12.  
  13. /**
  14.  * Implements hook_tokens().
  15.  */
  16. function MODULE_tokens($type, $tokens, array $data = array(), array $options = array()) {
  17. $replacements = array();
  18.  
  19. if ($type == 'file' && !empty($data['file'])) {
  20. $file = $data['file'];
  21.  
  22. foreach ($tokens as $name => $original) {
  23. switch ($name) {
  24. case 'fid-pad-left':
  25. $replacements[$original] = str_pad($file->fid, 6, "0", STR_PAD_LEFT);
  26. break;
  27. }
  28. }
  29. }
  30.  
  31. return $replacements;
  32. }

A kódot nem teszteltem, csak mintaként írtam gyorsan, lehet hibás... :)

0
0