Verfasst: Do 29. Jun 2006, 10:44
[Edit HerrB: Diese Änderung kann Probleme verursachen. Siehe http://www.contenido.org/forum/viewtopi ... 2414#92414]
Hallo, ich habe zum gleichen THema auch noch ein Output produziert, das ebenfalls den kompletten Artikel im Editor anzeigt.
Zusätzliches Feature:
- An den Seitenumbruchstellen wird eine Marke im Editor eingefügt, die dem Redakteur den Seitenumbruch anzeigt.
- die Paginierung wird in einem DIV-Container angezeigt und mit einer CLASS versehen, sodass man CSS zur Formatierung verwenden kann.
Ich habe es zwar noch nicht mit NICHT-Ankern ausprobiert, sollte für meinen Geschmack allerdings gehen.
Hallo, ich habe zum gleichen THema auch noch ein Output produziert, das ebenfalls den kompletten Artikel im Editor anzeigt.
Zusätzliches Feature:
- An den Seitenumbruchstellen wird eine Marke im Editor eingefügt, die dem Redakteur den Seitenumbruch anzeigt.
- die Paginierung wird in einem DIV-Container angezeigt und mit einer CLASS versehen, sodass man CSS zur Formatierung verwenden kann.
Ich habe es zwar noch nicht mit NICHT-Ankern ausprobiert, sollte für meinen Geschmack allerdings gehen.
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Article Semi-AutoPageBreak
* Author(s) : Stefan Seifarth <info@polycoder.de>
* Copyright : www.polycoder.de / www.htcm.de
* Created : 2006-06-17
************************************************/
// include pagebreak class
cInclude("frontend", "includes/class.articlepagebreak.php");
$strAnchorName = "CMS_VALUE[210]";
$strArticle = "CMS_HTML[1]";
$strDelimiter = '<a name="' . $strAnchorName . '"></a>';
// initialize class
// parameter delimiter for article spliting
$oArticlePageBreak = new ArticlePageBreak( $strDelimiter );
// set article
$oArticlePageBreak->setArticle( $strArticle );
// set current page for output
$intCurrentPage = 0;
if ( isset($_REQUEST[$oArticlePageBreak->strPageParameter]) && !empty($_REQUEST[$oArticlePageBreak->strPageParameter]) && (int)$_REQUEST[$oArticlePageBreak->strPageParameter] > 0 ) {
$intCurrentPage = (int)$_REQUEST[$oArticlePageBreak->strPageParameter];
}
$oArticlePageBreak->setCurrentPage($intCurrentPage);
// set Textlinks
$oArticlePageBreak->setTextFirstPage( mi18n("Erste Seite") );
$oArticlePageBreak->setTextPreviousPage( mi18n("Vorhergehende Seite") );
$oArticlePageBreak->setTextNextPage( mi18n("Nächste Seite") );
$oArticlePageBreak->setTextLastPage( mi18n("Letzte Seite") );
$oArticlePageBreak->setTextPreviousRange( mi18n("Zurück") );
$oArticlePageBreak->setTextNextRange( mi18n("Weiter") );
$oArticlePageBreak->setTextPageTitle( mi18n("Gehe zu Seite ") );
// output the current article part
if ($edit && empty($_REQUEST['edit'])) { // Edit-Mode
if ( preg_match("/^<([^>]*)>/i", $strDelimiter, $arrTagInlay) ) {
$bolDelimiterIsTag = $arrTagInlay[1];
}
if ( $bolDelimiterIsTag && strlen($bolDelimiterIsTag) > 0 ) {
$strReplacePattern = '';
$arrTagParts = explode(" ", $bolDelimiterIsTag);
if (is_array($arrTagParts)) {
$arrTagParts = array_filter($arrTagParts);
$strReplacePattern = '/<' . implode("[^>]*", $arrTagParts) . '[^>]*>/i';
$strArticle = preg_replace($strReplacePattern,"<div style=\"border:1px dashed #900; color:#a22; text-align:center; padding:0px;\" title=\"An dieser Stelle wird die Seite in blätterbare Folgeseiten getrennt. Siehe Vorschau!\">< -- Seitenumbruch -- ></div>",$strArticle);
}
}
else{
$strArticle = preg_replace($strDelimiter,"<div style=\"border:1px dashed #900; color:#a22; text-align:center; padding:0px;\" title=\"An dieser Stelle wird die Seite in blätterbare Folgeseiten getrennt. Siehe Vorschau!\">< -- Seitenumbruch -- ></div>",$strArticle);
}
echo $strArticle;
}
else{ // Publish-Mode
print $oArticlePageBreak->getArticle();
// get pagination for article
print "<div class=\"articlePagination\">".$oArticlePageBreak->getPagination()."</div>";
}
/*
// xml output
// add custom xml tags
// (class xmlObject is located in class.articlepagebreak.php)
//
$oHeadline = new xmlObject(
"headline", // tag name
"", // attributes (given as array)
"headlinetext", // content of element
true // usage of cdata for content
);
// store the above configured tag into class
$oArticlePageBreak->setXMLAdditionalContentTag($oHeadline);
// output complete xml
print $oArticlePageBreak->getXMLComplete();
*/
?>