#import "Aprica.h"
// Aprica2
// copyright Pirmin Braun 1997-2007 - pirmin@pirmin.de
// all Rights reserved;
// hier kommen self-contained portlets rein
// diese finden ihr htmlwod ueber den portletName
@implementation PBWOPortlet
ACCESSClassm(templ,setTempl,WOElement)
ACCESSm(portletName,setPortletName)
- (NSMutableDictionary *)parmDict;
{ return parmDict;
}
- (BOOL)synchronizesVariablesWithBindings
{ return NO;
}
- (PBWOPortlet *)datasource;
{ return self;
}
- currentItem;
{ return currentItem;
}
- (NSMutableArray *)ma;
{ return ma;
}
- init;
{ if(!(self = [super init]))return nil;
MA(ma);
MD(parmDict);
firstAwake = YES;
return self;
}
- (void)awake;
{ [super awake];
if(firstAwake){ NSString *registerFor = [self valueForBinding:@"registerFor"];
firstAwake = NO;
[[(PBWOEditor *)[self parent]portletDict] setObject:self forKey:[[(PBWOEditor *)[self parent]currentAsso]guiName]];
[self setPortletName:[self valueForBinding:@"portletName"]]; // nur hier ist currentAsso richtig gesetzt
if([registerFor iE:@"clear"]){ [[(PBWOEditor *)[self parent] clearOnSelObjChanged]addObject:self];
}
if([registerFor iE:@"refresh"]){ [[(PBWOEditor *)[self parent] refreshOnSelObjChanged]addObject:self];
}
[self refresh];
}
}
- (void)bringToFront:(PBWOEditor *)e;
{// das geht seltsamerweise nicht: [[_APP currentComponent] bringToFront:e];
[(PBWOEditor *)[self parent] bringToFront:e];
}
- (void)currentLineActed;
{// per default kuemmert sich ein script drum; kann aber ueberschrieben werden;
[_APP executeScriptNamed:[portletName sbas:@"_action"] datasource:(PBWOEditor *)self parmDict:parmDict];
}
- (void)currentLine1Acted;
{// gleich wie currentLineActed
[self currentLineActed];
}
- (void)currentLine2Acted;
{// per default kuemmert sich ein script drum; kann aber ueberschrieben werden;
[_APP executeScriptNamed:[portletName sbas:@"2_action"] datasource:(PBWOEditor *)self parmDict:parmDict];
}
- (void)currentLine3Acted;
{// per default kuemmert sich ein script drum; kann aber ueberschrieben werden;
[_APP executeScriptNamed:[portletName sbas:@"3_action"] datasource:(PBWOEditor *)self parmDict:parmDict];
}
- (void)currentLine4Acted;
{// per default kuemmert sich ein script drum; kann aber ueberschrieben werden;
[_APP executeScriptNamed:[portletName sbas:@"4_action"] datasource:(PBWOEditor *)self parmDict:parmDict];
}
- (void)currentLine5Acted;
{// per default kuemmert sich ein script drum; kann aber ueberschrieben werden;
[_APP executeScriptNamed:[portletName sbas:@"5_action"] datasource:(PBWOEditor *)self parmDict:parmDict];
}
- (void)currentLine6Acted;
{// per default kuemmert sich ein script drum; kann aber ueberschrieben werden;
[_APP executeScriptNamed:[portletName sbas:@"6_action"] datasource:(PBWOEditor *)self parmDict:parmDict];
}
- (void)refresh;
{// per default kuemmert sich ein script drum; kann aber ueberschrieben werden;
[_APP executeScriptNamed:portletName datasource:(PBWOEditor *)self parmDict:parmDict];
}
- (void)clear;
{ [ma removeAllObjects];
}
- (WOElement *)_template;
{//wird erst in appendToResponse aufgerufen;
if(!templ){ [self setTempl:[_APP getTemplateForName:portletName]];
if(!templ){ LOGS(([NSSWF @"html f. Portlet %@ konnte nicht erstellt werden",portletName]));
return nil;
}
[self tvfk(templ,@"_template")];
}
return templ;
}
- (void)dealloc;
{ [templ release];
[portletName release];
[ma release];
[parmDict release];
[super dealloc];
}
@end
// WebObjects ist so bloed; geht immer auf den Klassennamen einer WOComponent, um deren Instanzvariablen-Inhalt zu finden; _name oder _templateName werden ignoriert; hat man in mehreren Registern Portlets, so erscheinen die Portlets des ersten Registers anstelle derer in den Folgeregistern; html-Cacheing abzuschalten, hilft auch nix;
// mit unterschiedlichen Klassennamen funktionierts; Limit auf diese Weise 20 Portlets pro Modul;
@interface PBWOPortlet0A : PBWOPortlet {} @end @implementation PBWOPortlet0A : PBWOPortlet @end@interface PBWOPortlet1A : PBWOPortlet {} @end @implementation PBWOPortlet1A : PBWOPortlet @end@interface PBWOPortlet2A : PBWOPortlet {} @end @implementation PBWOPortlet2A : PBWOPortlet @end@interface PBWOPortlet3A : PBWOPortlet {} @end @implementation PBWOPortlet3A : PBWOPortlet @end@interface PBWOPortlet4A : PBWOPortlet {} @end @implementation PBWOPortlet4A : PBWOPortlet @end@interface PBWOPortlet5A : PBWOPortlet {} @end @implementation PBWOPortlet5A : PBWOPortlet @end@interface PBWOPortlet6A : PBWOPortlet {} @end @implementation PBWOPortlet6A : PBWOPortlet @end@interface PBWOPortlet7A : PBWOPortlet {} @end @implementation PBWOPortlet7A : PBWOPortlet @end@interface PBWOPortlet8A : PBWOPortlet {} @end @implementation PBWOPortlet8A : PBWOPortlet @end@interface PBWOPortlet9A : PBWOPortlet {} @end @implementation PBWOPortlet9A : PBWOPortlet @end@interface PBWOPortlet10A : PBWOPortlet {} @end @implementation PBWOPortlet10A : PBWOPortlet @end@interface PBWOPortlet11A : PBWOPortlet {} @end @implementation PBWOPortlet11A : PBWOPortlet @end@interface PBWOPortlet12A : PBWOPortlet {} @end @implementation PBWOPortlet12A : PBWOPortlet @end@interface PBWOPortlet13A : PBWOPortlet {} @end @implementation PBWOPortlet13A : PBWOPortlet @end@interface PBWOPortlet14A : PBWOPortlet {} @end @implementation PBWOPortlet14A : PBWOPortlet @end@interface PBWOPortlet15A : PBWOPortlet {} @end @implementation PBWOPortlet15A : PBWOPortlet @end@interface PBWOPortlet16A : PBWOPortlet {} @end @implementation PBWOPortlet16A : PBWOPortlet @end@interface PBWOPortlet17A : PBWOPortlet {} @end @implementation PBWOPortlet17A : PBWOPortlet @end@interface PBWOPortlet18A : PBWOPortlet {} @end @implementation PBWOPortlet18A : PBWOPortlet @end@interface PBWOPortlet19A : PBWOPortlet {} @end @implementation PBWOPortlet19A : PBWOPortlet @end@interface PBWOPortlet20A : PBWOPortlet {} @end @implementation PBWOPortlet20A : PBWOPortlet @end@interface PBWOPortlet21A : PBWOPortlet {} @end @implementation PBWOPortlet21A : PBWOPortlet @end@interface PBWOPortlet22A : PBWOPortlet {} @end @implementation PBWOPortlet22A : PBWOPortlet @end@interface PBWOPortlet23A : PBWOPortlet {} @end @implementation PBWOPortlet23A : PBWOPortlet @end@interface PBWOPortlet24A : PBWOPortlet {} @end @implementation PBWOPortlet24A : PBWOPortlet @end@interface PBWOPortlet25A : PBWOPortlet {} @end @implementation PBWOPortlet25A : PBWOPortlet @end@interface PBWOPortlet26A : PBWOPortlet {} @end @implementation PBWOPortlet26A : PBWOPortlet @end@interface PBWOPortlet27A : PBWOPortlet {} @end @implementation PBWOPortlet27A : PBWOPortlet @end@interface PBWOPortlet28A : PBWOPortlet {} @end @implementation PBWOPortlet28A : PBWOPortlet @end@interface PBWOPortlet29A : PBWOPortlet {} @end @implementation PBWOPortlet29A : PBWOPortlet @end@interface PBWOPortlet30A : PBWOPortlet {} @end @implementation PBWOPortlet30A : PBWOPortlet @end@interface PBWOPortlet31A : PBWOPortlet {} @end @implementation PBWOPortlet31A : PBWOPortlet @end@interface PBWOPortlet32A : PBWOPortlet {} @end @implementation PBWOPortlet32A : PBWOPortlet @end@interface PBWOPortlet33A : PBWOPortlet {} @end @implementation PBWOPortlet33A : PBWOPortlet @end@interface PBWOPortlet34A : PBWOPortlet {} @end @implementation PBWOPortlet34A : PBWOPortlet @end@interface PBWOPortlet35A : PBWOPortlet {} @end @implementation PBWOPortlet35A : PBWOPortlet @end@interface PBWOPortlet36A : PBWOPortlet {} @end @implementation PBWOPortlet36A : PBWOPortlet @end@interface PBWOPortlet37A : PBWOPortlet {} @end @implementation PBWOPortlet37A : PBWOPortlet @end@interface PBWOPortlet38A : PBWOPortlet {} @end @implementation PBWOPortlet38A : PBWOPortlet @end@interface PBWOPortlet39A : PBWOPortlet {} @end @implementation PBWOPortlet39A : PBWOPortlet @end@interface PBWOPortlet40A : PBWOPortlet {} @end @implementation PBWOPortlet40A : PBWOPortlet @end@interface PBWOPortlet41A : PBWOPortlet {} @end @implementation PBWOPortlet41A : PBWOPortlet @end@interface PBWOPortlet42A : PBWOPortlet {} @end @implementation PBWOPortlet42A : PBWOPortlet @end@interface PBWOPortlet43A : PBWOPortlet {} @end @implementation PBWOPortlet43A : PBWOPortlet @end@interface PBWOPortlet44A : PBWOPortlet {} @end @implementation PBWOPortlet44A : PBWOPortlet @end@interface PBWOPortlet45A : PBWOPortlet {} @end @implementation PBWOPortlet45A : PBWOPortlet @end@interface PBWOPortlet46A : PBWOPortlet {} @end @implementation PBWOPortlet46A : PBWOPortlet @end@implementation PortletTempRoot : PBWOPortlet
- (void)currentLine2Acted;
{ [_SESSION setIsTemporaryRoot:NO];
[self setTempRootPW:@""];
[self setTempRootMeldung:TRANSLATION(@"Bitte Passwort eingeben")];
}
- init;
{ if(!(self = [super init]))return nil;
[self currentLine2Acted];
return self;
}
- (void)currentLine1Acted;
{ PBEO *root;
NSString *s;
if(!FILLED(tempRootPW)){ [self setTempRootMeldung:TRANSLATION(@"Bitte Passwort eingeben.")];
return;
}
root = getEOPkValue(@"vid_benutzer",@"Administrator");
s = [root vfk:@"cryptedpw"];
if(![singleValueSQL(([NSSWF @"select md5('%@')",tempRootPW])) iE:s]){ [self setTempRootMeldung:TRANSLATION(@"Passwort ungueltig.")];
[self setTempRootPW:@""];
return;
}
[self setTempRootPW:@""];
[_SESSION setIsTemporaryRoot:YES];
[self setTempRootMeldung:TRANSLATION(@"Root aktiv")];
[root tvfk([_APP now],@"lastlogin")];
[root tvfk(NSS(0),@"pwfailcount")]; //erfolgreich angemeldet: failcount ruecksetzen
[root tvfk(NSS(([[root vfk:@"logins"]intValue]+1)),@"logins")];
UPDAT(root);
}
ACCESSm(tempRootPW,setTempRootPW)
ACCESSm(tempRootMeldung,setTempRootMeldung)
- (void)dealloc;
{ [tempRootPW release];
[tempRootMeldung release];
[super dealloc];
}
@end