aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xboot.php2
-rw-r--r--include/socgraph.php7
-rw-r--r--install/update.php12
-rw-r--r--mod/connedit.php33
-rw-r--r--mod/poco.php3
-rw-r--r--mod/prep.php38
-rw-r--r--view/css/mod_connedit.css9
-rwxr-xr-xview/tpl/abook_edit.tpl17
-rwxr-xr-xview/tpl/poco_entry_xml.tpl1
-rw-r--r--view/tpl/prep.tpl36
-rw-r--r--view/tpl/rating_slider.tpl4
11 files changed, 156 insertions, 6 deletions
diff --git a/boot.php b/boot.php
index e71f164a3..7d051e5f2 100755
--- a/boot.php
+++ b/boot.php
@@ -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.
diff --git a/include/socgraph.php b/include/socgraph.php
index 740886b1c..dbc25f9c1 100644
--- a/include/socgraph.php
+++ b/include/socgraph.php
@@ -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'])
);
}
diff --git a/install/update.php b/install/update.php
index d6953cdbc..f7ccb8210 100644
--- a/install/update.php
+++ b/install/update.php
@@ -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;
+
} \ No newline at end of file
diff --git a/mod/connedit.php b/mod/connedit.php
index 5c36c3184..c27f4588a 100644
--- a/mod/connedit.php
+++ b/mod/connedit.php
@@ -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,
diff --git a/mod/poco.php b/mod/poco.php
index 3f932e92f..892d79801 100644
--- a/mod/poco.php
+++ b/mod/poco.php
@@ -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;
diff --git a/mod/prep.php b/mod/prep.php
new file mode 100644
index 000000000..e53f7ac4e
--- /dev/null
+++ b/mod/prep.php
@@ -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 '';
+}
+
+ \ No newline at end of file
diff --git a/view/css/mod_connedit.css b/view/css/mod_connedit.css
index 98c53602b..44a0a1abf 100644
--- a/view/css/mod_connedit.css
+++ b/view/css/mod_connedit.css
@@ -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;
diff --git a/view/tpl/abook_edit.tpl b/view/tpl/abook_edit.tpl
index 03b7e2440..7c75bfac4 100755
--- a/view/tpl/abook_edit.tpl
+++ b/view/tpl/abook_edit.tpl
@@ -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>
diff --git a/view/tpl/poco_entry_xml.tpl b/view/tpl/poco_entry_xml.tpl
index 869894852..30b6268dc 100755
--- a/view/tpl/poco_entry_xml.tpl
+++ b/view/tpl/poco_entry_xml.tpl
@@ -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>
diff --git a/view/tpl/prep.tpl b/view/tpl/prep.tpl
new file mode 100644
index 000000000..d0c1e5ec6
--- /dev/null
+++ b/view/tpl/prep.tpl
@@ -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}}
+
+
+
+
+
diff --git a/view/tpl/rating_slider.tpl b/view/tpl/rating_slider.tpl
new file mode 100644
index 000000000..4702fc65b
--- /dev/null
+++ b/view/tpl/rating_slider.tpl
@@ -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>