Illyés Edit képe

$_GET-ből kiszedett értékek validálásáról ne feledkezzünk meg!

Ha nem akarod az URL-t „elcsúfítani”, akkor saját modulban:

<?php
function MYMODULE_views_pre_render(&$view) {
  $myviews = array(
    // nézetek neve, ahol meg akarod jeleníteni a taxonómia leírást
    'myview',
  );
  if (in_array($view->name, $myviews)) {
    $terms = array_keys($view->display['default']->display_options['filters']['tid']['value']);
    $term = taxonomy_get_term($terms[0]);
    $description = filter_xss_admin($term->description);
    $view->display_handler->set_option('header', $description);
  }
}
?>
0
0
Illyés Edit képe

Készítesz egy nézetet, ami létrehoz egy blokkot, ami termékeket listáz. Az argumentumnál pedig beállítod a termékkód mezőt, aztán Provide default argument > PHP kód, és azzal átadod a nézetnek a termékkódot – amit, ha jól látom, akár URL-ből ki tudsz halászni, ott van minden termék URL végén.

<?php
$product_id = explode('/', $_GET['q']);
$product_id = $product_id[6];
$product_id = explode('-', $product_id);
array_pop($product_id);
return $product_id = implode('-', $product_id);
?>

Vagy valami hasonló. Még igazgatni kell, hogy ne dobáljon warningokat, ha nem a várt URL-t kapja, továbbá validálni (vagy a $product_id elemeit (int)-tel semlegesíteni).

0
0
Illyés Edit képe

Csak halkan mondom, ha nem szabványos az argumentum, akkor neked kell PHP kóddal validátort írni.

0
0
Illyés Edit képe

Nem értem a kérdést. A „divat” cikk az egy node, és eltűnik a content-je, ha kiteszed rá a kapcsolódó termékek Views blokkot?

0
0
Illyés Edit képe

a views validálni fogja az argumentumot, ha kell még azt is validálja, hogy a megfelelő szótárban létezike e a szám amit kapott a custom phptól.

Ha megmondod neki, hogy validáljon. Az kimaradt a bemásolt nézetből, azért szóltam.

ez a fenti modul mit változtat amúgy az urlen? mert azt nem látom. azt látom, hogy a view headerbe teszi a descriptiont, de az meg nem pakolható sehova, ott van és kész. ellenben egy blokkot könnyen tehetsz bárhova.

Egy általános megoldást adtam arra az esetre, ha nem tudja/akarja az URL query-ből venni az értéket. Ha az URL-ed http://example.com/furgeroka, akkor csak a $view-ből lehet a tid értéket kiszedni.

0
0
Illyés Edit képe

De mire kell ez a link neked? Miért nem jó a Drupal alapértelmezett nyelvváltója? (Van nyelvváltó blokk is, meg minden node oldalon a linkek között is.)

0
0
Illyés Edit képe

Magam sem értem egyébként, miért nem biztonságos a basic

A basic azt nézi, hogy megvan-e az argumentum, és szükség esetén, hogy numerikus-e.

<?php
 /**
   * Provide a basic argument validation.
   *
   * This can be overridden for more complex types; the basic
   * validator only checks to see if the argument is not NULL
   * or is numeric if the definition says it's numeric.
   */
  function validate_argument_basic($arg) {
    if (!isset($arg) || $arg === '') {
      return FALSE;
    }
 
    if (isset($this->definition['numeric']) && !isset($this->options['break_phrase']) && !is_numeric($arg)) {
      return FALSE;
    }
 
    return TRUE;
  }
?>

Egy tid argumentumnál alapesetben nem lehet probléma, de simán össze lehet kattintgatni olyan nézeteket, ami biztonsági kockázatot jelent a webhely számára (pl. tipikus probléma, hogy megkerülik a hozzáférés-korlátozásokat, lekérhetővé tesznek olyasmit, amit nem kellene illetékteleneknek látnia).

Az alapszabály az, hogy mindig a lehető legszigorúbb validálást kell alkalmazni a lehető legkorábban. Ha tudjuk, hogy az argumentumnak numerikusnak kell lennie, akkor használjuk a numerikus validálást, és már az első körben dobjuk vissza az argumentumot, ha nem megy át. Ha tudjuk, hogy az argumentumnak numerikusnak kell lennie és a Fürgerókák szótárban lévő kategóriák azonosítói között kell lennie, akkor arra kell validálni, stb. Főleg akkor, ha a Views erre kényelmes kattintós megoldásokat kínál. ;)

vagy hogy miért/mitől változna meg az URL a fenti megoldás alapján

Természetesen nem változik. Arra az esetre írtam, ha az URL-jeid nem úgy néznek ki, hogy http://example.com/valami?tid=1234 hanem úgy, hogy http://example.com/furgeroka

0
0
Illyés Edit képe

Ha egyébként rendben lefutott az update.php, akkor nincs további teendő.

0
0
Illyés Edit képe

Engedélyezd a Location Node komponensét. Valamelyik tartalomtípus szerkesztési oldalán engedélyezd a Location információk bevitelét. Utána ha az adott típusba tartozó tartalmat szerkeszted, lesznek cím mezőid. Azokat kitöltöd, a Gmap pedig jó eséllyel magától felismeri a címet. Lesz egy Location map nevű blokkod, abban fog megjelenni a térkép, azt tedd ki a tartalmak mellé/alá/fölé.

0
0
Illyés Edit képe

Glossary modult nézd meg. A kiemelt szavakhoz kis magyarázat jelenik meg buborékban – talán meg tudod oldani vele, amit szeretnél.

0
0