Hallo zusammen,
ich möchte in meinem Modul die Kategorie-ID eines Artikels erhalten, wie klappt das? Mittels der Klasse cArticleCollector erhalte ich meine Artikel vom Typ cApiArticleLanguage. Darin gibt es aber keine Methode um die Kategorie-ID auszulesen. Kann mir hier jemand weiterhelfen?
Vielen Dank & beste Grüße
Tobi
CategoryID eines Articles erhalten
Re: CategoryID eines Articles erhalten
ich habe noch nicht so ganz verstanden, welchen Weg du bisher eingeschlagen hast, woher du welche Ausgangswerte (z.B. idart oder idartlang) hast... angenommen, die Artikel wurden über cApiArticleLanguage ermittelt, dann kannst du dort jeweils die idart ausgeben lassen. Über cApiCategoryArticleCollection und getCategoryIdsByArticleId($idart) könnte dann u.U. die idcat ermittelbar sein. Ist aber möglicherweise etwas umständlich - so tief bin ich in der Api nicht drin.
Re: CategoryID eines Articles erhalten
Wenn Du die idart hast, kannst Du über die DB-Tabelle con_cat_art die idcatart und idcat auslesen.
Code: Alles auswählen
$query = "SELECT idcat FROM con_cat_art WHERE idart='$idart'";
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.
Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)
Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.
Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)
Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
-
- Beiträge: 4251
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: CategoryID eines Articles erhalten
Servus,
in CONTENDIO 4.9 ist es inzwischen recht einfach die Kategorie-Id zu ermitteln. Man sollte dazu nicht direkt auf die DB zugreifen (sorry Markus ), sondern die neue cRegistry-Klasse nutzen.
Dies liefert die Kategorie-Id für den aktuell genutzten Artikel.
Gruß aus Franken
Ortwin
in CONTENDIO 4.9 ist es inzwischen recht einfach die Kategorie-Id zu ermitteln. Man sollte dazu nicht direkt auf die DB zugreifen (sorry Markus ), sondern die neue cRegistry-Klasse nutzen.
Code: Alles auswählen
$iIdCat = cRegistry::getCategoryId();
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: CategoryID eines Articles erhalten
Hallo Ortwin,
kannst du mal ein Anwendungsbeispiel machen? Ich habe das so verstanden, dass z.B. ein Array mit 10 beliebigen idart oder idartlang vorliegt (wie z.B. ein einer Artikelliste), und zu jeder idart die zugehörige idcat ermittelt werden soll. Wie geht das dann mit cRegistry? Ich denke nicht, dass impresso die idcat des AKTUELL aufgerufenen Artikels ermitteln wollte...
kannst du mal ein Anwendungsbeispiel machen? Ich habe das so verstanden, dass z.B. ein Array mit 10 beliebigen idart oder idartlang vorliegt (wie z.B. ein einer Artikelliste), und zu jeder idart die zugehörige idcat ermittelt werden soll. Wie geht das dann mit cRegistry? Ich denke nicht, dass impresso die idcat des AKTUELL aufgerufenen Artikels ermitteln wollte...
-
- Beiträge: 4251
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: CategoryID eines Articles erhalten
Hallo homtata,
sollte nicht die aktuelle IdCat gemeint sein geht das natürlich nicht. Hier sollte dann die Klasse cApiCategoryArticleCollection() und deren Methode getCategoryIdsByArticleId($idart) helfen. Dieser übergibt man die IdArt und erhält ein Array möglicher IdCats. Normalerweise sollte dieses Array nur einen Eintrag enthalten, den Eintrag der IdCat des Artikels. Bei mehreren Einträgen müsste man dann nochmals über die IdLang (Sprache) unterscheiden bzw. prüfen.
Auch bei mehreren Mandanten müsste man die Abfrage anders machen, da in der Tabelle con_cat_art weder nach Sprachen noch nach Mandant unterschieden wird.
Beispiel:
Hier ist IdCat 0 oder gleich der gefundenen einzige IdCat.
Das gleiche Ergebnis (Array von IdCats) liefert auch die Core-Funktion conGetCategoryAssignments($idart, $db = NULL) in der Datei contenido/includes/functions.con.php. Hier gilt aber die gleiche Einschränkung bezüglich Mandant und Sprachen.
Gruß aus Franken
Ortwin
sollte nicht die aktuelle IdCat gemeint sein geht das natürlich nicht. Hier sollte dann die Klasse cApiCategoryArticleCollection() und deren Methode getCategoryIdsByArticleId($idart) helfen. Dieser übergibt man die IdArt und erhält ein Array möglicher IdCats. Normalerweise sollte dieses Array nur einen Eintrag enthalten, den Eintrag der IdCat des Artikels. Bei mehreren Einträgen müsste man dann nochmals über die IdLang (Sprache) unterscheiden bzw. prüfen.
Auch bei mehreren Mandanten müsste man die Abfrage anders machen, da in der Tabelle con_cat_art weder nach Sprachen noch nach Mandant unterschieden wird.
Beispiel:
Code: Alles auswählen
$iIdCat = 0;
$oCatArtColl = new cApiCategoryArticleCollection();
$aIdCats = $oCatArtColl->getCategoryIdsByArticleId($iIdArt);
if(count($aIdCats) == 1) {
$iIdCat = $aIdCats[0];
}
Das gleiche Ergebnis (Array von IdCats) liefert auch die Core-Funktion conGetCategoryAssignments($idart, $db = NULL) in der Datei contenido/includes/functions.con.php. Hier gilt aber die gleiche Einschränkung bezüglich Mandant und Sprachen.
Gruß aus Franken
Ortwin
Zuletzt geändert von Oldperl am Mi 11. Feb 2015, 12:55, insgesamt 1-mal geändert.
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: CategoryID eines Articles erhalten
Hey, sorry für die dürftige Info von mir.
Ich benötige die Kategorie-ID des jeweiligen Artikels. Der liegt aber nicht in der aktuellen Kategorie wo das Modul aufgerufen wird. Daher ist der letzte Beitrag sehr hilfreich.
Vielen Dank für die schnelle Community-Hilfe!
Gruß Tobi
Ich benötige die Kategorie-ID des jeweiligen Artikels. Der liegt aber nicht in der aktuellen Kategorie wo das Modul aufgerufen wird. Daher ist der letzte Beitrag sehr hilfreich.
Vielen Dank für die schnelle Community-Hilfe!
Gruß Tobi