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
5f069e8f
Commit
5f069e8f
authored
May 13, 2014
by
Scott
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor user-page controllers
parent
6625017e
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
318 additions
and
297 deletions
+318
-297
qa-page-user-activity.php
qa-include/qa-page-user-activity.php
+21
-20
qa-page-user-answers.php
qa-include/qa-page-user-answers.php
+25
-25
qa-page-user-profile.php
qa-include/qa-page-user-profile.php
+211
-193
qa-page-user-questions.php
qa-include/qa-page-user-questions.php
+20
-20
qa-page-user-wall.php
qa-include/qa-page-user-wall.php
+25
-25
qa-page-user.php
qa-include/qa-page-user.php
+16
-14
No files found.
qa-include/qa-page-user-activity.php
View file @
5f069e8f
...
@@ -38,10 +38,10 @@
...
@@ -38,10 +38,10 @@
// Find the recent activity for this user
// Find the recent activity for this user
$loginuserid
=
qa_get_logged_in_userid
();
$loginuserid
=
qa_get_logged_in_userid
();
$identifier
=
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$handle
;
$identifier
=
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$handle
;
list
(
$useraccount
,
$questions
,
$answerqs
,
$commentqs
,
$editqs
)
=
qa_db_select_with_pending
(
list
(
$useraccount
,
$questions
,
$answerqs
,
$commentqs
,
$editqs
)
=
qa_db_select_with_pending
(
QA_FINAL_EXTERNAL_USERS
?
null
:
qa_db_user_account_selectspec
(
$handle
,
false
),
QA_FINAL_EXTERNAL_USERS
?
null
:
qa_db_user_account_selectspec
(
$handle
,
false
),
qa_db_user_recent_qs_selectspec
(
$loginuserid
,
$identifier
,
qa_opt_if_loaded
(
'page_size_activity'
)),
qa_db_user_recent_qs_selectspec
(
$loginuserid
,
$identifier
,
qa_opt_if_loaded
(
'page_size_activity'
)),
qa_db_user_recent_a_qs_selectspec
(
$loginuserid
,
$identifier
),
qa_db_user_recent_a_qs_selectspec
(
$loginuserid
,
$identifier
),
...
@@ -49,30 +49,30 @@
...
@@ -49,30 +49,30 @@
qa_db_user_recent_edit_qs_selectspec
(
$loginuserid
,
$identifier
)
qa_db_user_recent_edit_qs_selectspec
(
$loginuserid
,
$identifier
)
);
);
if
(
(
!
QA_FINAL_EXTERNAL_USERS
)
&&
!
is_array
(
$useraccount
))
// check the user exists
if
(
!
QA_FINAL_EXTERNAL_USERS
&&
!
is_array
(
$useraccount
))
// check the user exists
return
include
QA_INCLUDE_DIR
.
'qa-page-not-found.php'
;
return
include
QA_INCLUDE_DIR
.
'qa-page-not-found.php'
;
// Get information on user references
// Get information on user references
$questions
=
qa_any_sort_and_dedupe
(
array_merge
(
$questions
,
$answerqs
,
$commentqs
,
$editqs
));
$questions
=
qa_any_sort_and_dedupe
(
array_merge
(
$questions
,
$answerqs
,
$commentqs
,
$editqs
));
$questions
=
array_slice
(
$questions
,
0
,
qa_opt
(
'page_size_activity'
));
$questions
=
array_slice
(
$questions
,
0
,
qa_opt
(
'page_size_activity'
));
$usershtml
=
qa_userids_handles_html
(
qa_any_get_userids_handles
(
$questions
),
false
);
$usershtml
=
qa_userids_handles_html
(
qa_any_get_userids_handles
(
$questions
),
false
);
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
(
true
);
$qa_content
=
qa_content_prepare
(
true
);
if
(
count
(
$questions
))
if
(
count
(
$questions
))
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/recent_activity_by_x'
,
$userhtml
);
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/recent_activity_by_x'
,
$userhtml
);
else
else
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/no_posts_by_x'
,
$userhtml
);
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/no_posts_by_x'
,
$userhtml
);
// Recent activity by this user
// Recent activity by this user
$qa_content
[
'q_list'
][
'form'
]
=
array
(
$qa_content
[
'q_list'
][
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'hidden'
=>
array
(
'hidden'
=>
array
(
...
@@ -80,22 +80,23 @@
...
@@ -80,22 +80,23 @@
),
),
);
);
$qa_content
[
'q_list'
][
'qs'
]
=
array
();
$qa_content
[
'q_list'
][
'qs'
]
=
array
();
$htmldefaults
=
qa_post_html_defaults
(
'Q'
);
$htmldefaults
=
qa_post_html_defaults
(
'Q'
);
$htmldefaults
[
'whoview'
]
=
false
;
$htmldefaults
[
'whoview'
]
=
false
;
$htmldefaults
[
'voteview'
]
=
false
;
$htmldefaults
[
'voteview'
]
=
false
;
$htmldefaults
[
'avatarsize'
]
=
0
;
$htmldefaults
[
'avatarsize'
]
=
0
;
foreach
(
$questions
as
$question
)
foreach
(
$questions
as
$question
)
{
$qa_content
[
'q_list'
][
'qs'
][]
=
qa_any_to_q_html_fields
(
$question
,
$loginuserid
,
qa_cookie_get
(),
$qa_content
[
'q_list'
][
'qs'
][]
=
qa_any_to_q_html_fields
(
$question
,
$loginuserid
,
qa_cookie_get
(),
$usershtml
,
null
,
array
(
'voteview'
=>
false
)
+
qa_post_html_options
(
$question
,
$htmldefaults
));
$usershtml
,
null
,
array
(
'voteview'
=>
false
)
+
qa_post_html_options
(
$question
,
$htmldefaults
));
}
// Sub menu for navigation in user pages
// Sub menu for navigation in user pages
$
qa_content
[
'navigation'
][
'sub'
]
=
qa_user_sub_navigation
(
$handle
,
'activity'
,
$
ismyuser
=
isset
(
$loginuserid
)
&&
$loginuserid
==
(
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$useraccount
[
'userid'
]);
isset
(
$loginuserid
)
&&
(
$loginuserid
==
(
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$useraccount
[
'userid'
]))
);
$qa_content
[
'navigation'
][
'sub'
]
=
qa_user_sub_navigation
(
$handle
,
'activity'
,
$ismyuser
);
return
$qa_content
;
return
$qa_content
;
...
...
qa-include/qa-page-user-answers.php
View file @
5f069e8f
...
@@ -35,45 +35,45 @@
...
@@ -35,45 +35,45 @@
// $handle, $userhtml are already set by qa-page-user.php - also $userid if using external user integration
// $handle, $userhtml are already set by qa-page-user.php - also $userid if using external user integration
$start
=
qa_get_start
();
$start
=
qa_get_start
();
// Find the questions for this user
// Find the questions for this user
$loginuserid
=
qa_get_logged_in_userid
();
$loginuserid
=
qa_get_logged_in_userid
();
$identifier
=
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$handle
;
$identifier
=
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$handle
;
list
(
$useraccount
,
$userpoints
,
$questions
)
=
qa_db_select_with_pending
(
list
(
$useraccount
,
$userpoints
,
$questions
)
=
qa_db_select_with_pending
(
QA_FINAL_EXTERNAL_USERS
?
null
:
qa_db_user_account_selectspec
(
$handle
,
false
),
QA_FINAL_EXTERNAL_USERS
?
null
:
qa_db_user_account_selectspec
(
$handle
,
false
),
qa_db_user_points_selectspec
(
$identifier
),
qa_db_user_points_selectspec
(
$identifier
),
qa_db_user_recent_a_qs_selectspec
(
$loginuserid
,
$identifier
,
qa_opt_if_loaded
(
'page_size_activity'
),
$start
)
qa_db_user_recent_a_qs_selectspec
(
$loginuserid
,
$identifier
,
qa_opt_if_loaded
(
'page_size_activity'
),
$start
)
);
);
if
(
(
!
QA_FINAL_EXTERNAL_USERS
)
&&
!
is_array
(
$useraccount
))
// check the user exists
if
(
!
QA_FINAL_EXTERNAL_USERS
&&
!
is_array
(
$useraccount
))
// check the user exists
return
include
QA_INCLUDE_DIR
.
'qa-page-not-found.php'
;
return
include
QA_INCLUDE_DIR
.
'qa-page-not-found.php'
;
// Get information on user questions
// Get information on user questions
$pagesize
=
qa_opt
(
'page_size_activity'
);
$pagesize
=
qa_opt
(
'page_size_activity'
);
$count
=
(
int
)
@
$userpoints
[
'aposts'
];
$count
=
(
int
)
@
$userpoints
[
'aposts'
];
$questions
=
array_slice
(
$questions
,
0
,
$pagesize
);
$questions
=
array_slice
(
$questions
,
0
,
$pagesize
);
$usershtml
=
qa_userids_handles_html
(
$questions
,
false
);
$usershtml
=
qa_userids_handles_html
(
$questions
,
false
);
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
(
true
);
$qa_content
=
qa_content_prepare
(
true
);
if
(
count
(
$questions
))
if
(
count
(
$questions
))
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/answers_by_x'
,
$userhtml
);
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/answers_by_x'
,
$userhtml
);
else
else
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/no_answers_by_x'
,
$userhtml
);
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/no_answers_by_x'
,
$userhtml
);
// Recent questions by this user
// Recent questions by this user
$qa_content
[
'q_list'
][
'form'
]
=
array
(
$qa_content
[
'q_list'
][
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'hidden'
=>
array
(
'hidden'
=>
array
(
...
@@ -81,29 +81,29 @@
...
@@ -81,29 +81,29 @@
),
),
);
);
$qa_content
[
'q_list'
][
'qs'
]
=
array
();
$qa_content
[
'q_list'
][
'qs'
]
=
array
();
$htmldefaults
=
qa_post_html_defaults
(
'Q'
);
$htmldefaults
=
qa_post_html_defaults
(
'Q'
);
$htmldefaults
[
'whoview'
]
=
false
;
$htmldefaults
[
'whoview'
]
=
false
;
$htmldefaults
[
'avatarsize'
]
=
0
;
$htmldefaults
[
'avatarsize'
]
=
0
;
$htmldefaults
[
'ovoteview'
]
=
true
;
$htmldefaults
[
'ovoteview'
]
=
true
;
$htmldefaults
[
'answersview'
]
=
false
;
$htmldefaults
[
'answersview'
]
=
false
;
foreach
(
$questions
as
$question
)
{
foreach
(
$questions
as
$question
)
{
$options
=
qa_post_html_options
(
$question
,
$htmldefaults
);
$options
=
qa_post_html_options
(
$question
,
$htmldefaults
);
$options
[
'voteview'
]
=
qa_get_vote_view
(
'A'
,
false
,
false
);
$options
[
'voteview'
]
=
qa_get_vote_view
(
'A'
,
false
,
false
);
$qa_content
[
'q_list'
][
'qs'
][]
=
qa_other_to_q_html_fields
(
$question
,
$loginuserid
,
qa_cookie_get
(),
$qa_content
[
'q_list'
][
'qs'
][]
=
qa_other_to_q_html_fields
(
$question
,
$loginuserid
,
qa_cookie_get
(),
$usershtml
,
null
,
$options
);
$usershtml
,
null
,
$options
);
}
}
$qa_content
[
'page_links'
]
=
qa_html_page_links
(
qa_request
(),
$start
,
$pagesize
,
$count
,
qa_opt
(
'pages_prev_next'
));
$qa_content
[
'page_links'
]
=
qa_html_page_links
(
qa_request
(),
$start
,
$pagesize
,
$count
,
qa_opt
(
'pages_prev_next'
));
// Sub menu for navigation in user pages
// Sub menu for navigation in user pages
$
qa_content
[
'navigation'
][
'sub'
]
=
qa_user_sub_navigation
(
$handle
,
'answers'
,
$
ismyuser
=
isset
(
$loginuserid
)
&&
$loginuserid
==
(
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$useraccount
[
'userid'
]);
isset
(
$loginuserid
)
&&
(
$loginuserid
==
(
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$useraccount
[
'userid'
]))
);
$qa_content
[
'navigation'
][
'sub'
]
=
qa_user_sub_navigation
(
$handle
,
'answers'
,
$ismyuser
);
return
$qa_content
;
return
$qa_content
;
...
...
qa-include/qa-page-user-profile.php
View file @
5f069e8f
...
@@ -46,10 +46,10 @@
...
@@ -46,10 +46,10 @@
// Find the user profile and questions and answers for this handle
// Find the user profile and questions and answers for this handle
$loginuserid
=
qa_get_logged_in_userid
();
$loginuserid
=
qa_get_logged_in_userid
();
$identifier
=
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$handle
;
$identifier
=
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$handle
;
list
(
$useraccount
,
$userprofile
,
$userfields
,
$usermessages
,
$userpoints
,
$userlevels
,
$navcategories
,
$userrank
)
=
list
(
$useraccount
,
$userprofile
,
$userfields
,
$usermessages
,
$userpoints
,
$userlevels
,
$navcategories
,
$userrank
)
=
qa_db_select_with_pending
(
qa_db_select_with_pending
(
QA_FINAL_EXTERNAL_USERS
?
null
:
qa_db_user_account_selectspec
(
$handle
,
false
),
QA_FINAL_EXTERNAL_USERS
?
null
:
qa_db_user_account_selectspec
(
$handle
,
false
),
QA_FINAL_EXTERNAL_USERS
?
null
:
qa_db_user_profile_selectspec
(
$handle
,
false
),
QA_FINAL_EXTERNAL_USERS
?
null
:
qa_db_user_profile_selectspec
(
$handle
,
false
),
...
@@ -61,17 +61,19 @@
...
@@ -61,17 +61,19 @@
qa_db_user_rank_selectspec
(
$identifier
)
qa_db_user_rank_selectspec
(
$identifier
)
);
);
if
(
!
QA_FINAL_EXTERNAL_USERS
)
if
(
!
QA_FINAL_EXTERNAL_USERS
)
{
foreach
(
$userfields
as
$index
=>
$userfield
)
foreach
(
$userfields
as
$index
=>
$userfield
)
{
if
(
isset
(
$userfield
[
'permit'
])
&&
qa_permit_value_error
(
$userfield
[
'permit'
],
$loginuserid
,
qa_get_logged_in_level
(),
qa_get_logged_in_flags
())
)
if
(
isset
(
$userfield
[
'permit'
])
&&
qa_permit_value_error
(
$userfield
[
'permit'
],
$loginuserid
,
qa_get_logged_in_level
(),
qa_get_logged_in_flags
())
)
unset
(
$userfields
[
$index
]);
// don't pay attention to user fields we're not allowed to view
unset
(
$userfields
[
$index
]);
// don't pay attention to user fields we're not allowed to view
}
}
// Check the user exists and work out what can and can't be set (if not using single sign-on)
// Check the user exists and work out what can and can't be set (if not using single sign-on)
$errors
=
array
();
$errors
=
array
();
$loginlevel
=
qa_get_logged_in_level
();
$loginlevel
=
qa_get_logged_in_level
();
if
(
!
QA_FINAL_EXTERNAL_USERS
)
{
// if we're using integrated user management, we can know and show more
if
(
!
QA_FINAL_EXTERNAL_USERS
)
{
// if we're using integrated user management, we can know and show more
require_once
QA_INCLUDE_DIR
.
'qa-app-messages.php'
;
require_once
QA_INCLUDE_DIR
.
'qa-app-messages.php'
;
...
@@ -79,65 +81,69 @@
...
@@ -79,65 +81,69 @@
if
((
!
is_array
(
$userpoints
))
&&
!
is_array
(
$useraccount
))
if
((
!
is_array
(
$userpoints
))
&&
!
is_array
(
$useraccount
))
return
include
QA_INCLUDE_DIR
.
'qa-page-not-found.php'
;
return
include
QA_INCLUDE_DIR
.
'qa-page-not-found.php'
;
$userid
=
$useraccount
[
'userid'
];
$userid
=
$useraccount
[
'userid'
];
$fieldseditable
=
false
;
$fieldseditable
=
false
;
$maxlevelassign
=
null
;
$maxlevelassign
=
null
;
$maxuserlevel
=
$useraccount
[
'level'
];
$maxuserlevel
=
$useraccount
[
'level'
];
foreach
(
$userlevels
as
$userlevel
)
foreach
(
$userlevels
as
$userlevel
)
$maxuserlevel
=
max
(
$maxuserlevel
,
$userlevel
[
'level'
]);
$maxuserlevel
=
max
(
$maxuserlevel
,
$userlevel
[
'level'
]);
if
(
if
(
isset
(
$loginuserid
)
&&
isset
(
$loginuserid
)
&&
(
$loginuserid
!=
$userid
)
&&
(
$loginuserid
!=
$userid
)
&&
((
$loginlevel
>=
QA_USER_LEVEL_SUPER
)
||
(
$loginlevel
>
$maxuserlevel
))
&&
((
$loginlevel
>=
QA_USER_LEVEL_SUPER
)
||
(
$loginlevel
>
$maxuserlevel
))
&&
(
!
qa_user_permit_error
())
(
!
qa_user_permit_error
())
)
{
// can't change self - or someone on your level (or higher, obviously) unless you're a super admin
)
{
// can't change self - or someone on your level (or higher, obviously) unless you're a super admin
if
(
$loginlevel
>=
QA_USER_LEVEL_SUPER
)
if
(
$loginlevel
>=
QA_USER_LEVEL_SUPER
)
$maxlevelassign
=
QA_USER_LEVEL_SUPER
;
$maxlevelassign
=
QA_USER_LEVEL_SUPER
;
elseif
(
$loginlevel
>=
QA_USER_LEVEL_ADMIN
)
elseif
(
$loginlevel
>=
QA_USER_LEVEL_ADMIN
)
$maxlevelassign
=
QA_USER_LEVEL_MODERATOR
;
$maxlevelassign
=
QA_USER_LEVEL_MODERATOR
;
elseif
(
$loginlevel
>=
QA_USER_LEVEL_MODERATOR
)
elseif
(
$loginlevel
>=
QA_USER_LEVEL_MODERATOR
)
$maxlevelassign
=
QA_USER_LEVEL_EXPERT
;
$maxlevelassign
=
QA_USER_LEVEL_EXPERT
;
if
(
$loginlevel
>=
QA_USER_LEVEL_ADMIN
)
if
(
$loginlevel
>=
QA_USER_LEVEL_ADMIN
)
$fieldseditable
=
true
;
$fieldseditable
=
true
;
if
(
isset
(
$maxlevelassign
)
&&
(
$useraccount
[
'flags'
]
&
QA_USER_FLAGS_USER_BLOCKED
))
if
(
isset
(
$maxlevelassign
)
&&
(
$useraccount
[
'flags'
]
&
QA_USER_FLAGS_USER_BLOCKED
))
$maxlevelassign
=
min
(
$maxlevelassign
,
QA_USER_LEVEL_EDITOR
);
// if blocked, can't promote too high
$maxlevelassign
=
min
(
$maxlevelassign
,
QA_USER_LEVEL_EDITOR
);
// if blocked, can't promote too high
}
}
$approvebutton
=
isset
(
$maxlevelassign
)
&&
(
$useraccount
[
'level'
]
<
QA_USER_LEVEL_APPROVED
)
&&
(
$maxlevelassign
>=
QA_USER_LEVEL_APPROVED
)
&&
(
!
(
$useraccount
[
'flags'
]
&
QA_USER_FLAGS_USER_BLOCKED
))
&&
qa_opt
(
'moderate_users'
);
$approvebutton
=
isset
(
$maxlevelassign
)
$usereditbutton
=
$fieldseditable
||
isset
(
$maxlevelassign
);
&&
$useraccount
[
'level'
]
<
QA_USER_LEVEL_APPROVED
$userediting
=
$usereditbutton
&&
(
qa_get_state
()
==
'edit'
);
&&
$maxlevelassign
>=
QA_USER_LEVEL_APPROVED
&&
!
(
$useraccount
[
'flags'
]
&
QA_USER_FLAGS_USER_BLOCKED
)
&&
qa_opt
(
'moderate_users'
);
$usereditbutton
=
$fieldseditable
||
isset
(
$maxlevelassign
);
$userediting
=
$usereditbutton
&&
(
qa_get_state
()
==
'edit'
);
$wallposterrorhtml
=
qa_wall_error_html
(
$loginuserid
,
$useraccount
[
'userid'
],
$useraccount
[
'flags'
]);
$wallposterrorhtml
=
qa_wall_error_html
(
$loginuserid
,
$useraccount
[
'userid'
],
$useraccount
[
'flags'
]);
// This code is similar but not identical to that in to qq-page-user-wall.php
// This code is similar but not identical to that in to qq-page-user-wall.php
$usermessages
=
array_slice
(
$usermessages
,
0
,
qa_opt
(
'page_size_wall'
));
$usermessages
=
array_slice
(
$usermessages
,
0
,
qa_opt
(
'page_size_wall'
));
$usermessages
=
qa_wall_posts_add_rules
(
$usermessages
,
0
);
$usermessages
=
qa_wall_posts_add_rules
(
$usermessages
,
0
);
foreach
(
$usermessages
as
$message
)
foreach
(
$usermessages
as
$message
)
{
if
(
$message
[
'deleteable'
]
&&
qa_clicked
(
'm'
.
$message
[
'messageid'
]
.
'_dodelete'
))
{
if
(
$message
[
'deleteable'
]
&&
qa_clicked
(
'm'
.
$message
[
'messageid'
]
.
'_dodelete'
))
{
if
(
!
qa_check_form_security_code
(
'wall-'
.
$useraccount
[
'handle'
],
qa_post_text
(
'code'
)))
if
(
!
qa_check_form_security_code
(
'wall-'
.
$useraccount
[
'handle'
],
qa_post_text
(
'code'
)))
$errors
[
'page'
]
=
qa_lang_html
(
'misc/form_security_again'
);
$errors
[
'page'
]
=
qa_lang_html
(
'misc/form_security_again'
);
else
{
else
{
qa_wall_delete_post
(
$loginuserid
,
qa_get_logged_in_handle
(),
qa_cookie_get
(),
$message
);
qa_wall_delete_post
(
$loginuserid
,
qa_get_logged_in_handle
(),
qa_cookie_get
(),
$message
);
qa_redirect
(
qa_request
(),
null
,
null
,
null
,
'wall'
);
qa_redirect
(
qa_request
(),
null
,
null
,
null
,
'wall'
);
}
}
}
}
}
}
}
// Process edit or save button for user, and other actions
// Process edit or save button for user, and other actions
if
(
!
QA_FINAL_EXTERNAL_USERS
)
{
if
(
!
QA_FINAL_EXTERNAL_USERS
)
{
$reloaduser
=
false
;
$reloaduser
=
false
;
if
(
$usereditbutton
)
{
if
(
$usereditbutton
)
{
if
(
qa_clicked
(
'docancel'
))
if
(
qa_clicked
(
'docancel'
))
...
@@ -150,17 +156,17 @@
...
@@ -150,17 +156,17 @@
require_once
QA_INCLUDE_DIR
.
'qa-app-users-edit.php'
;
require_once
QA_INCLUDE_DIR
.
'qa-app-users-edit.php'
;
require_once
QA_INCLUDE_DIR
.
'qa-db-users.php'
;
require_once
QA_INCLUDE_DIR
.
'qa-db-users.php'
;
$inemail
=
qa_post_text
(
'email'
);
$inemail
=
qa_post_text
(
'email'
);
$inprofile
=
array
();
$inprofile
=
array
();
foreach
(
$userfields
as
$userfield
)
foreach
(
$userfields
as
$userfield
)
$inprofile
[
$userfield
[
'fieldid'
]]
=
qa_post_text
(
'field_'
.
$userfield
[
'fieldid'
]);
$inprofile
[
$userfield
[
'fieldid'
]]
=
qa_post_text
(
'field_'
.
$userfield
[
'fieldid'
]);
if
(
!
qa_check_form_security_code
(
'user-edit-'
.
$handle
,
qa_post_text
(
'code'
)))
{
if
(
!
qa_check_form_security_code
(
'user-edit-'
.
$handle
,
qa_post_text
(
'code'
)))
{
$errors
[
'page'
]
=
qa_lang_html
(
'misc/form_security_again'
);
$errors
[
'page'
]
=
qa_lang_html
(
'misc/form_security_again'
);
$userediting
=
true
;
$userediting
=
true
;
}
}
else
{
else
{
if
(
qa_post_text
(
'removeavatar'
))
{
if
(
qa_post_text
(
'removeavatar'
))
{
qa_db_user_set_flag
(
$userid
,
QA_USER_FLAGS_SHOW_AVATAR
,
false
);
qa_db_user_set_flag
(
$userid
,
QA_USER_FLAGS_SHOW_AVATAR
,
false
);
qa_db_user_set_flag
(
$userid
,
QA_USER_FLAGS_SHOW_GRAVATAR
,
false
);
qa_db_user_set_flag
(
$userid
,
QA_USER_FLAGS_SHOW_GRAVATAR
,
false
);
...
@@ -176,8 +182,8 @@
...
@@ -176,8 +182,8 @@
}
}
if
(
$fieldseditable
)
{
if
(
$fieldseditable
)
{
$filterhandle
=
$handle
;
// we're not filtering the handle...
$filterhandle
=
$handle
;
// we're not filtering the handle...
$errors
=
qa_handle_email_filter
(
$filterhandle
,
$inemail
,
$useraccount
);
$errors
=
qa_handle_email_filter
(
$filterhandle
,
$inemail
,
$useraccount
);
unset
(
$errors
[
'handle'
]);
// ...and we don't care about any errors in it
unset
(
$errors
[
'handle'
]);
// ...and we don't care about any errors in it
if
(
!
isset
(
$errors
[
'email'
]))
if
(
!
isset
(
$errors
[
'email'
]))
...
@@ -187,7 +193,7 @@
...
@@ -187,7 +193,7 @@
}
}
if
(
count
(
$inprofile
))
{
if
(
count
(
$inprofile
))
{
$filtermodules
=
qa_load_modules_with
(
'filter'
,
'filter_profile'
);
$filtermodules
=
qa_load_modules_with
(
'filter'
,
'filter_profile'
);
foreach
(
$filtermodules
as
$filtermodule
)
foreach
(
$filtermodules
as
$filtermodule
)
$filtermodule
->
filter_profile
(
$inprofile
,
$errors
,
$useraccount
,
$userprofile
);
$filtermodule
->
filter_profile
(
$inprofile
,
$errors
,
$useraccount
,
$userprofile
);
}
}
...
@@ -197,7 +203,7 @@
...
@@ -197,7 +203,7 @@
qa_db_user_profile_set
(
$userid
,
$userfield
[
'title'
],
$inprofile
[
$userfield
[
'fieldid'
]]);
qa_db_user_profile_set
(
$userid
,
$userfield
[
'title'
],
$inprofile
[
$userfield
[
'fieldid'
]]);
if
(
count
(
$errors
))
if
(
count
(
$errors
))
$userediting
=
true
;
$userediting
=
true
;
qa_report_event
(
'u_edit'
,
$loginuserid
,
qa_get_logged_in_handle
(),
qa_cookie_get
(),
array
(
qa_report_event
(
'u_edit'
,
$loginuserid
,
qa_get_logged_in_handle
(),
qa_cookie_get
(),
array
(
'userid'
=>
$userid
,
'userid'
=>
$userid
,
...
@@ -206,22 +212,22 @@
...
@@ -206,22 +212,22 @@
}
}
if
(
isset
(
$maxlevelassign
))
{
if
(
isset
(
$maxlevelassign
))
{
$inlevel
=
min
(
$maxlevelassign
,
(
int
)
qa_post_text
(
'level'
));
// constrain based on maximum permitted to prevent simple browser-based attack
$inlevel
=
min
(
$maxlevelassign
,
(
int
)
qa_post_text
(
'level'
));
// constrain based on maximum permitted to prevent simple browser-based attack
if
(
$inlevel
!=
$useraccount
[
'level'
])
if
(
$inlevel
!=
$useraccount
[
'level'
])
qa_set_user_level
(
$userid
,
$useraccount
[
'handle'
],
$inlevel
,
$useraccount
[
'level'
]);
qa_set_user_level
(
$userid
,
$useraccount
[
'handle'
],
$inlevel
,
$useraccount
[
'level'
]);
if
(
qa_using_categories
())
{
if
(
qa_using_categories
())
{
$inuserlevels
=
array
();
$inuserlevels
=
array
();
for
(
$index
=
1
;
$index
<=
999
;
$index
++
)
{
for
(
$index
=
1
;
$index
<=
999
;
$index
++
)
{
$inlevel
=
qa_post_text
(
'uc_'
.
$index
.
'_level'
);
$inlevel
=
qa_post_text
(
'uc_'
.
$index
.
'_level'
);
if
(
!
isset
(
$inlevel
))
if
(
!
isset
(
$inlevel
))
break
;
break
;
$categoryid
=
qa_get_category_field_value
(
'uc_'
.
$index
.
'_cat'
);
$categoryid
=
qa_get_category_field_value
(
'uc_'
.
$index
.
'_cat'
);
if
(
strlen
(
$categoryid
)
&&
strlen
(
$inlevel
))
if
(
strlen
(
$categoryid
)
&&
strlen
(
$inlevel
))
$inuserlevels
[]
=
array
(
$inuserlevels
[]
=
array
(
'entitytype'
=>
QA_ENTITY_CATEGORY
,
'entitytype'
=>
QA_ENTITY_CATEGORY
,
'entityid'
=>
$categoryid
,
'entityid'
=>
$categoryid
,
'level'
=>
min
(
$maxlevelassign
,
(
int
)
$inlevel
),
'level'
=>
min
(
$maxlevelassign
,
(
int
)
$inlevel
),
...
@@ -235,7 +241,7 @@
...
@@ -235,7 +241,7 @@
if
(
empty
(
$errors
))
if
(
empty
(
$errors
))
qa_redirect
(
qa_request
());
qa_redirect
(
qa_request
());
list
(
$useraccount
,
$userprofile
,
$userlevels
)
=
qa_db_select_with_pending
(
list
(
$useraccount
,
$userprofile
,
$userlevels
)
=
qa_db_select_with_pending
(
qa_db_user_account_selectspec
(
$userid
,
true
),
qa_db_user_account_selectspec
(
$userid
,
true
),
qa_db_user_profile_selectspec
(
$userid
,
true
),
qa_db_user_profile_selectspec
(
$userid
,
true
),
qa_db_user_levels_selectspec
(
$userid
,
true
,
true
)
qa_db_user_levels_selectspec
(
$userid
,
true
,
true
)
...
@@ -246,7 +252,7 @@
...
@@ -246,7 +252,7 @@
if
(
qa_clicked
(
'doapprove'
)
||
qa_clicked
(
'doblock'
)
||
qa_clicked
(
'dounblock'
)
||
qa_clicked
(
'dohideall'
)
||
qa_clicked
(
'dodelete'
))
{
if
(
qa_clicked
(
'doapprove'
)
||
qa_clicked
(
'doblock'
)
||
qa_clicked
(
'dounblock'
)
||
qa_clicked
(
'dohideall'
)
||
qa_clicked
(
'dodelete'
))
{
if
(
!
qa_check_form_security_code
(
'user-'
.
$handle
,
qa_post_text
(
'code'
)))
if
(
!
qa_check_form_security_code
(
'user-'
.
$handle
,
qa_post_text
(
'code'
)))
$errors
[
'page'
]
=
qa_lang_html
(
'misc/form_security_again'
);
$errors
[
'page'
]
=
qa_lang_html
(
'misc/form_security_again'
);
else
{
else
{
if
(
$approvebutton
&&
qa_clicked
(
'doapprove'
))
{
if
(
$approvebutton
&&
qa_clicked
(
'doapprove'
))
{
...
@@ -255,7 +261,7 @@
...
@@ -255,7 +261,7 @@
qa_redirect
(
qa_request
());
qa_redirect
(
qa_request
());
}
}
if
(
isset
(
$maxlevelassign
)
&&
(
$maxuserlevel
<
QA_USER_LEVEL_MODERATOR
))
{
if
(
isset
(
$maxlevelassign
)
&&
(
$maxuserlevel
<
QA_USER_LEVEL_MODERATOR
))
{
if
(
qa_clicked
(
'doblock'
))
{
if
(
qa_clicked
(
'doblock'
))
{
require_once
QA_INCLUDE_DIR
.
'qa-app-users-edit.php'
;
require_once
QA_INCLUDE_DIR
.
'qa-app-users-edit.php'
;
...
@@ -274,7 +280,7 @@
...
@@ -274,7 +280,7 @@
require_once
QA_INCLUDE_DIR
.
'qa-db-admin.php'
;
require_once
QA_INCLUDE_DIR
.
'qa-db-admin.php'
;
require_once
QA_INCLUDE_DIR
.
'qa-app-posts.php'
;
require_once
QA_INCLUDE_DIR
.
'qa-app-posts.php'
;
$postids
=
qa_db_get_user_visible_postids
(
$userid
);
$postids
=
qa_db_get_user_visible_postids
(
$userid
);
foreach
(
$postids
as
$postid
)
foreach
(
$postids
as
$postid
)
qa_post_set_hidden
(
$postid
,
true
,
$loginuserid
);
qa_post_set_hidden
(
$postid
,
true
,
$loginuserid
);
...
@@ -282,7 +288,7 @@
...
@@ -282,7 +288,7 @@
qa_redirect
(
qa_request
());
qa_redirect
(
qa_request
());
}
}
if
(
qa_clicked
(
'dodelete'
)
&&
(
$loginlevel
>=
QA_USER_LEVEL_ADMIN
))
{
if
(
qa_clicked
(
'dodelete'
)
&&
(
$loginlevel
>=
QA_USER_LEVEL_ADMIN
))
{
require_once
QA_INCLUDE_DIR
.
'qa-app-users-edit.php'
;
require_once
QA_INCLUDE_DIR
.
'qa-app-users-edit.php'
;
qa_delete_user
(
$userid
);
qa_delete_user
(
$userid
);
...
@@ -300,13 +306,13 @@
...
@@ -300,13 +306,13 @@
if
(
qa_clicked
(
'dowallpost'
))
{
if
(
qa_clicked
(
'dowallpost'
))
{
$inmessage
=
qa_post_text
(
'message'
);
$inmessage
=
qa_post_text
(
'message'
);
if
(
!
strlen
(
$inmessage
))
if
(
!
strlen
(
$inmessage
))
$errors
[
'message'
]
=
qa_lang
(
'profile/post_wall_empty'
);
$errors
[
'message'
]
=
qa_lang
(
'profile/post_wall_empty'
);
elseif
(
!
qa_check_form_security_code
(
'wall-'
.
$useraccount
[
'handle'
],
qa_post_text
(
'code'
)))
elseif
(
!
qa_check_form_security_code
(
'wall-'
.
$useraccount
[
'handle'
],
qa_post_text
(
'code'
)))
$errors
[
'message'
]
=
qa_lang_html
(
'misc/form_security_again'
);
$errors
[
'message'
]
=
qa_lang_html
(
'misc/form_security_again'
);
elseif
(
!
$wallposterrorhtml
)
{
elseif
(
!
$wallposterrorhtml
)
{
qa_wall_add_post
(
$loginuserid
,
qa_get_logged_in_handle
(),
qa_cookie_get
(),
$userid
,
$useraccount
[
'handle'
],
$inmessage
,
''
);
qa_wall_add_post
(
$loginuserid
,
qa_get_logged_in_handle
(),
qa_cookie_get
(),
$userid
,
$useraccount
[
'handle'
],
$inmessage
,
''
);
...
@@ -318,13 +324,13 @@
...
@@ -318,13 +324,13 @@
// Process bonus setting button
// Process bonus setting button
if
(
(
$loginlevel
>=
QA_USER_LEVEL_ADMIN
)
&&
qa_clicked
(
'dosetbonus'
)
)
{
if
(
(
$loginlevel
>=
QA_USER_LEVEL_ADMIN
)
&&
qa_clicked
(
'dosetbonus'
)
)
{
require_once
QA_INCLUDE_DIR
.
'qa-db-points.php'
;
require_once
QA_INCLUDE_DIR
.
'qa-db-points.php'
;
$inbonus
=
(
int
)
qa_post_text
(
'bonus'
);
$inbonus
=
(
int
)
qa_post_text
(
'bonus'
);
if
(
!
qa_check_form_security_code
(
'user-activity-'
.
$handle
,
qa_post_text
(
'code'
)))
if
(
!
qa_check_form_security_code
(
'user-activity-'
.
$handle
,
qa_post_text
(
'code'
)))
$errors
[
'page'
]
=
qa_lang_html
(
'misc/form_security_again'
);
$errors
[
'page'
]
=
qa_lang_html
(
'misc/form_security_again'
);
else
{
else
{
qa_db_points_set_bonus
(
$userid
,
$inbonus
);
qa_db_points_set_bonus
(
$userid
,
$inbonus
);
...
@@ -336,20 +342,20 @@
...
@@ -336,20 +342,20 @@
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/user_x'
,
$userhtml
);
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/user_x'
,
$userhtml
);
$qa_content
[
'error'
]
=
@
$errors
[
'page'
];
$qa_content
[
'error'
]
=
@
$errors
[
'page'
];
if
(
isset
(
$loginuserid
)
&&
!
QA_FINAL_EXTERNAL_USERS
)
{
if
(
isset
(
$loginuserid
)
&&
!
QA_FINAL_EXTERNAL_USERS
)
{
$favoritemap
=
qa_get_favorite_non_qs_map
();
$favoritemap
=
qa_get_favorite_non_qs_map
();
$favorite
=
@
$favoritemap
[
'user'
][
$useraccount
[
'userid'
]];
$favorite
=
@
$favoritemap
[
'user'
][
$useraccount
[
'userid'
]];
$qa_content
[
'favorite'
]
=
qa_favorite_form
(
QA_ENTITY_USER
,
$useraccount
[
'userid'
],
$favorite
,
$qa_content
[
'favorite'
]
=
qa_favorite_form
(
QA_ENTITY_USER
,
$useraccount
[
'userid'
],
$favorite
,
qa_lang_sub
(
$favorite
?
'main/remove_x_favorites'
:
'users/add_user_x_favorites'
,
$handle
));
qa_lang_sub
(
$favorite
?
'main/remove_x_favorites'
:
'users/add_user_x_favorites'
,
$handle
));
}
}
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-user.js?'
.
QA_VERSION
;
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-user.js?'
.
QA_VERSION
;
// General information about the user, only available if we're using internal user management
// General information about the user, only available if we're using internal user management
...
@@ -358,7 +364,7 @@
...
@@ -358,7 +364,7 @@
$membertime
=
qa_time_to_string
(
qa_opt
(
'db_time'
)
-
$useraccount
[
'created'
]);
$membertime
=
qa_time_to_string
(
qa_opt
(
'db_time'
)
-
$useraccount
[
'created'
]);
$joindate
=
qa_when_to_html
(
$useraccount
[
'created'
],
0
);
$joindate
=
qa_when_to_html
(
$useraccount
[
'created'
],
0
);
$qa_content
[
'form_profile'
]
=
array
(
$qa_content
[
'form_profile'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'style'
=>
'wide'
,
'style'
=>
'wide'
,
...
@@ -399,8 +405,8 @@
...
@@ -399,8 +405,8 @@
// Private message link
// Private message link
if
(
qa_opt
(
'allow_private_messages'
)
&&
isset
(
$loginuserid
)
&&
(
$loginuserid
!=
$userid
)
&&
!
(
$useraccount
[
'flags'
]
&
QA_USER_FLAGS_NO_MESSAGES
)
&&
!
$userediting
)
if
(
qa_opt
(
'allow_private_messages'
)
&&
isset
(
$loginuserid
)
&&
(
$loginuserid
!=
$userid
)
&&
!
(
$useraccount
[
'flags'
]
&
QA_USER_FLAGS_NO_MESSAGES
)
&&
!
$userediting
)
$qa_content
[
'form_profile'
][
'fields'
][
'level'
][
'value'
]
.=
strtr
(
qa_lang_html
(
'profile/send_private_message'
),
array
(
$qa_content
[
'form_profile'
][
'fields'
][
'level'
][
'value'
]
.=
strtr
(
qa_lang_html
(
'profile/send_private_message'
),
array
(
'^1'
=>
'<a href="'
.
qa_path_html
(
'message/'
.
$handle
)
.
'">'
,
'^1'
=>
'<a href="'
.
qa_path_html
(
'message/'
.
$handle
)
.
'">'
,
'^2'
=>
'</a>'
,
'^2'
=>
'</a>'
,
));
));
...
@@ -411,25 +417,25 @@
...
@@ -411,25 +417,25 @@
if
(
$userediting
)
{
if
(
$userediting
)
{
if
(
isset
(
$maxlevelassign
))
{
if
(
isset
(
$maxlevelassign
))
{
$qa_content
[
'form_profile'
][
'fields'
][
'level'
][
'type'
]
=
'select'
;
$qa_content
[
'form_profile'
][
'fields'
][
'level'
][
'type'
]
=
'select'
;
$showlevels
=
array
(
QA_USER_LEVEL_BASIC
);
$showlevels
=
array
(
QA_USER_LEVEL_BASIC
);
if
(
qa_opt
(
'moderate_users'
))
if
(
qa_opt
(
'moderate_users'
))
$showlevels
[]
=
QA_USER_LEVEL_APPROVED
;
$showlevels
[]
=
QA_USER_LEVEL_APPROVED
;
array_push
(
$showlevels
,
QA_USER_LEVEL_EXPERT
,
QA_USER_LEVEL_EDITOR
,
QA_USER_LEVEL_MODERATOR
,
QA_USER_LEVEL_ADMIN
,
QA_USER_LEVEL_SUPER
);
array_push
(
$showlevels
,
QA_USER_LEVEL_EXPERT
,
QA_USER_LEVEL_EDITOR
,
QA_USER_LEVEL_MODERATOR
,
QA_USER_LEVEL_ADMIN
,
QA_USER_LEVEL_SUPER
);
$leveloptions
=
array
();
$leveloptions
=
array
();
$catleveloptions
=
array
(
''
=>
qa_lang_html
(
'users/category_level_none'
));
$catleveloptions
=
array
(
''
=>
qa_lang_html
(
'users/category_level_none'
));
foreach
(
$showlevels
as
$showlevel
)
foreach
(
$showlevels
as
$showlevel
)
if
(
$showlevel
<=
$maxlevelassign
)
{
if
(
$showlevel
<=
$maxlevelassign
)
{
$leveloptions
[
$showlevel
]
=
qa_html
(
qa_user_level_string
(
$showlevel
));
$leveloptions
[
$showlevel
]
=
qa_html
(
qa_user_level_string
(
$showlevel
));
if
(
$showlevel
>
QA_USER_LEVEL_BASIC
)
if
(
$showlevel
>
QA_USER_LEVEL_BASIC
)
$catleveloptions
[
$showlevel
]
=
$leveloptions
[
$showlevel
];
$catleveloptions
[
$showlevel
]
=
$leveloptions
[
$showlevel
];
}
}
$qa_content
[
'form_profile'
][
'fields'
][
'level'
][
'options'
]
=
$leveloptions
;
$qa_content
[
'form_profile'
][
'fields'
][
'level'
][
'options'
]
=
$leveloptions
;
// Category-specific levels
// Category-specific levels
...
@@ -438,23 +444,23 @@
...
@@ -438,23 +444,23 @@
$catleveladd
=
strlen
(
qa_get
(
'catleveladd'
))
>
0
;
$catleveladd
=
strlen
(
qa_get
(
'catleveladd'
))
>
0
;
if
((
!
$catleveladd
)
&&
!
count
(
$userlevels
))
if
((
!
$catleveladd
)
&&
!
count
(
$userlevels
))
$qa_content
[
'form_profile'
][
'fields'
][
'level'
][
'suffix'
]
=
strtr
(
qa_lang_html
(
'users/category_level_add'
),
array
(
$qa_content
[
'form_profile'
][
'fields'
][
'level'
][
'suffix'
]
=
strtr
(
qa_lang_html
(
'users/category_level_add'
),
array
(
'^1'
=>
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'state'
=>
'edit'
,
'catleveladd'
=>
1
))
.
'">'
,
'^1'
=>
'<a href="'
.
qa_path_html
(
qa_request
(),
array
(
'state'
=>
'edit'
,
'catleveladd'
=>
1
))
.
'">'
,
'^2'
=>
'</a>'
,
'^2'
=>
'</a>'
,
));
));
else
else
$qa_content
[
'form_profile'
][
'fields'
][
'level'
][
'suffix'
]
=
qa_lang_html
(
'users/level_in_general'
);
$qa_content
[
'form_profile'
][
'fields'
][
'level'
][
'suffix'
]
=
qa_lang_html
(
'users/level_in_general'
);
if
(
$catleveladd
||
count
(
$userlevels
))
if
(
$catleveladd
||
count
(
$userlevels
))
$userlevels
[]
=
array
(
'entitytype'
=>
QA_ENTITY_CATEGORY
);
$userlevels
[]
=
array
(
'entitytype'
=>
QA_ENTITY_CATEGORY
);
$index
=
0
;
$index
=
0
;
foreach
(
$userlevels
as
$userlevel
)
foreach
(
$userlevels
as
$userlevel
)
if
(
$userlevel
[
'entitytype'
]
==
QA_ENTITY_CATEGORY
)
{
if
(
$userlevel
[
'entitytype'
]
==
QA_ENTITY_CATEGORY
)
{
$index
++
;
$index
++
;
$id
=
'ls_'
.+
$index
;
$id
=
'ls_'
.+
$index
;
$qa_content
[
'form_profile'
][
'fields'
][
'uc_'
.
$index
.
'_level'
]
=
array
(
$qa_content
[
'form_profile'
][
'fields'
][
'uc_'
.
$index
.
'_level'
]
=
array
(
'label'
=>
qa_lang_html
(
'users/category_level_label'
),
'label'
=>
qa_lang_html
(
'users/category_level_label'
),
'type'
=>
'select'
,
'type'
=>
'select'
,
'tags'
=>
'name="uc_'
.
$index
.
'_level" id="'
.
qa_html
(
$id
)
.
'" onchange="this.qa_prev=this.options[this.selectedIndex].value;"'
,
'tags'
=>
'name="uc_'
.
$index
.
'_level" id="'
.
qa_html
(
$id
)
.
'" onchange="this.qa_prev=this.options[this.selectedIndex].value;"'
,
...
@@ -463,12 +469,12 @@
...
@@ -463,12 +469,12 @@
'suffix'
=>
qa_lang_html
(
'users/category_level_in'
),
'suffix'
=>
qa_lang_html
(
'users/category_level_in'
),
);
);
$qa_content
[
'form_profile'
][
'fields'
][
'uc_'
.
$index
.
'_cat'
]
=
array
();
$qa_content
[
'form_profile'
][
'fields'
][
'uc_'
.
$index
.
'_cat'
]
=
array
();
if
(
isset
(
$userlevel
[
'entityid'
]))
if
(
isset
(
$userlevel
[
'entityid'
]))
$fieldnavcategories
=
qa_db_select_with_pending
(
qa_db_category_nav_selectspec
(
$userlevel
[
'entityid'
],
true
));
$fieldnavcategories
=
qa_db_select_with_pending
(
qa_db_category_nav_selectspec
(
$userlevel
[
'entityid'
],
true
));
else
else
$fieldnavcategories
=
$navcategories
;
$fieldnavcategories
=
$navcategories
;
qa_set_up_category_field
(
$qa_content
,
$qa_content
[
'form_profile'
][
'fields'
][
'uc_'
.
$index
.
'_cat'
],
qa_set_up_category_field
(
$qa_content
,
$qa_content
[
'form_profile'
][
'fields'
][
'uc_'
.
$index
.
'_cat'
],
'uc_'
.
$index
.
'_cat'
,
$fieldnavcategories
,
@
$userlevel
[
'entityid'
],
true
,
true
);
'uc_'
.
$index
.
'_cat'
,
$fieldnavcategories
,
@
$userlevel
[
'entityid'
],
true
,
true
);
...
@@ -476,7 +482,7 @@
...
@@ -476,7 +482,7 @@
unset
(
$qa_content
[
'form_profile'
][
'fields'
][
'uc_'
.
$index
.
'_cat'
][
'note'
]);
unset
(
$qa_content
[
'form_profile'
][
'fields'
][
'uc_'
.
$index
.
'_cat'
][
'note'
]);
}
}
$qa_content
[
'script_lines'
][]
=
array
(
$qa_content
[
'script_lines'
][]
=
array
(
"function qa_update_category_levels()"
,
"function qa_update_category_levels()"
,
"{"
,
"{"
,
"
\t
glob=document.getElementById('level_select');"
,
"
\t
glob=document.getElementById('level_select');"
,
...
@@ -497,44 +503,47 @@
...
@@ -497,44 +503,47 @@
"}"
,
"}"
,
);
);
$qa_content
[
'script_onloads'
][]
=
array
(
$qa_content
[
'script_onloads'
][]
=
array
(
"qa_update_category_levels();"
,
"qa_update_category_levels();"
,
);
);
$qa_content
[
'form_profile'
][
'fields'
][
'level'
][
'tags'
]
.=
' id="level_select" onchange="qa_update_category_levels();"'
;
$qa_content
[
'form_profile'
][
'fields'
][
'level'
][
'tags'
]
.=
' id="level_select" onchange="qa_update_category_levels();"'
;
}
}
}
}
}
else
{
}
foreach
(
$userlevels
as
$userlevel
)
else
{
if
(
(
$userlevel
[
'entitytype'
]
==
QA_ENTITY_CATEGORY
)
&&
(
$userlevel
[
'level'
]
>
$useraccount
[
'level'
])
)
foreach
(
$userlevels
as
$userlevel
)
{
$qa_content
[
'form_profile'
][
'fields'
][
'level'
][
'value'
]
.=
'<br/>'
.
if
(
$userlevel
[
'entitytype'
]
==
QA_ENTITY_CATEGORY
&&
$userlevel
[
'level'
]
>
$useraccount
[
'level'
]
)
{
$qa_content
[
'form_profile'
][
'fields'
][
'level'
][
'value'
]
.=
'<br/>'
.
strtr
(
qa_lang_html
(
'users/level_for_category'
),
array
(
strtr
(
qa_lang_html
(
'users/level_for_category'
),
array
(
'^1'
=>
qa_html
(
qa_user_level_string
(
$userlevel
[
'level'
])),
'^1'
=>
qa_html
(
qa_user_level_string
(
$userlevel
[
'level'
])),
'^2'
=>
'<a href="'
.
qa_path_html
(
implode
(
'/'
,
array_reverse
(
explode
(
'/'
,
$userlevel
[
'backpath'
]))))
.
'">'
.
qa_html
(
$userlevel
[
'title'
])
.
'</a>'
,
'^2'
=>
'<a href="'
.
qa_path_html
(
implode
(
'/'
,
array_reverse
(
explode
(
'/'
,
$userlevel
[
'backpath'
]))))
.
'">'
.
qa_html
(
$userlevel
[
'title'
])
.
'</a>'
,
));
));
}
}
}
}
// Show any extra privileges due to user's level or their points
// Show any extra privileges due to user's level or their points
$showpermits
=
array
();
$showpermits
=
array
();
$permitoptions
=
qa_get_permit_options
();
$permitoptions
=
qa_get_permit_options
();
foreach
(
$permitoptions
as
$permitoption
)
foreach
(
$permitoptions
as
$permitoption
)
if
(
// if not available to approved and email confirmed users with no points, but yes available to the user, it's something special
if
(
// if not available to approved and email confirmed users with no points, but yes available to the user, it's something special
qa_permit_error
(
$permitoption
,
$userid
,
QA_USER_LEVEL_APPROVED
,
QA_USER_FLAGS_EMAIL_CONFIRMED
,
0
)
&&
qa_permit_error
(
$permitoption
,
$userid
,
QA_USER_LEVEL_APPROVED
,
QA_USER_FLAGS_EMAIL_CONFIRMED
,
0
)
&&
!
qa_permit_error
(
$permitoption
,
$userid
,
$useraccount
[
'level'
],
$useraccount
[
'flags'
],
$userpoints
[
'points'
])
!
qa_permit_error
(
$permitoption
,
$userid
,
$useraccount
[
'level'
],
$useraccount
[
'flags'
],
$userpoints
[
'points'
])
)
{
)
{
if
(
$permitoption
==
'permit_retag_cat'
)
if
(
$permitoption
==
'permit_retag_cat'
)
$showpermits
[]
=
qa_lang
(
qa_using_categories
()
?
'profile/permit_recat'
:
'profile/permit_retag'
);
$showpermits
[]
=
qa_lang
(
qa_using_categories
()
?
'profile/permit_recat'
:
'profile/permit_retag'
);
else
else
$showpermits
[]
=
qa_lang
(
'profile/'
.
$permitoption
);
// then show it as an extra priviliege
$showpermits
[]
=
qa_lang
(
'profile/'
.
$permitoption
);
// then show it as an extra priviliege
}
}
if
(
count
(
$showpermits
))
if
(
count
(
$showpermits
))
$qa_content
[
'form_profile'
][
'fields'
][
'permits'
]
=
array
(
$qa_content
[
'form_profile'
][
'fields'
][
'permits'
]
=
array
(
'type'
=>
'static'
,
'type'
=>
'static'
,
'label'
=>
qa_lang_html
(
'profile/extra_privileges'
),
'label'
=>
qa_lang_html
(
'profile/extra_privileges'
),
'value'
=>
qa_html
(
implode
(
"
\n
"
,
$showpermits
),
true
),
'value'
=>
qa_html
(
implode
(
"
\n
"
,
$showpermits
),
true
),
...
@@ -546,11 +555,11 @@
...
@@ -546,11 +555,11 @@
// Show email address only if we're an administrator
// Show email address only if we're an administrator
if
((
$loginlevel
>=
QA_USER_LEVEL_ADMIN
)
&&
!
qa_user_permit_error
())
{
if
((
$loginlevel
>=
QA_USER_LEVEL_ADMIN
)
&&
!
qa_user_permit_error
())
{
$doconfirms
=
qa_opt
(
'confirm_user_emails'
)
&&
(
$useraccount
[
'level'
]
<
QA_USER_LEVEL_EXPERT
)
;
$doconfirms
=
qa_opt
(
'confirm_user_emails'
)
&&
$useraccount
[
'level'
]
<
QA_USER_LEVEL_EXPERT
;
$isconfirmed
=
(
$useraccount
[
'flags'
]
&
QA_USER_FLAGS_EMAIL_CONFIRMED
)
>
0
;
$isconfirmed
=
(
$useraccount
[
'flags'
]
&
QA_USER_FLAGS_EMAIL_CONFIRMED
)
>
0
;
$htmlemail
=
qa_html
(
isset
(
$inemail
)
?
$inemail
:
$useraccount
[
'email'
]);
$htmlemail
=
qa_html
(
isset
(
$inemail
)
?
$inemail
:
$useraccount
[
'email'
]);
$qa_content
[
'form_profile'
][
'fields'
][
'email'
]
=
array
(
$qa_content
[
'form_profile'
][
'fields'
][
'email'
]
=
array
(
'type'
=>
$userediting
?
'text'
:
'static'
,
'type'
=>
$userediting
?
'text'
:
'static'
,
'label'
=>
qa_lang_html
(
'users/email_label'
),
'label'
=>
qa_lang_html
(
'users/email_label'
),
'tags'
=>
'name="email"'
,
'tags'
=>
'name="email"'
,
...
@@ -566,8 +575,8 @@
...
@@ -566,8 +575,8 @@
// Show IP addresses and times for last login or write - only if we're a moderator or higher
// Show IP addresses and times for last login or write - only if we're a moderator or higher
if
((
$loginlevel
>=
QA_USER_LEVEL_MODERATOR
)
&&
!
qa_user_permit_error
())
{
if
((
$loginlevel
>=
QA_USER_LEVEL_MODERATOR
)
&&
!
qa_user_permit_error
())
{
$qa_content
[
'form_profile'
][
'fields'
][
'lastlogin'
]
=
array
(
$qa_content
[
'form_profile'
][
'fields'
][
'lastlogin'
]
=
array
(
'type'
=>
'static'
,
'type'
=>
'static'
,
'label'
=>
qa_lang_html
(
'users/last_login_label'
),
'label'
=>
qa_lang_html
(
'users/last_login_label'
),
'value'
=>
'value'
=>
...
@@ -580,7 +589,7 @@
...
@@ -580,7 +589,7 @@
);
);
if
(
isset
(
$useraccount
[
'written'
]))
if
(
isset
(
$useraccount
[
'written'
]))
$qa_content
[
'form_profile'
][
'fields'
][
'lastwrite'
]
=
array
(
$qa_content
[
'form_profile'
][
'fields'
][
'lastwrite'
]
=
array
(
'type'
=>
'static'
,
'type'
=>
'static'
,
'label'
=>
qa_lang_html
(
'users/last_write_label'
),
'label'
=>
qa_lang_html
(
'users/last_write_label'
),
'value'
=>
'value'
=>
...
@@ -599,37 +608,37 @@
...
@@ -599,37 +608,37 @@
// Show other profile fields
// Show other profile fields
$fieldsediting
=
$fieldseditable
&&
$userediting
;
$fieldsediting
=
$fieldseditable
&&
$userediting
;
foreach
(
$userfields
as
$userfield
)
{
foreach
(
$userfields
as
$userfield
)
{
if
((
$userfield
[
'flags'
]
&
QA_FIELD_FLAGS_LINK_URL
)
&&
!
$fieldsediting
)
if
((
$userfield
[
'flags'
]
&
QA_FIELD_FLAGS_LINK_URL
)
&&
!
$fieldsediting
)
$valuehtml
=
qa_url_to_html_link
(
@
$userprofile
[
$userfield
[
'title'
]],
qa_opt
(
'links_in_new_window'
));
$valuehtml
=
qa_url_to_html_link
(
@
$userprofile
[
$userfield
[
'title'
]],
qa_opt
(
'links_in_new_window'
));
else
{
else
{
$value
=
@
$inprofile
[
$userfield
[
'fieldid'
]];
$value
=
@
$inprofile
[
$userfield
[
'fieldid'
]];
if
(
!
isset
(
$value
))
if
(
!
isset
(
$value
))
$value
=
@
$userprofile
[
$userfield
[
'title'
]];
$value
=
@
$userprofile
[
$userfield
[
'title'
]];
$valuehtml
=
qa_html
(
$value
,
((
$userfield
[
'flags'
]
&
QA_FIELD_FLAGS_MULTI_LINE
)
&&
!
$fieldsediting
));
$valuehtml
=
qa_html
(
$value
,
((
$userfield
[
'flags'
]
&
QA_FIELD_FLAGS_MULTI_LINE
)
&&
!
$fieldsediting
));
}
}
$label
=
trim
(
qa_user_userfield_label
(
$userfield
),
':'
);
$label
=
trim
(
qa_user_userfield_label
(
$userfield
),
':'
);
if
(
strlen
(
$label
))
if
(
strlen
(
$label
))
$label
.=
':'
;
$label
.=
':'
;
$notehtml
=
null
;
$notehtml
=
null
;
if
(
isset
(
$userfield
[
'permit'
])
&&
!
$userediting
)
{
if
(
isset
(
$userfield
[
'permit'
])
&&
!
$userediting
)
{
if
(
$userfield
[
'permit'
]
<=
QA_PERMIT_ADMINS
)
if
(
$userfield
[
'permit'
]
<=
QA_PERMIT_ADMINS
)
$notehtml
=
qa_lang_html
(
'users/only_shown_admins'
);
$notehtml
=
qa_lang_html
(
'users/only_shown_admins'
);
elseif
(
$userfield
[
'permit'
]
<=
QA_PERMIT_MODERATORS
)
elseif
(
$userfield
[
'permit'
]
<=
QA_PERMIT_MODERATORS
)
$notehtml
=
qa_lang_html
(
'users/only_shown_moderators'
);
$notehtml
=
qa_lang_html
(
'users/only_shown_moderators'
);
elseif
(
$userfield
[
'permit'
]
<=
QA_PERMIT_EDITORS
)
elseif
(
$userfield
[
'permit'
]
<=
QA_PERMIT_EDITORS
)
$notehtml
=
qa_lang_html
(
'users/only_shown_editors'
);
$notehtml
=
qa_lang_html
(
'users/only_shown_editors'
);
elseif
(
$userfield
[
'permit'
]
<=
QA_PERMIT_EXPERTS
)
elseif
(
$userfield
[
'permit'
]
<=
QA_PERMIT_EXPERTS
)
$notehtml
=
qa_lang_html
(
'users/only_shown_experts'
);
$notehtml
=
qa_lang_html
(
'users/only_shown_experts'
);
}
}
$qa_content
[
'form_profile'
][
'fields'
][
$userfield
[
'title'
]]
=
array
(
$qa_content
[
'form_profile'
][
'fields'
][
$userfield
[
'title'
]]
=
array
(
'type'
=>
$fieldsediting
?
'text'
:
'static'
,
'type'
=>
$fieldsediting
?
'text'
:
'static'
,
'label'
=>
qa_html
(
$label
),
'label'
=>
qa_html
(
$label
),
'tags'
=>
'name="field_'
.
$userfield
[
'fieldid'
]
.
'"'
,
'tags'
=>
'name="field_'
.
$userfield
[
'fieldid'
]
.
'"'
,
...
@@ -650,14 +659,14 @@
...
@@ -650,14 +659,14 @@
(
qa_opt
(
'avatar_allow_gravatar'
)
&&
(
$useraccount
[
'flags'
]
&
QA_USER_FLAGS_SHOW_GRAVATAR
))
||
(
qa_opt
(
'avatar_allow_gravatar'
)
&&
(
$useraccount
[
'flags'
]
&
QA_USER_FLAGS_SHOW_GRAVATAR
))
||
(
qa_opt
(
'avatar_allow_upload'
)
&&
((
$useraccount
[
'flags'
]
&
QA_USER_FLAGS_SHOW_AVATAR
))
&&
isset
(
$useraccount
[
'avatarblobid'
]))
(
qa_opt
(
'avatar_allow_upload'
)
&&
((
$useraccount
[
'flags'
]
&
QA_USER_FLAGS_SHOW_AVATAR
))
&&
isset
(
$useraccount
[
'avatarblobid'
]))
)
{
)
{
$qa_content
[
'form_profile'
][
'fields'
][
'removeavatar'
]
=
array
(
$qa_content
[
'form_profile'
][
'fields'
][
'removeavatar'
]
=
array
(
'type'
=>
'checkbox'
,
'type'
=>
'checkbox'
,
'label'
=>
qa_lang_html
(
'users/remove_avatar'
),
'label'
=>
qa_lang_html
(
'users/remove_avatar'
),
'tags'
=>
'name="removeavatar"'
,
'tags'
=>
'name="removeavatar"'
,
);
);
}
}
$qa_content
[
'form_profile'
][
'buttons'
]
=
array
(
$qa_content
[
'form_profile'
][
'buttons'
]
=
array
(
'save'
=>
array
(
'save'
=>
array
(
'tags'
=>
'onclick="qa_show_waiting_after(this, false);"'
,
'tags'
=>
'onclick="qa_show_waiting_after(this, false);"'
,
'label'
=>
qa_lang_html
(
'users/save_user'
),
'label'
=>
qa_lang_html
(
'users/save_user'
),
...
@@ -669,75 +678,83 @@
...
@@ -669,75 +678,83 @@
),
),
);
);
$qa_content
[
'form_profile'
][
'hidden'
]
=
array
(
$qa_content
[
'form_profile'
][
'hidden'
]
=
array
(
'dosave'
=>
'1'
,
'dosave'
=>
'1'
,
'code'
=>
qa_get_form_security_code
(
'user-edit-'
.
$handle
),
'code'
=>
qa_get_form_security_code
(
'user-edit-'
.
$handle
),
);
);
}
elseif
(
$usereditbutton
)
{
}
$qa_content
[
'form_profile'
][
'buttons'
]
=
array
();
elseif
(
$usereditbutton
)
{
$qa_content
[
'form_profile'
][
'buttons'
]
=
array
();
if
(
$approvebutton
)
if
(
$approvebutton
)
{
$qa_content
[
'form_profile'
][
'buttons'
][
'approve'
]
=
array
(
$qa_content
[
'form_profile'
][
'buttons'
][
'approve'
]
=
array
(
'tags'
=>
'name="doapprove"'
,
'tags'
=>
'name="doapprove"'
,
'label'
=>
qa_lang_html
(
'users/approve_user_button'
),
'label'
=>
qa_lang_html
(
'users/approve_user_button'
),
);
);
}
$qa_content
[
'form_profile'
][
'buttons'
][
'edit'
]
=
array
(
$qa_content
[
'form_profile'
][
'buttons'
][
'edit'
]
=
array
(
'tags'
=>
'name="doedit"'
,
'tags'
=>
'name="doedit"'
,
'label'
=>
qa_lang_html
(
'users/edit_user_button'
),
'label'
=>
qa_lang_html
(
'users/edit_user_button'
),
);
);
if
(
isset
(
$maxlevelassign
)
&&
(
$useraccount
[
'level'
]
<
QA_USER_LEVEL_MODERATOR
)
)
{
if
(
isset
(
$maxlevelassign
)
&&
$useraccount
[
'level'
]
<
QA_USER_LEVEL_MODERATOR
)
{
if
(
$useraccount
[
'flags'
]
&
QA_USER_FLAGS_USER_BLOCKED
)
{
if
(
$useraccount
[
'flags'
]
&
QA_USER_FLAGS_USER_BLOCKED
)
{
$qa_content
[
'form_profile'
][
'buttons'
][
'unblock'
]
=
array
(
$qa_content
[
'form_profile'
][
'buttons'
][
'unblock'
]
=
array
(
'tags'
=>
'name="dounblock"'
,
'tags'
=>
'name="dounblock"'
,
'label'
=>
qa_lang_html
(
'users/unblock_user_button'
),
'label'
=>
qa_lang_html
(
'users/unblock_user_button'
),
);
);
if
(
!
qa_user_permit_error
(
'permit_hide_show'
))
if
(
!
qa_user_permit_error
(
'permit_hide_show'
))
{
$qa_content
[
'form_profile'
][
'buttons'
][
'hideall'
]
=
array
(
$qa_content
[
'form_profile'
][
'buttons'
][
'hideall'
]
=
array
(
'tags'
=>
'name="dohideall" onclick="qa_show_waiting_after(this, false);"'
,
'tags'
=>
'name="dohideall" onclick="qa_show_waiting_after(this, false);"'
,
'label'
=>
qa_lang_html
(
'users/hide_all_user_button'
),
'label'
=>
qa_lang_html
(
'users/hide_all_user_button'
),
);
);
}
if
(
$loginlevel
>=
QA_USER_LEVEL_ADMIN
)
if
(
$loginlevel
>=
QA_USER_LEVEL_ADMIN
)
{
$qa_content
[
'form_profile'
][
'buttons'
][
'delete'
]
=
array
(
$qa_content
[
'form_profile'
][
'buttons'
][
'delete'
]
=
array
(
'tags'
=>
'name="dodelete" onclick="qa_show_waiting_after(this, false);"'
,
'tags'
=>
'name="dodelete" onclick="qa_show_waiting_after(this, false);"'
,
'label'
=>
qa_lang_html
(
'users/delete_user_button'
),
'label'
=>
qa_lang_html
(
'users/delete_user_button'
),
);
);
}
}
else
}
$qa_content
[
'form_profile'
][
'buttons'
][
'block'
]
=
array
(
else
{
$qa_content
[
'form_profile'
][
'buttons'
][
'block'
]
=
array
(
'tags'
=>
'name="doblock"'
,
'tags'
=>
'name="doblock"'
,
'label'
=>
qa_lang_html
(
'users/block_user_button'
),
'label'
=>
qa_lang_html
(
'users/block_user_button'
),
);
);
}
$qa_content
[
'form_profile'
][
'hidden'
]
=
array
(
$qa_content
[
'form_profile'
][
'hidden'
]
=
array
(
'code'
=>
qa_get_form_security_code
(
'user-'
.
$handle
),
'code'
=>
qa_get_form_security_code
(
'user-'
.
$handle
),
);
);
}
}
}
elseif
(
isset
(
$loginuserid
)
&&
(
$loginuserid
==
$userid
))
}
$qa_content
[
'form_profile'
][
'buttons'
]
=
array
(
elseif
(
isset
(
$loginuserid
)
&&
(
$loginuserid
==
$userid
))
{
$qa_content
[
'form_profile'
][
'buttons'
]
=
array
(
'account'
=>
array
(
'account'
=>
array
(
'tags'
=>
'name="doaccount"'
,
'tags'
=>
'name="doaccount"'
,
'label'
=>
qa_lang_html
(
'users/edit_profile'
),
'label'
=>
qa_lang_html
(
'users/edit_profile'
),
),
),
);
);
}
if
(
!
is_array
(
$qa_content
[
'form_profile'
][
'fields'
][
'removeavatar'
]))
if
(
!
is_array
(
$qa_content
[
'form_profile'
][
'fields'
][
'removeavatar'
]))
unset
(
$qa_content
[
'form_profile'
][
'fields'
][
'removeavatar'
]);
unset
(
$qa_content
[
'form_profile'
][
'fields'
][
'removeavatar'
]);
$qa_content
[
'raw'
][
'account'
]
=
$useraccount
;
// for plugin layers to access
$qa_content
[
'raw'
][
'account'
]
=
$useraccount
;
// for plugin layers to access
$qa_content
[
'raw'
][
'profile'
]
=
$userprofile
;
$qa_content
[
'raw'
][
'profile'
]
=
$userprofile
;
}
}
// Information about user activity, available also with single sign-on integration
// Information about user activity, available also with single sign-on integration
$qa_content
[
'form_activity'
]
=
array
(
$qa_content
[
'form_activity'
]
=
array
(
'title'
=>
'<a name="activity">'
.
qa_lang_html_sub
(
'profile/activity_by_x'
,
$userhtml
)
.
'</a>'
,
'title'
=>
'<a name="activity">'
.
qa_lang_html_sub
(
'profile/activity_by_x'
,
$userhtml
)
.
'</a>'
,
'style'
=>
'wide'
,
'style'
=>
'wide'
,
...
@@ -755,7 +772,7 @@
...
@@ -755,7 +772,7 @@
'points'
=>
array
(
'points'
=>
array
(
'type'
=>
'static'
,
'type'
=>
'static'
,
'label'
=>
qa_lang_html
(
'profile/score'
),
'label'
=>
qa_lang_html
(
'profile/score'
),
'value'
=>
(
@
$userpoints
[
'points'
]
==
1
)
'value'
=>
(
@
$userpoints
[
'points'
]
==
1
)
?
qa_lang_html_sub
(
'main/1_point'
,
'<span class="qa-uf-user-points">1</span>'
,
'1'
)
?
qa_lang_html_sub
(
'main/1_point'
,
'<span class="qa-uf-user-points">1</span>'
,
'1'
)
:
qa_lang_html_sub
(
'main/x_points'
,
'<span class="qa-uf-user-points">'
.
qa_html
(
number_format
(
@
$userpoints
[
'points'
]))
.
'</span>'
),
:
qa_lang_html_sub
(
'main/x_points'
,
'<span class="qa-uf-user-points">'
.
qa_html
(
number_format
(
@
$userpoints
[
'points'
]))
.
'</span>'
),
'id'
=>
'points'
,
'id'
=>
'points'
,
...
@@ -784,28 +801,29 @@
...
@@ -784,28 +801,29 @@
),
),
);
);
if
(
$loginlevel
>=
QA_USER_LEVEL_ADMIN
)
{
if
(
$loginlevel
>=
QA_USER_LEVEL_ADMIN
)
{
$qa_content
[
'form_activity'
][
'tags'
]
=
'method="post" action="'
.
qa_self_html
()
.
'"'
;
$qa_content
[
'form_activity'
][
'tags'
]
=
'method="post" action="'
.
qa_self_html
()
.
'"'
;
$qa_content
[
'form_activity'
][
'buttons'
]
=
array
(
$qa_content
[
'form_activity'
][
'buttons'
]
=
array
(
'setbonus'
=>
array
(
'setbonus'
=>
array
(
'tags'
=>
'name="dosetbonus"'
,
'tags'
=>
'name="dosetbonus"'
,
'label'
=>
qa_lang_html
(
'profile/set_bonus_button'
),
'label'
=>
qa_lang_html
(
'profile/set_bonus_button'
),
),
),
);
);
$qa_content
[
'form_activity'
][
'hidden'
]
=
array
(
$qa_content
[
'form_activity'
][
'hidden'
]
=
array
(
'code'
=>
qa_get_form_security_code
(
'user-activity-'
.
$handle
),
'code'
=>
qa_get_form_security_code
(
'user-activity-'
.
$handle
),
);
);
}
else
}
else
unset
(
$qa_content
[
'form_activity'
][
'fields'
][
'bonus'
]);
unset
(
$qa_content
[
'form_activity'
][
'fields'
][
'bonus'
]);
if
(
!
isset
(
$qa_content
[
'form_activity'
][
'fields'
][
'title'
][
'value'
]))
if
(
!
isset
(
$qa_content
[
'form_activity'
][
'fields'
][
'title'
][
'value'
]))
unset
(
$qa_content
[
'form_activity'
][
'fields'
][
'title'
]);
unset
(
$qa_content
[
'form_activity'
][
'fields'
][
'title'
]);
if
(
qa_opt
(
'comment_on_qs'
)
||
qa_opt
(
'comment_on_as'
))
{
// only show comment count if comments are enabled
if
(
qa_opt
(
'comment_on_qs'
)
||
qa_opt
(
'comment_on_as'
))
{
// only show comment count if comments are enabled
$qa_content
[
'form_activity'
][
'fields'
][
'comments'
]
=
array
(
$qa_content
[
'form_activity'
][
'fields'
][
'comments'
]
=
array
(
'type'
=>
'static'
,
'type'
=>
'static'
,
'label'
=>
qa_lang_html
(
'profile/comments'
),
'label'
=>
qa_lang_html
(
'profile/comments'
),
'value'
=>
'<span class="qa-uf-user-c-posts">'
.
qa_html
(
number_format
(
@
$userpoints
[
'cposts'
]))
.
'</span>'
,
'value'
=>
'<span class="qa-uf-user-c-posts">'
.
qa_html
(
number_format
(
@
$userpoints
[
'cposts'
]))
.
'</span>'
,
...
@@ -814,58 +832,58 @@
...
@@ -814,58 +832,58 @@
}
}
if
(
qa_opt
(
'voting_on_qs'
)
||
qa_opt
(
'voting_on_as'
))
{
// only show vote record if voting is enabled
if
(
qa_opt
(
'voting_on_qs'
)
||
qa_opt
(
'voting_on_as'
))
{
// only show vote record if voting is enabled
$votedonvalue
=
''
;
$votedonvalue
=
''
;
if
(
qa_opt
(
'voting_on_qs'
))
{
if
(
qa_opt
(
'voting_on_qs'
))
{
$qvotes
=
@
$userpoints
[
'qupvotes'
]
+@
$userpoints
[
'qdownvotes'
];
$qvotes
=
@
$userpoints
[
'qupvotes'
]
+@
$userpoints
[
'qdownvotes'
];
$innervalue
=
'<span class="qa-uf-user-q-votes">'
.
number_format
(
$qvotes
)
.
'</span>'
;
$innervalue
=
'<span class="qa-uf-user-q-votes">'
.
number_format
(
$qvotes
)
.
'</span>'
;
$votedonvalue
.=
(
$qvotes
==
1
)
?
qa_lang_html_sub
(
'main/1_question'
,
$innervalue
,
'1'
)
$votedonvalue
.=
(
$qvotes
==
1
)
?
qa_lang_html_sub
(
'main/1_question'
,
$innervalue
,
'1'
)
:
qa_lang_html_sub
(
'main/x_questions'
,
$innervalue
);
:
qa_lang_html_sub
(
'main/x_questions'
,
$innervalue
);
if
(
qa_opt
(
'voting_on_as'
))
if
(
qa_opt
(
'voting_on_as'
))
$votedonvalue
.=
', '
;
$votedonvalue
.=
', '
;
}
}
if
(
qa_opt
(
'voting_on_as'
))
{
if
(
qa_opt
(
'voting_on_as'
))
{
$avotes
=
@
$userpoints
[
'aupvotes'
]
+@
$userpoints
[
'adownvotes'
];
$avotes
=
@
$userpoints
[
'aupvotes'
]
+@
$userpoints
[
'adownvotes'
];
$innervalue
=
'<span class="qa-uf-user-a-votes">'
.
number_format
(
$avotes
)
.
'</span>'
;
$innervalue
=
'<span class="qa-uf-user-a-votes">'
.
number_format
(
$avotes
)
.
'</span>'
;
$votedonvalue
.=
(
$avotes
==
1
)
?
qa_lang_html_sub
(
'main/1_answer'
,
$innervalue
,
'1'
)
$votedonvalue
.=
(
$avotes
==
1
)
?
qa_lang_html_sub
(
'main/1_answer'
,
$innervalue
,
'1'
)
:
qa_lang_html_sub
(
'main/x_answers'
,
$innervalue
);
:
qa_lang_html_sub
(
'main/x_answers'
,
$innervalue
);
}
}
$qa_content
[
'form_activity'
][
'fields'
][
'votedon'
]
=
array
(
$qa_content
[
'form_activity'
][
'fields'
][
'votedon'
]
=
array
(
'type'
=>
'static'
,
'type'
=>
'static'
,
'label'
=>
qa_lang_html
(
'profile/voted_on'
),
'label'
=>
qa_lang_html
(
'profile/voted_on'
),
'value'
=>
$votedonvalue
,
'value'
=>
$votedonvalue
,
'id'
=>
'votedon'
,
'id'
=>
'votedon'
,
);
);
$upvotes
=
@
$userpoints
[
'qupvotes'
]
+@
$userpoints
[
'aupvotes'
];
$upvotes
=
@
$userpoints
[
'qupvotes'
]
+@
$userpoints
[
'aupvotes'
];
$innervalue
=
'<span class="qa-uf-user-upvotes">'
.
number_format
(
$upvotes
)
.
'</span>'
;
$innervalue
=
'<span class="qa-uf-user-upvotes">'
.
number_format
(
$upvotes
)
.
'</span>'
;
$votegavevalue
=
((
$upvotes
==
1
)
?
qa_lang_html_sub
(
'profile/1_up_vote'
,
$innervalue
,
'1'
)
:
qa_lang_html_sub
(
'profile/x_up_votes'
,
$innervalue
))
.
', '
;
$votegavevalue
=
((
$upvotes
==
1
)
?
qa_lang_html_sub
(
'profile/1_up_vote'
,
$innervalue
,
'1'
)
:
qa_lang_html_sub
(
'profile/x_up_votes'
,
$innervalue
))
.
', '
;
$downvotes
=
@
$userpoints
[
'qdownvotes'
]
+@
$userpoints
[
'adownvotes'
];
$downvotes
=
@
$userpoints
[
'qdownvotes'
]
+@
$userpoints
[
'adownvotes'
];
$innervalue
=
'<span class="qa-uf-user-downvotes">'
.
number_format
(
$downvotes
)
.
'</span>'
;
$innervalue
=
'<span class="qa-uf-user-downvotes">'
.
number_format
(
$downvotes
)
.
'</span>'
;
$votegavevalue
.=
(
$downvotes
==
1
)
?
qa_lang_html_sub
(
'profile/1_down_vote'
,
$innervalue
,
'1'
)
:
qa_lang_html_sub
(
'profile/x_down_votes'
,
$innervalue
);
$votegavevalue
.=
(
$downvotes
==
1
)
?
qa_lang_html_sub
(
'profile/1_down_vote'
,
$innervalue
,
'1'
)
:
qa_lang_html_sub
(
'profile/x_down_votes'
,
$innervalue
);
$qa_content
[
'form_activity'
][
'fields'
][
'votegave'
]
=
array
(
$qa_content
[
'form_activity'
][
'fields'
][
'votegave'
]
=
array
(
'type'
=>
'static'
,
'type'
=>
'static'
,
'label'
=>
qa_lang_html
(
'profile/gave_out'
),
'label'
=>
qa_lang_html
(
'profile/gave_out'
),
'value'
=>
$votegavevalue
,
'value'
=>
$votegavevalue
,
'id'
=>
'votegave'
,
'id'
=>
'votegave'
,
);
);
$innervalue
=
'<span class="qa-uf-user-upvoteds">'
.
number_format
(
@
$userpoints
[
'upvoteds'
])
.
'</span>'
;
$innervalue
=
'<span class="qa-uf-user-upvoteds">'
.
number_format
(
@
$userpoints
[
'upvoteds'
])
.
'</span>'
;
$votegotvalue
=
((
@
$userpoints
[
'upvoteds'
]
==
1
)
?
qa_lang_html_sub
(
'profile/1_up_vote'
,
$innervalue
,
'1'
)
$votegotvalue
=
((
@
$userpoints
[
'upvoteds'
]
==
1
)
?
qa_lang_html_sub
(
'profile/1_up_vote'
,
$innervalue
,
'1'
)
:
qa_lang_html_sub
(
'profile/x_up_votes'
,
$innervalue
))
.
', '
;
:
qa_lang_html_sub
(
'profile/x_up_votes'
,
$innervalue
))
.
', '
;
$innervalue
=
'<span class="qa-uf-user-downvoteds">'
.
number_format
(
@
$userpoints
[
'downvoteds'
])
.
'</span>'
;
$innervalue
=
'<span class="qa-uf-user-downvoteds">'
.
number_format
(
@
$userpoints
[
'downvoteds'
])
.
'</span>'
;
$votegotvalue
.=
(
@
$userpoints
[
'downvoteds'
]
==
1
)
?
qa_lang_html_sub
(
'profile/1_down_vote'
,
$innervalue
,
'1'
)
$votegotvalue
.=
(
@
$userpoints
[
'downvoteds'
]
==
1
)
?
qa_lang_html_sub
(
'profile/1_down_vote'
,
$innervalue
,
'1'
)
:
qa_lang_html_sub
(
'profile/x_down_votes'
,
$innervalue
);
:
qa_lang_html_sub
(
'profile/x_down_votes'
,
$innervalue
);
$qa_content
[
'form_activity'
][
'fields'
][
'votegot'
]
=
array
(
$qa_content
[
'form_activity'
][
'fields'
][
'votegot'
]
=
array
(
'type'
=>
'static'
,
'type'
=>
'static'
,
'label'
=>
qa_lang_html
(
'profile/received'
),
'label'
=>
qa_lang_html
(
'profile/received'
),
'value'
=>
$votegotvalue
,
'value'
=>
$votegotvalue
,
...
@@ -874,16 +892,16 @@
...
@@ -874,16 +892,16 @@
}
}
if
(
@
$userpoints
[
'points'
])
if
(
@
$userpoints
[
'points'
])
$qa_content
[
'form_activity'
][
'fields'
][
'points'
][
'value'
]
.=
$qa_content
[
'form_activity'
][
'fields'
][
'points'
][
'value'
]
.=
qa_lang_html_sub
(
'profile/ranked_x'
,
'<span class="qa-uf-user-rank">'
.
number_format
(
$userrank
)
.
'</span>'
);
qa_lang_html_sub
(
'profile/ranked_x'
,
'<span class="qa-uf-user-rank">'
.
number_format
(
$userrank
)
.
'</span>'
);
if
(
@
$userpoints
[
'aselects'
])
if
(
@
$userpoints
[
'aselects'
])
$qa_content
[
'form_activity'
][
'fields'
][
'questions'
][
'value'
]
.=
(
$userpoints
[
'aselects'
]
==
1
)
$qa_content
[
'form_activity'
][
'fields'
][
'questions'
][
'value'
]
.=
(
$userpoints
[
'aselects'
]
==
1
)
?
qa_lang_html_sub
(
'profile/1_with_best_chosen'
,
'<span class="qa-uf-user-q-selects">1</span>'
,
'1'
)
?
qa_lang_html_sub
(
'profile/1_with_best_chosen'
,
'<span class="qa-uf-user-q-selects">1</span>'
,
'1'
)
:
qa_lang_html_sub
(
'profile/x_with_best_chosen'
,
'<span class="qa-uf-user-q-selects">'
.
number_format
(
$userpoints
[
'aselects'
])
.
'</span>'
);
:
qa_lang_html_sub
(
'profile/x_with_best_chosen'
,
'<span class="qa-uf-user-q-selects">'
.
number_format
(
$userpoints
[
'aselects'
])
.
'</span>'
);
if
(
@
$userpoints
[
'aselecteds'
])
if
(
@
$userpoints
[
'aselecteds'
])
$qa_content
[
'form_activity'
][
'fields'
][
'answers'
][
'value'
]
.=
(
$userpoints
[
'aselecteds'
]
==
1
)
$qa_content
[
'form_activity'
][
'fields'
][
'answers'
][
'value'
]
.=
(
$userpoints
[
'aselecteds'
]
==
1
)
?
qa_lang_html_sub
(
'profile/1_chosen_as_best'
,
'<span class="qa-uf-user-a-selecteds">1</span>'
,
'1'
)
?
qa_lang_html_sub
(
'profile/1_chosen_as_best'
,
'<span class="qa-uf-user-a-selecteds">1</span>'
,
'1'
)
:
qa_lang_html_sub
(
'profile/x_chosen_as_best'
,
'<span class="qa-uf-user-a-selecteds">'
.
number_format
(
$userpoints
[
'aselecteds'
])
.
'</span>'
);
:
qa_lang_html_sub
(
'profile/x_chosen_as_best'
,
'<span class="qa-uf-user-a-selecteds">'
.
number_format
(
$userpoints
[
'aselecteds'
])
.
'</span>'
);
...
@@ -891,15 +909,15 @@
...
@@ -891,15 +909,15 @@
// For plugin layers to access
// For plugin layers to access
$qa_content
[
'raw'
][
'userid'
]
=
$userid
;
$qa_content
[
'raw'
][
'userid'
]
=
$userid
;
$qa_content
[
'raw'
][
'points'
]
=
$userpoints
;
$qa_content
[
'raw'
][
'points'
]
=
$userpoints
;
$qa_content
[
'raw'
][
'rank'
]
=
$userrank
;
$qa_content
[
'raw'
][
'rank'
]
=
$userrank
;
// Wall posts
// Wall posts
if
(
(
!
QA_FINAL_EXTERNAL_USERS
)
&&
qa_opt
(
'allow_user_walls'
))
{
if
(
!
QA_FINAL_EXTERNAL_USERS
&&
qa_opt
(
'allow_user_walls'
))
{
$qa_content
[
'message_list'
]
=
array
(
$qa_content
[
'message_list'
]
=
array
(
'title'
=>
'<a name="wall">'
.
qa_lang_html_sub
(
'profile/wall_for_x'
,
$userhtml
)
.
'</a>'
,
'title'
=>
'<a name="wall">'
.
qa_lang_html_sub
(
'profile/wall_for_x'
,
$userhtml
)
.
'</a>'
,
'tags'
=>
'id="wallmessages"'
,
'tags'
=>
'id="wallmessages"'
,
...
@@ -919,10 +937,10 @@
...
@@ -919,10 +937,10 @@
);
);
if
(
$wallposterrorhtml
)
if
(
$wallposterrorhtml
)
$qa_content
[
'message_list'
][
'error'
]
=
$wallposterrorhtml
;
// an error that means we are not allowed to post
$qa_content
[
'message_list'
][
'error'
]
=
$wallposterrorhtml
;
// an error that means we are not allowed to post
else
{
else
{
$qa_content
[
'message_list'
][
'form'
][
'fields'
]
=
array
(
$qa_content
[
'message_list'
][
'form'
][
'fields'
]
=
array
(
'message'
=>
array
(
'message'
=>
array
(
'tags'
=>
'name="message" id="message"'
,
'tags'
=>
'name="message" id="message"'
,
'value'
=>
qa_html
(
@
$inmessage
,
false
),
'value'
=>
qa_html
(
@
$inmessage
,
false
),
...
@@ -931,7 +949,7 @@
...
@@ -931,7 +949,7 @@
),
),
);
);
$qa_content
[
'message_list'
][
'form'
][
'buttons'
]
=
array
(
$qa_content
[
'message_list'
][
'form'
][
'buttons'
]
=
array
(
'post'
=>
array
(
'post'
=>
array
(
'tags'
=>
'name="dowallpost" onclick="return qa_submit_wall_post(this, true);"'
,
'tags'
=>
'name="dowallpost" onclick="return qa_submit_wall_post(this, true);"'
,
'label'
=>
qa_lang_html
(
'profile/post_wall_button'
),
'label'
=>
qa_lang_html
(
'profile/post_wall_button'
),
...
@@ -940,17 +958,17 @@
...
@@ -940,17 +958,17 @@
}
}
foreach
(
$usermessages
as
$message
)
foreach
(
$usermessages
as
$message
)
$qa_content
[
'message_list'
][
'messages'
][]
=
qa_wall_post_view
(
$message
);
$qa_content
[
'message_list'
][
'messages'
][]
=
qa_wall_post_view
(
$message
);
if
(
$useraccount
[
'wallposts'
]
>
count
(
$usermessages
))
if
(
$useraccount
[
'wallposts'
]
>
count
(
$usermessages
))
$qa_content
[
'message_list'
][
'messages'
][]
=
qa_wall_view_more_link
(
$handle
,
count
(
$usermessages
));
$qa_content
[
'message_list'
][
'messages'
][]
=
qa_wall_view_more_link
(
$handle
,
count
(
$usermessages
));
}
}
// Sub menu for navigation in user pages
// Sub menu for navigation in user pages
$
qa_content
[
'navigation'
][
'sub'
]
=
qa_user_sub_navigation
(
$handle
,
'profile'
,
$
ismyuser
=
isset
(
$loginuserid
)
&&
$loginuserid
==
(
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$useraccount
[
'userid'
]);
isset
(
$loginuserid
)
&&
(
$loginuserid
==
(
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$useraccount
[
'userid'
]))
);
$qa_content
[
'navigation'
][
'sub'
]
=
qa_user_sub_navigation
(
$handle
,
'profile'
,
$ismyuser
);
return
$qa_content
;
return
$qa_content
;
...
...
qa-include/qa-page-user-questions.php
View file @
5f069e8f
...
@@ -35,15 +35,15 @@
...
@@ -35,15 +35,15 @@
// $handle, $userhtml are already set by qa-page-user.php - also $userid if using external user integration
// $handle, $userhtml are already set by qa-page-user.php - also $userid if using external user integration
$start
=
qa_get_start
();
$start
=
qa_get_start
();
// Find the questions for this user
// Find the questions for this user
$loginuserid
=
qa_get_logged_in_userid
();
$loginuserid
=
qa_get_logged_in_userid
();
$identifier
=
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$handle
;
$identifier
=
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$handle
;
list
(
$useraccount
,
$userpoints
,
$questions
)
=
qa_db_select_with_pending
(
list
(
$useraccount
,
$userpoints
,
$questions
)
=
qa_db_select_with_pending
(
QA_FINAL_EXTERNAL_USERS
?
null
:
qa_db_user_account_selectspec
(
$handle
,
false
),
QA_FINAL_EXTERNAL_USERS
?
null
:
qa_db_user_account_selectspec
(
$handle
,
false
),
qa_db_user_points_selectspec
(
$identifier
),
qa_db_user_points_selectspec
(
$identifier
),
qa_db_user_recent_qs_selectspec
(
$loginuserid
,
$identifier
,
qa_opt_if_loaded
(
'page_size_qs'
),
$start
)
qa_db_user_recent_qs_selectspec
(
$loginuserid
,
$identifier
,
qa_opt_if_loaded
(
'page_size_qs'
),
$start
)
...
@@ -55,25 +55,25 @@
...
@@ -55,25 +55,25 @@
// Get information on user questions
// Get information on user questions
$pagesize
=
qa_opt
(
'page_size_qs'
);
$pagesize
=
qa_opt
(
'page_size_qs'
);
$count
=
(
int
)
@
$userpoints
[
'qposts'
];
$count
=
(
int
)
@
$userpoints
[
'qposts'
];
$questions
=
array_slice
(
$questions
,
0
,
$pagesize
);
$questions
=
array_slice
(
$questions
,
0
,
$pagesize
);
$usershtml
=
qa_userids_handles_html
(
$questions
,
false
);
$usershtml
=
qa_userids_handles_html
(
$questions
,
false
);
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
(
true
);
$qa_content
=
qa_content_prepare
(
true
);
if
(
count
(
$questions
))
if
(
count
(
$questions
))
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/questions_by_x'
,
$userhtml
);
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/questions_by_x'
,
$userhtml
);
else
else
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/no_questions_by_x'
,
$userhtml
);
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/no_questions_by_x'
,
$userhtml
);
// Recent questions by this user
// Recent questions by this user
$qa_content
[
'q_list'
][
'form'
]
=
array
(
$qa_content
[
'q_list'
][
'form'
]
=
array
(
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'tags'
=>
'method="post" action="'
.
qa_self_html
()
.
'"'
,
'hidden'
=>
array
(
'hidden'
=>
array
(
...
@@ -81,23 +81,23 @@
...
@@ -81,23 +81,23 @@
),
),
);
);
$qa_content
[
'q_list'
][
'qs'
]
=
array
();
$qa_content
[
'q_list'
][
'qs'
]
=
array
();
$htmldefaults
=
qa_post_html_defaults
(
'Q'
);
$htmldefaults
=
qa_post_html_defaults
(
'Q'
);
$htmldefaults
[
'whoview'
]
=
false
;
$htmldefaults
[
'whoview'
]
=
false
;
$htmldefaults
[
'avatarsize'
]
=
0
;
$htmldefaults
[
'avatarsize'
]
=
0
;
foreach
(
$questions
as
$question
)
foreach
(
$questions
as
$question
)
$qa_content
[
'q_list'
][
'qs'
][]
=
qa_post_html_fields
(
$question
,
$loginuserid
,
qa_cookie_get
(),
$qa_content
[
'q_list'
][
'qs'
][]
=
qa_post_html_fields
(
$question
,
$loginuserid
,
qa_cookie_get
(),
$usershtml
,
null
,
qa_post_html_options
(
$question
,
$htmldefaults
));
$usershtml
,
null
,
qa_post_html_options
(
$question
,
$htmldefaults
));
$qa_content
[
'page_links'
]
=
qa_html_page_links
(
qa_request
(),
$start
,
$pagesize
,
$count
,
qa_opt
(
'pages_prev_next'
));
$qa_content
[
'page_links'
]
=
qa_html_page_links
(
qa_request
(),
$start
,
$pagesize
,
$count
,
qa_opt
(
'pages_prev_next'
));
// Sub menu for navigation in user pages
// Sub menu for navigation in user pages
$
qa_content
[
'navigation'
][
'sub'
]
=
qa_user_sub_navigation
(
$handle
,
'questions'
,
$
ismyuser
=
isset
(
$loginuserid
)
&&
$loginuserid
==
(
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$useraccount
[
'userid'
]);
isset
(
$loginuserid
)
&&
(
$loginuserid
==
(
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$useraccount
[
'userid'
]))
);
$qa_content
[
'navigation'
][
'sub'
]
=
qa_user_sub_navigation
(
$handle
,
'questions'
,
$ismyuser
);
return
$qa_content
;
return
$qa_content
;
...
...
qa-include/qa-page-user-wall.php
View file @
5f069e8f
...
@@ -41,12 +41,12 @@
...
@@ -41,12 +41,12 @@
// $handle, $userhtml are already set by qa-page-user.php
// $handle, $userhtml are already set by qa-page-user.php
$start
=
qa_get_start
();
$start
=
qa_get_start
();
// Find the questions for this user
// Find the questions for this user
list
(
$useraccount
,
$usermessages
)
=
qa_db_select_with_pending
(
list
(
$useraccount
,
$usermessages
)
=
qa_db_select_with_pending
(
qa_db_user_account_selectspec
(
$handle
,
false
),
qa_db_user_account_selectspec
(
$handle
,
false
),
qa_db_recent_messages_selectspec
(
null
,
null
,
$handle
,
false
,
qa_opt_if_loaded
(
'page_size_wall'
),
$start
)
qa_db_recent_messages_selectspec
(
null
,
null
,
$handle
,
false
,
qa_opt_if_loaded
(
'page_size_wall'
),
$start
)
);
);
...
@@ -57,24 +57,24 @@
...
@@ -57,24 +57,24 @@
// Perform pagination
// Perform pagination
$pagesize
=
qa_opt
(
'page_size_wall'
);
$pagesize
=
qa_opt
(
'page_size_wall'
);
$count
=
$useraccount
[
'wallposts'
];
$count
=
$useraccount
[
'wallposts'
];
$loginuserid
=
qa_get_logged_in_userid
();
$loginuserid
=
qa_get_logged_in_userid
();
$usermessages
=
array_slice
(
$usermessages
,
0
,
$pagesize
);
$usermessages
=
array_slice
(
$usermessages
,
0
,
$pagesize
);
$usermessages
=
qa_wall_posts_add_rules
(
$usermessages
,
$start
);
$usermessages
=
qa_wall_posts_add_rules
(
$usermessages
,
$start
);
// Process deleting or adding a wall post (similar but not identical code to qq-page-user-profile.php)
// Process deleting or adding a wall post (similar but not identical code to qq-page-user-profile.php)
$errors
=
array
();
$errors
=
array
();
$wallposterrorhtml
=
qa_wall_error_html
(
$loginuserid
,
$useraccount
[
'userid'
],
$useraccount
[
'flags'
]);
$wallposterrorhtml
=
qa_wall_error_html
(
$loginuserid
,
$useraccount
[
'userid'
],
$useraccount
[
'flags'
]);
foreach
(
$usermessages
as
$message
)
foreach
(
$usermessages
as
$message
)
if
(
$message
[
'deleteable'
]
&&
qa_clicked
(
'm'
.
$message
[
'messageid'
]
.
'_dodelete'
))
{
if
(
$message
[
'deleteable'
]
&&
qa_clicked
(
'm'
.
$message
[
'messageid'
]
.
'_dodelete'
))
{
if
(
!
qa_check_form_security_code
(
'wall-'
.
$useraccount
[
'handle'
],
qa_post_text
(
'code'
)))
if
(
!
qa_check_form_security_code
(
'wall-'
.
$useraccount
[
'handle'
],
qa_post_text
(
'code'
)))
$errors
[
'page'
]
=
qa_lang_html
(
'misc/form_security_again'
);
$errors
[
'page'
]
=
qa_lang_html
(
'misc/form_security_again'
);
else
{
else
{
qa_wall_delete_post
(
$loginuserid
,
qa_get_logged_in_handle
(),
qa_cookie_get
(),
$message
);
qa_wall_delete_post
(
$loginuserid
,
qa_get_logged_in_handle
(),
qa_cookie_get
(),
$message
);
...
@@ -83,13 +83,13 @@
...
@@ -83,13 +83,13 @@
}
}
if
(
qa_clicked
(
'dowallpost'
))
{
if
(
qa_clicked
(
'dowallpost'
))
{
$inmessage
=
qa_post_text
(
'message'
);
$inmessage
=
qa_post_text
(
'message'
);
if
(
!
strlen
(
$inmessage
))
if
(
!
strlen
(
$inmessage
))
$errors
[
'message'
]
=
qa_lang
(
'profile/post_wall_empty'
);
$errors
[
'message'
]
=
qa_lang
(
'profile/post_wall_empty'
);
elseif
(
!
qa_check_form_security_code
(
'wall-'
.
$useraccount
[
'handle'
],
qa_post_text
(
'code'
)))
elseif
(
!
qa_check_form_security_code
(
'wall-'
.
$useraccount
[
'handle'
],
qa_post_text
(
'code'
)))
$errors
[
'message'
]
=
qa_lang_html
(
'misc/form_security_again'
);
$errors
[
'message'
]
=
qa_lang_html
(
'misc/form_security_again'
);
elseif
(
!
$wallposterrorhtml
)
{
elseif
(
!
$wallposterrorhtml
)
{
qa_wall_add_post
(
$loginuserid
,
qa_get_logged_in_handle
(),
qa_cookie_get
(),
$useraccount
[
'userid'
],
$useraccount
[
'handle'
],
$inmessage
,
''
);
qa_wall_add_post
(
$loginuserid
,
qa_get_logged_in_handle
(),
qa_cookie_get
(),
$useraccount
[
'userid'
],
$useraccount
[
'handle'
],
$inmessage
,
''
);
...
@@ -100,14 +100,14 @@
...
@@ -100,14 +100,14 @@
// Prepare content for theme
// Prepare content for theme
$qa_content
=
qa_content_prepare
();
$qa_content
=
qa_content_prepare
();
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/wall_for_x'
,
$userhtml
);
$qa_content
[
'title'
]
=
qa_lang_html_sub
(
'profile/wall_for_x'
,
$userhtml
);
$qa_content
[
'error'
]
=
@
$errors
[
'page'
];
$qa_content
[
'error'
]
=
@
$errors
[
'page'
];
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-user.js?'
.
QA_VERSION
;
$qa_content
[
'script_rel'
][]
=
'qa-content/qa-user.js?'
.
QA_VERSION
;
$qa_content
[
'message_list'
]
=
array
(
$qa_content
[
'message_list'
]
=
array
(
'tags'
=>
'id="wallmessages"'
,
'tags'
=>
'id="wallmessages"'
,
'form'
=>
array
(
'form'
=>
array
(
...
@@ -126,10 +126,10 @@
...
@@ -126,10 +126,10 @@
if
(
$start
==
0
)
{
// only allow posting on first page
if
(
$start
==
0
)
{
// only allow posting on first page
if
(
$wallposterrorhtml
)
if
(
$wallposterrorhtml
)
$qa_content
[
'message_list'
][
'error'
]
=
$wallposterrorhtml
;
// an error that means we are not allowed to post
$qa_content
[
'message_list'
][
'error'
]
=
$wallposterrorhtml
;
// an error that means we are not allowed to post
else
{
else
{
$qa_content
[
'message_list'
][
'form'
][
'fields'
]
=
array
(
$qa_content
[
'message_list'
][
'form'
][
'fields'
]
=
array
(
'message'
=>
array
(
'message'
=>
array
(
'tags'
=>
'name="message" id="message"'
,
'tags'
=>
'name="message" id="message"'
,
'value'
=>
qa_html
(
@
$inmessage
,
false
),
'value'
=>
qa_html
(
@
$inmessage
,
false
),
...
@@ -138,7 +138,7 @@
...
@@ -138,7 +138,7 @@
),
),
);
);
$qa_content
[
'message_list'
][
'form'
][
'buttons'
]
=
array
(
$qa_content
[
'message_list'
][
'form'
][
'buttons'
]
=
array
(
'post'
=>
array
(
'post'
=>
array
(
'tags'
=>
'name="dowallpost" onclick="return qa_submit_wall_post(this, false);"'
,
'tags'
=>
'name="dowallpost" onclick="return qa_submit_wall_post(this, false);"'
,
'label'
=>
qa_lang_html
(
'profile/post_wall_button'
),
'label'
=>
qa_lang_html
(
'profile/post_wall_button'
),
...
@@ -148,15 +148,15 @@
...
@@ -148,15 +148,15 @@
}
}
foreach
(
$usermessages
as
$message
)
foreach
(
$usermessages
as
$message
)
$qa_content
[
'message_list'
][
'messages'
][]
=
qa_wall_post_view
(
$message
);
$qa_content
[
'message_list'
][
'messages'
][]
=
qa_wall_post_view
(
$message
);
$qa_content
[
'page_links'
]
=
qa_html_page_links
(
qa_request
(),
$start
,
$pagesize
,
$count
,
qa_opt
(
'pages_prev_next'
));
$qa_content
[
'page_links'
]
=
qa_html_page_links
(
qa_request
(),
$start
,
$pagesize
,
$count
,
qa_opt
(
'pages_prev_next'
));
// Sub menu for navigation in user pages
// Sub menu for navigation in user pages
$qa_content
[
'navigation'
][
'sub'
]
=
qa_user_sub_navigation
(
$handle
,
'wall'
,
$qa_content
[
'navigation'
][
'sub'
]
=
qa_user_sub_navigation
(
$handle
,
'wall'
,
isset
(
$loginuserid
)
&&
(
$loginuserid
==
(
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$useraccount
[
'userid'
]))
);
isset
(
$loginuserid
)
&&
(
$loginuserid
==
(
QA_FINAL_EXTERNAL_USERS
?
$userid
:
$useraccount
[
'userid'
]))
);
return
$qa_content
;
return
$qa_content
;
...
...
qa-include/qa-page-user.php
View file @
5f069e8f
...
@@ -32,25 +32,27 @@
...
@@ -32,25 +32,27 @@
// Determine the identify of the user
// Determine the identify of the user
$handle
=
qa_request_part
(
1
);
$handle
=
qa_request_part
(
1
);
if
(
!
strlen
(
$handle
))
{
if
(
!
strlen
(
$handle
))
{
$handle
=
qa_get_logged_in_handle
();
$handle
=
qa_get_logged_in_handle
();
qa_redirect
(
isset
(
$handle
)
?
(
'user/'
.
$handle
)
:
'users'
);
qa_redirect
(
isset
(
$handle
)
?
'user/'
.
$handle
:
'users'
);
}
}
// Get the HTML to display for the handle, and if we're using external users, determine the userid
// Get the HTML to display for the handle, and if we're using external users, determine the userid
if
(
QA_FINAL_EXTERNAL_USERS
)
{
if
(
QA_FINAL_EXTERNAL_USERS
)
{
$userid
=
qa_handle_to_userid
(
$handle
);
$userid
=
qa_handle_to_userid
(
$handle
);
if
(
!
isset
(
$userid
))
if
(
!
isset
(
$userid
))
return
include
QA_INCLUDE_DIR
.
'qa-page-not-found.php'
;
return
include
QA_INCLUDE_DIR
.
'qa-page-not-found.php'
;
$usershtml
=
qa_get_users_html
(
array
(
$userid
),
false
,
qa_path_to_root
(),
true
);
$usershtml
=
qa_get_users_html
(
array
(
$userid
),
false
,
qa_path_to_root
(),
true
);
$userhtml
=
@
$usershtml
[
$userid
];
$userhtml
=
@
$usershtml
[
$userid
];
}
else
}
$userhtml
=
qa_html
(
$handle
);
else
$userhtml
=
qa_html
(
$handle
);
// Display the appropriate page based on the request
// Display the appropriate page based on the request
...
@@ -58,30 +60,30 @@
...
@@ -58,30 +60,30 @@
switch
(
qa_request_part
(
2
))
{
switch
(
qa_request_part
(
2
))
{
case
'wall'
:
case
'wall'
:
qa_set_template
(
'user-wall'
);
qa_set_template
(
'user-wall'
);
$qa_content
=
include
QA_INCLUDE_DIR
.
'qa-page-user-wall.php'
;
$qa_content
=
include
QA_INCLUDE_DIR
.
'qa-page-user-wall.php'
;
break
;
break
;
case
'activity'
:
case
'activity'
:
qa_set_template
(
'user-activity'
);
qa_set_template
(
'user-activity'
);
$qa_content
=
include
QA_INCLUDE_DIR
.
'qa-page-user-activity.php'
;
$qa_content
=
include
QA_INCLUDE_DIR
.
'qa-page-user-activity.php'
;
break
;
break
;
case
'questions'
:
case
'questions'
:
qa_set_template
(
'user-questions'
);
qa_set_template
(
'user-questions'
);
$qa_content
=
include
QA_INCLUDE_DIR
.
'qa-page-user-questions.php'
;
$qa_content
=
include
QA_INCLUDE_DIR
.
'qa-page-user-questions.php'
;
break
;
break
;
case
'answers'
:
case
'answers'
:
qa_set_template
(
'user-answers'
);
qa_set_template
(
'user-answers'
);
$qa_content
=
include
QA_INCLUDE_DIR
.
'qa-page-user-answers.php'
;
$qa_content
=
include
QA_INCLUDE_DIR
.
'qa-page-user-answers.php'
;
break
;
break
;
case
null
:
case
null
:
$qa_content
=
include
QA_INCLUDE_DIR
.
'qa-page-user-profile.php'
;
$qa_content
=
include
QA_INCLUDE_DIR
.
'qa-page-user-profile.php'
;
break
;
break
;
default
:
default
:
$qa_content
=
include
QA_INCLUDE_DIR
.
'qa-page-not-found.php'
;
$qa_content
=
include
QA_INCLUDE_DIR
.
'qa-page-not-found.php'
;
break
;
break
;
}
}
...
...
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