From b4a95460e65dbadaf074a414a9e3d9367e109f19 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Sun, 6 Jan 2013 19:34:54 -0700 Subject: fix show-stopping bugs --- boot.php | 2 +- include/ItemObject.php | 2 +- include/friendica_smarty.php | 12 ++--- include/plugin.php | 1 + mod/events.php | 4 +- mod/fbrowser.php | 4 +- mod/message.php | 8 +-- mod/photos.php | 14 ++--- mod/setup.php | 18 +++++++ view/theme/redbasic/tpl/smarty3/lang_selector.tpl | 10 ---- .../redbasic/tpl/smarty3/moderated_comment.tpl | 61 ---------------------- view/theme/redbasic/tpl/smarty3/profile_vcard.tpl | 51 ------------------ view/theme/redbasic/tpl/smarty3/prv_message.tpl | 39 -------------- view/tpl/conv_item.tpl | 4 +- view/tpl/smarty3/conv_item.tpl | 4 +- view/tpl/smarty3/diaspora_comment.tpl | 11 ---- view/tpl/smarty3/diaspora_comment_relay.tpl | 12 ----- view/tpl/smarty3/diaspora_conversation.tpl | 29 ---------- view/tpl/smarty3/diaspora_like.tpl | 12 ----- view/tpl/smarty3/diaspora_like_relay.tpl | 13 ----- view/tpl/smarty3/diaspora_message.tpl | 13 ----- view/tpl/smarty3/diaspora_photo.tpl | 13 ----- view/tpl/smarty3/diaspora_post.tpl | 11 ---- view/tpl/smarty3/diaspora_profile.tpl | 16 ------ view/tpl/smarty3/diaspora_relay_retraction.tpl | 10 ---- view/tpl/smarty3/diaspora_relayable_retraction.tpl | 11 ---- view/tpl/smarty3/diaspora_retract.tpl | 9 ---- view/tpl/smarty3/diaspora_share.tpl | 8 --- view/tpl/smarty3/diaspora_signed_retract.tpl | 10 ---- view/tpl/smarty3/diaspora_vcard.tpl | 57 -------------------- view/tpl/smarty3/xrd_diaspora.tpl | 3 -- 31 files changed, 46 insertions(+), 426 deletions(-) delete mode 100644 view/theme/redbasic/tpl/smarty3/lang_selector.tpl delete mode 100644 view/theme/redbasic/tpl/smarty3/moderated_comment.tpl delete mode 100644 view/theme/redbasic/tpl/smarty3/profile_vcard.tpl delete mode 100644 view/theme/redbasic/tpl/smarty3/prv_message.tpl delete mode 100644 view/tpl/smarty3/diaspora_comment.tpl delete mode 100644 view/tpl/smarty3/diaspora_comment_relay.tpl delete mode 100644 view/tpl/smarty3/diaspora_conversation.tpl delete mode 100644 view/tpl/smarty3/diaspora_like.tpl delete mode 100644 view/tpl/smarty3/diaspora_like_relay.tpl delete mode 100644 view/tpl/smarty3/diaspora_message.tpl delete mode 100644 view/tpl/smarty3/diaspora_photo.tpl delete mode 100644 view/tpl/smarty3/diaspora_post.tpl delete mode 100644 view/tpl/smarty3/diaspora_profile.tpl delete mode 100644 view/tpl/smarty3/diaspora_relay_retraction.tpl delete mode 100644 view/tpl/smarty3/diaspora_relayable_retraction.tpl delete mode 100644 view/tpl/smarty3/diaspora_retract.tpl delete mode 100644 view/tpl/smarty3/diaspora_share.tpl delete mode 100644 view/tpl/smarty3/diaspora_signed_retract.tpl delete mode 100644 view/tpl/smarty3/diaspora_vcard.tpl delete mode 100644 view/tpl/smarty3/xrd_diaspora.tpl diff --git a/boot.php b/boot.php index e3c493571..074fcde73 100644 --- a/boot.php +++ b/boot.php @@ -787,7 +787,7 @@ if(! class_exists('App')) { */ $tpl = get_markup_template('head.tpl'); $this->page['htmlhead'] = replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => $this->get_baseurl(), '$local_user' => local_user(), '$generator' => FRIENDICA_PLATFORM . ' ' . FRIENDICA_VERSION, '$update_interval' => $interval, diff --git a/include/ItemObject.php b/include/ItemObject.php index 8ae13e0d8..cb79c180c 100644 --- a/include/ItemObject.php +++ b/include/ItemObject.php @@ -204,7 +204,7 @@ class Item extends BaseObject { $body = prepare_body($item,true); - if($a->theme['template_engine'] === 'internal') { + if($a->get_template_engine() === 'internal') { $body_e = template_escape($body); $name_e = template_escape($profile_name); $title_e = template_escape($item['title']); diff --git a/include/friendica_smarty.php b/include/friendica_smarty.php index b3f0d18a0..2f4694c58 100644 --- a/include/friendica_smarty.php +++ b/include/friendica_smarty.php @@ -14,15 +14,15 @@ class FriendicaSmarty extends Smarty { // setTemplateDir can be set to an array, which Smarty will parse in order. // The order is thus very important here - $template_dirs = array('theme' => "view/theme/$theme/smarty3/"); + $template_dirs = array('theme' => "view/theme/$theme/tpl/smarty3/"); if( x($a->theme_info,"extends") ) - $template_dirs = $template_dirs + array('extends' => "view/theme/".$a->theme_info["extends"]."/smarty3/"); - $template_dirs = $template_dirs + array('base' => 'view/smarty3/'); + $template_dirs = $template_dirs + array('extends' => "view/theme/".$a->theme_info["extends"]."/tpl/smarty3/"); + $template_dirs = $template_dirs + array('base' => 'view/tpl/smarty3/'); $this->setTemplateDir($template_dirs); - $this->setCompileDir('view/smarty3/compiled/'); - $this->setConfigDir('view/smarty3/config/'); - $this->setCacheDir('view/smarty3/cache/'); + $this->setCompileDir('view/tpl/smarty3/compiled/'); + $this->setConfigDir('view/tpl/smarty3/config/'); + $this->setCacheDir('view/tpl/smarty3/cache/'); $this->left_delimiter = $a->get_template_ldelim('smarty3'); $this->right_delimiter = $a->get_template_rdelim('smarty3'); diff --git a/include/plugin.php b/include/plugin.php index be238b78c..0395c1a8e 100644 --- a/include/plugin.php +++ b/include/plugin.php @@ -1,5 +1,6 @@ theme['template_engine'] === 'internal') { + if($a->get_template_engine() === 'internal') { $filename_e = template_escape($rr['filename']); } else { @@ -93,7 +93,7 @@ function fbrowser_content($a){ list($m1,$m2) = explode("/",$rr['filetype']); $filetype = ( (file_exists("images/icons/$m1.png"))?$m1:"zip"); - if($a->theme['template_engine'] === 'internal') { + if($a->get_template_engine() === 'internal') { $filename_e = template_escape($rr['filename']); } else { diff --git a/mod/message.php b/mod/message.php index 1a1ce4813..9e5e09e99 100644 --- a/mod/message.php +++ b/mod/message.php @@ -362,7 +362,7 @@ function message_content(&$a) { $rr['to'] = find_xchan_in_array($rr['to_xchan'],$c); $rr['seen'] = (($rr['mail_flags'] & MAIL_SEEN) ? 1 : ""); - if($a->theme['template_engine'] === 'internal') { + if($a->get_template_engine() === 'internal') { $from_name_e = template_escape($rr['from']['xchan_name']); $subject_e = template_escape((($rr['seen']) ? $rr['title'] : '' . $rr['title'] . '')); $body_e = template_escape($rr['body']); @@ -449,7 +449,7 @@ function message_content(&$a) { $a->page['htmlhead'] .= replace_macros($tpl, array( '$nickname' => $channel['channel_addr'], - '$baseurl' => $a->get_baseurl(true) + '$baseurl' => $a->get_baseurl(true), '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'), '$linkurl' => t('Please enter a link URL:') )); @@ -470,7 +470,7 @@ logger('message: ' . print_r($message,true)); // if($extracted['images']) // $message['body'] = item_redir_and_replace_images($extracted['body'], $extracted['images'], $message['contact-id']); - if($a->theme['template_engine'] === 'internal') { + if($a->get_template_engine() === 'internal') { $from_name_e = template_escape($message['from']['xchan_name']); $subject_e = template_escape($message['title']); $body_e = template_escape(smilies(bbcode($message['body']))); @@ -508,7 +508,7 @@ logger('message: ' . print_r($message,true)); $select = $message[$recp]['xchan_name'] . ''; $parent = ''; - if($a->theme['template_engine'] === 'internal') { + if($a->get_template_engine() === 'internal') { $subjtxt_e = template_escape($message['title']); } else { diff --git a/mod/photos.php b/mod/photos.php index 2cd2646d5..90f436699 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -1063,7 +1063,7 @@ function photos_content(&$a) { } - if($a->theme['template_engine'] === 'internal') { + if($a->get_template_engine() === 'internal') { $albumselect_e = template_escape($albumselect); $aclselect_e = (($visitor) ? '' : template_escape(populate_acl($a->user, $celeb))); } @@ -1125,7 +1125,7 @@ function photos_content(&$a) { if($cmd === 'edit') { if(($album !== t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== t('Contact Photos'))) { if($can_post) { - if($a->theme['template_engine'] === 'internal') { + if($a->get_template_engine() === 'internal') { $album_e = template_escape($album); } else { @@ -1176,7 +1176,7 @@ function photos_content(&$a) { $ext = $phototypes[$rr['type']]; - if($a->theme['template_engine'] === 'internal') { + if($a->get_template_engine() === 'internal') { $imgalt_e = template_escape($rr['filename']); $desc_e = template_escape($rr['desc']); } @@ -1390,7 +1390,7 @@ function photos_content(&$a) { $edit = Null; if(($cmd === 'edit') && ($can_post)) { - if($a->theme['template_engine'] === 'internal') { + if($a->get_template_engine() === 'internal') { $album_e = template_escape($ph[0]['album']); $caption_e = template_escape($ph[0]['desc']); $aclselect_e = template_escape(populate_acl($ph[0])); @@ -1552,7 +1552,7 @@ function photos_content(&$a) { $drop = replace_macros(get_markup_template('photo_drop.tpl'), array('$id' => $item['id'], '$delete' => t('Delete'))); - if($a->theme['template_engine'] === 'internal') { + if($a->get_template_engine() === 'internal') { $name_e = template_escape($profile_name); $title_e = template_escape($item['title']); $body_e = template_escape(bbcode($item['body'])); @@ -1582,7 +1582,7 @@ function photos_content(&$a) { $paginate = paginate($a); } - if($a->theme['template_engine'] === 'internal') { + if($a->get_template_engine() === 'internal') { $album_e = array($album_link,template_escape($ph[0]['album'])); $tags_e = template_escape($tags); $like_e = template_escape($like); @@ -1653,7 +1653,7 @@ function photos_content(&$a) { $twist = 'rotright'; $ext = $phototypes[$rr['type']]; - if($a->theme['template_engine'] === 'internal') { + if($a->get_template_engine() === 'internal') { $alt_e = template_escape($rr['filename']); $name_e = template_escape($rr['album']); } diff --git a/mod/setup.php b/mod/setup.php index b3649ca40..4fa5152ea 100755 --- a/mod/setup.php +++ b/mod/setup.php @@ -183,6 +183,8 @@ function setup_content(&$a) { check_htconfig($checks); + check_smarty3($checks); + check_keys($checks); if(x($_POST,'phpath')) @@ -439,6 +441,22 @@ function check_htconfig(&$checks) { } +function check_smarty3(&$checks) { + $status = true; + $help = ""; + if( !is_writable('view/tpl/smarty3') ) { + + $status=false; + $help = t('Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering.') .EOL; + $help .= t('In order to store these compiled templates, the web server needs to have write access to the directory view/tpl/smarty3/ under the Friendica top level folder.').EOL; + $help .= t('Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder.').EOL; + $help .= t('Note: as a security measure, you should give the web server write access to view/tpl/smarty3/ only--not the template files (.tpl) that it contains.').EOL; + } + + check_add($checks, t('view/tpl/smarty3 is writable'), $status, true, $help); + +} + function check_htaccess(&$checks) { $a = get_app(); $status = true; diff --git a/view/theme/redbasic/tpl/smarty3/lang_selector.tpl b/view/theme/redbasic/tpl/smarty3/lang_selector.tpl deleted file mode 100644 index 945cbf51e..000000000 --- a/view/theme/redbasic/tpl/smarty3/lang_selector.tpl +++ /dev/null @@ -1,10 +0,0 @@ -
- diff --git a/view/theme/redbasic/tpl/smarty3/moderated_comment.tpl b/view/theme/redbasic/tpl/smarty3/moderated_comment.tpl deleted file mode 100644 index 8fbdf4bc4..000000000 --- a/view/theme/redbasic/tpl/smarty3/moderated_comment.tpl +++ /dev/null @@ -1,61 +0,0 @@ -
-
- - - - - - - -
- {{$mytitle}} -
-
- -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
-
- - -
- - -
-
- -
diff --git a/view/theme/redbasic/tpl/smarty3/profile_vcard.tpl b/view/theme/redbasic/tpl/smarty3/profile_vcard.tpl deleted file mode 100644 index 048c461f4..000000000 --- a/view/theme/redbasic/tpl/smarty3/profile_vcard.tpl +++ /dev/null @@ -1,51 +0,0 @@ -
- -
{{$profile.name}}
- - - - {{if $pdesc}}
{{$profile.pdesc}}
{{/if}} -
{{$profile.name}}
- - - - {{if $location}} -
{{$location}}
-
- {{if $profile.address}}
{{$profile.address}}
{{/if}} - - {{$profile.locality}}{{if $profile.locality}}, {{/if}} - {{$profile.region}} - {{$profile.postal-code}} - - {{if $profile.country-name}}{{$profile.country-name}}{{/if}} -
-
- {{/if}} - - {{if $gender}}
{{$gender}}
{{$profile.gender}}
{{/if}} - - {{if $profile.pubkey}}{{/if}} - - {{if $marital}}
{{$marital}}
{{$profile.marital}}
{{/if}} - - {{if $homepage}}
{{$homepage}}
{{$profile.homepage}}
{{/if}} - - {{include file="diaspora_vcard.tpl"}} - -
- -
- -{{$contact_block}} - - diff --git a/view/theme/redbasic/tpl/smarty3/prv_message.tpl b/view/theme/redbasic/tpl/smarty3/prv_message.tpl deleted file mode 100644 index 9023540c4..000000000 --- a/view/theme/redbasic/tpl/smarty3/prv_message.tpl +++ /dev/null @@ -1,39 +0,0 @@ - -

{{$header}}

- -
-
- -{{$parent}} - -
{{$to}}
- -{{if $showinputs}} - - -{{else}} -{{$select}} -{{/if}} - -
{{$subject}}
- - -
{{$yourmessage}}
- - - -
- -
-
-
- -
- -
-
-
-
-
diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl index 66fb499a6..0c0553639 100644 --- a/view/tpl/conv_item.tpl +++ b/view/tpl/conv_item.tpl @@ -101,8 +101,8 @@
{{ if $item.toplevel }} -{{ for $item.children as $item }} - {{ inc $item.template }}{{ endinc }} +{{ for $item.children as $child }} + {{ inc $child.template with $item=$child }}{{ endinc }} {{ endfor }} {{ endif }} diff --git a/view/tpl/smarty3/conv_item.tpl b/view/tpl/smarty3/conv_item.tpl index a3e1ba7db..f69166f63 100644 --- a/view/tpl/smarty3/conv_item.tpl +++ b/view/tpl/smarty3/conv_item.tpl @@ -101,8 +101,8 @@
{{if $item.toplevel}} -{{foreach $item.children as $item}} - {{include file="{{$item.template}}"}} +{{foreach $item.children as $child}} + {{include file="{{$child.template}}" item=$child}} {{/foreach}} {{/if}} diff --git a/view/tpl/smarty3/diaspora_comment.tpl b/view/tpl/smarty3/diaspora_comment.tpl deleted file mode 100644 index 27ec3dffc..000000000 --- a/view/tpl/smarty3/diaspora_comment.tpl +++ /dev/null @@ -1,11 +0,0 @@ - - - - {{$guid}} - {{$parent_guid}} - {{$authorsig}} - {{$body}} - {{$handle}} - - - \ No newline at end of file diff --git a/view/tpl/smarty3/diaspora_comment_relay.tpl b/view/tpl/smarty3/diaspora_comment_relay.tpl deleted file mode 100644 index 37a9e88b3..000000000 --- a/view/tpl/smarty3/diaspora_comment_relay.tpl +++ /dev/null @@ -1,12 +0,0 @@ - - - - {{$guid}} - {{$parent_guid}} - {{$parentsig}} - {{$authorsig}} - {{$body}} - {{$handle}} - - - \ No newline at end of file diff --git a/view/tpl/smarty3/diaspora_conversation.tpl b/view/tpl/smarty3/diaspora_conversation.tpl deleted file mode 100644 index dc4482e4b..000000000 --- a/view/tpl/smarty3/diaspora_conversation.tpl +++ /dev/null @@ -1,29 +0,0 @@ - - - - {{$conv.guid}} - {{$conv.subject}} - {{$conv.created_at}} - - {{foreach $conv.messages as $msg}} - - - {{$msg.guid}} - {{$msg.parent_guid}} - {{if $msg.parent_author_signature}} - {{$msg.parent_author_signature}} - {{/if}} - {{$msg.author_signature}} - {{$msg.text}} - {{$msg.created_at}} - {{$msg.diaspora_handle}} - {{$msg.conversation_guid}} - - - {{/foreach}} - - {{$conv.diaspora_handle}} - {{$conv.participant_handles}} - - - diff --git a/view/tpl/smarty3/diaspora_like.tpl b/view/tpl/smarty3/diaspora_like.tpl deleted file mode 100644 index b03aef37a..000000000 --- a/view/tpl/smarty3/diaspora_like.tpl +++ /dev/null @@ -1,12 +0,0 @@ - - - - {{$target_type}} - {{$guid}} - {{$parent_guid}} - {{$authorsig}} - {{$positive}} - {{$handle}} - - - diff --git a/view/tpl/smarty3/diaspora_like_relay.tpl b/view/tpl/smarty3/diaspora_like_relay.tpl deleted file mode 100644 index 30df4cac6..000000000 --- a/view/tpl/smarty3/diaspora_like_relay.tpl +++ /dev/null @@ -1,13 +0,0 @@ - - - - {{$guid}} - {{$target_type}} - {{$parent_guid}} - {{$parentsig}} - {{$authorsig}} - {{$positive}} - {{$handle}} - - - diff --git a/view/tpl/smarty3/diaspora_message.tpl b/view/tpl/smarty3/diaspora_message.tpl deleted file mode 100644 index 3413d79b0..000000000 --- a/view/tpl/smarty3/diaspora_message.tpl +++ /dev/null @@ -1,13 +0,0 @@ - - - - {{$msg.guid}} - {{$msg.parent_guid}} - {{$msg.author_signature}} - {{$msg.text}} - {{$msg.created_at}} - {{$msg.diaspora_handle}} - {{$msg.conversation_guid}} - - - diff --git a/view/tpl/smarty3/diaspora_photo.tpl b/view/tpl/smarty3/diaspora_photo.tpl deleted file mode 100644 index cd7ef5802..000000000 --- a/view/tpl/smarty3/diaspora_photo.tpl +++ /dev/null @@ -1,13 +0,0 @@ - - - - {{$path}} - {{$filename}} - {{$msg_guid}} - {{$guid}} - {{$handle}} - {{$public}} - {{$created_at}} - - - \ No newline at end of file diff --git a/view/tpl/smarty3/diaspora_post.tpl b/view/tpl/smarty3/diaspora_post.tpl deleted file mode 100644 index abbcc4c61..000000000 --- a/view/tpl/smarty3/diaspora_post.tpl +++ /dev/null @@ -1,11 +0,0 @@ - - - - {{$body}} - {{$guid}} - {{$handle}} - {{$public}} - {{$created}} - - - \ No newline at end of file diff --git a/view/tpl/smarty3/diaspora_profile.tpl b/view/tpl/smarty3/diaspora_profile.tpl deleted file mode 100644 index 04f2e2948..000000000 --- a/view/tpl/smarty3/diaspora_profile.tpl +++ /dev/null @@ -1,16 +0,0 @@ - - - {{$handle}} - {{$first}} - {{$last}} - {{$large}} - {{$small}} - {{$medium}} - {{$dob}} - {{$gender}} - {{$about}} - {{$location}} - {{$searchable}} - {{$tags}} - - diff --git a/view/tpl/smarty3/diaspora_relay_retraction.tpl b/view/tpl/smarty3/diaspora_relay_retraction.tpl deleted file mode 100644 index 5e7aed41f..000000000 --- a/view/tpl/smarty3/diaspora_relay_retraction.tpl +++ /dev/null @@ -1,10 +0,0 @@ - - - - {{$type}} - {{$guid}} - {{$signature}} - {{$handle}} - - - diff --git a/view/tpl/smarty3/diaspora_relayable_retraction.tpl b/view/tpl/smarty3/diaspora_relayable_retraction.tpl deleted file mode 100644 index 927e394f3..000000000 --- a/view/tpl/smarty3/diaspora_relayable_retraction.tpl +++ /dev/null @@ -1,11 +0,0 @@ - - - - {{$target_type}} - {{$guid}} - {{$parentsig}} - {{$authorsig}} - {{$handle}} - - - diff --git a/view/tpl/smarty3/diaspora_retract.tpl b/view/tpl/smarty3/diaspora_retract.tpl deleted file mode 100644 index 26e2cb94e..000000000 --- a/view/tpl/smarty3/diaspora_retract.tpl +++ /dev/null @@ -1,9 +0,0 @@ - - - - {{$guid}} - {{$type}} - {{$handle}} - - - \ No newline at end of file diff --git a/view/tpl/smarty3/diaspora_share.tpl b/view/tpl/smarty3/diaspora_share.tpl deleted file mode 100644 index 59eb06124..000000000 --- a/view/tpl/smarty3/diaspora_share.tpl +++ /dev/null @@ -1,8 +0,0 @@ - - - - {{$sender}} - {{$recipient}} - - - \ No newline at end of file diff --git a/view/tpl/smarty3/diaspora_signed_retract.tpl b/view/tpl/smarty3/diaspora_signed_retract.tpl deleted file mode 100644 index f0f346da8..000000000 --- a/view/tpl/smarty3/diaspora_signed_retract.tpl +++ /dev/null @@ -1,10 +0,0 @@ - - - - {{$guid}} - {{$type}} - {{$handle}} - {{$signature}} - - - diff --git a/view/tpl/smarty3/diaspora_vcard.tpl b/view/tpl/smarty3/diaspora_vcard.tpl deleted file mode 100644 index 0ab6879f9..000000000 --- a/view/tpl/smarty3/diaspora_vcard.tpl +++ /dev/null @@ -1,57 +0,0 @@ -
-
-
Nickname
-
- {{$diaspora.nickname}} -
-
-
-
Full name
-
- {{$diaspora.fullname}} -
-
- -
-
First name
-
- {{$diaspora.firstname}} -
-
-
-
Family name
-
- {{$diaspora.lastname}} -
-
-
-
URL
-
- {{$diaspora.podloc}}/ -
-
-
-
Photo
-
- -
-
-
-
Photo
-
- -
-
-
-
Photo
-
- -
-
-
-
Searchable
-
- {{$diaspora.searchable}} -
-
-
diff --git a/view/tpl/smarty3/xrd_diaspora.tpl b/view/tpl/smarty3/xrd_diaspora.tpl deleted file mode 100644 index aa0d8c740..000000000 --- a/view/tpl/smarty3/xrd_diaspora.tpl +++ /dev/null @@ -1,3 +0,0 @@ - - - -- cgit v1.2.3