* Sidebar widget to show subcribed friendica forums. If activated
* in the settings, it appears at the notwork page sidebar
*
- * @param App $a
+ * @param int $uid
+ * @param int $cid
+ * The contact id which is used to mark a forum as "selected"
* @return string
*/
-function widget_forumlist($a) {
+function widget_forumlist($uid,$cid = 0) {
if(! intval(feature_enabled(local_user(),'forumlist_widget')))
return;
//sort by last updated item
$lastitem = true;
- $contacts = get_forumlist($a->user['uid'],true,$lastitem, true);
+ $contacts = get_forumlist($uid,true,$lastitem, true);
$total = count($contacts);
$visible_forums = 10;
foreach($contacts as $contact) {
+ $selected = (($cid == $contact['id']) ? ' forum-selected' : '');
+
$entry = array(
- 'url' => $a->get_baseurl() . '/network?f=&cid=' . $contact['id'],
- 'external_url' => $a->get_baseurl() . '/redir/' . $contact['id'],
+ 'url' => z_root() . '/network?f=&cid=' . $contact['id'],
+ 'external_url' => z_root() . '/redir/' . $contact['id'],
'name' => $contact['name'],
'cid' => $contact['id'],
+ 'selected' => $selected,
'micro' => proxy_url($contact['micro'], false, PROXY_SIZE_MICRO),
'id' => ++$id,
);
}
-
-
-function group_side($every="contacts",$each="group",$edit = false, $group_id = 0, $cid = 0) {
+/**
+ * @brief Create group sidebar widget
+ *
+ * @param string $every
+ * @param string $each
+ * @param string $editmode
+ * 'standard' => include link 'Edit groups'
+ * 'extended' => include link 'Create new group'
+ * 'full' => include link 'Create new group' and provide for each group a link to edit this group
+ * @param int $group_id
+ * @param int $cid
+ * @return string
+ */
+function group_side($every="contacts",$each="group",$editmode = "standard", $group_id = 0, $cid = 0) {
$o = '';
$member_of = array();
if($cid) {
$member_of = groups_containing(local_user(),$cid);
- }
+ }
if(count($r)) {
foreach($r as $rr) {
$selected = (($group_id == $rr['id']) ? ' group-selected' : '');
- if ($edit) {
+ if ($editmode == "full") {
$groupedit = array(
'href' => "group/".$rr['id'],
'title' => t('edit'),
$tpl = get_markup_template("group_side.tpl");
$o = replace_macros($tpl, array(
- '$title' => t('Groups'),
+ '$title' => t('Groups'),
+ 'newgroup' => (($editmode == "extended") || ($editmode == "full") ? 1 : ''),
+ '$editgroupstext' => t('Edit groups'),
+ 'grouppage' => "group/",
'$edittext' => t('Edit group'),
'$createtext' => t('Create a new group'),
- '$creategroup' => t('Group Name: '),
- '$form_security_token' => get_form_security_token("group_edit"),
+ '$creategroup' => t('Group Name: '),
+ '$form_security_token' => get_form_security_token("group_edit"),
'$ungrouped' => (($every === 'contacts') ? t('Contacts not in any group') : ''),
- '$groups' => $groups,
- '$add' => t('add'),
+ '$groups' => $groups,
+ '$add' => t('add'),
));
$findpeople_widget .= findpeople_widget();
}
- $groups_widget .= group_side('contacts','group',false,0,$contact_id);
+ $groups_widget .= group_side('contacts','group','full',0,$contact_id);
$a->page['aside'] .= replace_macros(get_markup_template("contacts-widget-sidebar.tpl"),array(
'$vcard_widget' => $vcard_widget,
function group_init(&$a) {
if(local_user()) {
require_once('include/group.php');
- $a->page['aside'] = group_side('contacts','group',false,(($a->argc > 1) ? intval($a->argv[1]) : 0));
+ $a->page['aside'] = group_side('contacts','group','extended',(($a->argc > 1) ? intval($a->argv[1]) : 0));
}
}
}
$is_a_date_query = false;
+ if(x($_GET['cid']) && intval($_GET['cid']) != 0)
+ $cid = $_GET['cid'];
if($a->argc > 1) {
for($x = 1; $x < $a->argc; $x ++) {
));
}
- $a->page['aside'] .= (feature_enabled(local_user(),'groups') ? group_side('network/0','network',true,$group_id) : '');
- $a->page['aside'] .= (feature_enabled(local_user(),'forumlist_widget') ? widget_forumlist($a) : '');
+ $a->page['aside'] .= (feature_enabled(local_user(),'groups') ? group_side('network/0','network','standard',$group_id) : '');
+ $a->page['aside'] .= (feature_enabled(local_user(),'forumlist_widget') ? widget_forumlist(local_user(),$cid) : '');
$a->page['aside'] .= posted_date_widget($a->get_baseurl() . '/network',local_user(),false);
$a->page['aside'] .= networks_widget($a->get_baseurl(true) . '/network',(x($_GET, 'nets') ? $_GET['nets'] : ''));
$a->page['aside'] .= saved_searches($search);
if(! x($a->page,'aside'))
$a->page['aside'] = '';
- $a->page['aside'] .= group_side('contacts','group',false,0,$contact_id);
+ $a->page['aside'] .= group_side('contacts','group','extended',0,$contact_id);
}
<div class="widget" id="group-sidebar">
-<h3>{{$title}}</h3>
+ <h3>{{$title}}</h3>
-<div id="sidebar-group-list">
- <ul role="menu" id="sidebar-group-ul">
- {{foreach $groups as $group}}
- <li role="menuitem" class="sidebar-group-li group-{{$group.id}}">
- {{if $group.cid}}
- <input type="checkbox"
- class="{{if $group.selected}}ticked{{else}}unticked {{/if}} action"
- onclick="contactgroupChangeMember('{{$group.id}}','{{$group.cid}}');return true;"
- {{if $group.ismember}}checked="checked"{{/if}}
- />
- {{/if}}
- {{if $group.edit}}
- <a class="groupsideedit" href="{{$group.edit.href}}" title="{{$edittext}}"><span id="edit-sidebar-group-element-{{$group.id}}" class="group-edit-icon iconspacer small-pencil"><span class="sr-only">{{$edittext}}</span></span></a>
- {{/if}}
- <a id="sidebar-group-element-{{$group.id}}" class="sidebar-group-element {{if $group.selected}}group-selected{{/if}}" href="{{$group.href}}">{{$group.text}}</a>
- <span class="notify"></span>
- </li>
- {{/foreach}}
- </ul>
+ <div id="sidebar-group-list">
+ <ul role="menu" id="sidebar-group-ul">
+ {{foreach $groups as $group}}
+ <li role="menuitem" class="sidebar-group-li group-{{$group.id}}">
+ {{if ! $newgroup}}<span class="notify badge pull-right"></span>{{/if}}
+ {{if $group.cid}}
+ <input type="checkbox"
+ class="{{if $group.selected}}ticked{{else}}unticked {{/if}} action"
+ onclick="contactgroupChangeMember('{{$group.id}}','{{$group.cid}}');return true;"
+ {{if $group.ismember}}checked="checked"{{/if}}
+ />
+ {{/if}}
+ {{if $group.edit}}
+ <a class="groupsideedit" href="{{$group.edit.href}}" title="{{$edittext}}">
+ <span id="edit-sidebar-group-element-{{$group.id}}" class="group-edit-icon iconspacer small-pencil"><span class="sr-only">{{$edittext}}</span></span>
+ </a>
+ {{/if}}
+ <a id="sidebar-group-element-{{$group.id}}" class="sidebar-group-element {{if $group.selected}}group-selected{{/if}}" href="{{$group.href}}">{{$group.text}}</a>
+ </li>
+ {{/foreach}}
+ </ul>
</div>
- <div id="sidebar-new-group">
- <a onclick="javascript:$('#group-new-form').fadeIn('fast');return false;">{{$createtext}}</a>
- <form id="group-new-form" action="group/new" method="post" style="display:none;">
- <input type="hidden" name="form_security_token" value="{{$form_security_token}}">
- <input name="groupname" id="id_groupname" placeholder="{{$creategroup}}">
- </form>
- </div>
- {{if $ungrouped}}
- <div id="sidebar-ungrouped">
- <a href="nogroup">{{$ungrouped}}</a>
- </div>
- {{/if}}
+
+ {{if $newgroup}}
+ <div id="sidebar-new-group">
+ <a onclick="javascript:$('#group-new-form').fadeIn('fast');return false;">{{$createtext}}</a>
+ <form id="group-new-form" action="group/new" method="post" style="display:none;">
+ <input type="hidden" name="form_security_token" value="{{$form_security_token}}">
+ <input name="groupname" id="id_groupname" placeholder="{{$creategroup}}">
+ </form>
+ </div>
+ {{else}}
+ <div id="sidebar-edit-groups"><a href="{{$grouppage}}">{{$editgroupstext}}</a></div>
+ {{/if}}
+
+ {{if $ungrouped}}<div id="sidebar-ungrouped"><a href="nogroup">{{$ungrouped}}</a></div>{{/if}}
</div>
<a href="{{$forum.external_url}}" title="{{$forum.link_desc}}" class="label sparkle" target="_blank">
<img class="forumlist-img" src="{{$forum.micro}}" alt="{{$forum.link_desc}}" />
</a>
- <a class="forum-widget-link" id="forum-widget-link-{{$forum.id}}" href="{{$forum.url}}" >{{$forum.name}}</a>
+ <a class="forum-widget-link {{if $forum.selected}}forum-selected{{/if}}" id="forum-widget-link-{{$forum.id}}" href="{{$forum.url}}" >{{$forum.name}}</a>
</li>
{{/if}}
<a href="{{$forum.external_url}}" title="{{$forum.link_desc}}" class="label sparkle" target="_blank">
<img class="forumlist-img" src="{{$forum.micro}}" alt="{{$forum.link_desc}}" />
</a>
- <a class="forum-widget-link" id="forum-widget-link-{{$forum.id}}" href="{{$forum.url}}" >{{$forum.name}}</a>
+ <a class="forum-widget-link {{if $forum.selected}}forum-selected{{/if}}" id="forum-widget-link-{{$forum.id}}" href="{{$forum.url}}" >{{$forum.name}}</a>
</li>
{{/if}}
{{/foreach}}
margin-bottom: 10px;
}
-.group-selected, .nets-selected, .fileas-selected, .categories-selected {
+.group-selected, .nets-selected, .fileas-selected, .categories-selected, .forum-selected {
padding: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
margin-bottom: 10px;\r
}\r
\r
-.group-selected, .nets-selected, .fileas-selected, .categories-selected {\r
+.group-selected, .nets-selected, .fileas-selected, .categories-selected, .forum-selected {\r
padding: 3px;\r
-moz-border-radius: 3px;\r
-webkit-border-radius: 3px;\r
margin-bottom: 10px;
}
-.group-selected, .nets-selected, .fileas-selected, .categories-selected {
+.group-selected, .nets-selected, .fileas-selected, .categories-selected, .forum-selected {
padding: 3px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
--- /dev/null
+<script>
+
+function showHideForumlist() {
+ if( $("li[id^='forum-widget-entry-extended-']").is(':visible')) {
+ $("li[id^='forum-widget-entry-extended-']").hide();
+ $("li#forum-widget-collapse").html(window.showMore);
+
+ }
+ else {
+ $("li[id^='forum-widget-entry-extended-']").show();
+ $("li#forum-widget-collapse").html(window.showFewer);
+ }
+}
+</script>
+
+<div id="forumlist-sidebar" class="widget">
+ <h3 id="forumlist">{{$title}}</h3>
+
+ <ul id="forumlist-sidbar-ul" role="menu">
+ {{foreach $forums as $forum}}
+ {{if $forum.id <= $visible_forums}}
+ <li class="forum-widget-entry forum-{{$forum.cid}} tool {{if $forum.selected}}selected{{/if}}" id="forum-widget-entry-{{$forum.id}}" role="menuitem">
+ <span class="notify badge pull-right"></span>
+ <a href="{{$forum.external_url}}" title="{{$forum.link_desc}}" class="label sparkle" target="_blank">
+ <img class="forumlist-img" src="{{$forum.micro}}" alt="{{$forum.link_desc}}" />
+ </a>
+ <a class="forum-widget-link" id="forum-widget-link-{{$forum.id}}" href="{{$forum.url}}" >{{$forum.name}}</a>
+ </li>
+ {{/if}}
+
+ {{if $forum.id > $visible_forums}}
+ <li class="forum-widget-entry forum-{{$forum.cid}} tool {{if $forum.selected}}selected{{/if}}" id="forum-widget-entry-extended-{{$forum.id}}" role="menuitem" style="display: none;">
+ <span class="notify badge pull-right"></span>
+ <a href="{{$forum.external_url}}" title="{{$forum.link_desc}}" class="label sparkle" target="_blank">
+ <img class="forumlist-img" src="{{$forum.micro}}" alt="{{$forum.link_desc}}" />
+ </a>
+ <a class="forum-widget-link" id="forum-widget-link-{{$forum.id}}" href="{{$forum.url}}" >{{$forum.name}}</a>
+ </li>
+ {{/if}}
+ {{/foreach}}
+
+ {{if $total > $visible_forums }}
+ <li onclick="showHideForumlist(); return false;" id="forum-widget-collapse" class="forum-widget-link fakelink tool">{{$showmore}}</li>
+ {{/if}}
+ </ul>
+</div>
padding: 3px 24px;
}
-#sidebar-new-group {
+#sidebar-new-group,
+#sidebar-edit-groups {
padding: 7px;
width: 165px;
margin: auto;
display: inline-block;
min-width: 10px;
padding: 3px 7px;
- font-size: 12px;
+ font-size: 10px;
font-weight: 700;
line-height: 1;
color: #fff;
#sidebar-group-list .tool:hover {
background: #EEE;
}
-#sidebar-group-list .notify {
+/*#sidebar-group-list .notify {
min-width: 10px;
text-align: center;
color: #FFF;
padding: 3px;
border-radius: 10px;
display: none;
+}*/
+#sidebar-group-list .notify {
+ display: none;
}
#sidebar-group-list .notify.show { display: inline-block; }
.tool .label {
opacity: 1;
}
-.sidebar-group-li:hover, #sidebar-new-group:hover, #forum-widget-collapse:hover,
+.sidebar-group-li:hover, #sidebar-new-group:hover, #sidebar-edit-groups:hover, #forum-widget-collapse:hover,
#sidebar-ungrouped:hover, .side-link:hover, .nets-ul li:hover, #forumlist-sidebar li:hover, #forumlist-sidebar-right li:hover,
.nets-all:hover, .saved-search-li:hover, li.tool:hover, .admin.link:hover, aside h4 a:hover, right_aside h4 a:hover, #message-new:hover {
/* background-color: #ddd; */
/* color: #000; */
}
-.group-selected, .nets-selected, .fileas-selected {
+.group-selected, .nets-selected, .fileas-selected, .forum-selected {
font-weight: bold;
}
-#forum-widget-showmore, #sidebar-new-group, #forum-widget-collapse, #forumlist-rsidebar-right, #sidebar-ungrouped,
+#forum-widget-showmore, #sidebar-new-group, #sidebar-edit-groups, #forum-widget-collapse, #forumlist-rsidebar-right, #sidebar-ungrouped,
.side-link, #peoplefind-desc, #connect-desc, .nets-all, .admin.link, #message-new {
padding-left: 10px;
padding-top: 3px;
display: inline-block;
}
-a.nets-link, .side-link a, #sidebar-new-group a, a.savedsearchterm, a.fileas-link, aside h4 a, right_aside h4 a {
+a.nets-link, .side-link a, #sidebar-new-group a, #sidebar-edit-groups a, a.savedsearchterm, a.fileas-link, aside h4 a, right_aside h4 a {
display: block;
color: #737373;
}
{{foreach $forums as $forum}}
{{if $forum.id <= $visible_forums}}
<li class="forum-widget-entry forum-{{$forum.cid}}" id="forum-widget-entry-{{$forum.id}}" role="menuitem">
+ <span class="notify badge pull-right"></span>
<a href="{{$forum.external_url}}" title="{{$forum.link_desc}}" class="label sparkle" target="_blank">
<img class="forumlist-img" src="{{$forum.micro}}" alt="{{$forum.link_desc}}" />
</a>
- <a class="forum-widget-link" id="forum-widget-link-{{$forum.id}}" href="{{$forum.url}}" >{{$forum.name}}</a>
- <span class="notify badge pull-right"></span>
+ <a class="forum-widget-link {{if $forum.selected}}forum-selected{{/if}}" id="forum-widget-link-{{$forum.id}}" href="{{$forum.url}}" >{{$forum.name}}</a>
</li>
{{/if}}
{{if $forum.id > $visible_forums}}
<li class="forum-widget-entry forum-{{$forum.cid}}" id="forum-widget-entry-extended-{{$forum.id}}" role="menuitem" style="display: none;">
+ <span class="notify padge pull-right"></span>
<a href="{{$forum.external_url}}" title="{{$forum.link_desc}}" class="label sparkle" target="_blank">
<img class="forumlist-img" src="{{$forum.micro}}" alt="{{$forum.link_desc}}" />
</a>
- <a class="forum-widget-link" id="forum-widget-link-{{$forum.id}}" href="{{$forum.url}}" >{{$forum.name}}</a>
- <span class="notify padge pull-right"></span>
+ <a class="forum-widget-link {{if $forum.selected}}forum-selected{{/if}}" id="forum-widget-link-{{$forum.id}}" href="{{$forum.url}}" >{{$forum.name}}</a>
</li>
{{/if}}
{{/foreach}}
require_once('include/forums.php');
+ if(x($_GET['cid']) && intval($_GET['cid']) != 0)
+ $cid = $_GET['cid'];
+
//sort by last updated item
$lastitem = true;
foreach($contacts as $contact) {
+ $selected = (($cid == $contact['id']) ? ' forum-selected' : '');
+
$entry = array(
- 'url' => $a->get_baseurl() . '/network?f=&cid=' . $contact['id'],
- 'external_url' => $a->get_baseurl() . '/redir/' . $contact['id'],
+ 'url' => z_root() . '/network?f=&cid=' . $contact['id'],
+ 'external_url' => z_root() . '/redir/' . $contact['id'],
'name' => $contact['name'],
'cid' => $contact['id'],
+ 'selected' => $selected,
'micro' => proxy_url($contact['micro'], false, PROXY_SIZE_MICRO),
'id' => ++$id,
);