Export Articles from Joomla

PHOTO EMBED

Sat Sep 28 2024 10:53:51 GMT+0000 (Coordinated Universal Time)

Saved by @parisdev

<?php
// Αρχικοποίηση του Joomla περιβάλλοντος
define('_JEXEC', 1);
define('JPATH_BASE', __DIR__);
require_once(JPATH_BASE . '/includes/defines.php');
require_once(JPATH_BASE . '/includes/framework.php');

// Αρχικοποίηση του Joomla application
$app = JFactory::getApplication('site');

// Λίστα κατηγοριών που θα εξαιρεθούν
$excludedCategories = array(2, 10, 12, 15, 100, 101, 36, 37, 38, 39, 40, 52, 102, 78, 80, 81, 82, 83, 106, 84, 317);

// Φόρτωση όλων των άρθρων από τη βάση δεδομένων με εξαίρεση συγκεκριμένες κατηγορίες
$db = JFactory::getDbo();
$query = $db->getQuery(true)
    ->select($db->quoteName(array('id', 'title', 'catid', 'alias')))
    ->from($db->quoteName('#__content'))
    ->where($db->quoteName('state') . ' = 1') // Μόνο δημοσιευμένα άρθρα
    ->where($db->quoteName('catid') . ' NOT IN (' . implode(',', $excludedCategories) . ')');
$db->setQuery($query);
$articles = $db->loadObjectList();

if ($articles) {
    $articlesArray = array();

    // Δημιουργία των φιλικών URLs για κάθε άρθρο
    foreach ($articles as $article) {
        $link = 'index.php?option=com_content&view=article&id=' . $article->id . '&catid=' . $article->catid;
        $url = JRoute::_($link, false);

        // Προσθήκη των δεδομένων του άρθρου σε πίνακα
        $articlesArray[] = array(
            'title' => $article->title,
            'url' => $url
        );
    }

    // Επιστροφή των άρθρων σε JSON μορφή
    header('Content-Type: application/json');
    echo json_encode($articlesArray, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
} else {
    echo json_encode(array('message' => 'No articles found'), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
}
?>
content_copyCOPY