Szerintem a lényeg az, hogy
Szerintem a lényeg az, hogy hova helyezed a tokened, ha benyomod a commerece-order tokenek közé, akkor meg kellene jelennie... ezt egy hook_token_info_alter()-ben könnyedén megteheted, ha neked az jó, hogy a commerece-order részben megjelenik, akkor valahogy így kellene létrehoznod a tokent:
/** * Implements hook_token_info_alter(). */ function MODULOD_NEVE_token_info_alter(&$data) { 'name' => t('Tokened neve'), 'description' => t('Tokened leírása.'), ); } /** * Implements hook_tokens(). */ $order = $data['commerce-order']; foreach ($tokens as $name => $original) { switch ($name) { case 'tokened-neve': // ide jöhet a kódod, amivel előállítod a token értékét... $replacements[$original] = ""; break; } } } return $replacements; }
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
Az egyik lehetséges megoldás,
Az egyik lehetséges megoldás, hogy saját modulban csinálsz egy megjelenítést:
Ez egy 7.x-es példa, de szerintem nem sokban különbözik a 6.x-sem (azt hiszem):
function MODULOM_field_formatter_info() { $formatters = array( 'munka_slideshow' => array( 'label' => 'Munka slideshow', 'field types' => array('image') ), ); return $formatters; } function MODULOM_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) { $elements = array(); $elements[0] = array( '#theme' => 'munka_slideshow', '#items' => $items, ); return $elements; } function MODULOM_theme() { return array( 'munka_slideshow' => array( 'variables' => array('item' => NULL, 'path' => NULL, 'image_style' => NULL), ), ); } function theme_munka_slideshow () { return views_embed_view('munka_slideshow', 'default'); }
A lényeg, hogy a CCK megjelenítésnél kiválasztod a "Munka slideshow"-t.
A megjelenést a theme_munka_slideshow-ban tudod beállítani.
...mit tudok: http://web.termuves.hu
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
az argumentum elég kézenfekvő
nek tűnik. korábban valamilyen témában már szóbakerült ez egyszer, most hirtelen nem találom. nagyon hasonlót tudok szerintem mutatni, bár ez használ views -t is és amúgy is lehetséges, hogy nem valami elegáns, majd megmondja aki jobban tudja, hogy rossz, ha az. :)
szóval én úgy okoskodtam, hogy csináltam egy nézetet, ami különböző argumentumok alapján egy listát ad vissza. (nekem két argumentum is van, de ez ne zavarjon) ezután, csináltam egy blokkot, ami php kód és ezt a nézetet hívogatja a megfelelő argumentumokkal. remélem érthető.
mutatom, nézzük élőben például ezt:
http://www.bor-neked.hu/bor/pazmandi-juhfark
jobb oldalon van egy "bor menü" .. annak a blokknak a kódja pedig ez:
<?php $nid = arg(1); //pince lehivasa $vid = 11; $pinceterms = taxonomy_node_get_terms_by_vocabulary($nid, $vid); foreach ($pinceterms as $pince){ $pinceid=$pince->tid; } //borvidek lehivasa $vid = 10; $borvidekterms = taxonomy_node_get_terms_by_vocabulary($nid, $vid); foreach ($borvidekterms as $borvidek){ $borvidekid=$borvidek->tid; } //kimenet global $current_view; $view1 = views_get_view('proba'); //borvidék $current_view->args[0] = $borvidekid; $current_view->args[1] = 'borvidek'; print "<strong>Borvidék:</strong><br />"; print (views_build_view('block', $view1, $current_view->args, false, false)); //picészet $current_view->args[0] = $pinceid; $current_view->args[1] = 'pinceszet'; print "<strong>Pincészet:</strong><br />"; print (views_build_view('block', $view1, $current_view->args, false, false)); //pincészet borai $current_view->args[0] = $pinceid; $current_view->args[1] = 'bor'; print "<strong>A pincészet borai:</strong><br />"; print (views_build_view('block', $view1, $current_view->args, false, false));
ha jól értem pont ilyesmire gondoltál, csak neked elég egy tartalomtípust listázni, szóval elég lesz egyetlen argumentum is. (fenti példában argumentumként kapja meg a nézet azt is, hogy melyik tartalomtípusra vagyok kíváncsi éppen)
most nézem, hogy ez azért tényleg nem valami elegáns helyenként, jórégen csinálhattam amindenit. ;) de iránymutatásnak jó szerintem, próbáld ki! persze akkor lennél a legnagyobb, ha írnál erre egy picike modulkát, ugyebár. ;)
-
clear: both;
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
Az ilyen esetekben lehet
Az ilyen esetekben lehet használni a CCK prefix-suffix rendszerét, ha jól emlékszek, html-t is lehet benne használni.
Ez a következőt csinálja: A tartalom beküldésénél a form elem elé, és után teszi a h2 és /h2 tag-et - ami a form elemnél nem biztos, hogy szép, de megjelenésénél szépen összefűzi ezeket.
Egy a gond, a textfield típusú mezőknek nem lehet pf/sf cuccot beállítani. Megtehetjük viszont a theme_textfield megvalósításának kis módosításával.
Tehát vegyél fel egy CCK textfield-et, alcím névvel.
A smink template.php-jének a végére csapd hozzá:
// ' <h2>' prefix és </h2> suffix beszúrása a weight mezőhöz, mivel a text cck widget alapból nem enged toldalékot használni. function sminkedneve_textfield($element) { $size = empty($element['#size']) ? '' : ' size="'. $element['#size'] .'"'; $maxlength = empty($element['#maxlength']) ? '' : ' maxlength="'. $element['#maxlength'] .'"'; $class = array('form-text'); $extra = ''; $output = ''; if ($element['#autocomplete_path'] && menu_valid_path(array('link_path' => $element['#autocomplete_path']))) { drupal_add_js('misc/autocomplete.js'); $class[] = 'form-autocomplete'; $extra = '<input class="autocomplete" type="hidden" id="'. $element['#id'] .'-autocomplete" value="'. check_url(url($element['#autocomplete_path'], array('absolute' => TRUE))) .'" disabled="disabled" />'; } _form_set_class($element, $class); if (isset($element['#field_prefix'])) { $output .= '<span class="field-prefix">'. $element['#field_prefix'] .'</span> '; } if ($element['#field_name'] == 'CCK_mezod_neve') { $output .= ' <span class="field-prefix">'. '<h2>' .'</span>'; } $output .= '<input type="text"'. $maxlength .' name="'. $element['#name'] .'" id="'. $element['#id'] .'"'. $size .' value="'. check_plain($element['#value']) .'"'. drupal_attributes($element['#attributes']) .' />'; if (isset($element['#field_suffix'])) { $output .= ' <span class="field-suffix">'. $element['#field_suffix'] .'</span>'; } if ($element['#field_name'] == 'CCK_mezod_neve') { $output .= ' <span class="field-suffix">'. '</h2>' .'</span>'; } return theme('form_element', $element, $output) . $extra; }
Ezzel eredetileg nekem annyi kellett, hogy egy 'Súly' nevű mezőhöz hozzá kellett tennem egy ' g' suffixet, de sztem h2-vel is működni fog.
----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
„Lehetséges az előre/hátra
„Lehetséges az előre/hátra gombok átszínezése, mert így eléggé furcsán néz ki?”
„Hogyan lehetne megoldani, hogy ha van 1 esemény 1 adott napon, akkor azt a napot "kiemeljem"? (pl. háttérátszínezéssel)”
Css:
/* -------------- Calendar ------------- */ table td.mini, table th.mini, table.mini td.week { padding:0px; margin:0; } .calendar-calendar table { border-collapse:separate; border-spacing:1px; } .calendar-calendar .mini-day-on { background:#EBF4D9 none repeat-x scroll left top; border:1px solid #ccc; color:#525252; font-weight:bold; margin:0px 0px 0px 0px; padding:2px 3px 2px 2px; } .calendar-calendar .mini-day-on a { color:#525252; font-weight:normal; } .calendar-calendar .mini-day-off { background:#fff none repeat-x scroll left top; border:1px solid #ccc; color:#bfbfbf; margin:0px 0px 0px 0px; padding:2px 3px 2px 2px; font-weight: normal; } .calendar-calendar td { color: #525252; text-align: right; } .calendar-calendar td.empty { color: #EEEEEE; } .calendar-empty { background-color: #EEEEEE; font-size: 0px; line-height: 0px; padding-bottom: 0px; } .calendar-calendar .sat .mini-day-off, .calendar-calendar .sun .mini-day-off { background: none repeat scroll 0 0 #FFF0F5; font-weight:normal; } .calendar-calendar .today .mini-day-off { background: none repeat-x scroll left top #CEDDEA; border-top: 1px solid #ccc; border-bottom: 0px solid #ccc; border-left: 1px solid #ccc; border-right: 1px solid #ccc; color: #000; font-weight:normal; margin: 0 0 3px; padding: 2px 5px 2px 2px; } .calendar-calendar .today .mini-day-on { background: none repeat-x scroll left top #CEDDEA; border-top: 1px solid #ccc; border-bottom: 0px solid #ccc; border-left: 1px solid #ccc; border-right: 1px solid #ccc; color: #525252; font-weight:normal; margin: 0 0 3px; padding: 2px 5px 2px 2px; } .calendar-calendar tr.odd td.today, .calendar-calendar tr.even td.today { background:#525252; margin:0px 0px 0px 0px; padding:0px 10px 0px 0px; } .calendar-calendar th.days { text-transform: capitalize; } .calendar-calendar table.mini td.empty { background: none repeat scroll 0 0 #e5e5e5; border: 1px solid #ccc; } .calendar-calendar td.calendar-agenda-hour .calendar-hour { font-size: 11px; font-weight: bold; } .calendar-calendar .day-view .full td .inner div.calendar div, .calendar-calendar .day-view .full td .inner div.calendar div a { margin: 0px; } .calendar-calendar tr td.today, .calendar-calendar tr.odd td.today, .calendar-calendar tr.even td.today { background-color: #3399CC; } .calendar-calendar .mini-day-off:hover, .calendar-calendar .mini-day-on:hover { background: #eee; color:#525252; } .calendar-calendar .mini { font-family: Verdana; font-size: 10px; } .calendar-calendar .month-view .full td.single-day div.monthview, .calendar-calendar .week-view .full td.single-day div.weekview, .calendar-calendar .day-view .full td.single-day div.dayview { background: none repeat scroll 0 0 #F9F9F9; overflow: hidden; padding: 2px; width: auto; border: 1px solid #EEEEEE; } .calendar-calendar .month-view .full .inner .monthview, .calendar-calendar .week-view .full .inner .weekview, .calendar-calendar .day-view .full .inner .dayview { border-radius: 0px; display: block; float: none; margin: 0.25em auto; position: relative; width: auto; } .calendar-calendar .day-view td .stripe, .calendar-calendar .month-view .full td .stripe, .calendar-calendar .week-view .full td .stripe { border-radius: 0px; height: 5px; left: 0; top: 0; width: 24px; z-index: 2; } .calendar-calendar .views-field-field-idpont { color: #000; } .calendar-calendar .month-view .views-field-title a { color: #3399CC; font-size: 11px; font-weight: normal; } .calendar-calendar .day-view .views-field-title a, .calendar-calendar .week-view .views-field-title a { color: #3399CC; font-size: 11px; font-weight: normal; } .calendar-calendar .month-view .full tr td.today, .calendar-calendar .month-view .full tr.odd td.today, .calendar-calendar .month-view .full tr.even td.today { background: #fff; border-left: 2px solid #7FCAF5; border-right: 2px solid #7FCAF5; } .calendar-calendar .month-view .full td.date-box.today { border-color: #7FCAF5; border-style: solid; border-width: 2px 2px 0; } .calendar-calendar .month-view .full tr td.single-day.today { border-bottom: 2px solid #7FCAF5; } .view .date-nav-wrapper .date-heading h3 { color: #C4010F; font-family: Arial; font-size: 1.6em; font-weight: bold; line-height: 30px; } .view .date-nav-wrapper .date-nav { padding:0px; margin:0px 0px 3px 0px; } .view .date-nav-wrapper .date-nav ul { margin: 0; padding: 0; } .view .date-nav-wrapper .date-prev { background: none repeat scroll 0 0 #DFDFDF; border-radius: 5px 0 0 5px; float: none; font-size: 12px; left: 0px; padding: 5px 0; position: absolute; right: auto; text-align: right; top: 0; width: auto; z-index: 1; margin-left: 0; } /* -------------- Calendar end ------------- */
„Hogyan tudnám lerövidíteni a hónapok neveit (december helyett dec.), mert túl hosszúak és nem férnek ki levágás nélkül?”
template.php
<?php function yourthemename_date_nav_title($params) { $granularity = $params['granularity']; $view = $params['view']; $date_info = $view->date_info; $link = !empty($params['link']) ? $params['link'] : FALSE; $format = !empty($params['format']) ? $params['format'] : NULL; switch ($granularity) { case 'year': $title = $date_info->year; $date_arg = $date_info->year; break; case 'month': $format = !empty($format) ? $format : (empty($date_info->mini) ? 'F Y' : 'F Y'); $title = date_format_date($date_info->min_date, 'custom', $format); $date_arg = $date_info->year .'-'. date_pad($date_info->month); break; case 'day': $format = !empty($format) ? $format : (empty($date_info->mini) ? 'l, F j Y' : 'l, F j'); $title = date_format_date($date_info->min_date, 'custom', $format); $date_arg = $date_info->year .'-'. date_pad($date_info->month) .'-'. date_pad($date_info->day); break; case 'week': $format = !empty($format) ? $format : (empty($date_info->mini) ? 'F j Y' : 'F j'); $title = t('Week of @date', array('@date' => date_format_date($date_info->min_date, 'custom', $format))); $date_arg = $date_info->year .'-W'. date_pad($date_info->week); break; } if (!empty($date_info->mini) || $link) { // Month navigation titles are used as links in the mini view. $attributes = array('title' => t('View full page month')); $url = date_pager_url($view, $granularity, $date_arg, TRUE); return l($title, $url, array('attributes' => $attributes)); } else { return $title; } } ?>
„Illetve, ha a felhasználó rákattint az eseményre, miért nem az adott node-ra ugrik?”
Views -ben kell beállítanod.
Extra dolgok:
Beautytips + calendar_tooltips én még feltelepíteném ezeket a modulokat és akkor 1 nagyon szuper naptárad lenne.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
Köszönöm szépen, az müködik
Köszönöm szépen, az müködik is és nagyon jó. De a villogát zavaró lehet. Ezért jobban tetszene az első PP megoldása. Belejavítottam a kódba:
Főleg a formproba_menu() függvény érdelene, hogy jó-e, mert ebbe javítottam bele. Nem éri el nekem sem a javascript function formproba_feldolg függvényt, pedig megpróbáltam a fórumban említett megoldást is.
Csereli az adatokat, csak a modul frissítésnél kiírja a következő üzenetet:
"
warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\xampp\drupal-6.9\sites\all\modules\formproba\formproba.module:23) in C:\xampp\htdocs\xampp\drupal-6.9\includes\common.inc on line 141.
"
Valamint a formon:
"Nem érvényes választást talált a rendszer. Javasolt a webhely gazdájával felvenni a kapcsolatot."
Tudna valaki segíteni? Köszönöm szépen