Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Q
question2answer
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
outils
question2answer
Commits
14d54fd4
Commit
14d54fd4
authored
Jul 15, 2016
by
Scott
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Coding style (admin pages)
parent
2be2b6bb
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
947 additions
and
989 deletions
+947
-989
admin-approve.php
qa-include/pages/admin/admin-approve.php
+44
-47
admin-categories.php
qa-include/pages/admin/admin-categories.php
+173
-170
admin-flagged.php
qa-include/pages/admin/admin-flagged.php
+48
-51
admin-hidden.php
qa-include/pages/admin/admin-hidden.php
+66
-66
admin-moderate.php
qa-include/pages/admin/admin-moderate.php
+46
-50
admin-pages.php
qa-include/pages/admin/admin-pages.php
+151
-157
admin-plugins.php
qa-include/pages/admin/admin-plugins.php
+50
-58
admin-points.php
qa-include/pages/admin/admin-points.php
+54
-60
admin-recalc.php
qa-include/pages/admin/admin-recalc.php
+36
-41
admin-stats.php
qa-include/pages/admin/admin-stats.php
+59
-62
admin-userfields.php
qa-include/pages/admin/admin-userfields.php
+76
-79
admin-usertitles.php
qa-include/pages/admin/admin-usertitles.php
+41
-46
admin-widgets.php
qa-include/pages/admin/admin-widgets.php
+103
-102
No files found.
qa-include/pages/admin/admin-approve.php
View file @
14d54fd4
...
@@ -20,53 +20,53 @@
...
@@ -20,53 +20,53 @@
More about this license: http://www.question2answer.org/license.php
More about this license: http://www.question2answer.org/license.php
*/
*/
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
header
(
'Location: ../'
);
header
(
'Location: ../'
);
exit
;
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
// Check we're not using single-sign on integration
// Check we're not using single-sign on integration
if
(
QA_FINAL_EXTERNAL_USERS
)
if
(
QA_FINAL_EXTERNAL_USERS
)
qa_fatal_error
(
'User accounts are handled by external code'
);
qa_fatal_error
(
'User accounts are handled by external code'
);
// Find most flagged questions, answers, comments
// Find most flagged questions, answers, comments
$userid
=
qa_get_logged_in_userid
();
$userid
=
qa_get_logged_in_userid
();
$users
=
qa_db_get_unapproved_users
(
qa_opt
(
'page_size_users'
));
$users
=
qa_db_get_unapproved_users
(
qa_opt
(
'page_size_users'
));
$userfields
=
qa_db_select_with_pending
(
qa_db_userfields_selectspec
());
$userfields
=
qa_db_select_with_pending
(
qa_db_userfields_selectspec
());
// Check admin privileges (do late to allow one DB query)
// Check admin privileges (do late to allow one DB query)
if
(
qa_get_logged_in_level
()
<
QA_USER_LEVEL_MODERATOR
)
{
if
(
qa_get_logged_in_level
()
<
QA_USER_LEVEL_MODERATOR
)
{
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
return
$qa_content
;
return
$qa_content
;
}
}
// Check to see if any were approved or blocked here
// Check to see if any were approved or blocked here
$pageerror
=
qa_admin_check_clicks
();
$pageerror
=
qa_admin_check_clicks
();
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/approve_users_title'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/approve_users_title'
);
$qa_content
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'message_list'
]
=
array
(
$qa_content
[
'message_list'
]
=
array
(
'form'
=>
array
(
'form'
=>
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'hidden'
=>
array
(
'hidden'
=>
array
(
'code'
=>
qa_get_form_security_code
(
'admin/click'
),
'code'
=>
qa_get_form_security_code
(
'admin/click'
),
...
@@ -74,67 +74,64 @@
...
@@ -74,67 +74,64 @@
),
),
'messages'
=>
array
(),
'messages'
=>
array
(),
);
);
if
(
count
(
$users
))
{
if
(
count
(
$users
))
{
foreach
(
$users
as
$user
)
{
foreach
(
$users
as
$user
)
{
$message
=
array
();
$message
=
array
();
$message
[
'tags'
]
=
'id="p'
.
qa_html
(
$user
[
'userid'
])
.
'"'
;
// use p prefix for qa_admin_click() in qa-admin.js
$message
[
'tags'
]
=
'id="p'
.
qa_html
(
$user
[
'userid'
])
.
'"'
;
// use p prefix for qa_admin_click() in qa-admin.js
$message
[
'content'
]
=
qa_lang_html
(
'users/registered_label'
)
.
' '
.
$message
[
'content'
]
=
qa_lang_html
(
'users/registered_label'
)
.
' '
.
strtr
(
qa_lang_html
(
'users/x_ago_from_y'
),
array
(
strtr
(
qa_lang_html
(
'users/x_ago_from_y'
),
array
(
'^1'
=>
qa_time_to_string
(
qa_opt
(
'db_time'
)
-
$user
[
'created'
]),
'^1'
=>
qa_time_to_string
(
qa_opt
(
'db_time'
)
-
$user
[
'created'
]),
'^2'
=>
qa_ip_anchor_html
(
@
inet_ntop
(
$user
[
'createip'
])),
'^2'
=>
qa_ip_anchor_html
(
@
inet_ntop
(
$user
[
'createip'
])),
))
.
'<br/>'
;
))
.
'<br/>'
;
$htmlemail
=
qa_html
(
$user
[
'email'
]);
$htmlemail
=
qa_html
(
$user
[
'email'
]);
$message
[
'content'
]
.=
qa_lang_html
(
'users/email_label'
)
.
' <a href="mailto:'
.
$htmlemail
.
'">'
.
$htmlemail
.
'</a>'
;
$message
[
'content'
]
.=
qa_lang_html
(
'users/email_label'
)
.
' <a href="mailto:'
.
$htmlemail
.
'">'
.
$htmlemail
.
'</a>'
;
if
(
qa_opt
(
'confirm_user_emails'
))
if
(
qa_opt
(
'confirm_user_emails'
))
{
$message
[
'content'
]
.=
'<small> - '
.
qa_lang_html
((
$user
[
'flags'
]
&
QA_USER_FLAGS_EMAIL_CONFIRMED
)
?
'users/email_confirmed'
:
'users/email_not_confirmed'
)
.
'</small>'
;
$message
[
'content'
]
.=
'<small> - '
.
qa_lang_html
((
$user
[
'flags'
]
&
QA_USER_FLAGS_EMAIL_CONFIRMED
)
?
'users/email_confirmed'
:
'users/email_not_confirmed'
)
.
'</small>'
;
}
foreach
(
$userfields
as
$userfield
)
foreach
(
$userfields
as
$userfield
)
{
if
(
strlen
(
@
$user
[
'profile'
][
$userfield
[
'title'
]]))
if
(
strlen
(
@
$user
[
'profile'
][
$userfield
[
'title'
]]))
$message
[
'content'
]
.=
'<br/>'
.
qa_html
(
$userfield
[
'content'
]
.
': '
.
$user
[
'profile'
][
$userfield
[
'title'
]]);
$message
[
'content'
]
.=
'<br/>'
.
qa_html
(
$userfield
[
'content'
]
.
': '
.
$user
[
'profile'
][
$userfield
[
'title'
]]);
}
$message
[
'meta_order'
]
=
qa_lang_html
(
'main/meta_order'
);
$message
[
'meta_order'
]
=
qa_lang_html
(
'main/meta_order'
);
$message
[
'who'
][
'data'
]
=
qa_get_one_user_html
(
$user
[
'handle'
]);
$message
[
'who'
][
'data'
]
=
qa_get_one_user_html
(
$user
[
'handle'
]);
$message
[
'form'
]
=
array
(
$message
[
'form'
]
=
array
(
'style'
=>
'light'
,
'style'
=>
'light'
,
'buttons'
=>
array
(
'buttons'
=>
array
(
'approve'
=>
array
(
'approve'
=>
array
(
'tags'
=>
'name="admin_'
.
$user
[
'userid'
]
.
'_userapprove" onclick="return qa_admin_click(this);"'
,
'tags'
=>
'name="admin_'
.
$user
[
'userid'
]
.
'_userapprove" onclick="return qa_admin_click(this);"'
,
'label'
=>
qa_lang_html
(
'question/approve_button'
),
'label'
=>
qa_lang_html
(
'question/approve_button'
),
'popup'
=>
qa_lang_html
(
'admin/approve_user_popup'
),
'popup'
=>
qa_lang_html
(
'admin/approve_user_popup'
),
),
),
'block'
=>
array
(
'block'
=>
array
(
'tags'
=>
'name="admin_'
.
$user
[
'userid'
]
.
'_userblock" onclick="return qa_admin_click(this);"'
,
'tags'
=>
'name="admin_'
.
$user
[
'userid'
]
.
'_userblock" onclick="return qa_admin_click(this);"'
,
'label'
=>
qa_lang_html
(
'admin/block_button'
),
'label'
=>
qa_lang_html
(
'admin/block_button'
),
'popup'
=>
qa_lang_html
(
'admin/block_user_popup'
),
'popup'
=>
qa_lang_html
(
'admin/block_user_popup'
),
),
),
),
),
);
);
$qa_content
[
'message_list'
][
'messages'
][]
=
$message
;
$qa_content
[
'message_list'
][
'messages'
][]
=
$message
;
}
}
}
else
}
else
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/no_unapproved_found'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/no_unapproved_found'
);
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
return
$qa_content
;
return
$qa_content
;
/*
Omit PHP closing tag to help avoid accidental output
*/
qa-include/pages/admin/admin-categories.php
View file @
14d54fd4
...
@@ -20,83 +20,84 @@
...
@@ -20,83 +20,84 @@
More about this license: http://www.question2answer.org/license.php
More about this license: http://www.question2answer.org/license.php
*/
*/
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
header
(
'Location: ../'
);
header
(
'Location: ../'
);
exit
;
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
// Get relevant list of categories
// Get relevant list of categories
$editcategoryid
=
qa_post_text
(
'edit'
);
$editcategoryid
=
qa_post_text
(
'edit'
);
if
(
!
isset
(
$editcategoryid
))
if
(
!
isset
(
$editcategoryid
))
$editcategoryid
=
qa_get
(
'edit'
);
$editcategoryid
=
qa_get
(
'edit'
);
if
(
!
isset
(
$editcategoryid
))
if
(
!
isset
(
$editcategoryid
))
$editcategoryid
=
qa_get
(
'addsub'
);
$editcategoryid
=
qa_get
(
'addsub'
);
$categories
=
qa_db_select_with_pending
(
qa_db_category_nav_selectspec
(
$editcategoryid
,
true
,
false
,
true
));
$categories
=
qa_db_select_with_pending
(
qa_db_category_nav_selectspec
(
$editcategoryid
,
true
,
false
,
true
));
// Check admin privileges (do late to allow one DB query)
// Check admin privileges (do late to allow one DB query)
if
(
!
qa_admin_check_privileges
(
$qa_content
))
if
(
!
qa_admin_check_privileges
(
$qa_content
))
return
$qa_content
;
return
$qa_content
;
// Work out the appropriate state for the page
// Work out the appropriate state for the page
$editcategory
=
@
$categories
[
$editcategoryid
];
$editcategory
=
@
$categories
[
$editcategoryid
];
if
(
isset
(
$editcategory
))
{
if
(
isset
(
$editcategory
))
{
$parentid
=
qa_get
(
'addsub'
);
$parentid
=
qa_get
(
'addsub'
);
if
(
isset
(
$parentid
))
if
(
isset
(
$parentid
))
$editcategory
=
array
(
'parentid'
=>
$parentid
);
$editcategory
=
array
(
'parentid'
=>
$parentid
);
}
else
{
}
else
{
if
(
qa_clicked
(
'doaddcategory'
))
if
(
qa_clicked
(
'doaddcategory'
))
$editcategory
=
array
();
$editcategory
=
array
();
elseif
(
qa_clicked
(
'dosavecategory'
))
{
elseif
(
qa_clicked
(
'dosavecategory'
))
{
$parentid
=
qa_post_text
(
'parent'
);
$parentid
=
qa_post_text
(
'parent'
);
$editcategory
=
array
(
'parentid'
=>
strlen
(
$parentid
)
?
$parentid
:
null
);
$editcategory
=
array
(
'parentid'
=>
strlen
(
$parentid
)
?
$parentid
:
null
);
}
}
}
}
$setmissing
=
qa_post_text
(
'missing'
)
||
qa_get
(
'missing'
);
$setmissing
=
qa_post_text
(
'missing'
)
||
qa_get
(
'missing'
);
$setparent
=
(
!
$setmissing
)
&&
(
qa_post_text
(
'setparent'
)
||
qa_get
(
'setparent'
))
&&
isset
(
$editcategory
[
'categoryid'
]);
$setparent
=
!
$setmissing
&&
(
qa_post_text
(
'setparent'
)
||
qa_get
(
'setparent'
))
&&
isset
(
$editcategory
[
'categoryid'
]);
$hassubcategory
=
false
;
$hassubcategory
=
false
;
foreach
(
$categories
as
$category
)
foreach
(
$categories
as
$category
)
{
if
(
!
strcmp
(
$category
[
'parentid'
],
$editcategoryid
))
if
(
!
strcmp
(
$category
[
'parentid'
],
$editcategoryid
))
$hassubcategory
=
true
;
$hassubcategory
=
true
;
}
// Process saving options
// Process saving options
$savedoptions
=
false
;
$savedoptions
=
false
;
$securityexpired
=
false
;
$securityexpired
=
false
;
if
(
qa_clicked
(
'dosaveoptions'
))
{
if
(
qa_clicked
(
'dosaveoptions'
))
{
if
(
!
qa_check_form_security_code
(
'admin/categories'
,
qa_post_text
(
'code'
)))
if
(
!
qa_check_form_security_code
(
'admin/categories'
,
qa_post_text
(
'code'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
else
{
else
{
qa_set_option
(
'allow_no_category'
,
(
int
)
qa_post_text
(
'option_allow_no_category'
));
qa_set_option
(
'allow_no_category'
,
(
int
)
qa_post_text
(
'option_allow_no_category'
));
qa_set_option
(
'allow_no_sub_category'
,
(
int
)
qa_post_text
(
'option_allow_no_sub_category'
));
qa_set_option
(
'allow_no_sub_category'
,
(
int
)
qa_post_text
(
'option_allow_no_sub_category'
));
$savedoptions
=
true
;
$savedoptions
=
true
;
}
}
}
}
// Process saving an old or new category
// Process saving an old or new category
if
(
qa_clicked
(
'docancel'
))
{
if
(
qa_clicked
(
'docancel'
))
{
if
(
$setmissing
||
$setparent
)
if
(
$setmissing
||
$setparent
)
qa_redirect
(
qa_request
(),
array
(
'edit'
=>
$editcategory
[
'categoryid'
]));
qa_redirect
(
qa_request
(),
array
(
'edit'
=>
$editcategory
[
'categoryid'
]));
elseif
(
isset
(
$editcategory
[
'categoryid'
]))
elseif
(
isset
(
$editcategory
[
'categoryid'
]))
...
@@ -104,96 +105,97 @@
...
@@ -104,96 +105,97 @@
else
else
qa_redirect
(
qa_request
(),
array
(
'edit'
=>
@
$editcategory
[
'parentid'
]));
qa_redirect
(
qa_request
(),
array
(
'edit'
=>
@
$editcategory
[
'parentid'
]));
}
elseif
(
qa_clicked
(
'dosetmissing'
))
{
}
elseif
(
qa_clicked
(
'dosetmissing'
))
{
if
(
!
qa_check_form_security_code
(
'admin/categories'
,
qa_post_text
(
'code'
)))
if
(
!
qa_check_form_security_code
(
'admin/categories'
,
qa_post_text
(
'code'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
else
{
else
{
$inreassign
=
qa_get_category_field_value
(
'reassign'
);
$inreassign
=
qa_get_category_field_value
(
'reassign'
);
qa_db_category_reassign
(
$editcategory
[
'categoryid'
],
$inreassign
);
qa_db_category_reassign
(
$editcategory
[
'categoryid'
],
$inreassign
);
qa_redirect
(
qa_request
(),
array
(
'recalc'
=>
1
,
'edit'
=>
$editcategory
[
'categoryid'
]));
qa_redirect
(
qa_request
(),
array
(
'recalc'
=>
1
,
'edit'
=>
$editcategory
[
'categoryid'
]));
}
}
}
elseif
(
qa_clicked
(
'dosavecategory'
))
{
}
elseif
(
qa_clicked
(
'dosavecategory'
))
{
if
(
!
qa_check_form_security_code
(
'admin/categories'
,
qa_post_text
(
'code'
)))
if
(
!
qa_check_form_security_code
(
'admin/categories'
,
qa_post_text
(
'code'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
elseif
(
qa_post_text
(
'dodelete'
))
{
elseif
(
qa_post_text
(
'dodelete'
))
{
if
(
!
$hassubcategory
)
{
if
(
!
$hassubcategory
)
{
$inreassign
=
qa_get_category_field_value
(
'reassign'
);
$inreassign
=
qa_get_category_field_value
(
'reassign'
);
qa_db_category_reassign
(
$editcategory
[
'categoryid'
],
$inreassign
);
qa_db_category_reassign
(
$editcategory
[
'categoryid'
],
$inreassign
);
qa_db_category_delete
(
$editcategory
[
'categoryid'
]);
qa_db_category_delete
(
$editcategory
[
'categoryid'
]);
qa_redirect
(
qa_request
(),
array
(
'recalc'
=>
1
,
'edit'
=>
$editcategory
[
'parentid'
]));
qa_redirect
(
qa_request
(),
array
(
'recalc'
=>
1
,
'edit'
=>
$editcategory
[
'parentid'
]));
}
}
}
else
{
}
else
{
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
$inname
=
qa_post_text
(
'name'
);
$inname
=
qa_post_text
(
'name'
);
$incontent
=
qa_post_text
(
'content'
);
$incontent
=
qa_post_text
(
'content'
);
$inparentid
=
$setparent
?
qa_get_category_field_value
(
'parent'
)
:
$editcategory
[
'parentid'
];
$inparentid
=
$setparent
?
qa_get_category_field_value
(
'parent'
)
:
$editcategory
[
'parentid'
];
$inposition
=
qa_post_text
(
'position'
);
$inposition
=
qa_post_text
(
'position'
);
$errors
=
array
();
$errors
=
array
();
// Check the parent ID
// Check the parent ID
$incategories
=
qa_db_select_with_pending
(
qa_db_category_nav_selectspec
(
$inparentid
,
true
));
$incategories
=
qa_db_select_with_pending
(
qa_db_category_nav_selectspec
(
$inparentid
,
true
));
// Verify the name is legitimate for that parent ID
// Verify the name is legitimate for that parent ID
if
(
empty
(
$inname
))
if
(
empty
(
$inname
))
$errors
[
'name'
]
=
qa_lang
(
'main/field_required'
);
$errors
[
'name'
]
=
qa_lang
(
'main/field_required'
);
elseif
(
qa_strlen
(
$inname
)
>
QA_DB_MAX_CAT_PAGE_TITLE_LENGTH
)
elseif
(
qa_strlen
(
$inname
)
>
QA_DB_MAX_CAT_PAGE_TITLE_LENGTH
)
$errors
[
'name'
]
=
qa_lang_sub
(
'main/max_length_x'
,
QA_DB_MAX_CAT_PAGE_TITLE_LENGTH
);
$errors
[
'name'
]
=
qa_lang_sub
(
'main/max_length_x'
,
QA_DB_MAX_CAT_PAGE_TITLE_LENGTH
);
else
{
else
{
foreach
(
$incategories
as
$category
)
foreach
(
$incategories
as
$category
)
{
if
(
if
(
(
!
strcmp
(
$category
[
'parentid'
],
$inparentid
)
)
&&
!
strcmp
(
$category
[
'parentid'
],
$inparentid
)
&&
strcmp
(
$category
[
'categoryid'
],
@
$editcategory
[
'categoryid'
])
&&
strcmp
(
$category
[
'categoryid'
],
@
$editcategory
[
'categoryid'
])
&&
qa_strtolower
(
$category
[
'title'
])
==
qa_strtolower
(
$inname
)
qa_strtolower
(
$category
[
'title'
])
==
qa_strtolower
(
$inname
)
)
)
{
$errors
[
'name'
]
=
qa_lang
(
'admin/category_already_used'
);
$errors
[
'name'
]
=
qa_lang
(
'admin/category_already_used'
);
}
}
}
}
// Verify the slug is legitimate for that parent ID
// Verify the slug is legitimate for that parent ID
for
(
$attempt
=
0
;
$attempt
<
100
;
$attempt
++
)
{
for
(
$attempt
=
0
;
$attempt
<
100
;
$attempt
++
)
{
switch
(
$attempt
)
{
switch
(
$attempt
)
{
case
0
:
case
0
:
$inslug
=
qa_post_text
(
'slug'
);
$inslug
=
qa_post_text
(
'slug'
);
if
(
!
isset
(
$inslug
))
if
(
!
isset
(
$inslug
))
$inslug
=
implode
(
'-'
,
qa_string_to_words
(
$inname
));
$inslug
=
implode
(
'-'
,
qa_string_to_words
(
$inname
));
break
;
break
;
case
1
:
case
1
:
$inslug
=
qa_lang_sub
(
'admin/category_default_slug'
,
$inslug
);
$inslug
=
qa_lang_sub
(
'admin/category_default_slug'
,
$inslug
);
break
;
break
;
default
:
default
:
$inslug
=
qa_lang_sub
(
'admin/category_default_slug'
,
$attempt
-
1
);
$inslug
=
qa_lang_sub
(
'admin/category_default_slug'
,
$attempt
-
1
);
break
;
break
;
}
}
$matchcategoryid
=
qa_db_category_slug_to_id
(
$inparentid
,
$inslug
);
// query against DB since MySQL ignores accents, etc...
$matchcategoryid
=
qa_db_category_slug_to_id
(
$inparentid
,
$inslug
);
// query against DB since MySQL ignores accents, etc...
if
(
!
isset
(
$inparentid
))
if
(
!
isset
(
$inparentid
))
$matchpage
=
qa_db_single_select
(
qa_db_page_full_selectspec
(
$inslug
,
false
));
$matchpage
=
qa_db_single_select
(
qa_db_page_full_selectspec
(
$inslug
,
false
));
else
else
$matchpage
=
null
;
$matchpage
=
null
;
if
(
empty
(
$inslug
))
if
(
empty
(
$inslug
))
$errors
[
'slug'
]
=
qa_lang
(
'main/field_required'
);
$errors
[
'slug'
]
=
qa_lang
(
'main/field_required'
);
elseif
(
qa_strlen
(
$inslug
)
>
QA_DB_MAX_CAT_PAGE_TAGS_LENGTH
)
elseif
(
qa_strlen
(
$inslug
)
>
QA_DB_MAX_CAT_PAGE_TAGS_LENGTH
)
$errors
[
'slug'
]
=
qa_lang_sub
(
'main/max_length_x'
,
QA_DB_MAX_CAT_PAGE_TAGS_LENGTH
);
$errors
[
'slug'
]
=
qa_lang_sub
(
'main/max_length_x'
,
QA_DB_MAX_CAT_PAGE_TAGS_LENGTH
);
elseif
(
preg_match
(
'/[\\+\\/]/'
,
$inslug
))
elseif
(
preg_match
(
'/[\\+\\/]/'
,
$inslug
))
$errors
[
'slug'
]
=
qa_lang_sub
(
'admin/slug_bad_chars'
,
'+ /'
);
$errors
[
'slug'
]
=
qa_lang_sub
(
'admin/slug_bad_chars'
,
'+ /'
);
elseif
(
(
!
isset
(
$inparentid
))
&&
qa_admin_is_slug_reserved
(
$inslug
))
// only top level is a problem
elseif
(
(
!
isset
(
$inparentid
))
&&
qa_admin_is_slug_reserved
(
$inslug
))
// only top level is a problem
$errors
[
'slug'
]
=
qa_lang
(
'admin/slug_reserved'
);
$errors
[
'slug'
]
=
qa_lang
(
'admin/slug_reserved'
);
elseif
(
isset
(
$matchcategoryid
)
&&
strcmp
(
$matchcategoryid
,
@
$editcategory
[
'categoryid'
]))
elseif
(
isset
(
$matchcategoryid
)
&&
strcmp
(
$matchcategoryid
,
@
$editcategory
[
'categoryid'
]))
$errors
[
'slug'
]
=
qa_lang
(
'admin/category_already_used'
);
$errors
[
'slug'
]
=
qa_lang
(
'admin/category_already_used'
);
elseif
(
isset
(
$matchpage
))
elseif
(
isset
(
$matchpage
))
$errors
[
'slug'
]
=
qa_lang
(
'admin/page_already_used'
);
$errors
[
'slug'
]
=
qa_lang
(
'admin/page_already_used'
);
else
else
unset
(
$errors
[
'slug'
]);
unset
(
$errors
[
'slug'
]);
...
@@ -207,21 +209,21 @@
...
@@ -207,21 +209,21 @@
if
(
isset
(
$editcategory
[
'categoryid'
]))
{
// changing existing category
if
(
isset
(
$editcategory
[
'categoryid'
]))
{
// changing existing category
qa_db_category_rename
(
$editcategory
[
'categoryid'
],
$inname
,
$inslug
);
qa_db_category_rename
(
$editcategory
[
'categoryid'
],
$inname
,
$inslug
);
$recalc
=
false
;
$recalc
=
false
;
if
(
$setparent
)
{
if
(
$setparent
)
{
qa_db_category_set_parent
(
$editcategory
[
'categoryid'
],
$inparentid
);
qa_db_category_set_parent
(
$editcategory
[
'categoryid'
],
$inparentid
);
$recalc
=
true
;
$recalc
=
true
;
}
else
{
}
else
{
qa_db_category_set_content
(
$editcategory
[
'categoryid'
],
$incontent
);
qa_db_category_set_content
(
$editcategory
[
'categoryid'
],
$incontent
);
qa_db_category_set_position
(
$editcategory
[
'categoryid'
],
$inposition
);
qa_db_category_set_position
(
$editcategory
[
'categoryid'
],
$inposition
);
$recalc
=
(
$hassubcategory
&&
(
$inslug
!==
$editcategory
[
'tags'
]))
;
$recalc
=
$hassubcategory
&&
$inslug
!==
$editcategory
[
'tags'
]
;
}
}
qa_redirect
(
qa_request
(),
array
(
'edit'
=>
$editcategory
[
'categoryid'
],
'saved'
=>
true
,
'recalc'
=>
(
int
)
$recalc
));
qa_redirect
(
qa_request
(),
array
(
'edit'
=>
$editcategory
[
'categoryid'
],
'saved'
=>
true
,
'recalc'
=>
(
int
)
$recalc
));
}
else
{
// creating a new one
}
else
{
// creating a new one
$categoryid
=
qa_db_category_create
(
$inparentid
,
$inname
,
$inslug
);
$categoryid
=
qa_db_category_create
(
$inparentid
,
$inname
,
$inslug
);
qa_db_category_set_content
(
$categoryid
,
$incontent
);
qa_db_category_set_content
(
$categoryid
,
$incontent
);
...
@@ -232,19 +234,19 @@
...
@@ -232,19 +234,19 @@
}
}
}
}
}
}
}
}
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/categories_title'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/categories_title'
);
$qa_content
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$qa_content
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
if
(
$setmissing
)
{
if
(
$setmissing
)
{
$qa_content
[
'form'
]
=
array
(
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'style'
=>
'tall'
,
'style'
=>
'tall'
,
...
@@ -281,10 +283,10 @@
...
@@ -281,10 +283,10 @@
$categories
,
@
$editcategory
[
'categoryid'
],
qa_opt
(
'allow_no_category'
),
qa_opt
(
'allow_no_sub_category'
));
$categories
,
@
$editcategory
[
'categoryid'
],
qa_opt
(
'allow_no_category'
),
qa_opt
(
'allow_no_sub_category'
));
}
elseif
(
isset
(
$editcategory
))
{
}
elseif
(
isset
(
$editcategory
))
{
$qa_content
[
'form'
]
=
array
(
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'style'
=>
'tall'
,
'style'
=>
'tall'
,
...
@@ -351,37 +353,37 @@
...
@@ -351,37 +353,37 @@
unset
(
$qa_content
[
'form'
][
'fields'
][
'questions'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'questions'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'content'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'content'
]);
$qa_content
[
'form'
][
'fields'
][
'parent'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'parent'
]
=
array
(
'label'
=>
qa_lang_html
(
'admin/category_parent'
),
'label'
=>
qa_lang_html
(
'admin/category_parent'
),
);
);
$childdepth
=
qa_db_category_child_depth
(
$editcategory
[
'categoryid'
]);
$childdepth
=
qa_db_category_child_depth
(
$editcategory
[
'categoryid'
]);
qa_set_up_category_field
(
$qa_content
,
$qa_content
[
'form'
][
'fields'
][
'parent'
],
'parent'
,
qa_set_up_category_field
(
$qa_content
,
$qa_content
[
'form'
][
'fields'
][
'parent'
],
'parent'
,
isset
(
$incategories
)
?
$incategories
:
$categories
,
isset
(
$inparentid
)
?
$inparentid
:
@
$editcategory
[
'parentid'
],
isset
(
$incategories
)
?
$incategories
:
$categories
,
isset
(
$inparentid
)
?
$inparentid
:
@
$editcategory
[
'parentid'
],
true
,
true
,
QA_CATEGORY_DEPTH
-
1
-
$childdepth
,
@
$editcategory
[
'categoryid'
]);
true
,
true
,
QA_CATEGORY_DEPTH
-
1
-
$childdepth
,
@
$editcategory
[
'categoryid'
]);
$qa_content
[
'form'
][
'fields'
][
'parent'
][
'options'
][
''
]
=
qa_lang_html
(
'admin/category_top_level'
);
$qa_content
[
'form'
][
'fields'
][
'parent'
][
'options'
][
''
]
=
qa_lang_html
(
'admin/category_top_level'
);
@
$qa_content
[
'form'
][
'fields'
][
'parent'
][
'note'
]
.=
qa_lang_html_sub
(
'admin/category_max_depth_x'
,
QA_CATEGORY_DEPTH
);
@
$qa_content
[
'form'
][
'fields'
][
'parent'
][
'note'
]
.=
qa_lang_html_sub
(
'admin/category_max_depth_x'
,
QA_CATEGORY_DEPTH
);
}
elseif
(
isset
(
$editcategory
[
'categoryid'
]))
{
// existing category
}
elseif
(
isset
(
$editcategory
[
'categoryid'
]))
{
// existing category
if
(
$hassubcategory
)
{
if
(
$hassubcategory
)
{
$qa_content
[
'form'
][
'fields'
][
'name'
][
'note'
]
=
qa_lang_html
(
'admin/category_no_delete_subs'
);
$qa_content
[
'form'
][
'fields'
][
'name'
][
'note'
]
=
qa_lang_html
(
'admin/category_no_delete_subs'
);
unset
(
$qa_content
[
'form'
][
'fields'
][
'delete'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'delete'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'reassign'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'reassign'
]);
}
else
{
}
else
{
$qa_content
[
'form'
][
'fields'
][
'delete'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'delete'
]
=
array
(
'tags'
=>
'name="dodelete" id="dodelete"'
,
'tags'
=>
'name="dodelete" id="dodelete"'
,
'label'
=>
'label'
=>
'<span id="reassign_shown">'
.
qa_lang_html
(
'admin/delete_category_reassign'
)
.
'</span>'
.
'<span id="reassign_shown">'
.
qa_lang_html
(
'admin/delete_category_reassign'
)
.
'</span>'
.
'<span id="reassign_hidden" style="display:none;">'
.
qa_lang_html
(
'admin/delete_category'
)
.
'</span>'
,
'<span id="reassign_hidden" style="display:none;">'
.
qa_lang_html
(
'admin/delete_category'
)
.
'</span>'
,
'value'
=>
0
,
'value'
=>
0
,
'type'
=>
'checkbox'
,
'type'
=>
'checkbox'
,
);
);
$qa_content
[
'form'
][
'fields'
][
'reassign'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'reassign'
]
=
array
(
'id'
=>
'reassign_display'
,
'id'
=>
'reassign_display'
,
'tags'
=>
'name="reassign"'
,
'tags'
=>
'name="reassign"'
,
);
);
...
@@ -390,27 +392,28 @@
...
@@ -390,27 +392,28 @@
$categories
,
$editcategory
[
'parentid'
],
true
,
true
,
null
,
$editcategory
[
'categoryid'
]);
$categories
,
$editcategory
[
'parentid'
],
true
,
true
,
null
,
$editcategory
[
'categoryid'
]);
}
}
$qa_content
[
'form'
][
'fields'
][
'questions'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'questions'
]
=
array
(
'label'
=>
qa_lang_html
(
'admin/total_qs'
),
'label'
=>
qa_lang_html
(
'admin/total_qs'
),
'type'
=>
'static'
,
'type'
=>
'static'
,
'value'
=>
'<a href="'
.
qa_path_html
(
'questions/'
.
qa_category_path_request
(
$categories
,
$editcategory
[
'categoryid'
]))
.
'">'
.
'value'
=>
'<a href="'
.
qa_path_html
(
'questions/'
.
qa_category_path_request
(
$categories
,
$editcategory
[
'categoryid'
]))
.
'">'
.
(
(
$editcategory
[
'qcount'
]
==
1
)
(
$editcategory
[
'qcount'
]
==
1
?
qa_lang_html_sub
(
'main/1_question'
,
'1'
,
'1'
)
?
qa_lang_html_sub
(
'main/1_question'
,
'1'
,
'1'
)
:
qa_lang_html_sub
(
'main/x_questions'
,
qa_format_number
(
$editcategory
[
'qcount'
]))
:
qa_lang_html_sub
(
'main/x_questions'
,
qa_format_number
(
$editcategory
[
'qcount'
]))
)
.
'</a>'
,
)
.
'</a>'
,
);
);
if
(
$hassubcategory
&&
!
qa_opt
(
'allow_no_sub_category'
))
{
if
(
$hassubcategory
&&
!
qa_opt
(
'allow_no_sub_category'
))
{
$nosubcount
=
qa_db_count_categoryid_qs
(
$editcategory
[
'categoryid'
]);
$nosubcount
=
qa_db_count_categoryid_qs
(
$editcategory
[
'categoryid'
]);
if
(
$nosubcount
)
if
(
$nosubcount
)
{
$qa_content
[
'form'
][
'fields'
][
'questions'
][
'error'
]
=
$qa_content
[
'form'
][
'fields'
][
'questions'
][
'error'
]
=
strtr
(
qa_lang_html
(
'admin/category_no_sub_error'
),
array
(
strtr
(
qa_lang_html
(
'admin/category_no_sub_error'
),
array
(
'^q'
=>
qa_format_number
(
$nosubcount
),
'^q'
=>
qa_format_number
(
$nosubcount
),
'^1'
=>
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'edit'
=>
$editcategory
[
'categoryid'
],
'missing'
=>
1
))
.
'">'
,
'^1'
=>
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'edit'
=>
$editcategory
[
'categoryid'
],
'missing'
=>
1
))
.
'">'
,
'^2'
=>
'</a>'
,
'^2'
=>
'</a>'
,
));
));
}
}
}
qa_set_display_rules
(
$qa_content
,
array
(
qa_set_display_rules
(
$qa_content
,
array
(
'position_display'
=>
'!dodelete'
,
'position_display'
=>
'!dodelete'
,
...
@@ -429,59 +432,61 @@
...
@@ -429,59 +432,61 @@
unset
(
$qa_content
[
'form'
][
'fields'
][
'slug'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'slug'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'questions'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'questions'
]);
$qa_content
[
'focusid'
]
=
'name'
;
$qa_content
[
'focusid'
]
=
'name'
;
}
}
if
(
!
$setparent
)
{
if
(
!
$setparent
)
{
$pathhtml
=
qa_category_path_html
(
$categories
,
@
$editcategory
[
'parentid'
]);
$pathhtml
=
qa_category_path_html
(
$categories
,
@
$editcategory
[
'parentid'
]);
if
(
count
(
$categories
))
{
if
(
count
(
$categories
))
{
$qa_content
[
'form'
][
'fields'
][
'parent'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'parent'
]
=
array
(
'id'
=>
'parent_display'
,
'id'
=>
'parent_display'
,
'label'
=>
qa_lang_html
(
'admin/category_parent'
),
'label'
=>
qa_lang_html
(
'admin/category_parent'
),
'type'
=>
'static'
,
'type'
=>
'static'
,
'value'
=>
(
strlen
(
$pathhtml
)
?
$pathhtml
:
qa_lang_html
(
'admin/category_top_level'
)),
'value'
=>
(
strlen
(
$pathhtml
)
?
$pathhtml
:
qa_lang_html
(
'admin/category_top_level'
)),
);
);
$qa_content
[
'form'
][
'fields'
][
'parent'
][
'value'
]
=
$qa_content
[
'form'
][
'fields'
][
'parent'
][
'value'
]
=
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'edit'
=>
@
$editcategory
[
'parentid'
]))
.
'">'
.
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'edit'
=>
@
$editcategory
[
'parentid'
]))
.
'">'
.
$qa_content
[
'form'
][
'fields'
][
'parent'
][
'value'
]
.
'</a>'
;
$qa_content
[
'form'
][
'fields'
][
'parent'
][
'value'
]
.
'</a>'
;
if
(
isset
(
$editcategory
[
'categoryid'
]))
if
(
isset
(
$editcategory
[
'categoryid'
]))
{
$qa_content
[
'form'
][
'fields'
][
'parent'
][
'value'
]
.=
' - '
.
$qa_content
[
'form'
][
'fields'
][
'parent'
][
'value'
]
.=
' - '
.
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'edit'
=>
$editcategory
[
'categoryid'
],
'setparent'
=>
1
))
.
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'edit'
=>
$editcategory
[
'categoryid'
],
'setparent'
=>
1
))
.
'" style="white-space: nowrap;">'
.
qa_lang_html
(
'admin/category_move_parent'
)
.
'</a>'
;
'" style="white-space: nowrap;">'
.
qa_lang_html
(
'admin/category_move_parent'
)
.
'</a>'
;
}
}
}
$positionoptions
=
array
();
$positionoptions
=
array
();
$previous
=
null
;
$previous
=
null
;
$passedself
=
false
;
$passedself
=
false
;
foreach
(
$categories
as
$key
=>
$category
)
foreach
(
$categories
as
$key
=>
$category
)
{
if
(
!
strcmp
(
$category
[
'parentid'
],
@
$editcategory
[
'parentid'
]))
{
if
(
!
strcmp
(
$category
[
'parentid'
],
@
$editcategory
[
'parentid'
]))
{
if
(
isset
(
$previous
))
if
(
isset
(
$previous
))
$positionhtml
=
qa_lang_html_sub
(
'admin/after_x'
,
qa_html
(
$passedself
?
$category
[
'title'
]
:
$previous
[
'title'
]));
$positionhtml
=
qa_lang_html_sub
(
'admin/after_x'
,
qa_html
(
$passedself
?
$category
[
'title'
]
:
$previous
[
'title'
]));
else
else
$positionhtml
=
qa_lang_html
(
'admin/first'
);
$positionhtml
=
qa_lang_html
(
'admin/first'
);
$positionoptions
[
$category
[
'position'
]]
=
$positionhtml
;
$positionoptions
[
$category
[
'position'
]]
=
$positionhtml
;
if
(
!
strcmp
(
$category
[
'categoryid'
],
@
$editcategory
[
'categoryid'
]))
if
(
!
strcmp
(
$category
[
'categoryid'
],
@
$editcategory
[
'categoryid'
]))
$passedself
=
true
;
$passedself
=
true
;
$previous
=
$category
;
$previous
=
$category
;
}
}
}
if
(
isset
(
$editcategory
[
'position'
]))
if
(
isset
(
$editcategory
[
'position'
]))
$positionvalue
=
$positionoptions
[
$editcategory
[
'position'
]];
$positionvalue
=
$positionoptions
[
$editcategory
[
'position'
]];
else
{
else
{
$positionvalue
=
isset
(
$previous
)
?
qa_lang_html_sub
(
'admin/after_x'
,
qa_html
(
$previous
[
'title'
]))
:
qa_lang_html
(
'admin/first'
);
$positionvalue
=
isset
(
$previous
)
?
qa_lang_html_sub
(
'admin/after_x'
,
qa_html
(
$previous
[
'title'
]))
:
qa_lang_html
(
'admin/first'
);
$positionoptions
[
1
+@
max
(
array_keys
(
$positionoptions
))]
=
$positionvalue
;
$positionoptions
[
1
+
@
max
(
array_keys
(
$positionoptions
))]
=
$positionvalue
;
}
}
$qa_content
[
'form'
][
'fields'
][
'position'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'position'
]
=
array
(
'id'
=>
'position_display'
,
'id'
=>
'position_display'
,
'tags'
=>
'name="position"'
,
'tags'
=>
'name="position"'
,
'label'
=>
qa_lang_html
(
'admin/position'
),
'label'
=>
qa_lang_html
(
'admin/position'
),
...
@@ -491,39 +496,41 @@
...
@@ -491,39 +496,41 @@
);
);
if
(
isset
(
$editcategory
[
'categoryid'
]))
{
if
(
isset
(
$editcategory
[
'categoryid'
]))
{
$catdepth
=
count
(
qa_category_path
(
$categories
,
$editcategory
[
'categoryid'
]));
$catdepth
=
count
(
qa_category_path
(
$categories
,
$editcategory
[
'categoryid'
]));
if
(
$catdepth
<
QA_CATEGORY_DEPTH
)
{
if
(
$catdepth
<
QA_CATEGORY_DEPTH
)
{
$childrenhtml
=
''
;
$childrenhtml
=
''
;
foreach
(
$categories
as
$category
)
foreach
(
$categories
as
$category
)
{
if
(
!
strcmp
(
$category
[
'parentid'
],
$editcategory
[
'categoryid'
]))
if
(
!
strcmp
(
$category
[
'parentid'
],
$editcategory
[
'categoryid'
]))
{
$childrenhtml
.=
(
strlen
(
$childrenhtml
)
?
', '
:
''
)
.
$childrenhtml
.=
(
strlen
(
$childrenhtml
)
?
', '
:
''
)
.
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'edit'
=>
$category
[
'categoryid'
]))
.
'">'
.
qa_html
(
$category
[
'title'
])
.
'</a>'
.
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'edit'
=>
$category
[
'categoryid'
]))
.
'">'
.
qa_html
(
$category
[
'title'
])
.
'</a>'
.
' ('
.
$category
[
'qcount'
]
.
')'
;
' ('
.
$category
[
'qcount'
]
.
')'
;
}
}
if
(
!
strlen
(
$childrenhtml
))
if
(
!
strlen
(
$childrenhtml
))
$childrenhtml
=
qa_lang_html
(
'admin/category_no_subs'
);
$childrenhtml
=
qa_lang_html
(
'admin/category_no_subs'
);
$childrenhtml
.=
' - <a href="'
.
qa_path_html
(
qa_request
(),
array
(
'addsub'
=>
$editcategory
[
'categoryid'
]))
.
$childrenhtml
.=
' - <a href="'
.
qa_path_html
(
qa_request
(),
array
(
'addsub'
=>
$editcategory
[
'categoryid'
]))
.
'" style="white-space: nowrap;"><b>'
.
qa_lang_html
(
'admin/category_add_sub'
)
.
'</b></a>'
;
'" style="white-space: nowrap;"><b>'
.
qa_lang_html
(
'admin/category_add_sub'
)
.
'</b></a>'
;
$qa_content
[
'form'
][
'fields'
][
'children'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'children'
]
=
array
(
'id'
=>
'children_display'
,
'id'
=>
'children_display'
,
'label'
=>
qa_lang_html
(
'admin/category_subs'
),
'label'
=>
qa_lang_html
(
'admin/category_subs'
),
'type'
=>
'static'
,
'type'
=>
'static'
,
'value'
=>
$childrenhtml
,
'value'
=>
$childrenhtml
,
);
);
}
else
{
}
else
{
$qa_content
[
'form'
][
'fields'
][
'name'
][
'note'
]
=
qa_lang_html_sub
(
'admin/category_no_add_subs_x'
,
QA_CATEGORY_DEPTH
);
$qa_content
[
'form'
][
'fields'
][
'name'
][
'note'
]
=
qa_lang_html_sub
(
'admin/category_no_add_subs_x'
,
QA_CATEGORY_DEPTH
);
}
}
}
}
}
}
}
else
{
}
else
{
$qa_content
[
'form'
]
=
array
(
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'ok'
=>
$savedoptions
?
qa_lang_html
(
'admin/options_saved'
)
:
null
,
'ok'
=>
$savedoptions
?
qa_lang_html
(
'admin/options_saved'
)
:
null
,
...
@@ -556,10 +563,10 @@
...
@@ -556,10 +563,10 @@
if
(
count
(
$categories
))
{
if
(
count
(
$categories
))
{
unset
(
$qa_content
[
'form'
][
'fields'
][
'intro'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'intro'
]);
$navcategoryhtml
=
''
;
$navcategoryhtml
=
''
;
foreach
(
$categories
as
$category
)
foreach
(
$categories
as
$category
)
{
if
(
!
isset
(
$category
[
'parentid'
]))
if
(
!
isset
(
$category
[
'parentid'
]))
{
$navcategoryhtml
.=
$navcategoryhtml
.=
'<a href="'
.
qa_path_html
(
'admin/categories'
,
array
(
'edit'
=>
$category
[
'categoryid'
]))
.
'">'
.
'<a href="'
.
qa_path_html
(
'admin/categories'
,
array
(
'edit'
=>
$category
[
'categoryid'
]))
.
'">'
.
qa_html
(
$category
[
'title'
])
.
qa_html
(
$category
[
'title'
])
.
...
@@ -567,16 +574,17 @@
...
@@ -567,16 +574,17 @@
(
$category
[
'qcount'
]
==
1
(
$category
[
'qcount'
]
==
1
?
qa_lang_html_sub
(
'main/1_question'
,
'1'
,
'1'
)
?
qa_lang_html_sub
(
'main/1_question'
,
'1'
,
'1'
)
:
qa_lang_html_sub
(
'main/x_questions'
,
qa_format_number
(
$category
[
'qcount'
]))
:
qa_lang_html_sub
(
'main/x_questions'
,
qa_format_number
(
$category
[
'qcount'
]))
)
.
'<br/>'
)
.
'<br/>'
;
;
}
}
$qa_content
[
'form'
][
'fields'
][
'nav'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'nav'
]
=
array
(
'label'
=>
qa_lang_html
(
'admin/top_level_categories'
),
'label'
=>
qa_lang_html
(
'admin/top_level_categories'
),
'type'
=>
'static'
,
'type'
=>
'static'
,
'value'
=>
$navcategoryhtml
,
'value'
=>
$navcategoryhtml
,
);
);
$qa_content
[
'form'
][
'fields'
][
'allow_no_category'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'allow_no_category'
]
=
array
(
'label'
=>
qa_lang_html
(
'options/allow_no_category'
),
'label'
=>
qa_lang_html
(
'options/allow_no_category'
),
'tags'
=>
'name="option_allow_no_category"'
,
'tags'
=>
'name="option_allow_no_category"'
,
'type'
=>
'checkbox'
,
'type'
=>
'checkbox'
,
...
@@ -584,18 +592,19 @@
...
@@ -584,18 +592,19 @@
);
);
if
(
!
qa_opt
(
'allow_no_category'
))
{
if
(
!
qa_opt
(
'allow_no_category'
))
{
$nocatcount
=
qa_db_count_categoryid_qs
(
null
);
$nocatcount
=
qa_db_count_categoryid_qs
(
null
);
if
(
$nocatcount
)
if
(
$nocatcount
)
{
$qa_content
[
'form'
][
'fields'
][
'allow_no_category'
][
'error'
]
=
$qa_content
[
'form'
][
'fields'
][
'allow_no_category'
][
'error'
]
=
strtr
(
qa_lang_html
(
'admin/category_none_error'
),
array
(
strtr
(
qa_lang_html
(
'admin/category_none_error'
),
array
(
'^q'
=>
qa_format_number
(
$nocatcount
),
'^q'
=>
qa_format_number
(
$nocatcount
),
'^1'
=>
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'missing'
=>
1
))
.
'">'
,
'^1'
=>
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'missing'
=>
1
))
.
'">'
,
'^2'
=>
'</a>'
,
'^2'
=>
'</a>'
,
));
));
}
}
}
$qa_content
[
'form'
][
'fields'
][
'allow_no_sub_category'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'allow_no_sub_category'
]
=
array
(
'label'
=>
qa_lang_html
(
'options/allow_no_sub_category'
),
'label'
=>
qa_lang_html
(
'options/allow_no_sub_category'
),
'tags'
=>
'name="option_allow_no_sub_category"'
,
'tags'
=>
'name="option_allow_no_sub_category"'
,
'type'
=>
'checkbox'
,
'type'
=>
'checkbox'
,
...
@@ -604,26 +613,21 @@
...
@@ -604,26 +613,21 @@
}
else
}
else
unset
(
$qa_content
[
'form'
][
'buttons'
][
'save'
]);
unset
(
$qa_content
[
'form'
][
'buttons'
][
'save'
]);
}
}
if
(
qa_get
(
'recalc'
))
{
if
(
qa_get
(
'recalc'
))
{
$qa_content
[
'form'
][
'ok'
]
=
'<span id="recalc_ok">'
.
qa_lang_html
(
'admin/recalc_categories'
)
.
'</span>'
;
$qa_content
[
'form'
][
'ok'
]
=
'<span id="recalc_ok">'
.
qa_lang_html
(
'admin/recalc_categories'
)
.
'</span>'
;
$qa_content
[
'form'
][
'hidden'
][
'code_recalc'
]
=
qa_get_form_security_code
(
'admin/recalc'
);
$qa_content
[
'form'
][
'hidden'
][
'code_recalc'
]
=
qa_get_form_security_code
(
'admin/recalc'
);
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
$qa_content
[
'script_var'
][
'qa_warning_recalc'
]
=
qa_lang
(
'admin/stop_recalc_warning'
);
$qa_content
[
'script_var'
][
'qa_warning_recalc'
]
=
qa_lang
(
'admin/stop_recalc_warning'
);
$qa_content
[
'script_onloads'
][]
=
array
(
$qa_content
[
'script_onloads'
][]
=
array
(
"qa_recalc_click('dorecalccategories', document.getElementById('dosaveoptions'), null, 'recalc_ok');"
"qa_recalc_click('dorecalccategories', document.getElementById('dosaveoptions'), null, 'recalc_ok');"
);
);
}
}
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
return
$qa_content
;
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
()
;
/*
return
$qa_content
;
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
qa-include/pages/admin/admin-flagged.php
View file @
14d54fd4
...
@@ -20,62 +20,65 @@
...
@@ -20,62 +20,65 @@
More about this license: http://www.question2answer.org/license.php
More about this license: http://www.question2answer.org/license.php
*/
*/
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
header
(
'Location: ../'
);
header
(
'Location: ../'
);
exit
;
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
// Find most flagged questions, answers, comments
// Find most flagged questions, answers, comments
$userid
=
qa_get_logged_in_userid
();
$userid
=
qa_get_logged_in_userid
();
$questions
=
qa_db_select_with_pending
(
$questions
=
qa_db_select_with_pending
(
qa_db_flagged_post_qs_selectspec
(
$userid
,
0
,
true
)
qa_db_flagged_post_qs_selectspec
(
$userid
,
0
,
true
)
);
);
// Check admin privileges (do late to allow one DB query)
// Check admin privileges (do late to allow one DB query)
if
(
qa_user_maximum_permit_error
(
'permit_hide_show'
))
{
if
(
qa_user_maximum_permit_error
(
'permit_hide_show'
))
{
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
return
$qa_content
;
return
$qa_content
;
}
}
// Check to see if any were cleared or hidden here
// Check to see if any were cleared or hidden here
$pageerror
=
qa_admin_check_clicks
();
$pageerror
=
qa_admin_check_clicks
();
// Remove questions the user has no permission to hide/show
// Remove questions the user has no permission to hide/show
if
(
qa_user_permit_error
(
'permit_hide_show'
))
// if user not allowed to show/hide all posts
if
(
qa_user_permit_error
(
'permit_hide_show'
))
{
// if user not allowed to show/hide all posts
foreach
(
$questions
as
$index
=>
$question
)
foreach
(
$questions
as
$index
=>
$question
)
{
if
(
qa_user_post_permit_error
(
'permit_hide_show'
,
$question
))
if
(
qa_user_post_permit_error
(
'permit_hide_show'
,
$question
))
{
unset
(
$questions
[
$index
]);
unset
(
$questions
[
$index
]);
}
}
}
// Get information for users
// Get information for users
$usershtml
=
qa_userids_handles_html
(
qa_any_get_userids_handles
(
$questions
));
$usershtml
=
qa_userids_handles_html
(
qa_any_get_userids_handles
(
$questions
));
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/most_flagged_title'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/most_flagged_title'
);
$qa_content
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'q_list'
]
=
array
(
$qa_content
[
'q_list'
]
=
array
(
'form'
=>
array
(
'form'
=>
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'hidden'
=>
array
(
'hidden'
=>
array
(
'code'
=>
qa_get_form_security_code
(
'admin/click'
),
'code'
=>
qa_get_form_security_code
(
'admin/click'
),
...
@@ -83,58 +86,53 @@
...
@@ -83,58 +86,53 @@
),
),
'qs'
=>
array
(),
'qs'
=>
array
(),
);
);
if
(
count
(
$questions
))
{
if
(
count
(
$questions
))
{
foreach
(
$questions
as
$question
)
{
foreach
(
$questions
as
$question
)
{
$postid
=
qa_html
(
isset
(
$question
[
'opostid'
])
?
$question
[
'opostid'
]
:
$question
[
'postid'
]);
$postid
=
qa_html
(
isset
(
$question
[
'opostid'
])
?
$question
[
'opostid'
]
:
$question
[
'postid'
]);
$elementid
=
'p'
.
$postid
;
$elementid
=
'p'
.
$postid
;
$htmloptions
=
qa_post_html_options
(
$question
);
$htmloptions
=
qa_post_html_options
(
$question
);
$htmloptions
[
'voteview'
]
=
false
;
$htmloptions
[
'voteview'
]
=
false
;
$htmloptions
[
'tagsview'
]
=
(
$question
[
'obasetype'
]
==
'Q'
);
$htmloptions
[
'tagsview'
]
=
(
$question
[
'obasetype'
]
==
'Q'
);
$htmloptions
[
'answersview'
]
=
false
;
$htmloptions
[
'answersview'
]
=
false
;
$htmloptions
[
'viewsview'
]
=
false
;
$htmloptions
[
'viewsview'
]
=
false
;
$htmloptions
[
'contentview'
]
=
true
;
$htmloptions
[
'contentview'
]
=
true
;
$htmloptions
[
'flagsview'
]
=
true
;
$htmloptions
[
'flagsview'
]
=
true
;
$htmloptions
[
'elementid'
]
=
$elementid
;
$htmloptions
[
'elementid'
]
=
$elementid
;
$htmlfields
=
qa_any_to_q_html_fields
(
$question
,
$userid
,
qa_cookie_get
(),
$usershtml
,
null
,
$htmloptions
);
$htmlfields
=
qa_any_to_q_html_fields
(
$question
,
$userid
,
qa_cookie_get
(),
$usershtml
,
null
,
$htmloptions
);
if
(
isset
(
$htmlfields
[
'what_url'
]))
// link directly to relevant content
if
(
isset
(
$htmlfields
[
'what_url'
]))
// link directly to relevant content
$htmlfields
[
'url'
]
=
$htmlfields
[
'what_url'
];
$htmlfields
[
'url'
]
=
$htmlfields
[
'what_url'
];
$htmlfields
[
'form'
]
=
array
(
$htmlfields
[
'form'
]
=
array
(
'style'
=>
'light'
,
'style'
=>
'light'
,
'buttons'
=>
array
(
'buttons'
=>
array
(
'clearflags'
=>
array
(
'clearflags'
=>
array
(
'tags'
=>
'name="admin_'
.
$postid
.
'_clearflags" onclick="return qa_admin_click(this);"'
,
'tags'
=>
'name="admin_'
.
$postid
.
'_clearflags" onclick="return qa_admin_click(this);"'
,
'label'
=>
qa_lang_html
(
'question/clear_flags_button'
),
'label'
=>
qa_lang_html
(
'question/clear_flags_button'
),
),
),
'hide'
=>
array
(
'hide'
=>
array
(
'tags'
=>
'name="admin_'
.
$postid
.
'_hide" onclick="return qa_admin_click(this);"'
,
'tags'
=>
'name="admin_'
.
$postid
.
'_hide" onclick="return qa_admin_click(this);"'
,
'label'
=>
qa_lang_html
(
'question/hide_button'
),
'label'
=>
qa_lang_html
(
'question/hide_button'
),
),
),
),
),
);
);
$qa_content
[
'q_list'
][
'qs'
][]
=
$htmlfields
;
$qa_content
[
'q_list'
][
'qs'
][]
=
$htmlfields
;
}
}
}
else
}
else
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/no_flagged_found'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/no_flagged_found'
);
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
return
$qa_content
;
return
$qa_content
;
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
qa-include/pages/admin/admin-hidden.php
View file @
14d54fd4
...
@@ -20,76 +20,79 @@
...
@@ -20,76 +20,79 @@
More about this license: http://www.question2answer.org/license.php
More about this license: http://www.question2answer.org/license.php
*/
*/
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
header
(
'Location: ../'
);
header
(
'Location: ../'
);
exit
;
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
// Find recently hidden questions, answers, comments
// Find recently hidden questions, answers, comments
$userid
=
qa_get_logged_in_userid
();
$userid
=
qa_get_logged_in_userid
();
list
(
$hiddenquestions
,
$hiddenanswers
,
$hiddencomments
)
=
qa_db_select_with_pending
(
list
(
$hiddenquestions
,
$hiddenanswers
,
$hiddencomments
)
=
qa_db_select_with_pending
(
qa_db_qs_selectspec
(
$userid
,
'created'
,
0
,
null
,
null
,
'Q_HIDDEN'
,
true
),
qa_db_qs_selectspec
(
$userid
,
'created'
,
0
,
null
,
null
,
'Q_HIDDEN'
,
true
),
qa_db_recent_a_qs_selectspec
(
$userid
,
0
,
null
,
null
,
'A_HIDDEN'
,
true
),
qa_db_recent_a_qs_selectspec
(
$userid
,
0
,
null
,
null
,
'A_HIDDEN'
,
true
),
qa_db_recent_c_qs_selectspec
(
$userid
,
0
,
null
,
null
,
'C_HIDDEN'
,
true
)
qa_db_recent_c_qs_selectspec
(
$userid
,
0
,
null
,
null
,
'C_HIDDEN'
,
true
)
);
);
// Check admin privileges (do late to allow one DB query)
// Check admin privileges (do late to allow one DB query)
if
(
qa_user_maximum_permit_error
(
'permit_hide_show'
)
&&
qa_user_maximum_permit_error
(
'permit_delete_hidden'
))
{
if
(
qa_user_maximum_permit_error
(
'permit_hide_show'
)
&&
qa_user_maximum_permit_error
(
'permit_delete_hidden'
))
{
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
return
$qa_content
;
return
$qa_content
;
}
}
// Check to see if any have been reshown or deleted
// Check to see if any have been reshown or deleted
$pageerror
=
qa_admin_check_clicks
();
$pageerror
=
qa_admin_check_clicks
();
// Combine sets of questions and remove those this user has no permissions for
// Combine sets of questions and remove those this user has no permissions for
$questions
=
qa_any_sort_by_date
(
array_merge
(
$hiddenquestions
,
$hiddenanswers
,
$hiddencomments
));
$questions
=
qa_any_sort_by_date
(
array_merge
(
$hiddenquestions
,
$hiddenanswers
,
$hiddencomments
));
if
(
qa_user_permit_error
(
'permit_hide_show'
)
&&
qa_user_permit_error
(
'permit_delete_hidden'
))
// not allowed to see all hidden posts
if
(
qa_user_permit_error
(
'permit_hide_show'
)
&&
qa_user_permit_error
(
'permit_delete_hidden'
))
{
// not allowed to see all hidden posts
foreach
(
$questions
as
$index
=>
$question
)
foreach
(
$questions
as
$index
=>
$question
)
{
if
(
qa_user_post_permit_error
(
'permit_hide_show'
,
$question
)
&&
qa_user_post_permit_error
(
'permit_delete_hidden'
,
$question
))
if
(
qa_user_post_permit_error
(
'permit_hide_show'
,
$question
)
&&
qa_user_post_permit_error
(
'permit_delete_hidden'
,
$question
))
{
unset
(
$questions
[
$index
]);
unset
(
$questions
[
$index
]);
}
}
}
// Get information for users
// Get information for users
$usershtml
=
qa_userids_handles_html
(
qa_any_get_userids_handles
(
$questions
));
$usershtml
=
qa_userids_handles_html
(
qa_any_get_userids_handles
(
$questions
));
// Create list of actual hidden postids and see which ones have dependents
// Create list of actual hidden postids and see which ones have dependents
$qhiddenpostid
=
array
();
$qhiddenpostid
=
array
();
foreach
(
$questions
as
$key
=>
$question
)
foreach
(
$questions
as
$key
=>
$question
)
$qhiddenpostid
[
$key
]
=
isset
(
$question
[
'opostid'
])
?
$question
[
'opostid'
]
:
$question
[
'postid'
];
$qhiddenpostid
[
$key
]
=
isset
(
$question
[
'opostid'
])
?
$question
[
'opostid'
]
:
$question
[
'postid'
];
$dependcounts
=
qa_db_postids_count_dependents
(
$qhiddenpostid
);
$dependcounts
=
qa_db_postids_count_dependents
(
$qhiddenpostid
);
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/recent_hidden_title'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/recent_hidden_title'
);
$qa_content
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'q_list'
]
=
array
(
$qa_content
[
'q_list'
]
=
array
(
'form'
=>
array
(
'form'
=>
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'hidden'
=>
array
(
'hidden'
=>
array
(
'code'
=>
qa_get_form_security_code
(
'admin/click'
),
'code'
=>
qa_get_form_security_code
(
'admin/click'
),
...
@@ -97,75 +100,73 @@
...
@@ -97,75 +100,73 @@
),
),
'qs'
=>
array
(),
'qs'
=>
array
(),
);
);
if
(
count
(
$questions
))
{
if
(
count
(
$questions
))
{
foreach
(
$questions
as
$key
=>
$question
)
{
foreach
(
$questions
as
$key
=>
$question
)
{
$elementid
=
'p'
.
$qhiddenpostid
[
$key
];
$elementid
=
'p'
.
$qhiddenpostid
[
$key
];
$htmloptions
=
qa_post_html_options
(
$question
);
$htmloptions
=
qa_post_html_options
(
$question
);
$htmloptions
[
'voteview'
]
=
false
;
$htmloptions
[
'voteview'
]
=
false
;
$htmloptions
[
'tagsview'
]
=
!
isset
(
$question
[
'opostid'
]);
$htmloptions
[
'tagsview'
]
=
!
isset
(
$question
[
'opostid'
]);
$htmloptions
[
'answersview'
]
=
false
;
$htmloptions
[
'answersview'
]
=
false
;
$htmloptions
[
'viewsview'
]
=
false
;
$htmloptions
[
'viewsview'
]
=
false
;
$htmloptions
[
'updateview'
]
=
false
;
$htmloptions
[
'updateview'
]
=
false
;
$htmloptions
[
'contentview'
]
=
true
;
$htmloptions
[
'contentview'
]
=
true
;
$htmloptions
[
'flagsview'
]
=
true
;
$htmloptions
[
'flagsview'
]
=
true
;
$htmloptions
[
'elementid'
]
=
$elementid
;
$htmloptions
[
'elementid'
]
=
$elementid
;
$htmlfields
=
qa_any_to_q_html_fields
(
$question
,
$userid
,
qa_cookie_get
(),
$usershtml
,
null
,
$htmloptions
);
$htmlfields
=
qa_any_to_q_html_fields
(
$question
,
$userid
,
qa_cookie_get
(),
$usershtml
,
null
,
$htmloptions
);
if
(
isset
(
$htmlfields
[
'what_url'
]))
// link directly to relevant content
if
(
isset
(
$htmlfields
[
'what_url'
]))
// link directly to relevant content
$htmlfields
[
'url'
]
=
$htmlfields
[
'what_url'
];
$htmlfields
[
'url'
]
=
$htmlfields
[
'what_url'
];
$htmlfields
[
'what_2'
]
=
qa_lang_html
(
'main/hidden'
);
$htmlfields
[
'what_2'
]
=
qa_lang_html
(
'main/hidden'
);
if
(
@
$htmloptions
[
'whenview'
])
{
if
(
@
$htmloptions
[
'whenview'
])
{
$updated
=
@
$question
[
isset
(
$question
[
'opostid'
])
?
'oupdated'
:
'updated'
];
$updated
=
@
$question
[
isset
(
$question
[
'opostid'
])
?
'oupdated'
:
'updated'
];
if
(
isset
(
$updated
))
if
(
isset
(
$updated
))
$htmlfields
[
'when_2'
]
=
qa_when_to_html
(
$updated
,
@
$htmloptions
[
'fulldatedays'
]);
$htmlfields
[
'when_2'
]
=
qa_when_to_html
(
$updated
,
@
$htmloptions
[
'fulldatedays'
]);
}
}
$buttons
=
array
();
$buttons
=
array
();
$posttype
=
qa_strtolower
(
isset
(
$question
[
'obasetype'
])
?
$question
[
'obasetype'
]
:
$question
[
'basetype'
]);
$posttype
=
qa_strtolower
(
isset
(
$question
[
'obasetype'
])
?
$question
[
'obasetype'
]
:
$question
[
'basetype'
]);
if
(
!
qa_user_post_permit_error
(
'permit_hide_show'
,
$question
))
if
(
!
qa_user_post_permit_error
(
'permit_hide_show'
,
$question
))
{
// Possible values for popup: reshow_q_popup, reshow_a_popup, reshow_c_popup
// Possible values for popup: reshow_q_popup, reshow_a_popup, reshow_c_popup
$buttons
[
'reshow'
]
=
array
(
$buttons
[
'reshow'
]
=
array
(
'tags'
=>
'name="admin_'
.
qa_html
(
$qhiddenpostid
[
$key
])
.
'_reshow" onclick="return qa_admin_click(this);"'
,
'tags'
=>
'name="admin_'
.
qa_html
(
$qhiddenpostid
[
$key
])
.
'_reshow" onclick="return qa_admin_click(this);"'
,
'label'
=>
qa_lang_html
(
'question/reshow_button'
),
'label'
=>
qa_lang_html
(
'question/reshow_button'
),
'popup'
=>
qa_lang_html
(
sprintf
(
'question/reshow_%s_popup'
,
$posttype
)),
'popup'
=>
qa_lang_html
(
sprintf
(
'question/reshow_%s_popup'
,
$posttype
)),
);
);
}
if
((
!
qa_user_post_permit_error
(
'permit_delete_hidden'
,
$question
))
&&
!
$dependcounts
[
$qhiddenpostid
[
$key
]])
if
((
!
qa_user_post_permit_error
(
'permit_delete_hidden'
,
$question
))
&&
!
$dependcounts
[
$qhiddenpostid
[
$key
]])
{
// Possible values for popup: delete_q_popup, delete_a_popup, delete_c_popup
// Possible values for popup: delete_q_popup, delete_a_popup, delete_c_popup
$buttons
[
'delete'
]
=
array
(
$buttons
[
'delete'
]
=
array
(
'tags'
=>
'name="admin_'
.
qa_html
(
$qhiddenpostid
[
$key
])
.
'_delete" onclick="return qa_admin_click(this);"'
,
'tags'
=>
'name="admin_'
.
qa_html
(
$qhiddenpostid
[
$key
])
.
'_delete" onclick="return qa_admin_click(this);"'
,
'label'
=>
qa_lang_html
(
'question/delete_button'
),
'label'
=>
qa_lang_html
(
'question/delete_button'
),
'popup'
=>
qa_lang_html
(
sprintf
(
'question/delete_%s_popup'
,
$posttype
)),
'popup'
=>
qa_lang_html
(
sprintf
(
'question/delete_%s_popup'
,
$posttype
)),
);
);
}
if
(
count
(
$buttons
))
if
(
count
(
$buttons
))
{
$htmlfields
[
'form'
]
=
array
(
$htmlfields
[
'form'
]
=
array
(
'style'
=>
'light'
,
'style'
=>
'light'
,
'buttons'
=>
$buttons
,
'buttons'
=>
$buttons
,
);
);
$qa_content
[
'q_list'
][
'qs'
][]
=
$htmlfields
;
}
}
}
else
$qa_content
[
'q_list'
][
'qs'
][]
=
$htmlfields
;
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/no_hidden_found'
);
}
}
else
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/no_hidden_found'
);
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
return
$qa_content
;
return
$qa_content
;
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
qa-include/pages/admin/admin-moderate.php
View file @
14d54fd4
...
@@ -20,66 +20,68 @@
...
@@ -20,66 +20,68 @@
More about this license: http://www.question2answer.org/license.php
More about this license: http://www.question2answer.org/license.php
*/
*/
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
header
(
'Location: ../'
);
header
(
'Location: ../'
);
exit
;
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
// Find queued questions, answers, comments
// Find queued questions, answers, comments
$userid
=
qa_get_logged_in_userid
();
$userid
=
qa_get_logged_in_userid
();
list
(
$queuedquestions
,
$queuedanswers
,
$queuedcomments
)
=
qa_db_select_with_pending
(
list
(
$queuedquestions
,
$queuedanswers
,
$queuedcomments
)
=
qa_db_select_with_pending
(
qa_db_qs_selectspec
(
$userid
,
'created'
,
0
,
null
,
null
,
'Q_QUEUED'
,
true
),
qa_db_qs_selectspec
(
$userid
,
'created'
,
0
,
null
,
null
,
'Q_QUEUED'
,
true
),
qa_db_recent_a_qs_selectspec
(
$userid
,
0
,
null
,
null
,
'A_QUEUED'
,
true
),
qa_db_recent_a_qs_selectspec
(
$userid
,
0
,
null
,
null
,
'A_QUEUED'
,
true
),
qa_db_recent_c_qs_selectspec
(
$userid
,
0
,
null
,
null
,
'C_QUEUED'
,
true
)
qa_db_recent_c_qs_selectspec
(
$userid
,
0
,
null
,
null
,
'C_QUEUED'
,
true
)
);
);
// Check admin privileges (do late to allow one DB query)
// Check admin privileges (do late to allow one DB query)
if
(
qa_user_maximum_permit_error
(
'permit_moderate'
))
{
if
(
qa_user_maximum_permit_error
(
'permit_moderate'
))
{
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
return
$qa_content
;
return
$qa_content
;
}
}
// Check to see if any were approved/rejected here
// Check to see if any were approved/rejected here
$pageerror
=
qa_admin_check_clicks
();
$pageerror
=
qa_admin_check_clicks
();
// Combine sets of questions and remove those this user has no permission to moderate
// Combine sets of questions and remove those this user has no permission to moderate
$questions
=
qa_any_sort_by_date
(
array_merge
(
$queuedquestions
,
$queuedanswers
,
$queuedcomments
));
$questions
=
qa_any_sort_by_date
(
array_merge
(
$queuedquestions
,
$queuedanswers
,
$queuedcomments
));
if
(
qa_user_permit_error
(
'permit_moderate'
))
// if user not allowed to moderate all posts
if
(
qa_user_permit_error
(
'permit_moderate'
))
{
// if user not allowed to moderate all posts
foreach
(
$questions
as
$index
=>
$question
)
foreach
(
$questions
as
$index
=>
$question
)
{
if
(
qa_user_post_permit_error
(
'permit_moderate'
,
$question
))
if
(
qa_user_post_permit_error
(
'permit_moderate'
,
$question
))
unset
(
$questions
[
$index
]);
unset
(
$questions
[
$index
]);
}
}
// Get information for users
// Get information for users
$usershtml
=
qa_userids_handles_html
(
qa_any_get_userids_handles
(
$questions
));
$usershtml
=
qa_userids_handles_html
(
qa_any_get_userids_handles
(
$questions
));
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/recent_approve_title'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/recent_approve_title'
);
$qa_content
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'q_list'
]
=
array
(
$qa_content
[
'q_list'
]
=
array
(
'form'
=>
array
(
'form'
=>
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'hidden'
=>
array
(
'hidden'
=>
array
(
'code'
=>
qa_get_form_security_code
(
'admin/click'
),
'code'
=>
qa_get_form_security_code
(
'admin/click'
),
...
@@ -87,25 +89,25 @@
...
@@ -87,25 +89,25 @@
),
),
'qs'
=>
array
(),
'qs'
=>
array
(),
);
);
if
(
count
(
$questions
))
{
if
(
count
(
$questions
))
{
foreach
(
$questions
as
$question
)
{
foreach
(
$questions
as
$question
)
{
$postid
=
qa_html
(
isset
(
$question
[
'opostid'
])
?
$question
[
'opostid'
]
:
$question
[
'postid'
]);
$postid
=
qa_html
(
isset
(
$question
[
'opostid'
])
?
$question
[
'opostid'
]
:
$question
[
'postid'
]);
$elementid
=
'p'
.
$postid
;
$elementid
=
'p'
.
$postid
;
$htmloptions
=
qa_post_html_options
(
$question
);
$htmloptions
=
qa_post_html_options
(
$question
);
$htmloptions
[
'voteview'
]
=
false
;
$htmloptions
[
'voteview'
]
=
false
;
$htmloptions
[
'tagsview'
]
=
!
isset
(
$question
[
'opostid'
]);
$htmloptions
[
'tagsview'
]
=
!
isset
(
$question
[
'opostid'
]);
$htmloptions
[
'answersview'
]
=
false
;
$htmloptions
[
'answersview'
]
=
false
;
$htmloptions
[
'viewsview'
]
=
false
;
$htmloptions
[
'viewsview'
]
=
false
;
$htmloptions
[
'contentview'
]
=
true
;
$htmloptions
[
'contentview'
]
=
true
;
$htmloptions
[
'elementid'
]
=
$elementid
;
$htmloptions
[
'elementid'
]
=
$elementid
;
$htmlfields
=
qa_any_to_q_html_fields
(
$question
,
$userid
,
qa_cookie_get
(),
$usershtml
,
null
,
$htmloptions
);
$htmlfields
=
qa_any_to_q_html_fields
(
$question
,
$userid
,
qa_cookie_get
(),
$usershtml
,
null
,
$htmloptions
);
if
(
isset
(
$htmlfields
[
'what_url'
]))
// link directly to relevant content
if
(
isset
(
$htmlfields
[
'what_url'
]))
// link directly to relevant content
$htmlfields
[
'url'
]
=
$htmlfields
[
'what_url'
];
$htmlfields
[
'url'
]
=
$htmlfields
[
'what_url'
];
$posttype
=
qa_strtolower
(
isset
(
$question
[
'obasetype'
])
?
$question
[
'obasetype'
]
:
$question
[
'basetype'
]);
$posttype
=
qa_strtolower
(
isset
(
$question
[
'obasetype'
])
?
$question
[
'obasetype'
]
:
$question
[
'basetype'
]);
switch
(
$posttype
)
{
switch
(
$posttype
)
{
...
@@ -124,40 +126,35 @@
...
@@ -124,40 +126,35 @@
break
;
break
;
}
}
$htmlfields
[
'form'
]
=
array
(
$htmlfields
[
'form'
]
=
array
(
'style'
=>
'light'
,
'style'
=>
'light'
,
'buttons'
=>
array
(
'buttons'
=>
array
(
// Possible values for popup: approve_q_popup, approve_a_popup, approve_c_popup
// Possible values for popup: approve_q_popup, approve_a_popup, approve_c_popup
'approve'
=>
array
(
'approve'
=>
array
(
'tags'
=>
'name="admin_'
.
$postid
.
'_approve" onclick="return qa_admin_click(this);"'
,
'tags'
=>
'name="admin_'
.
$postid
.
'_approve" onclick="return qa_admin_click(this);"'
,
'label'
=>
qa_lang_html
(
'question/approve_button'
),
'label'
=>
qa_lang_html
(
'question/approve_button'
),
'popup'
=>
qa_lang_html
(
$approveKey
),
'popup'
=>
qa_lang_html
(
$approveKey
),
),
),
// Possible values for popup: reject_q_popup, reject_a_popup, reject_c_popup
// Possible values for popup: reject_q_popup, reject_a_popup, reject_c_popup
'reject'
=>
array
(
'reject'
=>
array
(
'tags'
=>
'name="admin_'
.
$postid
.
'_reject" onclick="return qa_admin_click(this);"'
,
'tags'
=>
'name="admin_'
.
$postid
.
'_reject" onclick="return qa_admin_click(this);"'
,
'label'
=>
qa_lang_html
(
'question/reject_button'
),
'label'
=>
qa_lang_html
(
'question/reject_button'
),
'popup'
=>
qa_lang_html
(
$rejectKey
),
'popup'
=>
qa_lang_html
(
$rejectKey
),
),
),
),
),
);
);
$qa_content
[
'q_list'
][
'qs'
][]
=
$htmlfields
;
$qa_content
[
'q_list'
][
'qs'
][]
=
$htmlfields
;
}
}
}
else
}
else
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/no_approve_found'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/no_approve_found'
);
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
return
$qa_content
;
return
$qa_content
;
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
qa-include/pages/admin/admin-pages.php
View file @
14d54fd4
...
@@ -20,46 +20,46 @@
...
@@ -20,46 +20,46 @@
More about this license: http://www.question2answer.org/license.php
More about this license: http://www.question2answer.org/license.php
*/
*/
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
header
(
'Location: ../'
);
header
(
'Location: ../'
);
exit
;
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
// Get current list of pages and determine the state of this admin page
// Get current list of pages and determine the state of this admin page
$pageid
=
qa_post_text
(
'edit'
);
$pageid
=
qa_post_text
(
'edit'
);
if
(
!
isset
(
$pageid
))
if
(
!
isset
(
$pageid
))
$pageid
=
qa_get
(
'edit'
);
$pageid
=
qa_get
(
'edit'
);
list
(
$pages
,
$editpage
)
=
qa_db_select_with_pending
(
list
(
$pages
,
$editpage
)
=
qa_db_select_with_pending
(
qa_db_pages_selectspec
(),
qa_db_pages_selectspec
(),
isset
(
$pageid
)
?
qa_db_page_full_selectspec
(
$pageid
,
true
)
:
null
isset
(
$pageid
)
?
qa_db_page_full_selectspec
(
$pageid
,
true
)
:
null
);
);
if
((
qa_clicked
(
'doaddpage'
)
||
qa_clicked
(
'doaddlink'
)
||
qa_get
(
'doaddlink'
)
||
qa_clicked
(
'dosavepage'
))
&&
!
isset
(
$editpage
))
{
if
((
qa_clicked
(
'doaddpage'
)
||
qa_clicked
(
'doaddlink'
)
||
qa_get
(
'doaddlink'
)
||
qa_clicked
(
'dosavepage'
))
&&
!
isset
(
$editpage
))
{
$editpage
=
array
(
'title'
=>
qa_get
(
'text'
),
'tags'
=>
qa_get
(
'url'
),
'nav'
=>
qa_get
(
'nav'
),
'position'
=>
1
);
$editpage
=
array
(
'title'
=>
qa_get
(
'text'
),
'tags'
=>
qa_get
(
'url'
),
'nav'
=>
qa_get
(
'nav'
),
'position'
=>
1
);
$isexternal
=
qa_clicked
(
'doaddlink'
)
||
qa_get
(
'doaddlink'
)
||
qa_post_text
(
'external'
);
$isexternal
=
qa_clicked
(
'doaddlink'
)
||
qa_get
(
'doaddlink'
)
||
qa_post_text
(
'external'
);
}
elseif
(
isset
(
$editpage
))
}
elseif
(
isset
(
$editpage
))
$isexternal
=
$editpage
[
'flags'
]
&
QA_PAGE_FLAGS_EXTERNAL
;
$isexternal
=
$editpage
[
'flags'
]
&
QA_PAGE_FLAGS_EXTERNAL
;
// Check admin privileges (do late to allow one DB query)
// Check admin privileges (do late to allow one DB query)
if
(
!
qa_admin_check_privileges
(
$qa_content
))
if
(
!
qa_admin_check_privileges
(
$qa_content
))
return
$qa_content
;
return
$qa_content
;
// Define an array of navigation settings we can change, option name => language key
// Define an array of navigation settings we can change, option name => language key
$hascustomhome
=
qa_has_custom_home
();
$hascustomhome
=
qa_has_custom_home
();
$navoptions
=
array
(
$navoptions
=
array
(
'nav_home'
=>
'main/nav_home'
,
'nav_home'
=>
'main/nav_home'
,
'nav_activity'
=>
'main/nav_activity'
,
'nav_activity'
=>
'main/nav_activity'
,
$hascustomhome
?
'nav_qa_not_home'
:
'nav_qa_is_home'
=>
$hascustomhome
?
'main/nav_qa'
:
'admin/nav_qa_is_home'
,
$hascustomhome
?
'nav_qa_not_home'
:
'nav_qa_is_home'
=>
$hascustomhome
?
'main/nav_qa'
:
'admin/nav_qa_is_home'
,
...
@@ -70,9 +70,9 @@
...
@@ -70,9 +70,9 @@
'nav_categories'
=>
'main/nav_categories'
,
'nav_categories'
=>
'main/nav_categories'
,
'nav_users'
=>
'main/nav_users'
,
'nav_users'
=>
'main/nav_users'
,
'nav_ask'
=>
'main/nav_ask'
,
'nav_ask'
=>
'main/nav_ask'
,
);
);
$navpaths
=
array
(
$navpaths
=
array
(
'nav_home'
=>
''
,
'nav_home'
=>
''
,
'nav_activity'
=>
'activity'
,
'nav_activity'
=>
'activity'
,
'nav_qa_not_home'
=>
'qa'
,
'nav_qa_not_home'
=>
'qa'
,
...
@@ -84,120 +84,118 @@
...
@@ -84,120 +84,118 @@
'nav_categories'
=>
'categories'
,
'nav_categories'
=>
'categories'
,
'nav_users'
=>
'users'
,
'nav_users'
=>
'users'
,
'nav_ask'
=>
'ask'
,
'nav_ask'
=>
'ask'
,
);
);
if
(
!
qa_opt
(
'show_custom_home'
))
if
(
!
qa_opt
(
'show_custom_home'
))
unset
(
$navoptions
[
'nav_home'
]);
unset
(
$navoptions
[
'nav_home'
]);
if
(
!
qa_using_categories
())
if
(
!
qa_using_categories
())
unset
(
$navoptions
[
'nav_categories'
]);
unset
(
$navoptions
[
'nav_categories'
]);
if
(
!
qa_using_tags
())
if
(
!
qa_using_tags
())
unset
(
$navoptions
[
'nav_tags'
]);
unset
(
$navoptions
[
'nav_tags'
]);
// Process saving an old or new page
// Process saving an old or new page
$securityexpired
=
false
;
$securityexpired
=
false
;
if
(
qa_clicked
(
'docancel'
))
if
(
qa_clicked
(
'docancel'
))
$editpage
=
null
;
$editpage
=
null
;
elseif
(
qa_clicked
(
'dosaveoptions'
)
||
qa_clicked
(
'doaddpage'
)
||
qa_clicked
(
'doaddlink'
))
{
elseif
(
qa_clicked
(
'dosaveoptions'
)
||
qa_clicked
(
'doaddpage'
)
||
qa_clicked
(
'doaddlink'
))
{
if
(
!
qa_check_form_security_code
(
'admin/pages'
,
qa_post_text
(
'code'
)))
if
(
!
qa_check_form_security_code
(
'admin/pages'
,
qa_post_text
(
'code'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
else
foreach
(
$navoptions
as
$optionname
=>
$langkey
)
else
foreach
(
$navoptions
as
$optionname
=>
$langkey
)
qa_set_option
(
$optionname
,
(
int
)
qa_post_text
(
'option_'
.
$optionname
));
qa_set_option
(
$optionname
,
(
int
)
qa_post_text
(
'option_'
.
$optionname
));
}
elseif
(
qa_clicked
(
'dosavepage'
))
{
}
elseif
(
qa_clicked
(
'dosavepage'
))
{
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
if
(
!
qa_check_form_security_code
(
'admin/pages'
,
qa_post_text
(
'code'
)))
if
(
!
qa_check_form_security_code
(
'admin/pages'
,
qa_post_text
(
'code'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
else
{
else
{
$reloadpages
=
false
;
$reloadpages
=
false
;
if
(
qa_post_text
(
'dodelete'
))
{
if
(
qa_post_text
(
'dodelete'
))
{
qa_db_page_delete
(
$editpage
[
'pageid'
]);
qa_db_page_delete
(
$editpage
[
'pageid'
]);
$searchmodules
=
qa_load_modules_with
(
'search'
,
'unindex_page'
);
$searchmodules
=
qa_load_modules_with
(
'search'
,
'unindex_page'
);
foreach
(
$searchmodules
as
$searchmodule
)
foreach
(
$searchmodules
as
$searchmodule
)
$searchmodule
->
unindex_page
(
$editpage
[
'pageid'
]);
$searchmodule
->
unindex_page
(
$editpage
[
'pageid'
]);
$editpage
=
null
;
$editpage
=
null
;
$reloadpages
=
true
;
$reloadpages
=
true
;
}
else
{
}
else
{
$inname
=
qa_post_text
(
'name'
);
$inname
=
qa_post_text
(
'name'
);
$inposition
=
qa_post_text
(
'position'
);
$inposition
=
qa_post_text
(
'position'
);
$inpermit
=
(
int
)
qa_post_text
(
'permit'
);
$inpermit
=
(
int
)
qa_post_text
(
'permit'
);
$inurl
=
qa_post_text
(
'url'
);
$inurl
=
qa_post_text
(
'url'
);
$innewwindow
=
qa_post_text
(
'newwindow'
);
$innewwindow
=
qa_post_text
(
'newwindow'
);
$inheading
=
qa_post_text
(
'heading'
);
$inheading
=
qa_post_text
(
'heading'
);
$incontent
=
qa_post_text
(
'content'
);
$incontent
=
qa_post_text
(
'content'
);
$errors
=
array
();
$errors
=
array
();
// Verify the name (navigation link) is legitimate
// Verify the name (navigation link) is legitimate
if
(
empty
(
$inname
))
if
(
empty
(
$inname
))
$errors
[
'name'
]
=
qa_lang
(
'main/field_required'
);
$errors
[
'name'
]
=
qa_lang
(
'main/field_required'
);
elseif
(
qa_strlen
(
$inname
)
>
QA_DB_MAX_CAT_PAGE_TITLE_LENGTH
)
elseif
(
qa_strlen
(
$inname
)
>
QA_DB_MAX_CAT_PAGE_TITLE_LENGTH
)
$errors
[
'name'
]
=
qa_lang_sub
(
'main/max_length_x'
,
QA_DB_MAX_CAT_PAGE_TITLE_LENGTH
);
$errors
[
'name'
]
=
qa_lang_sub
(
'main/max_length_x'
,
QA_DB_MAX_CAT_PAGE_TITLE_LENGTH
);
if
(
$isexternal
)
{
if
(
$isexternal
)
{
// Verify the url is legitimate (vaguely)
// Verify the url is legitimate (vaguely)
if
(
empty
(
$inurl
))
if
(
empty
(
$inurl
))
$errors
[
'url'
]
=
qa_lang
(
'main/field_required'
);
$errors
[
'url'
]
=
qa_lang
(
'main/field_required'
);
elseif
(
qa_strlen
(
$inurl
)
>
QA_DB_MAX_CAT_PAGE_TAGS_LENGTH
)
elseif
(
qa_strlen
(
$inurl
)
>
QA_DB_MAX_CAT_PAGE_TAGS_LENGTH
)
$errors
[
'url'
]
=
qa_lang_sub
(
'main/max_length_x'
,
QA_DB_MAX_CAT_PAGE_TAGS_LENGTH
);
$errors
[
'url'
]
=
qa_lang_sub
(
'main/max_length_x'
,
QA_DB_MAX_CAT_PAGE_TAGS_LENGTH
);
}
else
{
}
else
{
// Verify the heading is legitimate
// Verify the heading is legitimate
if
(
qa_strlen
(
$inheading
)
>
QA_DB_MAX_TITLE_LENGTH
)
if
(
qa_strlen
(
$inheading
)
>
QA_DB_MAX_TITLE_LENGTH
)
$errors
[
'heading'
]
=
qa_lang_sub
(
'main/max_length_x'
,
QA_DB_MAX_TITLE_LENGTH
);
$errors
[
'heading'
]
=
qa_lang_sub
(
'main/max_length_x'
,
QA_DB_MAX_TITLE_LENGTH
);
// Verify the slug is legitimate (and try some defaults if we're creating a new page, and it's not)
// Verify the slug is legitimate (and try some defaults if we're creating a new page, and it's not)
for
(
$attempt
=
0
;
$attempt
<
100
;
$attempt
++
)
{
for
(
$attempt
=
0
;
$attempt
<
100
;
$attempt
++
)
{
switch
(
$attempt
)
{
switch
(
$attempt
)
{
case
0
:
case
0
:
$inslug
=
qa_post_text
(
'slug'
);
$inslug
=
qa_post_text
(
'slug'
);
if
(
!
isset
(
$inslug
))
if
(
!
isset
(
$inslug
))
$inslug
=
implode
(
'-'
,
qa_string_to_words
(
$inname
));
$inslug
=
implode
(
'-'
,
qa_string_to_words
(
$inname
));
break
;
break
;
case
1
:
case
1
:
$inslug
=
qa_lang_sub
(
'admin/page_default_slug'
,
$inslug
);
$inslug
=
qa_lang_sub
(
'admin/page_default_slug'
,
$inslug
);
break
;
break
;
default
:
default
:
$inslug
=
qa_lang_sub
(
'admin/page_default_slug'
,
$attempt
-
1
);
$inslug
=
qa_lang_sub
(
'admin/page_default_slug'
,
$attempt
-
1
);
break
;
break
;
}
}
list
(
$matchcategoryid
,
$matchpage
)
=
qa_db_select_with_pending
(
list
(
$matchcategoryid
,
$matchpage
)
=
qa_db_select_with_pending
(
qa_db_slugs_to_category_id_selectspec
(
$inslug
),
qa_db_slugs_to_category_id_selectspec
(
$inslug
),
qa_db_page_full_selectspec
(
$inslug
,
false
)
qa_db_page_full_selectspec
(
$inslug
,
false
)
);
);
if
(
empty
(
$inslug
))
if
(
empty
(
$inslug
))
$errors
[
'slug'
]
=
qa_lang
(
'main/field_required'
);
$errors
[
'slug'
]
=
qa_lang
(
'main/field_required'
);
elseif
(
qa_strlen
(
$inslug
)
>
QA_DB_MAX_CAT_PAGE_TAGS_LENGTH
)
elseif
(
qa_strlen
(
$inslug
)
>
QA_DB_MAX_CAT_PAGE_TAGS_LENGTH
)
$errors
[
'slug'
]
=
qa_lang_sub
(
'main/max_length_x'
,
QA_DB_MAX_CAT_PAGE_TAGS_LENGTH
);
$errors
[
'slug'
]
=
qa_lang_sub
(
'main/max_length_x'
,
QA_DB_MAX_CAT_PAGE_TAGS_LENGTH
);
elseif
(
preg_match
(
'/[\\+\\/]/'
,
$inslug
))
elseif
(
preg_match
(
'/[\\+\\/]/'
,
$inslug
))
$errors
[
'slug'
]
=
qa_lang_sub
(
'admin/slug_bad_chars'
,
'+ /'
);
$errors
[
'slug'
]
=
qa_lang_sub
(
'admin/slug_bad_chars'
,
'+ /'
);
elseif
(
qa_admin_is_slug_reserved
(
$inslug
))
elseif
(
qa_admin_is_slug_reserved
(
$inslug
))
$errors
[
'slug'
]
=
qa_lang
(
'admin/slug_reserved'
);
$errors
[
'slug'
]
=
qa_lang
(
'admin/slug_reserved'
);
elseif
(
isset
(
$matchpage
)
&&
(
$matchpage
[
'pageid'
]
!=
@
$editpage
[
'pageid'
]))
elseif
(
isset
(
$matchpage
)
&&
(
$matchpage
[
'pageid'
]
!=
@
$editpage
[
'pageid'
]))
$errors
[
'slug'
]
=
qa_lang
(
'admin/page_already_used'
);
$errors
[
'slug'
]
=
qa_lang
(
'admin/page_already_used'
);
elseif
(
isset
(
$matchcategoryid
))
elseif
(
isset
(
$matchcategoryid
))
$errors
[
'slug'
]
=
qa_lang
(
'admin/category_already_used'
);
$errors
[
'slug'
]
=
qa_lang
(
'admin/category_already_used'
);
else
else
unset
(
$errors
[
'slug'
]);
unset
(
$errors
[
'slug'
]);
...
@@ -209,61 +207,61 @@
...
@@ -209,61 +207,61 @@
// Perform appropriate database action
// Perform appropriate database action
if
(
isset
(
$editpage
[
'pageid'
]))
{
// changing existing page
if
(
isset
(
$editpage
[
'pageid'
]))
{
// changing existing page
if
(
$isexternal
)
if
(
$isexternal
)
{
qa_db_page_set_fields
(
$editpage
[
'pageid'
],
qa_db_page_set_fields
(
$editpage
[
'pageid'
],
isset
(
$errors
[
'name'
])
?
$editpage
[
'title'
]
:
$inname
,
isset
(
$errors
[
'name'
])
?
$editpage
[
'title'
]
:
$inname
,
QA_PAGE_FLAGS_EXTERNAL
|
(
$innewwindow
?
QA_PAGE_FLAGS_NEW_WINDOW
:
0
),
QA_PAGE_FLAGS_EXTERNAL
|
(
$innewwindow
?
QA_PAGE_FLAGS_NEW_WINDOW
:
0
),
isset
(
$errors
[
'url'
])
?
$editpage
[
'tags'
]
:
$inurl
,
isset
(
$errors
[
'url'
])
?
$editpage
[
'tags'
]
:
$inurl
,
null
,
null
,
$inpermit
);
null
,
null
,
$inpermit
);
else
{
}
else
{
$setheading
=
isset
(
$errors
[
'heading'
])
?
$editpage
[
'heading'
]
:
$inheading
;
$setheading
=
isset
(
$errors
[
'heading'
])
?
$editpage
[
'heading'
]
:
$inheading
;
$setslug
=
isset
(
$errors
[
'slug'
])
?
$editpage
[
'tags'
]
:
$inslug
;
$setslug
=
isset
(
$errors
[
'slug'
])
?
$editpage
[
'tags'
]
:
$inslug
;
$setcontent
=
isset
(
$errors
[
'content'
])
?
$editpage
[
'content'
]
:
$incontent
;
$setcontent
=
isset
(
$errors
[
'content'
])
?
$editpage
[
'content'
]
:
$incontent
;
qa_db_page_set_fields
(
$editpage
[
'pageid'
],
qa_db_page_set_fields
(
$editpage
[
'pageid'
],
isset
(
$errors
[
'name'
])
?
$editpage
[
'title'
]
:
$inname
,
isset
(
$errors
[
'name'
])
?
$editpage
[
'title'
]
:
$inname
,
0
,
0
,
$setslug
,
$setheading
,
$setcontent
,
$inpermit
);
$setslug
,
$setheading
,
$setcontent
,
$inpermit
);
$searchmodules
=
qa_load_modules_with
(
'search'
,
'unindex_page'
);
$searchmodules
=
qa_load_modules_with
(
'search'
,
'unindex_page'
);
foreach
(
$searchmodules
as
$searchmodule
)
foreach
(
$searchmodules
as
$searchmodule
)
$searchmodule
->
unindex_page
(
$editpage
[
'pageid'
]);
$searchmodule
->
unindex_page
(
$editpage
[
'pageid'
]);
$indextext
=
qa_viewer_text
(
$setcontent
,
'html'
);
$indextext
=
qa_viewer_text
(
$setcontent
,
'html'
);
$searchmodules
=
qa_load_modules_with
(
'search'
,
'index_page'
);
$searchmodules
=
qa_load_modules_with
(
'search'
,
'index_page'
);
foreach
(
$searchmodules
as
$searchmodule
)
foreach
(
$searchmodules
as
$searchmodule
)
$searchmodule
->
index_page
(
$editpage
[
'pageid'
],
$setslug
,
$setheading
,
$setcontent
,
'html'
,
$indextext
);
$searchmodule
->
index_page
(
$editpage
[
'pageid'
],
$setslug
,
$setheading
,
$setcontent
,
'html'
,
$indextext
);
}
}
qa_db_page_move
(
$editpage
[
'pageid'
],
substr
(
$inposition
,
0
,
1
),
substr
(
$inposition
,
1
));
qa_db_page_move
(
$editpage
[
'pageid'
],
substr
(
$inposition
,
0
,
1
),
substr
(
$inposition
,
1
));
$reloadpages
=
true
;
$reloadpages
=
true
;
if
(
empty
(
$errors
))
if
(
empty
(
$errors
))
$editpage
=
null
;
$editpage
=
null
;
else
else
$editpage
=
@
$pages
[
$editpage
[
'pageid'
]];
$editpage
=
@
$pages
[
$editpage
[
'pageid'
]];
}
else
{
// creating a new one
}
else
{
// creating a new one
if
(
empty
(
$errors
))
{
if
(
empty
(
$errors
))
{
if
(
$isexternal
)
if
(
$isexternal
)
{
$pageid
=
qa_db_page_create
(
$inname
,
QA_PAGE_FLAGS_EXTERNAL
|
(
$innewwindow
?
QA_PAGE_FLAGS_NEW_WINDOW
:
0
),
$inurl
,
null
,
null
,
$inpermit
);
$pageid
=
qa_db_page_create
(
$inname
,
QA_PAGE_FLAGS_EXTERNAL
|
(
$innewwindow
?
QA_PAGE_FLAGS_NEW_WINDOW
:
0
),
$inurl
,
null
,
null
,
$inpermit
);
else
{
}
else
{
$pageid
=
qa_db_page_create
(
$inname
,
0
,
$inslug
,
$inheading
,
$incontent
,
$inpermit
);
$pageid
=
qa_db_page_create
(
$inname
,
0
,
$inslug
,
$inheading
,
$incontent
,
$inpermit
);
$indextext
=
qa_viewer_text
(
$incontent
,
'html'
);
$indextext
=
qa_viewer_text
(
$incontent
,
'html'
);
$searchmodules
=
qa_load_modules_with
(
'search'
,
'index_page'
);
$searchmodules
=
qa_load_modules_with
(
'search'
,
'index_page'
);
foreach
(
$searchmodules
as
$searchmodule
)
foreach
(
$searchmodules
as
$searchmodule
)
$searchmodule
->
index_page
(
$pageid
,
$inslug
,
$inheading
,
$incontent
,
'html'
,
$indextext
);
$searchmodule
->
index_page
(
$pageid
,
$inslug
,
$inheading
,
$incontent
,
'html'
,
$indextext
);
}
}
qa_db_page_move
(
$pageid
,
substr
(
$inposition
,
0
,
1
),
substr
(
$inposition
,
1
));
qa_db_page_move
(
$pageid
,
substr
(
$inposition
,
0
,
1
),
substr
(
$inposition
,
1
));
$editpage
=
null
;
$editpage
=
null
;
$reloadpages
=
true
;
$reloadpages
=
true
;
}
}
}
}
...
@@ -273,26 +271,26 @@
...
@@ -273,26 +271,26 @@
if
(
$reloadpages
)
{
if
(
$reloadpages
)
{
qa_db_flush_pending_result
(
'navpages'
);
qa_db_flush_pending_result
(
'navpages'
);
$pages
=
qa_db_select_with_pending
(
qa_db_pages_selectspec
());
$pages
=
qa_db_select_with_pending
(
qa_db_pages_selectspec
());
}
}
}
}
}
}
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/pages_title'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/pages_title'
);
$qa_content
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$qa_content
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
if
(
isset
(
$editpage
))
{
if
(
isset
(
$editpage
))
{
$positionoptions
=
array
();
$positionoptions
=
array
();
if
(
!
$isexternal
)
if
(
!
$isexternal
)
$positionoptions
[
'_'
.
max
(
1
,
@
$editpage
[
'position'
])]
=
qa_lang_html
(
'admin/no_link'
);
$positionoptions
[
'_'
.
max
(
1
,
@
$editpage
[
'position'
])]
=
qa_lang_html
(
'admin/no_link'
);
$navlangkey
=
array
(
$navlangkey
=
array
(
'B'
=>
'admin/before_main_menu'
,
'B'
=>
'admin/before_main_menu'
,
'M'
=>
'admin/after_main_menu'
,
'M'
=>
'admin/after_main_menu'
,
'O'
=>
'admin/opposite_main_menu'
,
'O'
=>
'admin/opposite_main_menu'
,
...
@@ -300,39 +298,40 @@
...
@@ -300,39 +298,40 @@
);
);
foreach
(
$navlangkey
as
$nav
=>
$langkey
)
{
foreach
(
$navlangkey
as
$nav
=>
$langkey
)
{
$previous
=
null
;
$previous
=
null
;
$passedself
=
false
;
$passedself
=
false
;
$maxposition
=
0
;
$maxposition
=
0
;
foreach
(
$pages
as
$key
=>
$page
)
foreach
(
$pages
as
$key
=>
$page
)
{
if
(
$page
[
'nav'
]
==
$nav
)
{
if
(
$page
[
'nav'
]
==
$nav
)
{
if
(
isset
(
$previous
))
if
(
isset
(
$previous
))
$positionhtml
=
qa_lang_html_sub
(
'admin/after_x_tab'
,
qa_html
(
$passedself
?
$page
[
'title'
]
:
$previous
[
'title'
]));
$positionhtml
=
qa_lang_html_sub
(
'admin/after_x_tab'
,
qa_html
(
$passedself
?
$page
[
'title'
]
:
$previous
[
'title'
]));
else
else
$positionhtml
=
qa_lang_html
(
$langkey
);
$positionhtml
=
qa_lang_html
(
$langkey
);
if
(
$page
[
'pageid'
]
==
@
$editpage
[
'pageid'
])
if
(
$page
[
'pageid'
]
==
@
$editpage
[
'pageid'
])
$passedself
=
true
;
$passedself
=
true
;
$maxposition
=
max
(
$maxposition
,
$page
[
'position'
]);
$maxposition
=
max
(
$maxposition
,
$page
[
'position'
]);
$positionoptions
[
$nav
.
$page
[
'position'
]]
=
$positionhtml
;
$positionoptions
[
$nav
.
$page
[
'position'
]]
=
$positionhtml
;
$previous
=
$page
;
$previous
=
$page
;
}
}
}
if
((
!
isset
(
$editpage
[
'pageid'
]))
||
$nav
!=
@
$editpage
[
'nav'
])
{
if
((
!
isset
(
$editpage
[
'pageid'
]))
||
$nav
!=
@
$editpage
[
'nav'
])
{
$positionvalue
=
isset
(
$previous
)
?
qa_lang_html_sub
(
'admin/after_x_tab'
,
qa_html
(
$previous
[
'title'
]))
:
qa_lang_html
(
$langkey
);
$positionvalue
=
isset
(
$previous
)
?
qa_lang_html_sub
(
'admin/after_x_tab'
,
qa_html
(
$previous
[
'title'
]))
:
qa_lang_html
(
$langkey
);
$positionoptions
[
$nav
.
(
isset
(
$previous
)
?
(
1
+
$maxposition
)
:
1
)]
=
$positionvalue
;
$positionoptions
[
$nav
.
(
isset
(
$previous
)
?
(
1
+
$maxposition
)
:
1
)]
=
$positionvalue
;
}
}
}
}
$positionvalue
=@
$positionoptions
[
$editpage
[
'nav'
]
.
$editpage
[
'position'
]];
$positionvalue
=
@
$positionoptions
[
$editpage
[
'nav'
]
.
$editpage
[
'position'
]];
$permitoptions
=
qa_admin_permit_options
(
QA_PERMIT_ALL
,
QA_PERMIT_ADMINS
,
false
,
false
);
$permitoptions
=
qa_admin_permit_options
(
QA_PERMIT_ALL
,
QA_PERMIT_ADMINS
,
false
,
false
);
$permitvalue
=
@
$permitoptions
[
isset
(
$inpermit
)
?
$inpermit
:
$editpage
[
'permit'
]];
$permitvalue
=
@
$permitoptions
[
isset
(
$inpermit
)
?
$inpermit
:
$editpage
[
'permit'
]];
$qa_content
[
'form'
]
=
array
(
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'style'
=>
'tall'
,
'style'
=>
'tall'
,
...
@@ -445,7 +444,7 @@
...
@@ -445,7 +444,7 @@
unset
(
$qa_content
[
'form'
][
'fields'
][
'newwindow'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'newwindow'
]);
}
}
if
(
isset
(
$editpage
[
'pageid'
]))
if
(
isset
(
$editpage
[
'pageid'
]))
{
qa_set_display_rules
(
$qa_content
,
array
(
qa_set_display_rules
(
$qa_content
,
array
(
'position_display'
=>
'!dodelete'
,
'position_display'
=>
'!dodelete'
,
'permit_display'
=>
'!dodelete'
,
'permit_display'
=>
'!dodelete'
,
...
@@ -454,7 +453,7 @@
...
@@ -454,7 +453,7 @@
'content_display'
=>
'!dodelete'
,
'content_display'
=>
'!dodelete'
,
));
));
else
{
}
else
{
unset
(
$qa_content
[
'form'
][
'fields'
][
'slug'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'slug'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'delete'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'delete'
]);
}
}
...
@@ -462,14 +461,14 @@
...
@@ -462,14 +461,14 @@
if
(
$isexternal
||
!
isset
(
$editpage
[
'pageid'
]))
if
(
$isexternal
||
!
isset
(
$editpage
[
'pageid'
]))
unset
(
$qa_content
[
'form'
][
'buttons'
][
'saveview'
]);
unset
(
$qa_content
[
'form'
][
'buttons'
][
'saveview'
]);
$qa_content
[
'focusid'
]
=
'name'
;
$qa_content
[
'focusid'
]
=
'name'
;
}
else
{
}
else
{
// List of standard navigation links
// List of standard navigation links
$qa_content
[
'form'
]
=
array
(
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'style'
=>
'tall'
,
'style'
=>
'tall'
,
...
@@ -497,86 +496,82 @@
...
@@ -497,86 +496,82 @@
),
),
);
);
$qa_content
[
'form'
][
'fields'
][
'navlinks'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'navlinks'
]
=
array
(
'label'
=>
qa_lang_html
(
'admin/nav_links_explanation'
),
'label'
=>
qa_lang_html
(
'admin/nav_links_explanation'
),
'type'
=>
'static'
,
'type'
=>
'static'
,
'tight'
=>
true
,
'tight'
=>
true
,
);
);
foreach
(
$navoptions
as
$optionname
=>
$langkey
)
{
foreach
(
$navoptions
as
$optionname
=>
$langkey
)
{
$qa_content
[
'form'
][
'fields'
][
$optionname
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
$optionname
]
=
array
(
'label'
=>
'<a href="'
.
qa_path_html
(
$navpaths
[
$optionname
])
.
'">'
.
qa_lang_html
(
$langkey
)
.
'</a>'
,
'label'
=>
'<a href="'
.
qa_path_html
(
$navpaths
[
$optionname
])
.
'">'
.
qa_lang_html
(
$langkey
)
.
'</a>'
,
'tags'
=>
'name="option_'
.
$optionname
.
'"'
,
'tags'
=>
'name="option_'
.
$optionname
.
'"'
,
'type'
=>
'checkbox'
,
'type'
=>
'checkbox'
,
'value'
=>
qa_opt
(
$optionname
),
'value'
=>
qa_opt
(
$optionname
),
);
);
}
}
$qa_content
[
'form'
][
'fields'
][]
=
array
(
$qa_content
[
'form'
][
'fields'
][]
=
array
(
'type'
=>
'blank'
'type'
=>
'blank'
);
);
// List of suggested plugin pages
// List of suggested plugin pages
$listhtml
=
''
;
$listhtml
=
''
;
$pagemodules
=
qa_load_modules_with
(
'page'
,
'suggest_requests'
);
$pagemodules
=
qa_load_modules_with
(
'page'
,
'suggest_requests'
);
foreach
(
$pagemodules
as
$tryname
=>
$trypage
)
{
foreach
(
$pagemodules
as
$tryname
=>
$trypage
)
{
$suggestrequests
=
$trypage
->
suggest_requests
();
$suggestrequests
=
$trypage
->
suggest_requests
();
foreach
(
$suggestrequests
as
$suggestrequest
)
{
foreach
(
$suggestrequests
as
$suggestrequest
)
{
$listhtml
.=
'<li><b><a href="'
.
qa_path_html
(
$suggestrequest
[
'request'
])
.
'">'
.
qa_html
(
$suggestrequest
[
'title'
])
.
'</a></b>'
;
$listhtml
.=
'<li><b><a href="'
.
qa_path_html
(
$suggestrequest
[
'request'
])
.
'">'
.
qa_html
(
$suggestrequest
[
'title'
])
.
'</a></b>'
;
$listhtml
.=
qa_lang_html_sub
(
'admin/plugin_module'
,
qa_html
(
$tryname
));
$listhtml
.=
qa_lang_html_sub
(
'admin/plugin_module'
,
qa_html
(
$tryname
));
$listhtml
.=
strtr
(
qa_lang_html
(
'admin/add_link_link'
),
array
(
$listhtml
.=
strtr
(
qa_lang_html
(
'admin/add_link_link'
),
array
(
'^1'
=>
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'doaddlink'
=>
1
,
'text'
=>
$suggestrequest
[
'title'
],
'url'
=>
$suggestrequest
[
'request'
],
'nav'
=>
@
$suggestrequest
[
'nav'
]))
.
'">'
,
'^1'
=>
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'doaddlink'
=>
1
,
'text'
=>
$suggestrequest
[
'title'
],
'url'
=>
$suggestrequest
[
'request'
],
'nav'
=>
@
$suggestrequest
[
'nav'
]))
.
'">'
,
'^2'
=>
'</a>'
,
'^2'
=>
'</a>'
,
));
));
if
(
method_exists
(
$trypage
,
'admin_form'
))
if
(
method_exists
(
$trypage
,
'admin_form'
))
$listhtml
.=
' - <a href="'
.
qa_admin_module_options_path
(
'page'
,
$tryname
)
.
'">'
.
qa_lang_html
(
'admin/options'
)
.
'</a>'
;
$listhtml
.=
' - <a href="'
.
qa_admin_module_options_path
(
'page'
,
$tryname
)
.
'">'
.
qa_lang_html
(
'admin/options'
)
.
'</a>'
;
$listhtml
.=
'</li>'
;
$listhtml
.=
'</li>'
;
}
}
}
}
if
(
strlen
(
$listhtml
))
if
(
strlen
(
$listhtml
))
{
$qa_content
[
'form'
][
'fields'
][
'plugins'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'plugins'
]
=
array
(
'label'
=>
qa_lang_html
(
'admin/plugin_pages_explanation'
),
'label'
=>
qa_lang_html
(
'admin/plugin_pages_explanation'
),
'type'
=>
'custom'
,
'type'
=>
'custom'
,
'html'
=>
'<ul style="margin-bottom:0;">'
.
$listhtml
.
'</ul>'
,
'html'
=>
'<ul style="margin-bottom:0;">'
.
$listhtml
.
'</ul>'
,
);
);
}
// List of custom pages or links
// List of custom pages or links
$listhtml
=
''
;
$listhtml
=
''
;
foreach
(
$pages
as
$page
)
{
foreach
(
$pages
as
$page
)
{
$listhtml
.=
'<li><b><a href="'
.
qa_custom_page_url
(
$page
)
.
'">'
.
qa_html
(
$page
[
'title'
])
.
'</a></b>'
;
$listhtml
.=
'<li><b><a href="'
.
qa_custom_page_url
(
$page
)
.
'">'
.
qa_html
(
$page
[
'title'
])
.
'</a></b>'
;
$listhtml
.=
strtr
(
qa_lang_html
((
$page
[
'flags'
]
&
QA_PAGE_FLAGS_EXTERNAL
)
?
'admin/edit_link'
:
'admin/edit_page'
),
array
(
$listhtml
.=
strtr
(
qa_lang_html
((
$page
[
'flags'
]
&
QA_PAGE_FLAGS_EXTERNAL
)
?
'admin/edit_link'
:
'admin/edit_page'
),
array
(
'^1'
=>
'<a href="'
.
qa_path_html
(
'admin/pages'
,
array
(
'edit'
=>
$page
[
'pageid'
]))
.
'">'
,
'^1'
=>
'<a href="'
.
qa_path_html
(
'admin/pages'
,
array
(
'edit'
=>
$page
[
'pageid'
]))
.
'">'
,
'^2'
=>
'</a>'
,
'^2'
=>
'</a>'
,
));
));
$listhtml
.=
'</li>'
;
$listhtml
.=
'</li>'
;
}
}
$qa_content
[
'form'
][
'fields'
][
'pages'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'pages'
]
=
array
(
'label'
=>
strlen
(
$listhtml
)
?
qa_lang_html
(
'admin/click_name_edit'
)
:
qa_lang_html
(
'admin/pages_explanation'
),
'label'
=>
strlen
(
$listhtml
)
?
qa_lang_html
(
'admin/click_name_edit'
)
:
qa_lang_html
(
'admin/pages_explanation'
),
'type'
=>
'custom'
,
'type'
=>
'custom'
,
'html'
=>
strlen
(
$listhtml
)
?
'<ul style="margin-bottom:0;">'
.
$listhtml
.
'</ul>'
:
null
,
'html'
=>
strlen
(
$listhtml
)
?
'<ul style="margin-bottom:0;">'
.
$listhtml
.
'</ul>'
:
null
,
);
);
}
}
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
return
$qa_content
;
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
()
;
/*
return
$qa_content
;
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
qa-include/pages/admin/admin-plugins.php
View file @
14d54fd4
...
@@ -20,28 +20,28 @@
...
@@ -20,28 +20,28 @@
More about this license: http://www.question2answer.org/license.php
More about this license: http://www.question2answer.org/license.php
*/
*/
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
header
(
'Location: ../'
);
header
(
'Location: ../'
);
exit
;
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
// Check admin privileges
// Check admin privileges
if
(
!
qa_admin_check_privileges
(
$qa_content
))
if
(
!
qa_admin_check_privileges
(
$qa_content
))
return
$qa_content
;
return
$qa_content
;
// Map modules with options to their containing plugins
// Map modules with options to their containing plugins
$pluginoptionmodules
=
array
();
$pluginoptionmodules
=
array
();
$tables
=
qa_db_list_tables
();
$tables
=
qa_db_list_tables
();
$moduletypes
=
qa_list_module_types
();
$moduletypes
=
qa_list_module_types
();
foreach
(
$moduletypes
as
$type
)
{
foreach
(
$moduletypes
as
$type
)
{
$modules
=
qa_list_modules
(
$type
);
$modules
=
qa_list_modules
(
$type
);
foreach
(
$modules
as
$name
)
{
foreach
(
$modules
as
$name
)
{
...
@@ -56,22 +56,22 @@
...
@@ -56,22 +56,22 @@
);
);
}
}
}
}
}
}
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/plugins_title'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/plugins_title'
);
$qa_content
[
'error'
]
=
qa_admin_page_error
();
$qa_content
[
'error'
]
=
qa_admin_page_error
();
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
$pluginfiles
=
glob
(
QA_PLUGIN_DIR
.
'*/qa-plugin.php'
);
$pluginfiles
=
glob
(
QA_PLUGIN_DIR
.
'*/qa-plugin.php'
);
foreach
(
$moduletypes
as
$type
)
{
foreach
(
$moduletypes
as
$type
)
{
$modules
=
qa_load_modules_with
(
$type
,
'init_queries'
);
$modules
=
qa_load_modules_with
(
$type
,
'init_queries'
);
foreach
(
$modules
as
$name
=>
$module
)
{
foreach
(
$modules
as
$name
=>
$module
)
{
...
@@ -85,22 +85,21 @@
...
@@ -85,22 +85,21 @@
$qa_content
[
'error'
]
=
strtr
(
qa_lang_html
(
'admin/module_x_database_init'
),
array
(
$qa_content
[
'error'
]
=
strtr
(
qa_lang_html
(
'admin/module_x_database_init'
),
array
(
'^1'
=>
qa_html
(
$name
),
'^1'
=>
qa_html
(
$name
),
'^2'
=>
qa_html
(
$type
),
'^2'
=>
qa_html
(
$type
),
'^3'
=>
'<a href="'
.
qa_path_html
(
'install'
)
.
'">'
,
'^3'
=>
'<a href="'
.
qa_path_html
(
'install'
)
.
'">'
,
'^4'
=>
'</a>'
,
'^4'
=>
'</a>'
,
));
));
}
}
}
}
}
}
}
}
if
(
qa_is_http_post
()
&&
!
qa_check_form_security_code
(
'admin/plugins'
,
qa_post_text
(
'qa_form_security_code'
))
)
{
if
(
qa_is_http_post
()
&&
!
qa_check_form_security_code
(
'admin/plugins'
,
qa_post_text
(
'qa_form_security_code'
))
)
{
$qa_content
[
'error'
]
=
qa_lang_html
(
'misc/form_security_reload'
);
$qa_content
[
'error'
]
=
qa_lang_html
(
'misc/form_security_reload'
);
$showpluginforms
=
false
;
$showpluginforms
=
false
;
}
}
else
else
$showpluginforms
=
true
;
$showpluginforms
=
true
;
if
(
!
empty
(
$pluginfiles
))
{
if
(
!
empty
(
$pluginfiles
))
{
$metadataUtil
=
new
Q2A_Util_Metadata
();
$metadataUtil
=
new
Q2A_Util_Metadata
();
$sortedPluginFiles
=
array
();
$sortedPluginFiles
=
array
();
...
@@ -113,8 +112,7 @@
...
@@ -113,8 +112,7 @@
}
}
$metadata
[
'name'
]
=
isset
(
$metadata
[
'name'
])
&&
!
empty
(
$metadata
[
'name'
])
$metadata
[
'name'
]
=
isset
(
$metadata
[
'name'
])
&&
!
empty
(
$metadata
[
'name'
])
?
qa_html
(
$metadata
[
'name'
])
?
qa_html
(
$metadata
[
'name'
])
:
qa_lang_html
(
'admin/unnamed_plugin'
)
:
qa_lang_html
(
'admin/unnamed_plugin'
);
;
$sortedPluginFiles
[
$pluginFile
]
=
$metadata
;
$sortedPluginFiles
[
$pluginFile
]
=
$metadata
;
}
}
...
@@ -130,37 +128,35 @@
...
@@ -130,37 +128,35 @@
$namehtml
=
$metadata
[
'name'
];
$namehtml
=
$metadata
[
'name'
];
if
(
isset
(
$metadata
[
'uri'
])
&&
strlen
(
$metadata
[
'uri'
]))
if
(
isset
(
$metadata
[
'uri'
])
&&
strlen
(
$metadata
[
'uri'
]))
$namehtml
=
'<a href="'
.
qa_html
(
$metadata
[
'uri'
])
.
'">'
.
$namehtml
.
'</a>'
;
$namehtml
=
'<a href="'
.
qa_html
(
$metadata
[
'uri'
])
.
'">'
.
$namehtml
.
'</a>'
;
$namehtml
=
'<b>'
.
$namehtml
.
'</b>'
;
$namehtml
=
'<b>'
.
$namehtml
.
'</b>'
;
$metaver
=
isset
(
$metadata
[
'version'
])
&&
strlen
(
$metadata
[
'version'
]);
$metaver
=
isset
(
$metadata
[
'version'
])
&&
strlen
(
$metadata
[
'version'
]);
if
(
$metaver
)
if
(
$metaver
)
$namehtml
.=
' v'
.
qa_html
(
$metadata
[
'version'
]);
$namehtml
.=
' v'
.
qa_html
(
$metadata
[
'version'
]);
if
(
isset
(
$metadata
[
'author'
])
&&
strlen
(
$metadata
[
'author'
]))
{
if
(
isset
(
$metadata
[
'author'
])
&&
strlen
(
$metadata
[
'author'
]))
{
$authorhtml
=
qa_html
(
$metadata
[
'author'
]);
$authorhtml
=
qa_html
(
$metadata
[
'author'
]);
if
(
isset
(
$metadata
[
'author_uri'
])
&&
strlen
(
$metadata
[
'author_uri'
]))
if
(
isset
(
$metadata
[
'author_uri'
])
&&
strlen
(
$metadata
[
'author_uri'
]))
$authorhtml
=
'<a href="'
.
qa_html
(
$metadata
[
'author_uri'
])
.
'">'
.
$authorhtml
.
'</a>'
;
$authorhtml
=
'<a href="'
.
qa_html
(
$metadata
[
'author_uri'
])
.
'">'
.
$authorhtml
.
'</a>'
;
$authorhtml
=
qa_lang_html_sub
(
'main/by_x'
,
$authorhtml
);
$authorhtml
=
qa_lang_html_sub
(
'main/by_x'
,
$authorhtml
);
}
}
else
else
$authorhtml
=
''
;
$authorhtml
=
''
;
if
(
$metaver
&&
isset
(
$metadata
[
'update_uri'
])
&&
strlen
(
$metadata
[
'update_uri'
]))
{
if
(
$metaver
&&
isset
(
$metadata
[
'update_uri'
])
&&
strlen
(
$metadata
[
'update_uri'
]))
{
$elementid
=
'version_check_'
.
md5
(
$plugindirectory
);
$elementid
=
'version_check_'
.
md5
(
$plugindirectory
);
$updatehtml
=
'(<span id="'
.
$elementid
.
'">...</span>)'
;
$updatehtml
=
'(<span id="'
.
$elementid
.
'">...</span>)'
;
$qa_content
[
'script_onloads'
][]
=
array
(
$qa_content
[
'script_onloads'
][]
=
array
(
"qa_version_check("
.
qa_js
(
$metadata
[
'update_uri'
])
.
", "
.
qa_js
(
$metadata
[
'version'
],
true
)
.
", "
.
qa_js
(
$elementid
)
.
");"
"qa_version_check("
.
qa_js
(
$metadata
[
'update_uri'
])
.
", "
.
qa_js
(
$metadata
[
'version'
],
true
)
.
", "
.
qa_js
(
$elementid
)
.
");"
);
);
}
}
else
else
$updatehtml
=
''
;
$updatehtml
=
''
;
if
(
isset
(
$metadata
[
'description'
]))
if
(
isset
(
$metadata
[
'description'
]))
...
@@ -168,23 +164,25 @@
...
@@ -168,23 +164,25 @@
else
else
$deschtml
=
''
;
$deschtml
=
''
;
if
(
isset
(
$pluginoptionmodules
[
$plugindirectory
])
&&
!
$showthisform
)
if
(
isset
(
$pluginoptionmodules
[
$plugindirectory
])
&&
!
$showthisform
)
{
$deschtml
.=
(
strlen
(
$deschtml
)
?
' - '
:
''
)
.
'<a href="'
.
$deschtml
.=
(
strlen
(
$deschtml
)
?
' - '
:
''
)
.
'<a href="'
.
qa_admin_plugin_options_path
(
$plugindirectory
)
.
'">'
.
qa_lang_html
(
'admin/options'
)
.
'</a>'
;
qa_admin_plugin_options_path
(
$plugindirectory
)
.
'">'
.
qa_lang_html
(
'admin/options'
)
.
'</a>'
;
}
$pluginhtml
=
$namehtml
.
' '
.
$authorhtml
.
' '
.
$updatehtml
.
'<br>'
.
$deschtml
.
(
strlen
(
$deschtml
)
?
'<br>'
:
''
)
.
$pluginhtml
=
$namehtml
.
' '
.
$authorhtml
.
' '
.
$updatehtml
.
'<br>'
.
$deschtml
.
(
strlen
(
$deschtml
)
?
'<br>'
:
''
)
.
'<small style="color:#666">'
.
qa_html
(
$plugindirectory
)
.
'/</small>'
;
'<small style="color:#666">'
.
qa_html
(
$plugindirectory
)
.
'/</small>'
;
if
(
qa_qa_version_below
(
@
$metadata
[
'min_q2a'
]))
if
(
qa_qa_version_below
(
@
$metadata
[
'min_q2a'
]))
{
$pluginhtml
=
'<strike style="color:#999">'
.
$pluginhtml
.
'</strike><br><span style="color:#f00">'
.
$pluginhtml
=
'<strike style="color:#999">'
.
$pluginhtml
.
'</strike><br><span style="color:#f00">'
.
qa_lang_html_sub
(
'admin/requires_q2a_version'
,
qa_html
(
$metadata
[
'min_q2a'
]))
.
'</span>'
;
qa_lang_html_sub
(
'admin/requires_q2a_version'
,
qa_html
(
$metadata
[
'min_q2a'
]))
.
'</span>'
;
elseif
(
qa_php_version_below
(
@
$metadata
[
'min_php'
]))
}
elseif
(
qa_php_version_below
(
@
$metadata
[
'min_php'
]))
{
$pluginhtml
=
'<strike style="color:#999">'
.
$pluginhtml
.
'</strike><br><span style="color:#f00">'
.
$pluginhtml
=
'<strike style="color:#999">'
.
$pluginhtml
.
'</strike><br><span style="color:#f00">'
.
qa_lang_html_sub
(
'admin/requires_php_version'
,
qa_html
(
$metadata
[
'min_php'
]))
.
'</span>'
;
qa_lang_html_sub
(
'admin/requires_php_version'
,
qa_html
(
$metadata
[
'min_php'
]))
.
'</span>'
;
}
$qa_content
[
'form_plugin_'
.
$pluginIndex
]
=
array
(
$qa_content
[
'form_plugin_'
.
$pluginIndex
]
=
array
(
'tags'
=>
'id="'
.
qa_html
(
$hash
)
.
'"'
,
'tags'
=>
'id="'
.
qa_html
(
$hash
)
.
'"'
,
'style'
=>
'tall'
,
'style'
=>
'tall'
,
'fields'
=>
array
(
'fields'
=>
array
(
array
(
array
(
...
@@ -194,7 +192,7 @@
...
@@ -194,7 +192,7 @@
),
),
);
);
if
(
$showthisform
&&
isset
(
$pluginoptionmodules
[
$plugindirectory
]))
if
(
$showthisform
&&
isset
(
$pluginoptionmodules
[
$plugindirectory
]))
{
foreach
(
$pluginoptionmodules
[
$plugindirectory
]
as
$pluginoptionmodule
)
{
foreach
(
$pluginoptionmodules
[
$plugindirectory
]
as
$pluginoptionmodule
)
{
$type
=
$pluginoptionmodule
[
'type'
];
$type
=
$pluginoptionmodule
[
'type'
];
$name
=
$pluginoptionmodule
[
'name'
];
$name
=
$pluginoptionmodule
[
'name'
];
...
@@ -204,7 +202,7 @@
...
@@ -204,7 +202,7 @@
$form
=
$module
->
admin_form
(
$qa_content
);
$form
=
$module
->
admin_form
(
$qa_content
);
if
(
!
isset
(
$form
[
'tags'
]))
if
(
!
isset
(
$form
[
'tags'
]))
$form
[
'tags'
]
=
'method="post" action="'
.
qa_admin_plugin_options_path
(
$plugindirectory
)
.
'"'
;
$form
[
'tags'
]
=
'method="post" action="'
.
qa_admin_plugin_options_path
(
$plugindirectory
)
.
'"'
;
if
(
!
isset
(
$form
[
'style'
]))
if
(
!
isset
(
$form
[
'style'
]))
$form
[
'style'
]
=
'tall'
;
$form
[
'style'
]
=
'tall'
;
...
@@ -215,16 +213,11 @@
...
@@ -215,16 +213,11 @@
$qa_content
[
'form_plugin_options'
]
=
$form
;
$qa_content
[
'form_plugin_options'
]
=
$form
;
}
}
}
}
}
}
}
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
return
$qa_content
;
/*
return
$qa_content
;
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
qa-include/pages/admin/admin-points.php
View file @
14d54fd4
...
@@ -20,68 +20,68 @@
...
@@ -20,68 +20,68 @@
More about this license: http://www.question2answer.org/license.php
More about this license: http://www.question2answer.org/license.php
*/
*/
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
header
(
'Location: ../'
);
header
(
'Location: ../'
);
exit
;
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'db/recalc.php'
;
require_once
QA_INCLUDE_DIR
.
'db/recalc.php'
;
require_once
QA_INCLUDE_DIR
.
'db/points.php'
;
require_once
QA_INCLUDE_DIR
.
'db/points.php'
;
require_once
QA_INCLUDE_DIR
.
'app/options.php'
;
require_once
QA_INCLUDE_DIR
.
'app/options.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'util/sort.php'
;
require_once
QA_INCLUDE_DIR
.
'util/sort.php'
;
// Check admin privileges
// Check admin privileges
if
(
!
qa_admin_check_privileges
(
$qa_content
))
if
(
!
qa_admin_check_privileges
(
$qa_content
))
return
$qa_content
;
return
$qa_content
;
// Process user actions
// Process user actions
$securityexpired
=
false
;
$securityexpired
=
false
;
$recalculate
=
false
;
$recalculate
=
false
;
$optionnames
=
qa_db_points_option_names
();
$optionnames
=
qa_db_points_option_names
();
if
(
qa_clicked
(
'doshowdefaults'
))
{
if
(
qa_clicked
(
'doshowdefaults'
))
{
$options
=
array
();
$options
=
array
();
foreach
(
$optionnames
as
$optionname
)
foreach
(
$optionnames
as
$optionname
)
$options
[
$optionname
]
=
qa_default_option
(
$optionname
);
$options
[
$optionname
]
=
qa_default_option
(
$optionname
);
}
else
{
}
else
{
if
(
qa_clicked
(
'docancel'
))
if
(
qa_clicked
(
'docancel'
))
;
;
elseif
(
qa_clicked
(
'dosaverecalc'
))
{
elseif
(
qa_clicked
(
'dosaverecalc'
))
{
if
(
!
qa_check_form_security_code
(
'admin/points'
,
qa_post_text
(
'code'
)))
if
(
!
qa_check_form_security_code
(
'admin/points'
,
qa_post_text
(
'code'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
else
{
else
{
foreach
(
$optionnames
as
$optionname
)
foreach
(
$optionnames
as
$optionname
)
qa_set_option
(
$optionname
,
(
int
)
qa_post_text
(
'option_'
.
$optionname
));
qa_set_option
(
$optionname
,
(
int
)
qa_post_text
(
'option_'
.
$optionname
));
if
(
!
qa_post_text
(
'has_js'
))
if
(
!
qa_post_text
(
'has_js'
))
qa_redirect
(
'admin/recalc'
,
array
(
'dorecalcpoints'
=>
1
));
qa_redirect
(
'admin/recalc'
,
array
(
'dorecalcpoints'
=>
1
));
else
else
$recalculate
=
true
;
$recalculate
=
true
;
}
}
}
}
$options
=
qa_get_options
(
$optionnames
);
$options
=
qa_get_options
(
$optionnames
);
}
}
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/points_title'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/points_title'
);
$qa_content
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$qa_content
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$qa_content
[
'form'
]
=
array
(
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'" name="points_form" onsubmit="document.forms.points_form.has_js.value=1; return true;"'
,
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'" name="points_form" onsubmit="document.forms.points_form.has_js.value=1; return true;"'
,
'style'
=>
'wide'
,
'style'
=>
'wide'
,
...
@@ -97,41 +97,41 @@
...
@@ -97,41 +97,41 @@
'has_js'
=>
'0'
,
'has_js'
=>
'0'
,
'code'
=>
qa_get_form_security_code
(
'admin/points'
),
'code'
=>
qa_get_form_security_code
(
'admin/points'
),
),
),
);
);
if
(
qa_clicked
(
'doshowdefaults'
))
{
if
(
qa_clicked
(
'doshowdefaults'
))
{
$qa_content
[
'form'
][
'ok'
]
=
qa_lang_html
(
'admin/points_defaults_shown'
);
$qa_content
[
'form'
][
'ok'
]
=
qa_lang_html
(
'admin/points_defaults_shown'
);
$qa_content
[
'form'
][
'buttons'
][
'cancel'
]
=
array
(
$qa_content
[
'form'
][
'buttons'
][
'cancel'
]
=
array
(
'tags'
=>
'name="docancel"'
,
'tags'
=>
'name="docancel"'
,
'label'
=>
qa_lang_html
(
'main/cancel_button'
),
'label'
=>
qa_lang_html
(
'main/cancel_button'
),
);
);
}
else
{
}
else
{
if
(
$recalculate
)
{
if
(
$recalculate
)
{
$qa_content
[
'form'
][
'ok'
]
=
'<span id="recalc_ok"></span>'
;
$qa_content
[
'form'
][
'ok'
]
=
'<span id="recalc_ok"></span>'
;
$qa_content
[
'form'
][
'hidden'
][
'code_recalc'
]
=
qa_get_form_security_code
(
'admin/recalc'
);
$qa_content
[
'form'
][
'hidden'
][
'code_recalc'
]
=
qa_get_form_security_code
(
'admin/recalc'
);
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
$qa_content
[
'script_var'
][
'qa_warning_recalc'
]
=
qa_lang
(
'admin/stop_recalc_warning'
);
$qa_content
[
'script_var'
][
'qa_warning_recalc'
]
=
qa_lang
(
'admin/stop_recalc_warning'
);
$qa_content
[
'script_onloads'
][]
=
array
(
$qa_content
[
'script_onloads'
][]
=
array
(
"qa_recalc_click('dorecalcpoints', document.getElementById('dosaverecalc'), null, 'recalc_ok');"
"qa_recalc_click('dorecalcpoints', document.getElementById('dosaverecalc'), null, 'recalc_ok');"
);
);
}
}
$qa_content
[
'form'
][
'buttons'
][
'showdefaults'
]
=
array
(
$qa_content
[
'form'
][
'buttons'
][
'showdefaults'
]
=
array
(
'tags'
=>
'name="doshowdefaults"'
,
'tags'
=>
'name="doshowdefaults"'
,
'label'
=>
qa_lang_html
(
'admin/show_defaults_button'
),
'label'
=>
qa_lang_html
(
'admin/show_defaults_button'
),
);
);
}
}
foreach
(
$optionnames
as
$optionname
)
{
foreach
(
$optionnames
as
$optionname
)
{
$optionfield
=
array
(
$optionfield
=
array
(
'label'
=>
qa_lang_html
(
'options/'
.
$optionname
),
'label'
=>
qa_lang_html
(
'options/'
.
$optionname
),
'tags'
=>
'name="option_'
.
$optionname
.
'"'
,
'tags'
=>
'name="option_'
.
$optionname
.
'"'
,
'value'
=>
qa_html
(
$options
[
$optionname
]),
'value'
=>
qa_html
(
$options
[
$optionname
]),
'type'
=>
'number'
,
'type'
=>
'number'
,
'note'
=>
qa_lang_html
(
'admin/points'
),
'note'
=>
qa_lang_html
(
'admin/points'
),
...
@@ -139,7 +139,7 @@
...
@@ -139,7 +139,7 @@
switch
(
$optionname
)
{
switch
(
$optionname
)
{
case
'points_multiple'
:
case
'points_multiple'
:
$prefix
=
'×'
;
$prefix
=
'×'
;
unset
(
$optionfield
[
'note'
]);
unset
(
$optionfield
[
'note'
]);
break
;
break
;
...
@@ -147,41 +147,36 @@
...
@@ -147,41 +147,36 @@
case
'points_per_a_voted_up'
:
case
'points_per_a_voted_up'
:
case
'points_q_voted_max_gain'
:
case
'points_q_voted_max_gain'
:
case
'points_a_voted_max_gain'
:
case
'points_a_voted_max_gain'
:
$prefix
=
'+'
;
$prefix
=
'+'
;
break
;
break
;
case
'points_per_q_voted_down'
:
case
'points_per_q_voted_down'
:
case
'points_per_a_voted_down'
:
case
'points_per_a_voted_down'
:
case
'points_q_voted_max_loss'
:
case
'points_q_voted_max_loss'
:
case
'points_a_voted_max_loss'
:
case
'points_a_voted_max_loss'
:
$prefix
=
'–'
;
$prefix
=
'–'
;
break
;
break
;
case
'points_base'
:
case
'points_base'
:
$prefix
=
'+'
;
$prefix
=
'+'
;
break
;
break
;
default
:
default
:
$prefix
=
'<span style="visibility:hidden;">+</span>'
;
// for even alignment
$prefix
=
'<span style="visibility:hidden;">+</span>'
;
// for even alignment
break
;
break
;
}
}
$optionfield
[
'prefix'
]
=
'<span style="width:1em; display:inline-block; display:-moz-inline-stack;">'
.
$prefix
.
'</span>'
;
$optionfield
[
'prefix'
]
=
'<span style="width:1em; display:inline-block; display:-moz-inline-stack;">'
.
$prefix
.
'</span>'
;
$qa_content
[
'form'
][
'fields'
][
$optionname
]
=
$optionfield
;
}
qa_array_insert
(
$qa_content
[
'form'
][
'fields'
],
'points_post_a'
,
array
(
'blank0'
=>
array
(
'type'
=>
'blank'
)));
qa_array_insert
(
$qa_content
[
'form'
][
'fields'
],
'points_vote_up_q'
,
array
(
'blank1'
=>
array
(
'type'
=>
'blank'
)));
qa_array_insert
(
$qa_content
[
'form'
][
'fields'
],
'points_multiple'
,
array
(
'blank2'
=>
array
(
'type'
=>
'blank'
)));
$qa_content
[
'form'
][
'fields'
][
$optionname
]
=
$optionfield
;
}
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
qa_array_insert
(
$qa_content
[
'form'
][
'fields'
],
'points_post_a'
,
array
(
'blank0'
=>
array
(
'type'
=>
'blank'
)));
qa_array_insert
(
$qa_content
[
'form'
][
'fields'
],
'points_vote_up_q'
,
array
(
'blank1'
=>
array
(
'type'
=>
'blank'
)));
qa_array_insert
(
$qa_content
[
'form'
][
'fields'
],
'points_multiple'
,
array
(
'blank2'
=>
array
(
'type'
=>
'blank'
)));
return
$qa_content
;
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
()
;
/*
return
$qa_content
;
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
qa-include/pages/admin/admin-recalc.php
View file @
14d54fd4
...
@@ -20,24 +20,24 @@
...
@@ -20,24 +20,24 @@
More about this license: http://www.question2answer.org/license.php
More about this license: http://www.question2answer.org/license.php
*/
*/
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
header
(
'Location: ../'
);
header
(
'Location: ../'
);
exit
;
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/recalc.php'
;
require_once
QA_INCLUDE_DIR
.
'app/recalc.php'
;
// Check we have administrative privileges
// Check we have administrative privileges
if
(
!
qa_admin_check_privileges
(
$qa_content
))
if
(
!
qa_admin_check_privileges
(
$qa_content
))
return
$qa_content
;
return
$qa_content
;
// Find out the operation
// Find out the operation
$allowstates
=
array
(
$allowstates
=
array
(
'dorecountposts'
,
'dorecountposts'
,
'doreindexcontent'
,
'doreindexcontent'
,
'dorecalcpoints'
,
'dorecalcpoints'
,
...
@@ -46,69 +46,70 @@
...
@@ -46,69 +46,70 @@
'dodeletehidden'
,
'dodeletehidden'
,
'doblobstodisk'
,
'doblobstodisk'
,
'doblobstodb'
,
'doblobstodb'
,
);
);
$recalcnow
=
false
;
$recalcnow
=
false
;
foreach
(
$allowstates
as
$allowstate
)
foreach
(
$allowstates
as
$allowstate
)
{
if
(
qa_post_text
(
$allowstate
)
||
qa_get
(
$allowstate
))
{
if
(
qa_post_text
(
$allowstate
)
||
qa_get
(
$allowstate
))
{
$state
=
$allowstate
;
$state
=
$allowstate
;
$code
=
qa_post_text
(
'code'
);
$code
=
qa_post_text
(
'code'
);
if
(
isset
(
$code
)
&&
qa_check_form_security_code
(
'admin/recalc'
,
$code
))
if
(
isset
(
$code
)
&&
qa_check_form_security_code
(
'admin/recalc'
,
$code
))
$recalcnow
=
true
;
$recalcnow
=
true
;
}
}
}
if
(
$recalcnow
)
{
if
(
$recalcnow
)
{
?>
?>
<html>
<html>
<head>
<head>
<meta
http-equiv=
"content-type"
content=
"text/html; charset=utf-8"
>
<meta
http-equiv=
"content-type"
content=
"text/html; charset=utf-8"
>
</head>
</head>
<body>
<body>
<tt>
<tt>
<?php
<?php
while
(
$state
)
{
while
(
$state
)
{
set_time_limit
(
60
);
set_time_limit
(
60
);
$stoptime
=
time
()
+
2
;
// run in lumps of two seconds...
$stoptime
=
time
()
+
2
;
// run in lumps of two seconds...
while
(
qa_recalc_perform_step
(
$state
)
&&
(
time
()
<
$stoptime
)
)
while
(
qa_recalc_perform_step
(
$state
)
&&
time
()
<
$stoptime
)
;
;
echo
qa_html
(
qa_recalc_get_message
(
$state
))
.
str_repeat
(
' '
,
1024
)
.
"<br>
\n
"
;
echo
qa_html
(
qa_recalc_get_message
(
$state
))
.
str_repeat
(
' '
,
1024
)
.
"<br>
\n
"
;
flush
();
flush
();
sleep
(
1
);
// ... then rest for one
sleep
(
1
);
// ... then rest for one
}
}
?>
?>
</tt>
</tt>
<a
href=
"
<?php
echo
qa_path_html
(
'admin/stats'
)
?>
"
>
<?php
echo
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/stats_title'
)
?>
</a>
<a
href=
"
<?php
echo
qa_path_html
(
'admin/stats'
)
?>
"
>
<?php
echo
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/stats_title'
)
?>
</a>
</body>
</body>
</html>
</html>
<?php
<?php
qa_exit
();
qa_exit
();
}
elseif
(
isset
(
$state
))
{
}
elseif
(
isset
(
$state
))
{
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
);
$qa_content
[
'error'
]
=
qa_lang_html
(
'misc/form_security_again'
);
$qa_content
[
'error'
]
=
qa_lang_html
(
'misc/form_security_again'
);
$qa_content
[
'form'
]
=
array
(
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'style'
=>
'wide'
,
'style'
=>
'wide'
,
'buttons'
=>
array
(
'buttons'
=>
array
(
'recalc'
=>
array
(
'recalc'
=>
array
(
'tags'
=>
'name="'
.
qa_html
(
$state
)
.
'"'
,
'tags'
=>
'name="'
.
qa_html
(
$state
)
.
'"'
,
'label'
=>
qa_lang_html
(
'misc/form_security_again'
),
'label'
=>
qa_lang_html
(
'misc/form_security_again'
),
),
),
),
),
...
@@ -120,18 +121,13 @@
...
@@ -120,18 +121,13 @@
return
$qa_content
;
return
$qa_content
;
}
else
{
}
else
{
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
);
$qa_content
[
'error'
]
=
qa_lang_html
(
'main/page_not_found'
);
$qa_content
[
'error'
]
=
qa_lang_html
(
'main/page_not_found'
);
return
$qa_content
;
return
$qa_content
;
}
}
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
qa-include/pages/admin/admin-stats.php
View file @
14d54fd4
...
@@ -20,44 +20,44 @@
...
@@ -20,44 +20,44 @@
More about this license: http://www.question2answer.org/license.php
More about this license: http://www.question2answer.org/license.php
*/
*/
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
header
(
'Location: ../'
);
header
(
'Location: ../'
);
exit
;
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'db/recalc.php'
;
require_once
QA_INCLUDE_DIR
.
'db/recalc.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
// Check admin privileges (do late to allow one DB query)
// Check admin privileges (do late to allow one DB query)
if
(
!
qa_admin_check_privileges
(
$qa_content
))
if
(
!
qa_admin_check_privileges
(
$qa_content
))
return
$qa_content
;
return
$qa_content
;
// Get the information to display
// Get the information to display
$qcount
=
(
int
)
qa_opt
(
'cache_qcount'
);
$qcount
=
(
int
)
qa_opt
(
'cache_qcount'
);
$qcount_anon
=
qa_db_count_posts
(
'Q'
,
false
);
$qcount_anon
=
qa_db_count_posts
(
'Q'
,
false
);
$acount
=
(
int
)
qa_opt
(
'cache_acount'
);
$acount
=
(
int
)
qa_opt
(
'cache_acount'
);
$acount_anon
=
qa_db_count_posts
(
'A'
,
false
);
$acount_anon
=
qa_db_count_posts
(
'A'
,
false
);
$ccount
=
(
int
)
qa_opt
(
'cache_ccount'
);
$ccount
=
(
int
)
qa_opt
(
'cache_ccount'
);
$ccount_anon
=
qa_db_count_posts
(
'C'
,
false
);
$ccount_anon
=
qa_db_count_posts
(
'C'
,
false
);
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/stats_title'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/stats_title'
);
$qa_content
[
'error'
]
=
qa_admin_page_error
();
$qa_content
[
'error'
]
=
qa_admin_page_error
();
$qa_content
[
'form'
]
=
array
(
$qa_content
[
'form'
]
=
array
(
'style'
=>
'wide'
,
'style'
=>
'wide'
,
'fields'
=>
array
(
'fields'
=>
array
(
...
@@ -74,7 +74,7 @@
...
@@ -74,7 +74,7 @@
'q2a_latest'
=>
array
(
'q2a_latest'
=>
array
(
'label'
=>
qa_lang_html
(
'admin/q2a_latest_version'
),
'label'
=>
qa_lang_html
(
'admin/q2a_latest_version'
),
'type'
=>
'custom'
,
'type'
=>
'custom'
,
'html'
=>
'<iframe src="http://www.question2answer.org/question2answer-latest.php?version='
.
urlencode
(
QA_VERSION
)
.
'&language='
.
urlencode
(
qa_opt
(
'site_language'
))
.
'html'
=>
'<iframe src="http://www.question2answer.org/question2answer-latest.php?version='
.
urlencode
(
QA_VERSION
)
.
'&language='
.
urlencode
(
qa_opt
(
'site_language'
))
.
'" width="100" height="16" style="vertical-align:middle; border:0; background:transparent;" allowTransparency="true" scrolling="no" frameborder="0"></iframe>'
,
'" width="100" height="16" style="vertical-align:middle; border:0; background:transparent;" allowTransparency="true" scrolling="no" frameborder="0"></iframe>'
,
),
),
...
@@ -117,7 +117,7 @@
...
@@ -117,7 +117,7 @@
'qcount_users'
=>
array
(
'qcount_users'
=>
array
(
'label'
=>
qa_lang_html
(
'admin/from_users'
),
'label'
=>
qa_lang_html
(
'admin/from_users'
),
'value'
=>
qa_html
(
qa_format_number
(
$qcount
-
$qcount_anon
)),
'value'
=>
qa_html
(
qa_format_number
(
$qcount
-
$qcount_anon
)),
),
),
'qcount_anon'
=>
array
(
'qcount_anon'
=>
array
(
...
@@ -136,7 +136,7 @@
...
@@ -136,7 +136,7 @@
'acount_users'
=>
array
(
'acount_users'
=>
array
(
'label'
=>
qa_lang_html
(
'admin/from_users'
),
'label'
=>
qa_lang_html
(
'admin/from_users'
),
'value'
=>
qa_html
(
qa_format_number
(
$acount
-
$acount_anon
)),
'value'
=>
qa_html
(
qa_format_number
(
$acount
-
$acount_anon
)),
),
),
'acount_anon'
=>
array
(
'acount_anon'
=>
array
(
...
@@ -155,7 +155,7 @@
...
@@ -155,7 +155,7 @@
'ccount_users'
=>
array
(
'ccount_users'
=>
array
(
'label'
=>
qa_lang_html
(
'admin/from_users'
),
'label'
=>
qa_lang_html
(
'admin/from_users'
),
'value'
=>
qa_html
(
qa_format_number
(
$ccount
-
$ccount_anon
)),
'value'
=>
qa_html
(
qa_format_number
(
$ccount
-
$ccount_anon
)),
),
),
'ccount_anon'
=>
array
(
'ccount_anon'
=>
array
(
...
@@ -174,7 +174,7 @@
...
@@ -174,7 +174,7 @@
'users_active'
=>
array
(
'users_active'
=>
array
(
'label'
=>
qa_lang_html
(
'admin/users_active'
),
'label'
=>
qa_lang_html
(
'admin/users_active'
),
'value'
=>
qa_html
(
qa_format_number
((
int
)
qa_opt
(
'cache_userpointscount'
))),
'value'
=>
qa_html
(
qa_format_number
((
int
)
qa_opt
(
'cache_userpointscount'
))),
),
),
'users_posted'
=>
array
(
'users_posted'
=>
array
(
...
@@ -187,19 +187,20 @@
...
@@ -187,19 +187,20 @@
'value'
=>
qa_html
(
qa_format_number
(
qa_db_count_active_users
(
'uservotes'
))),
'value'
=>
qa_html
(
qa_format_number
(
qa_db_count_active_users
(
'uservotes'
))),
),
),
),
),
);
);
if
(
QA_FINAL_EXTERNAL_USERS
)
if
(
QA_FINAL_EXTERNAL_USERS
)
unset
(
$qa_content
[
'form'
][
'fields'
][
'users'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'users'
]);
else
else
unset
(
$qa_content
[
'form'
][
'fields'
][
'users_active'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'users_active'
]);
foreach
(
$qa_content
[
'form'
][
'fields'
]
as
$index
=>
$field
)
foreach
(
$qa_content
[
'form'
][
'fields'
]
as
$index
=>
$field
)
{
if
(
empty
(
$field
[
'type'
]))
if
(
empty
(
$field
[
'type'
]))
$qa_content
[
'form'
][
'fields'
][
$index
][
'type'
]
=
'static'
;
$qa_content
[
'form'
][
'fields'
][
$index
][
'type'
]
=
'static'
;
}
$qa_content
[
'form_2'
]
=
array
(
$qa_content
[
'form_2'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
'admin/recalc'
)
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_path_html
(
'admin/recalc'
)
.
'"'
,
'title'
=>
qa_lang_html
(
'admin/database_cleanup'
),
'title'
=>
qa_lang_html
(
'admin/database_cleanup'
),
...
@@ -208,75 +209,72 @@
...
@@ -208,75 +209,72 @@
'buttons'
=>
array
(
'buttons'
=>
array
(
'recount_posts'
=>
array
(
'recount_posts'
=>
array
(
'label'
=>
qa_lang_html
(
'admin/recount_posts'
),
'label'
=>
qa_lang_html
(
'admin/recount_posts'
),
'tags'
=>
'name="dorecountposts" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/recount_posts_stop'
))
.
', \'recount_posts_note\');"'
,
'tags'
=>
'name="dorecountposts" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/recount_posts_stop'
))
.
', \'recount_posts_note\');"'
,
'note'
=>
'<span id="recount_posts_note">'
.
qa_lang_html
(
'admin/recount_posts_note'
)
.
'</span>'
,
'note'
=>
'<span id="recount_posts_note">'
.
qa_lang_html
(
'admin/recount_posts_note'
)
.
'</span>'
,
),
),
'reindex_content'
=>
array
(
'reindex_content'
=>
array
(
'label'
=>
qa_lang_html
(
'admin/reindex_content'
),
'label'
=>
qa_lang_html
(
'admin/reindex_content'
),
'tags'
=>
'name="doreindexcontent" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/reindex_content_stop'
))
.
', \'reindex_content_note\');"'
,
'tags'
=>
'name="doreindexcontent" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/reindex_content_stop'
))
.
', \'reindex_content_note\');"'
,
'note'
=>
'<span id="reindex_content_note">'
.
qa_lang_html
(
'admin/reindex_content_note'
)
.
'</span>'
,
'note'
=>
'<span id="reindex_content_note">'
.
qa_lang_html
(
'admin/reindex_content_note'
)
.
'</span>'
,
),
),
'recalc_points'
=>
array
(
'recalc_points'
=>
array
(
'label'
=>
qa_lang_html
(
'admin/recalc_points'
),
'label'
=>
qa_lang_html
(
'admin/recalc_points'
),
'tags'
=>
'name="dorecalcpoints" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/recalc_stop'
))
.
', \'recalc_points_note\');"'
,
'tags'
=>
'name="dorecalcpoints" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/recalc_stop'
))
.
', \'recalc_points_note\');"'
,
'note'
=>
'<span id="recalc_points_note">'
.
qa_lang_html
(
'admin/recalc_points_note'
)
.
'</span>'
,
'note'
=>
'<span id="recalc_points_note">'
.
qa_lang_html
(
'admin/recalc_points_note'
)
.
'</span>'
,
),
),
'refill_events'
=>
array
(
'refill_events'
=>
array
(
'label'
=>
qa_lang_html
(
'admin/refill_events'
),
'label'
=>
qa_lang_html
(
'admin/refill_events'
),
'tags'
=>
'name="dorefillevents" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/recalc_stop'
))
.
', \'refill_events_note\');"'
,
'tags'
=>
'name="dorefillevents" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/recalc_stop'
))
.
', \'refill_events_note\');"'
,
'note'
=>
'<span id="refill_events_note">'
.
qa_lang_html
(
'admin/refill_events_note'
)
.
'</span>'
,
'note'
=>
'<span id="refill_events_note">'
.
qa_lang_html
(
'admin/refill_events_note'
)
.
'</span>'
,
),
),
'recalc_categories'
=>
array
(
'recalc_categories'
=>
array
(
'label'
=>
qa_lang_html
(
'admin/recalc_categories'
),
'label'
=>
qa_lang_html
(
'admin/recalc_categories'
),
'tags'
=>
'name="dorecalccategories" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/recalc_stop'
))
.
', \'recalc_categories_note\');"'
,
'tags'
=>
'name="dorecalccategories" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/recalc_stop'
))
.
', \'recalc_categories_note\');"'
,
'note'
=>
'<span id="recalc_categories_note">'
.
qa_lang_html
(
'admin/recalc_categories_note'
)
.
'</span>'
,
'note'
=>
'<span id="recalc_categories_note">'
.
qa_lang_html
(
'admin/recalc_categories_note'
)
.
'</span>'
,
),
),
'delete_hidden'
=>
array
(
'delete_hidden'
=>
array
(
'label'
=>
qa_lang_html
(
'admin/delete_hidden'
),
'label'
=>
qa_lang_html
(
'admin/delete_hidden'
),
'tags'
=>
'name="dodeletehidden" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/delete_stop'
))
.
', \'delete_hidden_note\');"'
,
'tags'
=>
'name="dodeletehidden" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/delete_stop'
))
.
', \'delete_hidden_note\');"'
,
'note'
=>
'<span id="delete_hidden_note">'
.
qa_lang_html
(
'admin/delete_hidden_note'
)
.
'</span>'
,
'note'
=>
'<span id="delete_hidden_note">'
.
qa_lang_html
(
'admin/delete_hidden_note'
)
.
'</span>'
,
),
),
),
),
'hidden'
=>
array
(
'hidden'
=>
array
(
'code'
=>
qa_get_form_security_code
(
'admin/recalc'
),
'code'
=>
qa_get_form_security_code
(
'admin/recalc'
),
),
),
);
);
if
(
!
qa_using_categories
())
if
(
!
qa_using_categories
())
unset
(
$qa_content
[
'form_2'
][
'buttons'
][
'recalc_categories'
]);
unset
(
$qa_content
[
'form_2'
][
'buttons'
][
'recalc_categories'
]);
if
(
defined
(
'QA_BLOBS_DIRECTORY'
))
{
if
(
defined
(
'QA_BLOBS_DIRECTORY'
))
{
if
(
qa_db_has_blobs_in_db
())
if
(
qa_db_has_blobs_in_db
())
{
$qa_content
[
'form_2'
][
'buttons'
][
'blobs_to_disk'
]
=
array
(
$qa_content
[
'form_2'
][
'buttons'
][
'blobs_to_disk'
]
=
array
(
'label'
=>
qa_lang_html
(
'admin/blobs_to_disk'
),
'label'
=>
qa_lang_html
(
'admin/blobs_to_disk'
),
'tags'
=>
'name="doblobstodisk" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/blobs_stop'
))
.
', \'blobs_to_disk_note\');"'
,
'tags'
=>
'name="doblobstodisk" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/blobs_stop'
))
.
', \'blobs_to_disk_note\');"'
,
'note'
=>
'<span id="blobs_to_disk_note">'
.
qa_lang_html
(
'admin/blobs_to_disk_note'
)
.
'</span>'
,
'note'
=>
'<span id="blobs_to_disk_note">'
.
qa_lang_html
(
'admin/blobs_to_disk_note'
)
.
'</span>'
,
);
);
}
if
(
qa_db_has_blobs_on_disk
())
if
(
qa_db_has_blobs_on_disk
())
{
$qa_content
[
'form_2'
][
'buttons'
][
'blobs_to_db'
]
=
array
(
$qa_content
[
'form_2'
][
'buttons'
][
'blobs_to_db'
]
=
array
(
'label'
=>
qa_lang_html
(
'admin/blobs_to_db'
),
'label'
=>
qa_lang_html
(
'admin/blobs_to_db'
),
'tags'
=>
'name="doblobstodb" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/blobs_stop'
))
.
', \'blobs_to_db_note\');"'
,
'tags'
=>
'name="doblobstodb" onclick="return qa_recalc_click(this.name, this, '
.
qa_js
(
qa_lang_html
(
'admin/blobs_stop'
))
.
', \'blobs_to_db_note\');"'
,
'note'
=>
'<span id="blobs_to_db_note">'
.
qa_lang_html
(
'admin/blobs_to_db_note'
)
.
'</span>'
,
'note'
=>
'<span id="blobs_to_db_note">'
.
qa_lang_html
(
'admin/blobs_to_db_note'
)
.
'</span>'
,
);
);
}
}
}
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
$qa_content
[
'script_var'
][
'qa_warning_recalc'
]
=
qa_lang
(
'admin/stop_recalc_warning'
);
$qa_content
[
'script_var'
][
'qa_warning_recalc'
]
=
qa_lang
(
'admin/stop_recalc_warning'
);
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
return
$qa_content
;
return
$qa_content
;
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
qa-include/pages/admin/admin-userfields.php
View file @
14d54fd4
...
@@ -20,48 +20,49 @@
...
@@ -20,48 +20,49 @@
More about this license: http://www.question2answer.org/license.php
More about this license: http://www.question2answer.org/license.php
*/
*/
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
header
(
'Location: ../'
);
header
(
'Location: ../'
);
exit
;
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
// Get current list of user fields and determine the state of this admin page
// Get current list of user fields and determine the state of this admin page
$fieldid
=
qa_post_text
(
'edit'
);
$fieldid
=
qa_post_text
(
'edit'
);
if
(
!
isset
(
$fieldid
))
if
(
!
isset
(
$fieldid
))
$fieldid
=
qa_get
(
'edit'
);
$fieldid
=
qa_get
(
'edit'
);
$userfields
=
qa_db_select_with_pending
(
qa_db_userfields_selectspec
());
$userfields
=
qa_db_select_with_pending
(
qa_db_userfields_selectspec
());
$editfield
=
null
;
$editfield
=
null
;
foreach
(
$userfields
as
$userfield
)
foreach
(
$userfields
as
$userfield
)
{
if
(
$userfield
[
'fieldid'
]
==
$fieldid
)
if
(
$userfield
[
'fieldid'
]
==
$fieldid
)
$editfield
=
$userfield
;
$editfield
=
$userfield
;
}
// Check admin privileges (do late to allow one DB query)
// Check admin privileges (do late to allow one DB query)
if
(
!
qa_admin_check_privileges
(
$qa_content
))
if
(
!
qa_admin_check_privileges
(
$qa_content
))
return
$qa_content
;
return
$qa_content
;
// Process saving an old or new user field
// Process saving an old or new user field
$securityexpired
=
false
;
$securityexpired
=
false
;
if
(
qa_clicked
(
'docancel'
))
if
(
qa_clicked
(
'docancel'
))
qa_redirect
(
'admin/users'
);
qa_redirect
(
'admin/users'
);
elseif
(
qa_clicked
(
'dosavefield'
))
{
elseif
(
qa_clicked
(
'dosavefield'
))
{
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
if
(
!
qa_check_form_security_code
(
'admin/userfields'
,
qa_post_text
(
'code'
)))
if
(
!
qa_check_form_security_code
(
'admin/userfields'
,
qa_post_text
(
'code'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
else
{
else
{
if
(
qa_post_text
(
'dodelete'
))
{
if
(
qa_post_text
(
'dodelete'
))
{
...
@@ -69,19 +70,19 @@
...
@@ -69,19 +70,19 @@
qa_redirect
(
'admin/users'
);
qa_redirect
(
'admin/users'
);
}
else
{
}
else
{
$inname
=
qa_post_text
(
'name'
);
$inname
=
qa_post_text
(
'name'
);
$intype
=
qa_post_text
(
'type'
);
$intype
=
qa_post_text
(
'type'
);
$inonregister
=
(
int
)
qa_post_text
(
'onregister'
);
$inonregister
=
(
int
)
qa_post_text
(
'onregister'
);
$inflags
=
$intype
|
(
$inonregister
?
QA_FIELD_FLAGS_ON_REGISTER
:
0
);
$inflags
=
$intype
|
(
$inonregister
?
QA_FIELD_FLAGS_ON_REGISTER
:
0
);
$inposition
=
qa_post_text
(
'position'
);
$inposition
=
qa_post_text
(
'position'
);
$inpermit
=
(
int
)
qa_post_text
(
'permit'
);
$inpermit
=
(
int
)
qa_post_text
(
'permit'
);
$errors
=
array
();
$errors
=
array
();
// Verify the name is legitimate
// Verify the name is legitimate
if
(
qa_strlen
(
$inname
)
>
QA_DB_MAX_PROFILE_TITLE_LENGTH
)
if
(
qa_strlen
(
$inname
)
>
QA_DB_MAX_PROFILE_TITLE_LENGTH
)
$errors
[
'name'
]
=
qa_lang_sub
(
'main/max_length_x'
,
QA_DB_MAX_PROFILE_TITLE_LENGTH
);
$errors
[
'name'
]
=
qa_lang_sub
(
'main/max_length_x'
,
QA_DB_MAX_PROFILE_TITLE_LENGTH
);
// Perform appropriate database action
// Perform appropriate database action
...
@@ -93,25 +94,26 @@
...
@@ -93,25 +94,26 @@
qa_redirect
(
'admin/users'
);
qa_redirect
(
'admin/users'
);
else
{
else
{
$userfields
=
qa_db_select_with_pending
(
qa_db_userfields_selectspec
());
// reload after changes
$userfields
=
qa_db_select_with_pending
(
qa_db_userfields_selectspec
());
// reload after changes
foreach
(
$userfields
as
$userfield
)
foreach
(
$userfields
as
$userfield
)
if
(
$userfield
[
'fieldid'
]
==
$editfield
[
'fieldid'
])
if
(
$userfield
[
'fieldid'
]
==
$editfield
[
'fieldid'
])
$editfield
=
$userfield
;
$editfield
=
$userfield
;
}
}
}
elseif
(
empty
(
$errors
))
{
// creating a new user field
}
elseif
(
empty
(
$errors
))
{
// creating a new user field
for
(
$attempt
=
0
;
$attempt
<
1000
;
$attempt
++
)
{
for
(
$attempt
=
0
;
$attempt
<
1000
;
$attempt
++
)
{
$suffix
=
$attempt
?
(
'-'
.
(
1
+
$attempt
))
:
''
;
$suffix
=
$attempt
?
(
'-'
.
(
1
+
$attempt
))
:
''
;
$newtag
=
qa_substr
(
implode
(
'-'
,
qa_string_to_words
(
$inname
)),
0
,
QA_DB_MAX_PROFILE_TITLE_LENGTH
-
strlen
(
$suffix
))
.
$suffix
;
$newtag
=
qa_substr
(
implode
(
'-'
,
qa_string_to_words
(
$inname
)),
0
,
QA_DB_MAX_PROFILE_TITLE_LENGTH
-
strlen
(
$suffix
))
.
$suffix
;
$uniquetag
=
true
;
$uniquetag
=
true
;
foreach
(
$userfields
as
$userfield
)
foreach
(
$userfields
as
$userfield
)
{
if
(
qa_strtolower
(
trim
(
$newtag
))
==
qa_strtolower
(
trim
(
$userfield
[
'title'
])))
if
(
qa_strtolower
(
trim
(
$newtag
))
==
qa_strtolower
(
trim
(
$userfield
[
'title'
])))
$uniquetag
=
false
;
$uniquetag
=
false
;
}
if
(
$uniquetag
)
{
if
(
$uniquetag
)
{
$fieldid
=
qa_db_userfield_create
(
$newtag
,
$inname
,
$inflags
,
$inpermit
);
$fieldid
=
qa_db_userfield_create
(
$newtag
,
$inname
,
$inflags
,
$inpermit
);
qa_db_userfield_move
(
$fieldid
,
$inposition
);
qa_db_userfield_move
(
$fieldid
,
$inposition
);
qa_redirect
(
'admin/users'
);
qa_redirect
(
'admin/users'
);
}
}
...
@@ -121,52 +123,52 @@
...
@@ -121,52 +123,52 @@
}
}
}
}
}
}
}
}
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/users_title'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/users_title'
);
$qa_content
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$qa_content
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$positionoptions
=
array
();
$positionoptions
=
array
();
$previous
=
null
;
$previous
=
null
;
$passedself
=
false
;
$passedself
=
false
;
foreach
(
$userfields
as
$userfield
)
{
foreach
(
$userfields
as
$userfield
)
{
if
(
isset
(
$previous
))
if
(
isset
(
$previous
))
$positionhtml
=
qa_lang_html_sub
(
'admin/after_x'
,
qa_html
(
qa_user_userfield_label
(
$passedself
?
$userfield
:
$previous
)));
$positionhtml
=
qa_lang_html_sub
(
'admin/after_x'
,
qa_html
(
qa_user_userfield_label
(
$passedself
?
$userfield
:
$previous
)));
else
else
$positionhtml
=
qa_lang_html
(
'admin/first'
);
$positionhtml
=
qa_lang_html
(
'admin/first'
);
$positionoptions
[
$userfield
[
'position'
]]
=
$positionhtml
;
$positionoptions
[
$userfield
[
'position'
]]
=
$positionhtml
;
if
(
$userfield
[
'fieldid'
]
==
@
$editfield
[
'fieldid'
])
if
(
$userfield
[
'fieldid'
]
==
@
$editfield
[
'fieldid'
])
$passedself
=
true
;
$passedself
=
true
;
$previous
=
$userfield
;
$previous
=
$userfield
;
}
}
if
(
isset
(
$editfield
[
'position'
]))
if
(
isset
(
$editfield
[
'position'
]))
$positionvalue
=
$positionoptions
[
$editfield
[
'position'
]];
$positionvalue
=
$positionoptions
[
$editfield
[
'position'
]];
else
{
else
{
$positionvalue
=
isset
(
$previous
)
?
qa_lang_html_sub
(
'admin/after_x'
,
qa_html
(
qa_user_userfield_label
(
$previous
)))
:
qa_lang_html
(
'admin/first'
);
$positionvalue
=
isset
(
$previous
)
?
qa_lang_html_sub
(
'admin/after_x'
,
qa_html
(
qa_user_userfield_label
(
$previous
)))
:
qa_lang_html
(
'admin/first'
);
$positionoptions
[
1
+@
max
(
array_keys
(
$positionoptions
))]
=
$positionvalue
;
$positionoptions
[
1
+
@
max
(
array_keys
(
$positionoptions
))]
=
$positionvalue
;
}
}
$typeoptions
=
array
(
$typeoptions
=
array
(
0
=>
qa_lang_html
(
'admin/field_single_line'
),
0
=>
qa_lang_html
(
'admin/field_single_line'
),
QA_FIELD_FLAGS_MULTI_LINE
=>
qa_lang_html
(
'admin/field_multi_line'
),
QA_FIELD_FLAGS_MULTI_LINE
=>
qa_lang_html
(
'admin/field_multi_line'
),
QA_FIELD_FLAGS_LINK_URL
=>
qa_lang_html
(
'admin/field_link_url'
),
QA_FIELD_FLAGS_LINK_URL
=>
qa_lang_html
(
'admin/field_link_url'
),
);
);
$permitoptions
=
qa_admin_permit_options
(
QA_PERMIT_ALL
,
QA_PERMIT_ADMINS
,
false
,
false
);
$permitoptions
=
qa_admin_permit_options
(
QA_PERMIT_ALL
,
QA_PERMIT_ADMINS
,
false
,
false
);
$permitvalue
=
@
$permitoptions
[
isset
(
$inpermit
)
?
$inpermit
:
$editfield
[
'permit'
]];
$permitvalue
=
@
$permitoptions
[
isset
(
$inpermit
)
?
$inpermit
:
$editfield
[
'permit'
]];
$qa_content
[
'form'
]
=
array
(
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'style'
=>
'tall'
,
'style'
=>
'tall'
,
...
@@ -191,7 +193,7 @@
...
@@ -191,7 +193,7 @@
'label'
=>
qa_lang_html
(
'admin/field_type'
),
'label'
=>
qa_lang_html
(
'admin/field_type'
),
'type'
=>
'select'
,
'type'
=>
'select'
,
'options'
=>
$typeoptions
,
'options'
=>
$typeoptions
,
'value'
=>
@
$typeoptions
[
isset
(
$intype
)
?
$intype
:
(
@
$editfield
[
'flags'
]
&
(
QA_FIELD_FLAGS_MULTI_LINE
|
QA_FIELD_FLAGS_LINK_URL
))],
'value'
=>
@
$typeoptions
[
isset
(
$intype
)
?
$intype
:
(
@
$editfield
[
'flags'
]
&
(
QA_FIELD_FLAGS_MULTI_LINE
|
QA_FIELD_FLAGS_LINK_URL
))],
),
),
'permit'
=>
array
(
'permit'
=>
array
(
...
@@ -217,7 +219,7 @@
...
@@ -217,7 +219,7 @@
'tags'
=>
'name="onregister"'
,
'tags'
=>
'name="onregister"'
,
'label'
=>
qa_lang_html
(
'admin/show_on_register_form'
),
'label'
=>
qa_lang_html
(
'admin/show_on_register_form'
),
'type'
=>
'checkbox'
,
'type'
=>
'checkbox'
,
'value'
=>
isset
(
$inonregister
)
?
$inonregister
:
(
@
$editfield
[
'flags'
]
&
QA_FIELD_FLAGS_ON_REGISTER
),
'value'
=>
isset
(
$inonregister
)
?
$inonregister
:
(
@
$editfield
[
'flags'
]
&
QA_FIELD_FLAGS_ON_REGISTER
),
),
),
),
),
...
@@ -237,26 +239,22 @@
...
@@ -237,26 +239,22 @@
'edit'
=>
@
$editfield
[
'fieldid'
],
'edit'
=>
@
$editfield
[
'fieldid'
],
'code'
=>
qa_get_form_security_code
(
'admin/userfields'
),
'code'
=>
qa_get_form_security_code
(
'admin/userfields'
),
),
),
);
);
if
(
isset
(
$editfield
[
'fieldid'
]))
if
(
isset
(
$editfield
[
'fieldid'
]))
{
qa_set_display_rules
(
$qa_content
,
array
(
qa_set_display_rules
(
$qa_content
,
array
(
'type_display'
=>
'!dodelete'
,
'type_display'
=>
'!dodelete'
,
'position_display'
=>
'!dodelete'
,
'position_display'
=>
'!dodelete'
,
'register_display'
=>
'!dodelete'
,
'register_display'
=>
'!dodelete'
,
'permit_display'
=>
'!dodelete'
,
'permit_display'
=>
'!dodelete'
,
));
));
else
}
else
{
unset
(
$qa_content
[
'form'
][
'fields'
][
'delete'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'delete'
]);
}
$qa_content
[
'focusid'
]
=
'name'
;
$qa_content
[
'focusid'
]
=
'name'
;
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
return
$qa_content
;
/*
return
$qa_content
;
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
qa-include/pages/admin/admin-usertitles.php
View file @
14d54fd4
...
@@ -20,105 +20,105 @@
...
@@ -20,105 +20,105 @@
More about this license: http://www.question2answer.org/license.php
More about this license: http://www.question2answer.org/license.php
*/
*/
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
header
(
'Location: ../'
);
header
(
'Location: ../'
);
exit
;
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
// Get current list of user titles and determine the state of this admin page
// Get current list of user titles and determine the state of this admin page
$oldpoints
=
qa_post_text
(
'edit'
);
$oldpoints
=
qa_post_text
(
'edit'
);
if
(
!
isset
(
$oldpoints
))
if
(
!
isset
(
$oldpoints
))
$oldpoints
=
qa_get
(
'edit'
);
$oldpoints
=
qa_get
(
'edit'
);
$pointstitle
=
qa_get_points_to_titles
();
$pointstitle
=
qa_get_points_to_titles
();
// Check admin privileges (do late to allow one DB query)
// Check admin privileges (do late to allow one DB query)
if
(
!
qa_admin_check_privileges
(
$qa_content
))
if
(
!
qa_admin_check_privileges
(
$qa_content
))
return
$qa_content
;
return
$qa_content
;
// Process saving an old or new user title
// Process saving an old or new user title
$securityexpired
=
false
;
$securityexpired
=
false
;
if
(
qa_clicked
(
'docancel'
))
if
(
qa_clicked
(
'docancel'
))
qa_redirect
(
'admin/users'
);
qa_redirect
(
'admin/users'
);
elseif
(
qa_clicked
(
'dosavetitle'
))
{
elseif
(
qa_clicked
(
'dosavetitle'
))
{
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
if
(
!
qa_check_form_security_code
(
'admin/usertitles'
,
qa_post_text
(
'code'
)))
if
(
!
qa_check_form_security_code
(
'admin/usertitles'
,
qa_post_text
(
'code'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
else
{
else
{
if
(
qa_post_text
(
'dodelete'
))
{
if
(
qa_post_text
(
'dodelete'
))
{
unset
(
$pointstitle
[
$oldpoints
]);
unset
(
$pointstitle
[
$oldpoints
]);
}
else
{
}
else
{
$intitle
=
qa_post_text
(
'title'
);
$intitle
=
qa_post_text
(
'title'
);
$inpoints
=
qa_post_text
(
'points'
);
$inpoints
=
qa_post_text
(
'points'
);
$errors
=
array
();
$errors
=
array
();
// Verify the title and points are legitimate
// Verify the title and points are legitimate
if
(
!
strlen
(
$intitle
))
if
(
!
strlen
(
$intitle
))
$errors
[
'title'
]
=
qa_lang
(
'main/field_required'
);
$errors
[
'title'
]
=
qa_lang
(
'main/field_required'
);
if
(
!
is_numeric
(
$inpoints
))
if
(
!
is_numeric
(
$inpoints
))
$errors
[
'points'
]
=
qa_lang
(
'main/field_required'
);
$errors
[
'points'
]
=
qa_lang
(
'main/field_required'
);
else
{
else
{
$inpoints
=
(
int
)
$inpoints
;
$inpoints
=
(
int
)
$inpoints
;
if
(
isset
(
$pointstitle
[
$inpoints
])
&&
((
!
strlen
(
@
$oldpoints
))
||
(
$inpoints
!=
$oldpoints
))
)
if
(
isset
(
$pointstitle
[
$inpoints
])
&&
((
!
strlen
(
@
$oldpoints
))
||
(
$inpoints
!=
$oldpoints
))
)
$errors
[
'points'
]
=
qa_lang
(
'admin/title_already_used'
);
$errors
[
'points'
]
=
qa_lang
(
'admin/title_already_used'
);
}
}
// Perform appropriate action
// Perform appropriate action
if
(
isset
(
$pointstitle
[
$oldpoints
]))
{
// changing existing user title
if
(
isset
(
$pointstitle
[
$oldpoints
]))
{
// changing existing user title
$newpoints
=
isset
(
$errors
[
'points'
])
?
$oldpoints
:
$inpoints
;
$newpoints
=
isset
(
$errors
[
'points'
])
?
$oldpoints
:
$inpoints
;
$newtitle
=
isset
(
$errors
[
'title'
])
?
$pointstitle
[
$oldpoints
]
:
$intitle
;
$newtitle
=
isset
(
$errors
[
'title'
])
?
$pointstitle
[
$oldpoints
]
:
$intitle
;
unset
(
$pointstitle
[
$oldpoints
]);
unset
(
$pointstitle
[
$oldpoints
]);
$pointstitle
[
$newpoints
]
=
$newtitle
;
$pointstitle
[
$newpoints
]
=
$newtitle
;
}
elseif
(
empty
(
$errors
))
// creating a new user title
}
elseif
(
empty
(
$errors
))
// creating a new user title
$pointstitle
[
$inpoints
]
=
$intitle
;
$pointstitle
[
$inpoints
]
=
$intitle
;
}
}
// Save the new option value
// Save the new option value
krsort
(
$pointstitle
,
SORT_NUMERIC
);
krsort
(
$pointstitle
,
SORT_NUMERIC
);
$option
=
''
;
$option
=
''
;
foreach
(
$pointstitle
as
$points
=>
$title
)
foreach
(
$pointstitle
as
$points
=>
$title
)
$option
.=
(
strlen
(
$option
)
?
','
:
''
)
.
$points
.
' '
.
$title
;
$option
.=
(
strlen
(
$option
)
?
','
:
''
)
.
$points
.
' '
.
$title
;
qa_set_option
(
'points_to_titles'
,
$option
);
qa_set_option
(
'points_to_titles'
,
$option
);
if
(
empty
(
$errors
))
if
(
empty
(
$errors
))
qa_redirect
(
'admin/users'
);
qa_redirect
(
'admin/users'
);
}
}
}
}
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/users_title'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/users_title'
);
$qa_content
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$qa_content
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$qa_content
[
'form'
]
=
array
(
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'style'
=>
'tall'
,
'style'
=>
'tall'
,
...
@@ -163,23 +163,19 @@
...
@@ -163,23 +163,19 @@
'edit'
=>
@
$oldpoints
,
'edit'
=>
@
$oldpoints
,
'code'
=>
qa_get_form_security_code
(
'admin/usertitles'
),
'code'
=>
qa_get_form_security_code
(
'admin/usertitles'
),
),
),
);
);
if
(
isset
(
$pointstitle
[
$oldpoints
]))
if
(
isset
(
$pointstitle
[
$oldpoints
]))
{
qa_set_display_rules
(
$qa_content
,
array
(
qa_set_display_rules
(
$qa_content
,
array
(
'points_display'
=>
'!dodelete'
,
'points_display'
=>
'!dodelete'
,
));
));
else
}
else
{
unset
(
$qa_content
[
'form'
][
'fields'
][
'delete'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'delete'
]);
}
$qa_content
[
'focusid'
]
=
'title'
;
$qa_content
[
'focusid'
]
=
'title'
;
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
return
$qa_content
;
return
$qa_content
;
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
qa-include/pages/admin/admin-widgets.php
View file @
14d54fd4
...
@@ -20,52 +20,53 @@
...
@@ -20,52 +20,53 @@
More about this license: http://www.question2answer.org/license.php
More about this license: http://www.question2answer.org/license.php
*/
*/
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
if
(
!
defined
(
'QA_VERSION'
))
{
// don't allow this page to be requested directly from browser
header
(
'Location: ../'
);
header
(
'Location: ../'
);
exit
;
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
// Get current list of widgets and determine the state of this admin page
// Get current list of widgets and determine the state of this admin page
$widgetid
=
qa_post_text
(
'edit'
);
$widgetid
=
qa_post_text
(
'edit'
);
if
(
!
strlen
(
$widgetid
))
if
(
!
strlen
(
$widgetid
))
$widgetid
=
qa_get
(
'edit'
);
$widgetid
=
qa_get
(
'edit'
);
list
(
$widgets
,
$pages
)
=
qa_db_select_with_pending
(
list
(
$widgets
,
$pages
)
=
qa_db_select_with_pending
(
qa_db_widgets_selectspec
(),
qa_db_widgets_selectspec
(),
qa_db_pages_selectspec
()
qa_db_pages_selectspec
()
);
);
if
(
isset
(
$widgetid
))
{
if
(
isset
(
$widgetid
))
{
$editwidget
=
null
;
$editwidget
=
null
;
foreach
(
$widgets
as
$widget
)
foreach
(
$widgets
as
$widget
)
{
if
(
$widget
[
'widgetid'
]
==
$widgetid
)
if
(
$widget
[
'widgetid'
]
==
$widgetid
)
$editwidget
=
$widget
;
$editwidget
=
$widget
;
}
}
else
{
}
else
{
$editwidget
=
array
(
'title'
=>
qa_post_text
(
'title'
));
$editwidget
=
array
(
'title'
=>
qa_post_text
(
'title'
));
if
(
!
isset
(
$editwidget
[
'title'
]))
if
(
!
isset
(
$editwidget
[
'title'
]))
$editwidget
[
'title'
]
=
qa_get
(
'title'
);
$editwidget
[
'title'
]
=
qa_get
(
'title'
);
}
}
$module
=
qa_load_module
(
'widget'
,
@
$editwidget
[
'title'
]);
$module
=
qa_load_module
(
'widget'
,
@
$editwidget
[
'title'
]);
$widgetfound
=
isset
(
$module
);
$widgetfound
=
isset
(
$module
);
// Check admin privileges (do late to allow one DB query)
// Check admin privileges (do late to allow one DB query)
if
(
!
qa_admin_check_privileges
(
$qa_content
))
if
(
!
qa_admin_check_privileges
(
$qa_content
))
return
$qa_content
;
return
$qa_content
;
// Define an array of relevant templates we can use
// Define an array of relevant templates we can use
$templatelangkeys
=
array
(
$templatelangkeys
=
array
(
'question'
=>
'admin/question_pages'
,
'question'
=>
'admin/question_pages'
,
'qa'
=>
'main/recent_qs_as_title'
,
'qa'
=>
'main/recent_qs_as_title'
,
...
@@ -94,14 +95,15 @@
...
@@ -94,14 +95,15 @@
'ip'
=>
'admin/ip_address_pages'
,
'ip'
=>
'admin/ip_address_pages'
,
'admin'
=>
'admin/admin_title'
,
'admin'
=>
'admin/admin_title'
,
);
);
$templateoptions
=
array
();
$templateoptions
=
array
();
if
(
isset
(
$module
)
&&
method_exists
(
$module
,
'allow_template'
))
{
if
(
isset
(
$module
)
&&
method_exists
(
$module
,
'allow_template'
))
{
foreach
(
$templatelangkeys
as
$template
=>
$langkey
)
foreach
(
$templatelangkeys
as
$template
=>
$langkey
)
{
if
(
$module
->
allow_template
(
$template
))
if
(
$module
->
allow_template
(
$template
))
$templateoptions
[
$template
]
=
qa_lang_html
(
$langkey
);
$templateoptions
[
$template
]
=
qa_lang_html
(
$langkey
);
}
if
(
$module
->
allow_template
(
'custom'
))
{
if
(
$module
->
allow_template
(
'custom'
))
{
$pagemodules
=
qa_load_modules_with
(
'page'
,
'match_request'
);
$pagemodules
=
qa_load_modules_with
(
'page'
,
'match_request'
);
...
@@ -119,21 +121,21 @@
...
@@ -119,21 +121,21 @@
}
}
}
}
}
}
// Process saving an old or new widget
// Process saving an old or new widget
$securityexpired
=
false
;
$securityexpired
=
false
;
if
(
qa_clicked
(
'docancel'
))
if
(
qa_clicked
(
'docancel'
))
qa_redirect
(
'admin/layout'
);
qa_redirect
(
'admin/layout'
);
elseif
(
qa_clicked
(
'dosavewidget'
))
{
elseif
(
qa_clicked
(
'dosavewidget'
))
{
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
if
(
!
qa_check_form_security_code
(
'admin/widgets'
,
qa_post_text
(
'code'
)))
if
(
!
qa_check_form_security_code
(
'admin/widgets'
,
qa_post_text
(
'code'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
else
{
else
{
if
(
qa_post_text
(
'dodelete'
))
{
if
(
qa_post_text
(
'dodelete'
))
{
...
@@ -142,27 +144,28 @@
...
@@ -142,27 +144,28 @@
}
else
{
}
else
{
if
(
$widgetfound
)
{
if
(
$widgetfound
)
{
$intitle
=
qa_post_text
(
'title'
);
$intitle
=
qa_post_text
(
'title'
);
$inposition
=
qa_post_text
(
'position'
);
$inposition
=
qa_post_text
(
'position'
);
$intemplates
=
array
();
$intemplates
=
array
();
if
(
qa_post_text
(
'template_all'
))
if
(
qa_post_text
(
'template_all'
))
$intemplates
[]
=
'all'
;
$intemplates
[]
=
'all'
;
foreach
(
array_keys
(
$templateoptions
)
as
$template
)
foreach
(
array_keys
(
$templateoptions
)
as
$template
)
{
if
(
qa_post_text
(
'template_'
.
$template
))
if
(
qa_post_text
(
'template_'
.
$template
))
$intemplates
[]
=
$template
;
$intemplates
[]
=
$template
;
}
$intags
=
implode
(
','
,
$intemplates
);
$intags
=
implode
(
','
,
$intemplates
);
// Perform appropriate database action
// Perform appropriate database action
if
(
isset
(
$editwidget
[
'widgetid'
]))
{
// changing existing widget
if
(
isset
(
$editwidget
[
'widgetid'
]))
{
// changing existing widget
$widgetid
=
$editwidget
[
'widgetid'
];
$widgetid
=
$editwidget
[
'widgetid'
];
qa_db_widget_set_fields
(
$widgetid
,
$intags
);
qa_db_widget_set_fields
(
$widgetid
,
$intags
);
}
else
}
else
$widgetid
=
qa_db_widget_create
(
$intitle
,
$intags
);
$widgetid
=
qa_db_widget_create
(
$intitle
,
$intags
);
qa_db_widget_move
(
$widgetid
,
substr
(
$inposition
,
0
,
2
),
substr
(
$inposition
,
2
));
qa_db_widget_move
(
$widgetid
,
substr
(
$inposition
,
0
,
2
),
substr
(
$inposition
,
2
));
}
}
...
@@ -170,78 +173,81 @@
...
@@ -170,78 +173,81 @@
qa_redirect
(
'admin/layout'
);
qa_redirect
(
'admin/layout'
);
}
}
}
}
}
}
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/layout_title'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
)
.
' - '
.
qa_lang_html
(
'admin/layout_title'
);
$qa_content
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$qa_content
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$positionoptions
=
array
();
$positionoptions
=
array
();
$placeoptionhtml
=
qa_admin_place_options
();
$placeoptionhtml
=
qa_admin_place_options
();
$regioncodes
=
array
(
$regioncodes
=
array
(
'F'
=>
'full'
,
'F'
=>
'full'
,
'M'
=>
'main'
,
'M'
=>
'main'
,
'S'
=>
'side'
,
'S'
=>
'side'
,
);
);
foreach
(
$placeoptionhtml
as
$place
=>
$optionhtml
)
{
foreach
(
$placeoptionhtml
as
$place
=>
$optionhtml
)
{
$region
=
$regioncodes
[
substr
(
$place
,
0
,
1
)];
$region
=
$regioncodes
[
substr
(
$place
,
0
,
1
)];
$widgetallowed
=
method_exists
(
$module
,
'allow_region'
)
&&
$module
->
allow_region
(
$region
);
$widgetallowed
=
method_exists
(
$module
,
'allow_region'
)
&&
$module
->
allow_region
(
$region
);
if
(
$widgetallowed
)
if
(
$widgetallowed
)
{
foreach
(
$widgets
as
$widget
)
foreach
(
$widgets
as
$widget
)
{
if
(
(
$widget
[
'place'
]
==
$place
)
&&
(
$widget
[
'title'
]
==
$editwidget
[
'title'
])
&&
(
$widget
[
'widgetid'
]
!==@
$editwidget
[
'widgetid'
])
)
if
(
$widget
[
'place'
]
==
$place
&&
$widget
[
'title'
]
==
$editwidget
[
'title'
]
&&
$widget
[
'widgetid'
]
!==
@
$editwidget
[
'widgetid'
])
$widgetallowed
=
false
;
// don't allow two instances of same widget in same place
$widgetallowed
=
false
;
// don't allow two instances of same widget in same place
}
}
if
(
$widgetallowed
)
{
if
(
$widgetallowed
)
{
$previous
=
null
;
$previous
=
null
;
$passedself
=
false
;
$passedself
=
false
;
$maxposition
=
0
;
$maxposition
=
0
;
foreach
(
$widgets
as
$widget
)
foreach
(
$widgets
as
$widget
)
{
if
(
$widget
[
'place'
]
==
$place
)
{
if
(
$widget
[
'place'
]
==
$place
)
{
$positionhtml
=
$optionhtml
;
$positionhtml
=
$optionhtml
;
if
(
isset
(
$previous
))
if
(
isset
(
$previous
))
$positionhtml
.=
' - '
.
qa_lang_html_sub
(
'admin/after_x'
,
qa_html
(
$passedself
?
$widget
[
'title'
]
:
$previous
[
'title'
]));
$positionhtml
.=
' - '
.
qa_lang_html_sub
(
'admin/after_x'
,
qa_html
(
$passedself
?
$widget
[
'title'
]
:
$previous
[
'title'
]));
if
(
$widget
[
'widgetid'
]
==
@
$editwidget
[
'widgetid'
])
if
(
$widget
[
'widgetid'
]
==
@
$editwidget
[
'widgetid'
])
$passedself
=
true
;
$passedself
=
true
;
$maxposition
=
max
(
$maxposition
,
$widget
[
'position'
]);
$maxposition
=
max
(
$maxposition
,
$widget
[
'position'
]);
$positionoptions
[
$place
.
$widget
[
'position'
]]
=
$positionhtml
;
$positionoptions
[
$place
.
$widget
[
'position'
]]
=
$positionhtml
;
$previous
=
$widget
;
$previous
=
$widget
;
}
}
}
if
((
!
isset
(
$editwidget
[
'widgetid'
]))
||
$place
!=
@
$editwidget
[
'place'
])
{
if
(
!
isset
(
$editwidget
[
'widgetid'
])
||
$place
!=
@
$editwidget
[
'place'
])
{
$positionhtml
=
$optionhtml
;
$positionhtml
=
$optionhtml
;
if
(
isset
(
$previous
))
if
(
isset
(
$previous
))
$positionhtml
.=
' - '
.
qa_lang_html_sub
(
'admin/after_x'
,
$previous
[
'title'
]);
$positionhtml
.=
' - '
.
qa_lang_html_sub
(
'admin/after_x'
,
$previous
[
'title'
]);
$positionoptions
[
$place
.
(
isset
(
$previous
)
?
(
1
+
$maxposition
)
:
1
)]
=
$positionhtml
;
$positionoptions
[
$place
.
(
isset
(
$previous
)
?
(
1
+
$maxposition
)
:
1
)]
=
$positionhtml
;
}
}
}
}
}
}
$positionvalue
=@
$positionoptions
[
$editwidget
[
'place'
]
.
$editwidget
[
'position'
]];
$positionvalue
=
@
$positionoptions
[
$editwidget
[
'place'
]
.
$editwidget
[
'position'
]];
$qa_content
[
'form'
]
=
array
(
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'style'
=>
'tall'
,
'style'
=>
'tall'
,
'fields'
=>
array
(
'fields'
=>
array
(
'title'
=>
array
(
'title'
=>
array
(
'label'
=>
qa_lang_html
(
'admin/widget_name'
)
.
' '
.
qa_html
(
$editwidget
[
'title'
]),
'label'
=>
qa_lang_html
(
'admin/widget_name'
)
.
' '
.
qa_html
(
$editwidget
[
'title'
]),
'type'
=>
'static'
,
'type'
=>
'static'
,
'tight'
=>
true
,
'tight'
=>
true
,
),
),
...
@@ -267,7 +273,7 @@
...
@@ -267,7 +273,7 @@
'label'
=>
qa_lang_html
(
'admin/widget_all_pages'
),
'label'
=>
qa_lang_html
(
'admin/widget_all_pages'
),
'type'
=>
'checkbox'
,
'type'
=>
'checkbox'
,
'tags'
=>
'name="template_all" id="template_all"'
,
'tags'
=>
'name="template_all" id="template_all"'
,
'value'
=>
is_numeric
(
strpos
(
','
.@
$editwidget
[
'tags'
]
.
','
,
',all,'
)),
'value'
=>
is_numeric
(
strpos
(
','
.
@
$editwidget
[
'tags'
]
.
','
,
',all,'
)),
),
),
'templates'
=>
array
(
'templates'
=>
array
(
...
@@ -295,51 +301,47 @@
...
@@ -295,51 +301,47 @@
'title'
=>
@
$editwidget
[
'title'
],
'title'
=>
@
$editwidget
[
'title'
],
'code'
=>
qa_get_form_security_code
(
'admin/widgets'
),
'code'
=>
qa_get_form_security_code
(
'admin/widgets'
),
),
),
);
);
foreach
(
$templateoptions
as
$template
=>
$optionhtml
)
foreach
(
$templateoptions
as
$template
=>
$optionhtml
)
{
$qa_content
[
'form'
][
'fields'
][
'templates'
][
'html'
]
.=
$qa_content
[
'form'
][
'fields'
][
'templates'
][
'html'
]
.=
'<input type="checkbox" name="template_'
.
qa_html
(
$template
)
.
'"'
.
'<input type="checkbox" name="template_'
.
qa_html
(
$template
)
.
'"'
.
(
is_numeric
(
strpos
(
','
.@
$editwidget
[
'tags'
]
.
','
,
','
.
$template
.
','
))
?
' checked'
:
''
)
.
(
is_numeric
(
strpos
(
','
.
@
$editwidget
[
'tags'
]
.
','
,
','
.
$template
.
','
))
?
' checked'
:
''
)
.
'/> '
.
$optionhtml
.
'<br/>'
;
'/> '
.
$optionhtml
.
'<br/>'
;
}
if
(
isset
(
$editwidget
[
'widgetid'
]))
if
(
isset
(
$editwidget
[
'widgetid'
]))
{
qa_set_display_rules
(
$qa_content
,
array
(
qa_set_display_rules
(
$qa_content
,
array
(
'templates_display'
=>
'!(dodelete||template_all)'
,
'templates_display'
=>
'!(dodelete||template_all)'
,
'all_display'
=>
'!dodelete'
,
'all_display'
=>
'!dodelete'
,
));
));
else
{
}
else
{
unset
(
$qa_content
[
'form'
][
'fields'
][
'delete'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'delete'
]);
qa_set_display_rules
(
$qa_content
,
array
(
qa_set_display_rules
(
$qa_content
,
array
(
'templates_display'
=>
'!template_all'
,
'templates_display'
=>
'!template_all'
,
));
));
}
}
if
(
!
$widgetfound
)
{
if
(
!
$widgetfound
)
{
unset
(
$qa_content
[
'form'
][
'fields'
][
'title'
][
'tight'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'title'
][
'tight'
]);
$qa_content
[
'form'
][
'fields'
][
'title'
][
'error'
]
=
qa_lang_html
(
'admin/widget_not_available'
);
$qa_content
[
'form'
][
'fields'
][
'title'
][
'error'
]
=
qa_lang_html
(
'admin/widget_not_available'
);
unset
(
$qa_content
[
'form'
][
'fields'
][
'position'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'position'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'all'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'all'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'templates'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'templates'
]);
if
(
!
isset
(
$editwidget
[
'widgetid'
]))
if
(
!
isset
(
$editwidget
[
'widgetid'
]))
unset
(
$qa_content
[
'form'
][
'buttons'
][
'save'
]);
unset
(
$qa_content
[
'form'
][
'buttons'
][
'save'
]);
}
elseif
(
!
count
(
$positionoptions
))
{
}
elseif
(
!
count
(
$positionoptions
))
{
unset
(
$qa_content
[
'form'
][
'fields'
][
'title'
][
'tight'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'title'
][
'tight'
]);
$qa_content
[
'form'
][
'fields'
][
'title'
][
'error'
]
=
qa_lang_html
(
'admin/widget_no_positions'
);
$qa_content
[
'form'
][
'fields'
][
'title'
][
'error'
]
=
qa_lang_html
(
'admin/widget_no_positions'
);
unset
(
$qa_content
[
'form'
][
'fields'
][
'position'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'position'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'all'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'all'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'templates'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'templates'
]);
unset
(
$qa_content
[
'form'
][
'buttons'
][
'save'
]);
unset
(
$qa_content
[
'form'
][
'buttons'
][
'save'
]);
}
}
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
return
$qa_content
;
return
$qa_content
;
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment