Hallo zusammen,
kann mir jemand sagen, wo die Slice-Reihenfolge abgespeichert wird, so dass die Ausgabe der einzelnen Slices richtig nacheinander erfolgt?
Ich will nämlich die Slices einer bestimmten Seite auf einer anderen Seite ausgeben. Die SQL-Abfrage und alles ist kein Problem, nur wo die Reihenfolge ausgelesen wird, ist mir unklar. Ein Feld dafür scheint es nämlich nicht zu geben ...
Danke im voraus,
Peter.
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/
- Peter.Bickel
- Beiträge: 1856
- Registriert: 25. Jan 2005, 21:17
- Wohnort: Schleswig-Holstein
- Kontaktdaten: Website
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Hej,
ich vermute folgendes:
Jeder Artikel hat eine bestimmte ID. In einem Artikel werden mehere Slice per Module eingebunden. In der Tabelle "rex_article_slice" wird jedem Slice eine "re_article_slice_id" zugewiesen. In dieser Tabelle findest du auch eine Spalte "article_id". So wird die entsprechende Artikel ID gesucht und alle Slices mit dieser gleichen Artikel ID werden von der kleinsten angefangenen "re_article_slice_id" bis zur größten ausgeben.
Also müsstest alle du nach allen Slices mit der entsprechenden einen Artikel ID suchen und die re_article_slice ASC sortieren lassen.
lg Thomas
ich vermute folgendes:
Jeder Artikel hat eine bestimmte ID. In einem Artikel werden mehere Slice per Module eingebunden. In der Tabelle "rex_article_slice" wird jedem Slice eine "re_article_slice_id" zugewiesen. In dieser Tabelle findest du auch eine Spalte "article_id". So wird die entsprechende Artikel ID gesucht und alle Slices mit dieser gleichen Artikel ID werden von der kleinsten angefangenen "re_article_slice_id" bis zur größten ausgeben.
Also müsstest alle du nach allen Slices mit der entsprechenden einen Artikel ID suchen und die re_article_slice ASC sortieren lassen.
lg Thomas
- Peter.Bickel
- Beiträge: 1856
- Registriert: 25. Jan 2005, 21:17
- Wohnort: Schleswig-Holstein
- Kontaktdaten: Website
Hallo Thomas,
genauso hatte ich mir das auch zusammengereimt.
Bloß stimmt die Reihenfolge der Werte in dem Feld "re_article_slice_id" nicht mit der tatsächlichen Slice-Reihenfolge auf der Seite überein.
Ich habe auf meiner Testseite derzeit vier Slices (vom selben Modul-Typ), die ich hier mal entsprechend der angezeigten reihenfolge a, b, c und d nenne. Die re_article_slice_id-Werte sind:
a: 0
b: 30
c: 27
d: 28
Würde ich also nach "re_article_slice:id" sortieren, dann hätte ich die (falsche) Reihenfolge: a, c, d, b.
Es muss also noch irgendwo anders eine Sortierreihenfolge der Slices geben. Aber wo? Liebes Redaxo-Programmiererteam - könnt Ihr rasch mit einer Auskunft helfen?
Danke,
Peter.
genauso hatte ich mir das auch zusammengereimt.
Bloß stimmt die Reihenfolge der Werte in dem Feld "re_article_slice_id" nicht mit der tatsächlichen Slice-Reihenfolge auf der Seite überein.
Ich habe auf meiner Testseite derzeit vier Slices (vom selben Modul-Typ), die ich hier mal entsprechend der angezeigten reihenfolge a, b, c und d nenne. Die re_article_slice_id-Werte sind:
a: 0
b: 30
c: 27
d: 28
Würde ich also nach "re_article_slice:id" sortieren, dann hätte ich die (falsche) Reihenfolge: a, c, d, b.
Es muss also noch irgendwo anders eine Sortierreihenfolge der Slices geben. Aber wo? Liebes Redaxo-Programmiererteam - könnt Ihr rasch mit einer Auskunft helfen?
Danke,
Peter.
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
HI,
also fogelndes:
siehe OOArticleSlice
heisst also:
Der 1. Slice ist immer der mit der re_article_slice_id = 0.
Der 2. Slice ist immer der mit der re_article_slice_id = re_article_slice_id-des-1.slices
Der 3. Slice ist immer der mit der re_article_slice_id = re_article_slice_id-des-2.slices
Ist sozusagen eine Verkettet-Liste
Am besten einfach mit
probieren
Gruß,
Markus
also fogelndes:
siehe OOArticleSlice
Code: Alles auswählen
/*
* CLASS Function:
* Return all slices for an article that have a certain
* module type.
* Returns an array of OOArticleSlice objects
*/
function getSlicesForArticleOfType($an_article_id, $a_type_id) {
$sql = new sql;
$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 rex_article_slice
WHERE article_id = $an_article_id AND modultyp_id = $a_type_id
EOD;
$sql->setQuery($query);
$slices = array();
for ($i = 0; $i < $sql->getRows(); $i++) {
$slices[] = 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")
);
$sql->next();
}
return $slices;
}
/*
* Object Function:
* Return the next slice for this article
* Returns an OOArticleSlice object.
*/
function getNextSlice() {
$sql = new sql;
$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 rex_article_slice
WHERE re_article_slice_id = {$this->_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;
}
Der 1. Slice ist immer der mit der re_article_slice_id = 0.
Der 2. Slice ist immer der mit der re_article_slice_id = re_article_slice_id-des-1.slices
Der 3. Slice ist immer der mit der re_article_slice_id = re_article_slice_id-des-2.slices
Ist sozusagen eine Verkettet-Liste
Am besten einfach mit
Code: Alles auswählen
$1stSlice = OOArticleSlice::getFirstSliceForArticle( $ArticleId);
$2ndSlice = $1stSlice->getNextSlice();
$3rdSlice = $2ndSlice->getNextSlice();
.
.
Gruß,
Markus
- Peter.Bickel
- Beiträge: 1856
- Registriert: 25. Jan 2005, 21:17
- Wohnort: Schleswig-Holstein
- Kontaktdaten: Website
Hallo Markus,
vielen Dank.
Tut mir leid, aber das ist so hoch für mich, dass ich da bislang noch gescheitert bin.
Wenn ich das richtig verstanden habe, müsste ich nur Dein letztes Codebeispiel verwenden und die Artikel-ID der Seite einsetzen, von der die Slices übernommen werden sollen, oder? Also:
Dann gibt's aber die Fehlermeldung:
Parse error: parse error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' ...
Könntest Du bitte nochmal kurz Hilfestellung geben?
Vielen Dank im voraus,
Peter
vielen Dank.
Tut mir leid, aber das ist so hoch für mich, dass ich da bislang noch gescheitert bin.
Wenn ich das richtig verstanden habe, müsste ich nur Dein letztes Codebeispiel verwenden und die Artikel-ID der Seite einsetzen, von der die Slices übernommen werden sollen, oder? Also:
Code: Alles auswählen
$1stSlice = OOArticleSlice::getFirstSliceForArticle(2);
$2ndSlice = $1stSlice->getNextSlice();
$3rdSlice = $2ndSlice->getNextSlice();
Parse error: parse error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' ...
Könntest Du bitte nochmal kurz Hilfestellung geben?
Vielen Dank im voraus,
Peter
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
Hi,pbickel hat geschrieben:Hallo Markus,
vielen Dank.
Tut mir leid, aber das ist so hoch für mich, dass ich da bislang noch gescheitert bin.
Wenn ich das richtig verstanden habe, müsste ich nur Dein letztes Codebeispiel verwenden und die Artikel-ID der Seite einsetzen, von der die Slices übernommen werden sollen, oder? Also:
Dann gibt's aber die Fehlermeldung:Code: Alles auswählen
$1stSlice = OOArticleSlice::getFirstSliceForArticle(2); $2ndSlice = $1stSlice->getNextSlice(); $3rdSlice = $2ndSlice->getNextSlice();
Parse error: parse error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' ...
Könntest Du bitte nochmal kurz Hilfestellung geben?
Vielen Dank im voraus,
Peter
jo war ein schlechtes Beispiel von mir
Variablen dürfen nicht mit Zahlen beginnen,...
Code: Alles auswählen
$Slice1 = OOArticleSlice::getFirstSliceForArticle(2);
$Slice2 = $Slice1->getNextSlice();
$Slice3 = $Slice2->getNextSlice();
So besser?
Gruß,
Markus
- Peter.Bickel
- Beiträge: 1856
- Registriert: 25. Jan 2005, 21:17
- Wohnort: Schleswig-Holstein
- Kontaktdaten: Website
Hi Markus,
ich steh wohl immer noch aufm Schlauch ...
Also, wenn die Seite, von der die Slices übernommern werden sollen, die ID 2 hat, dann muss ich doch nur folgenden Code irgendwo auf meiner Seite einfügen:
Richtig?
Dann erscheint bei mir für jede echo-Ausgabe "Object".
Noch ne Idee?
Danke,
Peter.
ich steh wohl immer noch aufm Schlauch ...
Also, wenn die Seite, von der die Slices übernommern werden sollen, die ID 2 hat, dann muss ich doch nur folgenden Code irgendwo auf meiner Seite einfügen:
Code: Alles auswählen
<?
$Slice1 = OOArticleSlice::getFirstSliceForArticle(2);
echo $Slice1;
$Slice2 = $Slice1->getNextSlice();
echo $Slice2;
$Slice3 = $Slice2->getNextSlice();
echo Slice3;
?>
Dann erscheint bei mir für jede echo-Ausgabe "Object".
Noch ne Idee?
Danke,
Peter.
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
Hi Peter,
Du erhälst hier ein ArticleSlice-Objekt.
Diese Objekte liefern dir nun folgende Methoden:
Du musst dir jetzt die entsprechende die für Dich passen bzw die Du brauchst raussuchen und verwenden...
Beispiele:
oder
.
.
.
Gruß,
Markus
Du erhälst hier ein ArticleSlice-Objekt.
Diese Objekte liefern dir nun folgende Methoden:
Code: Alles auswählen
function getId() {
return $this->_id;
}
function getValue($index) {
return $this->_value[$index];
}
function getLink($index) {
return $this->_link[$index];
}
function getLinkUrl($index) {
return $REX['WWW_PATH']."index.php?article_id=".$this->getLink($index);
}
function getFile($index) {
return $this->_file[$index];
}
function getFileUrl($index) {
return $REX['MEDIAFOLDER']."/".$this->getFile($index);
}
function getHtml() {
return $this->_html;
}
function getPhp() {
return $this->_php;
}
Beispiele:
Code: Alles auswählen
$Slice1 = OOArticleSlice::getFirstSliceForArticle(2);
echo $Slice1->getHtml();
Code: Alles auswählen
$Slice1 = OOArticleSlice::getFirstSliceForArticle(2);
echo $Slice1->getLink();
.
.
Gruß,
Markus
- Peter.Bickel
- Beiträge: 1856
- Registriert: 25. Jan 2005, 21:17
- Wohnort: Schleswig-Holstein
- Kontaktdaten: Website
Super, das war noch der letzte Schritt, der mir zur Fertigstellung fehlte.
Jetzt ist die Website dank Deiner Hilfe online:
http://forum.redaxo.de/viewtopic.php?t=414
Danke, Markus.
Peter.
Jetzt ist die Website dank Deiner Hilfe online:
http://forum.redaxo.de/viewtopic.php?t=414
Danke, Markus.
Peter.
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
Hehe, kein Problempbickel hat geschrieben:Super, das war noch der letzte Schritt, der mir zur Fertigstellung fehlte.
Jetzt ist die Website dank Deiner Hilfe online:
http://forum.redaxo.de/viewtopic.php?t=414
Danke, Markus.
Peter.
Wo genau hast du diese Information verwendet?
Gruß,
Markus
- Peter.Bickel
- Beiträge: 1856
- Registriert: 25. Jan 2005, 21:17
- Wohnort: Schleswig-Holstein
- Kontaktdaten: Website
Auf der Startseite. Für diesen Infokasten. Die enthaltenen Meldungen liegen auf einer eigenen Seite, die derzeit nicht im Site-Menü enthalten ist.
Der Grund für diesen Umweg war der, dass später einmal diese Meldungsseite vielleicht auch noch sichtbar sein soll und diese längere Meldungen enthalten könnte, während auf der Startseite nur die Kurzfassung gezeigt wird.
Man hätte das sicher auch lösen können, indem man für jede Meldung eine eigene Seite (Artikel) anlegt, aber das war denen vom Handling etwas zu umständlich.
Peter.
Der Grund für diesen Umweg war der, dass später einmal diese Meldungsseite vielleicht auch noch sichtbar sein soll und diese längere Meldungen enthalten könnte, während auf der Startseite nur die Kurzfassung gezeigt wird.
Man hätte das sicher auch lösen können, indem man für jede Meldung eine eigene Seite (Artikel) anlegt, aber das war denen vom Handling etwas zu umständlich.
Peter.
Zuletzt geändert von Peter.Bickel am 2. Mai 2005, 17:26, insgesamt 2-mal geändert.
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Ich denke das ganze geht auch einfacher.
Siehe mal unter www.mahlis.de (in Arbeit).
Dort wird in der rechten Spalte ebenfalls etwas "angerissen" und auf einer anderen Seite dann vollständig angezeigt.
Das ganze ist OHNE OOFramework passiert.
lg Thomas
Siehe mal unter www.mahlis.de (in Arbeit).
Dort wird in der rechten Spalte ebenfalls etwas "angerissen" und auf einer anderen Seite dann vollständig angezeigt.
Das ganze ist OHNE OOFramework passiert.
lg Thomas