Hej alle
I forbindelse med et CMS system vil jeg benytte mig af popups til
hjælpebeskeder - det skal både være muligt, at få en kortfattet hjælp
som popper op som "tooltip" - dvs. dét som popup-funktionen i Smarty
genererer vha. Overlib! Derudover skal det også være muligt at klikke på
elementet og dermed launche et nyt (popup) vindue med mere udførlig hjælp!
Det jeg havde forestillet mig at skrive i min smarty template er:
{TICMS_popup helpid="helpitemidentifier" header="caption" helptext="This
is a short message!"}
Som umiddelbart skulle give anledning til følgende kode:
<a href="/admin/helppopup.php?id=helpid" target="ticmshelp"
onclick="link_popup(this);return false" {popup delay=300
caption="caption" text="This is a short message!"}><img class="helpicon"
src="/admin/images/icon_help.gif" alt="" /></a>
Bemærk, at koden i {} er et kald af en anden smarty modifier, som
efterfølgende skal sørge for at generere den kode er nødvendig for at
benytte funktionaliteten fra overlib! Dvs. alt i alt, vil man ende op
med følgende html-kode på den færdige side:
<a href="/admin/helppopup.php?id=helpid" target="ticmshelp"
onclick="link_popup(this);return false" onmouseover="return
overlib('This is a short message!',DELAY,'300',CAPTION,'caption');"
onmouseout="nd();"><img class="helpicon"
src="/admin/images/icon_help.gif" alt="" /></a>
Problemet er så, at hvis jeg laver min egen modifier (TICMS_popup) vil
Smarty's indbyggende popup-plugin ikke efterfølgende blive kørt på den
kode, som min modifier har genereret! (og hvor skulle man så også stoppe?)
Derfor er det nødvendigt på en eller anden måde at wrappe den indbyggede
popup funktion i Smarty med min egen TICMS_popup, men jeg kan
overhovedet ikke gennemskue, hvordan det skal løses! Jeg kan
selvfølgelig godt lave den ultimativt grimme løsning og så bare kopiere
alt koden fra den indbyggede popup funktion og derefter udbygge den, men
det bliver jo ikke særlig fleksibelt, når popupfunktionen i Smarty
senere bliver opdateret...
Der MÅ være en nem, smart og rigtig måde at løse dette problem på - jeg
håber der er nogle Smarty eksperter der kan hjælpe!
Med venlig hilsen
Tommy Ipsen
|