Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 17
Seite [1]
jasperblank


Beginner




Beiträge: 17
# Thema - 02.08.2011 um 14:37 Uhr
Hallo Leute,

ich habe eine Verständnisfrage und komme gerade nicht weiter.
Also wenn ich eine bestimmte Kategorie per Platzhalter anzeigen möchte, dann mach man es z.B. so:

{articles:navlist:catid=1}
{articles:navlist:catid=2}
.
.
.

Wie ist es eigentlich, wenn man zwei oder drei bestimme Kategorien in einem Platzhalter packen möchte?
{articles:navlist:catid=1,2,5} z.B. funktioniert schon mal nicht.

Weiss einer Rat?

Cheers,
Jasper
Inaktiv
sgraewe ClanSphere Team

Supporter
Supporter




Beiträge: 6116
# Antwort: 1 - 02.08.2011 um 14:40 Uhr
Da wirst du wohl oder übel,
wohl eine neue navlist anlegen müssen,
die dir nur die beiden kategorien ausgibt.

Per Platzhalter wirste das wohl so nicht hinbekommen


Inaktiv
|
jasperblank
Thread-Ersteller


Beginner




Beiträge: 17
# Antwort: 2 - 02.08.2011 um 15:03 Uhr
ah ok. Danke für die Info.
Hätte mir gleich die Funktion anschauen müssen.


Inaktiv
|
jasperblank
Thread-Ersteller


Beginner




Beiträge: 17
# Antwort: 3 - 27.08.2011 um 01:47 Uhr
Also ich hab jetzt die /mods/articles/navlist.php

alt... +-

$data['articles'][$run]['articles_categorie'] = cs_secure($articles['categories_id']);


abgeändert in
neu... +-

$data['articles'][$run]['articles_categorie'] = 76,78;


oder auch... +-

$data['articles'][$run]['articles_categorie'] = 76 && 78;


Beides funktioniert nicht.
Wie kann ich jetzt das Modul so umschreiben, dass nur zwei oder drei bestimmte Kategorien ausgegeben werden?

Freue mich auf euer Feedback!

Danke



Inaktiv
|
ev0lution


Geekboy





Beiträge: 1102
# Antwort: 4 - 27.08.2011 um 02:57 Uhr
mal damit versucht?

$data['articles'][$run]['articles_categorie'] = cs_secure($articles['76,78']);

? aber keine ahnung obs stimmt. so würde ich halt rumtesten


------------------


Inaktiv
|
jasperblank
Thread-Ersteller


Beginner




Beiträge: 17
# Antwort: 5 - 27.08.2011 um 07:03 Uhr
27.08.2011 um 02:57 Uhr - 12die4:
mal damit versucht?

$data['articles'][$run]['articles_categorie'] = cs_secure($articles['76,78']);

? aber keine ahnung obs stimmt. so würde ich halt rumtesten


ja, ne, damit gehts nicht


Inaktiv
|
ichraffsnicht ClanSphere Team

Supporter
Supporter



Herkunft: Erdeborn bei Lutherstadt Eisleben
Beiträge: 3191
# Antwort: 6 - 27.08.2011 um 07:04 Uhr
da haste leider an der falschen stelle gedreht. poste bitte mal die inhalt der navlist ;-) dann sollte es schnell gehen :-)


------------------



Inaktiv
|
jasperblank
Thread-Ersteller


Beginner




Beiträge: 17
# Antwort: 7 - 27.08.2011 um 08:15 Uhr
 
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.
1. / 2. / ... 
<?php
// ClanSphere 2010 - www.clansphere.net
// $Id$

$cs_lang cs_translate('articles');
$cs_get cs_get('catid');
$cs_option cs_sql_option(__FILE__,'articles');
$data = array();

//cut headline after...
$figures 35;

$select 'ar.articles_id AS articles_id, ar.articles_headline AS articles_headline, ar.articles_time AS articles_time,cat.categories_id AS categories_id';
$check 'ar.articles_navlist > \'0\' AND cat.categories_access <= \'' $account['access_articles'] . '\'';
if(!empty(
$cs_get['catid'])) {
  
$check .= ' AND cat.categories_id = ' $cs_get['catid'];
}
$order 'ar.articles_time DESC';
$tables 'articles ar INNER JOIN {pre}_categories cat ON ar.categories_id = cat.categories_id';
$cs_articles cs_sql_select(__FILE__,$tables,$select,$check,'ar.articles_time DESC',0,$cs_option['max_navlist']);

if(empty(
$cs_articles)) {
  echo 
$cs_lang['no_data'];
}
else {
  if(
$cs_option['max_navlist'] == 1)
    
$cs_articles = array(=> $cs_articles);

  
$run 0;
  foreach (
$cs_articles AS $articles) {
    
$data['articles'][$run]['articles_time'] = cs_date('unix',$articles['articles_time'],1,1,0);
    
$short strlen($articles['articles_headline']) <= $figures $articles['articles_headline'] : cs_substr($articles['articles_headline'],0,$figures) . '...';
    
$data['articles'][$run]['articles_url'] = cs_url('articles','view','id=' $articles['articles_id']);
    
$data['articles'][$run]['articles_short'] = cs_secure($short);
    
$data['articles'][$run]['articles_headline'] = cs_secure($articles['articles_headline']);
    
$data['articles'][$run]['articles_categorie'] = cs_secure($articles['categories_id']);
    
$run++;
  }
  echo 
cs_subtemplate(__FILE__,$data,'articles','navlist_cs');
}


danke!


Zuletzt editiert von ichraffsnicht ClanSphere Team am 27.08.2011 um 09:23 Uhr (1x Editiert)
Inaktiv
|
ichraffsnicht ClanSphere Team

Supporter
Supporter



Herkunft: Erdeborn bei Lutherstadt Eisleben
Beiträge: 3191
# Antwort: 8 - 27.08.2011 um 09:50 Uhr
zeile 15-17:

if(!empty($cs_get['catid'])) {
$check .= ' AND cat.categories_id = ' . $cs_get['catid'];
}


ersetzen mit:

if(!empty($cs_get['catid'])) {
$check .= ' AND cat.categories_id = ' . $cs_get['catid'];
} else {
$check .= ' AND cat.categories_id = 5 OR cat.categories_id = 18';
}


und halt die 5 und die 18 durch deine kategorie-ids ersetzen.

und den teil:

OR cat.categories_id = 18


kannst du bieliebig oft duplizieren und deine ids einsetzen ;-)

mfg



------------------



Inaktiv
|
sgraewe ClanSphere Team

Supporter
Supporter




Beiträge: 6116
# Antwort: 9 - 27.08.2011 um 11:51 Uhr
müsste es nicht AND sein statt OR? er will doch beide anzeigen lassen oder hab ich grade nen denkfehler? :O


Inaktiv
|
palle ClanSphere Team

Supporter
Supporter




Beiträge: 3073
# Antwort: 10 - 27.08.2011 um 12:23 Uhr
würde wohl auch && benutzen..also AND in der Abfrage


------------------
I like the part where it says 'nyan'



Zuletzt editiert von palle ClanSphere Team am 27.08.2011 um 12:43 Uhr (1x Editiert)
Inaktiv
|
ichraffsnicht ClanSphere Team

Supporter
Supporter



Herkunft: Erdeborn bei Lutherstadt Eisleben
Beiträge: 3191
# Antwort: 11 - 27.08.2011 um 13:18 Uhr
wir legen hier fest, welche eigenschaften ein artikel haben muss um ausgewählt zu werden. ein artikel kann aber kaum 2 kategorien zugleich haben.

Sprich ein artikel wird ausgewählt, wenn er der kategorie X ODER der kategorie Y zugeordnet ist.

Ein artikel kann aber nicht Kategorie X und Kategorie Y zugeordnet sein.

OR ist in dem fall richtig.


------------------



Inaktiv
|
palle ClanSphere Team

Supporter
Supporter




Beiträge: 3073
# Antwort: 12 - 27.08.2011 um 13:48 Uhr
Dann ist aber...
Zwei Kategorien in einem Platzhalter

..nicht gerade Aussage kräftig


------------------
I like the part where it says 'nyan'



Inaktiv
|
sgraewe ClanSphere Team

Supporter
Supporter




Beiträge: 6116
# Antwort: 13 - 27.08.2011 um 14:25 Uhr
ich hab das so verstanden das er kat a UND b in navlist1 angezeigt bekommen möchte und kat c UND d dann in navlist2 usw.


Inaktiv
|
ichraffsnicht ClanSphere Team

Supporter
Supporter



Herkunft: Erdeborn bei Lutherstadt Eisleben
Beiträge: 3191
# Antwort: 14 - 27.08.2011 um 18:08 Uhr
@ equal, dann hast du das schon richtig verstanden. nur so eine abfrage funktioniert anders.

wenn du hier sagst UND muss jedes element beide kategorien haben.

beispiel socken:

du sagst den verkäufer du willst schwarze oder weiße socken, dann bringt er die alle schwarzen und alle weißen socken.
sagst du ihn aber, das du socken willst, die das kriterium "schwarz" und das kriterium "weiß" erfüllen, kann er dir nur die "schwarz/weißen" bringen, da nur diese beide kriterien erfüllen.

es gibt aber eben pro artikel nur ein kategorie-Kriterium. dadurch kann kein artikel 2 kategorie- kriterien zugleich erfüllen.

ist vielleicht nicht das beste beispiel, aber ich denke es verdeutlicht das.

mfg


------------------



Inaktiv
|
sgraewe ClanSphere Team

Supporter
Supporter




Beiträge: 6116
# Antwort: 15 - 27.08.2011 um 18:37 Uhr
aso ke :O


Inaktiv
|
jasperblank
Thread-Ersteller


Beginner




Beiträge: 17
# Antwort: 16 - 28.08.2011 um 07:43 Uhr
27.08.2011 um 09:50 Uhr - ichraffsnicht:
zeile 15-17:

if(!empty($cs_get['catid'])) {
$check .= ' AND cat.categories_id = ' . $cs_get['catid'];
}


ersetzen mit:

if(!empty($cs_get['catid'])) {
$check .= ' AND cat.categories_id = ' . $cs_get['catid'];
} else {
$check .= ' AND cat.categories_id = 5 OR cat.categories_id = 18';
}


und halt die 5 und die 18 durch deine kategorie-ids ersetzen.

und den teil:

OR cat.categories_id = 18


kannst du bieliebig oft duplizieren und deine ids einsetzen ;-)

mfg



Danke schön!
Funktioniert wunderbar!


Inaktiv
|
ichraffsnicht ClanSphere Team

Supporter
Supporter



Herkunft: Erdeborn bei Lutherstadt Eisleben
Beiträge: 3191
# Antwort: 17 - 28.08.2011 um 10:54 Uhr
gerne doch^^


------------------



Inaktiv
|
Antworten: 17
Seite [1]


Sie müssen sich registrieren, um zu antworten.