Browse Source

Continue Briefs integration and cleanup

pull/392/head
Timothée Jaussoin 9 years ago
parent
commit
fcf7136b71
  1. 10
      app/models/postn/Postn.php
  2. 21
      app/models/postn/PostnDAO.php
  3. 15
      app/widgets/Post/Post.php
  4. 168
      app/widgets/Post/_post.tpl
  5. 18
      app/widgets/Post/_post_card.tpl
  6. 2
      app/widgets/Post/_post_comments.tpl
  7. 4
      app/widgets/Post/_post_comments_error.tpl
  8. 47
      app/widgets/Post/_post_comments_external.tpl
  9. 62
      app/widgets/Post/_post_prevnext.tpl
  10. 1
      locales/locales.ini

10
app/models/postn/Postn.php

@ -552,6 +552,16 @@ class Postn extends Model
return $pd->countLikes($this->commentorigin, $this->commentnodeid);
}
/*public function countReplies()
{
$pd = new \Modl\PostnDAO;
return $pd->countReplies([
'origin' => $this->origin,
'node' => $this->node,
'nodeid' => $this->nodeid
]);
}*/
public function getTags()
{
$td = new \Modl\TagDAO;

21
app/models/postn/PostnDAO.php

@ -623,6 +623,27 @@ class PostnDAO extends SQL
return $this->run('ContactPostn');
}
function countReplies($reply)
{
$this->_sql = '
select count(*) from postn
where reply = :reply
';
$this->prepare(
'Postn',
[
'reply' => $reply
]
);
$arr = $this->run(null, 'array');
if(is_array($arr) && isset($arr[0])) {
$arr = array_values($arr[0]);
return (int)$arr[0];
}
}
function countComments($origin, $id)
{
$this->_sql = '

15
app/widgets/Post/Post.php

@ -204,7 +204,20 @@ class Post extends \Movim\Widget\Base
}
$view->assign('repost', false);
$view->assign('external', $external);
$view->assign('prevnext', '');
$view->assign('comments', '');
if(!$external) {
$prevnext = $this->tpl();
$prevnext->assign('next', $p->getNext());
$prevnext->assign('previous', $p->getPrevious());
$view->assign('prevnext', $prevnext->draw('_post_prevnext', true));
} else {
$comments = $this->tpl();
$comments->assign('comments', $this->getComments($p));
$view->assign('comments', $comments->draw('_post_comments_external', true));
}
$view->assign('public', $public);
$view->assign('reply', $p->isReply() ? $p->getReply() : false);

168
app/widgets/Post/_post.tpl

@ -2,7 +2,7 @@
<article class="block">
{/if}
{if="isset($post->picture)"}
{if="isset($post->picture) && !$post->isBrief()"}
{if="($public && $post->isPublic() && !$post->isBrief()) || !$public"}
<header
class="big"
@ -19,7 +19,7 @@
<i class="zmdi zmdi-arrow-back"></i>
</span>
{if="$post->isMine() && !$public"}
{if="$post->isMine()"}
{if="$post->isEditable()"}
<span class="control icon active gray"
onclick="MovimUtils.redirect('{$c->route('publish', [$post->origin, $post->node, $post->nodeid])}')"
@ -35,13 +35,12 @@
{/if}
<p class="line">
{if="$post->title != null"}
{if="$post->title != null && !$post->isBrief()"}
{$post->title}
{else}
{$c->__('post.default_title')}
{/if}
</p>
</li>
</ul>
{/if}
@ -55,7 +54,7 @@
{$contact = $post->getContact()}
{/if}
{if="$post->node == 'urn:xmpp:microblog:0'"}
{if="$post->isMicroblog()"}
{$url = $contact->getPhoto('s')}
{if="$url"}
<span class="icon primary bubble">
@ -85,6 +84,7 @@
</span>
{/if}
{/if}
{if="$public"}
<span class="control icon active">
<a {if="$public"}
{if="$post->isMicroblog()"}
@ -99,6 +99,7 @@
<i class="zmdi zmdi-chevron-right"></i>
</a>
</span>
{/if}
{if="!$post->isBrief()"}
<p {if="$post->title != null"}title="{$post->title|strip_tags}"{/if}>
{if="$post->title != null"}
@ -135,10 +136,9 @@
- <i class="zmdi zmdi-edit"></i> {$post->updated|strtotime|prepareDate}
{/if}
</p>
{if="$post->isBrief()"}
<p class="normal">
{$post->title|addUrls}
{$post->title|addUrls|nl2br}
</p>
{/if}
</li>
@ -258,30 +258,16 @@
</content>
</section>
<footer>
{$tags = $post->getTags()}
{if="isset($tags)"}
<ul class="list thick">
<li>
<span class="primary icon zmdi zmdi-tag gray"></span>
<p></p>
<p class="normal">
{loop="$tags"}
<a target="_blank" href="{$c->route('tag', [$value])}">#{$value}</a>
{/loop}
</p>
</li>
</ul>
{/if}
<ul class="list middle divided spaced">
{if="isset($attachments.links)"}
{loop="$attachments.links"}
{if="$value.rel != 'alternate' && $post->picture != $value['href'] && $post->open != $value['href']"}
{if="$post->picture != $value['href']"}
<li>
<span class="primary icon gray">
{if="isset($value.logo)"}
<img src="{$value.logo}"/>
{else}
<i class="zmdi zmdi-link"/>
<i class="zmdi zmdi-link"></i>
{/if}
</span>
<p class="normal line">
@ -291,6 +277,8 @@
</p>
{if="isset($value.description)"}
<p>{$value.description}</p>
{else}
<p>{$value.url.host}</p>
{/if}
</li>
{/if}
@ -317,7 +305,7 @@
{/loop}
{/if}
</ul>
{if="!$post->isShort() && isset($attachments.pictures)"}
{if="isset($attachments.pictures) && !$post->isBrief()"}
<ul class="list flex middle">
{loop="$attachments.pictures"}
{if="$value.type != 'picture'"}
@ -350,129 +338,31 @@
</li>
</ul>
{/if}
</footer>
{if="$external"}
{$comments = $c->getComments($post)}
{if="$comments"}
<ul class="list divided spaced middle">
<li class="subheader">
<p>
<span class="info">{$comments|count}</span>
{$c->__('post.comments')}
{$tags = $post->getTags()}
{if="isset($tags)"}
<ul class="list thick">
<li>
<span class="primary icon zmdi zmdi-tag gray"></span>
<p></p>
<p class="normal">
{loop="$tags"}
<a target="_blank" href="{$c->route('tag', [$value])}">#{$value}</a>
{/loop}
</p>
</li>
{loop="$comments"}
{if="$value->title || $value->contentraw"}
<li>
{if="$value->isLike()"}
<span class="primary icon small red">
<i class="zmdi zmdi-favorite"></i>
</span>
{else}
{$url = $value->getContact()->getPhoto('s')}
{if="$url"}
<span class="primary icon small bubble">
<img src="{$url}">
</span>
{else}
<span class="primary icon small bubble color {$value->getContact()->jid|stringToColor}">
<i class="zmdi zmdi-account"></i>
</span>
{/if}
{/if}
<p class="normal line">
<span class="info" title="{$value->published|strtotime|prepareDate}">
{$value->published|strtotime|prepareDate:true,true}
</span>
{$value->getContact()->getTrueName()}
</p>
{if="!$value->isLike()"}
<p class="all">
{if="$value->title"}
{$value->title}
{else}
{$value->contentraw}
{/if}
</p>
{/if}
</li>
{/if}
{/loop}
</ul><br />
</ul>
{/if}
{elseif="$commentsdisabled"}
</footer>
{$comments}
{if="$commentsdisabled"}
{$commentsdisabled}
{else}
<div id="comments" class="spin"></div>
{/if}
{/if}
{if="!$external"}
{$next = $post->getNext()}
{$previous = $post->getPrevious()}
{if="$next || $previous"}
<ul class="list card flex active">
{if="$previous"}
<li class="block"
onclick="MovimUtils.redirect('{$c->route('post', [$previous->origin, $previous->node, $previous->nodeid])}')">
<span class="primary icon gray">
<i class="zmdi zmdi-arrow-left"></i>
</span>
<p class="line" {if="isset($previous->title)"}title="{$previous->title}"{/if}>
{if="isset($previous->title)"}
{$previous->title}
{else}
{$previous->node}
{/if}
</p>
<p class="line">{$previous->getSummary()}</p>
<p>
{$likes = $previous->countLikes()}
{if="$likes > 0"}
{$likes} <i class="zmdi zmdi-favorite-outline"></i>
{/if}
{$count = $previous->countComments()}
{if="$count > 0"}
{$count} <i class="zmdi zmdi-comment-outline"></i>
{/if}
<span class="info">
{$previous->published|strtotime|prepareDate}
</span>
</p>
</li>
{/if}
{if="$next"}
<li class="block"
onclick="MovimUtils.redirect('{$c->route('post', [$next->origin, $next->node, $next->nodeid])}')">
<span class="control icon gray">
<i class="zmdi zmdi-arrow-right"></i>
</span>
<p class="line" {if="isset($next->title)"}title="{$next->title}"{/if}>
{if="isset($next->title)"}
{$next->title}
{else}
{$next->node}
{/if}
</p>
<p class="line">{$next->getSummary()}</p>
<p>
{$likes = $next->countLikes()}
{if="$likes > 0"}
{$likes} <i class="zmdi zmdi-favorite-outline"></i>
{/if}
{$count = $next->countComments()}
{if="$count > 0"}
{$count} <i class="zmdi zmdi-comment-outline"></i>
{/if}
<span class="info">
{$next->published|strtotime|prepareDate}
</span>
</p>
</li>
{/if}
</ul>
{/if}
{/if}
{$prevnext}
<span class="clear padded"></span>
</article>

18
app/widgets/Post/_post_card.tpl

@ -53,7 +53,7 @@
</p>
{if="$post->isBrief()"}
<p class="normal">
{$post->title|addUrls|trim|nl2br}
{$post->title|addUrls|nl2br}
</p>
{/if}
</li>
@ -175,24 +175,22 @@
<li>
<p class="normal">
<a class="button flat oppose" href="{$c->route('post', [$post->origin, $post->node, $post->nodeid])}">
<i class="zmdi zmdi-plus"></i> {$c->__('post.more')}
</a>
{if="!$post->isBrief()"}
<a class="button flat oppose" href="{$c->route('post', [$post->origin, $post->node, $post->nodeid])}">
<i class="zmdi zmdi-plus"></i> {$c->__('post.more')}
</a>
{/if}
{if="!$post->isBrief()"}
<a class="button flat gray" href="{$c->route('post', [$post->origin, $post->node, $post->nodeid])}">
<a class="button icon flat gray" href="{$c->route('post', [$post->origin, $post->node, $post->nodeid])}">
{$post->countLikes()} <i class="zmdi zmdi-favorite-outline"></i>
</a>
<a class="button flat gray" href="{$c->route('post', [$post->origin, $post->node, $post->nodeid])}">
<a class="button icon flat gray" href="{$c->route('post', [$post->origin, $post->node, $post->nodeid])}">
{$post->countComments()} <i class="zmdi zmdi-comment-outline"></i>
</a>
{/if}
<a class="button flat gray" href="{$c->route('publish', [$post->origin, $post->node, $post->nodeid, 'share'])}">
<a class="button icon flat gray" href="{$c->route('publish', [$post->origin, $post->node, $post->nodeid, 'share'])}">
<i class="zmdi zmdi-mail-reply"></i>
</a>
{if="$post->isPublic()"}
<a class="button flat gray on_desktop" target="_blank" href="{$post->getPublicUrl()}">
<a class="button icon flat gray on_desktop" target="_blank" href="{$post->getPublicUrl()}">
<i title="{$c->__('menu.public')}" class="zmdi zmdi-portable-wifi"></i>
</a>
{/if}

2
app/widgets/Post/_post_comments.tpl

@ -96,7 +96,7 @@
</button>
{if="$c->supported('pubsub')"}
<button class="button flat gray" onclick="Post.share()">
<i class="zmdi zmdi-share"></i> {$c->__('button.share')}
<i class="zmdi zmdi-mail-reply"></i> {$c->__('button.reply')}
</button>
{/if}
</p>

4
app/widgets/Post/_post_comments_error.tpl

@ -11,8 +11,8 @@
<li class="block">
<p class="center">
{if="$c->supported('pubsub')"}
<button class="button flat gray" onclick="Post.share()">
<i class="zmdi zmdi-share"></i> {$c->__('button.share')}
<button class="button icon flat gray" onclick="Post.share()">
<i class="zmdi zmdi-mail-reply"></i> {$c->__('button.reply')}
</button>
{/if}
</p>

47
app/widgets/Post/_post_comments_external.tpl

@ -0,0 +1,47 @@
{if="$comments"}
<ul class="list divided spaced middle">
<li class="subheader">
<p>
<span class="info">{$comments|count}</span>
{$c->__('post.comments')}
</p>
</li>
{loop="$comments"}
{if="$value->title || $value->contentraw"}
<li>
{if="$value->isLike()"}
<span class="primary icon small red">
<i class="zmdi zmdi-favorite"></i>
</span>
{else}
{$url = $value->getContact()->getPhoto('s')}
{if="$url"}
<span class="primary icon small bubble">
<img src="{$url}">
</span>
{else}
<span class="primary icon small bubble color {$value->getContact()->jid|stringToColor}">
<i class="zmdi zmdi-account"></i>
</span>
{/if}
{/if}
<p class="normal line">
<span class="info" title="{$value->published|strtotime|prepareDate}">
{$value->published|strtotime|prepareDate:true,true}
</span>
{$value->getContact()->getTrueName()}
</p>
{if="!$value->isLike()"}
<p class="all">
{if="$value->title"}
{$value->title}
{else}
{$value->contentraw}
{/if}
</p>
{/if}
</li>
{/if}
{/loop}
</ul><br />
{/if}

62
app/widgets/Post/_post_prevnext.tpl

@ -0,0 +1,62 @@
{if="$next || $previous"}
<ul class="list card flex active">
{if="$previous"}
<li class="block"
onclick="MovimUtils.redirect('{$c->route('post', [$previous->origin, $previous->node, $previous->nodeid])}')">
<span class="primary icon gray">
<i class="zmdi zmdi-arrow-left"></i>
</span>
<p class="line" {if="isset($previous->title)"}title="{$previous->title}"{/if}>
{if="isset($previous->title)"}
{$previous->title}
{else}
{$previous->node}
{/if}
</p>
<p class="line">{$previous->getSummary()}</p>
<p>
{$likes = $previous->countLikes()}
{if="$likes > 0"}
{$likes} <i class="zmdi zmdi-favorite-outline"></i>
{/if}
{$count = $previous->countComments()}
{if="$count > 0"}
{$count} <i class="zmdi zmdi-comment-outline"></i>
{/if}
<span class="info">
{$previous->published|strtotime|prepareDate}
</span>
</p>
</li>
{/if}
{if="$next"}
<li class="block"
onclick="MovimUtils.redirect('{$c->route('post', [$next->origin, $next->node, $next->nodeid])}')">
<span class="control icon gray">
<i class="zmdi zmdi-arrow-right"></i>
</span>
<p class="line" {if="isset($next->title)"}title="{$next->title}"{/if}>
{if="isset($next->title)"}
{$next->title}
{else}
{$next->node}
{/if}
</p>
<p class="line">{$next->getSummary()}</p>
<p>
{$likes = $next->countLikes()}
{if="$likes > 0"}
{$likes} <i class="zmdi zmdi-favorite-outline"></i>
{/if}
{$count = $next->countComments()}
{if="$count > 0"}
{$count} <i class="zmdi zmdi-comment-outline"></i>
{/if}
<span class="info">
{$next->published|strtotime|prepareDate}
</span>
</p>
</li>
{/if}
</ul>
{/if}

1
locales/locales.ini

@ -57,6 +57,7 @@ submit = Submit
submitting = Submitting
reset = Reset
register = Register
reply = Reply
unregister = Unregister
save = Save
clear = Clear

Loading…
Cancel
Save