Version Description
Fixed an issue where the redirect database tables were not being created, causing 'Invalid Destination URL' errors.
Download this release
Release Info
Developer | shawn@eggplantstudios.ca |
Plugin | Eggplant 301 Redirects |
Version | 2.2.3 |
Comparing to | |
See all releases |
Code changes from version 2.2.2 to 2.2.3
- .idea/.name +0 -1
- .idea/encodings.xml +0 -5
- .idea/eps-301-redirects (trunk).iml +0 -9
- .idea/misc.xml +0 -8
- .idea/modules.xml +0 -9
- .idea/scopes/scope_settings.xml +0 -5
- .idea/vcs.xml +0 -7
- .idea/workspace.xml +0 -245
- css/eps_redirect.css +15 -0
- eps-301-redirects.php +9 -4
- libs/eps-plugin-options.php +52 -5
- libs/eps-plugin.php +12 -12
- plugin.php +16 -6
- readme.txt +8 -1
- templates/admin-tab-error.php +32 -0
- templates/admin-tab-import-export.php +0 -1
.idea/.name
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
eps-301-redirects (trunk)
|
|
.idea/encodings.xml
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
-
<project version="4">
|
3 |
-
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
|
4 |
-
</project>
|
5 |
-
|
|
|
|
|
|
|
|
|
|
.idea/eps-301-redirects (trunk).iml
DELETED
@@ -1,9 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
-
<module type="WEB_MODULE" version="4">
|
3 |
-
<component name="NewModuleRootManager">
|
4 |
-
<content url="file://$MODULE_DIR$" />
|
5 |
-
<orderEntry type="inheritedJdk" />
|
6 |
-
<orderEntry type="sourceFolder" forTests="false" />
|
7 |
-
</component>
|
8 |
-
</module>
|
9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.idea/misc.xml
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
-
<project version="4">
|
3 |
-
<component name="ProjectRootManager" version="2" />
|
4 |
-
<component name="SvnBranchConfigurationManager">
|
5 |
-
<option name="mySupportsUserInfoFilter" value="true" />
|
6 |
-
</component>
|
7 |
-
</project>
|
8 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.idea/modules.xml
DELETED
@@ -1,9 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
-
<project version="4">
|
3 |
-
<component name="ProjectModuleManager">
|
4 |
-
<modules>
|
5 |
-
<module fileurl="file://$PROJECT_DIR$/.idea/eps-301-redirects (trunk).iml" filepath="$PROJECT_DIR$/.idea/eps-301-redirects (trunk).iml" />
|
6 |
-
</modules>
|
7 |
-
</component>
|
8 |
-
</project>
|
9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.idea/scopes/scope_settings.xml
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
<component name="DependencyValidationManager">
|
2 |
-
<state>
|
3 |
-
<option name="SKIP_IMPORT_STATEMENTS" value="false" />
|
4 |
-
</state>
|
5 |
-
</component>
|
|
|
|
|
|
|
|
|
|
.idea/vcs.xml
DELETED
@@ -1,7 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
-
<project version="4">
|
3 |
-
<component name="VcsDirectoryMappings">
|
4 |
-
<mapping directory="$PROJECT_DIR$" vcs="svn" />
|
5 |
-
</component>
|
6 |
-
</project>
|
7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.idea/workspace.xml
DELETED
@@ -1,245 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
-
<project version="4">
|
3 |
-
<component name="ChangeListManager">
|
4 |
-
<list default="true" readonly="true" id="8269d8a3-d716-4d22-abc3-a8011cfbd296" name="Default" comment="" />
|
5 |
-
<ignored path="eps-301-redirects (trunk).iws" />
|
6 |
-
<ignored path=".idea/workspace.xml" />
|
7 |
-
<option name="TRACKING_ENABLED" value="true" />
|
8 |
-
<option name="SHOW_DIALOG" value="false" />
|
9 |
-
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
10 |
-
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
11 |
-
<option name="LAST_RESOLUTION" value="IGNORE" />
|
12 |
-
</component>
|
13 |
-
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
|
14 |
-
<component name="CreatePatchCommitExecutor">
|
15 |
-
<option name="PATCH_PATH" value="" />
|
16 |
-
</component>
|
17 |
-
<component name="DaemonCodeAnalyzer">
|
18 |
-
<disable_hints />
|
19 |
-
</component>
|
20 |
-
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
|
21 |
-
<component name="FavoritesManager">
|
22 |
-
<favorites_list name="eps-301-redirects (trunk)" />
|
23 |
-
</component>
|
24 |
-
<component name="FileEditorManager">
|
25 |
-
<leaf />
|
26 |
-
</component>
|
27 |
-
<component name="FindManager">
|
28 |
-
<FindUsagesManager>
|
29 |
-
<setting name="OPEN_NEW_TAB" value="false" />
|
30 |
-
</FindUsagesManager>
|
31 |
-
</component>
|
32 |
-
<component name="IdeDocumentHistory">
|
33 |
-
<option name="changedFiles">
|
34 |
-
<list>
|
35 |
-
<option value="$PROJECT_DIR$/libs/eps-plugin-options.php" />
|
36 |
-
<option value="$PROJECT_DIR$/plugin.php" />
|
37 |
-
<option value="$PROJECT_DIR$/readme.txt" />
|
38 |
-
<option value="$PROJECT_DIR$/eps-301-redirects.php" />
|
39 |
-
</list>
|
40 |
-
</option>
|
41 |
-
</component>
|
42 |
-
<component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true" />
|
43 |
-
<component name="ProjectFrameBounds">
|
44 |
-
<option name="x" value="111" />
|
45 |
-
<option name="y" value="43" />
|
46 |
-
<option name="width" value="1970" />
|
47 |
-
<option name="height" value="1265" />
|
48 |
-
</component>
|
49 |
-
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
50 |
-
<OptionsSetting value="true" id="Add" />
|
51 |
-
<OptionsSetting value="true" id="Remove" />
|
52 |
-
<OptionsSetting value="true" id="Checkout" />
|
53 |
-
<OptionsSetting value="true" id="Update" />
|
54 |
-
<OptionsSetting value="true" id="Status" />
|
55 |
-
<OptionsSetting value="true" id="Edit" />
|
56 |
-
<ConfirmationsSetting value="0" id="Add" />
|
57 |
-
<ConfirmationsSetting value="0" id="Remove" />
|
58 |
-
</component>
|
59 |
-
<component name="ProjectReloadState">
|
60 |
-
<option name="STATE" value="0" />
|
61 |
-
</component>
|
62 |
-
<component name="ProjectView">
|
63 |
-
<navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5">
|
64 |
-
<flattenPackages />
|
65 |
-
<showMembers />
|
66 |
-
<showModules />
|
67 |
-
<showLibraryContents />
|
68 |
-
<hideEmptyPackages />
|
69 |
-
<abbreviatePackageNames />
|
70 |
-
<autoscrollToSource />
|
71 |
-
<autoscrollFromSource />
|
72 |
-
<sortByType />
|
73 |
-
</navigator>
|
74 |
-
<panes>
|
75 |
-
<pane id="Scope" />
|
76 |
-
<pane id="ProjectPane">
|
77 |
-
<subPane>
|
78 |
-
<PATH>
|
79 |
-
<PATH_ELEMENT>
|
80 |
-
<option name="myItemId" value="eps-301-redirects (trunk)" />
|
81 |
-
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
82 |
-
</PATH_ELEMENT>
|
83 |
-
</PATH>
|
84 |
-
<PATH>
|
85 |
-
<PATH_ELEMENT>
|
86 |
-
<option name="myItemId" value="eps-301-redirects (trunk)" />
|
87 |
-
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
88 |
-
</PATH_ELEMENT>
|
89 |
-
<PATH_ELEMENT>
|
90 |
-
<option name="myItemId" value="eps-301-redirects" />
|
91 |
-
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
92 |
-
</PATH_ELEMENT>
|
93 |
-
</PATH>
|
94 |
-
</subPane>
|
95 |
-
</pane>
|
96 |
-
</panes>
|
97 |
-
</component>
|
98 |
-
<component name="PropertiesComponent">
|
99 |
-
<property name="options.lastSelected" value="preferences.sourceCode" />
|
100 |
-
<property name="options.splitter.main.proportions" value="0.3" />
|
101 |
-
<property name="options.splitter.details.proportions" value="0.2" />
|
102 |
-
<property name="options.searchVisible" value="true" />
|
103 |
-
<property name="WebServerToolWindowFactoryState" value="false" />
|
104 |
-
</component>
|
105 |
-
<component name="RunManager">
|
106 |
-
<list size="0" />
|
107 |
-
</component>
|
108 |
-
<component name="ShelveChangesManager" show_recycled="false" />
|
109 |
-
<component name="SvnConfiguration" maxAnnotateRevisions="500" myUseAcceleration="nothing" myAutoUpdateAfterCommit="false" cleanupOnStartRun="true" SSL_PROTOCOLS="sslv3">
|
110 |
-
<option name="USER" value="" />
|
111 |
-
<option name="PASSWORD" value="" />
|
112 |
-
<option name="mySSHConnectionTimeout" value="30000" />
|
113 |
-
<option name="mySSHReadTimeout" value="30000" />
|
114 |
-
<option name="LAST_MERGED_REVISION" />
|
115 |
-
<option name="MERGE_DRY_RUN" value="false" />
|
116 |
-
<option name="MERGE_DIFF_USE_ANCESTRY" value="true" />
|
117 |
-
<option name="UPDATE_LOCK_ON_DEMAND" value="false" />
|
118 |
-
<option name="IGNORE_SPACES_IN_MERGE" value="false" />
|
119 |
-
<option name="CHECK_NESTED_FOR_QUICK_MERGE" value="false" />
|
120 |
-
<option name="IGNORE_SPACES_IN_ANNOTATE" value="true" />
|
121 |
-
<option name="SHOW_MERGE_SOURCES_IN_ANNOTATE" value="true" />
|
122 |
-
<option name="FORCE_UPDATE" value="false" />
|
123 |
-
<option name="IGNORE_EXTERNALS" value="false" />
|
124 |
-
<configuration useDefault="false">$USER_HOME$/.subversion</configuration>
|
125 |
-
<myIsUseDefaultProxy>false</myIsUseDefaultProxy>
|
126 |
-
<supportedVersion>125</supportedVersion>
|
127 |
-
</component>
|
128 |
-
<component name="TaskManager">
|
129 |
-
<task active="true" id="Default" summary="Default task">
|
130 |
-
<changelist id="8269d8a3-d716-4d22-abc3-a8011cfbd296" name="Default" comment="" />
|
131 |
-
<created>1430661932982</created>
|
132 |
-
<updated>1430661932982</updated>
|
133 |
-
</task>
|
134 |
-
<servers />
|
135 |
-
</component>
|
136 |
-
<component name="ToolWindowManager">
|
137 |
-
<frame x="111" y="43" width="1970" height="1265" extended-state="0" />
|
138 |
-
<editor active="false" />
|
139 |
-
<layout>
|
140 |
-
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
141 |
-
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
142 |
-
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
143 |
-
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
144 |
-
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
145 |
-
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.26037344" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
146 |
-
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
147 |
-
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
148 |
-
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
|
149 |
-
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
150 |
-
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
151 |
-
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
152 |
-
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
153 |
-
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
154 |
-
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
155 |
-
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
156 |
-
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
157 |
-
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
158 |
-
</layout>
|
159 |
-
</component>
|
160 |
-
<component name="Vcs.Log.UiProperties">
|
161 |
-
<option name="RECENTLY_FILTERED_USER_GROUPS">
|
162 |
-
<collection />
|
163 |
-
</option>
|
164 |
-
</component>
|
165 |
-
<component name="VcsContentAnnotationSettings">
|
166 |
-
<option name="myLimit" value="2678400000" />
|
167 |
-
</component>
|
168 |
-
<component name="VcsManagerConfiguration">
|
169 |
-
<option name="myTodoPanelSettings">
|
170 |
-
<TodoPanelSettings />
|
171 |
-
</option>
|
172 |
-
</component>
|
173 |
-
<component name="XDebuggerManager">
|
174 |
-
<breakpoint-manager />
|
175 |
-
</component>
|
176 |
-
<component name="editorHistoryManager">
|
177 |
-
<entry file="file://$PROJECT_DIR$/eps-301-redirects.php">
|
178 |
-
<provider selected="true" editor-type-id="text-editor">
|
179 |
-
<state line="552" column="21" selection-start="0" selection-end="16892" vertical-scroll-proportion="0.0" vertical-offset="11705" max-vertical-offset="12826">
|
180 |
-
<folding>
|
181 |
-
<element signature="e#6#533#0" expanded="true" />
|
182 |
-
<marker date="1430664107000" expanded="true" signature="-1:-1" placeholder="SELECT * FRO..$table_name ORDER..." />
|
183 |
-
<marker date="1430664107000" expanded="true" signature="-1:-1" placeholder="UPDATE $tabl..." />
|
184 |
-
</folding>
|
185 |
-
</state>
|
186 |
-
</provider>
|
187 |
-
</entry>
|
188 |
-
<entry file="file://$PROJECT_DIR$/libs/eps-plugin-options.php">
|
189 |
-
<provider selected="true" editor-type-id="text-editor">
|
190 |
-
<state line="194" column="7" selection-start="4530" selection-end="4530" vertical-scroll-proportion="0.0" vertical-offset="4268" max-vertical-offset="6974" />
|
191 |
-
</provider>
|
192 |
-
</entry>
|
193 |
-
<entry file="file://$PROJECT_DIR$/libs/eps-plugin-options.php">
|
194 |
-
<provider selected="true" editor-type-id="text-editor">
|
195 |
-
<state line="170" column="5" selection-start="3901" selection-end="3901" vertical-scroll-proportion="0.0" vertical-offset="3740" max-vertical-offset="6974" />
|
196 |
-
</provider>
|
197 |
-
</entry>
|
198 |
-
<entry file="file://$PROJECT_DIR$/libs/eps-plugin-options.php">
|
199 |
-
<provider selected="true" editor-type-id="text-editor">
|
200 |
-
<state line="219" column="48" selection-start="5361" selection-end="5361" vertical-scroll-proportion="0.29385576" vertical-offset="4268" max-vertical-offset="6974" />
|
201 |
-
</provider>
|
202 |
-
</entry>
|
203 |
-
<entry file="file://$PROJECT_DIR$/eps-form-elements.php">
|
204 |
-
<provider selected="true" editor-type-id="text-editor">
|
205 |
-
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="3916" />
|
206 |
-
</provider>
|
207 |
-
</entry>
|
208 |
-
<entry file="file://$PROJECT_DIR$/class.drop-down-pages.php">
|
209 |
-
<provider selected="true" editor-type-id="text-editor">
|
210 |
-
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1606">
|
211 |
-
<folding />
|
212 |
-
</state>
|
213 |
-
</provider>
|
214 |
-
</entry>
|
215 |
-
<entry file="file://$PROJECT_DIR$/plugin.php">
|
216 |
-
<provider selected="true" editor-type-id="text-editor">
|
217 |
-
<state line="13" column="51" selection-start="263" selection-end="263" vertical-scroll-proportion="0.13898917" vertical-offset="0" max-vertical-offset="9438">
|
218 |
-
<folding />
|
219 |
-
</state>
|
220 |
-
</provider>
|
221 |
-
</entry>
|
222 |
-
<entry file="file://$PROJECT_DIR$/readme.txt">
|
223 |
-
<provider selected="true" editor-type-id="text-editor">
|
224 |
-
<state line="12" column="17" selection-start="174" selection-end="174" vertical-scroll-proportion="0.23891403" vertical-offset="0" max-vertical-offset="4686">
|
225 |
-
<folding />
|
226 |
-
</state>
|
227 |
-
</provider>
|
228 |
-
<provider editor-type-id="com.intellij.persistence.database.editor.CsvTableFileEditorProvider">
|
229 |
-
<state />
|
230 |
-
</provider>
|
231 |
-
</entry>
|
232 |
-
<entry file="file://$PROJECT_DIR$/eps-301-redirects.php">
|
233 |
-
<provider selected="true" editor-type-id="text-editor">
|
234 |
-
<state line="116" column="9" selection-start="3428" selection-end="3428" vertical-scroll-proportion="0.43175736" vertical-offset="2068" max-vertical-offset="12826">
|
235 |
-
<folding>
|
236 |
-
<element signature="e#6#533#0" expanded="true" />
|
237 |
-
<marker date="1430664107000" expanded="true" signature="-1:-1" placeholder="SELECT * FRO..$table_name ORDER..." />
|
238 |
-
<marker date="1430664107000" expanded="true" signature="-1:-1" placeholder="UPDATE $tabl..." />
|
239 |
-
</folding>
|
240 |
-
</state>
|
241 |
-
</provider>
|
242 |
-
</entry>
|
243 |
-
</component>
|
244 |
-
</project>
|
245 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/eps_redirect.css
CHANGED
@@ -261,6 +261,21 @@ select.eps-small-select { display: inline-block; }
|
|
261 |
|
262 |
.padding { padding: 16px; }
|
263 |
.padding-lots { padding: 32px; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
264 |
/*----------------------------------------------------------*/
|
265 |
/*-------------------- media queries ---------------------*/
|
266 |
/*----------------------------------------------------------*/
|
261 |
|
262 |
.padding { padding: 16px; }
|
263 |
.padding-lots { padding: 32px; }
|
264 |
+
|
265 |
+
|
266 |
+
.eps-notice {
|
267 |
+
padding: 16px;
|
268 |
+
margin: 6px auto;
|
269 |
+
background: white;
|
270 |
+
box-shadow: 1px 1px 4px #dddddd;
|
271 |
+
border-left: 3px solid #888888;
|
272 |
+
font-weight: bold;
|
273 |
+
font-size: 14px;
|
274 |
+
}
|
275 |
+
.eps-notice.eps-warning {
|
276 |
+
border-left: 3px solid #940000;
|
277 |
+
color: #940000;
|
278 |
+
}
|
279 |
/*----------------------------------------------------------*/
|
280 |
/*-------------------- media queries ---------------------*/
|
281 |
/*----------------------------------------------------------*/
|
eps-301-redirects.php
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
*
|
16 |
* @package EPS 301 Redirects
|
17 |
* @author Shawn Wernig ( shawn@eggplantstudios.ca )
|
18 |
-
* @version 2.2.
|
19 |
*/
|
20 |
|
21 |
|
@@ -25,7 +25,7 @@
|
|
25 |
Plugin Name: Eggplant 301 Redirects
|
26 |
Plugin URI: http://www.eggplantstudios.ca
|
27 |
Description: Create your own 301 redirects using this powerful plugin.
|
28 |
-
Version: 2.2.
|
29 |
Author: Shawn Wernig http://www.eggplantstudios.ca
|
30 |
License: GPLv2 or later
|
31 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -37,7 +37,7 @@ if( ! defined( 'EPS_REDIRECT_PRO' ) )
|
|
37 |
|
38 |
define ( 'EPS_REDIRECT_PATH', plugin_dir_path(__FILE__) );
|
39 |
define ( 'EPS_REDIRECT_URL', plugin_dir_url( __FILE__ ) );
|
40 |
-
define ( 'EPS_REDIRECT_VERSION', '2.2.
|
41 |
define ( 'EPS_REDIRECT_PRO', false);
|
42 |
|
43 |
include(EPS_REDIRECT_PATH.'eps-form-elements.php');
|
@@ -46,7 +46,8 @@ include(EPS_REDIRECT_PATH.'libs/eps-plugin.php');
|
|
46 |
include(EPS_REDIRECT_PATH.'libs/eps-plugin-options.php');
|
47 |
include(EPS_REDIRECT_PATH.'plugin.php');
|
48 |
|
49 |
-
|
|
|
50 |
|
51 |
class EPS_Redirects {
|
52 |
|
@@ -151,6 +152,10 @@ class EPS_Redirects {
|
|
151 |
*
|
152 |
*/
|
153 |
private function format_from_url( $string ) {
|
|
|
|
|
|
|
|
|
154 |
$complete = home_url() . '/' . $string;
|
155 |
list($uprotocol,$uempty,$uhost,$from) = explode( '/', $complete, 4);
|
156 |
$from = '/' . $from;
|
15 |
*
|
16 |
* @package EPS 301 Redirects
|
17 |
* @author Shawn Wernig ( shawn@eggplantstudios.ca )
|
18 |
+
* @version 2.2.3
|
19 |
*/
|
20 |
|
21 |
|
25 |
Plugin Name: Eggplant 301 Redirects
|
26 |
Plugin URI: http://www.eggplantstudios.ca
|
27 |
Description: Create your own 301 redirects using this powerful plugin.
|
28 |
+
Version: 2.2.3
|
29 |
Author: Shawn Wernig http://www.eggplantstudios.ca
|
30 |
License: GPLv2 or later
|
31 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
37 |
|
38 |
define ( 'EPS_REDIRECT_PATH', plugin_dir_path(__FILE__) );
|
39 |
define ( 'EPS_REDIRECT_URL', plugin_dir_url( __FILE__ ) );
|
40 |
+
define ( 'EPS_REDIRECT_VERSION', '2.2.3');
|
41 |
define ( 'EPS_REDIRECT_PRO', false);
|
42 |
|
43 |
include(EPS_REDIRECT_PATH.'eps-form-elements.php');
|
46 |
include(EPS_REDIRECT_PATH.'libs/eps-plugin-options.php');
|
47 |
include(EPS_REDIRECT_PATH.'plugin.php');
|
48 |
|
49 |
+
register_activation_hook( __FILE__, array('EPS_Redirects_Plugin', '_activation'));
|
50 |
+
register_deactivation_hook( __FILE__, array('EPS_Redirects_Plugin', '_deactivation'));
|
51 |
|
52 |
class EPS_Redirects {
|
53 |
|
152 |
*
|
153 |
*/
|
154 |
private function format_from_url( $string ) {
|
155 |
+
//$from = home_url() . '/' . $string;
|
156 |
+
//return strtolower( rtrim( $from,'/') );
|
157 |
+
|
158 |
+
|
159 |
$complete = home_url() . '/' . $string;
|
160 |
list($uprotocol,$uempty,$uhost,$from) = explode( '/', $complete, 4);
|
161 |
$from = '/' . $from;
|
libs/eps-plugin-options.php
CHANGED
@@ -51,16 +51,63 @@ class EPS_Plugin_Options {
|
|
51 |
*
|
52 |
*/
|
53 |
private function build_settings() {
|
54 |
-
$this->settings = $this->
|
55 |
}
|
56 |
|
57 |
-
private function
|
58 |
{
|
59 |
-
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
return $data;
|
62 |
}
|
63 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
/**
|
65 |
*
|
66 |
* Build the setting slug based on section.
|
@@ -272,7 +319,7 @@ class EPS_Plugin_Options {
|
|
272 |
if ( $this->tab_exists( $tab ) ) {
|
273 |
|
274 |
|
275 |
-
if(has_action( $tab.'_admin_tab'))
|
276 |
{
|
277 |
do_action( $tab.'_admin_tab', $this->settings[$tab] );
|
278 |
}
|
51 |
*
|
52 |
*/
|
53 |
private function build_settings() {
|
54 |
+
$this->settings = $this->read_settings( $this->plugin->config('path') . 'options.json' );
|
55 |
}
|
56 |
|
57 |
+
private function read_settings( $uri )
|
58 |
{
|
59 |
+
if( file_exists( $uri ) )
|
60 |
+
{
|
61 |
+
if ( is_readable( $uri ) )
|
62 |
+
{
|
63 |
+
$data = $this->read_json_from_file($uri);
|
64 |
+
}
|
65 |
+
else
|
66 |
+
{
|
67 |
+
chmod($uri, 0644);
|
68 |
+
$data = $this->read_json_from_file($uri);
|
69 |
+
if( $data )
|
70 |
+
{
|
71 |
+
$data = array(
|
72 |
+
'error' => array(
|
73 |
+
"title" => "Oops!",
|
74 |
+
"description" => "An essential file (options.json) could not be read. Please check your folder permissions.",
|
75 |
+
"callback" => "error",
|
76 |
+
"fields" => []
|
77 |
+
)
|
78 |
+
);
|
79 |
+
}
|
80 |
+
}
|
81 |
+
}
|
82 |
+
else
|
83 |
+
{
|
84 |
+
$data = array(
|
85 |
+
'error' => array(
|
86 |
+
"title" => "Oops!",
|
87 |
+
"description" => "An essential file (options.json) could not be found. Please re-install the plugin.",
|
88 |
+
"callback" => "error",
|
89 |
+
"fields" => []
|
90 |
+
)
|
91 |
+
);
|
92 |
+
}
|
93 |
+
|
94 |
+
|
95 |
return $data;
|
96 |
}
|
97 |
|
98 |
+
private function read_json_from_file($uri)
|
99 |
+
{
|
100 |
+
try
|
101 |
+
{
|
102 |
+
$json = file_get_contents( $uri );
|
103 |
+
return json_decode($json,true);
|
104 |
+
}
|
105 |
+
catch( Exception $e )
|
106 |
+
{
|
107 |
+
return false;
|
108 |
+
}
|
109 |
+
}
|
110 |
+
|
111 |
/**
|
112 |
*
|
113 |
* Build the setting slug based on section.
|
319 |
if ( $this->tab_exists( $tab ) ) {
|
320 |
|
321 |
|
322 |
+
if( has_action( $tab.'_admin_tab'))
|
323 |
{
|
324 |
do_action( $tab.'_admin_tab', $this->settings[$tab] );
|
325 |
}
|
libs/eps-plugin.php
CHANGED
@@ -8,8 +8,6 @@
|
|
8 |
* @package EPS Boilerplate
|
9 |
*/
|
10 |
|
11 |
-
require_once('eps-plugin-options.php');
|
12 |
-
|
13 |
if( ! class_exists('EPS_Plugin') )
|
14 |
{
|
15 |
class EPS_Plugin {
|
@@ -52,10 +50,12 @@ if( ! class_exists('EPS_Plugin') )
|
|
52 |
public function __construct(){
|
53 |
$this->config['url'] = plugins_url() . $this->config['directory'] . '/';
|
54 |
$this->config['path'] = ABSPATH . 'wp-content/plugins/' . $this->config['directory'] . '/';
|
55 |
-
$this->settings = new EPS_Plugin_Options( $this );
|
56 |
|
57 |
-
|
58 |
-
|
|
|
|
|
|
|
59 |
if ( !self::is_current_version() ) self::update_self();
|
60 |
add_action('init', array($this, 'plugin_resources'));
|
61 |
}
|
@@ -103,23 +103,23 @@ if( ! class_exists('EPS_Plugin') )
|
|
103 |
file_put_contents($this->config('path'). '/error_activation.html', ob_get_contents());
|
104 |
}
|
105 |
|
106 |
-
public function _activation() {
|
107 |
if ( !self::is_current_version() ) self::update_self();
|
108 |
}
|
109 |
|
110 |
public function _deactivation() {}
|
111 |
|
112 |
-
public function is_current_version()
|
113 |
{
|
114 |
-
return version_compare(
|
115 |
}
|
116 |
-
public function current_version()
|
117 |
{
|
118 |
-
return get_option(
|
119 |
}
|
120 |
-
public function set_current_version( $version )
|
121 |
{
|
122 |
-
update_option(
|
123 |
}
|
124 |
/**
|
125 |
*
|
8 |
* @package EPS Boilerplate
|
9 |
*/
|
10 |
|
|
|
|
|
11 |
if( ! class_exists('EPS_Plugin') )
|
12 |
{
|
13 |
class EPS_Plugin {
|
50 |
public function __construct(){
|
51 |
$this->config['url'] = plugins_url() . $this->config['directory'] . '/';
|
52 |
$this->config['path'] = ABSPATH . 'wp-content/plugins/' . $this->config['directory'] . '/';
|
|
|
53 |
|
54 |
+
if( class_exists('EPS_Plugin_Options') )
|
55 |
+
$this->settings = new EPS_Plugin_Options( $this );
|
56 |
+
|
57 |
+
register_activation_hook( __FILE__, array($this, '_activation'));
|
58 |
+
register_deactivation_hook( __FILE__, array($this, '_deactivation'));
|
59 |
if ( !self::is_current_version() ) self::update_self();
|
60 |
add_action('init', array($this, 'plugin_resources'));
|
61 |
}
|
103 |
file_put_contents($this->config('path'). '/error_activation.html', ob_get_contents());
|
104 |
}
|
105 |
|
106 |
+
public static function _activation() {
|
107 |
if ( !self::is_current_version() ) self::update_self();
|
108 |
}
|
109 |
|
110 |
public function _deactivation() {}
|
111 |
|
112 |
+
public static function is_current_version()
|
113 |
{
|
114 |
+
return version_compare( self::current_version(), EPS_REDIRECT_VERSION, '=') ? true : false; // TODO decouple
|
115 |
}
|
116 |
+
public static function current_version()
|
117 |
{
|
118 |
+
return get_option( 'eps_redirects_version' ); // TODO decouple
|
119 |
}
|
120 |
+
public static function set_current_version( $version )
|
121 |
{
|
122 |
+
update_option( 'eps_redirects_version', $version );
|
123 |
}
|
124 |
/**
|
125 |
*
|
plugin.php
CHANGED
@@ -33,16 +33,24 @@ class EPS_Redirects_Plugin extends EPS_Plugin {
|
|
33 |
// Template Hooks
|
34 |
add_action( 'redirects_admin_tab', array($this, 'admin_tab_redirects'), 10, 1 );
|
35 |
add_action( '404s_admin_tab', array($this, 'admin_tab_404s'), 10, 1 );
|
|
|
36 |
add_action( 'import-export_admin_tab', array($this, 'admin_tab_import_export'), 10, 1 );
|
37 |
add_action( 'eps_redirects_panels_left', array($this, 'admin_panel_cache'));
|
38 |
add_action( 'eps_redirects_panels_right', array($this, 'admin_panel_donate'));
|
39 |
-
add_action('eps_redirects_admin_head', array($this, 'admin_header_notices'));
|
40 |
|
41 |
// Actions
|
42 |
-
add_action('admin_init', array($this, 'check_plugin_actions'));
|
|
|
|
|
43 |
|
44 |
}
|
45 |
|
|
|
|
|
|
|
|
|
|
|
46 |
/**
|
47 |
*
|
48 |
* update_self
|
@@ -55,9 +63,7 @@ class EPS_Redirects_Plugin extends EPS_Plugin {
|
|
55 |
*/
|
56 |
public function update_self()
|
57 |
{
|
58 |
-
|
59 |
$version = get_option( 'eps_redirects_version' );
|
60 |
-
$this->_create_tables(); // Maybe create the tables
|
61 |
|
62 |
if( version_compare($version, '2.0.0', '<')) {
|
63 |
// migrate old format to new format.
|
@@ -107,7 +113,7 @@ class EPS_Redirects_Plugin extends EPS_Plugin {
|
|
107 |
* @author epstudios
|
108 |
*
|
109 |
*/
|
110 |
-
public function
|
111 |
{
|
112 |
global $wpdb;
|
113 |
|
@@ -322,7 +328,7 @@ class EPS_Redirects_Plugin extends EPS_Plugin {
|
|
322 |
}
|
323 |
$save_redirects[] = $redirect;
|
324 |
break;
|
325 |
-
|
326 |
$save_redirects[] = $redirect;
|
327 |
break;
|
328 |
}
|
@@ -376,6 +382,10 @@ class EPS_Redirects_Plugin extends EPS_Plugin {
|
|
376 |
{
|
377 |
include ( EPS_REDIRECT_PATH . 'templates/admin-tab-import-export.php' );
|
378 |
}
|
|
|
|
|
|
|
|
|
379 |
|
380 |
public static function admin_header_notices()
|
381 |
{
|
33 |
// Template Hooks
|
34 |
add_action( 'redirects_admin_tab', array($this, 'admin_tab_redirects'), 10, 1 );
|
35 |
add_action( '404s_admin_tab', array($this, 'admin_tab_404s'), 10, 1 );
|
36 |
+
add_action( 'error_admin_tab', array($this, 'admin_tab_error'), 10, 1 );
|
37 |
add_action( 'import-export_admin_tab', array($this, 'admin_tab_import_export'), 10, 1 );
|
38 |
add_action( 'eps_redirects_panels_left', array($this, 'admin_panel_cache'));
|
39 |
add_action( 'eps_redirects_panels_right', array($this, 'admin_panel_donate'));
|
40 |
+
add_action( 'eps_redirects_admin_head', array($this, 'admin_header_notices'));
|
41 |
|
42 |
// Actions
|
43 |
+
add_action( 'admin_init', array($this, 'check_plugin_actions'));
|
44 |
+
|
45 |
+
|
46 |
|
47 |
}
|
48 |
|
49 |
+
public static function _activation()
|
50 |
+
{
|
51 |
+
self::_create_redirect_table(); // Maybe create the tables
|
52 |
+
if ( !self::is_current_version() ) self::update_self();
|
53 |
+
}
|
54 |
/**
|
55 |
*
|
56 |
* update_self
|
63 |
*/
|
64 |
public function update_self()
|
65 |
{
|
|
|
66 |
$version = get_option( 'eps_redirects_version' );
|
|
|
67 |
|
68 |
if( version_compare($version, '2.0.0', '<')) {
|
69 |
// migrate old format to new format.
|
113 |
* @author epstudios
|
114 |
*
|
115 |
*/
|
116 |
+
public static function _create_redirect_table()
|
117 |
{
|
118 |
global $wpdb;
|
119 |
|
328 |
}
|
329 |
$save_redirects[] = $redirect;
|
330 |
break;
|
331 |
+
default:
|
332 |
$save_redirects[] = $redirect;
|
333 |
break;
|
334 |
}
|
382 |
{
|
383 |
include ( EPS_REDIRECT_PATH . 'templates/admin-tab-import-export.php' );
|
384 |
}
|
385 |
+
public static function admin_tab_error( $options )
|
386 |
+
{
|
387 |
+
include ( EPS_REDIRECT_PATH . 'templates/admin-tab-error.php' );
|
388 |
+
}
|
389 |
|
390 |
public static function admin_header_notices()
|
391 |
{
|
readme.txt
CHANGED
@@ -10,7 +10,7 @@ Requires at least: 3.0.1
|
|
10 |
|
11 |
Tested up to: 4.2.1
|
12 |
|
13 |
-
Stable tag: 2.2.
|
14 |
|
15 |
License: GPLv2 or later
|
16 |
|
@@ -116,6 +116,10 @@ By default, any URL with a query string is considered unique, and will redirect
|
|
116 |
|
117 |
== Changelog ==
|
118 |
|
|
|
|
|
|
|
|
|
119 |
= 2.2.0 =
|
120 |
Minor bug fixes. Greatly improved import feature. Redirects include query strings. Export feature added. Http/Https agnostic. Pro version added with 404 management.
|
121 |
|
@@ -164,6 +168,9 @@ Overhauled the entire plugin. Redirects are stored in their own table. Gracefull
|
|
164 |
|
165 |
== Upgrade Notice ==
|
166 |
|
|
|
|
|
|
|
167 |
= 2.2.0 =
|
168 |
Minor bug fixes. Greatly improved import feature, added Export feature plus many other updates. A Pro Version is now available with 404 Management!
|
169 |
|
10 |
|
11 |
Tested up to: 4.2.1
|
12 |
|
13 |
+
Stable tag: 2.2.3
|
14 |
|
15 |
License: GPLv2 or later
|
16 |
|
116 |
|
117 |
== Changelog ==
|
118 |
|
119 |
+
= 2.2.3 =
|
120 |
+
Fixed an issue where the redirect database tables were not being created, causing 'Invalid Destination URL' errors.
|
121 |
+
|
122 |
+
|
123 |
= 2.2.0 =
|
124 |
Minor bug fixes. Greatly improved import feature. Redirects include query strings. Export feature added. Http/Https agnostic. Pro version added with 404 management.
|
125 |
|
168 |
|
169 |
== Upgrade Notice ==
|
170 |
|
171 |
+
= 2.2.3 =
|
172 |
+
Fixed an issue where the redirect database tables were not being created, causing 'Invalid Destination URL' errors.
|
173 |
+
|
174 |
= 2.2.0 =
|
175 |
Minor bug fixes. Greatly improved import feature, added Export feature plus many other updates. A Pro Version is now available with 404 Management!
|
176 |
|
templates/admin-tab-error.php
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
*
|
4 |
+
* The Redirects Tab.
|
5 |
+
*
|
6 |
+
* The main admin area for the redirects tab.
|
7 |
+
*
|
8 |
+
* @package EPS 301 Redirects
|
9 |
+
* @author Shawn Wernig ( shawn@eggplantstudios.ca )
|
10 |
+
*/
|
11 |
+
?>
|
12 |
+
|
13 |
+
|
14 |
+
<div class="wrap">
|
15 |
+
<?php do_action('eps_redirects_admin_head'); ?>
|
16 |
+
|
17 |
+
<div class="eps-notice eps-warning">
|
18 |
+
<?php echo $options['description']; ?>
|
19 |
+
</div>
|
20 |
+
|
21 |
+
|
22 |
+
<div class="right">
|
23 |
+
<?php do_action('eps_redirects_panels_right'); ?>
|
24 |
+
</div>
|
25 |
+
<div class="left">
|
26 |
+
<?php do_action('eps_redirects_panels_left'); ?>
|
27 |
+
</div>
|
28 |
+
</div>
|
29 |
+
|
30 |
+
|
31 |
+
|
32 |
+
|
templates/admin-tab-import-export.php
CHANGED
@@ -23,7 +23,6 @@
|
|
23 |
<p>
|
24 |
<input type="radio" name="eps_redirect_upload_method" value="skip" checked="checked"> Skip Duplicates
|
25 |
<input type="radio" name="eps_redirect_upload_method" value="update"> Update Duplicates
|
26 |
-
<input type="radio" name="eps_redirect_upload_method" value="ignore"> Ignore Duplicates
|
27 |
</p>
|
28 |
|
29 |
<br><small class="eps-grey-text">Supply Columns: <strong>Status</strong> (301,302,inactive), <strong>Request URL</strong>, <strong>Redirect To</strong> (ID or URL). <a href="<?php echo EPS_REDIRECT_URL . 'example.csv'?>" target="_blank">Download Example CSV</a></small>
|
23 |
<p>
|
24 |
<input type="radio" name="eps_redirect_upload_method" value="skip" checked="checked"> Skip Duplicates
|
25 |
<input type="radio" name="eps_redirect_upload_method" value="update"> Update Duplicates
|
|
|
26 |
</p>
|
27 |
|
28 |
<br><small class="eps-grey-text">Supply Columns: <strong>Status</strong> (301,302,inactive), <strong>Request URL</strong>, <strong>Redirect To</strong> (ID or URL). <a href="<?php echo EPS_REDIRECT_URL . 'example.csv'?>" target="_blank">Download Example CSV</a></small>
|