Feld "Author" in _local_header abfragen?

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Feld "Author" in _local_header abfragen?

Beitrag von dutch »

Hi zusammen,

ich würde gern eine Rubrik im _local_header includen in Abhängigkeit vom im Artikel angegebenen "Author".
Kann ich dieses Feld irgendwie abfragen, so wie z.B. den Rubriktitel?? :roll:

Gruß,
dutch
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Dein Problem ist erst mal "im Artikel".

Eine Rubrik hat ja viele Artikel und somit auch viele Autoren.

Nur im Falle eines Artikels mit einem Autor wäre das realisierbar.
mod_pages gibt in $authors_string den Autor zur Verwendung in den Header-Dateien aus.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Hallo Markus,

ich bräuchte die Ausgabe nur auf der Detailseite, dann gäbe es ja nur einen Autor.
Aber wenn ich richtig verstehe, geht das nur mit mod_pages?

Gruß,
ducth
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Nein, in mod_pages ist es eben nur schon ready to use.

Stattdessen kannst Du auf der Detailseite ja anhand von $_REQUEST['nr'] (=Artikelnummer) mit einer simplen Abfrage den Autor des Artikels ermitteln.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Uh! - Das klingt zwar logisch, aber ich fürchte da mangelt es mir mal wieder an der nötigen PHP Kenntnis.

Wie müsste denn sowas genau aussehen? :oops:

Gruß,
dutch
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Code: Alles auswählen

$getAutor = new DB;
$getAutor->query("SELECT autor FROM cpo4_news WHERE nr = ".(int)$_REQUEST['nr']);
$getAutor->next_record();
$articleAutor = $getAutor->v('autor');
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Hallo Markus,

Vielen Dank!
Ich werde es ausprobieren.

Gruß,
dutch
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Habe es gerade eingebaut und getestet und an sich funktioniert es auch.
Über die If-Anweisung kann ich Autoren-abhängig etwas ausgeben.

Code: Alles auswählen

$getAutor = new DB;
$getAutor->query("SELECT autor FROM cpo4_news WHERE nr = ".(int)$_REQUEST['nr']);
$getAutor->next_record();
$articleAutor = $getAutor->v('autor'); 
if ($articleAutor == 'Administrator'){
  ### Ausgabe ###
}
Was ich jetzt aber noch gerne hinbekommen würde, wäre die Ausgabe eines bestimmten Artikels einer anderen Rubrik in der If-Anweisung.
Ich habe schon versucht, die Rubrik einfach einzubinden innerhalb der If-Anweisung, auf die Art und Weise, die du (Markus) es einmal vorgestellt hattest, aber das funzt hier wohl nicht... :?

Code: Alles auswählen

$getAutor = new DB;
$getAutor->query("SELECT autor FROM cpo4_news WHERE nr = ".(int)$_REQUEST['nr']);
$getAutor->next_record();
$articleAutor = $getAutor->v('autor'); 
if ($articleAutor == 'Administrator'){
   $rubrikid = 2; //  Rubrik-id
   $artikelanzahl = 1; // maximale Anzahl der auszugebenden Artikel
   $sortierung = 'sort_id DESC'; // Art der Artikelsortierung
												
											
					// ab hier nix mehr ändern
					if (!defined('CPO')) exit;
													
					$query = "SELECT rubric_id, commentary, verfallsdatum, templates_id, nr, idx, email, autor, pub_datum, titel, initial, freigabe, changer FROM " . CPO_NEWS . " WHERE " . ( $cpoSystem['release'] ? "artikel_archiv<2 AND freigabe=" . STATE_RELEASED : "artikel_archiv<1 AND freigabe!=" . STATE_BLOCKED ) . " AND pub_datum<='" . date('Y-m-d H:i:s', time()) . "' AND verfallsdatum>='".date('Y-m-d H:i:s', time())."' AND rubric_id='".$rubrikid."' ORDER BY ".$sortierung." LIMIT 0," . $artikelanzahl . " ";
					$db = new DB;
					$db->query($query);
													
					while($db->next_record()) {
													
					$db_template      = $db->v('templates_id');
					$db_nr            = $db->v('nr');
					$db_idx           = $db->v('idx');
					$db_email         = $db->v('email');
					$db_autor         = $db->v('autor');
					$db_changer       = $db->v('changer');
					$db_pub_datum     = $db->v('pub_datum');
					$db_verfallsdatum = $db->v('verfallsdatum');
					$db_commentary    = $db->v('commentary');
					$db_titel         = $db->v('titel');
					$db_initial       = $db->v('initial');
					$db_freigabe      = $db->v('freigabe');
					$db_rubric_id     = $db->v('rubric_id');
					require(CPO_BASEDIR.'_include/select_template.php');
									
					}
}
Ich denke vermutlich mal wieder zu simpel :oops:

Gruß,
dutch
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Funktioniert wahrscheinlich doch!

Habe eben noch einen Fehler im Template behoben.
Ich melde mich wieder, sobald ich ausführlicher getestet habe.

Gruß,
dutch
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Wenn Du CPO 4.1.x benutzt könntest Du auch dessen Funktionen benutzen:

Code: Alles auswählen

// function getArticles($rubricId, $pagetype = 'index', $pos = 0, $cpoRubricOverride = array())
$individualContent = getArticles(2, 'index', 0, array('sorting'=>'sort_id DESC', 'noOfArticles'=>1));
echo $individualContent;
Nicht getestet!
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Sieht auch gut aus!
Werde ich ebenfalls testen.

Danke!

Gruß,
dutch
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Die zweite Lösung funktioniert ebenfalls prima und ist natürlich noch besser, da wesentlich eleganter/schlanker.

Vielen Dank!

Gruß,
dutch
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Anzahl der Artikel beschränken?

Beitrag von dutch »

Habe doch noch eine Frage zu dieser Funktion.

Code: Alles auswählen

// function getArticles($rubricId, $pagetype = 'index', $pos = 0, $cpoRubricOverride = array())
$individualContent = getArticles(2, 'index', 0, array('sorting'=>'sort_id DESC', 'noOfArticles'=>1));
echo $individualContent;
Ich habe gemerkt, dass die Funktion zwar die Artikel ab der angegebenen Position ($pos) ausgibt aber nicht nur einen Artikel, sondern alle folgenden...
Ich dachte, dass die Angabe 'noOfArticles'=>1 für die Ausgabe nur eines Artikels sorgen würde, aber leider wird das irgendiwe ignoriert.

Habe ich da noch was vergessen?

Gruß,
dutch
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Probiere mal

Code: Alles auswählen

$cpoRubricOverride = array();
$cpoRubricOverride['settings']['noOfArticles'] = 1;
$cpoRubricOverride['settings']['sorting'] = 'sort_id DESC';
$individualContent = getArticles(2, 'index', 0, $cpoRubricOverride); 
echo $individualContent; 
Die Funktion ist leider undokumentiert und ich habe versucht aus den Codes für Seitentemplates das richtig zu interpretieren und dabei wohl eine Ebene im Array vergessen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Paginierung in eingebundener Rubrik abschalten?

Beitrag von dutch »

Hallo Markus,

ja, so funktioniert es!
Vielen Dank.

Einen Schönheitsfehler gibt es aber noch: die Paginierung der eingebundenen Rubrik wird angezeigt...
Lässt sich die evtl. auch noch irgendwie abschalten?
Dann wäre es perfekt!

Gruß,
dutch
Antworten