$output = '';
while ($name != null) {
$path = garden_path(GARDEN_TEMPLATE_DIR, $name . '.php');
-
+
+ if (file_exists($path) == false) {
+ $path = garden_path(GARDEN_FALLBACK_TEMPLATE_DIR, $name . '.php');
+ }
+
$base_template = null;
$base_template_variables = null;
return GARDEN_SITE_BASE_URL . garden_url(...$url_segments);
}
-
-
///////////////////////////////////////////////////////////////////////////////
// Images
///////////////////////////////////////////////////////////////////////////////
// Feed
///////////////////////////////////////////////////////////////////////////////
-function garden_generate_atom($output_directory, $content_items) {
+function garden_generate_atom($output_directory, $output_filename, $content_items) {
$recent_items = [];
foreach ($content_items as $item) {
if ($item->type != GardenItemType::Article) {
continue;
}
- $recent_items[$item->date] = $item;
+ $date_key = $item->date;
+
+ // Hack to support sorting without missing entries
+ while (isset($recent_items[$date_key])) {
+ $date_key += 1;
+ }
+
+ $recent_items[$date_key] = $item;
}
// Sort by date...
$variables['recent_items'] = $recent_items;
$html_data = garden_template_render('atom', $variables);
- garden_write_file(garden_path($output_directory, 'feed.atom'), $html_data);
+ garden_write_file(garden_path($output_directory, $output_filename), $html_data);
}
-function garden_generate_json($output_directory, $content_items) {
+function garden_generate_json($output_directory, $output_filename, $content_items) {
$recent_items = [];
foreach ($content_items as $item) {
if ($item->type != GardenItemType::Article) {
$feed['version'] = 'https://jsonfeed.org/version/1.1';
$feed['title'] = GARDEN_TEMPLATE_CONSTANTS['site_name'];
$feed['home_page_url'] = garden_site_url('/');
- $feed['feed_url'] = garden_site_url('/feed.json');
+ $feed['feed_url'] = garden_site_url($output_filename);
$feed['items'] = [];
foreach ($recent_items as $item) {
}
$json_data = json_encode($feed);
- garden_write_file(garden_path($output_directory, 'feed.json'), $json_data);
+ garden_write_file(garden_path($output_directory, $output_filename), $json_data);
}
///////////////////////////////////////////////////////////////////////////////
garden_move_raw($process_items);
$post_process_items = garden_generate_html(GARDEN_OUTPUT_DIR, $process_items);
garden_make_images($post_process_items);
- garden_generate_atom(GARDEN_OUTPUT_DIR, $process_items);
- garden_generate_json(GARDEN_OUTPUT_DIR, $process_items);
+
+ if (defined('GARDEN_ATOM_FEED_FILENAME')) {
+ garden_generate_atom(GARDEN_OUTPUT_DIR, GARDEN_ATOM_FEED_FILENAME, $process_items);
+ }
+
+ if (defined('GARDEN_JSON_FEED_FILENAME')) {
+ garden_generate_json(GARDEN_OUTPUT_DIR, GARDEN_JSON_FEED_FILENAME, $process_items);
+ }
}
///////////////////////////////////////////////////////////////////////////////
assert(extension_loaded('imagick'), 'Needs Imagick');
assert($argc >= 2, 'Please provide configuration file');
+define('GARDEN_FALLBACK_TEMPLATE_DIR', garden_path(__DIR__, 'templates'));
+
// First parameter needs to be the configuration php
$config_file = $argv[1];