/********************************************************************************** * nWordPress is an automated migration of WordPress 2.5.1 performed by Numiton. * * copyright : (C) 2008 Numiton - www.numiton.com * email : numiton@users.sourceforge.net * * $Id: BookmarkPage.java,v 1.3 2008/10/14 13:15:50 numiton Exp $ * **********************************************************************************/ /********************************************************************************** * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * **********************************************************************************/ /*************************************************************************** * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * ***************************************************************************/ package org.numiton.nwp.wp_admin.includes; import static com.numiton.VarHandling.*; import static com.numiton.generic.PhpWeb.*; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import org.numiton.nwp.NumitonController; import org.numiton.nwp.wp_includes.*; import org.numiton.nwp.wp_includes.PluginPage; import org.numiton.nwp.wp_includes.TaxonomyPage; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.numiton.VarHandling; import com.numiton.array.Array; import com.numiton.array.ArrayEntry; import com.numiton.generic.Callback; import com.numiton.generic.PhpWebEnvironment; import com.numiton.generic.StdClass; import com.numiton.string.Strings; @Controller(value = "wp_admin/includes/BookmarkPage") @Scope("request") public class BookmarkPage extends NumitonController { protected static final Logger LOG = Logger.getLogger(BookmarkPage.class.getName()); @Override @RequestMapping("/wp-admin/includes/bookmark.php") public ModelAndView execute(HttpServletRequest javaRequest, HttpServletResponse javaResponse) throws IOException { return super.execute(javaRequest, javaResponse); } @Override public String getViewName() { return "wp_admin/includes/bookmark"; } public int add_link() { return edit_link(""); } public int edit_link(String link_id) { if (!getIncluded(CapabilitiesPage.class, gVars, gConsts).current_user_can("manage_links")) { getIncluded(FunctionsPage.class, gVars, gConsts).wp_die(getIncluded(L10nPage.class, gVars, gConsts).__("Cheatin’ uh?", "default"), ""); } gVars.webEnv._POST.putValue("link_url", getIncluded(FormattingPage.class, gVars, gConsts).wp_specialchars(strval(gVars.webEnv._POST.getValue("link_url")), strval(0))); gVars.webEnv._POST.putValue("link_url", getIncluded(FormattingPage.class, gVars, gConsts).clean_url(strval(gVars.webEnv._POST.getValue("link_url")), null, "display")); gVars.webEnv._POST.putValue("link_name", getIncluded(FormattingPage.class, gVars, gConsts).wp_specialchars(strval(gVars.webEnv._POST.getValue("link_name")), strval(0))); gVars.webEnv._POST.putValue("link_image", getIncluded(FormattingPage.class, gVars, gConsts).wp_specialchars(strval(gVars.webEnv._POST.getValue("link_image")), strval(0))); gVars.webEnv._POST.putValue("link_rss", getIncluded(FormattingPage.class, gVars, gConsts).clean_url(strval(gVars.webEnv._POST.getValue("link_rss")), null, "display")); if (!equal("N", gVars.webEnv._POST.getValue("link_visible"))) { gVars.webEnv._POST.putValue("link_visible", "Y"); } if (!empty(link_id)) { gVars.webEnv._POST.putValue("link_id", link_id); return wp_update_link(gVars.webEnv._POST); } else { return wp_insert_link(gVars.webEnv._POST); } } public StdClass get_default_link_to_edit() { StdClass link = new StdClass(); if (isset(gVars.webEnv._GET.getValue("linkurl"))) { link.fields.putValue("link_url", getIncluded(FormattingPage.class, gVars, gConsts).clean_url(strval(gVars.webEnv._GET.getValue("linkurl")), null, "display")); } else { link.fields.putValue("link_url", ""); } if (isset(gVars.webEnv._GET.getValue("name"))) { link.fields.putValue("link_name", getIncluded(FormattingPage.class, gVars, gConsts).attribute_escape(strval(gVars.webEnv._GET.getValue("name")))); } else { link.fields.putValue("link_name", ""); } link.fields.putValue("link_visible", "Y"); return link; } public boolean wp_delete_link(int link_id) { getIncluded(PluginPage.class, gVars, gConsts).do_action("delete_link", link_id); getIncluded(TaxonomyPage.class, gVars, gConsts).wp_delete_object_term_relationships(link_id, "link_category"); gVars.wpdb.query("DELETE FROM " + gVars.wpdb.links + " WHERE link_id = \'" + link_id + "\'"); getIncluded(PluginPage.class, gVars, gConsts).do_action("deleted_link", link_id); return true; } public Array<Object> wp_get_link_cats(int link_id) { Array<Object> cats = (Array<Object>) getIncluded(TaxonomyPage.class, gVars, gConsts).wp_get_object_terms(link_id, "link_category", "fields=ids"); return Array.array_unique(cats); } public StdClass get_link_to_edit(int link_id) { return (StdClass) (((org.numiton.nwp.wp_includes.BookmarkPage) getIncluded(org.numiton.nwp.wp_includes.BookmarkPage.class, gVars, gConsts))).get_bookmark(link_id, gConsts.getOBJECT(), "edit"); } public int wp_insert_link(Object linkdata) { Array<Object> defaults = new Array<Object>(); Boolean update = null; Integer link_id = null; String link_name = null; String link_url = null; Integer link_rating = null; String link_image = null; String link_target = null; String link_visible = null; Integer link_owner = null; String link_notes = null; String link_description = null; String link_rss = null; String link_rel = null; Object link_category = null; /* Do not change type */ defaults = new Array<Object>(new ArrayEntry<Object>("link_id", 0), new ArrayEntry<Object>("link_name", ""), new ArrayEntry<Object>("link_url", ""), new ArrayEntry<Object>("link_rating", 0)); linkdata = getIncluded(FunctionsPage.class, gVars, gConsts).wp_parse_args(linkdata, defaults); linkdata = (((org.numiton.nwp.wp_includes.BookmarkPage) getIncluded(org.numiton.nwp.wp_includes.BookmarkPage.class, gVars, gConsts))).sanitize_bookmark(linkdata, "db"); link_id = intval(Array.extractVar((Array) linkdata, "link_id", link_id, Array.EXTR_SKIP)); link_name = strval(Array.extractVar((Array) linkdata, "link_name", link_name, Array.EXTR_SKIP)); link_url = strval(Array.extractVar((Array) linkdata, "link_url", link_url, Array.EXTR_SKIP)); link_rating = intval(Array.extractVar((Array) linkdata, "link_rating", link_rating, Array.EXTR_SKIP)); link_image = strval(Array.extractVar((Array) linkdata, "link_image", link_image, Array.EXTR_SKIP)); link_target = strval(Array.extractVar((Array) linkdata, "link_target", link_target, Array.EXTR_SKIP)); link_visible = strval(Array.extractVar((Array) linkdata, "link_visible", link_visible, Array.EXTR_SKIP)); link_owner = intval(Array.extractVar((Array) linkdata, "link_owner", link_owner, Array.EXTR_SKIP)); link_notes = strval(Array.extractVar((Array) linkdata, "link_notes", link_notes, Array.EXTR_SKIP)); link_description = strval(Array.extractVar((Array) linkdata, "link_description", link_description, Array.EXTR_SKIP)); link_rss = strval(Array.extractVar((Array) linkdata, "link_rss", link_rss, Array.EXTR_SKIP)); link_rel = strval(Array.extractVar((Array) linkdata, "link_rel", link_rel, Array.EXTR_SKIP)); link_category = Array.extractVar((Array) linkdata, "link_category", link_category, Array.EXTR_SKIP); update = false; if (!empty(link_id)) { update = true; } if (equal(Strings.trim(link_name), "")) { return 0; } if (equal(Strings.trim(link_url), "")) { return 0; } if (empty(link_rating)) { link_rating = 0; } if (empty(link_image)) { link_image = ""; } if (empty(link_target)) { link_target = ""; } if (empty(link_visible)) { link_visible = "Y"; } if (empty(link_owner)) { link_owner = gVars.current_user.getID(); } if (empty(link_notes)) { link_notes = ""; } if (empty(link_description)) { link_description = ""; } if (empty(link_rss)) { link_rss = ""; } if (empty(link_rel)) { link_rel = ""; } // Make sure we set a valid category if (equal(0, Array.count(link_category)) || !is_array(link_category)) { link_category = new Array<Object>(new ArrayEntry<Object>(getIncluded(FunctionsPage.class, gVars, gConsts).get_option("default_link_category"))); } if (update) { gVars.wpdb.query( "UPDATE " + gVars.wpdb.links + " SET link_url=\'" + link_url + "\',\n\t\t\tlink_name=\'" + link_name + "\', link_image=\'" + link_image + "\',\n\t\t\tlink_target=\'" + link_target + "\',\n\t\t\tlink_visible=\'" + link_visible + "\', link_description=\'" + link_description + "\',\n\t\t\tlink_rating=\'" + link_rating + "\', link_rel=\'" + link_rel + "\',\n\t\t\tlink_notes=\'" + link_notes + "\', link_rss = \'" + link_rss + "\'\n\t\t\tWHERE link_id=\'" + link_id + "\'"); } else { gVars.wpdb.query( "INSERT INTO " + gVars.wpdb.links + " (link_url, link_name, link_image, link_target, link_description, link_visible, link_owner, link_rating, link_rel, link_notes, link_rss) VALUES(\'" + link_url + "\',\'" + link_name + "\', \'" + link_image + "\', \'" + link_target + "\', \'" + link_description + "\', \'" + link_visible + "\', \'" + link_owner + "\', \'" + link_rating + "\', \'" + link_rel + "\', \'" + link_notes + "\', \'" + link_rss + "\')"); link_id = gVars.wpdb.insert_id; } wp_set_link_cats(link_id, link_category); if (update) { getIncluded(PluginPage.class, gVars, gConsts).do_action("edit_link", link_id); } else { getIncluded(PluginPage.class, gVars, gConsts).do_action("add_link", link_id); } return link_id; } public void wp_set_link_cats(int link_id, Object link_categoriesObj)/* Do not change type */ { /* Modified by Numiton */ Array link_categories; // If $link_categories isn't already an array, make it one: if (!is_array(link_categoriesObj) || equal(0, Array.count(link_categoriesObj))) { link_categories = new Array<Object>(new ArrayEntry<Object>(getIncluded(FunctionsPage.class, gVars, gConsts).get_option("default_link_category"))); } else { link_categories = (Array) link_categoriesObj; } link_categories = Array.array_map(new Callback("intval", VarHandling.class), link_categories); link_categories = Array.array_unique(link_categories); getIncluded(TaxonomyPage.class, gVars, gConsts).wp_set_object_terms(link_id, link_categories, "link_category", false); } // wp_set_link_cats() /** * wp_set_link_cats() wp_set_link_cats() */ public int wp_update_link(Array<Object> linkdata) { int link_id = 0; Array<Object> link = new Array<Object>(); Object link_cats = null; link_id = intval(linkdata.getValue("link_id")); link = (Array<Object>) getIncluded(org.numiton.nwp.wp_includes.BookmarkPage.class, gVars, gConsts).get_link(link_id, gConsts.getARRAY_A(), "raw"); // Escape data pulled from DB. link = getIncluded(FunctionsPage.class, gVars, gConsts).add_magic_quotes(link); // Passed link category list overwrites existing category list if not empty. if (isset(linkdata.getValue("link_category")) && is_array(linkdata.getValue("link_category")) && !equal(0, Array.count(linkdata.getValue("link_category")))) { link_cats = linkdata.getValue("link_category"); } else { link_cats = link.getValue("link_category"); } // Merge old and new fields with new fields overwriting old ones. linkdata = Array.array_merge(link, linkdata); linkdata.putValue("link_category", link_cats); return wp_insert_link(linkdata); } public Object generateContent(PhpWebEnvironment webEnv) throws IOException, ServletException { gVars.webEnv = webEnv; return DEFAULT_VAL; } }