Meine Änderungen

0 views
Skip to first unread message

phoque

unread,
Oct 23, 2007, 11:31:49 AM10/23/07
to Antville developer's mailing-list
Hi Tobi,
da ich auf tobi.antville.org gelesen habe, dass du demnächst die
nächste Version von Antville veröffentlichen willst, habe ich mir
gedacht, dass es an der Zeit wäre, dir meine kleinen Änderungen und
Hacks zukommen zu lassen:

"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

phoque

unread,
Oct 28, 2007, 6:40:32 PM10/28/07
to Antville developer's mailing-list
Und auch die Funktion subscribelink_macro habe ich umgeschrieben:

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

Tobi Schäfer

unread,
Oct 30, 2007, 8:40:26 AM10/30/07
to antvil...@googlegroups.com
danke für deine patches.

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

phoque

unread,
Nov 2, 2007, 1:16:32 PM11/2/07
to Antville developer's mailing-list
Ein weiterer Bug (falls man das so nennen kann) ist mir im SysMgr
aufgefallen:

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

phoque

unread,
Nov 11, 2007, 8:03:38 AM11/11/07
to Antville developer's mailing-list
Und noch eine Änderung:

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:

phoque

unread,
Nov 19, 2007, 2:41:22 PM11/19/07
to Antville developer's mailing-list
Und wieder eine Änderung:

Unser Antville versteht es jetzt, dass sich jeder User einen Realnamen
zulegen kann (unsere Uni-Kennungen sind etwas kryptisch...). In
unserem Fall werden die auch aus dem LDAP importiert.

Wenn du die Änderungen willst, lass ich sie dir gern zukommen, ist
aber nen Haufen. :-)

Gruß, Nils
Reply all
Reply to author
Forward
0 new messages