1 chapter uit easycms weergeven in een lijst

Hulp nodig bij een modificaties of op zoek naar een MOD? Bekijk ons archief. Support wordt helaas niet meer verleend.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gebruikersavatar
versatile
Berichten: 134
Lid geworden op: 24 jun 2006, 14:05
Locatie: Barneveld
Contacteer:

1 chapter uit easycms weergeven in een lijst

Bericht door versatile » 13 feb 2007, 16:01

Wat is het probleem?
Het gaat om de mod easycms. Ik heb een lijst met alle artikelen van de database. Maar nu heb ik nog een chapter erbij gevoegd, maar de artikelen van mn nieuwe chapter wil ik niet in die lijst hebben.
Nu weet ik dat ik met deze code kan zeggen dat ik alleen de artikelen van chapter 1 wil (eigenlijk cid2 in de url):

Code: Selecteer alles

$sql = "SELECT * FROM " . CMS_CHAPTERS_TABLE . " WHERE chapter_id = 2";
De chapter_id is 2.

Maar ik kan dit op meerdere plaatsen in het bestand cms_articles.php neerzetten. Ik heb het bij allemaal geprobeerd en ook bij elkaar, maar nog steeds laat ie de artikelen met die in het chapter zitten met het id 4 ook zien.

Hoe kan ik dat veranderen?

Hier is de php pagina cms_articles.php in tekstbestand versie:
http://www.2pacparadise.com/cmsarticles.txt

Wanneer ontstond het probleem? Vandaag 13/02
Adres van je forum: http://www.2pacparadise.com/site/cms_articles.php?cid=2
Directe link naar de modification: http://www.phpbbhacks.com/download/1411
phpBB versie: 2.0.21
Heb je onlangs een andere mod of stijl geïnstalleerd? Ja
Heb je gezocht naar een antwoord? Ja
Laatst gewijzigd door versatile op 13 feb 2007, 16:08, 1 keer totaal gewijzigd.
Afbeelding

Coen
Berichten: 5387
Lid geworden op: 03 aug 2004, 10:25

Bericht door Coen » 13 feb 2007, 16:02

Kun je dat bestand in een *.txt bestand hier plaatsen? Dan kijk ik er even naar voor je! :)

Gebruikersavatar
versatile
Berichten: 134
Lid geworden op: 24 jun 2006, 14:05
Locatie: Barneveld
Contacteer:

Bericht door versatile » 13 feb 2007, 16:07

is goed
hier is het tekst bestand:
http://www.2pacparadise.com/cmsarticles.txt
Afbeelding

Coen
Berichten: 5387
Lid geworden op: 03 aug 2004, 10:25

Bericht door Coen » 13 feb 2007, 16:11

Is dat wel het bestand waarin de articles opgehaald worden? Volgens mij is dit het bestand waar elk article bekeken kan worden, maar toch niet het bestand waar een overzicht van de articles word getoond?

Gebruikersavatar
versatile
Berichten: 134
Lid geworden op: 24 jun 2006, 14:05
Locatie: Barneveld
Contacteer:

Bericht door versatile » 13 feb 2007, 16:18

jawel, hier worden alle articles opgehaald.
Link:
http://www.2pacparadise.com/site/cms_articles.php
Hier krijg je de laatse 10 articles die toegevoegd zijn te zien. Dat heb ik zelf ingesteld.

Maar die moet alleen articles van cid=2 laten zien
Afbeelding

Coen
Berichten: 5387
Lid geworden op: 03 aug 2004, 10:25

Bericht door Coen » 13 feb 2007, 16:21

Okay, probeer dit eens:

Code: Selecteer alles

//
	// Fetch the articles
	//
	$pending_sql = ( $userdata['user_level'] == ADMIN ) ? '' : 'AND article_pending = 0';
	$sql = "SELECT COUNT(*) AS total
			FROM " . CMS_ARTICLES_TABLE . "
			WHERE chapter_id = $chapter_id
				$pending_sql";
Vervang door:

Code: Selecteer alles

//
	// Fetch the articles
	//
	$pending_sql = ( $userdata['user_level'] == ADMIN ) ? '' : 'AND article_pending = 0';
	$sql = "SELECT COUNT(*) AS total
			FROM " . CMS_ARTICLES_TABLE . "
			WHERE chapter_id = $chapter_id
                        AND chapter_id != '3'
				$pending_sql";
Hier vervang je de 3 door het id van de chapter die niet opgehaald mag worden:

Code: Selecteer alles

AND chapter_id != '3'
Vergeet niet om een backup te maken voor je gaat proberen!

Gebruikersavatar
versatile
Berichten: 134
Lid geworden op: 24 jun 2006, 14:05
Locatie: Barneveld
Contacteer:

Bericht door versatile » 13 feb 2007, 16:29

Ik heb dit nu in mn bestand staan:

Code: Selecteer alles

//
   // Fetch the articles
   //
   $pending_sql = ( $userdata['user_level'] == ADMIN ) ? '' : 'AND article_pending = 0';
   $sql = "SELECT COUNT(*) AS total
         FROM " . CMS_ARTICLES_TABLE . "
         WHERE chapter_id = $chapter_id
                        AND chapter_id != '4'
            $pending_sql";
maar er schijnt niet veel te gebeuren.
Als je een voorbeeld wil zien moet je naar deze link gaan:
http://www.2pacparadise.com/site/home.php
Onder "Latest News Articles:" staat een article genaamd: just a test
Die article heb ik in chapter met het id 4 gezet, maar ik kan m nog steeds zien
Afbeelding

Coen
Berichten: 5387
Lid geworden op: 03 aug 2004, 10:25

Bericht door Coen » 13 feb 2007, 16:31

Maar dat is op home.php! Dat is een compleet andere pagina? Of word die op die plek ge-include ofzo? :roll:

Gebruikersavatar
versatile
Berichten: 134
Lid geworden op: 24 jun 2006, 14:05
Locatie: Barneveld
Contacteer:

Bericht door versatile » 13 feb 2007, 16:31

Prophecy schreef:Maar dat is op home.php! Dat is een compleet andere pagina? Of word die op die plek ge-include ofzo? :roll:
jups
Laatst gewijzigd door versatile op 13 feb 2007, 16:36, 2 keer totaal gewijzigd.
Afbeelding

Coen
Berichten: 5387
Lid geworden op: 03 aug 2004, 10:25

Bericht door Coen » 13 feb 2007, 16:33

Sorry, fout van mijn kant, hoe heet het veld in de tabel van de artikelen die naar een chapter refereert? Waarschijnlijk is dat article_chapter_id of iets dergelijks... :)

Gebruikersavatar
versatile
Berichten: 134
Lid geworden op: 24 jun 2006, 14:05
Locatie: Barneveld
Contacteer:

Bericht door versatile » 13 feb 2007, 16:36

ik heb het bestand cms_articles.php gekopieerd en er cms_articles1.php van gemaakt. Daar heb ik een ander tpl bestand in laten zetten zodat ik de latest 10 articles kon weergeven.

maar nu ben ik wel vergeten het tekst bestandje van cms_articles1.php te sturen.
dat zal ik nu wel ff doen met de code van jou die er al in zit:
http://www.2pacparadise.com/cmsarticles1.txt

Code: Selecteer alles

<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
		<td valign="top" width="100%">
		<br />
		<table width="100%" cellspacing="0" cellpadding="3" border="0">
			<!-- BEGIN articlerow -->
			<tr>
				<td width="100%" valign="top" class="{articlerow.ROW_CLASS}"><a href="{articlerow.U_VIEW_ARTICLE}" class="topictitle">{articlerow.ARTICLE_TITLE}</a><br />
<span class="genmed">Comments: {articlerow.ARTICLE_COMMENTS}
</span></td>
			</tr>
			<!-- END articlerow -->
			<!-- BEGIN switch_no_articles -->
			<tr>
				<td colspan="7" align="center" class="row1"><span class="gen">{L_NO_ARTICLES}</span></td>
			</tr>
			<!-- END switch_no_articles -->
		</table>

</td>
  </tr>
</table>
dit zijn de codes van het tpl bestand.
Laatst gewijzigd door versatile op 13 feb 2007, 16:37, 1 keer totaal gewijzigd.
Afbeelding

Coen
Berichten: 5387
Lid geworden op: 03 aug 2004, 10:25

Bericht door Coen » 13 feb 2007, 16:36

Ik bedoelde met tabel, de tabel in MySQL! ;) Je database dus! :)

Gebruikersavatar
versatile
Berichten: 134
Lid geworden op: 24 jun 2006, 14:05
Locatie: Barneveld
Contacteer:

Bericht door versatile » 13 feb 2007, 16:39

De tabel heet:
phpbb_cms_chapters

en het veld heet chapter_id

ik kan in de tabel zien dat er id's zijn: 2 en 4
Afbeelding

Coen
Berichten: 5387
Lid geworden op: 03 aug 2004, 10:25

Bericht door Coen » 13 feb 2007, 16:40

Maar nu wil ik het veld weten uit phpbb_cms_articles dat naar phpbb_cms_chapters verwijst! :)

Dit is waarschijnlijk article_chapter_id of iets in die richting, zoals ik al zei! ;)

Gebruikersavatar
versatile
Berichten: 134
Lid geworden op: 24 jun 2006, 14:05
Locatie: Barneveld
Contacteer:

Bericht door versatile » 13 feb 2007, 16:43

in de tabel phpbb_cms_articles staat ook een veld chapter_id. en die moet dan wel gekoppeld zijn aan het veld chapter_id in phpbb_cms_chapters.
dus in beide tabellen staat een veld chapter_id
Afbeelding

Coen
Berichten: 5387
Lid geworden op: 03 aug 2004, 10:25

Bericht door Coen » 13 feb 2007, 16:47

Voer deze wijziging ook even door:
Zoek:

Code: Selecteer alles

$sql = "SELECT a.*, at.* , u.username
			FROM " . CMS_ARTICLES_TABLE . " a, " . CMS_ARTICLES_TEXT_TABLE . " at, " . USERS_TABLE . " u
			WHERE a.chapter_id = $chapter_id
				AND at.article_id = a.article_id
				AND u.user_id = a.user_id
				$pending_sql
			ORDER BY time DESC
			LIMIT $start, " . $cms_config['articles_per_page'];
Vervang door:

Code: Selecteer alles

$sql = "SELECT a.*, at.* , u.username
			FROM " . CMS_ARTICLES_TABLE . " a, " . CMS_ARTICLES_TEXT_TABLE . " at, " . USERS_TABLE . " u
			WHERE a.chapter_id = $chapter_id
				AND at.article_id = a.article_id
				AND u.user_id = a.user_id
                                AND a.chapter_id != 4
				$pending_sql
			ORDER BY time DESC
			LIMIT $start, " . $cms_config['articles_per_page'];
Nu zouden de articles met chapter_id 4 niet meer getoond moeten worden... :roll:

Gebruikersavatar
versatile
Berichten: 134
Lid geworden op: 24 jun 2006, 14:05
Locatie: Barneveld
Contacteer:

Bericht door versatile » 13 feb 2007, 16:54

nog steeds niet :o
hier staat ook nog iets over chapter_id:

Code: Selecteer alles

if( $chapter_sql != '' )
	{
		$pending_sql = ( $userdata['user_level'] == ADMIN ) ? '' : 'AND a.article_pending = 0';
		$sql = "SELECT a.*, at.*, c.chapter_name, u.username
				FROM " . CMS_ARTICLES_TABLE . " a, " . CMS_ARTICLES_TEXT_TABLE . " at, " . CMS_CHAPTERS_TABLE . " c, " . USERS_TABLE . " u
				WHERE at.article_id = a.article_id
					AND u.user_id = a.user_id
					AND c.chapter_id = a.chapter_id
					AND c.chapter_id IN ($chapter_sql)
					$pending_sql
				ORDER BY time DESC
				LIMIT 0, " . $cms_config['articles_on_list'];
of heeft dat er niks mee te maken?

en hier:

Code: Selecteer alles

if( $chapter_id )
{
	$sql = "SELECT *
			FROM " . CMS_CHAPTERS_TABLE . "
			WHERE chapter_id = $chapter_id";
Afbeelding

Coen
Berichten: 5387
Lid geworden op: 03 aug 2004, 10:25

Bericht door Coen » 13 feb 2007, 16:58

Deze kunnen we ook nog verbouwen:

Code: Selecteer alles

if( $chapter_sql != '' )
   {
      $pending_sql = ( $userdata['user_level'] == ADMIN ) ? '' : 'AND a.article_pending = 0';
      $sql = "SELECT a.*, at.*, c.chapter_name, u.username
            FROM " . CMS_ARTICLES_TABLE . " a, " . CMS_ARTICLES_TEXT_TABLE . " at, " . CMS_CHAPTERS_TABLE . " c, " . USERS_TABLE . " u
            WHERE at.article_id = a.article_id
               AND u.user_id = a.user_id
               AND c.chapter_id = a.chapter_id
               AND c.chapter_id IN ($chapter_sql)
               $pending_sql
            ORDER BY time DESC
            LIMIT 0, " . $cms_config['articles_on_list'];
veranderen in:

Code: Selecteer alles

if( $chapter_sql != '' )
   {
      $pending_sql = ( $userdata['user_level'] == ADMIN ) ? '' : 'AND a.article_pending = 0';
      $sql = "SELECT a.*, at.*, c.chapter_name, u.username
            FROM " . CMS_ARTICLES_TABLE . " a, " . CMS_ARTICLES_TEXT_TABLE . " at, " . CMS_CHAPTERS_TABLE . " c, " . USERS_TABLE . " u
            WHERE at.article_id = a.article_id
               AND u.user_id = a.user_id
               AND a.chapter_id != 4
               AND c.chapter_id = a.chapter_id
               AND c.chapter_id IN ($chapter_sql)
               $pending_sql
            ORDER BY time DESC
            LIMIT 0, " . $cms_config['articles_on_list'];

Gebruikersavatar
versatile
Berichten: 134
Lid geworden op: 24 jun 2006, 14:05
Locatie: Barneveld
Contacteer:

Bericht door versatile » 13 feb 2007, 17:00

ja dankje!
die laaste code deed t hem
na lang zoeken is het nu tog nog gevonden :D

bedankt :thumb:
Afbeelding

Coen
Berichten: 5387
Lid geworden op: 03 aug 2004, 10:25

Bericht door Coen » 13 feb 2007, 17:02

Eventueel kun je nu nog proberen of de vorige edits ook noodzakelijk waren, door ze weer ongedaan te maken! :) Die eerste weet ik in ieder geval zeker van dat hij er voor zorgt dat de articles in chapter met chapter_id 4, niet meegeteld worden in een bepaalde telling. Ik durf niet precies te zeggen waar en wat voor telling, maar ergens word er geteld! ;)

In ieder geval mooi dat het werkt! ;)

Gesloten