[?] Portal update
-
An sich könnte man ja auch http://www.c-plusplus.net/forum/posting-var-mode-is-quote-and-p-is-$POST_ID.html parsen und so den BBCode erhalten. Das wäre zwar ein Hack allerdings nicht sonderlich aufwendig (der Code wird ja grosszügigerweise schon mit [quote]s abgegrenzt) und die Kapselung würde es auch nicht verletzen werden.
Das einzige Problem wäre es an diese $POST_ID ran zu kommen. Diese wird nämlich nicht von http://www.c-plusplus.net/forum/viewtopic_xml.php mitgesendet. Es wäre auch nützlich bereits in viewforum_xml.php die ID des ersten Posts mit zu senden. Es ist nämlich der Unterschied ob man 3 Abfragen braucht um an den Code zu kommen oder nur 2 und da das Forum nicht wirklich so schnell ist spürt man den Unterschied schon.
-
Ich hab es mal ausprobiert. Wenn die PostID bekannt ist dann kriegt man den BBCode sehr schnell:
function load_bbcode($post_id){ $html = file_get_contents("http://www.c-plusplus.net/forum/posting-var-mode-is-quote-and-p-is-$post_id.html"); if($html === false) return false; if(preg_match("'<textarea[^>]*>\\s*\[quote=\"[^\"]*\"\](.*?)\[/quote\]\\s*</textarea>'is", $html, $match)) return html_entity_decode($match[1], ENT_QUOTES); else return false; }
-
Achtung: was wenn das Topic geschlossen wurde?
-
@Ben04: die Posting-ID habe ich eingefügt:
<posting> <author>{postrow.POSTER_NAME}</author> <date>{postrow.POST_DATE}</date> <subject>{postrow.POST_SUBJECT}</subject> <message><![CDATA[{postrow.MESSAGE}]]></message> <lastChange>{postrow.EDITED_MESSAGE}</lastChange> <postID>{postrow.U_POST_ID}</postID> <------------------- </posting>
-
@Ben04: Ich habe noch einen kleinen Verbesserungsvorschlag.
Die URLs werden mitunter ziemlich lang und unansehlich (z.B. http://magazin.c-plusplus.net/artikel/CPlusPlus09 (Teil 1) - Ein �berblick%3A Sprachfeatures).
Die einfachste Möglichkeit, das ein wenig zu verschönern, ist imho Leerzeichen bzw. %20 durch _ zu ersetzen. Ich kenne mich leider mit mod_rewrite nicht besonders gut aus und habe keine Ahnung, wie kompliziert es ist, diese Änderung noch in das bestehende System einzupflegen.
Klar ist, dass Artikel-Titel keine Unterstriche beinhalten dürften, was aber kein großes Problem sein sollte. Anders sieht es bei Nicks aus, da dort ja durchaus ab und zu Unterstriche vorkommen.
Man müsste diese Leerzeichen-Ersetzung also auf Artikel beschränken, und bei Profilen weglassen.Wie gesagt, ich weiß nicht wie aufwändig es wäre, das Aufwand-Nutzen-Verhältnis kannst du wohl am besten beurteilen (btw, gibt es eigentlich irgendwo den aktuellen Code?).
Oder habt ihr noch andere Ideen?
-
Der technische Aufwand ist recht klein. Es nur für Artikel zu machen ist dann schon wieder ein bisschen mehr Arbeit da dies nicht vorgesehen ist. Mit mod_rewrite würde ich das allerdings nicht machen. (Glaub mir, das schont Nerven.
)
Ich werde es allerdings nicht machen da es nicht so viel verkürzt und ein ordentlicher Browser ein Leerzeichen selbständig richtig ersetzt. Du kann also URLs mit Leerzeichen drin verwenden. Ein weiterer Grund ist, dass Google jetzt diese Version im Index stehen hat. Es wäre unklug da jetzt etwas an den URLs rumzuschrauben ohne, dass es einen wirklichen Vorteil bringt.
btw, gibt es eigentlich irgendwo den aktuellen Code?
Soweit ich weiß nicht. Ich hab aber keine Lust da zwei Versionen synchron halten zu müssen. Wenn du ihn wirklich willst dann kann ich ihn aber rausrücken.
-
Ben04 schrieb:
Mit mod_rewrite würde ich das allerdings nicht machen. (Glaub mir, das schont Nerven.
)
Anscheinend hast du ja wirklich traumatische Erfahrungen damit gemacht.
Ben04 schrieb:
Du kann also URLs mit Leerzeichen drin verwenden.
Ah, gute Idee.
Ben04 schrieb:
Ein weiterer Grund ist, dass Google jetzt diese Version im Index stehen hat. Es wäre unklug da jetzt etwas an den URLs rumzuschrauben ohne, dass es einen wirklichen Vorteil bringt.
Das stimmt allerdings.
-
Ben04 schrieb:
- Ist es möglich an den BBCode der Artikel ran zu kommen? Ein Weg über pdflatex würde wahrscheinlich bessere Ergebnisse liefern als diese html2ps|ps2pdf Lösung. (Nein ich hab nicht vor, das jetzt zu machen. Es geht mir nur um die Machbarkeit.
)
Ich habe heute vor lauter Langeweile eine pdflatex Lösung geschrieben ohne groß an die Verwendbarkeit zu denken - dürfte wohl sowieso nichts nützen - das ganze ist in Python geschrieben
Falls doch irgendjemand interesse hat, den Code und 2 Tests hab ich unter
http://testing.coders-nemesis.eu/cpp/Macht aus einer Textdatei mit BBCode Formatierten Artikeln in ISO-8859-1 Formatierung ein pdf
- Ist es möglich an den BBCode der Artikel ran zu kommen? Ein Weg über pdflatex würde wahrscheinlich bessere Ergebnisse liefern als diese html2ps|ps2pdf Lösung. (Nein ich hab nicht vor, das jetzt zu machen. Es geht mir nur um die Machbarkeit.
-
Es scheinen eh nicht so viele PDFs zu wollen. Zu mindest sind bis jetzt noch nicht mal alle generiert worden und dies geschieht beim ersten Abruf.
Python dürfte so weit ich weiß ein Problem darstellen.
-
Ben04 schrieb:
Python dürfte so weit ich weiß ein Problem darstellen.
Nein, wir haben IIRC sogar ein 2.4er-Python installiert, aber Marcus hat ja schon ganz gut erläutert, warum man an die Beiträge in Textform nicht so schön herankommt, insofern hilft uns darthdespotisms Programm nicht so sehr.
Trotzdem danke!