Oui j'ai un fichier menu.php.
Je vais chercher un peu, mais pas avant lundi, car là je ne peux plus. Si mon problème persiste, j'ouvrirai une nouvelle discussion dans le forum PHP.
Encore merci pour ton aide.
Oui j'ai un fichier menu.php.
Je vais chercher un peu, mais pas avant lundi, car là je ne peux plus. Si mon problème persiste, j'ouvrirai une nouvelle discussion dans le forum PHP.
Encore merci pour ton aide.
Bonsoir Jérôme,
Désolé de revenir te déranger, mais j'ai tenté de me dépatouiller en mettant un message sur le proxad de Free, mais rien. J'ai donc posté un message sur le forum PHP dont voilà le lien, et j'ai une réponse qui me ramène vers le fichier news_data_fromBD.php à la ligne 11.
Au pire, j'ai remanier le système pour MySQL en MySQLI, donc si ça va trop loin, je l'utiliserais.
Merci
Salutations,
Bonjour à toutes et tous,
Concernant l’ouverture des pages suivante j’ai un problème, quand je clique sur les suivantes l’url me donne bien la page qui suit, mais j’ai les mêmes news que ceux de la première page.
JE cherche mais ne trouve pas le bug.
Voici le code de «*news_fonction.php*» :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277 <?php // © Jérome Réaux : http://j-reaux.developpez.com - https://www.jerome-reaux-creations.fr // --------------------------------------------------- // FONCTIONS D'AFFICHAGE DES NEWS // --------------------------------------------------- // --------------------------------------------------- // 1a/ FONCTION : FICHE de la News (News seule) // --------------------------------------------------- function news_affiche_fiche( $newsId ) { if( is_numeric($newsId) && $newsId>0 ) { // ------------------------- global $pdo; // connexion PDO // ------------------------- // On recupere les infos dans la BD require(__DIR__ . '/news_data_fromBD.php'); // ------------------------- ?> <article class="newsArticle"> <header> <h4><?php echo $newsTitre; ?></h4> <span class="newsDate"> le <?php echo date('d/m/Y à H\hi', $newsDate); ?></span> </header> <div class="newsContenu"> <?php if( !empty($newsPhoto) ) { ?> <img class="newsPhoto" src="<?php echo ROOT_NEWS.NEWS_REP_PHOTOS.$newsPhoto; ?>" alt="" style="width:<?php echo $newsPhotoLargeur.'%'; ?>;" /> <?php } ?> <?php echo $newsContenu; ?> <?php if( !empty($newsFile) ) { ?> <a class="newsFile" href="<?php echo ROOT_NEWS.NEWS_REP_FILES.$newsFile; ?>" onclick="javascript:window.open(this.href); return false;"> <span>Voir le Fichier joint</span></a> <?php } ?> </div> </article> <?php } else { echo 'Mauvais identifiant de News'; } }; function news_affiche_premiere_news($newsId) { if(is_numeric($newsId) && $newsId>0) { // ------------------------- global $pdo; // ------------------------- // On recupere les infos dans la BD require(__DIR__ . '/news_data_fromBD.php'); // ------------------------- // Premiere News ! ?> <div class="col-md-6 col-sm-6 rounded mb-5" style="overflow:hidden;"><?php if( $newsPhoto != '') { ?> <a href="<?php echo $url_extlink; ?>"> <img class="rounded" src="<?php echo ROOT_NEWS.NEWS_REP_PHOTOS.$newsPhoto; ?>" style="max-height:230px;" alt="" title="<?php echo $newsTitre; ?>" /> </a> <?php } ?></div> <div class="col-md-6 col-sm-6 mb-5"><p><img src="archive_presse/img_presse/<?php echo $newsAuteur; ?>.jpg" /></p> <h5><?php echo $newsTitre; ?></h5><span class="float-left mt-3"><?php if( !empty($url_extlink) ) { echo '<p class="text-center"><a href="' . $url_extlink . '" style="color:#ffffff;" target="_blank"><button type="submit" class="btn btn-primary btn-sm">Poursuivre la lecture</button></a></p>'; } else { echo '<p class="text-center"><a href="' . NEWS_PATH_FICHE . '?newsId=' . $newsId . '" style="color:#ffffff;"><button type="submit" class="btn btn-primary btn-sm">Poursuivre la lecture </button></a></p>'; } ?></span> <span class="float-right mt-3"> le <?php echo $newsDate2; ?></span> <?php if( $newsFile != '') { ?> <a class="newsFile" href="<?php echo ROOT_NEWS.NEWS_REP_FILES.$newsFile; ?>" onclick="javascript:window.open(this.href); return false;"> <p>Voir le Fichier joint</p></a> <?php } ?> </div> <?php } else { echo 'Mauvais identifiant de News'; } }; // --------------------------------------------------- // 1b/ FONCTION : FICHE de la News (LISTE sur plusieurs colonnes) // Avec picto, résumé du contenu et lien vers la fiche de l'Article // --------------------------------------------------- function news_affiche_fiche_resume_colonne( $newsId ) { if( is_numeric($newsId) && $newsId>0 ) { // ------------------------- global $pdo; // connexion PDO // ------------------------- // On recupere les infos dans la BD require(__DIR__ . '/news_data_fromBD.php'); // ------------------------- // Nombre de colonnes : 1 à 6 (voir le style CSS : .newsColonne) ?> <div class="col-md-3 col-sm-6 rounded mb-5" style="overflow:hidden;"><?php if( $newsPhoto != '') { ?> <a href="<?php echo $url_extlink; ?>"> <img class="rounded" src="<?php echo ROOT_NEWS.NEWS_REP_PHOTOS.$newsPhoto; ?>" style="max-height:230px;" alt="" title="<?php echo $newsTitre; ?>" /> </a> <?php } ?></div> <div class="col-md-3 col-sm-6 mb-5"><p><img src="archive_presse/img_presse/<?php echo $newsAuteur; ?>.jpg" /></p> <h5><?php echo $newsTitre; ?></h5><span class="float-left mt-3"><?php if( !empty($url_extlink) ) { echo '<p class="text-center"><a href="' . $url_extlink . '" style="color:#ffffff;" target="_blank"><button type="submit" class="btn btn-primary btn-sm">Poursuivre la lecture</button></a></p>'; } else { echo '<p class="text-center"><a href="' . NEWS_PATH_FICHE . '?newsId=' . $newsId . '" style="color:#ffffff;"><button type="submit" class="btn btn-primary btn-sm">Poursuivre la lecture </button></a></p>'; } ?></span> <span class="float-right mt-3"> le <?php echo $newsDate2; ?><?php echo date('d M Y', $newsDate); ?></span> <?php if( $newsFile != '') { ?> <a class="newsFile" href="<?php echo ROOT_NEWS.NEWS_REP_FILES.$newsFile; ?>" onclick="javascript:window.open(this.href); return false;"> <p>Voir le Fichier joint</p></a> <?php } ?> </div> <?php } else { echo 'Mauvais identifiant de News'; } }; // --------------------------------------------------- // 2/ FONCTION : LISTING des NEWS (avec résumé du contenu) // --------------------------------------------------- function news_affiche_liste_colonne( $numPage ) { if( is_numeric($numPage) && $numPage>0) { // ------------------------- global $pdo; // connexion PDO // ------------------------- // requete : toutes les News (CONFIG : Nombre Maxi à afficher -> NEWS_NBRE_MAXITOTAL) $news_total_query = "SELECT * FROM ".T_NEWS_ARTICLES." ". " WHERE news_publier = 1 ". // uniquement les news publiées " ORDER BY news_date DESC ". " LIMIT 0, :newsNbreMaxiTotal ". ";"; try { $pdo_select = $pdo->prepare($news_total_query); $pdo_select->bindValue(':newsNbreMaxiTotal', NEWS_NBRE_MAXITOTAL, PDO::PARAM_INT); $pdo_select->execute(); $news_total_nombre = $pdo_select->rowCount(); } catch (PDOException $e) { echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); } // ------------------------- // PAGINATION // On calcule le nombre de pages $nbreTotalPages = ceil($news_total_nombre / NEWS_NBRE_PARPAGE); // On calcule le numero du premier message qu'on prend pour le LIMIT de MySQL $numDebut = ($numPage - 1) * NEWS_NBRE_PARPAGE; // ------------------------- // News à afficher sur la page $news_query = "SELECT * FROM ".T_NEWS_ARTICLES." ". " WHERE news_publier = 1 ". // uniquement les news publiées " ORDER BY news_date DESC ". " LIMIT :numDebut,:newsNbreParPage ". ";"; try { $pdo_select = $pdo->prepare($news_query); $pdo_select->bindValue(':numDebut', $numDebut, PDO::PARAM_INT); $pdo_select->bindValue(':newsNbreParPage', NEWS_NBRE_PARPAGE, PDO::PARAM_INT); $pdo_select->execute(); $news_nombre = $pdo_select->rowCount(); $news_rowAll = $pdo_select->fetchAll(); } catch (PDOException $e) { echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); } $lastNews_query = "SELECT * FROM ".T_NEWS_ARTICLES." ". " WHERE news_publier = 1 ". // uniquement les news publiées " ORDER BY news_date DESC ". " LIMIT 0,2;"; try { $pdo_select = $pdo->prepare($lastNews_query); $pdo_select->bindValue(':numDebut', $numDebut, PDO::PARAM_INT); $pdo_select->bindValue(':newsNbreParPage', NEWS_NBRE_PARPAGE, PDO::PARAM_INT); $pdo_select->execute(); $news_nombre = $pdo_select->rowCount(); $news_rowAll = $pdo_select->fetchAll(); } catch (PDOException $e) { echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); } // ------------------------- // Affichage de la PAGINATION //news_pagination_pages($numPage, $nbreTotalPages); ?> <div class="container mt-5"><div class="row align-items-center"> <?php // ------------------------- // Affichage des News $compteur_news = 0; // initialisation du compteur // Affichage des News if($news_nombre>1) { foreach ($news_rowAll as $news_row) { $compteur_news++; // on incrémente le compteur // ------------------------- $newsId = intval($news_row['news_id']); // On recupere les infos dans la BD require(__DIR__ . '/news_data_fromBD.php'); // ------------------------- // Affichage de la news if($compteur_news==1){ // PREMIERE NEWS news_affiche_premiere_news($newsId); // FONCTION A CREER !! } else { // SUIVANTES news_affiche_fiche_resume_colonne($newsId); } } } ?> </div></div> <?php // ------------------------- // Affichage de la PAGINATION news_pagination_pages($numPage, $nbreTotalPages); } }; // -------------------------------------------------------------- // FONCTION : PAGINATION (listing des News) // -------------------------------------------------------------- function news_pagination_pages( $numPage, $nbreTotalPages ) { // ------------- $numLimit = 5; // Limite : nombre de pages avant/après la page courante $sep = ''; // Séparateur '', '-', '|', '/' : entre les numéros de pages // ------------- // au cas où l URL comporte déjà des arguments (?...&...) $args = preg_replace('#(pg=[0-9]+&?)#', '', $_SERVER['QUERY_STRING']); $args = (!empty($args))? '&'.$args : ''; // ------------- // PAGINATION if( $nbreTotalPages > 1) { ?> <div class="container"> <?php echo $sep; for ($i=1; $i<=$nbreTotalPages; $i++) { // 1ère page if( $i==1 && $numPage>($numLimit+1)) { echo ' <a href="?pg='.$i.$args.'" title="Page '.$i.'">'.$i.'</a> '.$sep.'...'.$sep; } // page courante + $numLimit pages avant et après if( ($numPage-1-$numLimit)<$i && $i<($numPage+1+$numLimit)) { if( $i==$numPage) { // page courante echo ' <b>Page '.$i.'</b> '.$sep; } else { echo ' <a href="?pg='.$i.$args.'" title="Page '.$i.'">'.$i.'</a> '.$sep; } } // dernière page if( $i==$nbreTotalPages && $numPage<($nbreTotalPages-$numLimit)) { echo '...'.$sep.' <a href="?pg='.$i.$args.'" title="Page '.$i.'">'.$i.'</a>'; } } ?> </div> <?php } // (fin if nbreTotalPages) }; // --------------------------------------------------------------
Et le code de «*new_config.php*»*:Merci, belle fin de journée à tous.
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104 <?php // --------------------------------------------------------------- // MODULE des NEWS : PARAMETRES de CONFIGURATION // --------------------------------------------------------------- // © Jérome Réaux : http://j-reaux.developpez.com - https://www.jerome-reaux-creations.fr // Création : juin 2009 par Jérôme Réaux (http://j-reaux.developpez.com) // Mise à jour : novembre 2015 par Jérôme Réaux (http://j-reaux.developpez.com) // --------------------------------------------------------------- // CHEMINS vers les DOSSIERS // --------------------------------------------------------------- // ==> voir le fichier de configuration générale : config/main_config.php // --------------------------------------------------------------- // Base de Données : table des NEWS // --------------------------------------------------------------- // ==> table des NEWS en Base de Données : if( !defined('T_NEWS_ARTICLES')) define('T_NEWS_ARTICLES', 'NEWS_TAB_ARTICLES'); // indiquez le nom de votre table NEWS en base de données // ==> Création et Structure de la table : modules/mod_news/news_tableSQL.txt // (la gestion de langues n'est pas prévue dans cette source) // ------------------------- // ==> table de CONNEXION à l'ADMIN : if( !defined('T_NEWS_ADM_CONNEXION')) define('T_NEWS_ADM_CONNEXION', 'NEWS_ADM_CONNEXION'); // IMPORTANT : CHANGEMENT DES IDENTIFIANT et MOT DE PASSE : // ==> Par sécurité, la modification devra se faire MANUELLEMENT directement dans la base de données // ==> Générer un mot de passe hashé : admin/adm-createpwd.php // --------------------------------------------------------------- // CONFIGURATION de l'AFFICHAGE DES NEWS // --------------------------------------------------------------- // LISTING DES NEWS : // ==> Taille maxi du RESUME (en nombre de caractères) if( !defined('NEWS_RESUME_NBRECAR')) define('NEWS_RESUME_NBRECAR', 120); // ==> Résumé du Contenu (brut ou html) //if( !defined('NEWS_RESUME_TYPE')) define('NEWS_RESUME_TYPE', 'brut'); // Résumé : texte brut, sans balises html if( !defined('NEWS_RESUME_TYPE')) define('NEWS_RESUME_TYPE', 'html'); // Résumé : format html, conserve les balises html // ==> Taille des PHOTOS et PICTOS (en pixels) if( !defined('NEWS_LARGEUR_PHOTO')) define('NEWS_LARGEUR_PHOTO', 720); // Largeur d enregistrement de la photo if( !defined('NEWS_LARGEUR_PICTO')) define('NEWS_LARGEUR_PICTO', 100); // Largeur d affichage du picto // ------------------------- // PAGINATION : // ==> Nombre de Colonnes (1 à 6) -> style CSS (.newsColonne) : mod_news/css/news_style.css if( !defined('NEWS_NBRE_COLONNE')) define('NEWS_NBRE_COLONNE', 1); // ==> Nombre de News à afficher par page if( !defined('NEWS_NBRE_PARPAGE')) define('NEWS_NBRE_PARPAGE', 2); // (à définir en fonction du nombre de colonnes : 3 x 4 colonnes, par exemple) // ==> Nombre Maxi à afficher : on ne veut prendre en compte que les xxx plus récentes (ex : les 30 dernieres) if( !defined('NEWS_NBRE_MAXITOTAL')) define('NEWS_NBRE_MAXITOTAL', 30); // --------------------------------------------------------------- // PARAMETRES POUR LES PHOTOS / FICHIERS // --------------------------------------------------------------- // ==> Choix du dossier de stockage (ces dossiers doivent être déprotégés en ecriture : chmod 777) if( !defined('NEWS_REP_PHOTOS')) define('NEWS_REP_PHOTOS', NEWS_UPLOAD.'images/news_photos/'); // PHOTOS if( !defined('NEWS_REP_FILES')) define('NEWS_REP_FILES', NEWS_UPLOAD.'files/news_files/'); // FICHIERS // ------------------------- // UPLOAD : Restrictions sur les fichiers // taille maxi des fichiers if( !defined('NEWS_SIZEMAX_PHOTO')) define('NEWS_SIZEMAX_PHOTO', 10000000); // 10 Mo if( !defined('NEWS_SIZEMAX_FILE')) define('NEWS_SIZEMAX_FILE', 10000000); // 10 Mo // EXTENSIONS acceptées if( !defined('NEWS_EXTENSION_PHOTO')) define('NEWS_EXTENSION_PHOTO', 'jpg,jpeg,png,gif'); if( !defined('NEWS_EXTENSION_FILE')) define('NEWS_EXTENSION_FILE', 'pdf'); // MIME TYPES acceptés if( !defined('NEWS_MIMETYPE_PHOTO')) define('NEWS_MIMETYPE_PHOTO', 'image/jpeg,image/png,image/gif'); if( !defined('NEWS_MIMETYPE_FILE')) define('NEWS_MIMETYPE_FILE', 'application/pdf'); // --------------------------------------------------------------- // PARAMETRES POUR L EDITEUR WYSIWYG // --------------------------------------------------------------- // ==> Choix de l editeur if( !defined('NEWS_EDITEUR_WYSIWYG')) define('NEWS_EDITEUR_WYSIWYG', 'CKeditor'); // CKeditor // if( !defined('NEWS_EDITEUR_WYSIWYG')) define('NEWS_EDITEUR_WYSIWYG', 'TinyMCE'); // TinyMCE // if( !defined('NEWS_EDITEUR_WYSIWYG')) define('NEWS_EDITEUR_WYSIWYG', ''); // rien (pour du texte brut) // ------------------------- // SPECIAL CKeditor: -> http://ckeditor.com // ------------------------- // -> Toolbar personnalisable dans : utilitaires/CKeditor/config.js // -> http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Toolbar if( !defined('NEWS_CKeditor_TOOLBAR')) define('NEWS_CKeditor_TOOLBAR', 'ToolbarArticle'); // Toolbar PERSONALISEE : Contenu Article // if( !defined('NEWS_CKeditor_TOOLBAR')) define('NEWS_CKeditor_TOOLBAR', 'Full'); // Full // if( !defined('NEWS_CKeditor_TOOLBAR')) define('NEWS_CKeditor_TOOLBAR', 'Basic'); // Basic // Remarque : // Contrairement à FCKeditor, l'Exploreur de Fichier n'est pas intégré et il est... PAYANT (CKFinder -> http://ckfinder.com) // UNE ALTERNATIVE : KCfinder -> http://kcfinder.sunhater.com // (GRATUIT, open-source) ! (contenu dans cette source !) // ------------------------- // SPECIAL TinyMCE (3.5.5) : -> http://www.tinymce.com // -> http://www.tinymce.com/wiki.php/Installation // -> http://www.tinymce.com/wiki.php/Configuration // ------------------------- // -> Toolbar personnalisable dans : utilitaires/TinyMCE/jscripts/tiny_mce/config_perso.js // Remarque : // PROBLEME d'affichage UTF-8 dans l'éditeur : je n'ai pas trouvé (ni trop cherché !) la solution... // ---------------------------------------------------------------
Vincent
Bonjour,
si on se réfère au site démo, tout fonctionne.
1- Donc, montre-nous une page en ligne, qu'on puisse constater.
2- Dis-nous quels MODIFICATIONS tu as faites dans les fichiers/fonctions.
Bonjour et merci de ta réponse.
Actuellement je suis en local.
Dans le dossier fonction aucun fichier de changé.
Voici le code que j'ai changer dans le fichier news_fonctions.php dans modules/mod_news :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139 <?php // --------------------------------------------------- // 2/ FONCTION : LISTING des NEWS (avec résumé du contenu) // --------------------------------------------------- function news_affiche_liste_colonne( $numPage ) { if( is_numeric($numPage) && $numPage>0) { // ------------------------- global $pdo; // connexion PDO // ------------------------- // requete : toutes les News (CONFIG : Nombre Maxi à afficher -> NEWS_NBRE_MAXITOTAL) $news_total_query = "SELECT * FROM ".T_NEWS_ARTICLES." ". " WHERE news_publier = 1 ". // uniquement les news publiées " ORDER BY news_date DESC ". " LIMIT 0, :newsNbreMaxiTotal ". ";"; try { $pdo_select = $pdo->prepare($news_total_query); $pdo_select->bindValue(':newsNbreMaxiTotal', NEWS_NBRE_MAXITOTAL, PDO::PARAM_INT); $pdo_select->execute(); $news_total_nombre = $pdo_select->rowCount(); } catch (PDOException $e) { echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); } // ------------------------- // PAGINATION // On calcule le nombre de pages $nbreTotalPages = ceil($news_total_nombre / NEWS_NBRE_PARPAGE); // On calcule le numero du premier message qu'on prend pour le LIMIT de MySQL $numDebut = ($numPage - 1) * NEWS_NBRE_PARPAGE; // ------------------------- // News à afficher sur la page $news_query = "SELECT * FROM ".T_NEWS_ARTICLES." ". " WHERE news_publier = 1 ". // uniquement les news publiées " ORDER BY news_date DESC ". " LIMIT :numDebut,:newsNbreParPage ". ";"; try { $pdo_select = $pdo->prepare($news_query); $pdo_select->bindValue(':numDebut', $numDebut, PDO::PARAM_INT); $pdo_select->bindValue(':newsNbreParPage', NEWS_NBRE_PARPAGE, PDO::PARAM_INT); $pdo_select->execute(); $news_nombre = $pdo_select->rowCount(); $news_rowAll = $pdo_select->fetchAll(); } catch (PDOException $e) { echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); } $lastNews_query = "SELECT * FROM ".T_NEWS_ARTICLES." ". " WHERE news_publier = 1 ". // uniquement les news publiées " ORDER BY news_date DESC ". " LIMIT 0,2;"; try { $pdo_select = $pdo->prepare($lastNews_query); $pdo_select->bindValue(':numDebut', $numDebut, PDO::PARAM_INT); $pdo_select->bindValue(':newsNbreParPage', NEWS_NBRE_PARPAGE, PDO::PARAM_INT); $pdo_select->execute(); $news_nombre = $pdo_select->rowCount(); $news_rowAll = $pdo_select->fetchAll(); } catch (PDOException $e) { echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); } // ------------------------- // Affichage de la PAGINATION //news_pagination_pages($numPage, $nbreTotalPages); ?> <div class="container mt-5"><div class="row align-items-center"> <?php // ------------------------- // Affichage des News $compteur_news = 0; // initialisation du compteur // Affichage des News if($news_nombre>1) { foreach ($news_rowAll as $news_row) { $compteur_news++; // on incrémente le compteur // ------------------------- $newsId = intval($news_row['news_id']); // On recupere les infos dans la BD require(__DIR__ . '/news_data_fromBD.php'); // ------------------------- // Affichage de la news if($compteur_news==1){ // PREMIERE NEWS news_affiche_premiere_news($newsId); // FONCTION A CREER !! } else { // SUIVANTES news_affiche_fiche_resume_colonne($newsId); } } } ?> </div></div> <?php // ------------------------- // Affichage de la PAGINATION news_pagination_pages($numPage, $nbreTotalPages); } }; // -------------------------------------------------------------- // FONCTION : PAGINATION (listing des News) // -------------------------------------------------------------- function news_pagination_pages( $numPage, $nbreTotalPages ) { // ------------- $numLimit = 5; // Limite : nombre de pages avant/après la page courante $sep = ''; // Séparateur '', '-', '|', '/' : entre les numéros de pages // ------------- // au cas où l URL comporte déjà des arguments (?...&...) $args = preg_replace('#(pg=[0-9]+&?)#', '', $_SERVER['QUERY_STRING']); $args = (!empty($args))? '&'.$args : ''; // ------------- // PAGINATION if( $nbreTotalPages > 1) { ?> <div class="container"> <?php echo $sep; for ($i=1; $i<=$nbreTotalPages; $i++) { // 1ère page if( $i==1 && $numPage>($numLimit+1)) { echo ' <a href="?pg='.$i.$args.'" title="Page '.$i.'">'.$i.'</a> '.$sep.'...'.$sep; } // page courante + $numLimit pages avant et après if( ($numPage-1-$numLimit)<$i && $i<($numPage+1+$numLimit)) { if( $i==$numPage) { // page courante echo ' <b>Page '.$i.'</b> '.$sep; } else { echo ' <a href="?pg='.$i.$args.'" title="Page '.$i.'">'.$i.'</a> '.$sep; } } // dernière page if( $i==$nbreTotalPages && $numPage<($nbreTotalPages-$numLimit)) { echo '...'.$sep.' <a href="?pg='.$i.$args.'" title="Page '.$i.'">'.$i.'</a>'; } } ?> </div> <?php } // (fin if nbreTotalPages) };
Cela permet de configurer la news la plus récente indépendamment des autres, ça fonctionne bien de ce coté là, sauf pour les pages suivantes...
1- LOL...
Et ça t'étonne ?
Tu as court-circuité la pagination !
Supprime ce que tu as fait (la requête).
2- Si le but est simplement de styler différemment LA PREMIERE news :
- LA PREMIERE news est sur la page... 1 ! Donc, quand $numPage == 1.
- (on garde aussi ton compteur)
N.B. Si tu veux en styler plusieurs (LES DEUX PREMIERES, par exemple) :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 <div id="newsArticleListing"> <?php // ------------------------- $compteur_news = 0; // initialisation du compteur // Affichage des News if( $news_nombre>0) { foreach ($news_rowAll as $news_row) { $compteur_news++; // incrémentation du compteur // ------------------------- $newsId = intval($news_row['news_id']); // On recupere les infos dans la BD require(__DIR__ . '/news_data_fromBD.php'); // ------------------------- // Affichage de la news if( $numPage == 1 && $compteur_news == 1 ) // LA PREMIERE news { news_affiche_fiche_premiere_news($newsId); } else { news_affiche_fiche_resume_colonne($newsId); } // ------------------------- } } ?> </div>
Code : Sélectionner tout - Visualiser dans une fenêtre à part if( $numPage == 1 && $compteur_news < 3 ) // LES DEUX PREMIERES news
Impeccable Jérôme, ça fonctionne, merci*!
Belle journée.
Bonjour,
Est-ce possible d’inverser l’ordre des news*?
Dans le même ordre d’idée, serait-il compliquer de pouvoir, dans la partie liste de l’administration
(/admin/adm_mod_news/news_liste.php), de pouvoir changer l’ordre des news avec un drop ou de changer le numéro d’id, par un autre*?
Belle journée à toutes et tous.
Vincent
Bonjour,
je ne comprends pas la(les) question(s) (pas assez précis).
- ...ordre des news ? ("ORDER BY ... ASC" -> "ORDER BY ... DESC" ?)
- ... avec un drop ?
- ...changer le numéro d’id ?
Sry,
J’aimerais pouvoir choisir l’ordre d’apparition des news (fiche en l’occurrence).
J’ai une liste de fiche +- 50 dont de temps à autre je dois intervertir par exemple la 19 à la place de la 5, il faut donc modifier ces deux fiches.
Plutôt que de les modifier je me demandais si il était possible de pouvoir déplacer, intervertir les fiches, par exemple dans la page d’administration (news_liste.php), avec une fonction du genre drag & drop ou autre.
Sinon est-il possible d’inverser totalement l’ordre des fiches la première serrait la dernière et inversement ?
Je regarde déjà à ce que tu m’indique ;-).
Merci !
Ok pour l'ordre ASC à changer c'était tout con...
OK,
Rien ne t'empêche de faire tes propres améliorations/modifications des codes : drag & drop,...
Mais ce n'est pas prévu dans le module de News actuel (ou à venir).
Dernière modification par rawsrc ; 25/03/2019 à 13h48. Motif: drap → drag
Sry pour la réponse tardive.
Pour l'instant je ne saurais faire cela, manque de compétences.
Mais qui sait plus tard ;-)
Merci à toi
A très bientôt
Vincent
Bonjour Jérôme,
Il y à un tout petit souci concernant l'affichage photo (du contenu pas de l'upload) dans la liste mais pas dans la fiche, j'ai cherché pour aider, je n'y arrive pas.
Quand tu mets juste une photo dans la partie contenu sans commentaire, la photo n'apparait pas dans la page liste mais apparait bien dans la fiche. (voir test fait sur ta démo)
Sry pour ne pouvoir mieux aider que de le signaler, belle journée.
Vincent
Bonjour,
- Une image* du contenu fait partie intégrante du code HTML du "contenu".
- Contrairement à l'"image d'illustration".
Dans l'affichage en liste, il s'agit d'un résumé de l'article.
Dans l'exemple dont tu parles, il n'y a QUE cette balise <img .../> dans le "contenu".
A priori, la fonction de résumé est pas prévue pour afficher au minimum 1 caractère de texte *.
En effet, si on ne veut mettre qu'UNE seule image, autant la mettre dans l'"image d'illustration" !
* Si tu ajoutes un peu de texte, l'image s'affichera (en fonction du nombre de caractères à afficher dans le résumé, défini dans la configuration des news).
[EDIT] Il faut aussi modifier un peu le code CSS, pour indiquer aux images du contenu :pour éviter les débordement.
Code css : Sélectionner tout - Visualiser dans une fenêtre à part img { max-width:100%; }
Dernière modification par Invité ; 12/04/2019 à 09h50.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager