more app work

This commit is contained in:
friendica 2014-05-20 22:25:36 -07:00
parent cad481d94f
commit 5d9f924642
4 changed files with 77 additions and 28 deletions

View File

@ -93,7 +93,7 @@ function parse_app_description($f) {
break;
}
logger('require: ' . print_r($ret,true));
// logger('require: ' . print_r($ret,true));
}
if($ret) {
translate_system_apps($ret);
@ -156,9 +156,14 @@ function app_render($papp,$mode = 'view') {
function app_install($uid,$app) {
$app['uid'] = $uid;
if(app_installed($uid,$app))
app_update($app);
$x = app_update($app);
else
app_store($app);
$x = app_store($app);
if($x['success'])
return $x['app_id'];
return false;
}
function app_destroy($uid,$app) {
@ -199,14 +204,22 @@ function app_decode($s) {
function app_store($arr) {
// logger('app_store: ' . print_r($arr,true));
$darray = array();
$ret = array('success' => false);
$darray['app_url'] = ((x($arr,'url')) ? $arr['url'] : '');
$darray['app_channel'] = ((x($arr,'uid')) ? $arr['uid'] : 0);
if((! $darray['url']) || (! $darray['app_channel']))
if((! $darray['app_url']) || (! $darray['app_channel']))
return $ret;
if($arr['photo'] && ! strstr($arr['photo'],z_root())) {
$x = import_profile_photo($arr['photo'],get_observer_hash(),true);
$arr['photo'] = $x[1];
}
$darray['app_id'] = ((x($arr,'guid')) ? $arr['guid'] : random_string(). '.' . get_app()->get_hostname());
$darray['app_sig'] = ((x($arr,'sig')) ? $arr['sig'] : '');
$darray['app_author'] = ((x($arr,'author')) ? $arr['author'] : get_observer_hash());
@ -232,9 +245,10 @@ function app_store($arr) {
dbesc($darray['app_price']),
dbesc($darray['app_page'])
);
if($r)
if($r) {
$ret['success'] = true;
$ret['app_id'] = $darray['app_id'];
}
return $ret;
}
@ -247,9 +261,14 @@ function app_update($arr) {
$darray['app_url'] = ((x($arr,'url')) ? $arr['url'] : '');
$darray['app_channel'] = ((x($arr,'uid')) ? $arr['uid'] : 0);
$darray['app_id'] = ((x($arr,'guid')) ? $arr['guid'] : 0);
if((! $darray['url']) || (! $darray['app_channel']) || (! $darray['app_id']))
if((! $darray['app_url']) || (! $darray['app_channel']) || (! $darray['app_id']))
return $ret;
if($arr['photo'] && ! strstr($arr['photo'],z_root())) {
$x = import_profile_photo($arr['photo'],get_observer_hash(),true);
$arr['photo'] = $x[1];
}
$darray['app_sig'] = ((x($arr,'sig')) ? $arr['sig'] : '');
$darray['app_author'] = ((x($arr,'author')) ? $arr['author'] : get_observer_hash());
$darray['app_name'] = ((x($arr,'name')) ? escape_tags($arr['name']) : t('Unknown'));
@ -274,8 +293,10 @@ function app_update($arr) {
dbesc($darray['app_id']),
intval($darray['app_channel'])
);
if($r)
if($r) {
$ret['success'] = true;
$ret['app_id'] = $darray['app_id'];
}
return $ret;

View File

@ -7,6 +7,28 @@ function appman_post(&$a) {
if(! local_user())
return;
if($_POST['url']) {
$arr = array(
'uid' => intval($_REQUEST['uid']),
'url' => escape_tags($_REQUEST['url']),
'guid' => escape_tags($_REQUEST['guid']),
'author' => escape_tags($_REQUEST['author']),
'addr' => escape_tags($_REQUEST['addr']),
'name' => escape_tags($_REQUEST['name']),
'desc' => escape_tags($_REQUEST['desc']),
'photo' => escape_tags($_REQUEST['photo']),
'version' => escape_tags($_REQUEST['version']),
'price' => escape_tags($_REQUEST['price']),
'sig' => escape_tags($_REQUEST['sig'])
);
$_REQUEST['appid'] = app_install(local_user(),$arr);
if(app_installed(local_user(),$app))
info( t('App installed.') . EOL);
return;
}
$papp = app_decode($_POST['papp']);
if(! is_array($papp)) {
@ -39,7 +61,7 @@ function appman_content(&$a) {
$channel = $a->get_channel();
$app = null;
$embed = null;
if($_REQUEST['appid']) {
$r = q("select * from app where app_id = '%s' and app_channel = %d limit 1",
dbesc($_REQUEST['appid']),
@ -47,24 +69,26 @@ function appman_content(&$a) {
);
if($r)
$app = $r[0];
$embed = array('embed', t('Embed code'), app_encode($app,true),'');
}
return replace_macros(get_markup_template('app_create.tpl'), array(
'$banner' => t('Create App'),
'$app' => $app,
'$guid' => (($app) ? $app['app_id'] : ''),
'$author' => (($app) ? $app['app_author'] : $channel['channel_hash']),
'$addr' => (($app) ? $app['app_addr'] : $channel['xchan_addr']),
'$name' => array('name', t('Name of app'),(($app) ? $app['app_name'] : ''), t('Required')),
'$url' => array('url', t('Location (URL) of app'),(($app) ? $app['app_url'] : ''), t('Required')),
'$desc' => array('desc', t('Description'),(($app) ? $app['app_desc'] : ''), ''),
'$photo' => array('photo', t('Photo icon URL'),(($app) ? $app['app_url'] : ''), t('80 x 80 pixels - optional')),
'$version' => array('version', t('Version ID'),(($app) ? $app['app_version'] : ''), ''),
'$price' => array('price', t('Price of app'),(($app) ? $app['app_price'] : ''), ''),
'$page' => array('page', t('Location (URL) to purchase app'),(($app) ? $app['app_page'] : ''), ''),
'$submit' => t('Submit')
));
return replace_macros(get_markup_template('app_create.tpl'), array(
'$banner' => t('Create App'),
'$app' => $app,
'$guid' => (($app) ? $app['app_id'] : ''),
'$author' => (($app) ? $app['app_author'] : $channel['channel_hash']),
'$addr' => (($app) ? $app['app_addr'] : $channel['xchan_addr']),
'$name' => array('name', t('Name of app'),(($app) ? $app['app_name'] : ''), t('Required')),
'$url' => array('url', t('Location (URL) of app'),(($app) ? $app['app_url'] : ''), t('Required')),
'$desc' => array('desc', t('Description'),(($app) ? $app['app_desc'] : ''), ''),
'$photo' => array('photo', t('Photo icon URL'),(($app) ? $app['app_url'] : ''), t('80 x 80 pixels - optional')),
'$version' => array('version', t('Version ID'),(($app) ? $app['app_version'] : ''), ''),
'$price' => array('price', t('Price of app'),(($app) ? $app['app_price'] : ''), ''),
'$page' => array('page', t('Location (URL) to purchase app'),(($app) ? $app['app_page'] : ''), ''),
'$embed' => $embed,
'$submit' => t('Submit')
));
}

View File

@ -5,8 +5,8 @@
{{if $install || $update || $delete }}
<form action="appman" method="post">
<input type="hidden" name="papp" value="{{$app.papp}}" />
{{if $install}}<button type="submit" name="install" value="{{$install}}" class="btn btn-default" title="{{$install}}" /><i class="icon-download-alt" ></i></button>{{/if}}
{{if $delete}}<button type="submit" name="delete" value="{{$delete}}" class="btn btn-default" title="{{$delete}}" /><i class="icon-remove drop-icons"></i></button>{{/if}}
{{if $install}}<button type="submit" name="install" value="{{$install}}" class="btn btn-default" title="{{$install}}" ><i class="icon-download-alt" ></i></button>{{/if}}
{{if $delete}}<button type="submit" name="delete" value="{{$delete}}" class="btn btn-default" title="{{$delete}}" ><i class="icon-remove drop-icons"></i></button>{{/if}}
</form>
{{/if}}
</div>

View File

@ -14,12 +14,16 @@
{{include file="field_input.tpl" field=$name}}
{{include file="field_input.tpl" field=$url}}
{{include file="field_input.tpl" field=$desc}}
{{include file="field_textarea.tpl" field=$desc}}
{{include file="field_input.tpl" field=$photo}}
{{include file="field_input.tpl" field=$version}}
{{include file="field_input.tpl" field=$price}}
{{include file="field_input.tpl" field=$page}}
{{if $embed}}
{{include file="field_textarea.tpl" field=$embed}}
{{/if}}
<input type="submit" name="submit" value="{{$submit}}" />
</form>