25. 11. 2014, 19:02

Howdy!

Ich habe eine Extension erstellt, welche ein Frontend-Plugin mit 3 Konfigurationsmöglichkeiten (via Flexform) bereitstellt. Jedes dieser 3 Plugins stellt inhaltlich etwas anderes da, siehe unten. Die Plugin sind auf folgenden Seiten eingebettet:

(PID 5) /autos - flexform auswahl 1 Manufacturer->list - Auflistung von allen Herstellern und Modellen
(PID 6) /autos/hersteller - flexform auswahl 2 Manufacturer->show - Listet einen bestimmten Hersteller auf (und seine Infos)
(PID 7) /autos/hersteller/model - flexform auswahl 3 Model->show - Listet ein bestimmtes Model eines Hersteller auf

Fachlich bilden also die Seiten wie auch die Pluginkonfiguration eine Hierarchie ab Auto -> Hersteller -> Model.
Das es die 3 Seiten gibt hängt mit den anderen Inhalten auf den Seiten zusammen, sonst könnte man sich vorstellen nur ein Plugin zu schreiben welches die Hierarchie handelt.

Mit meiner aktuellen realurl.conf erzeuge ich folgende URLs:

Hersteller: /autos/hersteller/dacia.html
Model: /autos/hersteller/model/logan.html

Das ist rein über fixedPostVars geregelt:

  1. 'fixedPostVars' => array(
  2. // Seminare/Skill
  3. 'manufacturer' => array(
  4. 'GETvar' => 'tx_cardb_infodisplay[manufacturer]',
  5. 'lookUpTable' => array(
  6. 'table' => 'tx_cardb_domain_model_manufacturer',
  7. 'id_field' => 'uid',
  8. 'alias_field' => 'title',
  9. 'addWhereClause' => ' AND NOT deleted',
  10. 'useUniqueCache' => 1,
  11. 'useUniqueCache_conf' => array(
  12. 'strtolower' => 1,
  13. 'spaceCharacter' => '-',
  14. ),
  15. 'languageGetVar' => 'L',
  16. 'languageExceptionUids' => '',
  17. 'languageField' => 'sys_language_uid',
  18. 'transOrigPointerField' => 'l10n_parent',
  19. 'autoUpdate' => 1,
  20. 'expireDays' => 180,
  21. ),
  22. ),
  23. 'GETvar' => 'tx_cardb_infodisplay[action]',
  24. 'valueDefault' => 'show',
  25. 'noMatch' => 'bypass'
  26. ),
  27. 'GETvar' => 'tx_cardb_infodisplay[controller]',
  28. 'valueDefault' => 'Manufacturer',
  29. 'noMatch' => 'bypass'
  30. ),
  31. ),
  32. 'model' => array(
  33. 'GETvar' => 'tx_cardb_infodisplay[model]',
  34. 'lookUpTable' => array(
  35. 'table' => 'tx_cardb_domain_model_model',
  36. 'id_field' => 'uid',
  37. 'alias_field' => 'title',
  38. 'addWhereClause' => ' AND NOT deleted',
  39. 'useUniqueCache' => 1,
  40. 'useUniqueCache_conf' => array(
  41. 'strtolower' => 1,
  42. 'spaceCharacter' => '-',
  43. ),
  44. 'languageGetVar' => 'L',
  45. 'languageExceptionUids' => '',
  46. 'languageField' => 'sys_language_uid',
  47. 'transOrigPointerField' => 'l10n_parent',
  48. 'autoUpdate' => 1,
  49. 'expireDays' => 180,
  50. ),
  51. ),
  52. 'GETvar' => 'tx_cardb_infodisplay[action]',
  53. 'valueDefault' => 'show',
  54. 'noMatch' => 'bypass'
  55. ),
  56. 'GETvar' => 'tx_cardb_infodisplay[controller]',
  57. 'valueDefault' => 'Model',
  58. 'noMatch' => 'bypass'
  59. ),
  60. ),
  61. 6 => 'manufacturer',
  62. 7 => 'model',

Welche URLs ich aber eigentlich haben will, sind folgende:

Hersteller, anstatt /autos/hersteller/dacia.html -> /autos/dacia.html
Model, anstatt /autos/hersteller/model/logan.html -> /autos/dacia/logan.html

Kann ich das allein über realurl-Konfiguration regeln? Oder sollte ich lieber das Plugin umbauen und z.B. nur auf der /autos Seite einbinden und alle Subpfade aus der Extension generieren?

Danke für eure Hilfe!