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 @@
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: ../'
);
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
// 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'
);
// 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'
));
$userfields
=
qa_db_select_with_pending
(
qa_db_userfields_selectspec
());
$users
=
qa_db_get_unapproved_users
(
qa_opt
(
'page_size_users'
));
$userfields
=
qa_db_select_with_pending
(
qa_db_userfields_selectspec
());
// Check admin privileges (do late to allow one DB query)
if
(
qa_get_logged_in_level
()
<
QA_USER_LEVEL_MODERATOR
)
{
$qa_content
=
qa_content_prepare
();
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
if
(
qa_get_logged_in_level
()
<
QA_USER_LEVEL_MODERATOR
)
{
$qa_content
=
qa_content_prepare
();
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
return
$qa_content
;
}
}
// Check to see if any were approved or blocked here
$pageerror
=
qa_admin_check_clicks
();
$pageerror
=
qa_admin_check_clicks
();
// 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
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/approve_users_title'
);
$qa_content
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'message_list'
]
=
array
(
$qa_content
[
'message_list'
]
=
array
(
'form'
=>
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'hidden'
=>
array
(
'code'
=>
qa_get_form_security_code
(
'admin/click'
),
...
...
@@ -74,67 +74,64 @@
),
'messages'
=>
array
(),
);
);
if
(
count
(
$users
))
{
if
(
count
(
$users
))
{
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
(
'^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'
])),
))
.
'<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'
))
$message
[
'content'
]
.=
'<small> - '
.
qa_lang_html
((
$user
[
'flags'
]
&
QA_USER_FLAGS_EMAIL_CONFIRMED
)
?
'users/email_confirmed'
:
'users/email_not_confirmed'
)
.
'</small>'
;
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>'
;
}
foreach
(
$userfields
as
$userfield
)
foreach
(
$userfields
as
$userfield
)
{
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
[
'who'
][
'data'
]
=
qa_get_one_user_html
(
$user
[
'handle'
]);
$message
[
'meta_order'
]
=
qa_lang_html
(
'main/meta_order'
);
$message
[
'who'
][
'data'
]
=
qa_get_one_user_html
(
$user
[
'handle'
]);
$message
[
'form'
]
=
array
(
$message
[
'form'
]
=
array
(
'style'
=>
'light'
,
'buttons'
=>
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'
),
'popup'
=>
qa_lang_html
(
'admin/approve_user_popup'
),
),
'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'
),
'popup'
=>
qa_lang_html
(
'admin/block_user_popup'
),
),
),
);
$qa_content
[
'message_list'
][
'messages'
][]
=
$message
;
$qa_content
[
'message_list'
][
'messages'
][]
=
$message
;
}
}
else
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/no_unapproved_found'
);
}
else
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/no_unapproved_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
;
/*
Omit PHP closing tag to help avoid accidental output
*/
return
$qa_content
;
qa-include/pages/admin/admin-categories.php
View file @
14d54fd4
...
...
@@ -20,83 +20,84 @@
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: ../'
);
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
// Get relevant list of categories
$editcategoryid
=
qa_post_text
(
'edit'
);
if
(
!
isset
(
$editcategoryid
))
$editcategoryid
=
qa_get
(
'edit'
);
if
(
!
isset
(
$editcategoryid
))
$editcategoryid
=
qa_get
(
'addsub'
);
$editcategoryid
=
qa_post_text
(
'edit'
);
if
(
!
isset
(
$editcategoryid
))
$editcategoryid
=
qa_get
(
'edit'
);
if
(
!
isset
(
$editcategoryid
))
$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)
if
(
!
qa_admin_check_privileges
(
$qa_content
))
if
(
!
qa_admin_check_privileges
(
$qa_content
))
return
$qa_content
;
// Work out the appropriate state for the page
$editcategory
=
@
$categories
[
$editcategoryid
];
$editcategory
=
@
$categories
[
$editcategoryid
];
if
(
isset
(
$editcategory
))
{
$parentid
=
qa_get
(
'addsub'
);
if
(
isset
(
$editcategory
))
{
$parentid
=
qa_get
(
'addsub'
);
if
(
isset
(
$parentid
))
$editcategory
=
array
(
'parentid'
=>
$parentid
);
$editcategory
=
array
(
'parentid'
=>
$parentid
);
}
else
{
}
else
{
if
(
qa_clicked
(
'doaddcategory'
))
$editcategory
=
array
();
$editcategory
=
array
();
elseif
(
qa_clicked
(
'dosavecategory'
))
{
$parentid
=
qa_post_text
(
'parent'
);
$editcategory
=
array
(
'parentid'
=>
strlen
(
$parentid
)
?
$parentid
:
null
);
}
$parentid
=
qa_post_text
(
'parent'
);
$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
;
foreach
(
$categories
as
$category
)
$hassubcategory
=
false
;
foreach
(
$categories
as
$category
)
{
if
(
!
strcmp
(
$category
[
'parentid'
],
$editcategoryid
))
$hassubcategory
=
true
;
$hassubcategory
=
true
;
}
// Process saving options
$savedoptions
=
false
;
$securityexpired
=
false
;
$savedoptions
=
false
;
$securityexpired
=
false
;
if
(
qa_clicked
(
'dosaveoptions'
))
{
if
(
qa_clicked
(
'dosaveoptions'
))
{
if
(
!
qa_check_form_security_code
(
'admin/categories'
,
qa_post_text
(
'code'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
else
{
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'
));
$savedoptions
=
true
;
}
$savedoptions
=
true
;
}
}
// Process saving an old or new category
if
(
qa_clicked
(
'docancel'
))
{
if
(
qa_clicked
(
'docancel'
))
{
if
(
$setmissing
||
$setparent
)
qa_redirect
(
qa_request
(),
array
(
'edit'
=>
$editcategory
[
'categoryid'
]));
elseif
(
isset
(
$editcategory
[
'categoryid'
]))
...
...
@@ -104,96 +105,97 @@
else
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'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
else
{
$inreassign
=
qa_get_category_field_value
(
'reassign'
);
$inreassign
=
qa_get_category_field_value
(
'reassign'
);
qa_db_category_reassign
(
$editcategory
[
'categoryid'
],
$inreassign
);
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'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
elseif
(
qa_post_text
(
'dodelete'
))
{
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_delete
(
$editcategory
[
'categoryid'
]);
qa_redirect
(
qa_request
(),
array
(
'recalc'
=>
1
,
'edit'
=>
$editcategory
[
'parentid'
]));
}
}
else
{
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
$inname
=
qa_post_text
(
'name'
);
$incontent
=
qa_post_text
(
'content'
);
$inparentid
=
$setparent
?
qa_get_category_field_value
(
'parent'
)
:
$editcategory
[
'parentid'
];
$inposition
=
qa_post_text
(
'position'
);
$errors
=
array
();
$inname
=
qa_post_text
(
'name'
);
$incontent
=
qa_post_text
(
'content'
);
$inparentid
=
$setparent
?
qa_get_category_field_value
(
'parent'
)
:
$editcategory
[
'parentid'
];
$inposition
=
qa_post_text
(
'position'
);
$errors
=
array
();
// 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
if
(
empty
(
$inname
))
$errors
[
'name'
]
=
qa_lang
(
'main/field_required'
);
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
(
'main/field_required'
);
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
);
else
{
foreach
(
$incategories
as
$category
)
foreach
(
$incategories
as
$category
)
{
if
(
(
!
strcmp
(
$category
[
'parentid'
],
$inparentid
)
)
&&
!
strcmp
(
$category
[
'parentid'
],
$inparentid
)
&&
strcmp
(
$category
[
'categoryid'
],
@
$editcategory
[
'categoryid'
])
&&
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
for
(
$attempt
=
0
;
$attempt
<
100
;
$attempt
++
)
{
for
(
$attempt
=
0
;
$attempt
<
100
;
$attempt
++
)
{
switch
(
$attempt
)
{
case
0
:
$inslug
=
qa_post_text
(
'slug'
);
$inslug
=
qa_post_text
(
'slug'
);
if
(
!
isset
(
$inslug
))
$inslug
=
implode
(
'-'
,
qa_string_to_words
(
$inname
));
$inslug
=
implode
(
'-'
,
qa_string_to_words
(
$inname
));
break
;
case
1
:
$inslug
=
qa_lang_sub
(
'admin/category_default_slug'
,
$inslug
);
$inslug
=
qa_lang_sub
(
'admin/category_default_slug'
,
$inslug
);
break
;
default
:
$inslug
=
qa_lang_sub
(
'admin/category_default_slug'
,
$attempt
-
1
);
$inslug
=
qa_lang_sub
(
'admin/category_default_slug'
,
$attempt
-
1
);
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
))
$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
$matchpage
=
null
;
$matchpage
=
null
;
if
(
empty
(
$inslug
))
$errors
[
'slug'
]
=
qa_lang
(
'main/field_required'
);
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
(
'main/field_required'
);
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
);
elseif
(
preg_match
(
'/[\\+\\/]/'
,
$inslug
))
$errors
[
'slug'
]
=
qa_lang_sub
(
'admin/slug_bad_chars'
,
'+ /'
);
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_sub
(
'admin/slug_bad_chars'
,
'+ /'
);
elseif
(
(
!
isset
(
$inparentid
))
&&
qa_admin_is_slug_reserved
(
$inslug
))
// only top level is a problem
$errors
[
'slug'
]
=
qa_lang
(
'admin/slug_reserved'
);
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
))
$errors
[
'slug'
]
=
qa_lang
(
'admin/page_already_used'
);
$errors
[
'slug'
]
=
qa_lang
(
'admin/page_already_used'
);
else
unset
(
$errors
[
'slug'
]);
...
...
@@ -207,21 +209,21 @@
if
(
isset
(
$editcategory
[
'categoryid'
]))
{
// changing existing category
qa_db_category_rename
(
$editcategory
[
'categoryid'
],
$inname
,
$inslug
);
$recalc
=
false
;
$recalc
=
false
;
if
(
$setparent
)
{
qa_db_category_set_parent
(
$editcategory
[
'categoryid'
],
$inparentid
);
$recalc
=
true
;
$recalc
=
true
;
}
else
{
qa_db_category_set_content
(
$editcategory
[
'categoryid'
],
$incontent
);
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
));
}
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
);
...
...
@@ -232,19 +234,19 @@
}
}
}
}
}
// 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
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$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
();
if
(
$setmissing
)
{
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
if
(
$setmissing
)
{
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'style'
=>
'tall'
,
...
...
@@ -281,10 +283,10 @@
$categories
,
@
$editcategory
[
'categoryid'
],
qa_opt
(
'allow_no_category'
),
qa_opt
(
'allow_no_sub_category'
));
}
elseif
(
isset
(
$editcategory
))
{
}
elseif
(
isset
(
$editcategory
))
{
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'style'
=>
'tall'
,
...
...
@@ -351,37 +353,37 @@
unset
(
$qa_content
[
'form'
][
'fields'
][
'questions'
]);
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'
),
);
$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'
,
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
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'
][
'reassign'
]);
}
else
{
$qa_content
[
'form'
][
'fields'
][
'delete'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'delete'
]
=
array
(
'tags'
=>
'name="dodelete" id="dodelete"'
,
'label'
=>
'<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_shown">'
.
qa_lang_html
(
'admin/delete_category_reassign'
)
.
'</span>'
.
'<span id="reassign_hidden" style="display:none;">'
.
qa_lang_html
(
'admin/delete_category'
)
.
'</span>'
,
'value'
=>
0
,
'type'
=>
'checkbox'
,
);
$qa_content
[
'form'
][
'fields'
][
'reassign'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'reassign'
]
=
array
(
'id'
=>
'reassign_display'
,
'tags'
=>
'name="reassign"'
,
);
...
...
@@ -390,27 +392,28 @@
$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'
),
'type'
=>
'static'
,
'value'
=>
'<a href="'
.
qa_path_html
(
'questions/'
.
qa_category_path_request
(
$categories
,
$editcategory
[
'categoryid'
]))
.
'">'
.
(
(
$editcategory
[
'qcount'
]
==
1
)
'value'
=>
'<a href="'
.
qa_path_html
(
'questions/'
.
qa_category_path_request
(
$categories
,
$editcategory
[
'categoryid'
]))
.
'">'
.
(
$editcategory
[
'qcount'
]
==
1
?
qa_lang_html_sub
(
'main/1_question'
,
'1'
,
'1'
)
:
qa_lang_html_sub
(
'main/x_questions'
,
qa_format_number
(
$editcategory
[
'qcount'
]))
)
.
'</a>'
,
)
.
'</a>'
,
);
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
)
$qa_content
[
'form'
][
'fields'
][
'questions'
][
'error'
]
=
if
(
$nosubcount
)
{
$qa_content
[
'form'
][
'fields'
][
'questions'
][
'error'
]
=
strtr
(
qa_lang_html
(
'admin/category_no_sub_error'
),
array
(
'^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>'
,
));
}
}
qa_set_display_rules
(
$qa_content
,
array
(
'position_display'
=>
'!dodelete'
,
...
...
@@ -429,59 +432,61 @@
unset
(
$qa_content
[
'form'
][
'fields'
][
'slug'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'questions'
]);
$qa_content
[
'focusid'
]
=
'name'
;
$qa_content
[
'focusid'
]
=
'name'
;
}
if
(
!
$setparent
)
{
$pathhtml
=
qa_category_path_html
(
$categories
,
@
$editcategory
[
'parentid'
]);
$pathhtml
=
qa_category_path_html
(
$categories
,
@
$editcategory
[
'parentid'
]);
if
(
count
(
$categories
))
{
$qa_content
[
'form'
][
'fields'
][
'parent'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'parent'
]
=
array
(
'id'
=>
'parent_display'
,
'label'
=>
qa_lang_html
(
'admin/category_parent'
),
'type'
=>
'static'
,
'value'
=>
(
strlen
(
$pathhtml
)
?
$pathhtml
:
qa_lang_html
(
'admin/category_top_level'
)),
);
$qa_content
[
'form'
][
'fields'
][
'parent'
][
'value'
]
=
'<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 href="'
.
qa_path_html
(
qa_request
(),
array
(
'edit'
=>
@
$editcategory
[
'parentid'
]))
.
'">'
.
$qa_content
[
'form'
][
'fields'
][
'parent'
][
'value'
]
.
'</a>'
;
if
(
isset
(
$editcategory
[
'categoryid'
]))
$qa_content
[
'form'
][
'fields'
][
'parent'
][
'value'
]
.=
' - '
.
'<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>'
;
if
(
isset
(
$editcategory
[
'categoryid'
]))
{
$qa_content
[
'form'
][
'fields'
][
'parent'
][
'value'
]
.=
' - '
.
'<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>'
;
}
}
$positionoptions
=
array
();
$positionoptions
=
array
();
$previous
=
null
;
$passedself
=
false
;
$previous
=
null
;
$passedself
=
false
;
foreach
(
$categories
as
$key
=>
$category
)
foreach
(
$categories
as
$key
=>
$category
)
{
if
(
!
strcmp
(
$category
[
'parentid'
],
@
$editcategory
[
'parentid'
]))
{
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
$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'
]))
$passedself
=
true
;
$passedself
=
true
;
$previous
=
$category
;
$previous
=
$category
;
}
}
if
(
isset
(
$editcategory
[
'position'
]))
$positionvalue
=
$positionoptions
[
$editcategory
[
'position'
]];
$positionvalue
=
$positionoptions
[
$editcategory
[
'position'
]];
else
{
$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
;
$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
;
}
$qa_content
[
'form'
][
'fields'
][
'position'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'position'
]
=
array
(
'id'
=>
'position_display'
,
'tags'
=>
'name="position"'
,
'label'
=>
qa_lang_html
(
'admin/position'
),
...
...
@@ -491,39 +496,41 @@
);
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
)
{
$childrenhtml
=
''
;
if
(
$catdepth
<
QA_CATEGORY_DEPTH
)
{
$childrenhtml
=
''
;
foreach
(
$categories
as
$category
)
if
(
!
strcmp
(
$category
[
'parentid'
],
$editcategory
[
'categoryid'
]))
$childrenhtml
.=
(
strlen
(
$childrenhtml
)
?
', '
:
''
)
.
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'edit'
=>
$category
[
'categoryid'
]))
.
'">'
.
qa_html
(
$category
[
'title'
])
.
'</a>'
.
' ('
.
$category
[
'qcount'
]
.
')'
;
foreach
(
$categories
as
$category
)
{
if
(
!
strcmp
(
$category
[
'parentid'
],
$editcategory
[
'categoryid'
]))
{
$childrenhtml
.=
(
strlen
(
$childrenhtml
)
?
', '
:
''
)
.
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'edit'
=>
$category
[
'categoryid'
]))
.
'">'
.
qa_html
(
$category
[
'title'
])
.
'</a>'
.
' ('
.
$category
[
'qcount'
]
.
')'
;
}
}
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'
]))
.
'" style="white-space: nowrap;"><b>'
.
qa_lang_html
(
'admin/category_add_sub'
)
.
'</b></a>'
;
$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>'
;
$qa_content
[
'form'
][
'fields'
][
'children'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'children'
]
=
array
(
'id'
=>
'children_display'
,
'label'
=>
qa_lang_html
(
'admin/category_subs'
),
'type'
=>
'static'
,
'value'
=>
$childrenhtml
,
);
}
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
{
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
}
else
{
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'ok'
=>
$savedoptions
?
qa_lang_html
(
'admin/options_saved'
)
:
null
,
...
...
@@ -556,10 +563,10 @@
if
(
count
(
$categories
))
{
unset
(
$qa_content
[
'form'
][
'fields'
][
'intro'
]);
$navcategoryhtml
=
''
;
$navcategoryhtml
=
''
;
foreach
(
$categories
as
$category
)
if
(
!
isset
(
$category
[
'parentid'
]))
foreach
(
$categories
as
$category
)
{
if
(
!
isset
(
$category
[
'parentid'
]))
{
$navcategoryhtml
.=
'<a href="'
.
qa_path_html
(
'admin/categories'
,
array
(
'edit'
=>
$category
[
'categoryid'
]))
.
'">'
.
qa_html
(
$category
[
'title'
])
.
...
...
@@ -567,16 +574,17 @@
(
$category
[
'qcount'
]
==
1
?
qa_lang_html_sub
(
'main/1_question'
,
'1'
,
'1'
)
:
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'
),
'type'
=>
'static'
,
'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'
),
'tags'
=>
'name="option_allow_no_category"'
,
'type'
=>
'checkbox'
,
...
...
@@ -584,18 +592,19 @@
);
if
(
!
qa_opt
(
'allow_no_category'
))
{
$nocatcount
=
qa_db_count_categoryid_qs
(
null
);
$nocatcount
=
qa_db_count_categoryid_qs
(
null
);
if
(
$nocatcount
)
$qa_content
[
'form'
][
'fields'
][
'allow_no_category'
][
'error'
]
=
if
(
$nocatcount
)
{
$qa_content
[
'form'
][
'fields'
][
'allow_no_category'
][
'error'
]
=
strtr
(
qa_lang_html
(
'admin/category_none_error'
),
array
(
'^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>'
,
));
}
}
$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'
),
'tags'
=>
'name="option_allow_no_sub_category"'
,
'type'
=>
'checkbox'
,
...
...
@@ -604,26 +613,21 @@
}
else
unset
(
$qa_content
[
'form'
][
'buttons'
][
'save'
]);
}
}
if
(
qa_get
(
'recalc'
))
{
$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'
);
if
(
qa_get
(
'recalc'
))
{
$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
[
'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_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
$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_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
}
return
$qa_content
;
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
()
;
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
return
$qa_content
;
qa-include/pages/admin/admin-flagged.php
View file @
14d54fd4
...
...
@@ -20,62 +20,65 @@
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: ../'
);
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
// 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
)
);
);
// Check admin privileges (do late to allow one DB query)
if
(
qa_user_maximum_permit_error
(
'permit_hide_show'
))
{
$qa_content
=
qa_content_prepare
();
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
if
(
qa_user_maximum_permit_error
(
'permit_hide_show'
))
{
$qa_content
=
qa_content_prepare
();
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
return
$qa_content
;
}
}
// 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
if
(
qa_user_permit_error
(
'permit_hide_show'
))
// if user not allowed to show/hide all posts
foreach
(
$questions
as
$index
=>
$question
)
if
(
qa_user_post_permit_error
(
'permit_hide_show'
,
$question
))
if
(
qa_user_permit_error
(
'permit_hide_show'
))
{
// if user not allowed to show/hide all posts
foreach
(
$questions
as
$index
=>
$question
)
{
if
(
qa_user_post_permit_error
(
'permit_hide_show'
,
$question
))
{
unset
(
$questions
[
$index
]);
}
}
}
// 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
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/most_flagged_title'
);
$qa_content
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/most_flagged_title'
);
$qa_content
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'q_list'
]
=
array
(
$qa_content
[
'q_list'
]
=
array
(
'form'
=>
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'hidden'
=>
array
(
'code'
=>
qa_get_form_security_code
(
'admin/click'
),
...
...
@@ -83,58 +86,53 @@
),
'qs'
=>
array
(),
);
);
if
(
count
(
$questions
))
{
if
(
count
(
$questions
))
{
foreach
(
$questions
as
$question
)
{
$postid
=
qa_html
(
isset
(
$question
[
'opostid'
])
?
$question
[
'opostid'
]
:
$question
[
'postid'
]);
$elementid
=
'p'
.
$postid
;
$postid
=
qa_html
(
isset
(
$question
[
'opostid'
])
?
$question
[
'opostid'
]
:
$question
[
'postid'
]);
$elementid
=
'p'
.
$postid
;
$htmloptions
=
qa_post_html_options
(
$question
);
$htmloptions
[
'voteview'
]
=
false
;
$htmloptions
[
'tagsview'
]
=
(
$question
[
'obasetype'
]
==
'Q'
);
$htmloptions
[
'answersview'
]
=
false
;
$htmloptions
[
'viewsview'
]
=
false
;
$htmloptions
[
'contentview'
]
=
true
;
$htmloptions
[
'flagsview'
]
=
true
;
$htmloptions
[
'elementid'
]
=
$elementid
;
$htmloptions
=
qa_post_html_options
(
$question
);
$htmloptions
[
'voteview'
]
=
false
;
$htmloptions
[
'tagsview'
]
=
(
$question
[
'obasetype'
]
==
'Q'
);
$htmloptions
[
'answersview'
]
=
false
;
$htmloptions
[
'viewsview'
]
=
false
;
$htmloptions
[
'contentview'
]
=
true
;
$htmloptions
[
'flagsview'
]
=
true
;
$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
$htmlfields
[
'url'
]
=
$htmlfields
[
'what_url'
];
$htmlfields
[
'url'
]
=
$htmlfields
[
'what_url'
];
$htmlfields
[
'form'
]
=
array
(
$htmlfields
[
'form'
]
=
array
(
'style'
=>
'light'
,
'buttons'
=>
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'
),
),
'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'
),
),
),
);
$qa_content
[
'q_list'
][
'qs'
][]
=
$htmlfields
;
$qa_content
[
'q_list'
][
'qs'
][]
=
$htmlfields
;
}
}
else
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/no_flagged_found'
);
}
else
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/no_flagged_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
;
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
return
$qa_content
;
qa-include/pages/admin/admin-hidden.php
View file @
14d54fd4
...
...
@@ -20,76 +20,79 @@
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: ../'
);
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
// 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_recent_a_qs_selectspec
(
$userid
,
0
,
null
,
null
,
'A_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)
if
(
qa_user_maximum_permit_error
(
'permit_hide_show'
)
&&
qa_user_maximum_permit_error
(
'permit_delete_hidden'
))
{
$qa_content
=
qa_content_prepare
();
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
if
(
qa_user_maximum_permit_error
(
'permit_hide_show'
)
&&
qa_user_maximum_permit_error
(
'permit_delete_hidden'
))
{
$qa_content
=
qa_content_prepare
();
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
return
$qa_content
;
}
}
// 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
$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
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_permit_error
(
'permit_hide_show'
)
&&
qa_user_permit_error
(
'permit_delete_hidden'
))
{
// not allowed to see all hidden posts
foreach
(
$questions
as
$index
=>
$question
)
{
if
(
qa_user_post_permit_error
(
'permit_hide_show'
,
$question
)
&&
qa_user_post_permit_error
(
'permit_delete_hidden'
,
$question
))
{
unset
(
$questions
[
$index
]);
}
}
}
// 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
$qhiddenpostid
=
array
();
foreach
(
$questions
as
$key
=>
$question
)
$qhiddenpostid
[
$key
]
=
isset
(
$question
[
'opostid'
])
?
$question
[
'opostid'
]
:
$question
[
'postid'
];
$qhiddenpostid
=
array
();
foreach
(
$questions
as
$key
=>
$question
)
$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
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/recent_hidden_title'
);
$qa_content
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/recent_hidden_title'
);
$qa_content
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'q_list'
]
=
array
(
$qa_content
[
'q_list'
]
=
array
(
'form'
=>
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'hidden'
=>
array
(
'code'
=>
qa_get_form_security_code
(
'admin/click'
),
...
...
@@ -97,75 +100,73 @@
),
'qs'
=>
array
(),
);
);
if
(
count
(
$questions
))
{
if
(
count
(
$questions
))
{
foreach
(
$questions
as
$key
=>
$question
)
{
$elementid
=
'p'
.
$qhiddenpostid
[
$key
];
$elementid
=
'p'
.
$qhiddenpostid
[
$key
];
$htmloptions
=
qa_post_html_options
(
$question
);
$htmloptions
[
'voteview'
]
=
false
;
$htmloptions
[
'tagsview'
]
=
!
isset
(
$question
[
'opostid'
]);
$htmloptions
[
'answersview'
]
=
false
;
$htmloptions
[
'viewsview'
]
=
false
;
$htmloptions
[
'updateview'
]
=
false
;
$htmloptions
[
'contentview'
]
=
true
;
$htmloptions
[
'flagsview'
]
=
true
;
$htmloptions
[
'elementid'
]
=
$elementid
;
$htmloptions
=
qa_post_html_options
(
$question
);
$htmloptions
[
'voteview'
]
=
false
;
$htmloptions
[
'tagsview'
]
=
!
isset
(
$question
[
'opostid'
]);
$htmloptions
[
'answersview'
]
=
false
;
$htmloptions
[
'viewsview'
]
=
false
;
$htmloptions
[
'updateview'
]
=
false
;
$htmloptions
[
'contentview'
]
=
true
;
$htmloptions
[
'flagsview'
]
=
true
;
$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
$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'
])
{
$updated
=
@
$question
[
isset
(
$question
[
'opostid'
])
?
'oupdated'
:
'updated'
];
$updated
=
@
$question
[
isset
(
$question
[
'opostid'
])
?
'oupdated'
:
'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'
]);
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
$buttons
[
'reshow'
]
=
array
(
'tags'
=>
'name="admin_'
.
qa_html
(
$qhiddenpostid
[
$key
])
.
'_reshow" onclick="return qa_admin_click(this);"'
,
$buttons
[
'reshow'
]
=
array
(
'tags'
=>
'name="admin_'
.
qa_html
(
$qhiddenpostid
[
$key
])
.
'_reshow" onclick="return qa_admin_click(this);"'
,
'label'
=>
qa_lang_html
(
'question/reshow_button'
),
'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
$buttons
[
'delete'
]
=
array
(
'tags'
=>
'name="admin_'
.
qa_html
(
$qhiddenpostid
[
$key
])
.
'_delete" onclick="return qa_admin_click(this);"'
,
$buttons
[
'delete'
]
=
array
(
'tags'
=>
'name="admin_'
.
qa_html
(
$qhiddenpostid
[
$key
])
.
'_delete" onclick="return qa_admin_click(this);"'
,
'label'
=>
qa_lang_html
(
'question/delete_button'
),
'popup'
=>
qa_lang_html
(
sprintf
(
'question/delete_%s_popup'
,
$posttype
)),
);
}
if
(
count
(
$buttons
))
$htmlfields
[
'form'
]
=
array
(
if
(
count
(
$buttons
))
{
$htmlfields
[
'form'
]
=
array
(
'style'
=>
'light'
,
'buttons'
=>
$buttons
,
);
$qa_content
[
'q_list'
][
'qs'
][]
=
$htmlfields
;
}
}
else
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/no_hidden_found'
);
$qa_content
[
'q_list'
][
'qs'
][]
=
$htmlfields
;
}
}
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
;
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
return
$qa_content
;
qa-include/pages/admin/admin-moderate.php
View file @
14d54fd4
...
...
@@ -20,66 +20,68 @@
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: ../'
);
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
// 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_recent_a_qs_selectspec
(
$userid
,
0
,
null
,
null
,
'A_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)
if
(
qa_user_maximum_permit_error
(
'permit_moderate'
))
{
$qa_content
=
qa_content_prepare
();
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
if
(
qa_user_maximum_permit_error
(
'permit_moderate'
))
{
$qa_content
=
qa_content_prepare
();
$qa_content
[
'error'
]
=
qa_lang_html
(
'users/no_permission'
);
return
$qa_content
;
}
}
// 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
$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
foreach
(
$questions
as
$index
=>
$question
)
if
(
qa_user_permit_error
(
'permit_moderate'
))
{
// if user not allowed to moderate all posts
foreach
(
$questions
as
$index
=>
$question
)
{
if
(
qa_user_post_permit_error
(
'permit_moderate'
,
$question
))
unset
(
$questions
[
$index
]);
}
}
// 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
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/recent_approve_title'
);
$qa_content
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/recent_approve_title'
);
$qa_content
[
'error'
]
=
isset
(
$pageerror
)
?
$pageerror
:
qa_admin_page_error
();
$qa_content
[
'q_list'
]
=
array
(
$qa_content
[
'q_list'
]
=
array
(
'form'
=>
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'hidden'
=>
array
(
'code'
=>
qa_get_form_security_code
(
'admin/click'
),
...
...
@@ -87,25 +89,25 @@
),
'qs'
=>
array
(),
);
);
if
(
count
(
$questions
))
{
if
(
count
(
$questions
))
{
foreach
(
$questions
as
$question
)
{
$postid
=
qa_html
(
isset
(
$question
[
'opostid'
])
?
$question
[
'opostid'
]
:
$question
[
'postid'
]);
$elementid
=
'p'
.
$postid
;
$postid
=
qa_html
(
isset
(
$question
[
'opostid'
])
?
$question
[
'opostid'
]
:
$question
[
'postid'
]);
$elementid
=
'p'
.
$postid
;
$htmloptions
=
qa_post_html_options
(
$question
);
$htmloptions
[
'voteview'
]
=
false
;
$htmloptions
[
'tagsview'
]
=
!
isset
(
$question
[
'opostid'
]);
$htmloptions
[
'answersview'
]
=
false
;
$htmloptions
[
'viewsview'
]
=
false
;
$htmloptions
[
'contentview'
]
=
true
;
$htmloptions
[
'elementid'
]
=
$elementid
;
$htmloptions
=
qa_post_html_options
(
$question
);
$htmloptions
[
'voteview'
]
=
false
;
$htmloptions
[
'tagsview'
]
=
!
isset
(
$question
[
'opostid'
]);
$htmloptions
[
'answersview'
]
=
false
;
$htmloptions
[
'viewsview'
]
=
false
;
$htmloptions
[
'contentview'
]
=
true
;
$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
$htmlfields
[
'url'
]
=
$htmlfields
[
'what_url'
];
$htmlfields
[
'url'
]
=
$htmlfields
[
'what_url'
];
$posttype
=
qa_strtolower
(
isset
(
$question
[
'obasetype'
])
?
$question
[
'obasetype'
]
:
$question
[
'basetype'
]);
switch
(
$posttype
)
{
...
...
@@ -124,40 +126,35 @@
break
;
}
$htmlfields
[
'form'
]
=
array
(
$htmlfields
[
'form'
]
=
array
(
'style'
=>
'light'
,
'buttons'
=>
array
(
// Possible values for popup: approve_q_popup, approve_a_popup, approve_c_popup
'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'
),
'popup'
=>
qa_lang_html
(
$approveKey
),
),
// Possible values for popup: reject_q_popup, reject_a_popup, reject_c_popup
'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'
),
'popup'
=>
qa_lang_html
(
$rejectKey
),
),
),
);
$qa_content
[
'q_list'
][
'qs'
][]
=
$htmlfields
;
$qa_content
[
'q_list'
][
'qs'
][]
=
$htmlfields
;
}
}
else
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/no_approve_found'
);
}
else
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/no_approve_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
;
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
return
$qa_content
;
qa-include/pages/admin/admin-pages.php
View file @
14d54fd4
...
...
@@ -20,46 +20,46 @@
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: ../'
);
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
// Get current list of pages and determine the state of this admin page
$pageid
=
qa_post_text
(
'edit'
);
if
(
!
isset
(
$pageid
))
$pageid
=
qa_get
(
'edit'
);
$pageid
=
qa_post_text
(
'edit'
);
if
(
!
isset
(
$pageid
))
$pageid
=
qa_get
(
'edit'
);
list
(
$pages
,
$editpage
)
=
qa_db_select_with_pending
(
list
(
$pages
,
$editpage
)
=
qa_db_select_with_pending
(
qa_db_pages_selectspec
(),
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
))
{
$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'
);
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
);
$isexternal
=
qa_clicked
(
'doaddlink'
)
||
qa_get
(
'doaddlink'
)
||
qa_post_text
(
'external'
);
}
elseif
(
isset
(
$editpage
))
$isexternal
=
$editpage
[
'flags'
]
&
QA_PAGE_FLAGS_EXTERNAL
;
}
elseif
(
isset
(
$editpage
))
$isexternal
=
$editpage
[
'flags'
]
&
QA_PAGE_FLAGS_EXTERNAL
;
// 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
;
// 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_activity'
=>
'main/nav_activity'
,
$hascustomhome
?
'nav_qa_not_home'
:
'nav_qa_is_home'
=>
$hascustomhome
?
'main/nav_qa'
:
'admin/nav_qa_is_home'
,
...
...
@@ -70,9 +70,9 @@
'nav_categories'
=>
'main/nav_categories'
,
'nav_users'
=>
'main/nav_users'
,
'nav_ask'
=>
'main/nav_ask'
,
);
);
$navpaths
=
array
(
$navpaths
=
array
(
'nav_home'
=>
''
,
'nav_activity'
=>
'activity'
,
'nav_qa_not_home'
=>
'qa'
,
...
...
@@ -84,120 +84,118 @@
'nav_categories'
=>
'categories'
,
'nav_users'
=>
'users'
,
'nav_ask'
=>
'ask'
,
);
);
if
(
!
qa_opt
(
'show_custom_home'
))
if
(
!
qa_opt
(
'show_custom_home'
))
unset
(
$navoptions
[
'nav_home'
]);
if
(
!
qa_using_categories
())
if
(
!
qa_using_categories
())
unset
(
$navoptions
[
'nav_categories'
]);
if
(
!
qa_using_tags
())
if
(
!
qa_using_tags
())
unset
(
$navoptions
[
'nav_tags'
]);
// Process saving an old or new page
$securityexpired
=
false
;
$securityexpired
=
false
;
if
(
qa_clicked
(
'docancel'
))
$editpage
=
null
;
if
(
qa_clicked
(
'docancel'
))
$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'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
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'
))
{
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
}
elseif
(
qa_clicked
(
'dosavepage'
))
{
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
if
(
!
qa_check_form_security_code
(
'admin/pages'
,
qa_post_text
(
'code'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
else
{
$reloadpages
=
false
;
$reloadpages
=
false
;
if
(
qa_post_text
(
'dodelete'
))
{
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
)
$searchmodule
->
unindex_page
(
$editpage
[
'pageid'
]);
$editpage
=
null
;
$reloadpages
=
true
;
$editpage
=
null
;
$reloadpages
=
true
;
}
else
{
$inname
=
qa_post_text
(
'name'
);
$inposition
=
qa_post_text
(
'position'
);
$inpermit
=
(
int
)
qa_post_text
(
'permit'
);
$inurl
=
qa_post_text
(
'url'
);
$innewwindow
=
qa_post_text
(
'newwindow'
);
$inheading
=
qa_post_text
(
'heading'
);
$incontent
=
qa_post_text
(
'content'
);
$inname
=
qa_post_text
(
'name'
);
$inposition
=
qa_post_text
(
'position'
);
$inpermit
=
(
int
)
qa_post_text
(
'permit'
);
$inurl
=
qa_post_text
(
'url'
);
$innewwindow
=
qa_post_text
(
'newwindow'
);
$inheading
=
qa_post_text
(
'heading'
);
$incontent
=
qa_post_text
(
'content'
);
$errors
=
array
();
$errors
=
array
();
// Verify the name (navigation link) is legitimate
if
(
empty
(
$inname
))
$errors
[
'name'
]
=
qa_lang
(
'main/field_required'
);
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
(
'main/field_required'
);
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
);
if
(
$isexternal
)
{
// Verify the url is legitimate (vaguely)
if
(
empty
(
$inurl
))
$errors
[
'url'
]
=
qa_lang
(
'main/field_required'
);
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
(
'main/field_required'
);
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
);
}
else
{
// Verify the heading is legitimate
if
(
qa_strlen
(
$inheading
)
>
QA_DB_MAX_TITLE_LENGTH
)
$errors
[
'heading'
]
=
qa_lang_sub
(
'main/max_length_x'
,
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
);
// 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
)
{
case
0
:
$inslug
=
qa_post_text
(
'slug'
);
$inslug
=
qa_post_text
(
'slug'
);
if
(
!
isset
(
$inslug
))
$inslug
=
implode
(
'-'
,
qa_string_to_words
(
$inname
));
$inslug
=
implode
(
'-'
,
qa_string_to_words
(
$inname
));
break
;
case
1
:
$inslug
=
qa_lang_sub
(
'admin/page_default_slug'
,
$inslug
);
$inslug
=
qa_lang_sub
(
'admin/page_default_slug'
,
$inslug
);
break
;
default
:
$inslug
=
qa_lang_sub
(
'admin/page_default_slug'
,
$attempt
-
1
);
$inslug
=
qa_lang_sub
(
'admin/page_default_slug'
,
$attempt
-
1
);
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_page_full_selectspec
(
$inslug
,
false
)
);
if
(
empty
(
$inslug
))
$errors
[
'slug'
]
=
qa_lang
(
'main/field_required'
);
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
(
'main/field_required'
);
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
);
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
))
$errors
[
'slug'
]
=
qa_lang
(
'admin/slug_reserved'
);
elseif
(
isset
(
$matchpage
)
&&
(
$matchpage
[
'pageid'
]
!=
@
$editpage
[
'pageid'
]))
$errors
[
'slug'
]
=
qa_lang
(
'admin/page_already_used'
);
$errors
[
'slug'
]
=
qa_lang
(
'admin/slug_reserved'
);
elseif
(
isset
(
$matchpage
)
&&
(
$matchpage
[
'pageid'
]
!=
@
$editpage
[
'pageid'
]))
$errors
[
'slug'
]
=
qa_lang
(
'admin/page_already_used'
);
elseif
(
isset
(
$matchcategoryid
))
$errors
[
'slug'
]
=
qa_lang
(
'admin/category_already_used'
);
$errors
[
'slug'
]
=
qa_lang
(
'admin/category_already_used'
);
else
unset
(
$errors
[
'slug'
]);
...
...
@@ -209,61 +207,61 @@
// Perform appropriate database action
if
(
isset
(
$editpage
[
'pageid'
]))
{
// changing existing page
if
(
$isexternal
)
if
(
$isexternal
)
{
qa_db_page_set_fields
(
$editpage
[
'pageid'
],
isset
(
$errors
[
'name'
])
?
$editpage
[
'title'
]
:
$inname
,
QA_PAGE_FLAGS_EXTERNAL
|
(
$innewwindow
?
QA_PAGE_FLAGS_NEW_WINDOW
:
0
),
isset
(
$errors
[
'url'
])
?
$editpage
[
'tags'
]
:
$inurl
,
null
,
null
,
$inpermit
);
else
{
$setheading
=
isset
(
$errors
[
'heading'
])
?
$editpage
[
'heading'
]
:
$inheading
;
$setslug
=
isset
(
$errors
[
'slug'
])
?
$editpage
[
'tags'
]
:
$inslug
;
$setcontent
=
isset
(
$errors
[
'content'
])
?
$editpage
[
'content'
]
:
$incontent
;
}
else
{
$setheading
=
isset
(
$errors
[
'heading'
])
?
$editpage
[
'heading'
]
:
$inheading
;
$setslug
=
isset
(
$errors
[
'slug'
])
?
$editpage
[
'tags'
]
:
$inslug
;
$setcontent
=
isset
(
$errors
[
'content'
])
?
$editpage
[
'content'
]
:
$incontent
;
qa_db_page_set_fields
(
$editpage
[
'pageid'
],
isset
(
$errors
[
'name'
])
?
$editpage
[
'title'
]
:
$inname
,
0
,
$setslug
,
$setheading
,
$setcontent
,
$inpermit
);
$searchmodules
=
qa_load_modules_with
(
'search'
,
'unindex_page'
);
$searchmodules
=
qa_load_modules_with
(
'search'
,
'unindex_page'
);
foreach
(
$searchmodules
as
$searchmodule
)
$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
)
$searchmodule
->
index_page
(
$editpage
[
'pageid'
],
$setslug
,
$setheading
,
$setcontent
,
'html'
,
$indextext
);
}
qa_db_page_move
(
$editpage
[
'pageid'
],
substr
(
$inposition
,
0
,
1
),
substr
(
$inposition
,
1
));
$reloadpages
=
true
;
$reloadpages
=
true
;
if
(
empty
(
$errors
))
$editpage
=
null
;
$editpage
=
null
;
else
$editpage
=
@
$pages
[
$editpage
[
'pageid'
]];
$editpage
=
@
$pages
[
$editpage
[
'pageid'
]];
}
else
{
// creating a new one
if
(
empty
(
$errors
))
{
if
(
$isexternal
)
$pageid
=
qa_db_page_create
(
$inname
,
QA_PAGE_FLAGS_EXTERNAL
|
(
$innewwindow
?
QA_PAGE_FLAGS_NEW_WINDOW
:
0
),
$inurl
,
null
,
null
,
$inpermit
);
else
{
$pageid
=
qa_db_page_create
(
$inname
,
0
,
$inslug
,
$inheading
,
$incontent
,
$inpermit
);
if
(
$isexternal
)
{
$pageid
=
qa_db_page_create
(
$inname
,
QA_PAGE_FLAGS_EXTERNAL
|
(
$innewwindow
?
QA_PAGE_FLAGS_NEW_WINDOW
:
0
),
$inurl
,
null
,
null
,
$inpermit
);
}
else
{
$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
)
$searchmodule
->
index_page
(
$pageid
,
$inslug
,
$inheading
,
$incontent
,
'html'
,
$indextext
);
}
qa_db_page_move
(
$pageid
,
substr
(
$inposition
,
0
,
1
),
substr
(
$inposition
,
1
));
$editpage
=
null
;
$reloadpages
=
true
;
$editpage
=
null
;
$reloadpages
=
true
;
}
}
...
...
@@ -273,26 +271,26 @@
if
(
$reloadpages
)
{
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
$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
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$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
();
if
(
isset
(
$editpage
))
{
$positionoptions
=
array
();
if
(
isset
(
$editpage
))
{
$positionoptions
=
array
();
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'
,
'M'
=>
'admin/after_main_menu'
,
'O'
=>
'admin/opposite_main_menu'
,
...
...
@@ -300,39 +298,40 @@
);
foreach
(
$navlangkey
as
$nav
=>
$langkey
)
{
$previous
=
null
;
$passedself
=
false
;
$maxposition
=
0
;
$previous
=
null
;
$passedself
=
false
;
$maxposition
=
0
;
foreach
(
$pages
as
$key
=>
$page
)
if
(
$page
[
'nav'
]
==
$nav
)
{
foreach
(
$pages
as
$key
=>
$page
)
{
if
(
$page
[
'nav'
]
==
$nav
)
{
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
$positionhtml
=
qa_lang_html
(
$langkey
);
$positionhtml
=
qa_lang_html
(
$langkey
);
if
(
$page
[
'pageid'
]
==
@
$editpage
[
'pageid'
])
$passedself
=
true
;
if
(
$page
[
'pageid'
]
==
@
$editpage
[
'pageid'
])
$passedself
=
true
;
$maxposition
=
max
(
$maxposition
,
$page
[
'position'
]);
$positionoptions
[
$nav
.
$page
[
'position'
]]
=
$positionhtml
;
$maxposition
=
max
(
$maxposition
,
$page
[
'position'
]);
$positionoptions
[
$nav
.
$page
[
'position'
]]
=
$positionhtml
;
$previous
=
$page
;
$previous
=
$page
;
}
}
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
);
$positionoptions
[
$nav
.
(
isset
(
$previous
)
?
(
1
+
$maxposition
)
:
1
)]
=
$positionvalue
;
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
);
$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
);
$permitvalue
=
@
$permitoptions
[
isset
(
$inpermit
)
?
$inpermit
:
$editpage
[
'permit'
]];
$permitoptions
=
qa_admin_permit_options
(
QA_PERMIT_ALL
,
QA_PERMIT_ADMINS
,
false
,
false
);
$permitvalue
=
@
$permitoptions
[
isset
(
$inpermit
)
?
$inpermit
:
$editpage
[
'permit'
]];
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'style'
=>
'tall'
,
...
...
@@ -445,7 +444,7 @@
unset
(
$qa_content
[
'form'
][
'fields'
][
'newwindow'
]);
}
if
(
isset
(
$editpage
[
'pageid'
]))
if
(
isset
(
$editpage
[
'pageid'
]))
{
qa_set_display_rules
(
$qa_content
,
array
(
'position_display'
=>
'!dodelete'
,
'permit_display'
=>
'!dodelete'
,
...
...
@@ -454,7 +453,7 @@
'content_display'
=>
'!dodelete'
,
));
else
{
}
else
{
unset
(
$qa_content
[
'form'
][
'fields'
][
'slug'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'delete'
]);
}
...
...
@@ -462,14 +461,14 @@
if
(
$isexternal
||
!
isset
(
$editpage
[
'pageid'
]))
unset
(
$qa_content
[
'form'
][
'buttons'
][
'saveview'
]);
$qa_content
[
'focusid'
]
=
'name'
;
$qa_content
[
'focusid'
]
=
'name'
;
}
else
{
}
else
{
// List of standard navigation links
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'style'
=>
'tall'
,
...
...
@@ -497,86 +496,82 @@
),
);
$qa_content
[
'form'
][
'fields'
][
'navlinks'
]
=
array
(
$qa_content
[
'form'
][
'fields'
][
'navlinks'
]
=
array
(
'label'
=>
qa_lang_html
(
'admin/nav_links_explanation'
),
'type'
=>
'static'
,
'tight'
=>
true
,
);
foreach
(
$navoptions
as
$optionname
=>
$langkey
)
{
$qa_content
[
'form'
][
'fields'
][
$optionname
]
=
array
(
'label'
=>
'<a href="'
.
qa_path_html
(
$navpaths
[
$optionname
])
.
'">'
.
qa_lang_html
(
$langkey
)
.
'</a>'
,
'tags'
=>
'name="option_'
.
$optionname
.
'"'
,
$qa_content
[
'form'
][
'fields'
][
$optionname
]
=
array
(
'label'
=>
'<a href="'
.
qa_path_html
(
$navpaths
[
$optionname
])
.
'">'
.
qa_lang_html
(
$langkey
)
.
'</a>'
,
'tags'
=>
'name="option_'
.
$optionname
.
'"'
,
'type'
=>
'checkbox'
,
'value'
=>
qa_opt
(
$optionname
),
);
}
$qa_content
[
'form'
][
'fields'
][]
=
array
(
$qa_content
[
'form'
][
'fields'
][]
=
array
(
'type'
=>
'blank'
);
// 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
)
{
$suggestrequests
=
$trypage
->
suggest_requests
();
$suggestrequests
=
$trypage
->
suggest_requests
();
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
(
'^1'
=>
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'doaddlink'
=>
1
,
'text'
=>
$suggestrequest
[
'title'
],
'url'
=>
$suggestrequest
[
'request'
],
'nav'
=>
@
$suggestrequest
[
'nav'
]))
.
'">'
,
$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'
]))
.
'">'
,
'^2'
=>
'</a>'
,
));
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
))
$qa_content
[
'form'
][
'fields'
][
'plugins'
]
=
array
(
if
(
strlen
(
$listhtml
))
{
$qa_content
[
'form'
][
'fields'
][
'plugins'
]
=
array
(
'label'
=>
qa_lang_html
(
'admin/plugin_pages_explanation'
),
'type'
=>
'custom'
,
'html'
=>
'<ul style="margin-bottom:0;">'
.
$listhtml
.
'</ul>'
,
'html'
=>
'<ul style="margin-bottom:0;">'
.
$listhtml
.
'</ul>'
,
);
}
// List of custom pages or links
$listhtml
=
''
;
$listhtml
=
''
;
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
(
'^1'
=>
'<a href="'
.
qa_path_html
(
'admin/pages'
,
array
(
'edit'
=>
$page
[
'pageid'
]))
.
'">'
,
$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'
]))
.
'">'
,
'^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'
),
'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
()
;
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
return
$qa_content
;
qa-include/pages/admin/admin-plugins.php
View file @
14d54fd4
...
...
@@ -20,28 +20,28 @@
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: ../'
);
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
// Check admin privileges
if
(
!
qa_admin_check_privileges
(
$qa_content
))
if
(
!
qa_admin_check_privileges
(
$qa_content
))
return
$qa_content
;
// Map modules with options to their containing plugins
$pluginoptionmodules
=
array
();
$pluginoptionmodules
=
array
();
$tables
=
qa_db_list_tables
();
$moduletypes
=
qa_list_module_types
();
$tables
=
qa_db_list_tables
();
$moduletypes
=
qa_list_module_types
();
foreach
(
$moduletypes
as
$type
)
{
foreach
(
$moduletypes
as
$type
)
{
$modules
=
qa_list_modules
(
$type
);
foreach
(
$modules
as
$name
)
{
...
...
@@ -56,22 +56,22 @@
);
}
}
}
}
// 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'
);
foreach
(
$modules
as
$name
=>
$module
)
{
...
...
@@ -85,22 +85,21 @@
$qa_content
[
'error'
]
=
strtr
(
qa_lang_html
(
'admin/module_x_database_init'
),
array
(
'^1'
=>
qa_html
(
$name
),
'^2'
=>
qa_html
(
$type
),
'^3'
=>
'<a href="'
.
qa_path_html
(
'install'
)
.
'">'
,
'^3'
=>
'<a href="'
.
qa_path_html
(
'install'
)
.
'">'
,
'^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'
);
$showpluginforms
=
false
;
}
else
}
else
$showpluginforms
=
true
;
if
(
!
empty
(
$pluginfiles
))
{
if
(
!
empty
(
$pluginfiles
))
{
$metadataUtil
=
new
Q2A_Util_Metadata
();
$sortedPluginFiles
=
array
();
...
...
@@ -113,8 +112,7 @@
}
$metadata
[
'name'
]
=
isset
(
$metadata
[
'name'
])
&&
!
empty
(
$metadata
[
'name'
])
?
qa_html
(
$metadata
[
'name'
])
:
qa_lang_html
(
'admin/unnamed_plugin'
)
;
:
qa_lang_html
(
'admin/unnamed_plugin'
);
$sortedPluginFiles
[
$pluginFile
]
=
$metadata
;
}
...
...
@@ -130,37 +128,35 @@
$namehtml
=
$metadata
[
'name'
];
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'
]);
if
(
$metaver
)
$namehtml
.=
' v'
.
qa_html
(
$metadata
[
'version'
]);
$namehtml
.=
' v'
.
qa_html
(
$metadata
[
'version'
]);
if
(
isset
(
$metadata
[
'author'
])
&&
strlen
(
$metadata
[
'author'
]))
{
$authorhtml
=
qa_html
(
$metadata
[
'author'
]);
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
);
}
else
}
else
$authorhtml
=
''
;
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_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
=
''
;
if
(
isset
(
$metadata
[
'description'
]))
...
...
@@ -168,23 +164,25 @@
else
$deschtml
=
''
;
if
(
isset
(
$pluginoptionmodules
[
$plugindirectory
])
&&
!
$showthisform
)
$deschtml
.=
(
strlen
(
$deschtml
)
?
' - '
:
''
)
.
'<a href="'
.
qa_admin_plugin_options_path
(
$plugindirectory
)
.
'">'
.
qa_lang_html
(
'admin/options'
)
.
'</a>'
;
if
(
isset
(
$pluginoptionmodules
[
$plugindirectory
])
&&
!
$showthisform
)
{
$deschtml
.=
(
strlen
(
$deschtml
)
?
' - '
:
''
)
.
'<a href="'
.
qa_admin_plugin_options_path
(
$plugindirectory
)
.
'">'
.
qa_lang_html
(
'admin/options'
)
.
'</a>'
;
}
$pluginhtml
=
$namehtml
.
' '
.
$authorhtml
.
' '
.
$updatehtml
.
'<br>'
.
$deschtml
.
(
strlen
(
$deschtml
)
?
'<br>'
:
''
)
.
'<small style="color:#666">'
.
qa_html
(
$plugindirectory
)
.
'/</small>'
;
$pluginhtml
=
$namehtml
.
' '
.
$authorhtml
.
' '
.
$updatehtml
.
'<br>'
.
$deschtml
.
(
strlen
(
$deschtml
)
?
'<br>'
:
''
)
.
'<small style="color:#666">'
.
qa_html
(
$plugindirectory
)
.
'/</small>'
;
if
(
qa_qa_version_below
(
@
$metadata
[
'min_q2a'
]))
$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>'
;
if
(
qa_qa_version_below
(
@
$metadata
[
'min_q2a'
]))
{
$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>'
;
elseif
(
qa_php_version_below
(
@
$metadata
[
'min_php'
]))
$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>'
;
}
elseif
(
qa_php_version_below
(
@
$metadata
[
'min_php'
]))
{
$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_content
[
'form_plugin_'
.
$pluginIndex
]
=
array
(
'tags'
=>
'id="'
.
qa_html
(
$hash
)
.
'"'
,
$qa_content
[
'form_plugin_'
.
$pluginIndex
]
=
array
(
'tags'
=>
'id="'
.
qa_html
(
$hash
)
.
'"'
,
'style'
=>
'tall'
,
'fields'
=>
array
(
array
(
...
...
@@ -194,7 +192,7 @@
),
);
if
(
$showthisform
&&
isset
(
$pluginoptionmodules
[
$plugindirectory
]))
if
(
$showthisform
&&
isset
(
$pluginoptionmodules
[
$plugindirectory
]))
{
foreach
(
$pluginoptionmodules
[
$plugindirectory
]
as
$pluginoptionmodule
)
{
$type
=
$pluginoptionmodule
[
'type'
];
$name
=
$pluginoptionmodule
[
'name'
];
...
...
@@ -204,7 +202,7 @@
$form
=
$module
->
admin_form
(
$qa_content
);
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'
]))
$form
[
'style'
]
=
'tall'
;
...
...
@@ -215,16 +213,11 @@
$qa_content
[
'form_plugin_options'
]
=
$form
;
}
}
}
}
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
return
$qa_content
;
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
return
$qa_content
;
qa-include/pages/admin/admin-points.php
View file @
14d54fd4
...
...
@@ -20,68 +20,68 @@
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: ../'
);
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'db/recalc.php'
;
require_once
QA_INCLUDE_DIR
.
'db/points.php'
;
require_once
QA_INCLUDE_DIR
.
'app/options.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'util/sort.php'
;
require_once
QA_INCLUDE_DIR
.
'db/recalc.php'
;
require_once
QA_INCLUDE_DIR
.
'db/points.php'
;
require_once
QA_INCLUDE_DIR
.
'app/options.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'util/sort.php'
;
// Check admin privileges
if
(
!
qa_admin_check_privileges
(
$qa_content
))
if
(
!
qa_admin_check_privileges
(
$qa_content
))
return
$qa_content
;
// Process user actions
$securityexpired
=
false
;
$recalculate
=
false
;
$optionnames
=
qa_db_points_option_names
();
$securityexpired
=
false
;
$recalculate
=
false
;
$optionnames
=
qa_db_points_option_names
();
if
(
qa_clicked
(
'doshowdefaults'
))
{
$options
=
array
();
if
(
qa_clicked
(
'doshowdefaults'
))
{
$options
=
array
();
foreach
(
$optionnames
as
$optionname
)
$options
[
$optionname
]
=
qa_default_option
(
$optionname
);
$options
[
$optionname
]
=
qa_default_option
(
$optionname
);
}
else
{
}
else
{
if
(
qa_clicked
(
'docancel'
))
;
elseif
(
qa_clicked
(
'dosaverecalc'
))
{
if
(
!
qa_check_form_security_code
(
'admin/points'
,
qa_post_text
(
'code'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
else
{
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'
))
qa_redirect
(
'admin/recalc'
,
array
(
'dorecalcpoints'
=>
1
));
else
$recalculate
=
true
;
$recalculate
=
true
;
}
}
$options
=
qa_get_options
(
$optionnames
);
}
$options
=
qa_get_options
(
$optionnames
);
}
// 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
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$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
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'" name="points_form" onsubmit="document.forms.points_form.has_js.value=1; return true;"'
,
$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;"'
,
'style'
=>
'wide'
,
...
...
@@ -97,41 +97,41 @@
'has_js'
=>
'0'
,
'code'
=>
qa_get_form_security_code
(
'admin/points'
),
),
);
);
if
(
qa_clicked
(
'doshowdefaults'
))
{
$qa_content
[
'form'
][
'ok'
]
=
qa_lang_html
(
'admin/points_defaults_shown'
);
if
(
qa_clicked
(
'doshowdefaults'
))
{
$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"'
,
'label'
=>
qa_lang_html
(
'main/cancel_button'
),
);
}
else
{
}
else
{
if
(
$recalculate
)
{
$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'
][
'ok'
]
=
'<span id="recalc_ok"></span>'
;
$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_var'
][
'qa_warning_recalc'
]
=
qa_lang
(
'admin/stop_recalc_warning'
);
$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_onloads'
][]
=
array
(
$qa_content
[
'script_onloads'
][]
=
array
(
"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"'
,
'label'
=>
qa_lang_html
(
'admin/show_defaults_button'
),
);
}
}
foreach
(
$optionnames
as
$optionname
)
{
$optionfield
=
array
(
'label'
=>
qa_lang_html
(
'options/'
.
$optionname
),
'tags'
=>
'name="option_'
.
$optionname
.
'"'
,
foreach
(
$optionnames
as
$optionname
)
{
$optionfield
=
array
(
'label'
=>
qa_lang_html
(
'options/'
.
$optionname
),
'tags'
=>
'name="option_'
.
$optionname
.
'"'
,
'value'
=>
qa_html
(
$options
[
$optionname
]),
'type'
=>
'number'
,
'note'
=>
qa_lang_html
(
'admin/points'
),
...
...
@@ -139,7 +139,7 @@
switch
(
$optionname
)
{
case
'points_multiple'
:
$prefix
=
'×'
;
$prefix
=
'×'
;
unset
(
$optionfield
[
'note'
]);
break
;
...
...
@@ -147,41 +147,36 @@
case
'points_per_a_voted_up'
:
case
'points_q_voted_max_gain'
:
case
'points_a_voted_max_gain'
:
$prefix
=
'+'
;
$prefix
=
'+'
;
break
;
case
'points_per_q_voted_down'
:
case
'points_per_a_voted_down'
:
case
'points_q_voted_max_loss'
:
case
'points_a_voted_max_loss'
:
$prefix
=
'–'
;
$prefix
=
'–'
;
break
;
case
'points_base'
:
$prefix
=
'+'
;
$prefix
=
'+'
;
break
;
default
:
$prefix
=
'<span style="visibility:hidden;">+</span>'
;
// for even alignment
$prefix
=
'<span style="visibility:hidden;">+</span>'
;
// for even alignment
break
;
}
$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'
)));
$optionfield
[
'prefix'
]
=
'<span style="width:1em; display:inline-block; display:-moz-inline-stack;">'
.
$prefix
.
'</span>'
;
$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
()
;
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
return
$qa_content
;
qa-include/pages/admin/admin-recalc.php
View file @
14d54fd4
...
...
@@ -20,24 +20,24 @@
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: ../'
);
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/recalc.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/recalc.php'
;
// Check we have administrative privileges
if
(
!
qa_admin_check_privileges
(
$qa_content
))
if
(
!
qa_admin_check_privileges
(
$qa_content
))
return
$qa_content
;
// Find out the operation
$allowstates
=
array
(
$allowstates
=
array
(
'dorecountposts'
,
'doreindexcontent'
,
'dorecalcpoints'
,
...
...
@@ -46,69 +46,70 @@
'dodeletehidden'
,
'doblobstodisk'
,
'doblobstodb'
,
);
);
$recalcnow
=
false
;
$recalcnow
=
false
;
foreach
(
$allowstates
as
$allowstate
)
foreach
(
$allowstates
as
$allowstate
)
{
if
(
qa_post_text
(
$allowstate
)
||
qa_get
(
$allowstate
))
{
$state
=
$allowstate
;
$code
=
qa_post_text
(
'code'
);
$state
=
$allowstate
;
$code
=
qa_post_text
(
'code'
);
if
(
isset
(
$code
)
&&
qa_check_form_security_code
(
'admin/recalc'
,
$code
))
$recalcnow
=
true
;
$recalcnow
=
true
;
}
}
if
(
$recalcnow
)
{
?>
if
(
$recalcnow
)
{
?>
<html>
<html>
<head>
<meta
http-equiv=
"content-type"
content=
"text/html; charset=utf-8"
>
</head>
<body>
<tt>
<?php
<?php
while
(
$state
)
{
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
();
sleep
(
1
);
// ... then rest for one
}
?>
?>
</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>
</body>
</html>
</html>
<?php
<?php
qa_exit
();
}
elseif
(
isset
(
$state
))
{
$qa_content
=
qa_content_prepare
();
}
elseif
(
isset
(
$state
))
{
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
);
$qa_content
[
'error'
]
=
qa_lang_html
(
'misc/form_security_again'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
);
$qa_content
[
'error'
]
=
qa_lang_html
(
'misc/form_security_again'
);
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'style'
=>
'wide'
,
'buttons'
=>
array
(
'recalc'
=>
array
(
'tags'
=>
'name="'
.
qa_html
(
$state
)
.
'"'
,
'tags'
=>
'name="'
.
qa_html
(
$state
)
.
'"'
,
'label'
=>
qa_lang_html
(
'misc/form_security_again'
),
),
),
...
...
@@ -120,18 +121,13 @@
return
$qa_content
;
}
else
{
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
}
else
{
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
[
'error'
]
=
qa_lang_html
(
'main/page_not_found'
);
$qa_content
[
'title'
]
=
qa_lang_html
(
'admin/admin_title'
);
$qa_content
[
'error'
]
=
qa_lang_html
(
'main/page_not_found'
);
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 @@
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: ../'
);
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'db/recalc.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
require_once
QA_INCLUDE_DIR
.
'db/recalc.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'app/format.php'
;
// 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
;
// Get the information to display
$qcount
=
(
int
)
qa_opt
(
'cache_qcount'
);
$qcount_anon
=
qa_db_count_posts
(
'Q'
,
false
);
$qcount
=
(
int
)
qa_opt
(
'cache_qcount'
);
$qcount_anon
=
qa_db_count_posts
(
'Q'
,
false
);
$acount
=
(
int
)
qa_opt
(
'cache_acount'
);
$acount_anon
=
qa_db_count_posts
(
'A'
,
false
);
$acount
=
(
int
)
qa_opt
(
'cache_acount'
);
$acount_anon
=
qa_db_count_posts
(
'A'
,
false
);
$ccount
=
(
int
)
qa_opt
(
'cache_ccount'
);
$ccount_anon
=
qa_db_count_posts
(
'C'
,
false
);
$ccount
=
(
int
)
qa_opt
(
'cache_ccount'
);
$ccount_anon
=
qa_db_count_posts
(
'C'
,
false
);
// 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'
,
'fields'
=>
array
(
...
...
@@ -74,7 +74,7 @@
'q2a_latest'
=>
array
(
'label'
=>
qa_lang_html
(
'admin/q2a_latest_version'
),
'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>'
,
),
...
...
@@ -117,7 +117,7 @@
'qcount_users'
=>
array
(
'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
(
...
...
@@ -136,7 +136,7 @@
'acount_users'
=>
array
(
'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
(
...
...
@@ -155,7 +155,7 @@
'ccount_users'
=>
array
(
'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
(
...
...
@@ -174,7 +174,7 @@
'users_active'
=>
array
(
'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
(
...
...
@@ -187,19 +187,20 @@
'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'
]);
else
else
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'
]))
$qa_content
[
'form'
][
'fields'
][
$index
][
'type'
]
=
'static'
;
$qa_content
[
'form'
][
'fields'
][
$index
][
'type'
]
=
'static'
;
}
$qa_content
[
'form_2'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
'admin/recalc'
)
.
'"'
,
$qa_content
[
'form_2'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
'admin/recalc'
)
.
'"'
,
'title'
=>
qa_lang_html
(
'admin/database_cleanup'
),
...
...
@@ -208,75 +209,72 @@
'buttons'
=>
array
(
'recount_posts'
=>
array
(
'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\');"'
,
'note'
=>
'<span id="recount_posts_note">'
.
qa_lang_html
(
'admin/recount_posts_note'
)
.
'</span>'
,
'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>'
,
),
'reindex_content'
=>
array
(
'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\');"'
,
'note'
=>
'<span id="reindex_content_note">'
.
qa_lang_html
(
'admin/reindex_content_note'
)
.
'</span>'
,
'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>'
,
),
'recalc_points'
=>
array
(
'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\');"'
,
'note'
=>
'<span id="recalc_points_note">'
.
qa_lang_html
(
'admin/recalc_points_note'
)
.
'</span>'
,
'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>'
,
),
'refill_events'
=>
array
(
'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\');"'
,
'note'
=>
'<span id="refill_events_note">'
.
qa_lang_html
(
'admin/refill_events_note'
)
.
'</span>'
,
'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>'
,
),
'recalc_categories'
=>
array
(
'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\');"'
,
'note'
=>
'<span id="recalc_categories_note">'
.
qa_lang_html
(
'admin/recalc_categories_note'
)
.
'</span>'
,
'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>'
,
),
'delete_hidden'
=>
array
(
'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\');"'
,
'note'
=>
'<span id="delete_hidden_note">'
.
qa_lang_html
(
'admin/delete_hidden_note'
)
.
'</span>'
,
'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>'
,
),
),
'hidden'
=>
array
(
'code'
=>
qa_get_form_security_code
(
'admin/recalc'
),
),
);
);
if
(
!
qa_using_categories
())
if
(
!
qa_using_categories
())
unset
(
$qa_content
[
'form_2'
][
'buttons'
][
'recalc_categories'
]);
if
(
defined
(
'QA_BLOBS_DIRECTORY'
))
{
if
(
qa_db_has_blobs_in_db
())
$qa_content
[
'form_2'
][
'buttons'
][
'blobs_to_disk'
]
=
array
(
if
(
defined
(
'QA_BLOBS_DIRECTORY'
))
{
if
(
qa_db_has_blobs_in_db
())
{
$qa_content
[
'form_2'
][
'buttons'
][
'blobs_to_disk'
]
=
array
(
'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\');"'
,
'note'
=>
'<span id="blobs_to_disk_note">'
.
qa_lang_html
(
'admin/blobs_to_disk_note'
)
.
'</span>'
,
'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>'
,
);
}
if
(
qa_db_has_blobs_on_disk
())
$qa_content
[
'form_2'
][
'buttons'
][
'blobs_to_db'
]
=
array
(
if
(
qa_db_has_blobs_on_disk
())
{
$qa_content
[
'form_2'
][
'buttons'
][
'blobs_to_db'
]
=
array
(
'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\');"'
,
'note'
=>
'<span id="blobs_to_db_note">'
.
qa_lang_html
(
'admin/blobs_to_db_note'
)
.
'</span>'
,
'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>'
,
);
}
}
$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_rel'
][]
=
'qa-content/qa-admin.js?'
.
QA_VERSION
;
$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
;
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
return
$qa_content
;
qa-include/pages/admin/admin-userfields.php
View file @
14d54fd4
...
...
@@ -20,48 +20,49 @@
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: ../'
);
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
// Get current list of user fields and determine the state of this admin page
$fieldid
=
qa_post_text
(
'edit'
);
if
(
!
isset
(
$fieldid
))
$fieldid
=
qa_get
(
'edit'
);
$fieldid
=
qa_post_text
(
'edit'
);
if
(
!
isset
(
$fieldid
))
$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
;
foreach
(
$userfields
as
$userfield
)
if
(
$userfield
[
'fieldid'
]
==
$fieldid
)
$editfield
=
$userfield
;
$editfield
=
null
;
foreach
(
$userfields
as
$userfield
)
{
if
(
$userfield
[
'fieldid'
]
==
$fieldid
)
$editfield
=
$userfield
;
}
// 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
;
// Process saving an old or new user field
$securityexpired
=
false
;
$securityexpired
=
false
;
if
(
qa_clicked
(
'docancel'
))
if
(
qa_clicked
(
'docancel'
))
qa_redirect
(
'admin/users'
);
elseif
(
qa_clicked
(
'dosavefield'
))
{
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
elseif
(
qa_clicked
(
'dosavefield'
))
{
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
if
(
!
qa_check_form_security_code
(
'admin/userfields'
,
qa_post_text
(
'code'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
else
{
if
(
qa_post_text
(
'dodelete'
))
{
...
...
@@ -69,19 +70,19 @@
qa_redirect
(
'admin/users'
);
}
else
{
$inname
=
qa_post_text
(
'name'
);
$intype
=
qa_post_text
(
'type'
);
$inonregister
=
(
int
)
qa_post_text
(
'onregister'
);
$inflags
=
$intype
|
(
$inonregister
?
QA_FIELD_FLAGS_ON_REGISTER
:
0
);
$inposition
=
qa_post_text
(
'position'
);
$inpermit
=
(
int
)
qa_post_text
(
'permit'
);
$inname
=
qa_post_text
(
'name'
);
$intype
=
qa_post_text
(
'type'
);
$inonregister
=
(
int
)
qa_post_text
(
'onregister'
);
$inflags
=
$intype
|
(
$inonregister
?
QA_FIELD_FLAGS_ON_REGISTER
:
0
);
$inposition
=
qa_post_text
(
'position'
);
$inpermit
=
(
int
)
qa_post_text
(
'permit'
);
$errors
=
array
();
$errors
=
array
();
// Verify the name is legitimate
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
);
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
);
// Perform appropriate database action
...
...
@@ -93,25 +94,26 @@
qa_redirect
(
'admin/users'
);
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
)
if
(
$userfield
[
'fieldid'
]
==
$editfield
[
'fieldid'
])
$editfield
=
$userfield
;
if
(
$userfield
[
'fieldid'
]
==
$editfield
[
'fieldid'
])
$editfield
=
$userfield
;
}
}
elseif
(
empty
(
$errors
))
{
// creating a new user field
for
(
$attempt
=
0
;
$attempt
<
1000
;
$attempt
++
)
{
$suffix
=
$attempt
?
(
'-'
.
(
1
+
$attempt
))
:
''
;
$newtag
=
qa_substr
(
implode
(
'-'
,
qa_string_to_words
(
$inname
)),
0
,
QA_DB_MAX_PROFILE_TITLE_LENGTH
-
strlen
(
$suffix
))
.
$suffix
;
$uniquetag
=
true
;
for
(
$attempt
=
0
;
$attempt
<
1000
;
$attempt
++
)
{
$suffix
=
$attempt
?
(
'-'
.
(
1
+
$attempt
))
:
''
;
$newtag
=
qa_substr
(
implode
(
'-'
,
qa_string_to_words
(
$inname
)),
0
,
QA_DB_MAX_PROFILE_TITLE_LENGTH
-
strlen
(
$suffix
))
.
$suffix
;
$uniquetag
=
true
;
foreach
(
$userfields
as
$userfield
)
foreach
(
$userfields
as
$userfield
)
{
if
(
qa_strtolower
(
trim
(
$newtag
))
==
qa_strtolower
(
trim
(
$userfield
[
'title'
])))
$uniquetag
=
false
;
$uniquetag
=
false
;
}
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_redirect
(
'admin/users'
);
}
...
...
@@ -121,52 +123,52 @@
}
}
}
}
}
// 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
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$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
();
$positionoptions
=
array
();
$previous
=
null
;
$passedself
=
false
;
$positionoptions
=
array
();
$previous
=
null
;
$passedself
=
false
;
foreach
(
$userfields
as
$userfield
)
{
foreach
(
$userfields
as
$userfield
)
{
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
$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'
])
$passedself
=
true
;
if
(
$userfield
[
'fieldid'
]
==
@
$editfield
[
'fieldid'
])
$passedself
=
true
;
$previous
=
$userfield
;
}
$previous
=
$userfield
;
}
if
(
isset
(
$editfield
[
'position'
]))
$positionvalue
=
$positionoptions
[
$editfield
[
'position'
]];
else
{
$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
;
}
if
(
isset
(
$editfield
[
'position'
]))
$positionvalue
=
$positionoptions
[
$editfield
[
'position'
]];
else
{
$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
;
}
$typeoptions
=
array
(
$typeoptions
=
array
(
0
=>
qa_lang_html
(
'admin/field_single_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'
),
);
);
$permitoptions
=
qa_admin_permit_options
(
QA_PERMIT_ALL
,
QA_PERMIT_ADMINS
,
false
,
false
);
$permitvalue
=
@
$permitoptions
[
isset
(
$inpermit
)
?
$inpermit
:
$editfield
[
'permit'
]];
$permitoptions
=
qa_admin_permit_options
(
QA_PERMIT_ALL
,
QA_PERMIT_ADMINS
,
false
,
false
);
$permitvalue
=
@
$permitoptions
[
isset
(
$inpermit
)
?
$inpermit
:
$editfield
[
'permit'
]];
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'style'
=>
'tall'
,
...
...
@@ -191,7 +193,7 @@
'label'
=>
qa_lang_html
(
'admin/field_type'
),
'type'
=>
'select'
,
'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
(
...
...
@@ -217,7 +219,7 @@
'tags'
=>
'name="onregister"'
,
'label'
=>
qa_lang_html
(
'admin/show_on_register_form'
),
'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 @@
'edit'
=>
@
$editfield
[
'fieldid'
],
'code'
=>
qa_get_form_security_code
(
'admin/userfields'
),
),
);
);
if
(
isset
(
$editfield
[
'fieldid'
]))
if
(
isset
(
$editfield
[
'fieldid'
]))
{
qa_set_display_rules
(
$qa_content
,
array
(
'type_display'
=>
'!dodelete'
,
'position_display'
=>
'!dodelete'
,
'register_display'
=>
'!dodelete'
,
'permit_display'
=>
'!dodelete'
,
));
else
}
else
{
unset
(
$qa_content
[
'form'
][
'fields'
][
'delete'
]);
}
$qa_content
[
'focusid'
]
=
'name'
;
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
$qa_content
[
'focusid'
]
=
'name'
;
return
$qa_content
;
$qa_content
[
'navigation'
][
'sub'
]
=
qa_admin_sub_navigation
();
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
return
$qa_content
;
qa-include/pages/admin/admin-usertitles.php
View file @
14d54fd4
...
...
@@ -20,105 +20,105 @@
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: ../'
);
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
// Get current list of user titles and determine the state of this admin page
$oldpoints
=
qa_post_text
(
'edit'
);
if
(
!
isset
(
$oldpoints
))
$oldpoints
=
qa_get
(
'edit'
);
$oldpoints
=
qa_post_text
(
'edit'
);
if
(
!
isset
(
$oldpoints
))
$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)
if
(
!
qa_admin_check_privileges
(
$qa_content
))
if
(
!
qa_admin_check_privileges
(
$qa_content
))
return
$qa_content
;
// Process saving an old or new user title
$securityexpired
=
false
;
$securityexpired
=
false
;
if
(
qa_clicked
(
'docancel'
))
if
(
qa_clicked
(
'docancel'
))
qa_redirect
(
'admin/users'
);
elseif
(
qa_clicked
(
'dosavetitle'
))
{
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
elseif
(
qa_clicked
(
'dosavetitle'
))
{
require_once
QA_INCLUDE_DIR
.
'util/string.php'
;
if
(
!
qa_check_form_security_code
(
'admin/usertitles'
,
qa_post_text
(
'code'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
else
{
if
(
qa_post_text
(
'dodelete'
))
{
unset
(
$pointstitle
[
$oldpoints
]);
}
else
{
$intitle
=
qa_post_text
(
'title'
);
$inpoints
=
qa_post_text
(
'points'
);
$intitle
=
qa_post_text
(
'title'
);
$inpoints
=
qa_post_text
(
'points'
);
$errors
=
array
();
$errors
=
array
();
// Verify the title and points are legitimate
if
(
!
strlen
(
$intitle
))
$errors
[
'title'
]
=
qa_lang
(
'main/field_required'
);
$errors
[
'title'
]
=
qa_lang
(
'main/field_required'
);
if
(
!
is_numeric
(
$inpoints
))
$errors
[
'points'
]
=
qa_lang
(
'main/field_required'
);
$errors
[
'points'
]
=
qa_lang
(
'main/field_required'
);
else
{
$inpoints
=
(
int
)
$inpoints
;
$inpoints
=
(
int
)
$inpoints
;
if
(
isset
(
$pointstitle
[
$inpoints
])
&&
((
!
strlen
(
@
$oldpoints
))
||
(
$inpoints
!=
$oldpoints
))
)
$errors
[
'points'
]
=
qa_lang
(
'admin/title_already_used'
);
if
(
isset
(
$pointstitle
[
$inpoints
])
&&
((
!
strlen
(
@
$oldpoints
))
||
(
$inpoints
!=
$oldpoints
))
)
$errors
[
'points'
]
=
qa_lang
(
'admin/title_already_used'
);
}
// Perform appropriate action
if
(
isset
(
$pointstitle
[
$oldpoints
]))
{
// changing existing user title
$newpoints
=
isset
(
$errors
[
'points'
])
?
$oldpoints
:
$inpoints
;
$newtitle
=
isset
(
$errors
[
'title'
])
?
$pointstitle
[
$oldpoints
]
:
$intitle
;
$newpoints
=
isset
(
$errors
[
'points'
])
?
$oldpoints
:
$inpoints
;
$newtitle
=
isset
(
$errors
[
'title'
])
?
$pointstitle
[
$oldpoints
]
:
$intitle
;
unset
(
$pointstitle
[
$oldpoints
]);
$pointstitle
[
$newpoints
]
=
$newtitle
;
$pointstitle
[
$newpoints
]
=
$newtitle
;
}
elseif
(
empty
(
$errors
))
// creating a new user title
$pointstitle
[
$inpoints
]
=
$intitle
;
$pointstitle
[
$inpoints
]
=
$intitle
;
}
// Save the new option value
krsort
(
$pointstitle
,
SORT_NUMERIC
);
$option
=
''
;
$option
=
''
;
foreach
(
$pointstitle
as
$points
=>
$title
)
$option
.=
(
strlen
(
$option
)
?
','
:
''
)
.
$points
.
' '
.
$title
;
$option
.=
(
strlen
(
$option
)
?
','
:
''
)
.
$points
.
' '
.
$title
;
qa_set_option
(
'points_to_titles'
,
$option
);
if
(
empty
(
$errors
))
qa_redirect
(
'admin/users'
);
}
}
}
// 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
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$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
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'style'
=>
'tall'
,
...
...
@@ -163,23 +163,19 @@
'edit'
=>
@
$oldpoints
,
'code'
=>
qa_get_form_security_code
(
'admin/usertitles'
),
),
);
);
if
(
isset
(
$pointstitle
[
$oldpoints
]))
if
(
isset
(
$pointstitle
[
$oldpoints
]))
{
qa_set_display_rules
(
$qa_content
,
array
(
'points_display'
=>
'!dodelete'
,
));
else
}
else
{
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
;
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
return
$qa_content
;
qa-include/pages/admin/admin-widgets.php
View file @
14d54fd4
...
...
@@ -20,52 +20,53 @@
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: ../'
);
exit
;
}
}
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
require_once
QA_INCLUDE_DIR
.
'app/admin.php'
;
require_once
QA_INCLUDE_DIR
.
'db/selects.php'
;
// Get current list of widgets and determine the state of this admin page
$widgetid
=
qa_post_text
(
'edit'
);
if
(
!
strlen
(
$widgetid
))
$widgetid
=
qa_get
(
'edit'
);
$widgetid
=
qa_post_text
(
'edit'
);
if
(
!
strlen
(
$widgetid
))
$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_pages_selectspec
()
);
);
if
(
isset
(
$widgetid
))
{
$editwidget
=
null
;
foreach
(
$widgets
as
$widget
)
if
(
$widget
[
'widgetid'
]
==
$widgetid
)
$editwidget
=
$widget
;
if
(
isset
(
$widgetid
))
{
$editwidget
=
null
;
foreach
(
$widgets
as
$widget
)
{
if
(
$widget
[
'widgetid'
]
==
$widgetid
)
$editwidget
=
$widget
;
}
}
else
{
$editwidget
=
array
(
'title'
=>
qa_post_text
(
'title'
));
}
else
{
$editwidget
=
array
(
'title'
=>
qa_post_text
(
'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)
if
(
!
qa_admin_check_privileges
(
$qa_content
))
if
(
!
qa_admin_check_privileges
(
$qa_content
))
return
$qa_content
;
// Define an array of relevant templates we can use
$templatelangkeys
=
array
(
$templatelangkeys
=
array
(
'question'
=>
'admin/question_pages'
,
'qa'
=>
'main/recent_qs_as_title'
,
...
...
@@ -94,14 +95,15 @@
'ip'
=>
'admin/ip_address_pages'
,
'admin'
=>
'admin/admin_title'
,
);
);
$templateoptions
=
array
();
$templateoptions
=
array
();
if
(
isset
(
$module
)
&&
method_exists
(
$module
,
'allow_template'
))
{
foreach
(
$templatelangkeys
as
$template
=>
$langkey
)
if
(
isset
(
$module
)
&&
method_exists
(
$module
,
'allow_template'
))
{
foreach
(
$templatelangkeys
as
$template
=>
$langkey
)
{
if
(
$module
->
allow_template
(
$template
))
$templateoptions
[
$template
]
=
qa_lang_html
(
$langkey
);
$templateoptions
[
$template
]
=
qa_lang_html
(
$langkey
);
}
if
(
$module
->
allow_template
(
'custom'
))
{
$pagemodules
=
qa_load_modules_with
(
'page'
,
'match_request'
);
...
...
@@ -119,21 +121,21 @@
}
}
}
}
// Process saving an old or new widget
$securityexpired
=
false
;
$securityexpired
=
false
;
if
(
qa_clicked
(
'docancel'
))
if
(
qa_clicked
(
'docancel'
))
qa_redirect
(
'admin/layout'
);
elseif
(
qa_clicked
(
'dosavewidget'
))
{
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
elseif
(
qa_clicked
(
'dosavewidget'
))
{
require_once
QA_INCLUDE_DIR
.
'db/admin.php'
;
if
(
!
qa_check_form_security_code
(
'admin/widgets'
,
qa_post_text
(
'code'
)))
$securityexpired
=
true
;
$securityexpired
=
true
;
else
{
if
(
qa_post_text
(
'dodelete'
))
{
...
...
@@ -142,27 +144,28 @@
}
else
{
if
(
$widgetfound
)
{
$intitle
=
qa_post_text
(
'title'
);
$inposition
=
qa_post_text
(
'position'
);
$intemplates
=
array
();
$intitle
=
qa_post_text
(
'title'
);
$inposition
=
qa_post_text
(
'position'
);
$intemplates
=
array
();
if
(
qa_post_text
(
'template_all'
))
$intemplates
[]
=
'all'
;
$intemplates
[]
=
'all'
;
foreach
(
array_keys
(
$templateoptions
)
as
$template
)
if
(
qa_post_text
(
'template_'
.
$template
))
$intemplates
[]
=
$template
;
foreach
(
array_keys
(
$templateoptions
)
as
$template
)
{
if
(
qa_post_text
(
'template_'
.
$template
))
$intemplates
[]
=
$template
;
}
$intags
=
implode
(
','
,
$intemplates
);
$intags
=
implode
(
','
,
$intemplates
);
// Perform appropriate database action
if
(
isset
(
$editwidget
[
'widgetid'
]))
{
// changing existing widget
$widgetid
=
$editwidget
[
'widgetid'
];
$widgetid
=
$editwidget
[
'widgetid'
];
qa_db_widget_set_fields
(
$widgetid
,
$intags
);
}
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
));
}
...
...
@@ -170,78 +173,81 @@
qa_redirect
(
'admin/layout'
);
}
}
}
}
// 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
[
'error'
]
=
$securityexpired
?
qa_lang_html
(
'admin/form_security_expired'
)
:
qa_admin_page_error
();
$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
();
$positionoptions
=
array
();
$positionoptions
=
array
();
$placeoptionhtml
=
qa_admin_place_options
();
$placeoptionhtml
=
qa_admin_place_options
();
$regioncodes
=
array
(
$regioncodes
=
array
(
'F'
=>
'full'
,
'M'
=>
'main'
,
'S'
=>
'side'
,
);
);
foreach
(
$placeoptionhtml
as
$place
=>
$optionhtml
)
{
$region
=
$regioncodes
[
substr
(
$place
,
0
,
1
)];
foreach
(
$placeoptionhtml
as
$place
=>
$optionhtml
)
{
$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
)
foreach
(
$widgets
as
$widget
)
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
if
(
$widgetallowed
)
{
foreach
(
$widgets
as
$widget
)
{
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
}
}
if
(
$widgetallowed
)
{
$previous
=
null
;
$passedself
=
false
;
$maxposition
=
0
;
$previous
=
null
;
$passedself
=
false
;
$maxposition
=
0
;
foreach
(
$widgets
as
$widget
)
if
(
$widget
[
'place'
]
==
$place
)
{
$positionhtml
=
$optionhtml
;
foreach
(
$widgets
as
$widget
)
{
if
(
$widget
[
'place'
]
==
$place
)
{
$positionhtml
=
$optionhtml
;
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'
])
$passedself
=
true
;
if
(
$widget
[
'widgetid'
]
==
@
$editwidget
[
'widgetid'
])
$passedself
=
true
;
$maxposition
=
max
(
$maxposition
,
$widget
[
'position'
]);
$positionoptions
[
$place
.
$widget
[
'position'
]]
=
$positionhtml
;
$maxposition
=
max
(
$maxposition
,
$widget
[
'position'
]);
$positionoptions
[
$place
.
$widget
[
'position'
]]
=
$positionhtml
;
$previous
=
$widget
;
$previous
=
$widget
;
}
}
if
((
!
isset
(
$editwidget
[
'widgetid'
]))
||
$place
!=
@
$editwidget
[
'place'
])
{
$positionhtml
=
$optionhtml
;
if
(
!
isset
(
$editwidget
[
'widgetid'
])
||
$place
!=
@
$editwidget
[
'place'
])
{
$positionhtml
=
$optionhtml
;
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
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
$qa_content
[
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_path_html
(
qa_request
())
.
'"'
,
'style'
=>
'tall'
,
'fields'
=>
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'
,
'tight'
=>
true
,
),
...
...
@@ -267,7 +273,7 @@
'label'
=>
qa_lang_html
(
'admin/widget_all_pages'
),
'type'
=>
'checkbox'
,
'tags'
=>
'name="template_all" id="template_all"'
,
'value'
=>
is_numeric
(
strpos
(
','
.@
$editwidget
[
'tags'
]
.
','
,
',all,'
)),
'value'
=>
is_numeric
(
strpos
(
','
.
@
$editwidget
[
'tags'
]
.
','
,
',all,'
)),
),
'templates'
=>
array
(
...
...
@@ -295,51 +301,47 @@
'title'
=>
@
$editwidget
[
'title'
],
'code'
=>
qa_get_form_security_code
(
'admin/widgets'
),
),
);
);
foreach
(
$templateoptions
as
$template
=>
$optionhtml
)
$qa_content
[
'form'
][
'fields'
][
'templates'
][
'html'
]
.=
'<input type="checkbox" name="template_'
.
qa_html
(
$template
)
.
'"'
.
(
is_numeric
(
strpos
(
','
.@
$editwidget
[
'tags'
]
.
','
,
','
.
$template
.
','
))
?
' checked'
:
''
)
.
'/> '
.
$optionhtml
.
'<br/>'
;
foreach
(
$templateoptions
as
$template
=>
$optionhtml
)
{
$qa_content
[
'form'
][
'fields'
][
'templates'
][
'html'
]
.=
'<input type="checkbox" name="template_'
.
qa_html
(
$template
)
.
'"'
.
(
is_numeric
(
strpos
(
','
.
@
$editwidget
[
'tags'
]
.
','
,
','
.
$template
.
','
))
?
' checked'
:
''
)
.
'/> '
.
$optionhtml
.
'<br/>'
;
}
if
(
isset
(
$editwidget
[
'widgetid'
]))
if
(
isset
(
$editwidget
[
'widgetid'
]))
{
qa_set_display_rules
(
$qa_content
,
array
(
'templates_display'
=>
'!(dodelete||template_all)'
,
'all_display'
=>
'!dodelete'
,
));
else
{
}
else
{
unset
(
$qa_content
[
'form'
][
'fields'
][
'delete'
]);
qa_set_display_rules
(
$qa_content
,
array
(
'templates_display'
=>
'!template_all'
,
));
}
}
if
(
!
$widgetfound
)
{
if
(
!
$widgetfound
)
{
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'
][
'all'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'templates'
]);
if
(
!
isset
(
$editwidget
[
'widgetid'
]))
unset
(
$qa_content
[
'form'
][
'buttons'
][
'save'
]);
}
elseif
(
!
count
(
$positionoptions
))
{
}
elseif
(
!
count
(
$positionoptions
))
{
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'
][
'all'
]);
unset
(
$qa_content
[
'form'
][
'fields'
][
'templates'
]);
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
;
/*
Omit PHP closing tag to help avoid accidental output
*/
\ No newline at end of file
return
$qa_content
;
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