Hope I have repaired the channel admin page.

Channel blocking and deleting was copied from user actions. This was not
done to an end. Hope what I do is enough to enable channel blocking and
deleting the correct way.

On deletion all entities that belong to the channel are deleted. But the
channel itself is just marked as deleted. Do not really understand why
it is done this way.
This commit is contained in:
sasiflo 2014-04-06 00:34:52 +02:00
parent 8b0721cf35
commit 9f54a8f96b
5 changed files with 50 additions and 63 deletions

View file

@ -263,7 +263,7 @@ function channel_remove($channel_id, $local = true) {
q("DELETE FROM `event` WHERE `uid` = %d", intval($channel_id));
q("DELETE FROM `item` WHERE `uid` = %d", intval($channel_id));
q("DELETE FROM `item_id` WHERE `uid` = %d", intval($channel_id));
q("DELETE FROM `mail` WHERE `uid` = %d", intval($channel_id));
q("DELETE FROM `mail` WHERE `channel_id` = %d", intval($channel_id));
q("DELETE FROM `notify` WHERE `uid` = %d", intval($channel_id));
q("DELETE FROM `photo` WHERE `uid` = %d", intval($channel_id));
q("DELETE FROM `attach` WHERE `uid` = %d", intval($channel_id));

View file

@ -783,41 +783,28 @@ function admin_page_users(&$a){
* @param App $a
*/
function admin_page_channels_post(&$a){
$pending = ( x($_POST, 'pending') ? $_POST['pending'] : Array() );
$users = ( x($_POST, 'user') ? $_POST['user'] : Array() );
$channels = ( x($_POST, 'channel') ? $_POST['channel'] : Array() );
check_form_security_token_redirectOnErr('/admin/users', 'admin_users');
check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels');
if (x($_POST,'page_users_block')){
foreach($users as $uid){
q("UPDATE account SET account_flags = (account_flags & %d) where account_id = %d limit 1",
intval(ACCOUNT_BLOCKED),
if (x($_POST,'page_channels_block')){
foreach($channels as $uid){
q("UPDATE channel SET channel_pageflags = ( channel_pageflags ^ %d ) where channel_id = %d",
intval(PAGE_CENSORED),
intval( $uid )
);
);
}
notice( sprintf( tt("%s user blocked/unblocked", "%s users blocked/unblocked", count($users)), count($users)) );
notice( sprintf( tt("%s channel censored/uncensored", "%s channelss censored/uncensored", count($channels)), count($channels)) );
}
if (x($_POST,'page_users_delete')){
if (x($_POST,'page_channels_delete')){
require_once("include/Contact.php");
foreach($users as $uid){
account_remove($uid,true);
foreach($channels as $uid){
channel_remove($uid,true);
}
notice( sprintf( tt("%s user deleted", "%s users deleted", count($users)), count($users)) );
notice( sprintf( tt("%s channel deleted", "%s channels deleted", count($channels)), count($channels)) );
}
if (x($_POST,'page_users_approve')){
require_once('include/account.php');
foreach($pending as $hash){
user_allow($hash);
}
}
if (x($_POST,'page_users_deny')){
require_once('include/account.php');
foreach($pending as $hash){
user_deny($hash);
}
}
goaway($a->get_baseurl(true) . '/admin/users' );
goaway($a->get_baseurl(true) . '/admin/channels' );
return; // NOTREACHED
}
@ -838,17 +825,17 @@ function admin_page_channels(&$a){
}
switch(argv(2)){
// case "delete":{
// check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't');
// delete user
// require_once("include/Contact.php");
// account_remove($uid,true);
case "delete":{
check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't');
// delete channel
require_once("include/Contact.php");
channel_remove($uid,true);
// notice( sprintf(t("User '%s' deleted"), $account[0]['account_email']) . EOL);
// }; break;
notice( sprintf(t("Channel '%s' deleted"), $channel[0]['channel_name']) . EOL);
}; break;
case "block":{
check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't');
check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't');
q("UPDATE channel SET channel_pageflags = ( channel_pageflags ^ %d ) where channel_id = %d",
intval(PAGE_CENSORED),
intval( $uid )
@ -857,7 +844,7 @@ function admin_page_channels(&$a){
notice( sprintf( (($channel[0]['channel_pageflags'] & PAGE_CENSORED) ? t("Channel '%s' uncensored"): t("Channel '%s' censored")) , $channel[0]['channel_name'] . ' (' . $channel[0]['channel_address'] . ')' ) . EOL);
}; break;
}
goaway($a->get_baseurl(true) . '/admin/users' );
goaway($a->get_baseurl(true) . '/admin/channels' );
return ''; // NOTREACHED
}
@ -874,18 +861,18 @@ function admin_page_channels(&$a){
$order = " order by channel_name asc ";
$users = q("SELECT * from channel where not ( channel_pageflags & %d ) $order limit %d , %d ",
$channels = q("SELECT * from channel where not ( channel_pageflags & %d ) $order limit %d , %d ",
intval(PAGE_REMOVED),
intval($a->pager['start']),
intval($a->pager['itemspage'])
);
if($users) {
for($x = 0; $x < count($users); $x ++) {
if($users[$x]['channel_pageflags'] & PAGE_CENSORED)
$users[$x]['blocked'] = true;
if($channels) {
for($x = 0; $x < count($channels); $x ++) {
if($channels[$x]['channel_pageflags'] & PAGE_CENSORED)
$channels[$x]['blocked'] = true;
else
$users[$x]['blocked'] = false;
$channels[$x]['blocked'] = false;
}
}
@ -900,17 +887,17 @@ function admin_page_channels(&$a){
'$block' => t('Censor'),
'$unblock' => t('Uncensor'),
'$h_users' => t('Channel'),
'$th_users' => array( t('UID'), t('Name'), t('Address')),
'$h_channels' => t('Channel'),
'$th_channels' => array( t('UID'), t('Name'), t('Address')),
'$confirm_delete_multi' => t('Selected users will be deleted!\n\nEverything these users had posted on this site will be permanently deleted!\n\nAre you sure?'),
'$confirm_delete' => t('The user {0} will be deleted!\n\nEverything this user has posted on this site will be permanently deleted!\n\nAre you sure?'),
'$confirm_delete_multi' => t('Selected channels will be deleted!\n\nEverything that was posted in these channels on this site will be permanently deleted!\n\nAre you sure?'),
'$confirm_delete' => t('The channel {0} will be deleted!\n\nEverything that was posted in this channel on this site will be permanently deleted!\n\nAre you sure?'),
'$form_security_token' => get_form_security_token("admin_channels"),
// values //
'$baseurl' => $a->get_baseurl(true),
'$users' => $users,
'$channels' => $channels,
));
$o .= paginate($a);
return $o;

View file

@ -6318,7 +6318,7 @@ msgstr "Du hast %1$.0f von maximal %2$.0f erlaubten Kanälen eingerichtet."
#: ../../mod/manage.php:72
msgid "Create a new channel"
msgstr "Erzeuge neues Kanal"
msgstr "Erzeuge neuen Kanal"
#: ../../mod/manage.php:77
msgid "Channel Manager"

View file

@ -1485,7 +1485,7 @@ $a->strings["Your old login password"] = "Ihr altes Login Kennwort";
$a->strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Egal welche Option Du wählst, bitte lege fest, ob dieser Server die neue primäre Adresse dieses Kanals sein soll, oder ob der bisherige Red-Server diese Rolle weiterhin wahrnimmt. Du kannst von beiden Servern aus posten, aber nur einer kann der primäre Ort Deiner Dateien, Fotos und Medien sein.";
$a->strings["Make this hub my primary location"] = "Dieser Red-Server ist mein primärer Server.";
$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Du hast %1$.0f von maximal %2$.0f erlaubten Kanälen eingerichtet.";
$a->strings["Create a new channel"] = "Erzeuge neues Kanal";
$a->strings["Create a new channel"] = "Erzeuge neuen Kanal";
$a->strings["Channel Manager"] = "Kanal-Manager";
$a->strings["Current Channel"] = "Aktueller Kanal";
$a->strings["Attach to one of your channels by selecting it."] = "Wähle einen Deiner Kanäle aus, um ihn zu verwenden.";

View file

@ -16,35 +16,35 @@
<form action="{{$baseurl}}/admin/channels" method="post">
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
<h3>{{$h_users}}</h3>
{{if $users}}
<h3>{{$h_channels}}</h3>
{{if $channels}}
<table id='channels'>
<thead>
<tr>
{{foreach $th_users as $th}}<th>{{$th}}</th>{{/foreach}}
{{foreach $th_channels as $th}}<th>{{$th}}</th>{{/foreach}}
<th></th>
<th></th>
</tr>
</thead>
<tbody>
{{foreach $users as $u}}
{{foreach $channels as $c}}
<tr>
<td class='channel_id'>{{$u.channel_id}}</td>
<td class='channel_name'>{{$u.channel_name}}</td>
<td class='channel_address'>{{$u.channel_address}}</td>
<td class="checkbox"><input type="checkbox" class="users_ckbx" id="id_user_{{$u.account_id}}" name="user[]" value="{{$u.account_id}}"/></td>
<td class='channel_id'>{{$c.channel_id}}</td>
<td class='channel_name'>{{$c.channel_name}}</td>
<td class='channel_address'>{{$c.channel_address}}</td>
<td class="checkbox"><input type="checkbox" class="channels_ckbx" id="id_channel_{{$c.channel_id}}" name="channel[]" value="{{$c.channel_id}}"/></td>
<td class="tools">
<a href="{{$baseurl}}/admin/users/block/{{$u.account_id}}?t={{$form_security_token}}" title='{{if ($u.blocked)}}{{$unblock}}{{else}}{{$block}}{{/if}}'><i class='icon-ban-circle admin-icons {{if ($u.blocked)}}dim{{/if}}'></i></a>
<a href="{{$baseurl}}/admin/users/delete/{{$u.account_id}}?t={{$form_security_token}}" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><i class='icon-remove admin-icons'></i></a>
<a href="{{$baseurl}}/admin/channels/block/{{$c.channel_id}}?t={{$form_security_token}}" title='{{if ($c.blocked)}}{{$unblock}}{{else}}{{$block}}{{/if}}'><i class='icon-ban-circle admin-icons {{if ($c.blocked)}}dim{{/if}}'></i></a>
<a href="{{$baseurl}}/admin/channels/delete/{{$c.channel_id}}?t={{$form_security_token}}" title='{{$delete}}' onclick="return confirm_delete('{{$c.channel_name}}')"><i class='icon-remove admin-icons'></i></a>
</td>
</tr>
{{/foreach}}
</tbody>
</table>
<div class='selectall'><a href='#' onclick="return selectall('users_ckbx');">{{$select_all}}</a></div>
<div class="submit"><input type="submit" name="page_users_block" value="{{$block}}/{{$unblock}}" /> <input type="submit" name="page_channels_delete" value="{{$delete}}" onclick="return confirm_delete_multi()" /></div>
<div class='selectall'><a href='#' onclick="return selectall('channels_ckbx');">{{$select_all}}</a></div>
<div class="submit"><input type="submit" name="page_channels_block" value="{{$block}}/{{$unblock}}" /> <input type="submit" name="page_channels_delete" value="{{$delete}}" onclick="return confirm_delete_multi()" /></div>
{{else}}
NO USERS?!?
NO CHANNELS?!?
{{/if}}
</form>
</div>