"notes" app

This commit is contained in:
Friendika 2011-05-20 01:15:02 -07:00
parent 9ab6055b24
commit 681885a120
8 changed files with 154 additions and 13 deletions

View file

@ -91,6 +91,11 @@ function conversation(&$a, $items, $mode, $update) {
$page_writeable = can_write_wall($a,$profile_owner); $page_writeable = can_write_wall($a,$profile_owner);
} }
if($mode === 'notes') {
$profile_owner = $a->profile['profile_uid'];
$page_writeable = true;
}
if($mode === 'display') { if($mode === 'display') {
$profile_owner = $a->profile['uid']; $profile_owner = $a->profile['uid'];
$page_writeable = can_write_wall($a,$profile_owner); $page_writeable = can_write_wall($a,$profile_owner);
@ -263,7 +268,7 @@ function conversation(&$a, $items, $mode, $update) {
$item_writeable = (($item['writable'] || $item['self']) ? true : false); $item_writeable = (($item['writable'] || $item['self']) ? true : false);
if($blowhard == $item['cid'] && (! $item['self']) && ($mode != 'profile')) { if($blowhard == $item['cid'] && (! $item['self']) && ($mode != 'profile') && ($mode != 'notes')) {
$blowhard_count ++; $blowhard_count ++;
if($blowhard_count == 3) { if($blowhard_count == 3) {
$o .= '<div class="icollapse-wrapper fakelink" id="icollapse-wrapper-' . $item['parent'] $o .= '<div class="icollapse-wrapper fakelink" id="icollapse-wrapper-' . $item['parent']
@ -379,7 +384,7 @@ function conversation(&$a, $items, $mode, $update) {
} }
} }
$edpost = ((($profile_owner == local_user()) && ($toplevelpost) && (intval($item['wall']) == 1)) $edpost = (((($profile_owner == local_user()) && ($toplevelpost) && (intval($item['wall']) == 1)) || ($mode === 'notes'))
? '<a class="editpost" href="' . $a->get_baseurl() . '/editpost/' . $item['id'] ? '<a class="editpost" href="' . $a->get_baseurl() . '/editpost/' . $item['id']
. '" title="' . t('Edit') . '"><img src="images/pencil.gif" /></a>' . '" title="' . t('Edit') . '"><img src="images/pencil.gif" /></a>'
: ''); : '');
@ -658,7 +663,7 @@ function format_like($cnt,$arr,$type,$id) {
}} }}
function status_editor($a,$x) { function status_editor($a,$x, $notes_cid = 0) {
$o = ''; $o = '';
@ -710,12 +715,15 @@ function status_editor($a,$x) {
call_hooks('jot_tool', $jotplugins); call_hooks('jot_tool', $jotplugins);
call_hooks('jot_networks', $jotnets); call_hooks('jot_networks', $jotnets);
if($notes_cid)
$jotnets .= '<input type="hidden" name="contact_allow[]" value="' . $notes_cid .'" />';
$tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins)); $tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins));
$o .= replace_macros($tpl,array( $o .= replace_macros($tpl,array(
'$return_path' => $a->cmd, '$return_path' => $a->cmd,
'$action' => 'item', '$action' => 'item',
'$share' => t('Share'), '$share' => (($x['button']) ? $x['button'] : t('Share')),
'$upload' => t('Upload photo'), '$upload' => t('Upload photo'),
'$weblink' => t('Insert web link'), '$weblink' => t('Insert web link'),
'$youtube' => t('Insert YouTube video'), '$youtube' => t('Insert YouTube video'),
@ -726,11 +734,13 @@ function status_editor($a,$x) {
'$title' => t('Set title'), '$title' => t('Set title'),
'$wait' => t('Please wait'), '$wait' => t('Please wait'),
'$permset' => t('Permission settings'), '$permset' => t('Permission settings'),
'$ptyp' => (($notes_cid) ? 'note' : 'wall'),
'$content' => '', '$content' => '',
'$post_id' => '', '$post_id' => '',
'$baseurl' => $a->get_baseurl(), '$baseurl' => $a->get_baseurl(),
'$defloc' => $x['default_location'], '$defloc' => $x['default_location'],
'$visitor' => $x['visitor'], '$visitor' => $x['visitor'],
'$pvisit' => (($notes_cid) ? 'none' : $x['visitor']),
'$emailcc' => t('CC: email addresses'), '$emailcc' => t('CC: email addresses'),
'$public' => t('Public post'), '$public' => t('Public post'),
'$jotnets' => $jotnets, '$jotnets' => $jotnets,

View file

@ -64,9 +64,8 @@ function nav(&$a) {
$nav['help'] = array($help_url, t('Help'), ""); $nav['help'] = array($help_url, t('Help'), "");
if(strlen($a->apps)) {
$nav['apps'] = array('apps', t('Apps'), ""); $nav['apps'] = array('apps', t('Apps'), "");
}
$nav['search'] = array('search', t('Search'), ""); $nav['search'] = array('search', t('Search'), "");

View file

@ -5,10 +5,11 @@ function apps_content(&$a) {
$o .= '<h3>' . t('Applications') . '</h3>'; $o .= '<h3>' . t('Applications') . '</h3>';
$o .= '<div class="app-title"><a href="notes">' . t('Private Notes') . '</a></div>';
if($a->apps) if($a->apps)
$o .= $a->apps; $o .= $a->apps;
return $o; return $o;
} }

View file

@ -35,7 +35,7 @@ function editpost_content(&$a) {
$a->page['htmlhead'] .= replace_macros($tpl, array( $a->page['htmlhead'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(), '$baseurl' => $a->get_baseurl(),
'$ispublic' => t('Visible to <strong>everybody</strong>'), '$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
'$geotag' => $geotag, '$geotag' => $geotag,
'$nickname' => $a->user['nickname'] '$nickname' => $a->user['nickname']
)); ));
@ -95,11 +95,13 @@ function editpost_content(&$a) {
'$noloc' => t('Clear browser location'), '$noloc' => t('Clear browser location'),
'$wait' => t('Please wait'), '$wait' => t('Please wait'),
'$permset' => t('Permission settings'), '$permset' => t('Permission settings'),
'$ptyp' => $itm[0]['type'],
'$content' => $itm[0]['body'], '$content' => $itm[0]['body'],
'$post_id' => $post_id, '$post_id' => $post_id,
'$baseurl' => $a->get_baseurl(), '$baseurl' => $a->get_baseurl(),
'$defloc' => $a->user['default-location'], '$defloc' => $a->user['default-location'],
'$visitor' => 'none', '$visitor' => 'none',
'$pvisit' => 'none',
'$emailcc' => t('CC: email addresses'), '$emailcc' => t('CC: email addresses'),
'$public' => t('Public post'), '$public' => t('Public post'),
'$jotnets' => $jotnets, '$jotnets' => $jotnets,

129
mod/notes.php Normal file
View file

@ -0,0 +1,129 @@
<?php
function notes_init(&$a) {
if(! local_user())
return;
$profile = 0;
$which = $a->user['nickname'];
// profile_load($a,$which,$profile);
}
function notes_content(&$a) {
if(! local_user()) {
notice( t('Permission denied.') . EOL);
return;
}
require_once("include/bbcode.php");
require_once('include/security.php');
require_once('include/conversation.php');
require_once('include/acl_selectors.php');
$groups = array();
$o = '';
$remote_contact = false;
$contact_id = $_SESSION['cid'];
$contact = $a->contact;
$is_owner = true;
$o .= '<h3>' . t('Private Notes') . '</h3>';
$commpage = false;
$commvisitor = false;
$celeb = false;
$x = array(
'is_owner' => $is_owner,
'allow_location' => (($a->user['allow_location']) ? true : false),
'default_location' => $a->user['default-location'],
'nickname' => $a->user['nickname'],
'lockstate' => 'lock',
'acl' => '',
'bang' => '',
'visitor' => 'block',
'profile_uid' => local_user(),
'button' => t('Save')
);
$o .= status_editor($a,$x,$a->contact['id']);
// Construct permissions
// default permissions - anonymous user
$sql_extra = " AND `allow_cid` = '<" . $a->contact['id'] . ">' ";
$r = q("SELECT COUNT(*) AS `total`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `item`.`id` = `item`.`parent` AND `item`.`wall` = 0
$sql_extra ",
intval(local_user())
);
if(count($r)) {
$a->set_pager_total($r[0]['total']);
$a->set_pager_itemspage(40);
}
$r = q("SELECT `item`.`id` AS `item_id`, `contact`.`uid` AS `contact-uid`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `item`.`id` = `item`.`parent` AND `item`.`wall` = 0
$sql_extra
ORDER BY `item`.`created` DESC LIMIT %d ,%d ",
intval(local_user()),
intval($a->pager['start']),
intval($a->pager['itemspage'])
);
$parents_arr = array();
$parents_str = '';
if(count($r)) {
foreach($r as $rr)
$parents_arr[] = $rr['item_id'];
$parents_str = implode(', ', $parents_arr);
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`network`, `contact`.`rel`,
`contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `item`.`parent` IN ( %s )
$sql_extra
ORDER BY `parent` DESC, `gravity` ASC, `item`.`id` ASC ",
intval(local_user()),
dbesc($parents_str)
);
}
$o .= conversation($a,$r,'notes',$update);
$o .= paginate($a);
return $o;
}

View file

@ -14,7 +14,7 @@ function ping_init(&$a) {
$network = $r[0]['total']; $network = $r[0]['total'];
$r = q("SELECT COUNT(*) AS `total` FROM `item` $r = q("SELECT COUNT(*) AS `total` FROM `item`
WHERE `unseen` = 1 AND `visible` = 1 AND `deleted` = 0 AND `uid` = %d AND `type` != 'remote' ", WHERE `unseen` = 1 AND `visible` = 1 AND `deleted` = 0 AND `uid` = %d AND `wall` = 1 ",
intval(local_user()) intval(local_user())
); );
$home = $r[0]['total']; $home = $r[0]['total'];

View file

@ -7,7 +7,7 @@
<div id="profile-jot-banner-end"></div> <div id="profile-jot-banner-end"></div>
<form id="profile-jot-form" action="$action" method="post" > <form id="profile-jot-form" action="$action" method="post" >
<input type="hidden" name="type" value="wall" /> <input type="hidden" name="type" value="$ptyp" />
<input type="hidden" name="profile_uid" value="$profile_uid" /> <input type="hidden" name="profile_uid" value="$profile_uid" />
<input type="hidden" name="return" value="$return_path" /> <input type="hidden" name="return" value="$return_path" />
<input type="hidden" name="location" id="jot-location" value="$defloc" /> <input type="hidden" name="location" id="jot-location" value="$defloc" />
@ -52,7 +52,7 @@
<div id="profile-rotator-wrapper" style="display: $visitor;" > <div id="profile-rotator-wrapper" style="display: $visitor;" >
<img id="profile-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" /> <img id="profile-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
</div> </div>
<div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" > <div id="profile-jot-perms" class="profile-jot-perms" style="display: $pvisit;" >
<a id="jot-perms-icon" class="icon $lockstate" title="$permset" onClick="openClose('profile-jot-acl-wrapper'); openClose('profile-jot-email-wrapper'); openClose('profile-jot-networks');return false;"></a>$bang <a id="jot-perms-icon" class="icon $lockstate" title="$permset" onClick="openClose('profile-jot-acl-wrapper'); openClose('profile-jot-email-wrapper'); openClose('profile-jot-networks');return false;"></a>$bang
</div> </div>
<div id="profile-jot-perms-end"></div> <div id="profile-jot-perms-end"></div>

View file

@ -3,7 +3,7 @@
<script language="javascript" type="text/javascript"> <script language="javascript" type="text/javascript">
var editor; var editor;
var textlen; var textlen = 0;
tinyMCE.init({ tinyMCE.init({
theme : "advanced", theme : "advanced",