• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Seitenweise blättern php

Yehudi

Guru
Wahrscheinlich ist es schon einigen aufgefallen, dass ich mich eifrig mit Joomla und php beschäftige. Da Joomla zwar sehr geil ist, die Seite die dynamische Website aber genauso aussehen soll, wie ihr statischer Vorgänger, muss ich im templateordner in der index.php Datei etwas am Code hand anlegen. Nun dachte ich wäre alles geschafft, und ich habe die härtesten Sachen hinter mir, da kommt dann der heftigste Brocken.

Das ganze nennt sich Seitenweise umblättern.

Ich versuche gerade ein Mambot umzubauen, so dass es als php.script funktioniert, das Problem sitzt am Anfang, den ich bekomme einen Fatal Error. Als Mambot funktioniert es in Joomla, nur möchte ich das Script an einer anderen Stelle haben.

Code:
registerFunction( 'onPrepareContent', 'botPrevNext' );

function botPrevNext( $published, &$row, $params, $page=0 ) {
global $mainframe, $database, $mosConfig_absolute_path,$mosConfig_lang;

if (!$published ) {
return true;
}

// Get the right language if it exists
if (file_exists($mosConfig_absolute_path.'/mambots/content/rd_prevnext.'.
$mosConfig_lang.'.php')) {
include_once($mosConfig_absolute_path.'/mambots/content/rd_prevnext.'.
$mosConfig_lang.'.php');
} else {
include_once($mosConfig_absolute_path.'/mambots/content/rd_prevnext.
english.php');
}

$task = mosGetParam( $_REQUEST, 'task', '' );
if ( ( $task == "view" ) && !$params->get( 'popup' ) ) {

// loads the links for Next & Previous Button
$query = "SELECT a.id"
. "n FROM jos_content AS a"
. "n WHERE a.catid = ". $row->catid.""
. "n AND a.catid != 0 AND a.state = '1' AND ordering ordering"
. "n ORDER BY a.ordering DESC"
. "n LIMIT 1"
;
$database->setQuery( $query );
$row->prev = $database->loadResult();

$query = "SELECT a.id"
. "n FROM jos_content AS a"
. "n WHERE a.catid = ". $row->catid.""
. "n AND a.catid != 0 AND a.state = '1' AND ordering > $row->ordering"
. "n ORDER BY a.ordering"
. "n LIMIT 1"
;
$database->setQuery( $query );
$row->next = $database->loadResult();
$nav = $row->prev + $row->next;
if ( $row->prev || $row->next ) {
$row->text = $row->text . '' . _RD_PREVNEXT_HEAD;
}

if ( $row->prev ) {
$prev=$row->prev;
$query = "Select title,title_alias from jos_content where id = '$prev'";
$database->setQuery($query);
$database->loadObject($result);
$title= $result->title;
$alias = $result->title_alias;

$query = "select id from jos_menu where published = '1'
and type = 'content_item_link' and componentid= '$prev'";
$database->setQuery( $query );
$Itemid = $database->loadresult();

if (!$Itemid) {
// needed to reduce queries used by getItemid
$bs = $mainframe->getBlogSectionCount();
$bc = $mainframe->getBlogCategoryCount();
$gbs = $mainframe->getGlobalBlogSectionCount();
// get Itemid
$Itemid = $mainframe->getItemid( $prev, 0, 0, $bs, $bc, $gbs );
}
// Blank itemid checker for SEF
if ($Itemid == NULL) {
$Itemid = '';
} else {
$Itemid = '&Itemid='. $Itemid;
}

if ($alias) {
$linktext = $alias;
} else {
$linktext = $title;
}
$link = ''._RD_PREVNEXT_PC.''
. $linktext . '. ';
if (!$row->next) $link . $enddiv;
$row->text = $row->text . $link;

}

if ( $row->prev && $row->next ) {
$row->text = $row->text . '
';
}

if ( $row->next ) {
$next=$row->next;
$query = "Select title,title_alias from jos_content where id = '$next'";
$database->setQuery($query);
$database->loadObject($result);
$title= $result->title;
$alias = $result->title_alias;

$query = "select id from jos_menu where published = '1'
and type = 'content_item_link' and componentid='$next';";
$database->setQuery( $query );
$Itemid = $database->loadResult();

if (!$Itemid) {
// needed to reduce queries used by getItemid
$bs = $mainframe->getBlogSectionCount();
$bc = $mainframe->getBlogCategoryCount();
$gbs = $mainframe->getGlobalBlogSectionCount();
// get Itemid
$Itemid = $mainframe->getItemid( $next, 0, 0, $bs, $bc, $gbs );
}
// Blank itemid checker for SEF
if ($Itemid == NULL) {
$Itemid = '';
} else {
$Itemid = '&Itemid='. $Itemid;
}

if ($alias) {
$linktext = $alias;
} else {
$linktext = $title;
}
$link = ''._RD_PREVNEXT_NC.''
. $linktext . '. ';
$row->text = $row->text . $link;
}
if ( $row->prev || $row->next ) {
$row->text = $row->text . '';
}

}
return true;
}

?>


Fast am Schluss des Code kommt hier auch noch mal ein "Blankchecker for SEF" welches ich für den URL Design einsetze. Je weiter es zum Schluss hingeht, um so verständlicher und klarer finde ich den Code, das einzige Problem ist wohl der Einstieg.
 
OP
Y

Yehudi

Guru
Ich habe den Code noch etwas mehr angepasst:

Code:
<?php
define('_RD_PREVNEXT_NC','Nächster Beitrag: ');
define('_RD_PREVNEXT_PC','Vorheriger Beitrag');
$output = '';  

        $option = mosGetParam( $_REQUEST, 'option', '' );
        $task = mosGetParam( $_REQUEST, 'task', '' );
        if (  ( $task == "view" ) && !$params->get( 'popup' ) 
        && $option = "com_content" ) {            
                 $id = mosGetParam( $_REQUEST, 'id', '0' );            
                 if ($id) { 
// loads the links for Next & Previous Button
	            $query = "SELECT a.id"
	            . "\n FROM jos_content AS a"
	            . "\n WHERE a.catid = ". $row->catid.""
	            . "\n AND a.catid != 0 AND a.state = '1' AND ordering < $row->ordering"
	            . "\n ORDER BY a.ordering DESC"
	            . "\n LIMIT 1"
	            ;
	            $database->setQuery( $query );
	            $prev = $database->loadResult();
	        
	            $query = "SELECT a.id"
	            . "\n FROM jos_content AS a"
	            . "\n WHERE a.catid = ". $row->catid.""
	            . "\n AND a.catid != 0 AND a.state = '1' AND ordering > $row->ordering"
	            . "\n ORDER BY a.ordering"
	            . "\n LIMIT 1"
	            ;
	            $database->setQuery( $query );
	            $next = $database->loadResult();
	            $nav = $prev + $next;
	               
	        if ( $prev ) {
				$query = "Select title from jos_content where id = '$prev'";
	            $database->setQuery($query);
	            $database->loadObject($result);
	            $title= $result->title;
				
                $query = "select id from jos_menu where published = '1' 
                and type = 'content_item_link' and componentid= '$prev'";
	            $database->setQuery( $query );
	            $Itemid = $database->loadresult();
	                       
               	if (!$Itemid) {
                	// needed to reduce queries used by getItemid           
                    $bs = $mainframe->getBlogSectionCount();
               		$bc = $mainframe->getBlogCategoryCount();
               		$gbs = $mainframe->getGlobalBlogSectionCount();
               		// get Itemid
               		$Itemid = $mainframe->getItemid( $prev, 0, 0, $bs, $bc, $gbs );
               }    
	           // Blank itemid checker for SEF
	           if ($Itemid == NULL) {
	           		$Itemid = '';
	           } else {
	           		$Itemid = '&Itemid='. $Itemid;
	           }
	               
                   $linktext = $title;
                   $link = '<p class="pagenav">'.PREVNEXT_PC.'
<a href="' . sefRelToAbs
( 'index.php?option=com_content&task=view&id='. $prev . $Itemid ) .'"
class="readon">'
	                   . $linktext . '</a><span style="display:none;">. </span></p>';
	           if (!$next) $link . $enddiv;
	           $output .= $link;
	                            
	        }
	        
	        if ( $prev && $next ) {
	        	$output .= '<br />';    
	        }
	
	       if ( $next ) {
	            
	            $query = "Select title from jos_content where id = '$next'";
	            $database->setQuery($query);
	            $database->loadObject($result);
	            $title= $result->title;
	            
                $query = "select id from jos_menu where published = '1'	
and type = 'content_item_link' and componentid='$next';";
	            $database->setQuery( $query );
	            $Itemid = $database->loadResult();
                if (!$Itemid) {
                    // needed to reduce queries used by getItemid           
                    $bs = $mainframe->getBlogSectionCount();
	                $bc = $mainframe->getBlogCategoryCount();
	                $gbs = $mainframe->getGlobalBlogSectionCount();
	                // get Itemid
	                $Itemid = $mainframe->getItemid( $next, 0, 0, $bs, $bc, $gbs );
               }    
               // Blank itemid checker for SEF
               if ($Itemid == NULL) {
                   $Itemid = '';
               } else {
                   $Itemid = '&Itemid='. $Itemid;
               }
	               
               $linktext = $title;
               $link = '<p class="pagenav">'.PREVNEXT_NC.'<a href="' . 
sefRelToAbs( 'index.php?option=com_content&task=view&id=
'. $next . $Itemid ) .'" class="readon">'
	                 . $linktext . '</a><span style="display:none;">. </span></p>';
			   $oitput .= $link;
	        }
	
	   }
       echo $output; 
	}

?>

Zur Zeit zeigt wird kein Fehler angezeigt, aber auch kein Ergebnis. Das ganze liegt auf einer includet Datei, umden Code so besser bearbeiten und austauschen zu können.
Die Überschrift "Seitennavigation" fällt dadurch weg, die Frage nach dem Aliastitel habe ich auch entfernt und der Code wird minimal übersichtlicher.
 
OP
Y

Yehudi

Guru
Jetzt funktioniert das ganze, aber ich möchte natürlich noch Veränderungen vornehmen.

Code:
<?php

define ('PREVNEXT_PC','Vorheriger Beitrag: ');
define ('PREVNEXT_NC','Nächster Beitrag: ');
$output = '';

	$option = mosGetParam( $_REQUEST, 'option', '' );
    $task = mosGetParam( $_REQUEST, 'task', '' );
    if (  ( $task == "view" ) && !$params->get( 'popup' ) && $option = "com_content" ) {
			$id = mosGetParam( $_REQUEST, 'id', '0' );
			if ($id) {
	            $query = "SELECT a.ordering, a.catid"
	            . "\n FROM #__content AS a"
	            . "\n WHERE id = '$id'";
	            $row=NULL;
				$database->setQuery( $query );
				$database->loadObject($row);
 	            // loads the links for Next & Previous Button
	            $query = "SELECT a.id"
	            . "\n FROM #__content AS a"
	            . "\n WHERE a.catid = ". $row->catid.""
	            . "\n AND a.catid != 0 AND a.state = '1' AND ordering < $row->ordering"
	            . "\n ORDER BY a.ordering DESC"
	            . "\n LIMIT 1"
	            ;
	            $database->setQuery( $query );
	            $prev = $database->loadResult();
	            $query = "SELECT a.id"
	            . "\n FROM #__content AS a"
	            . "\n WHERE a.catid = ". $row->catid.""
	            . "\n AND a.catid != 0 AND a.state = '1' AND ordering > $row->ordering"
	            . "\n ORDER BY a.ordering"
	            . "\n LIMIT 1"
	            ;
	            $database->setQuery( $query );
	            $next = $database->loadResult();
	               
		        if ( $prev ) {
					$query = "Select title from #__content where id = '$prev'";
		            $database->setQuery($query);
		            $database->loadObject($result);
		            $title= $result->title;
	                $query = "select id from #__menu where published = '1' and type = 'content_item_link' and componentid= '$prev'";
		            $database->setQuery( $query );
		            $Itemid = $database->loadresult();
		                       
	               	if (!$Itemid) {
	                	// needed to reduce queries used by getItemid           
	                    $bs = $mainframe->getBlogSectionCount();
	               		$bc = $mainframe->getBlogCategoryCount();
	               		$gbs = $mainframe->getGlobalBlogSectionCount();
	               		// get Itemid
	               		$Itemid = $mainframe->getItemid( $prev, 0, 0, $bs, $bc, $gbs );
	               }    
		           // Blank itemid checker for SEF
		           if ($Itemid == NULL) {
		           		$Itemid = '';
		           } else {
		           		$Itemid = '&Itemid='. $Itemid;
		           }   
	              
	                   $linktext = $title;
	                 
				   $link = '<p class="pagenav">'
				   			.PREVNEXT_PC
				   			.'<a href="' 
				   			. sefRelToAbs( 'index.php?option=com_content&task=view&id='
				   			. $prev 
				   			. $Itemid ) 
				   			.'" class="readon">'
		                   	. $linktext 
		                   	. '</a></p>';
		           if (!$next) {
		           		$link . $enddiv;
		           }	
		           
		           $output .= $link;
		        }
		        
		        if ( $prev && $next ) {
		        	$output .= '<br />';    
		        }
		
		       if ( $next ) {
		            
		            $query = "Select title from #__content where id = '$next'";
		            $database->setQuery($query);
		            $database->loadObject($result);
		            $title= $result->title;
	                $query = "select id from #__menu where published = '1'	and type = 'content_item_link' and componentid='$next';";
		            $database->setQuery( $query );
		            $Itemid = $database->loadResult();
	                if (!$Itemid) {
	                    // needed to reduce queries used by getItemid           
	                    $bs = $mainframe->getBlogSectionCount();
		                $bc = $mainframe->getBlogCategoryCount();
		                $gbs = $mainframe->getGlobalBlogSectionCount();
		                // get Itemid
		                $Itemid = $mainframe->getItemid( $next, 0, 0, $bs, $bc, $gbs );
	               }    
	               // Blank itemid checker for SEF
	               if ($Itemid == NULL) {
	                   $Itemid = '';
	               } else {
	                   $Itemid = '&Itemid='. $Itemid;
	               }
		               
	               if ($alias) {
	                   $linktext = $alias;
	               } else {
	                   $linktext = $title;
	               }
	               $link = '<p class="pagenav">'
	               		 	. PREVNEXT_NC
	               		 	. '<a href="' 
	               		 	. sefRelToAbs( 'index.php?option=com_content&task=view&id='
	               		 	. $next 
	               		 	. $Itemid ) 
	               		 	. '" class="readon">'
		                 	. $linktext 
		                 	. '</a></p>';
				   $output .= $link;
		        }
				
		        if ( $prev || $next ) {
		        	$output .= '</div>';
		        }
	
	   		}
       echo $output; 
	}

?>


Statt eines Titeltexte soll ein Pfeil rein, jeweils Links und Rechts rum.
 

nbkr

Guru
Ohne mich genauer mit den Strukturen befasst zu haben: Um einen Pfeil statt des Textes als Titel zu haben musst Du diese Zeile anpassen:
Code:
$title= $result->title;
Also einfach darunter ein $title = '<img src="pfeil.png">';

Du kannst in Abhängigkeit von $result->title auch noch abfragen ob ein Links- oder ein Rechtspfeil.
 
OP
Y

Yehudi

Guru
Thanks, ich habe jeweils diese Zeile daraufhin geändert:

Code:
$linktext = $title;

zu

Code:
 $linktext ='<img src="modules/mod_rd_prevnext/next.gif">';

und

Code:
 $linktext ='<img src="modules/mod_rd_prevnext/previous.gif">';

Vermutlich könnte ich da jetzt noch einiges aus dem Code rauswerfen. Jetzt muss ich noch mal schaun, ob ich an der grafischen Darstellung noch was selber geändert bekomme.
Das Ziel ist zumindest greifbar nah.
 
OP
Y

Yehudi

Guru
Eine Zeile bereitet mir hier noch gerade bei der Umgestaltung Probleme:

Code:
 $link = '<p class="pagenav">'
                        .PREVNEXT_PC
                        .'<a href="'
                        . sefRelToAbs( 'index.php?option=com_content&task=view&id='
                        . $prev
                        . $Itemid )
                        .'" class="readon">'
                            . $linktext
                            . '</a></p>';

Die habe ich umgestellt:
Code:
 $link = '<p class="pagenav">'
                        .'<a href="'
                        . sefRelToAbs( 'index.php?option=com_content&task=view&id='
                        . $prev
                        . $Itemid )
                        .'" class="readon">'
                            . $linktext
                            . '</a>
                            .PREVNEXT_PC</p>';

Dabei wird aber die obere definition nicht umgewandelt, statt dessen habe ich dort vorläufig:

Code:
 $link = '<p class="pagenav">'
                        .'<a href="'
                        . sefRelToAbs( 'index.php?option=com_content&task=view&id='
                        . $prev
                        . $Itemid )
                        .'" class="readon">'
                            . $linktext
                            . '</a>
                            Vorheriger Beitrag</p>';

gemacht, was allerdings beim Nutzen von mehrsprachigkeit später zu Problemen führen kann. Dadurch wollte ich erreichen, dass der Text beim Linkspfeil rechts steht.
 

Heart

Hacker
Was wird nicht umgewandelt? Die Constante "PREVNEXT_PC"? Nachgesehen, ob diese in der language-Datei überhaupt drin steht? (Bei einer Version war dieser Eintrag imho mal aus versehen nicht drin, evtl. hast Du diese Version erwischt...)
 
OP
Y

Yehudi

Guru
Die wird nur dann nicht umgewndelt, wenn ich sie hinterm Pfeil setze. Wenn sie davor ist, wird sie sehr wohl umgewandelt.
 
OP
Y

Yehudi

Guru
Wenn ich PREVNEXT_PC unter </p>'; setze, dann ist der Text ausserhalb des Randes, und ohne css.
 

beleg

Member
Das muß nicht als extra Zeile, aber es sollte nicht mit innerhalb der Hochkommata stehen, weil es dann nicht als Konstante identifiziert wird.
Code:
$link = '<p class="pagenav">'
                        .'<a href="'
                        . sefRelToAbs( 'index.php?option=com_content&task=view&id='
                        . $prev
                        . $Itemid )
                        .'" class="readon">'
                            . $linktext
                            . '</a>'
                            .PREVNEXT_PC
                            .'</p>';
Das sollte funktionieren. Ich hab es jetzt doch mal in eine extra Zeile gesetzt, aber das ist nicht das entscheidende.
 
OP
Y

Yehudi

Guru
Oh. :roll:
Danke beleg.

Eine Sache und dann habe ich das genau so wie es sein soll. Wie bekomme ich beides in eine Reihe?
Derzeit kommt erst der linke Pfeil, der Text "Vorheriger Beitrag", - nächste Zeile -
und dann "Nächster Beitrag" und der rechte Pfeil.
Alles will ich in eine Zeile haben. Ein bißchen habe ich im CSS rumprobiert, aber irgendwo muss da noch ein Umbruch, oder sowas sein, was ich übersehen habe.
 
OP
Y

Yehudi

Guru
Hier ist die Kopie meines derzeitiges Ergebnis, leider habe ich das mit den Pfeilen noch nicht auf die Reihe bekommen.
http://www.yehudi.info/test.html
 

beleg

Member
Da ist kein Zeilenumbruch zwischen den beiden Pfeilen, das sind zwei Absätze. Wenn ich das richtig überblicke, wird zweimal die Variable $link befüllt und dann in die Variable $output eingefügt, einmal für vorherigen Beitrag und einmal für nächster Beitrag. Du müsstest also beim ersten Mal das
Code:
.'</p>'
rauslassen und beim zweiten mal das
Code:
'<p class="pagenav">'
.
Schau mal ob es dann funktioniert.
 
OP
Y

Yehudi

Guru
Hallo beleg,

es rutscht dadurch ein Stück höher, aber zusammen in einer Reihe sind sie nicht. Ich hatte auch am css noch mal versucht nachzukorigieren, aber das will nicht.
 

beleg

Member
Oh, ja gerade gesehen, da ist ja hier
Code:
if ( $prev && $next ) {
                 $output .= '<br />';   
              }
doch noch ein Zeilenumbruch. Das muß noch weg.
 
OP
Y

Yehudi

Guru
Hallo beleg,

Herzlichen das war es.
Ich habe mir das ganze dann in der statischen Datei nochmal angeschaut, und bin dadurch Deine Anweisungen vorher auf die Idee gekommen <td> zwischen den Elementen einzufügen.(unten das Gesamtergebnis)
Ich musste noch im css rumpfummeln, wobei es mit der Schrift da Probleme gibt. text-align bezieht sich nur auf die Bündigkeit des Textes, aber nicht, dass der Text rechts oder links liegt. Bei right ist dieses nämlich ein Unterschied zu left. Nur align bringt in der css-Datei keinen Unterschied, also habe ich das ganze in dem Modul gelöst.

Hier das frisierte Modul:

Code:
<?php

define ('PREVNEXT_PC','<div align="left"><b><i>Vorheriger Beitrag</i></b></div>');
define ('PREVNEXT_NC','<div align="right"><b><i>Nächster Beitrag</i></b></div>');
$output = '';

	$option = mosGetParam( $_REQUEST, 'option', '' );
    $task = mosGetParam( $_REQUEST, 'task', '' );
    if (  ( $task == "view" ) && !$params->get( 'popup' ) && $option = "com_content" ) {
			$id = mosGetParam( $_REQUEST, 'id', '0' );
			if ($id) {
	            $query = "SELECT a.ordering, a.catid"
	            . "\n FROM #__content AS a"
	            . "\n WHERE id = '$id'";
	            $row=NULL;
				$database->setQuery( $query );
				$database->loadObject($row);
 	            // loads the links for Next & Previous Button
	            $query = "SELECT a.id"
	            . "\n FROM #__content AS a"
	            . "\n WHERE a.catid = ". $row->catid.""
	            . "\n AND a.catid != 0 AND a.state = '1' AND ordering < $row->ordering"
	            . "\n ORDER BY a.ordering DESC"
	            . "\n LIMIT 1"
	            ;
	            $database->setQuery( $query );
	            $prev = $database->loadResult();
	            $query = "SELECT a.id"
	            . "\n FROM #__content AS a"
	            . "\n WHERE a.catid = ". $row->catid.""
	            . "\n AND a.catid != 0 AND a.state = '1' AND ordering > $row->ordering"
	            . "\n ORDER BY a.ordering"
	            . "\n LIMIT 1"
	            ;
	            $database->setQuery( $query );
	            $next = $database->loadResult();
	               
		        if ( $prev ) {
					$query = "Select title from #__content where id = '$prev'";
		            $database->setQuery($query);
		            $database->loadObject($result);
		            $title= $result->title;
	                $query = "select id from #__menu where published = '1' and type = 'content_item_link' and componentid= '$prev'";
		            $database->setQuery( $query );
		            $Itemid = $database->loadresult();
		                       
	               	if (!$Itemid) {
	                	// needed to reduce queries used by getItemid           
	                    $bs = $mainframe->getBlogSectionCount();
	               		$bc = $mainframe->getBlogCategoryCount();
	               		$gbs = $mainframe->getGlobalBlogSectionCount();
	               		// get Itemid
	               		$Itemid = $mainframe->getItemid( $prev, 0, 0, $bs, $bc, $gbs );
	               }    
		           // Blank itemid checker for SEF
		           if ($Itemid == NULL) {
		           		$Itemid = '';
		           } else {
		           		$Itemid = '&Itemid='. $Itemid;
		           }   
	              
	               $linktext = '<img src="modules/mod_rd_prevnext/previous.gif">';
				   $link = '<td><p class="pagenav_arrow">'
							.'<a href="' 
				   			. sefRelToAbs( 'index.php?option=com_content&task=view&id='
				   			. $prev 
				   			. $Itemid ) 
				   			.'" class="readon">'
		                   	. $linktext 
		                   	. '</a></td>'
							. '<td><p class="pagenav_left">'
							. PREVNEXT_PC
							. '</a></td>';
		           if (!$next) {
		           		$link . $enddiv;
		           }	
		           
		           $output .= $link;
		        }
		       
		       if ( $next ) {
		            
		            $query = "Select title from #__content where id = '$next'";
		            $database->setQuery($query);
		            $database->loadObject($result);
		            $title= $result->title;
	                $query = "select id from #__menu where published = '1'	and type = 'content_item_link' and componentid='$next';";
		            $database->setQuery( $query );
		            $Itemid = $database->loadResult();
	                if (!$Itemid) {
	                    // needed to reduce queries used by getItemid           
	                    $bs = $mainframe->getBlogSectionCount();
		                $bc = $mainframe->getBlogCategoryCount();
		                $gbs = $mainframe->getGlobalBlogSectionCount();
		                // get Itemid
		                $Itemid = $mainframe->getItemid( $next, 0, 0, $bs, $bc, $gbs );
	               }    
	               // Blank itemid checker for SEF
	               if ($Itemid == NULL) {
	                   $Itemid = '';
	               } else {
	                   $Itemid = '&Itemid='. $Itemid;
	               }
		               
	               $linktext = '<img src="modules/mod_rd_prevnext/next.gif">';
	               $link = '<td><p class="pagenav_right">'
				            . PREVNEXT_NC
							. '</td>'
							. '<td><p class="pagenav_arrow">'
	               		 	. '<a href="' 
	               		 	. sefRelToAbs( 'index.php?option=com_content&task=view&id='
	               		 	. $next 
	               		 	. $Itemid ) 
	               		 	. '" class="readon">'
		                 	. $linktext 
		                 	. '</a></td></p>';
				   $output .= $link;
		        }
				
		        if ( $prev || $next ) {
		        	$output .= '</div>';
		        }
	
	   		}
       echo $output; 
	}

?>

Der Auszug aus der css Datei:

Code:
.pagenav_arrow {
  text-align: center;
  width: 36px;
  height: 50;
  padding: 0px 10px;
  line-height: 20px;
  margin: 1px;
}

.pagenav_left {
  font-family: Verdana, Georgia;
  text-align: left;
  font-size: 15px;
  font-weight: bold;
  width: 100px;
  height: 50;
  padding: 0px 10px;
  line-height: 20px;
  margin: 1px;
}

.pagenav_right {
  font-family: Verdana, Georgia;
  text-align: right;
  align: right;
  font-size: 15px;
  font-weight: bold;
  width: 60px;
  height: 50;
  padding: 0px 10px;
  line-height: 20px;
  margin: 1px;
}

Wenn jemand noch eine Idee wegen der CSS Sache hat wäre das optimal, ansonsten kann ich auch mit dieser unorthodoxen Sache leben.
 

beleg

Member
Hm, ich fürchte, da gibt es noch ein bisschen zu frisieren. Das mit den Tabellenzellen mag zwar vom Browser möglicherweise in der gewünschten Form dargestellt werden, aber letztendlich sehe ich nirgendwo die table oder tr Tags. Außerdem ist die Verschachtelung mit den Absätzen falsch und es fehlt ein Absatzschlußtag an mindestens einer Stelle.
Wenn Du auf die td Tags verzichten möchtest (was ich empfehlen würde), dann löst Du das in den Stylesheetangaben mit margin oder float. Außerdem solltest Du in den beiden Konstanten die Formatierungen auch in die Stylesheets auslagern. Im übrigen erzeugen div Tags auch einen Zeilenumbruch, da nimmst Du dann einfach span.
 
OP
Y

Yehudi

Guru
Ich habe das jetzt etwas verbessert, obwohl ich von der vierfachen Tabelle nicht weg möchte. Das hat den Grund, da ich die verschiedenen Teile links und rechts verteilen möchte.
Teil 1:
Code:
 $link = '<tr>'
				            .'<td><p class="pagenav_arrow">'
							.'<a href="' 
				   			. sefRelToAbs( 'index.php?option=com_content&task=view&id='
				   			. $prev 
				   			. $Itemid ) 
				   			.'" class="readon">'
		                   	. $linktext 
							. '</p>'
		                   	. '</a></td>'
							. '<td><p class="pagenav_left">'
							. PREVNEXT_PC
							. '</p>'
							. '</td>'
;

Teil 2:
Code:
$link = '<td><p class="pagenav_right">'
				            . PREVNEXT_NC
							. '</p>'
							. '</td>'
							. '<td><p class="pagenav_arrow">'
	               		 	. '<a href="' 
	               		 	. sefRelToAbs( 'index.php?option=com_content&task=view&id='
	               		 	. $next 
	               		 	. $Itemid ) 
	               		 	. '" class="readon">'
		                 	. $linktext 
							. '</p>'
		                 	. '</a></td>'
							. '</tr>';

Sicherlich kann ich einige Codes hier noch zusammenfügen. z.B.:
Code:
'</p></a></td></tr>'


Mein CSS:
Code:
.pagenav_arrow {
  text-align: center;
  width: 36px;
  height: 50;
  padding: 0px 10px;
  line-height: 20px;
  margin: 1px;
}

.pagenav_left {
  font-family: Verdana, Georgia;
  font-style: italic;
  text-align: left;
  float: left;
  font-size: 15px;
  font-weight: bold;
  width: 100px;
  height: 50;
  padding: 0px 10px;
  line-height: 20px;
  margin: 1px;
}

.pagenav_right {
  font-family: Verdana, Georgia;
  font-style: italic;
  text-align: right;
  float: right;
  align: right;
  font-size: 15px;
  font-weight: bold;
  width: 60px;
  height: 50;
  padding: 0px 10px;
  line-height: 20px;
  margin: 1px;
}

Der Code sollte auch schon stimmen, da gebe ich Dir völlig recht.
 
Oben