[geeklog-cvs] geeklog-1.3/public_html/admin trackback.php,1.8,1.9
dhaun at iowaoutdoors.org
dhaun at iowaoutdoors.org
Thu Feb 3 14:57:42 EST 2005
Update of /var/cvs/geeklog-1.3/public_html/admin
In directory www:/tmp/cvs-serv7378/public_html/admin
Modified Files:
trackback.php
Log Message:
Moved the list of sites to ping (weblog directory services like blo.gs) to the database.
Index: trackback.php
===================================================================
RCS file: /var/cvs/geeklog-1.3/public_html/admin/trackback.php,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** trackback.php 1 Feb 2005 08:20:57 -0000 1.8
--- trackback.php 3 Feb 2005 19:57:40 -0000 1.9
***************
*** 279,283 ****
function sendPings ($type, $id)
{
! global $_CONF, $LANG_TRB;
$retval = '';
--- 279,283 ----
function sendPings ($type, $id)
{
! global $_CONF, $_TABLES, $LANG_TRB;
$retval = '';
***************
*** 294,324 ****
$template->set_var ('lang_results', $LANG_TRB['ping_results']);
! $counter = 1;
! foreach ($_CONF['ping_sites'] as $site) {
! $resend = '';
! if ($site['method'] == 'weblogUpdates.ping') {
! $result = PNB_sendPing ($site['ping_url'], $_CONF['site_name'],
! $_CONF['site_url'], $itemurl);
! } else if ($site['method'] == 'weblogUpdates.extendedPing') {
! $result = PNB_sendExtendedPing ($site['ping_url'],
! $_CONF['site_name'], $_CONF['site_url'], $itemurl, $feedurl);
! } else {
! $result = $LANG_TRB['unknown_method'] . ': ' . $site['method'];
! }
! if (empty ($result)) {
! $result = '<b>' . $LANG_TRB['ping_success'] . '</b>';
! } else {
! $result = '<span class="warningsmall">' . $result . '</span>';
! }
! $template->set_var ('service_name', $site['name']);
! $template->set_var ('service_url', $site['site_url']);
! $template->set_var ('service_ping_url', $site['ping_url']);
! $template->set_var ('ping_result', $result);
! $template->set_var ('resend', $resend);
! $template->set_var ('alternate_row',
! ($counter % 2) == 0 ? 'row-even' : 'row-odd');
! $template->parse ('ping_results', 'item', true);
! $counter++;
}
$template->parse ('output', 'list');
--- 294,331 ----
$template->set_var ('lang_results', $LANG_TRB['ping_results']);
! $result = DB_query ("SELECT ping_url,method,name,site_url FROM {$_TABLES['pingservice']} WHERE is_enabled = 1");
! $services = DB_numRows ($result);
! if ($services > 0) {
! for ($i = 0; $i < $services; $i++) {
! $A = DB_fetchArray ($result);
! $resend = '';
! if ($A['method'] == 'weblogUpdates.ping') {
! $result = PNB_sendPing ($A['ping_url'], $_CONF['site_name'],
! $_CONF['site_url'], $itemurl);
! } else if ($A['method'] == 'weblogUpdates.extendedPing') {
! $result = PNB_sendExtendedPing ($A['ping_url'],
! $_CONF['site_name'], $_CONF['site_url'], $itemurl,
! $feedurl);
! } else {
! $result = $LANG_TRB['unknown_method'] . ': ' . $A['method'];
! }
! if (empty ($result)) {
! $result = '<b>' . $LANG_TRB['ping_success'] . '</b>';
! } else {
! $result = '<span class="warningsmall">' . $result . '</span>';
! }
! $template->set_var ('service_name', $A['name']);
! $template->set_var ('service_url', $A['site_url']);
! $template->set_var ('service_ping_url', $A['ping_url']);
! $template->set_var ('ping_result', $result);
! $template->set_var ('resend', $resend);
! $template->set_var ('alternate_row',
! (($i + 1) % 2) == 0 ? 'row-even' : 'row-odd');
! $template->parse ('ping_results', 'item', true);
! }
! } else {
! $template->set_var ('ping_results', '<tr><td colspan="2">' .
! $LANG_TRB['no_services'] . '</td></tr>');
}
$template->parse ('output', 'list');
***************
*** 407,413 ****
--- 414,708 ----
}
+ /**
+ * Display a list of all weblog directory services in the system
+ *
+ * @param int $page page to start
+ * @param int $msg ID of a message to display or 0
+ * @return string HTML for the list
+ *
+ */
+ function listServices ($page = 1, $msg = 0)
+ {
+ global $_CONF, $_TABLES, $LANG_TRB;
+
+ $retval = '';
+
+ $retval .= COM_siteHeader ('menu', $LANG_TRB['services_headline']);
+ if ($msg > 0) {
+ $retval .= COM_showMessage ($msg);
+ }
+ $retval .= COM_startBlock ($LANG_TRB['services_headline'], '',
+ COM_getBlockTemplate ('_admin_block', 'header'));
+
+ $template = new Template ($_CONF['path_layout'] . 'admin/trackback');
+ $template->set_file (array ('list' => 'servicelist.thtml',
+ 'row' => 'serviceitem.thtml'));
+ $template->set_var ('site_url', $_CONF['site_url']);
+ $template->set_var ('site_admin_url', $_CONF['site_admin_url']);
+ $template->set_var ('layout_url', $_CONF['layout_url']);
+
+ $template->set_var ('lang_adminhome', $LANG_TRB['admin_home']);
+ $template->set_var ('lang_newservice', $LANG_TRB['new_service']);
+ $template->set_var ('lang_instructions', $LANG_TRB['service_explain']);
+ $template->set_var ('lang_name', $LANG_TRB['service']);
+ $template->set_var ('lang_method', $LANG_TRB['ping_method']);
+ $template->set_var ('lang_enabled', $LANG_TRB['service_enabled']);
+ $template->set_var ('lang_site', $LANG_TRB['service_website']);
+ $template->set_var ('lang_ping_url', $LANG_TRB['service_ping_url']);
+
+ if ($page < 1) {
+ $page = 1;
+ }
+ $limit = (50 * $page) - 50;
+ $result = DB_query ("SELECT * FROM {$_TABLES['pingservice']} ORDER BY name LIMIT $limit,50");
+ $nrows = DB_numRows($result);
+ if ($nrows > 0) {
+ for ($i = 0; $i < $nrows; $i++) {
+ $A = DB_fetchArray ($result);
+ $template->set_var ('row_num', $i + $limit + 1);
+ $template->set_var ('service_id', $A['pid']);
+ $template->set_var ('service_name', $A['name']);
+ $template->set_var ('service_ping_url', $A['ping_url']);
+ $template->set_var ('service_site_url', $A['site_url']);
+ $template->set_var ('service_method_name', $A['method']);
+ if ($A['method'] == 'weblogUpdates.ping') {
+ $template->set_var ('service_method',
+ $LANG_TRB['ping_standard']);
+ } else if ($A['method'] == 'weblogUpdates.extendedPing') {
+ $template->set_var ('service_method',
+ $LANG_TRB['ping_extended']);
+ } else {
+ $template->set_var ('service_method',
+ '<span class="warningsmall">' .
+ $LANG_TRB['ping_unknown'] . '</span>');
+ }
+ if ($A['is_enabled'] == 1) {
+ $template->set_var ('is_enabled', 'checked="checked"');
+ } else {
+ $template->set_var ('is_enabled', '');
+ }
+ $template->parse ('services_list', 'row', true);
+ }
+ } else {
+ $template->set_var ('services_list', '<tr><td colspan="5">'
+ . $LANG_TRB['no_services'] . '</td></tr>');
+ }
+
+ $num_pages = ceil (DB_count ($_TABLES['pingservice']) / 50);
+
+ $base_url = $_CONF['site_admin_url'] . '/trackback.php';
+ if ($num_pages > 1) {
+ $template->set_var ('google_paging',
+ COM_printPageNavigation ($base_url, $page, $num_pages));
+ } else {
+ $template->set_var ('google_paging', '');
+ }
+ $template->parse ('output', 'list');
+ $retval .= $template->finish ($template->get_var ('output'));
+
+ $retval .= COM_endBlock (COM_getBlockTemplate ('_admin_block', 'footer'));
+ $retval .= COM_siteFooter ();
+
+ return $retval;
+ }
+
+ /**
+ * Display weblog directory service editor
+ *
+ * @param int $pid ID of the service or 0 for new service
+ * @param string $msg an error message to display
+ * @param string $new_name name of the service
+ * @param string $new_site_url URL of the service's site
+ * @param string $new_ping_url URL to ping at the service
+ * @param string $new_method ping method to use
+ * @param int $new_enabled service is enabled (1) / disabled (0)
+ * @return string HTML for the editor
+ *
+ */
+ function editServiceForm ($pid, $msg = '', $new_name = '', $new_site_url = '', $new_ping_url = '', $new_method = '', $new_enabled = -1)
+ {
+ global $_CONF, $_TABLES, $LANG_TRB;
+
+ $retval = '';
+
+ if ($pid > 0) {
+ $result = DB_query ("SELECT * FROM {$_TABLES['pingservice']} WHERE pid = '$pid'");
+ $A = DB_fetchArray ($result);
+ } else {
+ $A['is_enabled'] = 1;
+ $A['method'] = 'weblogUpdates.ping';
+ }
+
+ if (!empty ($new_name)) {
+ $A['name'] = $new_name;
+ }
+ if (!empty ($new_site_url)) {
+ $A['site_url'] = $new_site_url;
+ }
+ if (!empty ($new_ping_url)) {
+ $A['ping_url'] = $new_ping_url;
+ }
+ if (!empty ($new_method)) {
+ $A['method'] = $new_method;
+ }
+ if ($new_enabled >= 0) {
+ $A['is_enabled'] = $new_enabled;
+ }
+
+ $retval .= COM_siteHeader ('menu', $LANG_TRB['edit_service']);
+
+ if (!empty ($msg)) {
+ $retval .= showTrackbackMessage ('Error', $msg);
+ }
+
+ $retval .= COM_startBlock ($LANG_TRB['edit_service'], '',
+ COM_getBlockTemplate ('_admin_block', 'header'));
+
+ $template = new Template ($_CONF['path_layout'] . 'admin/trackback');
+ $template->set_file (array ('editor' => 'serviceeditor.thtml'));
+ $template->set_var ('site_url', $_CONF['site_url']);
+ $template->set_var ('site_admin_url', $_CONF['site_admin_url']);
+ $template->set_var ('layout_url', $_CONF['layout_url']);
+ $template->set_var ('max_url_length', 255);
+ $template->set_var ('method_ping', 'weblogUpdates.ping');
+ $template->set_var ('method_ping_extended', 'weblogUpdates.extendedPing');
+
+ $template->set_var ('lang_name', $LANG_TRB['service']);
+ $template->set_var ('lang_site_url', $LANG_TRB['service_website']);
+ $template->set_var ('lang_ping_url', $LANG_TRB['service_ping_url']);
+ $template->set_var ('lang_enabled', $LANG_TRB['service_enabled']);
+ $template->set_var ('lang_method', $LANG_TRB['ping_method']);
+ $template->set_var ('lang_method_standard', $LANG_TRB['ping_standard']);
+ $template->set_var ('lang_method_extended', $LANG_TRB['ping_extended']);
+ $template->set_var ('lang_save', $LANG_TRB['button_save']);
+ $template->set_var ('lang_cancel', $LANG_TRB['button_cancel']);
+
+ if ($pid > 0) {
+ $template->set_var ('delete_option', '<input type="submit" value="'
+ . $LANG_TRB['button_delete'] . '" name="servicemode[2]">');
+ } else {
+ $template->set_var ('delete_option', '');
+ }
+
+ $template->set_var ('service_id', $A['pid']);
+ $template->set_var ('service_name', $A['name']);
+ $template->set_var ('service_site_url', $A['site_url']);
+ $template->set_var ('service_ping_url', $A['ping_url']);
+ if ($A['is_enabled'] == 1) {
+ $template->set_var ('is_enabled', 'checked="checked"');
+ } else {
+ $template->set_var ('is_enabled', '');
+ }
+ if ($A['method'] == 'weblogUpdates.ping') {
+ $template->set_var ('standard_is_checked', 'checked="checked"');
+ $template->set_var ('extended_is_checked', '');
+ } else {
+ $template->set_var ('standard_is_checked', '');
+ $template->set_var ('extended_is_checked', 'checked="checked"');
+ }
+
+ $template->parse ('output', 'editor');
+ $retval .= $template->finish ($template->get_var ('output'));
+
+ $retval .= COM_endBlock (COM_getBlockTemplate ('_admin_block', 'footer'));
+ $retval .= COM_siteFooter ();
+
+ return $retval;
+ }
+
+ /**
+ * Save information of a weblog directory service
+ *
+ * @param int $pid ID of service or 0 for new entry
+ * @param string $name name of the service
+ * @param string $site_url Homepage URL of the service
+ * @param string $ping_url URL to ping at the service
+ * @param string $method method used for the ping
+ * @param string $enabled 'on' when enabled
+ * @return string HTML redirect or service editor
+ *
+ */
+ function saveService ($pid, $name, $site_url, $ping_url, $method, $enabled)
+ {
+ global $_CONF, $_TABLES, $LANG_TRB;
+
+ $enabled = ($enabled == 'on' ? 1 : 0);
+ if ($method == 'extended') {
+ $method = 'weblogUpdates.extendedPing';
+ } else {
+ $method = 'weblogUpdates.ping';
+ }
+
+ $name = strip_tags (COM_stripslashes ($name));
+ $site_url = strip_tags (COM_stripslashes ($site_url));
+ $ping_url = strip_tags (COM_stripslashes ($ping_url));
+
+ $errormsg = '';
+ if (empty ($name)) {
+ $errormsg = $LANG_TRB['error_site_name'];
+ } else {
+ // all URLs must start with http: or https:
+ $parts = explode (':', $site_url);
+ if (($parts[0] != 'http') && ($parts[0] != 'https')) {
+ $errormsg = $LANG_TRB['error_site_url'];
+ } else {
+ $parts = explode (':', $ping_url);
+ if (($parts[0] != 'http') && ($parts[0] != 'https')) {
+ $errormsg = $LANG_TRB['error_ping_url'];
+ }
+ }
+ }
+
+ if (!empty ($errormsg)) {
+ return editServiceForm ($pid, $errormsg, $name, $site_url, $ping_url,
+ $method, $enabled);
+ }
+
+ $name = addslashes ($name);
+ $site_url = addslashes ($site_url);
+ $ping_url = addslashes ($ping_url);
+
+ if ($pid > 0) {
+ DB_save ($_TABLES['pingservice'],
+ 'pid,name,site_url,ping_url,method,is_enabled',
+ "'$pid','$name','$site_url','$ping_url','$method','$enabled'");
+ } else {
+ DB_save ($_TABLES['pingservice'],
+ 'name,site_url,ping_url,method,is_enabled',
+ "'$name','$site_url','$ping_url','$method','$enabled'");
+ }
+
+ return COM_refresh ($_CONF['site_admin_url']
+ . '/trackback?mode=listservice&msg=65');
+ }
+
+ /**
+ * Toggle status of a ping service from enabled to disabled and back
+ *
+ * @param int $pid ID of the service
+ * @return void
+ *
+ */
+ function changeServiceStatus ($pid)
+ {
+ global $_TABLES;
+
+ $pid = addslashes (COM_applyFilter ($pid, true));
+ if (!empty ($pid)) {
+ $is_enabled = 1;
+ if (DB_getItem ($_TABLES['pingservice'], 'is_enabled', "pid = '$pid'")) {
+ $is_enabled = 0;
+ }
+ DB_query ("UPDATE {$_TABLES['pingservice']} SET is_enabled = '$is_enabled' WHERE pid = '$pid'");
+ }
+ }
+
// MAIN
$display = '';
+ if ($_CONF['ping_enabled'] && isset ($_POST['serviceChange'])) {
+ changeServiceStatus ($_POST['serviceChange']);
+ }
+
if (isset ($_POST['mode']) && is_array ($_POST['mode'])) {
$mode = $_POST['mode'];
***************
*** 419,426 ****
--- 714,763 ----
$mode = '';
}
+ } else if (isset ($_POST['servicemode']) && is_array ($_POST['servicemode'])) {
+ $mode = $_POST['servicemode'];
+ if (isset ($mode[0])) {
+ $mode = 'saveservice';
+ } else if (isset ($mode[2])) {
+ $mode = 'deleteservice';
+ } else { // $mode[1], Cancel
+ $mode = '';
+ }
} else {
$mode = COM_applyFilter ($_REQUEST['mode']);
}
+ // sanity check for modes, depending on enabled features ...
+ if (!$_CONF['ping_enabled']) {
+ if (($mode == 'deleteservice') || ($mode == 'saveservice') ||
+ ($mode == 'editservice')) {
+ $mode = '';
+ }
+ }
+ if (!$_CONF['trackback_enabled']) {
+ if (($mode == 'send') || ($mode == 'new') || ($mode == 'pretrackback') ||
+ ($mode == 'autodetect') || ($mode == 'preview')) {
+ $mode = '';
+ }
+ }
+ if (!$_CONF['pingback_enabled']) {
+ if ($mode == 'pingback') {
+ $mode = '';
+ }
+ }
+ if (!$_CONF['trackback_enabled'] && !$_CONF['pingback_enabled']) {
+ if ($mode == 'delete') {
+ $mode = '';
+ }
+ }
+
+ // default action depends on which features are enabled ...
+ if (empty ($mode)) {
+ if ($_CONF['ping_enabled']) {
+ $mode = 'listservice';
+ } else if ($_CONF['trackback_enabled']) {
+ $mode = 'fresh';
+ }
+ }
+
if ($mode == 'delete') {
$cid = COM_applyFilter ($_REQUEST['cid'], true);
***************
*** 658,662 ****
$display .= trackback_editor ($trackbackUrl, $url, $title, $excerpt, $blog)
. COM_siteFooter ();
! } else {
$display .= COM_siteHeader ('menu');
--- 995,999 ----
$display .= trackback_editor ($trackbackUrl, $url, $title, $excerpt, $blog)
. COM_siteFooter ();
! } else if ($mode == 'fresh') {
$display .= COM_siteHeader ('menu');
***************
*** 706,709 ****
--- 1043,1071 ----
$display .= COM_siteFooter ();
+ } else if ($mode == 'deleteservice') {
+ $pid = COM_applyFilter ($_POST['service_id'], true);
+ if ($pid > 0) {
+ DB_delete ($_TABLES['pingservice'], 'pid', $pid);
+ $display = COM_refresh ($_CONF['site_admin_url']
+ . '/trackback.php?mode=listservice&msg=66');
+ } else {
+ $display = COM_refresh ($_CONF['site_admin_url'] . '/index.php');
+ }
+ } else if ($mode == 'saveservice') {
+ $display .= saveService (COM_applyFilter ($_POST['service_id'], true),
+ $_POST['service_name'], $_POST['service_site_url'],
+ $_POST['service_ping_url'], $_POST['method'],
+ $_POST['is_enabled']);
+
+ } else if ($mode == 'editservice') {
+ $pid = COM_applyFilter ($_GET['service_id'], true);
+
+ $display .= editServiceForm ($pid);
+ } else if ($mode == 'listservice') {
+ $page = COM_applyFilter ($_REQUEST['page'], true);
+ $msg = COM_applyFilter ($_REQUEST['msg'], true);
+ $display .= listServices ($page, $msg);
+ } else {
+ $display = COM_refresh ($_CONF['site_admin_url'] . '/index.php');
}
More information about the geeklog-cvs
mailing list