diff options
author | redmatrix <redmatrix@redmatrix.me> | 2015-06-21 20:51:07 -0700 |
---|---|---|
committer | redmatrix <redmatrix@redmatrix.me> | 2015-06-21 20:51:07 -0700 |
commit | ae6612025dcd31349056364d0c701bfda58470db (patch) | |
tree | c67db564af1d2368344205fda2889f336dd14925 | |
parent | 33c9d8e06b2af512d25b0c9063ce58d86b72f747 (diff) | |
parent | 0ad71b3efa7de4eb1f4313ffe4562ec83743bdc1 (diff) | |
download | volse-hubzilla-ae6612025dcd31349056364d0c701bfda58470db.tar.gz volse-hubzilla-ae6612025dcd31349056364d0c701bfda58470db.tar.bz2 volse-hubzilla-ae6612025dcd31349056364d0c701bfda58470db.zip |
Merge branch 'master' of https://github.com/redmatrix/redmatrix
Conflicts:
include/items.php
util/messages.po
29 files changed, 539 insertions, 331 deletions
@@ -5,7 +5,13 @@ AddType audio/ogg .oga # don't allow any web access to logfiles, even after rotation/compression <FilesMatch "\.(out|log|gz)$"> -Deny from all + <IfModule mod_authz_core.c> + Require all denied + </IfModule> + <IfModule !mod_authz_core.c> + Order deny,allow + Deny from all + </IfModule> </FilesMatch> <IfModule mod_rewrite.c> @@ -14,7 +20,6 @@ Deny from all RewriteRule "(^|/)\.git" - [F] RewriteRule "(^|/)store" - [F] - # Rewrite current-style URLs of the form 'index.php?q=x'. # Also place auth information into REMOTE_USER for sites running # in CGI mode. @@ -22,6 +27,4 @@ Deny from all RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] - </IfModule> - diff --git a/doc/Schema-development.md b/doc/Schema-development.md index 3ac96a02b..e811bb8c3 100644 --- a/doc/Schema-development.md +++ b/doc/Schema-development.md @@ -30,6 +30,7 @@ If no personal options are set, and no schema is selected, we will first try to with the file name "default.php". This file should never be included with a theme. If it is, merge conflicts will occur as people update their code. Rather, this should be defined by administrators on a site by site basis. +default.php and default.css MUST be symlinks to existing scheme files. You schema does not need to - and should not - contain all of these values. Only the values that differ from the defaults should be listed. This gives you some very powerful options diff --git a/doc/schema_development.bb b/doc/schema_development.bb index 998111431..3d4c84e85 100644 --- a/doc/schema_development.bb +++ b/doc/schema_development.bb @@ -28,6 +28,7 @@ If no personal options are set, and no schema is selected, we will first try to with the file name "default.php". This file should never be included with a theme. If it
is, merge conflicts will occur as people update their code. Rather, this should be defined
by administrators on a site by site basis.
+default.php and default.css MUST be symlinks to existing scheme files.
You schema does not need to - and should not - contain all of these values. Only the values
that differ from the defaults should be listed. This gives you some very powerful options
diff --git a/include/Import/import_diaspora.php b/include/Import/import_diaspora.php new file mode 100644 index 000000000..fca9fa4f2 --- /dev/null +++ b/include/Import/import_diaspora.php @@ -0,0 +1,146 @@ +<?php + +require_once('include/bb2diaspora.php'); +require_once('include/group.php'); +require_once('include/follow.php'); +require_once('include/photo/photo_driver.php'); + +function import_diaspora($data) { + $a = get_app(); + + $account = $a->get_account(); + if(! $account) + return false; + + $address = escape_tags($data['user']['username']); + if(! $address) { + notice( t('No username found in import file.') . EOL); + return false; + } + + $r = q("select * from channel where channel_address = '%s' limit 1", + dbesc($address) + ); + if($r) { + // try at most ten times to generate a unique address. + $x = 0; + $found_unique = false; + do { + $tmp = $address . mt_rand(1000,9999); + $r = q("select * from channel where channel_address = '%s' limit 1", + dbesc($tmp) + ); + if(! $r) { + $address = $tmp; + $found_unique = true; + break; + } + $x ++; + } while ($x < 10); + if(! $found_unique) { + logger('import_diaspora: duplicate channel address. randomisation failed.'); + notice( t('Unable to create a unique channel address. Import failed.') . EOL); + return; + } + } + + + $c = create_identity(array( + 'name' => escape_tags($data['user']['name']), + 'nickname' => $address, + 'account_id' => $account['account_id'], + 'permissions_role' => 'social' + )); + + if(! $c['success']) + return; + + $channel_id = $c['channel']['channel_id']; + + // todo - add auto follow settings, (and strip exif in hubzilla) + + $location = escape_tags($data['user']['profile']['location']); + if(! $location) + $location = ''; + + + q("update channel set channel_location = '%s' where channel_id = %d", + dbesc($location), + intval($channel_id) + ); + + if($data['user']['profile']['nsfw']) { + // fixme for hubzilla which doesn't use pageflags any more + q("update channel set channel_pageflags = (channel_pageflags | %d) where channel_id = %d", + intval(PAGE_ADULT), + intval($channel_id) + ); + } + + if($data['user']['profile']['image_url']) { + $p = z_fetch_url($data['user']['profile']['image_url'],true); + if($p['success']) { + $rawbytes = $p['body']; + $type = guess_image_type('dummyfile',$p['header']); + import_channel_photo($rawbytes,$type,$c['channel']['channel_account_id'],$channel_id); + } + } + + $gender = escape_tags($data['user']['profile']['gender']); + $about = diaspora2bb($data['user']['profile']['bio']); + $publish = intval($data['user']['profile']['searchable']); + if($data['user']['profile']['birthday']) + $dob = datetime_convert('UTC','UTC',$data['user']['profile']['birthday'],'Y-m-d'); + else + $dob = '0000-00-00'; + + // we're relying on the fact that this channel was just created and will only + // have the default profile currently + + $r = q("update profile set gender = '%s', about = '%s', dob = '%s', publish = %d where uid = %d", + dbesc($gender), + dbesc($about), + dbesc($dob), + dbesc($publish), + intval($channel_id) + ); + + if($data['user']['aspects']) { + foreach($data['user']['aspects'] as $aspect) { + group_add($channel_id,escape_tags($aspect['name']),intval($aspect['contacts_visible'])); + } + } + + // now add connections and send friend requests + + + if($data['user']['contacts']) { + foreach($data['user']['contacts'] as $contact) { + $result = new_contact($channel_id, $contact['person_diaspora_handle'], $c['channel']); + if($result['success']) { + if($contact['aspects']) { + foreach($contact['aspects'] as $aspect) { + group_add_member($channel_id,$aspect['name'],$result['abook']['xchan_hash']); + } + } + } + } + } + + + // Then add items - note this can't be done until Diaspora adds guids to exported + // items and comments + + + + // This will indirectly perform a refresh_all *and* update the directory + + proc_run('php', 'include/directory.php', $channel_id); + + notice( t('Import completed.') . EOL); + + change_channel($channel_id); + + goaway(z_root() . '/network' ); + +}
\ No newline at end of file diff --git a/include/RedDAV/RedBrowser.php b/include/RedDAV/RedBrowser.php index a0330d7cc..d74bba220 100644 --- a/include/RedDAV/RedBrowser.php +++ b/include/RedDAV/RedBrowser.php @@ -247,7 +247,7 @@ class RedBrowser extends DAV\Browser\Plugin { $this->server->broadcastEvent('onHTMLActionsPanel', array($parent, &$output)); } - $html .= replace_macros(get_markup_template('cloud_header.tpl'), array( + $html .= replace_macros(get_markup_template('cloud.tpl'), array( '$header' => t('Files') . ": " . $this->escapeHTML($path) . "/", '$quota' => $quota, '$total' => t('Total'), @@ -255,10 +255,7 @@ class RedBrowser extends DAV\Browser\Plugin { '$shared' => t('Shared'), '$create' => t('Create'), '$upload' => t('Upload'), - '$is_owner' => $is_owner - )); - - $html .= replace_macros(get_markup_template('cloud_directory.tpl'), array( + '$is_owner' => $is_owner, '$parentpath' => $parentpath, '$entries' => $f, '$name' => t('Name'), diff --git a/include/items.php b/include/items.php index ca7ceae42..73cb69342 100755 --- a/include/items.php +++ b/include/items.php @@ -2592,6 +2592,7 @@ function item_store_update($arr,$allow_exec = false) { $arr['item_blocked'] = ((array_key_exists('item_blocked',$arr)) ? intval($arr['item_blocked']) : $orig[0]['item_blocked'] ); + $arr['sig'] = ((x($arr,'sig')) ? $arr['sig'] : ''); $arr['layout_mid'] = ((array_key_exists('layout_mid',$arr)) ? dbesc($arr['layout_mid']) : $orig[0]['layout_mid'] ); @@ -2635,12 +2636,11 @@ function item_store_update($arr,$allow_exec = false) { return $ret; } - $r = q("delete from term where oid = %d and otype = %d", - intval($orig_post_id), - intval(TERM_OBJ_POST) - ); - - if(($terms) && (is_array($terms))) { + if(is_array($terms)) { + $r = q("delete from term where oid = %d and otype = %d", + intval($orig_post_id), + intval(TERM_OBJ_POST) + ); foreach($terms as $t) { q("insert into term (uid,oid,otype,type,term,url) values(%d,%d,%d,%d,'%s','%s') ", @@ -2667,6 +2667,8 @@ function item_store_update($arr,$allow_exec = false) { return $ret; } + + function store_diaspora_comment_sig($datarray, $channel, $parent_item, $post_id, $walltowall = false) { // We won't be able to sign Diaspora comments for authenticated visitors diff --git a/mod/import.php b/mod/import.php index d3864c077..68d8ebee8 100644 --- a/mod/import.php +++ b/mod/import.php @@ -38,6 +38,15 @@ function import_post(&$a) { if($src) { + + // This is OS specific and could also fail if your tmpdir isn't very large + // mostly used for Diaspora which exports gzipped files. + + if(strpos($filename,'.gz')){ + @rename($src,$src . '.gz'); + @system('gunzip ' . escapeshellarg($src . '.gz')); + } + if($filesize) { $data = @file_get_contents($src); } @@ -85,9 +94,15 @@ function import_post(&$a) { $data = json_decode($data,true); // logger('import: data: ' . print_r($data,true)); - // print_r($data); + + if(array_key_exists('user',$data) && array_key_exists('version',$data)) { + require_once('include/Import/import_diaspora.php'); + import_diaspora($data); + return; + } + // import channel $channel = $data['channel']; @@ -306,7 +321,7 @@ function import_post(&$a) { dbesc($photos[2]), dbesc($photos[3]), dbesc($photodate), - dbesc($xchan_hash) + dbesc($xchan['xchan_hash']) ); } @@ -488,7 +503,7 @@ function import_content(&$a) { $o = replace_macros(get_markup_template('channel_import.tpl'),array( '$title' => t('Import Channel'), - '$desc' => t('Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file. Only identity and connections/relationships will be imported. Importation of content is not yet available.'), + '$desc' => t('Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file.'), '$label_filename' => t('File to Upload'), '$choice' => t('Or provide the old server/hub details'), '$label_old_address' => t('Your old identity address (xyz@example.com)'), @@ -496,7 +511,8 @@ function import_content(&$a) { '$label_old_pass' => t('Your old login password'), '$common' => t('For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media.'), '$label_import_primary' => t('Make this hub my primary location'), - '$label_import_posts' => t('Import existing posts if possible'), + '$label_import_posts' => t('Import existing posts if possible (experimental - limited by available memory'), + '$pleasewait' => t('This process may take several minutes to complete. Please submit the form only once and leave this page open until finished.'), '$email' => '', '$pass' => '', '$submit' => t('Submit') diff --git a/util/.htaccess b/util/.htaccess index b311c14c2..a0a0d72d9 100644 --- a/util/.htaccess +++ b/util/.htaccess @@ -1,5 +1,10 @@ Options -Indexes -# Remove the following line or modify it to run the string translator utility -Deny from all - +# Remove the following lines or modify it to run the string translator utility +<IfModule mod_authz_core.c> + Require all denied +</IfModule> +<IfModule !mod_authz_core.c> + Order deny,allow + Deny from all +</IfModule> diff --git a/version.inc b/version.inc index 2b47a6bda..03a0995b5 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2015-06-18.1067 +2015-06-21.1070 diff --git a/view/.htaccess b/view/.htaccess index 559a5fcc0..7aa6c4506 100644 --- a/view/.htaccess +++ b/view/.htaccess @@ -1,3 +1,9 @@ <FilesMatch "\.tpl"> -Deny from all -</FilesMatch>
\ No newline at end of file + <IfModule mod_authz_core.c> + Require all denied + </IfModule> + <IfModule !mod_authz_core.c> + Order deny,allow + Deny from all + </IfModule> +</FilesMatch> diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css index 946e2d7d7..ad203867c 100644 --- a/view/theme/redbasic/css/style.css +++ b/view/theme/redbasic/css/style.css @@ -1889,7 +1889,6 @@ nav .dropdown-menu { color: #31708f; background-color: #d9edf7; margin-bottom: 3px; - border-radius: $radiuspx; text-align: center; } @@ -1898,7 +1897,6 @@ nav .dropdown-menu { color: #8a6d3b; background-color: #fcf8e3; margin-bottom: 3px; - border-radius: $radiuspx; text-align: center; } @@ -1907,10 +1905,20 @@ nav .dropdown-menu { color: #a94442; background-color: #f2dede; margin-bottom: 3px; - border-radius: $radiuspx; text-align: center; } +.section-content-tools-wrapper .section-content-info-wrapper, +.section-content-wrapper .section-content-info-wrapper, +.section-content-tools-wrapper .section-content-warning-wrapper, +.section-content-wrapper .section-content-warning-wrapper, +.section-content-tools-wrapper .section-content-danger-wrapper, +.section-content-wrapper .section-content-danger-wrapper { + margin-bottom: 0px; + border-radius: $radiuspx; +} + + .section-content-wrapper { padding: 7px 10px; background-color: $comment_item_colour; diff --git a/view/theme/redbasic/php/config.php b/view/theme/redbasic/php/config.php index 2603fb267..fe3ea9742 100644 --- a/view/theme/redbasic/php/config.php +++ b/view/theme/redbasic/php/config.php @@ -84,8 +84,10 @@ function redbasic_form(&$a, $arr) { if($files) { foreach($files as $file) { $f = basename($file, ".php"); - $scheme_name = $f; - $scheme_choices[$f] = $scheme_name; + if($f != 'default') { + $scheme_name = $f; + $scheme_choices[$f] = $scheme_name; + } } } diff --git a/view/theme/redbasic/php/style.php b/view/theme/redbasic/php/style.php index 956c1951c..6e68d38d5 100644 --- a/view/theme/redbasic/php/style.php +++ b/view/theme/redbasic/php/style.php @@ -70,6 +70,7 @@ if (($schema) && ($schema != '---')) { // If we haven't got a schema, load the default. We shouldn't touch this - we // should leave it for admins to define for themselves. +// default.php and default.css MUST be symlinks to existing schema files. if (! $schema) { if(file_exists('view/theme/redbasic/schema/default.php')) { diff --git a/view/tpl/blocklist.tpl b/view/tpl/blocklist.tpl index 85e4865ea..27dbcbf0c 100644 --- a/view/tpl/blocklist.tpl +++ b/view/tpl/blocklist.tpl @@ -1,67 +1,69 @@ -<div class="section-title-wrapper"> +<div class="generic-content-wrapper"> + <div class="section-title-wrapper"> + {{if $editor}} + <div class="pull-right"> + <button id="webpage-create-btn" class="btn btn-xs btn-success" onclick="openClose('block-editor');"><i class="icon-edit"></i> {{$create}}</button> + </div> + {{/if}} + <h2>{{$title}}</h2> + <div class="clear"></div> + </div> {{if $editor}} - <div class="pull-right"> - <button id="webpage-create-btn" class="btn btn-xs btn-success" onclick="openClose('block-editor');"><i class="icon-edit"></i> {{$create}}</button> + <div id="block-editor" class="section-content-tools-wrapper"> + {{$editor}} </div> {{/if}} - <h2>{{$title}}</h2> + {{if $pages}} + <div id="pagelist-content-wrapper" class="section-content-wrapper-np"> + <table id="block-list-table"> + <tr> + <th width="1%">{{$name}}</th> + <th width="94%">{{$blocktitle}}</th> + <th width="1%"></th> + <th width="1%"></th> + <th width="1%"></th> + <th width="1%" class="hidden-xs">{{$created}}</th> + <th width="1%" class="hidden-xs">{{$edited}}</th> + </tr> + {{foreach $pages as $key => $items}} + {{foreach $items as $item}} + <tr id="block-list-item-{{$item.url}}"> + <td> + {{if $view}} + <a href="block/{{$channel}}/{{$item.name}}" title="{{$view}}">{{$item.name}}</a> + {{else}} + {{$item.name}} + {{/if}} + </td> + <td> + {{$item.title}} + </td> + <td class="webpage-list-tool"> + {{if $edit}} + <a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="icon-pencil"></i></a> + {{/if}} + </td> + <td class="webpage-list-tool"> + {{if $item.bb_element}} + <a href="rpost?attachment={{$item.bb_element}}" title="{{$share}}"><i class="icon-share"></i></a> + {{/if}} + </td> + <td class="webpage-list-tool"> + {{if $edit}} + <a href="#" title="{{$delete}}" onclick="dropItem('item/drop/{{$item.url}}', '#block-list-item-{{$item.url}}'); return false;"><i class="icon-trash drop-icons"></i></a> + {{/if}} + </td> + <td class="hidden-xs"> + {{$item.created}} + </td> + <td class="hidden-xs"> + {{$item.edited}} + </td> + </tr> + {{/foreach}} + {{/foreach}} + </table> + </div> <div class="clear"></div> + {{/if}} </div> -{{if $editor}} -<div id="block-editor" class="section-content-tools-wrapper"> - {{$editor}} -</div> -{{/if}} -{{if $pages}} -<div id="pagelist-content-wrapper" class="section-content-wrapper-np"> - <table id="block-list-table"> - <tr> - <th width="1%">{{$name}}</th> - <th width="94%">{{$blocktitle}}</th> - <th width="1%"></th> - <th width="1%"></th> - <th width="1%"></th> - <th width="1%" class="hidden-xs">{{$created}}</th> - <th width="1%" class="hidden-xs">{{$edited}}</th> - </tr> - {{foreach $pages as $key => $items}} - {{foreach $items as $item}} - <tr id="block-list-item-{{$item.url}}"> - <td> - {{if $view}} - <a href="block/{{$channel}}/{{$item.name}}" title="{{$view}}">{{$item.name}}</a> - {{else}} - {{$item.name}} - {{/if}} - </td> - <td> - {{$item.title}} - </td> - <td class="webpage-list-tool"> - {{if $edit}} - <a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="icon-pencil"></i></a> - {{/if}} - </td> - <td class="webpage-list-tool"> - {{if $item.bb_element}} - <a href="rpost?attachment={{$item.bb_element}}" title="{{$share}}"><i class="icon-share"></i></a> - {{/if}} - </td> - <td class="webpage-list-tool"> - {{if $edit}} - <a href="#" title="{{$delete}}" onclick="dropItem('item/drop/{{$item.url}}', '#block-list-item-{{$item.url}}'); return false;"><i class="icon-trash drop-icons"></i></a> - {{/if}} - </td> - <td class="hidden-xs"> - {{$item.created}} - </td> - <td class="hidden-xs"> - {{$item.edited}} - </td> - </tr> - {{/foreach}} - {{/foreach}} - </table> -</div> -<div class="clear"></div> -{{/if}} diff --git a/view/tpl/channel_import.tpl b/view/tpl/channel_import.tpl index f76594934..6974e4d30 100755 --- a/view/tpl/channel_import.tpl +++ b/view/tpl/channel_import.tpl @@ -36,5 +36,8 @@ <input type="submit" name="submit" id="import-submit-button" value="{{$submit}}" /> <div id="import-submit-end" class="import-field-end"></div> + <div id="import-common-desc" class="descriptive-paragraph">{{$pleasewait}}</div> + + </form> diff --git a/view/tpl/cloud.tpl b/view/tpl/cloud.tpl new file mode 100644 index 000000000..d1567af9f --- /dev/null +++ b/view/tpl/cloud.tpl @@ -0,0 +1,4 @@ +<div class="generic-content-wrapper"> +{{include file="cloud_header.tpl"}} +{{include file="cloud_directory.tpl"}} +</div> diff --git a/view/tpl/cloud_directory.tpl b/view/tpl/cloud_directory.tpl index c1d03da83..0c7892c25 100644 --- a/view/tpl/cloud_directory.tpl +++ b/view/tpl/cloud_directory.tpl @@ -1,4 +1,4 @@ -<div class="generic-content-wrapper section-content-wrapper-np"> +<div class="section-content-wrapper-np"> <table id="cloud-index"> <tr> <th width="1%"></th> diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl index e0acc25ae..27632d770 100755 --- a/view/tpl/conv_item.tpl +++ b/view/tpl/conv_item.tpl @@ -4,7 +4,7 @@ </div> <div id="collapsed-comments-{{$item.id}}" class="collapsed-comments" style="display: none;"> {{/if}} - <div id="thread-wrapper-{{$item.id}}" class="thread-wrapper {{$item.toplevel}}"> + <div id="thread-wrapper-{{$item.id}}" class="thread-wrapper{{if $item.toplevel}} {{$item.toplevel}} generic-content-wrapper{{/if}}"> <a name="{{$item.id}}" ></a> <div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}}" id="wall-item-outside-wrapper-{{$item.id}}" > <div class="wall-item-content-wrapper {{$item.indent}}" id="wall-item-content-wrapper-{{$item.id}}" style="clear:both;"> diff --git a/view/tpl/conv_list.tpl b/view/tpl/conv_list.tpl index 85425b4e2..cb2fb8959 100755 --- a/view/tpl/conv_list.tpl +++ b/view/tpl/conv_list.tpl @@ -4,7 +4,7 @@ </div> <div id="collapsed-comments-{{$item.id}}" class="collapsed-comments" style="display: none;"> {{/if}} - <div id="thread-wrapper-{{$item.id}}" class="thread-wrapper {{$item.toplevel}} conv-list-mode"> + <div id="thread-wrapper-{{$item.id}}" class="thread-wrapper conv-list-mode{{if $item.toplevel}} {{$item.toplevel}} generic-content-wrapper{{/if}}"> <a name="{{$item.id}}" ></a> <div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}}" id="wall-item-outside-wrapper-{{$item.id}}" > <div class="wall-item-content-wrapper {{$item.indent}}" id="wall-item-content-wrapper-{{$item.id}}" style="clear:both;"> diff --git a/view/tpl/conversation.tpl b/view/tpl/conversation.tpl index 97d64327a..82c7be922 100755 --- a/view/tpl/conversation.tpl +++ b/view/tpl/conversation.tpl @@ -1,6 +1,6 @@ <div id="threads-begin"></div> {{foreach $threads as $thread}} -<div id="thread-wrapper-{{$thread.id}}" class="thread-wrapper"> +<div id="thread-wrapper-{{$thread.id}}" class="thread-wrapper generic-content-wrapper"> {{foreach $thread.items as $item}} {{if $item.comment_firstcollapsed}} <div class="hide-comments-outer"> diff --git a/view/tpl/layoutlist.tpl b/view/tpl/layoutlist.tpl index ab7408eae..cf172e197 100644 --- a/view/tpl/layoutlist.tpl +++ b/view/tpl/layoutlist.tpl @@ -1,69 +1,71 @@ -<div class="section-title-wrapper"> +<div class="generic-content-wrapper"> + <div class="section-title-wrapper"> + {{if $editor}} + <div class="pull-right"> + <button id="webpage-create-btn" class="btn btn-xs btn-success" onclick="openClose('layout-editor');"><i class="icon-edit"></i> {{$create}}</button> + <a href="{{$help.url}}" target="_blank" class="btn btn-xs btn-warning" title="{{$help.title}}"><i class="icon-info"></i> {{$help.text}}</a> + </div> + {{/if}} + <h2>{{$title}}</h2> + <div class="clear"></div> + </div> {{if $editor}} - <div class="pull-right"> - <button id="webpage-create-btn" class="btn btn-xs btn-success" onclick="openClose('layout-editor');"><i class="icon-edit"></i> {{$create}}</button> - <a href="{{$help.url}}" target="_blank" class="btn btn-xs btn-warning" title="{{$help.title}}"><i class="icon-info"></i> {{$help.text}}</a> + <div id="layout-editor" class="section-content-tools-wrapper"> + {{$editor}} </div> {{/if}} - <h2>{{$title}}</h2> - <div class="clear"></div> -</div> -{{if $editor}} -<div id="layout-editor" class="section-content-tools-wrapper"> - {{$editor}} -</div> -{{/if}} -{{if $pages}} -<div id="pagelist-content-wrapper" class="section-content-wrapper-np"> - <table id="layout-list-table"> - <tr> - <th width="1%">{{$name}}</th> - <th width="94%">{{$descr}}</th> - <th width="1%"></th> - <th width="1%"></th> - <th width="1%"></th> - <th width="1%" class="hidden-xs">{{$created}}</th> - <th width="1%" class="hidden-xs">{{$edited}}</th> - </tr> - {{foreach $pages as $key => $items}} - {{foreach $items as $item}} - <tr id="layout-list-item-{{$item.url}}"> - <td> - {{if $view}} - <a href="page/{{$channel}}/{{$item.title}}" title="{{$view}}">{{$item.title}}</a> - {{else}} - {{$item.title}} - {{/if}} - </td> - <td> - {{$item.descr}} - </td> - <td class="webpage-list-tool"> - {{if $edit}} - <a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="icon-pencil"></i></a> - {{/if}} - </td> - <td class="webpage-list-tool"> - {{if $item.bb_element}} - <a href="rpost?attachment={{$item.bb_element}}" title="{{$share}}"><i class="icon-share"></i></a> - {{/if}} - </td> - <td class="webpage-list-tool"> - {{if $edit}} - <a href="#" title="{{$delete}}" onclick="dropItem('item/drop/{{$item.url}}', '#layout-list-item-{{$item.url}}'); return false;"><i class="icon-trash drop-icons"></i></a> - {{/if}} - </td> - <td class="hidden-xs"> - {{$item.created}} - </td> - <td class="hidden-xs"> - {{$item.edited}} - </td> - </tr> - {{/foreach}} - {{/foreach}} - </table> + {{if $pages}} + <div id="pagelist-content-wrapper" class="section-content-wrapper-np"> + <table id="layout-list-table"> + <tr> + <th width="1%">{{$name}}</th> + <th width="94%">{{$descr}}</th> + <th width="1%"></th> + <th width="1%"></th> + <th width="1%"></th> + <th width="1%" class="hidden-xs">{{$created}}</th> + <th width="1%" class="hidden-xs">{{$edited}}</th> + </tr> + {{foreach $pages as $key => $items}} + {{foreach $items as $item}} + <tr id="layout-list-item-{{$item.url}}"> + <td> + {{if $view}} + <a href="page/{{$channel}}/{{$item.title}}" title="{{$view}}">{{$item.title}}</a> + {{else}} + {{$item.title}} + {{/if}} + </td> + <td> + {{$item.descr}} + </td> + <td class="webpage-list-tool"> + {{if $edit}} + <a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="icon-pencil"></i></a> + {{/if}} + </td> + <td class="webpage-list-tool"> + {{if $item.bb_element}} + <a href="rpost?attachment={{$item.bb_element}}" title="{{$share}}"><i class="icon-share"></i></a> + {{/if}} + </td> + <td class="webpage-list-tool"> + {{if $edit}} + <a href="#" title="{{$delete}}" onclick="dropItem('item/drop/{{$item.url}}', '#layout-list-item-{{$item.url}}'); return false;"><i class="icon-trash drop-icons"></i></a> + {{/if}} + </td> + <td class="hidden-xs"> + {{$item.created}} + </td> + <td class="hidden-xs"> + {{$item.edited}} + </td> + </tr> + {{/foreach}} + {{/foreach}} + </table> + </div> + <div class="clear"></div> + {{/if}} </div> -<div class="clear"></div> -{{/if}} diff --git a/view/tpl/menulist.tpl b/view/tpl/menulist.tpl index 888dc6e6d..743165cc3 100644 --- a/view/tpl/menulist.tpl +++ b/view/tpl/menulist.tpl @@ -1,38 +1,40 @@ -<div class="section-title-wrapper"> - <div class="pull-right"> - <button id="webpage-create-btn" class="btn btn-xs btn-success" onclick="openClose('menu-creator');"><i class="icon-edit"></i> {{$hintnew}}</button> +<div class="generic-content-wrapper"> + <div class="section-title-wrapper"> + <div class="pull-right"> + <button id="webpage-create-btn" class="btn btn-xs btn-success" onclick="openClose('menu-creator');"><i class="icon-edit"></i> {{$hintnew}}</button> + </div> + <h2>{{$title}}</h2> + <div class="clear"></div> </div> - <h2>{{$title}}</h2> - <div class="clear"></div> -</div> -{{$create}} + {{$create}} -{{if $menus }} -<div id="menulist-content-wrapper" class="section-content-wrapper-np"> - <table id="menu-list-table"> - <tr> - <th width="1%"></th> - <th width="1%">{{$nametitle}}</th> - <th width="93%">{{$desctitle}}</th> - <th width="1%"></th> - <th width="1%"></th> - <th width="1%"></th> - <th width="1%" class="hidden-xs">{{$created}}</th> - <th width="1%" class="hidden-xs">{{$edited}}</th> - </tr> - {{foreach $menus as $m }} - <tr id="menu-list-item-{{$m.menu_id}}"> - <td>{{if $m.bookmark}}<i class="icon-bookmark menu-list-tool" title="{{$bmark}}" ></i>{{/if}}</td> - <td><a href="mitem/{{$m.menu_id}}{{if $sys}}?f=&sys=1{{/if}}" title="{{$hintcontent}}">{{$m.menu_name}}</a></td> - <td>{{$m.menu_desc}}</td> - <td class="menu-list-tool"><a href="menu/{{$m.menu_id}}{{if $sys}}?f=&sys=1{{/if}}" title="{{$hintedit}}"><i class="icon-pencil"></i></a></td> - <td class="menu-list-tool"><a href="rpost?attachment={{$m.element}}" title="{{$share}}"><i class="icon-share"></i></a></td> - <td class="menu-list-tool"><a href="#" title="{{$hintdrop}}" onclick="dropItem('menu/{{$m.menu_id}}/drop{{if $sys}}?f=&sys=1{{/if}}', '#menu-list-item-{{$m.menu_id}}'); return false;"><i class="icon-trash drop-icons"></i></a></td> - <td class="hidden-xs">{{$m.menu_created}}</td> - <td class="hidden-xs">{{$m.menu_edited}}</td> - </tr> - {{/foreach}} - </table> + {{if $menus }} + <div id="menulist-content-wrapper" class="section-content-wrapper-np"> + <table id="menu-list-table"> + <tr> + <th width="1%"></th> + <th width="1%">{{$nametitle}}</th> + <th width="93%">{{$desctitle}}</th> + <th width="1%"></th> + <th width="1%"></th> + <th width="1%"></th> + <th width="1%" class="hidden-xs">{{$created}}</th> + <th width="1%" class="hidden-xs">{{$edited}}</th> + </tr> + {{foreach $menus as $m }} + <tr id="menu-list-item-{{$m.menu_id}}"> + <td>{{if $m.bookmark}}<i class="icon-bookmark menu-list-tool" title="{{$bmark}}" ></i>{{/if}}</td> + <td><a href="mitem/{{$m.menu_id}}{{if $sys}}?f=&sys=1{{/if}}" title="{{$hintcontent}}">{{$m.menu_name}}</a></td> + <td>{{$m.menu_desc}}</td> + <td class="menu-list-tool"><a href="menu/{{$m.menu_id}}{{if $sys}}?f=&sys=1{{/if}}" title="{{$hintedit}}"><i class="icon-pencil"></i></a></td> + <td class="menu-list-tool"><a href="rpost?attachment={{$m.element}}" title="{{$share}}"><i class="icon-share"></i></a></td> + <td class="menu-list-tool"><a href="#" title="{{$hintdrop}}" onclick="dropItem('menu/{{$m.menu_id}}/drop{{if $sys}}?f=&sys=1{{/if}}', '#menu-list-item-{{$m.menu_id}}'); return false;"><i class="icon-trash drop-icons"></i></a></td> + <td class="hidden-xs">{{$m.menu_created}}</td> + <td class="hidden-xs">{{$m.menu_edited}}</td> + </tr> + {{/foreach}} + </table> + </div> + {{/if}} </div> -{{/if}} diff --git a/view/tpl/photo_album.tpl b/view/tpl/photo_album.tpl index 5506b01f2..0ce9c36a8 100755 --- a/view/tpl/photo_album.tpl +++ b/view/tpl/photo_album.tpl @@ -1,27 +1,29 @@ -<div class="section-title-wrapper"> - <div class="pull-right"> - <a class="btn btn-default btn-xs" href="{{$order.1}}" title="{{$order.0}}"><i class="icon-sort"></i></a> - <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> - {{/if}} - {{if $can_post}} - <button class="btn btn-xs btn-success btn-xs" title="{{$usage}}" onclick="openClose('photo-upload-form'); closeMenu('photo-album-edit-wrapper');"><i class="icon-upload"></i> {{$upload.0}}</button> - {{/if}} +<div class="generic-content-wrapper"> + <div class="section-title-wrapper"> + <div class="pull-right"> + <a class="btn btn-default btn-xs" href="{{$order.1}}" title="{{$order.0}}"><i class="icon-sort"></i></a> + <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> + {{/if}} + {{if $can_post}} + <button class="btn btn-xs btn-success btn-xs" title="{{$usage}}" onclick="openClose('photo-upload-form'); closeMenu('photo-album-edit-wrapper');"><i class="icon-upload"></i> {{$upload.0}}</button> + {{/if}} + </div> </div> - </div> - <h2>{{$album}}</h2> + <h2>{{$album}}</h2> - <div class="clear"></div> -</div> -{{$upload_form}} -{{$album_edit.1}} -<div id="photo-album-contents" class="generic-content-wrapper"> - {{foreach $photos as $photo}} - {{include file="photo_top.tpl"}} - {{/foreach}} - <div id="page-end"></div> + <div class="clear"></div> + </div> + {{$upload_form}} + {{$album_edit.1}} + <div id="photo-album-contents"> + {{foreach $photos as $photo}} + {{include file="photo_top.tpl"}} + {{/foreach}} + <div id="page-end"></div> + </div> </div> <div class="photos-end"></div> <script>$(document).ready(function() { loadingPage = false; justifyPhotos(); });</script> diff --git a/view/tpl/photo_view.tpl b/view/tpl/photo_view.tpl index 1054d5e3a..63d5ad778 100755 --- a/view/tpl/photo_view.tpl +++ b/view/tpl/photo_view.tpl @@ -1,6 +1,5 @@ <div id="live-photos"></div> <div class="generic-content-wrapper"> - <div class="section-title-wrapper"> <div class="pull-right"> @@ -155,17 +154,17 @@ {{/if}} <div class="clear"></div> </div> -</div> -{{$comments}} + {{$comments}} -{{if $commentbox}} -<div class="wall-item-comment-wrapper{{if $comments}} wall-item-comment-wrapper-wc{{/if}}" > - {{$commentbox}} -</div> -{{/if}} + {{if $commentbox}} + <div class="wall-item-comment-wrapper{{if $comments}} wall-item-comment-wrapper-wc{{/if}}" > + {{$commentbox}} + </div> + {{/if}} -<div class="clear"></div> + <div class="clear"></div> +</div> {{$paginate}} diff --git a/view/tpl/photos_recent.tpl b/view/tpl/photos_recent.tpl index 7727abcea..15faa4a34 100755 --- a/view/tpl/photos_recent.tpl +++ b/view/tpl/photos_recent.tpl @@ -1,16 +1,18 @@ -<div class="section-title-wrapper"> - {{if $can_post}} - <button class="btn btn-xs btn-success pull-right" title="{{$usage}}" onclick="openClose('photo-upload-form');"><i class="icon-upload"></i> {{$upload.0}}</button> - {{/if}} - <h2>{{$title}}</h2> - <div class="clear"></div> -</div> -{{$upload_form}} -<div id="photo-album-contents" class="generic-content-wrapper"> - {{foreach $photos as $photo}} - {{include file="photo_top.tpl"}} - {{/foreach}} - <div id="page-end"></div> +<div class="generic-content-wrapper"> + <div class="section-title-wrapper"> + {{if $can_post}} + <button class="btn btn-xs btn-success pull-right" title="{{$usage}}" onclick="openClose('photo-upload-form');"><i class="icon-upload"></i> {{$upload.0}}</button> + {{/if}} + <h2>{{$title}}</h2> + <div class="clear"></div> + </div> + {{$upload_form}} + <div id="photo-album-contents"> + {{foreach $photos as $photo}} + {{include file="photo_top.tpl"}} + {{/foreach}} + <div id="page-end"></div> + </div> </div> <div class="photos-end"></div> <script>$(document).ready(function() { loadingPage = false; justifyPhotos(); });</script> diff --git a/view/tpl/photos_upload.tpl b/view/tpl/photos_upload.tpl index 009ee0f9f..bf02c614d 100755 --- a/view/tpl/photos_upload.tpl +++ b/view/tpl/photos_upload.tpl @@ -1,4 +1,4 @@ -<div id="photo-upload-form" class="generic-content-wrapper"> +<div id="photo-upload-form"> <div class="section-content-tools-wrapper"> <form action="photos/{{$nickname}}" enctype="multipart/form-data" method="post" name="photos-upload-form" id="photos-upload-form"> <input type="hidden" id="photos-upload-source" name="source" value="photos" /> diff --git a/view/tpl/search_item.tpl b/view/tpl/search_item.tpl index d5a608c82..dee33f1b3 100755 --- a/view/tpl/search_item.tpl +++ b/view/tpl/search_item.tpl @@ -1,4 +1,4 @@ -<div id="thread-wrapper-{{$item.id}}" class="thread-wrapper {{$item.toplevel}}"> +<div id="thread-wrapper-{{$item.id}}" class="thread-wrapper{{if $item.toplevel}} {{$item.toplevel}} generic-content-wrapper{{/if}}"> <a name="{{$item.id}}" ></a> <div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}}{{if $item.owner_url}} wallwall{{/if}}" id="wall-item-outside-wrapper-{{$item.id}}" > <div class="wall-item-content-wrapper {{$item.indent}}" id="wall-item-content-wrapper-{{$item.id}}" style="clear:both;"> diff --git a/view/tpl/sharedwithme.tpl b/view/tpl/sharedwithme.tpl index cb365ed05..4ffacc241 100644 --- a/view/tpl/sharedwithme.tpl +++ b/view/tpl/sharedwithme.tpl @@ -1,24 +1,26 @@ -<div class="section-title-wrapper"> - <a href="/sharedwithme/dropall" onclick="return confirmDelete();" class="btn btn-xs btn-default pull-right"><i class="icon-trash"></i> {{$dropall}}</a> - <h2>{{$header}}</h2> -</div> -<div class="generic-content-wrapper section-content-wrapper-np"> - <table id="cloud-index"> - <tr> - <th width="1%"></th> - <th width="92%">{{$name}}</th> - <th width="1%"></th> - <th width="1%" class="hidden-xs">{{$size}}</th> - <th width="1%" class="hidden-xs">{{$lastmod}}</th> - </tr> - {{foreach $items as $item}} - <tr id="cloud-index-{{$item.id}}"> - <td><i class="{{$item.objfiletypeclass}}" title="{{$item.objfiletype}}"></i></td> - <td><a href="{{$item.objurl}}">{{$item.objfilename}}</a>{{if $item.unseen}} <span class="label label-success">{{$label_new}}</span>{{/if}}</td> - <td class="cloud-index-tool"><a href="#" title="{{$drop}}" onclick="dropItem('/sharedwithme/{{$item.id}}/drop', '#cloud-index-{{$item.id}}'); return false;"><i class="icon-trash drop-icons"></i></a></td> - <td class="hidden-xs">{{$item.objfilesize}}</td> - <td class="hidden-xs">{{$item.objedited}}</td> - </tr> - {{/foreach}} - </table> +<div class="generic-content-wrapper"> + <div class="section-title-wrapper"> + <a href="/sharedwithme/dropall" onclick="return confirmDelete();" class="btn btn-xs btn-default pull-right"><i class="icon-trash"></i> {{$dropall}}</a> + <h2>{{$header}}</h2> + </div> + <div class="section-content-wrapper-np"> + <table id="cloud-index"> + <tr> + <th width="1%"></th> + <th width="92%">{{$name}}</th> + <th width="1%"></th> + <th width="1%" class="hidden-xs">{{$size}}</th> + <th width="1%" class="hidden-xs">{{$lastmod}}</th> + </tr> + {{foreach $items as $item}} + <tr id="cloud-index-{{$item.id}}"> + <td><i class="{{$item.objfiletypeclass}}" title="{{$item.objfiletype}}"></i></td> + <td><a href="{{$item.objurl}}">{{$item.objfilename}}</a>{{if $item.unseen}} <span class="label label-success">{{$label_new}}</span>{{/if}}</td> + <td class="cloud-index-tool"><a href="#" title="{{$drop}}" onclick="dropItem('/sharedwithme/{{$item.id}}/drop', '#cloud-index-{{$item.id}}'); return false;"><i class="icon-trash drop-icons"></i></a></td> + <td class="hidden-xs">{{$item.objfilesize}}</td> + <td class="hidden-xs">{{$item.objedited}}</td> + </tr> + {{/foreach}} + </table> + </div> </div> diff --git a/view/tpl/webpagelist.tpl b/view/tpl/webpagelist.tpl index 77fb09492..864705121 100644 --- a/view/tpl/webpagelist.tpl +++ b/view/tpl/webpagelist.tpl @@ -1,74 +1,76 @@ -<div class="section-title-wrapper"> +<div class="generic-content-wrapper"> + <div class="section-title-wrapper"> + {{if $editor}} + <div class="pull-right"> + <button id="webpage-create-btn" class="btn btn-xs btn-success" onclick="openClose('webpage-editor');"><i class="icon-edit"></i> {{$create}}</button> + </div> + {{/if}} + <h2>{{$listtitle}}</h2> + <div class="clear"></div> + </div> {{if $editor}} - <div class="pull-right"> - <button id="webpage-create-btn" class="btn btn-xs btn-success" onclick="openClose('webpage-editor');"><i class="icon-edit"></i> {{$create}}</button> + <div id="webpage-editor" class="section-content-tools-wrapper"> + {{$editor}} + </div> + {{/if}} + {{if $pages}} + <div id="pagelist-content-wrapper" class="section-content-wrapper-np"> + <table id="webpage-list-table"> + <tr> + <th width="1%">{{$pagelink_txt}}</th> + <th width="95%">{{$title_txt}}</th> + <th width="1%"></th> + <th width="1%"></th> + <th width="1%"></th> + <th width="1%"></th> + <th width="1%" class="hidden-xs">{{$created_txt}}</th> + <th width="1%" class="hidden-xs">{{$edited_txt}}</th> + </tr> + {{foreach $pages as $key => $items}} + {{foreach $items as $item}} + <tr id="webpage-list-item-{{$item.url}}"> + <td> + {{if $view}} + <a href="page/{{$channel}}/{{$item.pagetitle}}" title="{{$view}}">{{$item.pagetitle}}</a> + {{else}} + {{$item.pagetitle}} + {{/if}} + </td> + <td> + {{$item.title}} + </td> + <td class="webpage-list-tool dropdown"> + {{if $item.lockstate=='lock'}} + <i class="icon-lock dropdown-toggle lockview" data-toggle="dropdown" onclick="lockview('item',{{$item.url}});" ></i> + <ul id="panel-{{$item.url}}" class="lockview-panel dropdown-menu"></ul> + {{/if}} + </td> + <td class="webpage-list-tool"> + {{if $edit}} + <a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="icon-pencil"></i></a> + {{/if}} + </td> + <td class="webpage-list-tool"> + {{if $item.bb_element}} + <a href="rpost?attachment={{$item.bb_element}}" title="{{$share}}"><i class="icon-share"></i></a> + {{/if}} + </td> + <td class="webpage-list-tool"> + {{if $edit}} + <a href="#" title="{{$delete}}" onclick="dropItem('item/drop/{{$item.url}}', '#webpage-list-item-{{$item.url}}'); return false;"><i class="icon-trash drop-icons"></i></a> + {{/if}} + </td> + <td class="hidden-xs"> + {{$item.created}} + </td> + <td class="hidden-xs"> + {{$item.edited}} + </td> + </tr> + {{/foreach}} + {{/foreach}} + </table> </div> {{/if}} - <h2>{{$listtitle}}</h2> <div class="clear"></div> </div> -{{if $editor}} -<div id="webpage-editor" class="section-content-tools-wrapper"> - {{$editor}} -</div> -{{/if}} -{{if $pages}} -<div id="pagelist-content-wrapper" class="section-content-wrapper-np"> - <table id="webpage-list-table"> - <tr> - <th width="1%">{{$pagelink_txt}}</th> - <th width="95%">{{$title_txt}}</th> - <th width="1%"></th> - <th width="1%"></th> - <th width="1%"></th> - <th width="1%"></th> - <th width="1%" class="hidden-xs">{{$created_txt}}</th> - <th width="1%" class="hidden-xs">{{$edited_txt}}</th> - </tr> - {{foreach $pages as $key => $items}} - {{foreach $items as $item}} - <tr id="webpage-list-item-{{$item.url}}"> - <td> - {{if $view}} - <a href="page/{{$channel}}/{{$item.pagetitle}}" title="{{$view}}">{{$item.pagetitle}}</a> - {{else}} - {{$item.pagetitle}} - {{/if}} - </td> - <td> - {{$item.title}} - </td> - <td class="webpage-list-tool dropdown"> - {{if $item.lockstate=='lock'}} - <i class="icon-lock dropdown-toggle lockview" data-toggle="dropdown" onclick="lockview('item',{{$item.url}});" ></i> - <ul id="panel-{{$item.url}}" class="lockview-panel dropdown-menu"></ul> - {{/if}} - </td> - <td class="webpage-list-tool"> - {{if $edit}} - <a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="icon-pencil"></i></a> - {{/if}} - </td> - <td class="webpage-list-tool"> - {{if $item.bb_element}} - <a href="rpost?attachment={{$item.bb_element}}" title="{{$share}}"><i class="icon-share"></i></a> - {{/if}} - </td> - <td class="webpage-list-tool"> - {{if $edit}} - <a href="#" title="{{$delete}}" onclick="dropItem('item/drop/{{$item.url}}', '#webpage-list-item-{{$item.url}}'); return false;"><i class="icon-trash drop-icons"></i></a> - {{/if}} - </td> - <td class="hidden-xs"> - {{$item.created}} - </td> - <td class="hidden-xs"> - {{$item.edited}} - </td> - </tr> - {{/foreach}} - {{/foreach}} - </table> -</div> -<div class="clear"></div> -{{/if}} |