Merge branch 'pocorate'

This commit is contained in:
friendica 2015-01-15 17:34:53 -08:00
commit 6cd26c3590
11 changed files with 156 additions and 6 deletions

View File

@ -49,7 +49,7 @@ define ( 'RED_PLATFORM', 'redmatrix' );
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R');
define ( 'ZOT_REVISION', 1 );
define ( 'DB_UPDATE_VERSION', 1131 );
define ( 'DB_UPDATE_VERSION', 1132 );
/**
* Constant with a HTML line break.

View File

@ -117,6 +117,7 @@ function poco_load($xchan = '',$url = null) {
$name = $entry['displayName'];
$hash = $entry['hash'];
$rating = ((array_key_exists('rating',$entry)) ? intval($entry['rating']) : 0);
$rating = ((array_key_exists('rating_text',$entry)) ? escape_tags($entry['rating_text']) :'');
if(x($entry,'urls') && is_array($entry['urls'])) {
foreach($entry['urls'] as $url) {
@ -188,17 +189,19 @@ function poco_load($xchan = '',$url = null) {
);
if(! $r) {
q("insert into xlink ( xlink_xchan, xlink_link, xlink_rating, xlink_updated ) values ( '%s', '%s', %d, '%s' ) ",
q("insert into xlink ( xlink_xchan, xlink_link, xlink_rating, xlink_rating_text, xlink_updated ) values ( '%s', '%s', %d, '%s', '%s' ) ",
dbesc($xchan),
dbesc($hash),
intval($rating),
dbesc($rating_text),
dbesc(datetime_convert())
);
}
else {
q("update xlink set xlink_updated = '%s', xlink_rating = %d where xlink_id = %d",
q("update xlink set xlink_updated = '%s', xlink_rating = %d, xlink_rating_text = '%s' where xlink_id = %d",
dbesc(datetime_convert()),
intval($rating),
dbesc($rating_text),
intval($r[0]['xlink_id'])
);
}

View File

@ -1,6 +1,6 @@
<?php
define( 'UPDATE_VERSION' , 1131 );
define( 'UPDATE_VERSION' , 1132 );
/**
*
@ -1483,4 +1483,14 @@ function update_r1130() {
);
return UPDATE_SUCCESS;
}
function update_r1131() {
$r1 = q("ALTER TABLE `abook` ADD `abook_rating_text` TEXT NOT NULL DEFAULT '' AFTER `abook_rating` ");
$r2 = q("ALTER TABLE `xlink` ADD `xlink_rating_text` TEXT NOT NULL DEFAULT '' AFTER `xlink_rating` ");
if($r1 && $r2)
return UPDATE_SUCCESS;
return UPDATE_FAILED;
}

View File

@ -107,6 +107,14 @@ function connedit_post(&$a) {
if($closeness < 0)
$closeness = 99;
$rating = intval($_POST['rating']);
if($rating < (-10))
$rating = (-10);
if($rating > 10)
$rating = 10;
$rating_text = escape_tags($_REQUEST['rating_text']);
$abook_my_perms = 0;
foreach($_POST as $k => $v) {
@ -125,11 +133,13 @@ function connedit_post(&$a) {
$new_friend = true;
}
$r = q("UPDATE abook SET abook_profile = '%s', abook_my_perms = %d , abook_closeness = %d, abook_flags = %d
$r = q("UPDATE abook SET abook_profile = '%s', abook_my_perms = %d , abook_closeness = %d, abook_rating = %d, abook_rating_text = '%s', abook_flags = %d
where abook_id = %d AND abook_channel = %d",
dbesc($profile_id),
intval($abook_my_perms),
intval($closeness),
intval($rating),
dbesc($rating_text),
intval($abook_flags),
intval($contact_id),
intval(local_user())
@ -524,6 +534,22 @@ function connedit_content(&$a) {
));
}
$poco_rating = get_config('system','poco_rating_enable');
// if unset default to enabled
if($poco_rating === false)
$poco_rating = true;
if($poco_rating) {
$rating = replace_macros(get_markup_template('rating_slider.tpl'),array(
'$min' => -10,
'$val' => (($contact['abook_rating']) ? $contact['abook_rating'] : 0),
));
}
else {
$rating = false;
}
$perms = array();
$channel = $a->get_channel();
@ -555,6 +581,11 @@ function connedit_content(&$a) {
'$buttons' => (($self) ? '' : $buttons),
'$viewprof' => t('View Profile'),
'$lbl_slider' => t('Slide to adjust your degree of friendship'),
'$lbl_rating' => t('Rating (this information may be public)'),
'$lbl_rating_txt' => t('Optionally explain your rating (this information may be public)'),
'$rating_txt' => $contact['abook_rating_text'],
'$rating' => $rating,
'$rating_val' => $contact['abook_rating'],
'$slide' => $slide,
'$tabs' => $t,
'$tab_str' => $tab_str,

View File

@ -178,7 +178,8 @@ function poco_init(&$a) {
if($fields_ret['photos'])
$entry['photos'] = array(array('value' => $rr['xchan_photo_l'], 'mimetype' => $rr['xchan_photo_mimetype'], 'type' => 'profile'));
if($fields_ret['rating']) {
$entry['rating'] = ((array_key_exists('abook_rating',$rr)) ? array(intval($rr['abook_rating'])) : 0);
$entry['rating'] = ((array_key_exists('abook_rating',$rr)) ? intval($rr['abook_rating'])) : 0);
$entry['rating_text'] = ((array_key_exists('abook_rating_text',$rr)) ? $rr['abook_rating_text'])) : '');
// maybe this should be a composite calculated rating in $system_mode
if($system_mode)
$entry['rating'] = 0;

38
mod/prep.php Normal file
View File

@ -0,0 +1,38 @@
<?php
function prep_content(&$a) {
if(argc() > 1)
$hash = argv(1);
if(! $hash) {
notice('Must supply a channel identififier.');
return;
}
$p = q("select * from xchan where xchan_hash like '%s'",
dbesc($hash . '%')
);
$r = q("select * from xlink left join xchan on xlink_xchan = xchan_hash where xlink_link like '%s' and xlink_rating != 0",
dbesc($hash . '%')
);
$ret = array();
if($p && $r) {
$ret['poi'] = $p[0];
$ret['raters'] = $r;
$o = replace_macros(get_markup_template('prep.tpl'),array(
'$header' => t('Ratings'),
'$poi' => $p[0],
'$raters' => $r
));
return $o;
}
return '';
}

View File

@ -52,6 +52,15 @@
width: 600px !important;
}
#rating-slider {
width: 600px !important;
}
#rating-text {
width: 400px;
height: 60px;
}
.abook-edit-them, .abook-edit-me {
float: left;
margin-left: 10px;

View File

@ -43,6 +43,15 @@
{{$slide}}
{{/if}}
{{if $rating}}
<h3>{{$lbl_rating}}</h3>
{{$rating}}
{{/if}}
{{/if}}
@ -57,6 +66,7 @@
<input type="hidden" name="contact_id" value="{{$contact_id}}">
<input id="contact-closeness-mirror" type="hidden" name="closeness" value="{{$close}}" />
<input id="contact-rating-mirror" type="hidden" name="rating" value="{{$rating_val}}" />
@ -66,6 +76,13 @@
</div>
{{/if}}
{{if $rating}}
{{if $notself}}
<h3 class="abook-rating-text-desc">{{$lbl_rating_txt}}</h3>
<textarea name="rating_text" id="rating-text" >{{$rating_txt}}</textarea>
{{/if}}
{{/if}}
{{if $multiprofs }}
<div>
<h3>{{$lbl_vis1}}</h3>

View File

@ -2,6 +2,7 @@
{{if $entry.id}}<id>{{$entry.id}}</id>{{/if}}
{{if $entry.displayName}}<displayName>{{$entry.displayName}}</displayName>{{/if}}
{{if $entry.preferredUsername}}<preferredUsername>{{$entry.preferredUsername}}</preferredUsername>{{/if}}
{{if $entry.rating}}<rating>{{$entry.rating}}</rating>{{/if}}
{{if $entry.urls}}{{foreach $entry.urls as $url}}<urls><value>{{$url.value}}</value><type>{{$url.type}}</type></urls>{{/foreach}}{{/if}}
{{if $entry.photos}}{{foreach $entry.photos as $photo}}<photos><value>{{$photo.value}}</value><type>{{$photo.type}}</type></photos>{{/foreach}}{{/if}}
</entry>

36
view/tpl/prep.tpl Normal file
View File

@ -0,0 +1,36 @@
<h1>{{$header}}</h1>
{{if $poi}}
<div class="directory-item lframe" id="directory-item-{{$poi.xchan_hash}}" >
<div class="contact-photo-wrapper" id="directory-photo-wrapper-{{$poi.xchan_hash}}" >
<div class="contact-photo" id="directory-photo-{{$poi.xchan_hash}}" >
<a href="{{$poi.xchan_url}}" class="directory-profile-link" id="directory-profile-link-{{$poi.xchan_hash}}" ><img class="directory-photo-img" src="{{$poi.xchan_photo_l}}" alt="{{$poi.xchan_addr}}" title="{{$poi.xchan_addr}}" /></a>
<div class="contact-name">{{$poi.xchan_name}}</div>
</div>
</div>
{{/if}}
{{if $raters}}
{{foreach $raters as $r}}
<div class="directory-item lframe" id="directory-item-{{$r.xchan_hash}}" >
<div class="contact-photo-wrapper" id="directory-photo-wrapper-{{$r.xchan_hash}}" >
<div class="contact-photo" id="directory-photo-{{$r.xchan_hash}}" >
<a href="{{$r.xchan_url}}" class="directory-profile-link" id="directory-profile-link-{{$r.xchan_hash}}" ><img class="directory-photo-img" src="{{$r.xchan_photo_l}}" alt="{{$r.xchan_addr}}" title="{{$r.xchan_addr}}" /></a>
<div class="contact-name">{{$r.xchan_name}}</div>
</div>
Rating: {{$r.xlink_rating}}
{{if $r.xlink_rating_text}}
Reason: {{$r.xlink_rating_text}}
{{/if}}
</div>
{{/foreach}}
{{/if}}

View File

@ -0,0 +1,4 @@
<div id="rating-slider" class="slider" style="height: 32px; position: relative; left: 5%; width: 90%;"><input id="rating-range" type="text" name="fake-rating" value="{{$val}}" /></div>
<script>
$("#rating-range").jRange({ from: -10, to: 10, step: 1, width:'100%', showLabels: false, showScale: true, scale : [ '-10','-8','-6','-4','-2','0','2','4','6','8','10' ], onstatechange: function(v) { $("#contact-rating-mirror").val(v); } });
</script>