t('Channel Sources'), '$desc' => t('Manage remote sources of content for your channel.'), '$new' => t('New Source'), '$sources' => $r ]); return $o; } if (argc() == 2 && argv(1) === 'new') { // TODO add the words 'or RSS feed' and corresponding code to manage feeds and frequency $o = replace_macros(Theme::get_template('sources_new.tpl'), [ '$title' => t('New Source'), '$desc' => t('Import all or selected content from the following channel into this channel and distribute it according to your channel settings.'), '$words' => ['words', t('Only import content with these words (one per line)'), '', t('Leave blank to import all public content')], '$name' => ['name', t('Channel Name'), '', '', '', 'autocomplete="off"'], '$tags' => ['tags', t('Add the following categories to posts imported from this source (comma separated)'), '', t('Optional')], '$resend' => ['resend', t('Resend posts with this channel as author'), 0, t('Copyrights may apply'), [t('No'), t('Yes')]], '$submit' => t('Submit') ]); return $o; } if (argc() == 2 && intval(argv(1))) { // edit source $r = q( "select source.*, xchan.* from source left join xchan on src_xchan = xchan_hash where src_id = %d and src_channel_id = %d limit 1", intval(argv(1)), intval(local_channel()) ); if ($r) { $x = q( "select abook_id from abook where abook_xchan = '%s' and abook_channel = %d limit 1", dbesc($r[0]['src_xchan']), intval(local_channel()) ); } if (!$r) { notice(t('Source not found.') . EOL); return ''; } $r[0]['src_patt'] = htmlspecialchars($r[0]['src_patt'], ENT_QUOTES, 'UTF-8'); $o = replace_macros(Theme::get_template('sources_edit.tpl'), array( '$title' => t('Edit Source'), '$drop' => t('Delete Source'), '$id' => $r[0]['src_id'], '$desc' => t('Import all or selected content from the following channel into this channel and distribute it according to your channel settings.'), '$words' => array('words', t('Only import content with these words (one per line)'), $r[0]['src_patt'], t('Leave blank to import all public content')), '$xchan' => $r[0]['src_xchan'], '$abook' => $x[0]['abook_id'], '$tags' => array('tags', t('Add the following categories to posts imported from this source (comma separated)'), $r[0]['src_tag'], t('Optional')), '$resend' => ['resend', t('Resend posts with this channel as author'), get_abconfig(local_channel(), $r[0]['xchan_hash'], 'system', 'rself'), t('Copyrights may apply'), [t('No'), t('Yes')]], '$name' => array('name', t('Channel Name'), $r[0]['xchan_name'], ''), '$submit' => t('Submit') )); return $o; } if (argc() == 3 && intval(argv(1)) && argv(2) === 'drop') { $r = q( "select * from source where src_id = %d and src_channel_id = %d limit 1", intval(argv(1)), intval(local_channel()) ); if (!$r) { notice(t('Source not found.') . EOL); return ''; } $r = q( "delete from source where src_id = %d and src_channel_id = %d", intval(argv(1)), intval(local_channel()) ); if ($r) { info(t('Source removed') . EOL); } else { notice(t('Unable to remove source.') . EOL); } goaway(z_root() . '/sources'); } // shouldn't get here. } }