Jak lze jednoduše vypsat pouze jeden článek na základě jeho ID? Speciální HCM modul pro výpis článků to nepodporuje a když jsem se pokoušel o vytvoření si rovnou vlastního HCM modulu, abych to mohl využít případně i víckrát, skončil jsem u toho, že nevím co mám vlastně dát dohromady. Vím, že existuje funkce _articlePreview, jenže k ní je, co jsem zjistil, třeba udělat výpis z databáze, nicméně u tohoto jsem skončil, protože nevím, co k čemu přiřadit. Případně neexistuje nějaká jiná možnost? Je to celkem využitelné pro třeba takový horký/doporučený článek a celkem mě překvapilo, že jsem pro to nic v systému nenašel.
Diskuse
Téma: Vypsání jednoho článku
Přidám to do další verze..
Prozatím ulož tohle do
function _HCM_singlearticle($id = null, $perex = 1, $info = true)
{
if (!$id) {
return;
}
$query = DB::query_row("SELECT art.id,art.title,art.title_seo,art.perex,".(($perex === 2) ? 'art.picture_uid,' : '')."art.author,art.time,art.readed,art.comments,cat.title_seo AS cat_title_seo".(($info !== 0) ? ",(SELECT COUNT(id) FROM `"._mysql_prefix."-posts` AS post WHERE home=art.id AND post.type=2) AS comment_count" : '')." FROM `"._mysql_prefix."-articles` AS art JOIN `"._mysql_prefix."-root` AS cat ON(cat.id=art.home1) WHERE art.id=".intval($id)." LIMIT 1");
if (false !== $query) {
return _articlePreview($query, $info, 0 != $perex, isset($query['comment_count']) ? $query['comment_count'] : null);
}
}
Použití:
[hcm]singlearticle,id,perex,info[/hcm]
•
•
•
Např:
[hcm]singlearticle,98,2[/hcm]
Prozatím ulož tohle do
plugins/hcm/singlearticle.php:function _HCM_singlearticle($id = null, $perex = 1, $info = true)
{
if (!$id) {
return;
}
$query = DB::query_row("SELECT art.id,art.title,art.title_seo,art.perex,".(($perex === 2) ? 'art.picture_uid,' : '')."art.author,art.time,art.readed,art.comments,cat.title_seo AS cat_title_seo".(($info !== 0) ? ",(SELECT COUNT(id) FROM `"._mysql_prefix."-posts` AS post WHERE home=art.id AND post.type=2) AS comment_count" : '')." FROM `"._mysql_prefix."-articles` AS art JOIN `"._mysql_prefix."-root` AS cat ON(cat.id=art.home1) WHERE art.id=".intval($id)." LIMIT 1");
if (false !== $query) {
return _articlePreview($query, $info, 0 != $perex, isset($query['comment_count']) ? $query['comment_count'] : null);
}
}
Použití:
[hcm]singlearticle,id,perex,info[/hcm]
•
id - id clanku•
perex - 0 (ne), 1 (ano), 2 (ano+obrazek)•
info - 0 (ne), 1 (ano)Např:
[hcm]singlearticle,98,2[/hcm]
Bezva, díky! Jenom jsem musel opravit chybu v rovnítku u podmínky perexu, ale to je jen překlep.
jaky preklep tam mas?
Tak asi nakonec není, nevím, nicméně po přepsání ($perex === 2) na ($perex !== 2) to přesto funguje, takže to asi nemá smysl řešit.