summaryrefslogtreecommitdiffstats
path: root/org/madore/damlengine/WeblogPopulate.java
diff options
context:
space:
mode:
authorDavid A. Madore <david+git@madore.org>2011-11-12 14:33:35 +0100
committerDavid A. Madore <david+git@madore.org>2011-11-12 14:33:35 +0100
commit07f2f3c30a6e0bc811e436925dfdfcf5befdecb7 (patch)
tree823deb363f8c7449a2028bc5171bf46d7f6218eb /org/madore/damlengine/WeblogPopulate.java
parent71dc0d53fcefea70ce978d305fba653cc2180a3b (diff)
downloaddamlengine-07f2f3c30a6e0bc811e436925dfdfcf5befdecb7.tar.gz
damlengine-07f2f3c30a6e0bc811e436925dfdfcf5befdecb7.tar.bz2
damlengine-07f2f3c30a6e0bc811e436925dfdfcf5befdecb7.zip
Entry single pages: handle permalinks gracefully, populate with attribute.
* A single page is generated from the single-page attribute on <entry> element (stored in database as do_single_page). * Permalink refers to the single page. Same from weblog index. Other links are subject to debate (e.g., what about internal links? now we link to single page when link has a supplement part, but this is debatable).
Diffstat (limited to 'org/madore/damlengine/WeblogPopulate.java')
-rw-r--r--org/madore/damlengine/WeblogPopulate.java37
1 files changed, 21 insertions, 16 deletions
diff --git a/org/madore/damlengine/WeblogPopulate.java b/org/madore/damlengine/WeblogPopulate.java
index 9b6694e..6593f9f 100644
--- a/org/madore/damlengine/WeblogPopulate.java
+++ b/org/madore/damlengine/WeblogPopulate.java
@@ -46,13 +46,13 @@ public final class WeblogPopulate {
final PreparedStatement checkSt
= conn.prepareStatement("SELECT sha1 FROM entries WHERE id=?");
final PreparedStatement insertNSt
- = conn.prepareStatement("INSERT INTO entries(id,edate,lang,title,title_xml,content,sha1) VALUES (?,?,?,?,?::xml,?::xml,?)");
+ = conn.prepareStatement("INSERT INTO entries(id,edate,lang,do_single_page,title,title_xml,content,sha1) VALUES (?,?,?,?,?,?::xml,?::xml,?)");
final PreparedStatement insertCSt
- = conn.prepareStatement("INSERT INTO entries(id,edate,lang,title,title_xml,content,sha1,cdate) VALUES (?,?,?,?,?::xml,?::xml,?,?::timestamptz)");
+ = conn.prepareStatement("INSERT INTO entries(id,edate,lang,do_single_page,title,title_xml,content,sha1,cdate) VALUES (?,?,?,?,?,?::xml,?::xml,?,?::timestamptz)");
final PreparedStatement updateNSt
- = conn.prepareStatement("UPDATE entries SET (edate,mdate,lang,title,title_xml,content,sha1)=(?,DEFAULT,?,?,?::xml,?::xml,?) WHERE id=?");
+ = conn.prepareStatement("UPDATE entries SET (edate,mdate,lang,do_single_page,title,title_xml,content,sha1)=(?,DEFAULT,?,?,?,?::xml,?::xml,?) WHERE id=?");
final PreparedStatement updateCSt
- = conn.prepareStatement("UPDATE entries SET (edate,mdate,lang,title,title_xml,content,sha1,cdate)=(?,DEFAULT,?,?,?::xml,?::xml,?,?::timestamptz) WHERE id=?");
+ = conn.prepareStatement("UPDATE entries SET (edate,mdate,lang,do_single_page,title,title_xml,content,sha1,cdate)=(?,DEFAULT,?,?,?,?::xml,?::xml,?,?::timestamptz) WHERE id=?");
final PreparedStatement checkDateSt
= conn.prepareStatement("SELECT to_char(cdate,'YYYY-MM-DD\"T\"HH24:MI:SS\"Z\"') FROM entries WHERE id=?");
final PreparedStatement clearCatSt
@@ -85,6 +85,9 @@ public final class WeblogPopulate {
cdate = null;
String catStr = ent.getAttributeNS(null, "cat");
String[] catList = catStr.split("\\s+");
+ String doSinglePage = ent.getAttributeNS(null, "single-page");
+ if ( doSinglePage.equals("") )
+ doSinglePage = null;
String lang = LangHelper.getLangRec(ent);
String content = ser.writeToString(ent);
sha1.reset();
@@ -108,15 +111,16 @@ public final class WeblogPopulate {
updateSt = updateCSt;
updateSt.setString(1, date);
updateSt.setString(2, lang);
- updateSt.setString(3, titleTxt);
- updateSt.setString(4, titleXml);
- updateSt.setString(5, content);
- updateSt.setString(6, digest);
+ updateSt.setString(3, doSinglePage);
+ updateSt.setString(4, titleTxt);
+ updateSt.setString(5, titleXml);
+ updateSt.setString(6, content);
+ updateSt.setString(7, digest);
if ( cdate != null ) {
- updateSt.setString(7, cdate);
- updateSt.setInt(8, id);
+ updateSt.setString(8, cdate);
+ updateSt.setInt(9, id);
} else {
- updateSt.setInt(7, id);
+ updateSt.setInt(8, id);
}
updateSt.executeUpdate();
} else {
@@ -129,12 +133,13 @@ public final class WeblogPopulate {
insertSt.setInt(1, id);
insertSt.setString(2, date);
insertSt.setString(3, lang);
- insertSt.setString(4, titleTxt);
- insertSt.setString(5, titleXml);
- insertSt.setString(6, content);
- insertSt.setString(7, digest);
+ insertSt.setString(4, doSinglePage);
+ insertSt.setString(5, titleTxt);
+ insertSt.setString(6, titleXml);
+ insertSt.setString(7, content);
+ insertSt.setString(8, digest);
if ( cdate != null )
- insertSt.setString(8, cdate);
+ insertSt.setString(9, cdate);
insertSt.executeUpdate();
}
if ( ! Pattern.matches("^\\d{4}-\\d{2}-\\d{2}T\\d{2}\\:\\d{2}(?:\\:\\d{2})?(?:Z|[\\+\\-]\\d{2}\\:\\d{2})$", cdate) ) {