2010-01-12 4 views
0

Je suis en train de parcourir la documentation CI en particulier http://codeigniter.com/user_guide/libraries/pagination.html. La première chose qui me restait à l'esprit était que "la classe de pagination de CodeIgniter est très facile à utiliser, et elle est 100% personnalisable, soit dynamiquement soit via des préférences stockées." mais il y a toujours quelque chose.codeigniter pagination personnalisation

Ma pagination est la suivante Previous 1 2 3 4 ... n Next maintenant pour chacun d'entre eux je peux créer des balises html d'ouverture et de fermeture des balises html dans mon contrôleur.

Ex:

Précédent

$config['prev_tag_open'] = '<div class="previous">'; 

The opening tag for the "previous" link. 
$config['prev_tag_close'] = '</div>'; 

Suivant

$config['next_tag_open'] = '<div>'; 

The opening tag for the "next" link. 
$config['next_tag_close'] = '</div>'; 

Et pour Last première etc. Maintenant, dans ma conception, je fait flotter précédent gauche flotteur droit suivant et j'ai <div class="middle_pager"> qui contient tous les numéros de page au milieu. D'après ce que je vois dans la documentation je n'ai pas d'option dans CI pour mettre tous les numéros de page entre les balises html, je n'ai que l'option de mettre chaque numéro de page à l'intérieur de certaines balises, peut-être y a-t-il un moyen manqué un point. Quelqu'un peut-il aider?

Merci

Répondre

2

L'astuce est que vous devez penser hors de la boîte.

Vous devez ajouter une une balise d'ouverture à la fin de votre « prev_tag_close »

$config['prev_tag_open'] = '<div class="previous">'; 

The opening tag for the "previous" link. 
$config['prev_tag_close'] = '</div>**<opening tag>**'; 

et une balise de fermeture à votre « next_tag_open » comme

$config['next_tag_open'] = '**</opening tag>**<div>'; 

The opening tag for the "next" link. 
$config['next_tag_close'] = '</div>'; 

qui devrait faire l'affaire.

+0

hmmm oui en effet c'est super génial. merci – ant

1

Cela résout à peine le problème, comment géreriez-vous cette situation sur la première et la dernière page? Le paramètre next_tag_open/close n'apparaîtra pas sur la page finale de la pagination et le paramètre prev_tag_open/close n'apparaîtra pas sur la première page de pagination.

Cela évidemment provoquer à la fois des éléments de bloc pour ces pages pour casser

Ok donc j'eu ce même problème plus tôt aujourd'hui et il a été vraiment en train de faire ma tête. La seule solution que je suis venu avec (œuvres prefectly) est-ce;

Créer une div autour de la sortie -

<div class="pagination2"> 
    <?php echo $link; ?> 
</div> 

Ensuite, utilisez les balises fournies par paginations la classe utiliser autour de ces balises pour enrouler autour des balises de chiffres (num_tag_open/fermer).

$config['full_tag_open'] = '<div class="pagination">'; $config['full_tag_close'] = '</div>'; $config['num_tag_open'] = '<p>; $config['num_tag_close'] = '</p>';

maintenant sauter dans css et position relativement l'élément de bloc externe pagination2, puis aller et positionner absolument la pagination de la classe de bloc interne, centrez et vous pouvez utiliser une valeur négative pour pousser la Nextlink position absolue ou éléments de lien précédent comme vous le souhaitez. Voir ci-dessous pour css j'ai utilisé.

.pagination2{ 
    position: relative; 
    right: -10px; 
    height: 45px; 
    width: 500px; 
    background-color:#f8f8f8; 
    border: 1px solid #d3d3d3;  
    outline:none; 
    } 

    .pagination{ 
    position: absolute; 
    left: 180px; 
    height: 35px; 
    width: 120px; 
    } 

    .pagination-button-previous{ 
    position: absolute; 
    top: 10px; 
    left: -160px; 
    width: 74px; 
    height: 24px; 
+0

Bienvenue au débordement de pile! Merci d'avoir complété cette réponse. –