aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHaakon Meland Eriksen <haakon.eriksen@far.no>2015-11-13 16:45:31 +0100
committerHaakon Meland Eriksen <haakon.eriksen@far.no>2015-11-13 16:45:31 +0100
commit0178840c19978cf4b0378609df0bcc004c6d36ae (patch)
treec8a8bcb86661f6278e9e08439c9621638d387d1e
parentd04c73ae0000bcd7cf854a936f25583355e78def (diff)
parent5d0646c9e1f207fa05fd923bcccd9f5844de2664 (diff)
downloadvolse-hubzilla-0178840c19978cf4b0378609df0bcc004c6d36ae.tar.gz
volse-hubzilla-0178840c19978cf4b0378609df0bcc004c6d36ae.tar.bz2
volse-hubzilla-0178840c19978cf4b0378609df0bcc004c6d36ae.zip
Merge remote-tracking branch 'upstream/master'
-rwxr-xr-xboot.php5
-rw-r--r--doc/Widgets.md7
-rw-r--r--doc/database/db_channel.bb4
-rw-r--r--doc/develop.bb2
-rw-r--r--doc/faq_developers.bb2
-rw-r--r--include/conversation.php5
-rw-r--r--include/photo/photo_driver.php11
-rw-r--r--include/text.php10
-rw-r--r--include/widgets.php78
-rw-r--r--install/schema_postgres.sql1
-rw-r--r--mod/directory.php2
-rw-r--r--mod/dreport.php5
-rw-r--r--mod/page.php4
-rw-r--r--version.inc2
-rw-r--r--view/theme/redbasic/schema/bluegrid.css2
-rwxr-xr-xview/tpl/photo_album.tpl2
16 files changed, 132 insertions, 10 deletions
diff --git a/boot.php b/boot.php
index f9b826bb7..390560592 100755
--- a/boot.php
+++ b/boot.php
@@ -2056,6 +2056,10 @@ function construct_page(&$a) {
$a->build_pagehead();
+ if($a->page['pdl_content']) {
+ $a->page['content'] = comanche_region($a,$a->page['content']);
+ }
+
// Let's say we have a comanche declaration '[region=nav][/region][region=content]$nav $content[/region]'.
// The text 'region=' identifies a section of the layout by that name. So what we want to do here is leave
// $a->page['nav'] empty and put the default content from $a->page['nav'] and $a->page['section']
@@ -2070,6 +2074,7 @@ function construct_page(&$a) {
call_hooks('construct_page', $arr);
$a->layout = $arr['layout'];
+
foreach($a->layout as $k => $v) {
if((strpos($k, 'region_') === 0) && strlen($v)) {
if(strpos($v, '$region_') !== false) {
diff --git a/doc/Widgets.md b/doc/Widgets.md
index 7acd9241b..7c506dea7 100644
--- a/doc/Widgets.md
+++ b/doc/Widgets.md
@@ -108,6 +108,13 @@ Some/many of these widgets have restrictions which may restrict the type of page
<br />&nbsp;<br />
+* album - provides a widget containing a complete photo album from albums belonging to the page owner; this may be too large to present in a sidebar region as is best implemented as a content region widget.
+ * args:
+ * album - album name
+ * title - optional title, album name is used if not present
+<br />&nbsp;<br />
+
+
Creating New Widgets
====================
diff --git a/doc/database/db_channel.bb b/doc/database/db_channel.bb
index 70887298d..6f53517d8 100644
--- a/doc/database/db_channel.bb
+++ b/doc/database/db_channel.bb
@@ -15,7 +15,7 @@
[/td][/tr]
[tr][td]channel_guid_sig[/td][td]channel.gui signed with channel.prvkey and base64url_encoded[/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[/td][/tr]
-[tr][td]channel_hash[/td][td]whirlpool hash of channel.guid and channel_guid_sig concatenated, synonymous with xchan_hash[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
+[tr][td]channel_hash[/td][td]base64url_encode of a 64-char whirlpool hash of channel.guid and channel_guid_sig concatenated, synonymous with xchan_hash.[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
[/td][/tr]
[tr][td]channel_timezone[/td][td]PHP-legal timezone[/td][td]char(128)[/td][td]NO[/td][td]MUL[/td][td]UTC[/td][td]
[/td][/tr]
@@ -97,4 +97,4 @@
[/td][/tr]
[/table]
-Return to [zrl=[baseurl]/help/database]database documentation[/zrl] \ No newline at end of file
+Return to [zrl=[baseurl]/help/database]database documentation[/zrl]
diff --git a/doc/develop.bb b/doc/develop.bb
index 6694a839b..ad5b2288f 100644
--- a/doc/develop.bb
+++ b/doc/develop.bb
@@ -15,7 +15,7 @@
[zrl=[baseurl]/help/Translations]Translations[/zrl]
[zrl=[baseurl]/help/developers]Developers[/zrl]
[zrl=[baseurl]/help/intro_for_developers]Intro for Developers[/zrl]
-[zrl=[baseurl]/help/database]Database schema documantation[/zrl]
+[zrl=[baseurl]/help/database]Database schema documentation[/zrl]
[zrl=[baseurl]/help/api_functions]API functions[/zrl]
[zrl=[baseurl]/help/api_posting]Posting to the red# using the API[/zrl]
[zrl=[baseurl]/help/developer_function_primer]Red Functions 101[/zrl]
diff --git a/doc/faq_developers.bb b/doc/faq_developers.bb
index c74ec3c56..dd7f4cda1 100644
--- a/doc/faq_developers.bb
+++ b/doc/faq_developers.bb
@@ -285,7 +285,7 @@ An example (large) &$a object showing some of its many members and structures--
"xchan_photo_l": "http://hubzilla/photo/profile/l/2"
},
"page": {
- "content": "&lt;div id=&quot;help-content&quot; class=&quot;generic-content-wrapper&quot;&gt;\n\t&lt;div class=&quot;section-title-wrapper&quot;&gt;\n\t&lt;h2&gt;Hubzilla Documentation&lt;/h2&gt;\n\t&lt;/div&gt;\n\t&lt;div class=&quot;section-content-wrapper&quot;&gt;\n\t&lt;h2&gt;Documentation for Developers&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Technical Documentation&lt;/h3&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/Zot---A-High-Level-Overview&quot; target=&quot;_newwin&quot; &gt;A high level overview of Zot&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/zot&quot; target=&quot;_newwin&quot; &gt;An introduction to Zot&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/zot_structures&quot; target=&quot;_newwin&quot; &gt;Zot Stuctures&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/comanche&quot; target=&quot;_newwin&quot; &gt;Comanche Page Descriptions&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/Creating-Templates&quot; target=&quot;_newwin&quot; &gt;Creating Comanche Templates&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/Widgets&quot; target=&quot;_newwin&quot; &gt;Widgets&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/plugins&quot; target=&quot;_newwin&quot; &gt;Plugins&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/hooks&quot; target=&quot;_newwin&quot; &gt;Hooks&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/doco&quot; target=&quot;_newwin&quot; &gt;Contributing Documentation&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/DerivedTheme1&quot; target=&quot;_newwin&quot; &gt;Creating Derivative Themes&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/schema_development&quot; target=&quot;_newwin&quot; &gt;Schemas&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/Translations&quot; target=&quot;_newwin&quot; &gt;Translations&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/developers&quot; target=&quot;_newwin&quot; &gt;Developers&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/intro_for_developers&quot; target=&quot;_newwin&quot; &gt;Intro for Developers&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/database&quot; target=&quot;_newwin&quot; &gt;Database schema documantation&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/api_functions&quot; target=&quot;_newwin&quot; &gt;API functions&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/api_posting&quot; target=&quot;_newwin&quot; &gt;Posting to the red# using the API&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/developer_function_primer&quot; target=&quot;_newwin&quot; &gt;Red Functions 101&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/doc/html/&quot; target=&quot;_newwin&quot; &gt;Code Reference (Doxygen generated - sets cookies)&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/to_do_doco&quot; target=&quot;_newwin&quot; &gt;To-Do list for the Red Documentation Project&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/to_do_code&quot; target=&quot;_newwin&quot; &gt;To-Do list for Developers&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/roadmap&quot; target=&quot;_newwin&quot; &gt;Version 3 roadmap&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/git_for_non_developers&quot; target=&quot;_newwin&quot; &gt;Git for Non-Developers&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/dev_beginner&quot; target=&quot;_newwin&quot; &gt;Step-for-step manual for beginning developers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Frequently Asked Questions For Developers&lt;/h3&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/faq_developers&quot; target=&quot;_newwin&quot; &gt;FAQ For Developers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;External Resources&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://zothub.com/channel/one&quot; target=&quot;_newwin&quot; &gt;Development Channel&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://federated.social/channel/postgres&quot; target=&quot;_newwin&quot; &gt;Postgres-specific Hubzilla Admin Support Channel&lt;/a&gt;&lt;br /&gt;\n\t&lt;/div&gt;\n&lt;/div&gt;\n&lt;script&gt;var homebase = &quot;http://hubzilla/channel/testes&quot;;&lt;/script&gt;",
+ "content": "&lt;div id=&quot;help-content&quot; class=&quot;generic-content-wrapper&quot;&gt;\n\t&lt;div class=&quot;section-title-wrapper&quot;&gt;\n\t&lt;h2&gt;Hubzilla Documentation&lt;/h2&gt;\n\t&lt;/div&gt;\n\t&lt;div class=&quot;section-content-wrapper&quot;&gt;\n\t&lt;h2&gt;Documentation for Developers&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Technical Documentation&lt;/h3&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/Zot---A-High-Level-Overview&quot; target=&quot;_newwin&quot; &gt;A high level overview of Zot&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/zot&quot; target=&quot;_newwin&quot; &gt;An introduction to Zot&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/zot_structures&quot; target=&quot;_newwin&quot; &gt;Zot Stuctures&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/comanche&quot; target=&quot;_newwin&quot; &gt;Comanche Page Descriptions&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/Creating-Templates&quot; target=&quot;_newwin&quot; &gt;Creating Comanche Templates&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/Widgets&quot; target=&quot;_newwin&quot; &gt;Widgets&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/plugins&quot; target=&quot;_newwin&quot; &gt;Plugins&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/hooks&quot; target=&quot;_newwin&quot; &gt;Hooks&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/doco&quot; target=&quot;_newwin&quot; &gt;Contributing Documentation&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/DerivedTheme1&quot; target=&quot;_newwin&quot; &gt;Creating Derivative Themes&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/schema_development&quot; target=&quot;_newwin&quot; &gt;Schemas&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/Translations&quot; target=&quot;_newwin&quot; &gt;Translations&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/developers&quot; target=&quot;_newwin&quot; &gt;Developers&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/intro_for_developers&quot; target=&quot;_newwin&quot; &gt;Intro for Developers&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/database&quot; target=&quot;_newwin&quot; &gt;Database schema documentation&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/api_functions&quot; target=&quot;_newwin&quot; &gt;API functions&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/api_posting&quot; target=&quot;_newwin&quot; &gt;Posting to the red# using the API&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/developer_function_primer&quot; target=&quot;_newwin&quot; &gt;Red Functions 101&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/doc/html/&quot; target=&quot;_newwin&quot; &gt;Code Reference (Doxygen generated - sets cookies)&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/to_do_doco&quot; target=&quot;_newwin&quot; &gt;To-Do list for the Red Documentation Project&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/to_do_code&quot; target=&quot;_newwin&quot; &gt;To-Do list for Developers&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/roadmap&quot; target=&quot;_newwin&quot; &gt;Version 3 roadmap&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/git_for_non_developers&quot; target=&quot;_newwin&quot; &gt;Git for Non-Developers&lt;/a&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/dev_beginner&quot; target=&quot;_newwin&quot; &gt;Step-for-step manual for beginning developers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Frequently Asked Questions For Developers&lt;/h3&gt;&lt;br /&gt;&lt;a class=&quot;zrl&quot; href=&quot;http://hubzilla/help/faq_developers&quot; target=&quot;_newwin&quot; &gt;FAQ For Developers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;External Resources&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://zothub.com/channel/one&quot; target=&quot;_newwin&quot; &gt;Development Channel&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://federated.social/channel/postgres&quot; target=&quot;_newwin&quot; &gt;Postgres-specific Hubzilla Admin Support Channel&lt;/a&gt;&lt;br /&gt;\n\t&lt;/div&gt;\n&lt;/div&gt;\n&lt;script&gt;var homebase = &quot;http://hubzilla/channel/testes&quot;;&lt;/script&gt;",
"page_title": "help",
"title": "Help: Develop",
"nav": "\t&lt;div class=&quot;container-fluid&quot;&gt;\n\t\t&lt;div class=&quot;navbar-header&quot;&gt;\n\t\t\t&lt;button type=&quot;button&quot; class=&quot;navbar-toggle&quot; data-toggle=&quot;collapse&quot; data-target=&quot;#navbar-collapse-1&quot;&gt;\n\t\t\t\t&lt;span class=&quot;icon-bar&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;span class=&quot;icon-bar&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;span class=&quot;icon-bar&quot;&gt;&lt;/span&gt;\n\t\t\t&lt;/button&gt;\n\t\t\t&lt;button id=&quot;expand-tabs&quot; type=&quot;button&quot; class=&quot;navbar-toggle&quot; data-toggle=&quot;collapse&quot; data-target=&quot;#tabs-collapse-1&quot;&gt;\n\t\t\t\t&lt;i class=&quot;icon-circle-arrow-down&quot; id=&quot;expand-tabs-icon&quot;&gt;&lt;/i&gt;\n\t\t\t&lt;/button&gt;\n\t\t\t&lt;button id=&quot;expand-aside&quot; type=&quot;button&quot; class=&quot;navbar-toggle&quot; data-toggle=&quot;offcanvas&quot; data-target=&quot;#region_1&quot;&gt;\n\t\t\t\t&lt;i class=&quot;icon-circle-arrow-right&quot; id=&quot;expand-aside-icon&quot;&gt;&lt;/i&gt;\n\t\t\t&lt;/button&gt;\n\t\t\t\t\t\t\t&lt;img class=&quot;dropdown-toggle fakelink&quot; data-toggle=&quot;dropdown&quot; id=&quot;avatar&quot; src=&quot;http://hubzilla/photo/profile/m/2&quot; alt=&quot;testes@hubzilla&quot;&gt;&lt;span class=&quot;caret&quot; id=&quot;usermenu-caret&quot;&gt;&lt;/span&gt;\n\t\t\t\t\t\t\t\t\t&lt;ul class=&quot;dropdown-menu&quot; role=&quot;menu&quot; aria-labelledby=&quot;avatar&quot;&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;channel/testes&quot; title=&quot;Your posts and conversations&quot; role=&quot;menuitem&quot; id=&quot;channel_nav_btn&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;profile/testes&quot; title=&quot;Your profile page&quot; role=&quot;menuitem&quot; id=&quot;profile_nav_btn&quot;&gt;View Profile&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;profiles/2&quot; title=&quot;Edit your profile&quot; role=&quot;menuitem&quot; id=&quot;profiles_nav_btn&quot;&gt;Edit Profile&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;photos/testes&quot; title=&quot;Your photos&quot; role=&quot;menuitem&quot; id=&quot;photos_nav_btn&quot;&gt;Photos&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;cloud/testes&quot; title=&quot;Your files&quot; role=&quot;menuitem&quot; id=&quot;cloud_nav_btn&quot;&gt;Files&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;chat/testes/new&quot; title=&quot;Your chatrooms&quot; role=&quot;menuitem&quot; id=&quot;chat_nav_btn&quot;&gt;Chat&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot; class=&quot;divider&quot;&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;settings&quot; title=&quot;Account/Channel Settings&quot; role=&quot;menuitem&quot; id=&quot;settings_nav_btn&quot;&gt;Settings&lt;/a&gt;&lt;/li&gt;\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;manage&quot; title=&quot;Manage Your Channels&quot; role=&quot;menuitem&quot; id=&quot;manage_nav_btn&quot;&gt;Channel Manager&lt;/a&gt;&lt;/li&gt;\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot; class=&quot;divider&quot;&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;admin/&quot; title=&quot;Site Setup and Configuration&quot; role=&quot;menuitem&quot; id=&quot;admin_nav_btn&quot;&gt;Admin&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t&lt;li role=&quot;presentation&quot; class=&quot;divider&quot;&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li role=&quot;presentation&quot;&gt;&lt;a href=&quot;logout&quot; title=&quot;End this session&quot; role=&quot;menuitem&quot; id=&quot;logout_nav_btn&quot;&gt;Logout&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t\t\t\t\t\t&lt;/ul&gt;\n\t\t\t\t\t\t\t\t\t&lt;/div&gt;\n\t\t&lt;div class=&quot;collapse navbar-collapse&quot; id=&quot;navbar-collapse-1&quot;&gt;\n\t\t\t&lt;ul class=&quot;nav navbar-nav navbar-left&quot;&gt;\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t&lt;li class=&quot; hidden-xs&quot;&gt;\n\t\t\t\t\t&lt;a href=&quot;network&quot; title=&quot;Your grid&quot; id=&quot;network_nav_btn&quot;&gt;&lt;i class=&quot;icon-th&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;net-update badge dropdown-toggle&quot; data-toggle=&quot;dropdown&quot; rel=&quot;#nav-network-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t\t&lt;ul id=&quot;nav-network-menu&quot; role=&quot;menu&quot; class=&quot;dropdown-menu&quot; rel=&quot;network&quot;&gt;\n\t\t\t\t\t\t\n\t\t\t\t\t\t&lt;li id=&quot;nav-network-mark-all&quot;&gt;&lt;a href=&quot;#&quot; onclick=&quot;markRead('network'); return false;&quot;&gt;Mark all grid notifications seen&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li class=&quot;empty&quot;&gt;Loading...&lt;/li&gt;\n\t\t\t\t\t&lt;/ul&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t&lt;li class=&quot; visible-xs&quot;&gt;\n\t\t\t\t\t&lt;a href=&quot;network&quot; title=&quot;Your grid&quot; &gt;&lt;i class=&quot;icon-th&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;net-update badge&quot; rel=&quot;#nav-network-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\n\t\t\t\t\t\t\t&lt;li class=&quot; hidden-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;channel/testes&quot; title=&quot;Channel home&quot; id=&quot;home_nav_btn&quot;&gt;&lt;i class=&quot;icon-home&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;home-update badge dropdown-toggle&quot; data-toggle=&quot;dropdown&quot; rel=&quot;#nav-home-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t\t&lt;ul id=&quot;nav-home-menu&quot; class=&quot;dropdown-menu&quot; rel=&quot;home&quot;&gt;\n\t\t\t\t\t\t\n\t\t\t\t\t\t&lt;li id=&quot;nav-home-mark-all&quot;&gt;&lt;a href=&quot;#&quot; onclick=&quot;markRead('home'); return false;&quot;&gt;Mark all channel notifications seen&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li class=&quot;empty&quot;&gt;Loading...&lt;/li&gt;\n\t\t\t\t\t&lt;/ul&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t&lt;li class=&quot; visible-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;channel/testes&quot; title=&quot;Channel home&quot; &gt;&lt;i class=&quot;icon-home&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;home-update badge&quot; rel=&quot;#nav-home-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\n\n\t\t\t\t\t\t\t&lt;li class=&quot; hidden-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;mail/combined&quot; title=&quot;Private mail&quot; id=&quot;mail_nav_btn&quot;&gt;&lt;i class=&quot;icon-envelope&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;mail-update badge dropdown-toggle&quot; data-toggle=&quot;dropdown&quot; rel=&quot;#nav-messages-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t\t&lt;ul id=&quot;nav-messages-menu&quot; class=&quot;dropdown-menu&quot; rel=&quot;messages&quot;&gt;\n\t\t\t\t\t\t&lt;li id=&quot;nav-messages-see-all&quot;&gt;&lt;a href=&quot;mail/combined&quot;&gt;See all private messages&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li id=&quot;nav-messages-mark-all&quot;&gt;&lt;a href=&quot;#&quot; onclick=&quot;markRead('messages'); return false;&quot;&gt;Mark all private messages seen&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li class=&quot;empty&quot;&gt;Loading...&lt;/li&gt;\n\t\t\t\t\t&lt;/ul&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t&lt;li class=&quot; visible-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;mail/combined&quot; title=&quot;Private mail&quot; &gt;&lt;i class=&quot;icon-envelope&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;mail-update badge&quot; rel=&quot;#nav-messages-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\n\t\t\t\t\t\t\t&lt;li class=&quot; hidden-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;events&quot; title=&quot;Event Calendar&quot; id='events_nav_btn'&gt;&lt;i class=&quot;icon-calendar&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;all_events-update badge dropdown-toggle&quot; data-toggle=&quot;dropdown&quot; rel=&quot;#nav-all_events-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t\t&lt;ul id=&quot;nav-all_events-menu&quot; class=&quot;dropdown-menu&quot; rel=&quot;all_events&quot;&gt;\n\t\t\t\t\t\t&lt;li id=&quot;nav-all_events-see-all&quot;&gt;&lt;a href=&quot;events&quot;&gt;See all events&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li id=&quot;nav-all_events-mark-all&quot;&gt;&lt;a href=&quot;#&quot; onclick=&quot;markRead('all_events'); return false;&quot;&gt;Mark all events seen&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li class=&quot;empty&quot;&gt;Loading...&lt;/li&gt;\n\t\t\t\t\t&lt;/ul&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t&lt;li class=&quot; visible-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;events&quot; title=&quot;Event Calendar&quot; &gt;&lt;i class=&quot;icon-calendar&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;all_events-update badge&quot; rel=&quot;#nav-all_events-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\n\t\t\t\t\t\t\t&lt;li class=&quot; hidden-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;connections/ifpending&quot; title=&quot;Connections&quot; id=&quot;connections_nav_btn&quot;&gt;&lt;i class=&quot;icon-user&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;intro-update badge dropdown-toggle&quot; data-toggle=&quot;dropdown&quot; rel=&quot;#nav-intros-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t\t&lt;ul id=&quot;nav-intros-menu&quot; class=&quot;dropdown-menu&quot; rel=&quot;intros&quot;&gt;\n\t\t\t\t\t\t&lt;li id=&quot;nav-intros-see-all&quot;&gt;&lt;a href=&quot;&quot;&gt;&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li class=&quot;empty&quot;&gt;Loading...&lt;/li&gt;\n\t\t\t\t\t&lt;/ul&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t&lt;li class=&quot; visible-xs&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;connections/ifpending&quot; title=&quot;Connections&quot; &gt;&lt;i class=&quot;icon-user&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;intro-update badge&quot; rel=&quot;#nav-intros-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t\t\n\t\t\t\t\t\t\t&lt;li class=&quot; hidden-xs&quot;&gt;\n\t\t\t\t\t&lt;a href=&quot;notifications/system&quot; title=&quot;Notices&quot; id=&quot;notifications_nav_btn&quot;&gt;&lt;i class=&quot;icon-exclamation&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;notify-update badge dropdown-toggle&quot; data-toggle=&quot;dropdown&quot; rel=&quot;#nav-notify-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t\t&lt;ul id=&quot;nav-notify-menu&quot; class=&quot;dropdown-menu&quot; rel=&quot;notify&quot;&gt;\n\t\t\t\t\t\t&lt;li id=&quot;nav-notify-see-all&quot;&gt;&lt;a href=&quot;notifications/system&quot;&gt;See all notifications&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li id=&quot;nav-notify-mark-all&quot;&gt;&lt;a href=&quot;#&quot; onclick=&quot;markRead('notify'); return false;&quot;&gt;Mark all system notifications seen&lt;/a&gt;&lt;/li&gt;\n\t\t\t\t\t\t&lt;li class=&quot;empty&quot;&gt;Loading...&lt;/li&gt;\n\t\t\t\t\t&lt;/ul&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t&lt;li class=&quot; visible-xs&quot;&gt;\n\t\t\t\t\t&lt;a href=&quot;notifications/system&quot; title=&quot;Notices&quot;&gt;&lt;i class=&quot;icon-exclamation&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t\t&lt;span class=&quot;notify-update badge&quot; rel=&quot;#nav-notify-menu&quot;&gt;&lt;/span&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t\t\t&lt;/ul&gt;\n\t\t\t&lt;ul class=&quot;nav navbar-nav navbar-right&quot;&gt;\n\t\t\t\t&lt;li class=&quot;hidden-xs&quot;&gt;\n\t\t\t\t\t&lt;form method=&quot;get&quot; action=&quot;search&quot; role=&quot;search&quot;&gt;\n\t\t\t\t\t\t&lt;div id=&quot;nav-search-spinner&quot;&gt;&lt;/div&gt;&lt;input class=&quot;icon-search&quot; id=&quot;nav-search-text&quot; type=&quot;text&quot; value=&quot;&quot; placeholder=&quot;&amp;#xf002; @name, #tag, ?doc, content&quot; name=&quot;search&quot; title=&quot;Search site @name, #tag, ?docs, content&quot; onclick=&quot;this.submit();&quot;/&gt;\n\t\t\t\t\t&lt;/form&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t&lt;li class=&quot;visible-xs&quot;&gt;\n\t\t\t\t\t&lt;a href=&quot;/search&quot; title=&quot;Search site @name, #tag, ?docs, content&quot;&gt;&lt;i class=&quot;icon-search&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t&lt;/li&gt;\n\n\t\t\t\t\t\t\t\t\t\t&lt;li class=&quot;&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;directory&quot; title=&quot;Channel Directory&quot; id=&quot;directory_nav_btn&quot;&gt;&lt;i class=&quot;icon-sitemap&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\n\t\t\t\t\t\t\t&lt;li class=&quot;&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; href=&quot;apps&quot; title=&quot;Applications, utilities, links, games&quot; id=&quot;apps_nav_btn&quot;&gt;&lt;i class=&quot;icon-cogs&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\n\t\t\t\t\t\t\t&lt;li class=&quot;active&quot;&gt;\n\t\t\t\t\t&lt;a class=&quot;&quot; target=&quot;hubzilla-help&quot; href=&quot;http://hubzilla/help?f=&amp;cmd=help/develop&quot; title=&quot;Help and documentation&quot; id=&quot;help_nav_btn&quot;&gt;&lt;i class=&quot;icon-question&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n\t\t\t\t&lt;/li&gt;\n\t\t\t\t\t\t&lt;/ul&gt;\n\t\t&lt;/div&gt;\n\t&lt;/div&gt;\n",
diff --git a/include/conversation.php b/include/conversation.php
index c278dcf12..a7d5f3fa5 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1089,6 +1089,11 @@ function format_like($cnt, $arr, $type, $id) {
return $o;
}
+/**
+ * This is our general purpose content editor.
+ * It was once nicknamed "jot" and you may see references to "jot" littered throughout the code.
+ * They are referring to the content editor or components thereof.
+ */
function status_editor($a, $x, $popup = false) {
diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php
index 285cbc8fb..0de3b9c97 100644
--- a/include/photo/photo_driver.php
+++ b/include/photo/photo_driver.php
@@ -3,6 +3,17 @@
function photo_factory($data, $type = null) {
$ph = null;
+
+ $unsupported_types = array(
+ 'image/bmp',
+ 'image/vnd.microsoft.icon',
+ 'image/tiff',
+ 'image/svg+xml'
+ );
+
+ if($type && in_array(strtolower($type),$unsupported_types))
+ return null;
+
$ignore_imagick = get_config('system', 'ignore_imagick');
if(class_exists('Imagick') && !$ignore_imagick) {
diff --git a/include/text.php b/include/text.php
index edaa8dcd3..ed0e21a71 100644
--- a/include/text.php
+++ b/include/text.php
@@ -94,6 +94,8 @@ function z_input_filter($channel_id,$s,$type = 'text/bbcode') {
return escape_tags($s);
if($type == 'text/plain')
return escape_tags($s);
+ if($type == 'application/x-pdl')
+ return escape_tags($s);
$a = get_app();
if($a->is_sys) {
@@ -1517,6 +1519,11 @@ function prepare_text($text, $content_type = 'text/bbcode', $cache = false) {
$s = Markdown($text);
break;
+
+ case 'application/x-pdl';
+ $s = escape_tags($text);
+ break;
+
// No security checking is done here at display time - so we need to verify
// that the author is allowed to use PHP before storing. We also cannot allow
// importation of PHP text bodies from other sites. Therefore this content
@@ -1681,7 +1688,8 @@ function mimetype_select($channel_id, $current = 'text/bbcode') {
'text/bbcode',
'text/html',
'text/markdown',
- 'text/plain'
+ 'text/plain',
+ 'application/x-pdl'
);
$a = get_app();
diff --git a/include/widgets.php b/include/widgets.php
index 0f61a04a0..5a135ae52 100644
--- a/include/widgets.php
+++ b/include/widgets.php
@@ -1221,3 +1221,81 @@ function widget_admin($arr) {
return $o;
}
+
+
+
+function widget_album($args) {
+
+ $owner_uid = get_app()->profile_uid;
+ $sql_extra = permissions_sql($owner_uid);
+
+ if($args['album'])
+ $album = $args['album'];
+ if($args['title'])
+ $title = $args['title'];
+
+ $order = 'DESC';
+
+ $r = q("SELECT p.resource_id, p.id, p.filename, p.type, p.scale, p.description, p.created FROM photo p INNER JOIN
+ (SELECT resource_id, max(scale) scale FROM photo WHERE uid = %d AND album = '%s' AND scale <= 4 AND photo_usage IN ( %d, %d ) $sql_extra GROUP BY resource_id) ph
+ ON (p.resource_id = ph.resource_id AND p.scale = ph.scale)
+ ORDER BY created $order ",
+ intval($owner_uid),
+ dbesc($album),
+ intval(PHOTO_NORMAL),
+ intval(PHOTO_PROFILE)
+ );
+
+ //edit album name
+ $album_edit = null;
+
+
+ $photos = array();
+ if($r) {
+ $twist = 'rotright';
+ foreach($r as $rr) {
+
+ if($twist == 'rotright')
+ $twist = 'rotleft';
+ else
+ $twist = 'rotright';
+
+ $ext = $phototypes[$rr['type']];
+
+ $imgalt_e = $rr['filename'];
+ $desc_e = $rr['description'];
+
+ $imagelink = (z_root() . '/photos/' . get_app()->profile['channel_address'] . '/image/' . $rr['resource_id']);
+
+
+ $photos[] = array(
+ 'id' => $rr['id'],
+ 'twist' => ' ' . $twist . rand(2,4),
+ 'link' => $imagelink,
+ 'title' => t('View Photo'),
+ 'src' => z_root() . '/photo/' . $rr['resource_id'] . '-' . $rr['scale'] . '.' .$ext,
+ 'alt' => $imgalt_e,
+ 'desc'=> $desc_e,
+ 'ext' => $ext,
+ 'hash'=> $rr['resource_id'],
+ 'unknown' => t('Unknown')
+ );
+ }
+ }
+
+
+ $tpl = get_markup_template('photo_album.tpl');
+ $o .= replace_macros($tpl, array(
+ '$photos' => $photos,
+ '$album' => (($title) ? $title : $album),
+ '$album_edit' => array(t('Edit Album'), $album_edit),
+ '$can_post' => false,
+ '$upload' => array(t('Upload'), z_root() . '/photos/' . get_app()->profile['channel_address'] . '/upload/' . bin2hex($album)),
+ '$order' => false,
+ '$upload_form' => $upload_form,
+ '$usage' => $usage_message
+ ));
+
+ return $o;
+}
+
diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql
index d60e1bc69..95ed9acb7 100644
--- a/install/schema_postgres.sql
+++ b/install/schema_postgres.sql
@@ -44,7 +44,6 @@ CREATE TABLE "abook" (
create index "abook_profile" on abook ("abook_profile");
create index "abook_dob" on abook ("abook_dob");
create index "abook_connected" on abook ("abook_connected");
- create index "abook_rating" on abook ("abook_rating");
create index "abook_channel_closeness" on abook ("abook_channel", "abook_closeness");
CREATE TABLE "account" (
diff --git a/mod/directory.php b/mod/directory.php
index 3c230e173..4ab118b17 100644
--- a/mod/directory.php
+++ b/mod/directory.php
@@ -121,6 +121,8 @@ function directory_content(&$a) {
}
if(! $url) {
$directory = find_upstream_directory($dirmode);
+ if((! $directory) || (! array_key_exists('url',$directory)) || (! $directory['url']))
+ logger('CRITICAL: No directory server URL');
$url = $directory['url'] . '/dirsearch';
}
diff --git a/mod/dreport.php b/mod/dreport.php
index c320bf0e6..1ad1eca7c 100644
--- a/mod/dreport.php
+++ b/mod/dreport.php
@@ -56,7 +56,7 @@ function dreport_content(&$a) {
return;
}
-
+ $o .= '<div class="generic-content-wrapper-styled">';
$o .= '<h2>' . sprintf( t('Delivery report for %1$s'),substr($mid,0,32)) . '...' . '</h2>';
$o .= '<table>';
@@ -121,6 +121,7 @@ function dreport_content(&$a) {
$o .= '<tr><td width="40%">' . $rr['name'] . '</td><td width="20%">' . escape_tags($rr['dreport_result']) . '</td><td width="20%">' . escape_tags($rr['dreport_time']) . '</td></tr>';
}
$o .= '</table>';
+ $o .= '</div>';
return $o;
@@ -135,4 +136,4 @@ function dreport_gravity_sort($a,$b) {
return strcmp($a['name'],$b['name']);
}
return (($a['gravity'] > $b['gravity']) ? 1 : (-1));
-} \ No newline at end of file
+}
diff --git a/mod/page.php b/mod/page.php
index b635a60f2..ae572ca1e 100644
--- a/mod/page.php
+++ b/mod/page.php
@@ -131,6 +131,10 @@ function page_content(&$a) {
xchan_query($r);
$r = fetch_post_tags($r,true);
+
+ if($r[0]['mimetype'] === 'application/x-pdl')
+ $a->page['pdl_content'] = true;
+
$o .= prepare_page($r[0]);
return $o;
diff --git a/version.inc b/version.inc
index 3b6ad6e9a..938250e5c 100644
--- a/version.inc
+++ b/version.inc
@@ -1 +1 @@
-2015-11-11.1213
+2015-11-12.1214
diff --git a/view/theme/redbasic/schema/bluegrid.css b/view/theme/redbasic/schema/bluegrid.css
index 2c6f34558..3c856c5e2 100644
--- a/view/theme/redbasic/schema/bluegrid.css
+++ b/view/theme/redbasic/schema/bluegrid.css
@@ -299,7 +299,7 @@ input {
border: 1px solid rgba(255,255,255,.5);
}
-.contact-entry-edit a:hover, .contact-entry-edit a:focus, .generic-content-wrapper-styled > p > span.btn.btn-default > a:hover,.generic-content-wrapper-styled > p > span.btn.btn-default > a:focus, div#profile-edit-links a:hover, div#profile-edit-links a:focus {
+.contact-entry-edit:hover a, .contact-entry-edit:focus a, .generic-content-wrapper-styled > p > span.btn.btn-default > a:hover,.generic-content-wrapper-styled > p > span.btn.btn-default > a:focus, div#profile-edit-links a:hover, div#profile-edit-links a:focus {
color: #43488A;
}
diff --git a/view/tpl/photo_album.tpl b/view/tpl/photo_album.tpl
index d22f82f8e..bbcdcefc1 100755
--- a/view/tpl/photo_album.tpl
+++ b/view/tpl/photo_album.tpl
@@ -1,7 +1,9 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
<div class="pull-right">
+ {{if $order}}
<a class="btn btn-default btn-xs" href="{{$order.1}}" title="{{$order.0}}"><i class="icon-sort"></i></a>
+ {{/if}}
<div class="btn-group btn-group">
{{if $album_edit.1}}
<i class="icon-pencil btn btn-default btn-xs" title="{{$album_edit.0}}" onclick="openClose('photo-album-edit-wrapper'); closeMenu('photo-upload-form');"></i>