Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: CuteNews API & OpenGraph-tagit

Onni [07.11.2016 16:55:55]

#

Moro.

Tällaista ongelmaa tällä kertaa:

Käytän sivustollani CuteNews-uutistenjulkaisuohjelmaa ja nyt tarvisi saada uutisen otsikko jollain tapaa ongittua tuolta CuteNewsistä ja liitettyä sivun Open Graph metatietoihin, jolloin jaettaessa uutista FB:ssä näkyisi oikea otsikko. Mitenhän tämä onnistuisi?

cn_api.php

<?php // API: External function for CN

require_once dirname(__FILE__).'/core/init.php';

// Input: $id - timestamp, $data - entry data
function cn_api_add_news($id, $data)
{
    $nloc = db_get_nloc($id);
    $db   = db_news_load($nloc);
    $db[$id] = $data;

    // add data
    db_save_news($db, $nloc);

    $user = db_user_by_name($data['u']);
    db_index_add($id, $data['c'], $user['id'], $data['is_draft']);
}

// Since 2.0: Get news entry
function cn_api_get_entry($id = NULL)
{
    if (is_null($id))
        $id = REQ('id');

    $id = cn_id_alias($id);
    $db = db_news_load(db_get_nloc($id));

    // Other meta-information
    if (isset($db[$id]))
    {
        $_cot = array();
        $_cat = cn_get_categories(true);
        $_cts = spsep($db[$id]['c']);

        foreach ($_cts as $cid) $_cot[$cid] = $_cat[$cid]['name'];

        $db[$id][':cot'] = $_cot;
        return $db[$id];
    }
    else
        return array();
}
<meta property="og:title" content="Uutiset">
<meta property="og:description" content="Uutisen otsikko">

Jostain löysin tällaisen koodipätkän millä tuo tieto ilmeisesti pitäisi saada tulostettua mutta en tiedä miten tuota käytetään.

<?php

require_once '/home/user/public_html/uutiset/cn_api.php';
$entry = cn_api_get_entry();
if ($entry['t'])
{
     // ........
     $header_title = $entry['t'];

     print_r($entry);
}

groovyb [07.11.2016 18:44:51]

#

eikös tuossa nyt tuo $header_title sisällä tuon otsikon (entry['t'])? eli käytä sitä kuin mitä tahansa muuttujaa. testaa vaikka tuon if lohkosi sisällä, palautuuko oikea arvo.

<?php

require_once '/home/user/public_html/uutiset/cn_api.php';
$entry = cn_api_get_entry();
if ($entry['t'])
{
     // ........
     $header_title = $entry['t'];

     echo '<h1>'.$header_title.'</h1>';
}

Onni [08.11.2016 15:11:47]

#

Tuo koodi tulostaa koko uutisen otsikoineen ja sisältöineen sekä sekalaisen merkkijonon tämän perään

[f] => [c] => 1 [co] => Array ( ) [mf] => Array ( ) [ht] => 1 [:cot] => Array ( [1] => uutiset ) )

Tuon pelkän otsikon kun saisi tulostettua...

groovyb [08.11.2016 15:14:32]

#

tämän mukaan kyllä $entry['t']:n pitäisi palauttaa pelkkä otsikko.

GitHub cutenews

Onni [10.11.2016 09:49:43]

#

No nyt alkoi selvitä kun katsoin tuota esimerkkisivua, kiitos.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta