/********************************************************************************** * 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: IndexPage.java,v 1.3 2008/10/14 13:15:49 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; 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_admin.includes.DashboardPage; import org.numiton.nwp.wp_admin.includes.ThemePage; import org.numiton.nwp.wp_admin.includes.UpdatePage; import org.numiton.nwp.wp_includes.*; import org.numiton.nwp.wp_includes.PostPage; import org.numiton.nwp.wp_includes.WidgetsPage; 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.array.Array; import com.numiton.generic.*; import com.numiton.ntile.til.libraries.php.quercus.QStrings; import com.numiton.string.Strings; @Controller(value = "wp_admin/IndexPage") @Scope("request") public class IndexPage extends NumitonController { protected static final Logger LOG = Logger.getLogger(IndexPage.class.getName()); public String today; public boolean can_edit_posts; public boolean can_edit_pages; public StdClass num_pages; public int num_cats; public int num_tags; public Array<String> post_type_texts = new Array<String>(); public String post_text; public String pending_text; public String cats_text; public String tags_text; public String post_type_text; public int num_widgets; public String widgets_text; public boolean can_switch_themes; @Override @RequestMapping("/wp-admin/index.php") public ModelAndView execute(HttpServletRequest javaRequest, HttpServletResponse javaResponse) throws IOException { return super.execute(javaRequest, javaResponse); } @Override public String getViewName() { return "wp_admin/index"; } public void index_js() { echo( gVars.webEnv, "<script type=\"text/javascript\">\njQuery(function($) {\n\tvar ajaxWidgets = {\n\t\tdashboard_incoming_links: \'incominglinks\',\n\t\tdashboard_primary: \'devnews\',\n\t\tdashboard_secondary: \'planetnews\',\n\t\tdashboard_plugins: \'plugins\'\n\t};\n\t$.each( ajaxWidgets, function(i,a) {\n\t\tvar e = jQuery(\'#\' + i + \' div.dashboard-widget-content\').not(\'.dashboard-widget-control\').find(\'.widget-loading\');\n\t\tif ( e.size() ) { e.parent().load(\'index-extra.php?jax=\' + a); }\n\t} );\n});\n</script>\n"); } public void index_css() { getIncluded(General_templatePage.class, gVars, gConsts).wp_admin_css("css/dashboard"); } public Object generateContent(PhpWebEnvironment webEnv) throws IOException, ServletException { /* Start of block */ super.startBlock("__wp_admin_index_block1"); gVars.webEnv = webEnv; requireOnce(gVars, gConsts, AdminPage.class); /* Condensed dynamic construct */ requireOnce(gVars, gConsts, DashboardPage.class); getIncluded(DashboardPage.class, gVars, gConsts).wp_dashboard_setup(); getIncluded(PluginPage.class, gVars, gConsts).add_action("admin_head", Callback.createCallbackArray(this, "index_js"), 10, 1); getIncluded(PluginPage.class, gVars, gConsts).add_action("admin_head", Callback.createCallbackArray(this, "index_css"), 10, 1); getIncluded(Script_loaderPage.class, gVars, gConsts).wp_enqueue_script("jquery", false, new Array<Object>(), false); gVars.title = getIncluded(L10nPage.class, gVars, gConsts).__("Dashboard", "default"); gVars.parent_file = "index.php"; requireOnce(gVars, gConsts, Admin_headerPage.class); today = strval(getIncluded(FunctionsPage.class, gVars, gConsts).current_time("mysql", 1)); /* Start of block */ super.startBlock("__wp_admin_index_block2"); getIncluded(L10nPage.class, gVars, gConsts)._e("Dashboard", "default"); /* Start of block */ super.startBlock("__wp_admin_index_block3"); getIncluded(L10nPage.class, gVars, gConsts)._e("Right Now", "default"); /* Start of block */ super.startBlock("__wp_admin_index_block4"); if (can_edit_posts = getIncluded(CapabilitiesPage.class, gVars, gConsts).current_user_can("edit_posts")) { echo(gVars.webEnv, "\t<a href=\"post-new.php\" class=\"rbutton\"><strong>"); getIncluded(L10nPage.class, gVars, gConsts)._e("Write a New Post", "default"); echo(gVars.webEnv, "</strong></a>\n"); } else { } if (can_edit_pages = getIncluded(CapabilitiesPage.class, gVars, gConsts).current_user_can("edit_pages")) { echo(gVars.webEnv, "\t<a href=\"page-new.php\" class=\"rbutton\">"); getIncluded(L10nPage.class, gVars, gConsts)._e("Write a New Page", "default"); echo(gVars.webEnv, "</a>\n"); } else { } /* Start of block */ super.startBlock("__wp_admin_index_block5"); gVars.num_posts = getIncluded(PostPage.class, gVars, gConsts).wp_count_posts("post", ""); num_pages = getIncluded(PostPage.class, gVars, gConsts).wp_count_posts("page", ""); num_cats = getIncluded(TaxonomyPage.class, gVars, gConsts).wp_count_terms("category", new Array<Object>()); num_tags = getIncluded(TaxonomyPage.class, gVars, gConsts).wp_count_terms("post_tag", new Array<Object>()); post_type_texts = new Array<String>(); if (!empty(StdClass.getValue(gVars.num_posts, "publish"))) { // with feeds, anyone can tell how many posts there are. Just unlink if !current_user_can post_text = QStrings.sprintf( getIncluded(L10nPage.class, gVars, gConsts).__ngettext("%s post", "%s posts", intval(StdClass.getValue(gVars.num_posts, "publish")), "default"), getIncluded(FunctionsPage.class, gVars, gConsts).number_format_i18n(floatval(StdClass.getValue(gVars.num_posts, "publish")), null)); post_type_texts.putValue(can_edit_posts ? ("<a href=\'edit.php\'>" + post_text + "</a>") : post_text); } if (can_edit_pages && !empty(StdClass.getValue(num_pages, "publish"))) { // how many pages is not exposed in feeds. Don't show if !current_user_can post_type_texts.putValue( "<a href=\"edit-pages.php\">" + QStrings.sprintf( getIncluded(L10nPage.class, gVars, gConsts).__ngettext("%s page", "%s pages", intval(StdClass.getValue(num_pages, "publish")), "default"), getIncluded(FunctionsPage.class, gVars, gConsts).number_format_i18n(intval(StdClass.getValue(num_pages, "publish")), null)) + "</a>"); } if (can_edit_posts && !empty(StdClass.getValue(gVars.num_posts, "draft"))) { post_type_texts.putValue( "<a href=\"edit.php?post_status=draft\">" + QStrings.sprintf( getIncluded(L10nPage.class, gVars, gConsts).__ngettext("%s draft", "%s drafts", intval(StdClass.getValue(gVars.num_posts, "draft")), "default"), (((FunctionsPage) PhpWeb.getIncluded(FunctionsPage.class, gVars, gConsts))).number_format_i18n(floatval(StdClass.getValue(gVars.num_posts, "draft")), null)) + "</a>"); } if (can_edit_posts && !empty(StdClass.getValue(gVars.num_posts, "future"))) { post_type_texts.putValue( "<a href=\"edit.php?post_status=future\">" + QStrings.sprintf( getIncluded(L10nPage.class, gVars, gConsts).__ngettext("%s scheduled post", "%s scheduled posts", intval(StdClass.getValue(gVars.num_posts, "future")), "default"), getIncluded(FunctionsPage.class, gVars, gConsts).number_format_i18n(intval(StdClass.getValue(gVars.num_posts, "future")), null)) + "</a>"); } if (getIncluded(CapabilitiesPage.class, gVars, gConsts).current_user_can("publish_posts") && !empty(StdClass.getValue(gVars.num_posts, "pending"))) { pending_text = QStrings.sprintf(getIncluded(L10nPage.class, gVars, gConsts).__ngettext( "There is <a href=\"%1$s\">%2$s post</a> pending your review.", "There are <a href=\"%1$s\">%2$s posts</a> pending your review.", intval(StdClass.getValue(gVars.num_posts, "pending")), "default"), "edit.php?post_status=pending", getIncluded(FunctionsPage.class, gVars, gConsts).number_format_i18n(intval(StdClass.getValue(gVars.num_posts, "pending")), null)); } else { pending_text = ""; } cats_text = QStrings.sprintf( getIncluded(L10nPage.class, gVars, gConsts).__ngettext("%s category", "%s categories", num_cats, "default"), (((FunctionsPage) PhpWeb.getIncluded(FunctionsPage.class, gVars, gConsts))).number_format_i18n(num_cats, null)); tags_text = QStrings.sprintf( getIncluded(L10nPage.class, gVars, gConsts).__ngettext("%s tag", "%s tags", num_tags, "default"), getIncluded(FunctionsPage.class, gVars, gConsts).number_format_i18n(num_tags, null)); if (getIncluded(CapabilitiesPage.class, gVars, gConsts).current_user_can("manage_categories")) { cats_text = "<a href=\'categories.php\'>" + cats_text + "</a>"; tags_text = "<a href=\'edit-tags.php\'>" + tags_text + "</a>"; } post_type_text = Strings.implode(", ", post_type_texts); // There is always a category gVars.sentence = QStrings.sprintf( getIncluded(L10nPage.class, gVars, gConsts).__("You have %1$s, contained within %2$s and %3$s. %4$s", "default"), post_type_text, cats_text, tags_text, pending_text); gVars.sentence = strval(getIncluded(PluginPage.class, gVars, gConsts).apply_filters("dashboard_count_sentence", gVars.sentence, post_type_text, cats_text, tags_text, pending_text)); /* Start of block */ super.startBlock("__wp_admin_index_block6"); echo(gVars.webEnv, gVars.sentence); /* Start of block */ super.startBlock("__wp_admin_index_block7"); gVars.ct = getIncluded(ThemePage.class, gVars, gConsts).current_theme_info(); gVars.sidebars_widgets = getIncluded(WidgetsPage.class, gVars, gConsts).wp_get_sidebars_widgets(true); num_widgets = intval(Array.array_reduce(gVars.sidebars_widgets, new Callback("createFunction_sum", this))); widgets_text = QStrings.sprintf(getIncluded(L10nPage.class, gVars, gConsts).__ngettext("%d widget", "%d widgets", num_widgets, "default"), num_widgets); if (can_switch_themes = getIncluded(CapabilitiesPage.class, gVars, gConsts).current_user_can("switch_themes")) { widgets_text = "<a href=\'widgets.php\'>" + widgets_text + "</a>"; } /* Start of block */ super.startBlock("__wp_admin_index_block8"); QStrings.printf(gVars.webEnv, getIncluded(L10nPage.class, gVars, gConsts).__("You are using %1$s theme with %2$s.", "default"), StdClass.getValue(gVars.ct, "title"), widgets_text); /* Start of block */ super.startBlock("__wp_admin_index_block9"); if (can_switch_themes) { echo(gVars.webEnv, "\t\t<a href=\"themes.php\" class=\"rbutton\">"); getIncluded(L10nPage.class, gVars, gConsts)._e("Change Theme", "default"); echo(gVars.webEnv, "</a>\n\t"); } else { } /* Start of block */ super.startBlock("__wp_admin_index_block10"); getIncluded(UpdatePage.class, gVars, gConsts).update_right_now_message(); /* Start of block */ super.startBlock("__wp_admin_index_block11"); getIncluded(PluginPage.class, gVars, gConsts).do_action("rightnow_end", ""); getIncluded(PluginPage.class, gVars, gConsts).do_action("activity_box_end", ""); /* Start of block */ super.startBlock("__wp_admin_index_block12"); getIncluded(DashboardPage.class, gVars, gConsts).wp_dashboard(); /* Start of block */ super.startBlock("__wp_admin_index_block13"); require(gVars, gConsts, Admin_footerPage.class); return DEFAULT_VAL; } public int createFunction_sum(int prev, Object curr) { return prev + Array.count(curr); } }