2013-09-02 00:07:55 +00:00
< ? php
// What is this here for? I think it's cruft, but comment out for now in case it's here for a reason
// require_once('acl_selectors.php');
function editblock_content ( & $a ) {
// We first need to figure out who owns the webpage, grab it from an argument
$which = argv ( 1 );
// $a->get_channel() and stuff don't work here, so we've got to find the owner for ourselves.
$r = q ( " select channel_id from channel where channel_address = '%s' " ,
dbesc ( $which )
);
if ( $r ) {
$owner = intval ( $r [ 0 ][ 'channel_id' ]);
//logger('owner: ' . print_r($owner,true));
}
if (( local_user ()) && ( argc () > 2 ) && ( argv ( 2 ) === 'view' )) {
$which = $channel [ 'channel_address' ];
}
$o = '' ;
// Figure out which post we're editing
$post_id = (( argc () > 2 ) ? intval ( argv ( 2 )) : 0 );
if ( ! $post_id ) {
notice ( t ( 'Item not found' ) . EOL );
return ;
}
// Now we've got a post and an owner, let's find out if we're allowed to edit it
$observer = $a -> get_observer ();
$ob_hash = (( $observer ) ? $observer [ 'xchan_hash' ] : '' );
$perms = get_all_perms ( $owner , $ob_hash );
if ( ! $perms [ 'write_pages' ]) {
notice ( t ( 'Permission denied.' ) . EOL );
return ;
}
// We've already figured out which item we want and whose copy we need, so we don't need anything fancy here
$itm = q ( " SELECT * FROM `item` WHERE `id` = %d and uid = %s LIMIT 1 " ,
intval ( $post_id ),
intval ( $owner )
);
2014-01-12 01:06:59 +00:00
$item_id = q ( " select * from item_id where service = 'BUILDBLOCK' and iid = %d limit 1 " ,
$itm [ 0 ][ 'id' ]
);
if ( $item_id )
$block_title = $item_id [ 0 ][ 'sid' ];
2013-09-02 00:07:55 +00:00
$plaintext = true ;
// You may or may not be a local user. This won't work,
if ( feature_enabled ( local_user (), 'richtext' ))
$plaintext = false ;
2013-09-06 10:10:25 +00:00
$mimeselect = '' ;
if ( $mimetype != 'text/bbcode' )
$plaintext = true ;
if ( get_config ( 'system' , 'page_mimetype' ))
$mimeselect = '<input type="hidden" name="mimetype" value="' . $mimetype . '" />' ;
else
2013-09-06 10:56:47 +00:00
$mimeselect = mimetype_select ( $itm [ 0 ][ 'uid' ], $mimetype );
2013-09-06 10:10:25 +00:00
2013-09-02 00:07:55 +00:00
$o .= replace_macros ( get_markup_template ( 'edpost_head.tpl' ), array (
2013-09-06 11:07:43 +00:00
'$title' => t ( 'Edit Block' )
2013-09-02 00:07:55 +00:00
));
$a -> page [ 'htmlhead' ] .= replace_macros ( get_markup_template ( 'jot-header.tpl' ), array (
'$baseurl' => $a -> get_baseurl (),
'$editselect' => (( $plaintext ) ? 'none' : '/(profile-jot-text|prvmail-text)/' ),
'$ispublic' => ' ' , // t('Visible to <strong>everybody</strong>'),
'$geotag' => $geotag ,
2014-01-12 01:29:03 +00:00
'$nickname' => $a -> user [ 'nickname' ],
'$confirmdelete' => t ( 'Delete block?' )
2013-09-02 00:07:55 +00:00
));
$tpl = get_markup_template ( " jot.tpl " );
$jotplugins = '' ;
$jotnets = '' ;
call_hooks ( 'jot_tool' , $jotplugins );
call_hooks ( 'jot_networks' , $jotnets );
$channel = $a -> get_channel ();
//$tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins));
//FIXME A return path with $_SESSION doesn't always work for observer - it may WSoD instead of loading a sensible page. So, send folk to the webpage list.
$rp = '/blocks/' . $which ;
$o .= replace_macros ( $tpl , array (
'$return_path' => $rp ,
'$action' => 'item' ,
2014-01-04 21:44:43 +00:00
'$webpage' => ITEM_BUILDBLOCK ,
2013-09-02 00:07:55 +00:00
'$share' => t ( 'Edit' ),
'$upload' => t ( 'Upload photo' ),
'$attach' => t ( 'Attach file' ),
'$weblink' => t ( 'Insert web link' ),
'$youtube' => t ( 'Insert YouTube video' ),
'$video' => t ( 'Insert Vorbis [.ogg] video' ),
'$audio' => t ( 'Insert Vorbis [.ogg] audio' ),
'$setloc' => t ( 'Set your location' ),
'$noloc' => t ( 'Clear browser location' ),
'$wait' => t ( 'Please wait' ),
'$permset' => t ( 'Permission settings' ),
'$ptyp' => $itm [ 0 ][ 'type' ],
2013-09-06 10:10:25 +00:00
'$mimeselect' => $mimeselect ,
2013-09-02 00:07:55 +00:00
'$content' => undo_post_tagging ( $itm [ 0 ][ 'body' ]),
'$post_id' => $post_id ,
'$baseurl' => $a -> get_baseurl (),
'$defloc' => $channel [ 'channel_location' ],
'$visitor' => 'none' ,
'$pvisit' => 'none' ,
'$public' => t ( 'Public post' ),
'$jotnets' => $jotnets ,
2013-12-12 10:01:42 +00:00
'$title' => htmlspecialchars ( $itm [ 0 ][ 'title' ], ENT_COMPAT , 'UTF-8' ),
2013-09-02 00:07:55 +00:00
'$placeholdertitle' => t ( 'Set title' ),
2014-01-12 01:06:59 +00:00
'$pagetitle' => $block_title ,
2013-09-02 00:07:55 +00:00
'$category' => '' ,
'$placeholdercategory' => t ( 'Categories (comma-separated list)' ),
'$emtitle' => t ( 'Example: bob@example.com, mary@example.com' ),
'$lockstate' => $lockstate ,
'$acl' => '' ,
'$bang' => '' ,
'$profile_uid' => ( intval ( $owner )),
'$preview' => (( feature_enabled ( local_user (), 'preview' )) ? t ( 'Preview' ) : '' ),
'$jotplugins' => $jotplugins ,
'$sourceapp' => t ( $a -> sourcename ),
2013-11-07 08:47:50 +00:00
'$defexpire' => '' ,
'$feature_expire' => 'none' ,
'$expires' => t ( 'Set expiration date' ),
2013-09-02 00:07:55 +00:00
));
2013-09-06 11:07:43 +00:00
$ob = get_observer_hash ();
if (( $itm [ 0 ][ 'author_xchan' ] === $ob ) || ( $itm [ 0 ][ 'owner_xchan' ] === $ob ))
2014-01-12 01:29:03 +00:00
$o .= '<br /><br /><a class="block-delete-link" href="item/drop/' . $itm [ 0 ][ 'id' ] . '" >' . t ( 'Delete Block' ) . '</a><br />' ;
2013-09-06 11:07:43 +00:00
2013-09-02 00:07:55 +00:00
return $o ;
}