Hallo zusammen,
ist das moeglich ?
komme irgendwie nicht auf eine gescheite Loesung.
Ich habe
0 -> Hauptbereich
1 -> Links
2 -> Rechts
Ich lese in einem Modul alle Artikel einer Kategorie aus und haette gerne den 1. Slice des linken Contents
Ich will also nicht den ganzen ctype Bereich des Artikels ausgeben, das ist klar wie es geht, ich will lediglich nur den Wert des ersten Slice haben.
Any ideas ?
Danke und Gruss,
Andreas
Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Auf diesen Weg bin ich nach dem lesen deiner Frage gekommen.
PS: Ist das setzen von getSlice irgendwo dokumentiert? Wenn nicht, sollte es IHMO irgendwie einen anderen Weg geben.
Code: Alles auswählen
$catID = ***ID DER CATEGROIE DES LINKEN BEREICHS***;
$artID = OOArticle::getCategoryStartArticle($catID)->getID();
$sliceID = OOArticleSlice::getFirstSliceForArticle($artID)->getID();
$art = new article();
$art->getSlice = $sliceID;
$art->setArticleID($artID);
echo $art->getArticle();
-
- Beiträge: 1711
- Registriert: 24. Nov 2005, 22:29
- Kontaktdaten: ICQ Website Yahoo Messenger
Willst Du den cTypes jeweiligen Artikel auslesen, oder den eines anderen Artikel?
Im Grunde kannst du auch das Modul Artikel einbinden verwenden, Du mußt nur
in
bzw
abändern... (ungetestet!)
Du müßtest halt nur für jeden Ctype ein eigenes Modul erstellen, oder das Modul so umbaue, daß es in einem funktioniert.
mfg
Flo
PS: Das CheatSheet von Thomas ist schon was feines
Im Grunde kannst du auch das Modul Artikel einbinden verwenden, Du mußt nur
Code: Alles auswählen
$article = new article(REX_LINK_ID[1]);
echo $article->getArticle();
Code: Alles auswählen
$article = new article(REX_LINK_ID[1]);
$article->setCType(1); //für linken bereich
$article->getFirstSlice();
echo $article->getArticle();
Code: Alles auswählen
$article = new article(REX_LINK_ID[1]);
$article->setCType(2); //für rechten bereich
$article->getFirstSlice();
echo $article->getArticle();
Du müßtest halt nur für jeden Ctype ein eigenes Modul erstellen, oder das Modul so umbaue, daß es in einem funktioniert.
mfg
Flo
PS: Das CheatSheet von Thomas ist schon was feines
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
Hi zusammen,
Hier gehts zum CheatSheet download:
http://www.redaxo.de/220-0-download.html
Gruß,
Markus
Zur vervollständigung..Dr KillerJoe hat geschrieben:PS: Das CheatSheet von Thomas ist schon was feines
Hier gehts zum CheatSheet download:
http://www.redaxo.de/220-0-download.html
Gruß,
Markus
-
- Beiträge: 1711
- Registriert: 24. Nov 2005, 22:29
- Kontaktdaten: ICQ Website Yahoo Messenger
Im CeatSheet ist z.B. das setCType garnicht vermerkt
$article = new article($referenceArticle->_id);
$article->setCType(1); //für rechten bereich
$article->getFirstSlice();
echo $article->getArticle();
führt aber zu:
Fatal error: Call to undefined method article::getFirstSlice()
Setze Redaxo 3_2 ein.
$article = new article($referenceArticle->_id);
$article->setCType(1); //für rechten bereich
$article->getFirstSlice();
echo $article->getArticle();
führt aber zu:
Fatal error: Call to undefined method article::getFirstSlice()
Setze Redaxo 3_2 ein.
Ich hab mir die Slice Funktionen nochmal angeschaut und leider keine bessere Alternative gefunden als mir selber was zu bauen
Hier mein Loesungsweg:
Wie man sieht habe ich eine neue Funktion in class.ooarticleslice.inc.php eingebaut aehnlich der getFirstSliceForArticle:
Wenn jemand noch einen Redaxo konformen Weg weiss, bin ich natuerlich dafuer offen, falls es nicht geht, kann bei gefallen ja auch obige Funktion verwendet werden.
Gruss,
Andreas
Hier mein Loesungsweg:
Code: Alles auswählen
$slice = OOArticleSlice::getFirstSliceForArticleWithCType($referenceArticle->_id, 1);
$val = $slice->getValue("1");
echo $val;
Code: Alles auswählen
/*
* CLASS Function:
* Return the first slice for an article with special CType.
* This can then be used to iterate over all the
* slices in the order as they appear using the
* getNextSlice() function.
* Returns an OOArticleSlice object
*/
function getFirstSliceForArticleWithCType($an_article_id, $an_article_ctype=NULL) {
global $REX;
$table = '';
$table = $REX['TABLE_PREFIX']."article_slice";
$sql = new sql;
// nanko
if($an_article_ctype != NULL) {
$ctype_query = ' AND ctype = '.$an_article_ctype;
}
$query = <<<EOD
SELECT
id,re_article_slice_id,value1,value2,value3,value4,value5,value6,
value7,value8,value9,value10,file1,file2,file3,file4,file5,file6,
file7,file8,file9,file10,link1,link2,link3,link4,link5,link6,link7,
link8,link9,link10,php,html,article_id,modultyp_id
FROM $table
WHERE article_id = $an_article_id $ctype_query GROUP BY article_id ORDER BY re_article_slice_id
EOD;
$sql->setQuery($query);
if ($sql->getRows() == 1) {
return new OOArticleSlice(
$sql->getValue("id"),$sql->getValue("re_article_slice_id"),$sql->getValue("value1"),
$sql->getValue("value2"),$sql->getValue("value3"),$sql->getValue("value4"),
$sql->getValue("value5"),$sql->getValue("value6"),$sql->getValue("value7"),
$sql->getValue("value8"),$sql->getValue("value9"),$sql->getValue("value10"),
$sql->getValue("file1"),$sql->getValue("file2"),$sql->getValue("file3"),
$sql->getValue("file4"),$sql->getValue("file5"),$sql->getValue("file6"),
$sql->getValue("file7"),$sql->getValue("file8"),$sql->getValue("file9"),
$sql->getValue("file10"),$sql->getValue("link1"),$sql->getValue("link2"),
$sql->getValue("link3"),$sql->getValue("link4"),$sql->getValue("link5"),
$sql->getValue("link6"),$sql->getValue("link7"),$sql->getValue("link8"),
$sql->getValue("link9"),$sql->getValue("link10"),$sql->getValue("php"),
$sql->getValue("html"),$sql->getValue("article_id"),$sql->getValue("modultyp_id")
);
}
return null;
}
Gruss,
Andreas
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
Hi Andreas,
mir ist hier leider auch kein anderer Weg bekannt, allerdings weiss ich, dass deine Methode so wie sie hier steht, nicht immer zum Ziel führt.
Wenn du mehrere Slices einfügst und anschließend, den 1. Slice in dem jeweiligen Ctype nach unten verschiebst, wird dieser Query dir das falsche ergebnis liefern..
Dieses Problem ist aufgrund der DB Struktur so einfach nicht lösbar.. Sonst hätten wir da schon was im Kern drinne :O
Gruß,
Markus
mir ist hier leider auch kein anderer Weg bekannt, allerdings weiss ich, dass deine Methode so wie sie hier steht, nicht immer zum Ziel führt.
Wenn du mehrere Slices einfügst und anschließend, den 1. Slice in dem jeweiligen Ctype nach unten verschiebst, wird dieser Query dir das falsche ergebnis liefern..
Dieses Problem ist aufgrund der DB Struktur so einfach nicht lösbar.. Sonst hätten wir da schon was im Kern drinne :O
Gruß,
Markus
Hi Markus,
danke fuer den Hinweis,
in meinem Fall wird es immer zum richtigen Ergebniss fuehren
Aber du hast natürlich recht, das es nicht immer der 1. Slice ist wenn es mehrere sind.
Aber fuer meine Zwecke reicht das erstmal so, sofern mir noch was besseres einfaellt werde ich es mitteilen.
Gruss,
Andreas
danke fuer den Hinweis,
in meinem Fall wird es immer zum richtigen Ergebniss fuehren
Aber du hast natürlich recht, das es nicht immer der 1. Slice ist wenn es mehrere sind.
Aber fuer meine Zwecke reicht das erstmal so, sofern mir noch was besseres einfaellt werde ich es mitteilen.
Gruss,
Andreas
Re: Erste Slice eines ctypes eines anderen Artikel auslesen
Für alle, die diesen Artikel über die Suchmaschine finden und vor selbigem Problem stehen:
Seit Rex 4.2 ist es möglich, bestimmte cTypes bestimmter Artikel auch so einzubinden:
REX_ARTICLE[id=1 ctype=2]
Hier mehr dazu:
http://www.redaxo.org/de/doku/version-4 ... einbinden/
Gruß Matthias
Seit Rex 4.2 ist es möglich, bestimmte cTypes bestimmter Artikel auch so einzubinden:
REX_ARTICLE[id=1 ctype=2]
Hier mehr dazu:
http://www.redaxo.org/de/doku/version-4 ... einbinden/
Gruß Matthias