"Bugs" sind Fehler (ach so?), "Features" sind praktische Erweiterungen
und "Customizations" sind Erweiterungen, die speziell auf unserer
Antville-Installation aber nicht zwangsläufig auf allen anderen
Installationen Sinn machen.
******************************************************
prefix-suffix-Bug (Bug)
Fehlerhafte Anzeige von Makro-Attributen prefix="...", suffix="..."
und default="..." als Html-Tag-Attribut. antville/code/
AntvilleLib-1.4.1.zip/Global/Html.js:19
if (attr[i] == null)
geändert zu
if (i == "prefix" || i == "suffix" || i == "default" || attr[i] ==
null)
******************************************************
Benutzerdefinierte Layout-Aliase (Feature)
Möglichkeit, eigene Aliase für neue Layouts anzugeben. <input
name="alias"... /> im Skin LayoutMgr.new setzt das neue Alias, falls
leergelassen oder nicht vorhanden wird alte Verhaltensweise
angenommen. antville/code/LayoutMgr/objectFunctions.js:16
newLayout.alias = buildAlias(newLayout.title, this);
geändert zu
if (!param.alias)
newLayout.alias = buildAlias(newLayout.title, this);
else
newLayout.alias = buildAlias(param.alias, this);
******************************************************
Loginlink im Menü (Customization)
Damit der Link zum Loginformular auch angezeigt wird, wenn man auf dem
Formular selber grad ist. antville/code/Root/macros.js:9
else if (req.action != "login")
geändert zu
else
******************************************************
Attribute für <% story.onlinelink %> (Feature)
story.onlinelink kennt zwei Zustände: Beitrag offline und Beitrag
online. Das attribut text="..." geht aber nur, wenn die Story offline
ist, wenn die Story online ist, wird der System-Standard-Text
angezeigt (und den hab ich noch nicht komplett übersetzt). Es wurden
zwei neue Attribute eingeführt: onlinetext="..." zum Veröffentlichen
und offlinetext="..." zum Zurückziehen. antville/code/Story/macros.js:
162
if (this.online)
res.write(getMessage("Story.setOffline"));
else
res.write(param.text ? param.text : getMessage("Story.setOnline"));
geändert zu
if (this.online)
res.write(param.offlinetext ? param.offlinetext :
getMessage("Story.setOffline"));
else
res.write(param.onlinetext ? param.onlinetext :
getMessage("Story.setOnline"));
******************************************************
Endloses Weiterleiten bei geblocktem Account (Bug)
Geblockte Accounts werden ewig auf Blogs weitergeleitet.
res.redirect(res.handlers.context.href());
in /usr/local/helma/apps/antville/code/HopObject/securityFunctions.js:
44 auskommentiert
******************************************************
Rechtemanipuliation via POST-Variablen (Bug)
req.data.memberlevel (POST-Daten 'memberlevel')
ersetzt durch
res.data.memberlevel (Session-Daten 'memberlevel')
Kommando:
grep -R --files-with-matches 'req.data.memberlevel' . | sort | uniq |
xargs sed -i -e 's/req\.data\.memberlevel/res\.data\.memberlevel/g'
Backup von helma liegt in /usr/local/helma-20070827/
******************************************************
Tagline rendern (Feature)
Um Macros und Markup in der Tagline/der Blogbeschreibung zu
ermöglichen.
res.write(stripTags(this.preferences.getProperty("tagline")));
ersetzt durch
res.write(this.renderSkinAsString(createSkin(this.preferences.getProperty("tagline"))));
in /usr/helma/apps/antville/code/Site/macros.js:43
Statische Seiten implementieren
******************************************************
Ein kleiner, schmutziger Hack, um eigene Seiten anzuzeigen
(Customization)
res.data.title = root.getTitle() + " - 404 - not found";
req.data.path = req.path;
res.data.body = root.renderSkinAsString("notfound");
(path.Site && path.Site.online ? path.Site :
root).renderSkin("page");
return;
ersetzt durch
switch(req.path) {
case 'agb/':
case 'agb':
res.data.title = "Nutzungsbedingungen für den Blogdienst";
req.data.path = req.path;
res.data.body = root.renderSkinAsString("agb");
break;
case 'kontakt/':
case 'kontakt':
res.data.title = "Kontakt";
req.data.path = req.path;
res.data.body = root.renderSkinAsString("kontakt");
break;
case 'membersonly/':
case 'membersonly':
res.data.title = "Anmeldung";
req.data.path = req.path;
res.data.body = root.renderSkinAsString("membersonly");
break;
default:
res.data.title = "404 - not found";
req.data.path = req.path;
res.data.body = root.renderSkinAsString("notfound");
}
in /usr/helma/apps/antville/code/Root/actions.js:146
Weiterentwicklung geplant: Statt eines großes switches könnte man ein
Array von erlaubten URLs und den entsprechenden Skins machen.
Problem: Sendet 404-Header an Clienten.
******************************************************
Verkrüppelter RSS-Feed, ein kleiner Hack (Bug)
Anzeige der Emailadresse (in vielen unleserlichen Entities)
verhindern:
if (story.creator.publishemail)
ersetzt durch
if (false && story.creator.publishemail)
in /usr/helma/apps/antville/code/Site/actions.js:173
Kombinieren von <% root.url stripslash %><% relatives adressen-makro
%> um absolute URLs anzeigen zu können.
res.write(this.getUrl());
ersetzt durch
var str = this.getUrl();
if (param.stripslash)
res.write(str.substring(0,str.length-1));
else
res.write(str);
in /usr/helma/apps/antville/code/Root/macros.js:44
******************************************************
Integration von NIS/LDAP, Crypt-Verschlüsselung (Feature)
if (!session.login(username, password))
ersetzt durch
saltuser = root.users.get(username);
if (!session.login(username,
Packages.helma.util.Crypt.crypt(saltuser.password.substring(0,2),
password)))
in /usr/helma/apps/antville/code/MemberMgr/objectFunctions.js:11
******************************************************
Als Sysadmin Benutzer-Details bearbeiten (Feature)
var email = evalEmail(param.email);
var url = evalURL(param.url);
in /usr/helma/apps/antville/code/SysMgr/objectFunctions.js:167 und
u.email = email;
u.url = url;
in /usr/helma/apps/antville/code/SysMgr/objectFunctions.js:189
Neue Macros:
<% user.email as="editor" %>
<% user.url as="editor" %>
******************************************************
Weiterleitung zum Root-Loginformular beim Kommentieren als Anonymus
(Customization)
res.redirect(res.handlers.site ?
res.handlers.site.members.href("login") : root.members.href("login"));
ersetzt durch
res.redirect(root.members.href("login"));
in /usr/helma/apps/antville/code/Global/securityFunctions.js:12
******************************************************
Gruß, Nils
function subscribelink_macro(param) {
if (path.Site != null) {
if(res.data.memberlevel == SUBSCRIBER) {
Html.link({href: path.Site.href("unsubscribe")},
param.unsubscribetext ? param.unsubscribetext :
getMessage("MemberMgr.unSubscribe"));
}
else {
Html.link({href: path.Site.href("subscribe")},
param.subscribetext ? param.subscribetext :
getMessage("MemberMgr.signUp"));
}
}
return;
}
Die neue Funktion zeigt entweder einen Subscribe oder einen
Unsubscribe-Link an, sobald man auf einem Blog ist (egal ob on- oder
offline).
in /usr/helma/apps/antville/code/MemgerMgr/macros.js:19
die methoden gibt es zwar teilweise gar nicht mehr, ich werde aber
sehen, dass ich die funktionalität entsprechend übernehme, wo es
möglich und sinnvoll ist.
ciao,
tobi
der Aufruf von this.deleteInactiveSites(); war auskommentiert, daher
wurden alte Seiten nie automatisch entfernt.
Kommentar entfernt in
/usr/helma/apps/antville/code/SysMgr/cleanupFunctions.js:22
Heute abend mache ich den ersten Testlauf damit.
Gruß, Nils
Layouts neuer Blogs nehmen den Titel und Alias des Blogs an.
Das ist ein sehr unschönes Verhalten, weil es den inhaltlichen Bezug
zum alten Layout zerstört (natürlich gibts noch das "basiert auf...").
Stattdessen sollten die neuen Layouts ihren Standard-Titel und -Alias
beibehalten.
var initLayout = new Layout(newSite, newSite.title, creator);
initLayout.alias = newSite.alias;
geändert zu
var initLayout = new Layout(newSite, res.handlers.layout.title,
res.handlers.layout.creator);
initLayout.alias = res.handlers.layout.alias;
in /usr/helma/apps/antville/code/Root/objectFunctions.js:23
Gruß, Nils
On 30 Okt., 13:40, Tobi Schäfer <interf...@p3k.org> wrote: