Zend FW app uitbreiden met bestaand CMS/mailings etc

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 11-09 11:19

chem

Reist de wereld rond

Topicstarter
Ik zou graag jullie advies willen hoe we het beste het volgende kunnen aanpakken.

Een bestaande, 8+ jaar oude, applicatie wordt omgebouwd naar een webservice-gebaseerde structuur om onder andere externe partijen toegang te geven tot de applicatie. Het betreft een verzekering-gerelateerd product aarbij bezoekers hun NAWT kunnen inzien, lopende verzekeringen, offertes aanvragen, contact met de verzekeraar etc.

Het systeem dat voornoemde zaken faciliteert is reeds uit de oude applicatie getrokken en naar een soap-service verhuisd. So far, so good.

Op basis van in-house aanwezige kennis van ZF is gekozen om de nieuwe applicatie op basis van ZF te bouwen. Het eerste deeltje is klaar - een relatie kan opgezocht en weergegeven worden.

Nu zijn we er vanuit gegaan dat het eenvoudig zou zijn om een CMS voor de gewoonlijke eenvoudige contactpagina's, productinformatie, medewerker-profielen etc toe te voegen aan de applicatie. Het CMS is niet bepaald onze core product en de eisen zijn erg basaal; pagina met 1 blok tekst, plaatjes uploaden, boomstructuur en 'drafts' maken.

Echter blijkt dat het integreren van bv tomatocms of digitalus vereisen dat ons core-product een onderdeel wordt van het CMS ipv andersom. Als we daar een nog niet gekozen mailingpakket aan toevoegen vermoed ik dat dat ook weer zijn eigen eisen heeft en laat staan als we daar nog andere modules aan willen toevoegen.

TL;DR:

Wat zou de beste oplossing zijn om een CMS of andere app aan een bestaande zend fw app toe te voegen?

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 11-09 11:19

chem

Reist de wereld rond

Topicstarter
na-het-weekend-kick.

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 13:36
Als het echt een apart onderdeel binnen de applicatie is zou je middels een plugin structuur kunnen werken. Daarbij zet je dus de daadwerkelijke tool en de cms pagina's comleet apart. Dat is in basis de beste oplossing bij integratie maar je zou ook 2 compleet losse projecten kunnen maken:

Zend App website
Zend App applicatie

Dat heeft meestal mijn voorkeur als logins e.d. apart zijn.

Heb je veel overlap tussen beide dan kan je dat het beste in bijvoorbeeld helpers plaatsen.

Voor een meer volledig antwoord is meer informatie nodig.

Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 11-09 11:19

chem

Reist de wereld rond

Topicstarter
Wat het gewenste eindresultaat is, is dat de logins worden gedeeld (ivm bv. backend toegang van het CMS) en dat de inhoud van beide applicaties 'gemixed' worden tot 1 output.

Zeg dat 20% van de pageviews puur CMS zijn (alg. voorwaarden bv) en 80% een mix - headers, menu's, footers etc uit CMS en de 'vulling' uit de eigen app.

Een oplossing zou zijn om een module binnen een CMS te maken die onze app toont, maar eigenlijk wil ik die koppeling niet op die manier.

Zijn er andere zaken waar ik info over kan geven?

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 13:36
Ik vind het niet heel eenvoudig om het complete beeld te krijgen. Als ik je goed begrijp zou het bijvoorbeeld een pagina op kunnen leveren als:

Voorbeeld pagina
Titel (CMS)
Intro tekst (CMS)
Formulier (APP)
Link naar AV (Link naar pagina met alleen CMS content).
Footer (CMS)

Is dat wat je je wilt als resultaat voor een voorbeeld pagina?

Is er zware content editing nodig of zijn het vooral simpele teksten, omschrijvingen etc?

Modules op basis van voorbeeld
Als de mix echt sterk wordt kan je kiezen voor bijvoorbeeld een modules structuur:

http://framework.zend.com...d.controller.modular.html

Het voorbeeld maakt dat vrij duidelijk denk ik, default is bijvoorbeeld je app en dan heb je CMS als los onderdeel. Het probleem is echter dat je eigenlijk wilt dat modules zelfstandig zijn. Waarom? Stel je wilt testen of die pagina met dat formulier goed is. Dan wil je controleren of die titel er staat maar ook of het formulier werkt. Dat wordt een rommeltje want alles hangt aan elkaar.

Andere aanpak met onafhankelijke modules
Dit op basis van: Wikipedia: Coupling (computer programming)
Wat wellicht daarom beter is:

De APP wordt een module. Die bevat naast het formulier ook de teksten. Dus uit het voorbeeld worden alle teksten (APP) in plaats van CMS. Waarom? Omdat ze bij elkaar horen, de uitleg van het formulier is onderdeel van het formulier. Waarom? Omdat als je het formulier veranderd de omschrijving wellicht ook aangepast moet worden.

Daarnaast heb je content pagina's, denk aan een help pagina, uitleg over het product, pricing etc. Dat doe je in de module CMS. De CMS module kan dus losse pagina's tonen die volledig CMS zijn. Dus geen mix met functionaliteit van je APP. Hier kan je gewoon naar linken alsof het een externe pagina is bij wijze van spreken. Het zijn extra's maar geen onderdeel van het proces.

Juridisch, algemene voorwaarden
Algemene voorwaarden (AV) en privacy statements zijn aparte zaken. Je noemde dat voorbeeld maar het is eigenlijk geen goede. Waarom? Het draait om het business proces en is geen "standaard" content. De AV bijvoorbeeld is onderdeel van de overeenkomst. Als je dus een formulier invoert en akkoord gaat sluit je een overeenkomst met de gebruiker.

Dat hoort dus in APP en niet in CMS. Bijvoorbeeld heb je een tabel met de verschillende versies van de AV. De invoer in het formulier relateert de AV aan de overeenkomst. Zo blijft je data volledig juist (ook als je een nieuwe versie van de AV krijgt).

Vervolg
Mocht je meer feedback willen lijkt het me handig als je wat voorbeeldjes van pagina situaties toont zoals ik in het voorbeeld formulier heb gedaan. Er zitten veel design aspecten aan die dubbel kunnen zijn, het lijkt in beide te horen maar vaak zit er toch ergens wel een logica in.

Denk er daarnaast over na als het een grotere applicatie wordt om meerdere modules in te gaan zetten en niet volledig op 1 module voor de APP te gaan draaien.


Voor logins is het centraal houden daarvan goed te doen middels de standaard structureren die Zend Framework beschikbaar heeft: http://framework.zend.com/manual/en/zend.auth.html In het voorbeeld wordt reeds gesproken over toegang tot de diverse modules waarbij je dat verder kunt bepalen middels http://framework.zend.com/manual/en/zend.acl.html