Toggle navigation
Test Site
Home
Guestbook
Guestbook template
Blog 1
Blog 2
Blog template
Blog 3
Split twig guestbook
Main Twig
Copy or upload (remove
.js
after copy/upload) to
/xtgem_templates/xtguestbook.twig
Create a folder
/xtgem_templates/guestbookblocks/
Copy or upload all the following files (remove
.js
after copy/upload) to
/xtgem_templates/guestbookblocks/
Comments form
<form action="{{ data.comments_form.url }}" method="post" id="xt_blog_comment_form" name="post"> <div class="panel-body"> {% if data.entry.in_comments_thread %} <input type="hidden" name="__xtcomments_thread_id" value="{{ data.entry.in_comments_thread }}" /> {% endif %} <input type="hidden" name="__xtx" value="{{ data.comments_form.fields.xtx }}" /> <input type="hidden" name="__xtxs" value="{{ data.comments_form.fields.xtxs }}" /> <input type="text" name="__xtcomments_comments" value="" style="display:none" /> {% if data.is_logged_in %} <div class="well well-sm" style="margin-bottom: 8px;">{{ data.translations.t_posting_as }} <span class="text-info">{{ data.community_name }}</span></div> {% else %} {% if data.comments_form.spam_comments_reserved_name %} <div class="well well-sm text-warning text-center" style="margin-bottom: 8px;">{{ data.translations.t_reserved_name }}</div> {% endif %} {% if data.comments_form.poster %} <input type="hidden" name="__xtcomments_nick" value="{{ data.comments_form.poster }}" /> {% else %} <div class="small text-muted">{{ data.translations.t_name }}</div> <input class="form-control" type="text" name="__xtcomments_nick" value="{{ data.comments_form.spam_comments_nick }}" /> {% endif %} {% endif %} {% if data.comments_form.comments_restriction == "email_required" and not data.is_logged_in %} <div class="small text-muted">{{ data.translations.t_email }}</div> <input class="form-control" type="text" name="__xtcomments_email" value="{{ data.comments_form.spam_comments_email }}" /> {% endif %} <div class="small text-muted">{{ data.translations.t_comment }}</div> {#bb code tool#} {% include '/guestbookblocks/BB_tool.twig' %} <textarea class="form-control" placeholder="{{ data.translations.t_comment }}" id="xtblog_comment_msg" name="__xtcomments_msg">{{ data.comments_form.spam_comments_msg }}</textarea> {% if data.comments_form.spam_comments %} <input type="hidden" name="hash" value="{{ data.comments_form.spam_hash }}" /> <div class="thumbnail " style="max-width:187px;margin-top:4px"> <img src="{{ data.comments_form.spam_captcha_url }}" alt="" /><br /> <div class="small text-muted">Code:</div> <input class="form-control" type="text" name="code" /> </div> {% endif %} </div> <div class="panel-footer"> <input class="btn btn-default btn-xs" name="submit" type="submit" value="{{ data.translations.t_post }}" /> <input class="btn btn-default btn-xs" type="reset" value="Reset" /> </div> </form>
BB code tool
{# BBcode and Emoticon tool #} {% if data.device != 'mobile'%} {# BBcode and emoticon tool <?#} <div> <div class="btn-group btn-group-xs" id="bbtool" > <a class="btn btn-default" title="Bold text" href="javascript:tag_gb('[b]','[\/b\]')"><b>B</b></a> <a class="btn btn-default" title="Italic text" href="javascript:tag_gb('[i]','[\/i\]')"><i>I</i></a> <a class="btn btn-default" title="Underlined text" href="javascript:tag_gb('[u]','[\/u\]')"><u>U</u></a> <a class="btn btn-default" title="New line" href="javascript:tag_gb('[br]','')"><small><br></small></a> {%if data.community_name == owner or not no_links%} <a class="btn btn-default" title="Link" href="javascript:tag_gb('[url=...]','[\/url\]')"><small>url</small></a> {% endif %} {%if data.community_name == owner or not no_images%} <a class="btn btn-default" title="Insert image" href="javascript:tag_gb('[img]','[\/img\]')"><small>img</small></a> {% endif %} <a class="btn btn-default" title="show code" href="javascript:tag_gb('[code]','[\/code\]')"><small></></small></a> <a class="btn btn-default" title="Text color" href="javascript:tag_gb('[color=000000]','[\/color\]')"><small class="text-danger">A</small><small class="text-success">B</small><small class="text-info">C</small></a> <a class="btn btn-default" title="Text size" href="javascript:tag_gb('[size=16]','[\/size\]')"><small>A</small>A</a> <a class="btn btn-default" title="Mail to" href="javascript:tag_gb('[email]','[\/email\]')">@</a> {%if data.community_name == owner or not no_youtube%} <a class="btn btn-danger" title="Embed Youtube video" href="javascript:tag_gb('[youtube]','[\/youtube\]')"><small class="">►</small></a> {% endif %} <a class="btn btn-default" title="Emoticons" href="javascript:show_sml('sml');"><b>:)</b></a> </div> <div id="sml" class="" style="display:none"> <a href="javascript:tag_gb(':)','')"><img src="http://xtgem.com/images/smilies/smile_mini2.gif" alt="*" title=":)" /></a> <a href="javascript:tag_gb(':(','')"><img src="http://xtgem.com/images/smilies/sad_mini.gif" alt="*" title=":(" /></a> <a href="javascript:tag_gb(':DD','')"><img src="http://xtgem.com/images/smilies/laugh_mini2.gif" alt="*" title=":DD" /></a> <a href="javascript:tag_gb(':D','')"><img src="http://xtgem.com/images/smilies/biggrin_mini2.gif" alt="*" title=":D" /></a> <a href="javascript:tag_gb(':o','')"><img src="http://xtgem.com/images/smilies/chok_mini.gif" alt="*" title=":o" /></a> <a href="javascript:tag_gb('0_0','')"><img src="http://xtgem.com/images/smilies/scratch_one-s_head_mini.gif" alt="*" title="0_0" /></a> <a href="javascript:tag_gb(':P','')"><img src="http://xtgem.com/images/smilies/blum_mini.gif" alt="*" title=":P" /></a> <a href="javascript:tag_gb('B)','')"><img src="http://xtgem.com/images/smilies/dirol_mini.gif" alt="*" title="B)" /></a> <a href="javascript:tag_gb('>:(','')"><img src="http://xtgem.com/images/smilies/mad_mini.gif" alt="*" title=">:(" /></a> <a href="javascript:tag_gb('o_O','')"><img src="http://xtgem.com/images/smilies/fool_mini2.gif" alt="*" title="o_O" /></a> <a href="javascript:tag_gb('>_>','')"><img src="http://xtgem.com/images/smilies/unsure_mini.gif" alt="*" title=">_>" /></a> <a href="javascript:tag_gb('-_-','')"><img src="http://xtgem.com/images/smilies/nea_mini.gif" alt="*" title="-_-" /></a> <a href="javascript:tag_gb(':-(','')"><img src="http://xtgem.com/images/smilies/sad_mini2.gif" alt="*" title=":-(" /></a> <a href="javascript:tag_gb(':-)','')"><img src="http://xtgem.com/images/smilies/happy_mini.gif" alt="*" title=":-)" /></a> <a href="javascript:tag_gb('^^','')"><img src="http://xtgem.com/images/smilies/smile_mini.gif" alt="*" title="^^" /></a> <a href="javascript:tag_gb(';)','')"><img src="http://xtgem.com/images/smilies/wink_mini.gif" alt="*" title=";)" /></a> <a href="javascript:tag_gb('O:-)','')"><img src="http://xtgem.com/images/smilies/angel_mini.gif" alt="*" title="O:-)" /></a> <a href="javascript:tag_gb(':p','')"><img src="http://xtgem.com/images/smilies/beee_mini.gif" alt="*" title=":p" /></a> <a href="javascript:tag_gb(';-D','')"><img src="http://xtgem.com/images/smilies/biggrin_mini.gif" alt="*" title=";-D" /></a> <a href="javascript:tag_gb(':*(','')"><img src="http://xtgem.com/images/smilies/cray_mini.gif" alt="*" title=":*(" /></a> <a href="javascript:tag_gb(']:->','')"><img src="http://xtgem.com/images/smilies/diablo_mini.gif" alt="*" title="]:->" /></a> <a href="javascript:tag_gb('(y)','')"><img src="http://xtgem.com/images/smilies/good_mini.gif" alt="*" title="(y)" /></a> <a href="javascript:tag_gb('<3','')"><img src="http://xtgem.com/images/smilies/heart_mini.gif" alt="*" title="<3" /></a> <a href="javascript:tag_gb(':*','')"><img src="http://xtgem.com/images/smilies/kiss_mini.gif" alt="*" title=":*" /></a> <a href="javascript:tag_gb(':-))','')"><img src="http://xtgem.com/images/smilies/laugh_mini.gif" alt="*" title=":-))" /></a> <a href="javascript:tag_gb('[:)','')"><img src="http://xtgem.com/images/smilies/music_mini.gif" alt="*" title="[:)" /></a> <a href="javascript:tag_gb('[:-)','')"><img src="http://xtgem.com/images/smilies/music_mini2.gif" alt="*" title="[:-)" /></a> <a href="javascript:tag_gb(':-O','')"><img src="http://xtgem.com/images/smilies/shout_mini.gif" alt="*" title=":-O" /></a> <a href="javascript:tag_gb('?-|','')"><img src="http://xtgem.com/images/smilies/vava_mini.gif" alt="*" title="?-|" /></a> <a href="javascript:tag_gb(':aggressive:','')"><img src="http://xtgem.com/images/smilies/aggressive_mini.gif"alt="*" title=":aggressive:" /></a> <a href="javascript:tag_gb(':bomb:','')"><img src="http://xtgem.com/images/smilies/bomb_mini.gif" alt="*" title=":bomb:" /></a> <a href="javascript:tag_gb(':bye:','')"><img src="http://xtgem.com/images/smilies/bye_mini.gif" alt="*" title=":bye:" /></a> <a href="javascript:tag_gb(':celebrate:','')"><img src="http://xtgem.com/images/smilies/drink_mini.gif" alt="*" title=":celebrate:" /></a> <a href="javascript:tag_gb(':clap:','')"><img src="http://xtgem.com/images/smilies/clapping_mini.gif" alt="*" title=":clap:" /></a> <a href="javascript:tag_gb(':confused:','')"><img src="http://xtgem.com/images/smilies/unknw_mini.gif" alt="*" title=":confused:" /></a> <a href="javascript:tag_gb(':crazy:','')"><img src="http://xtgem.com/images/smilies/crazy_mini.gif" alt="*" title=":crazy:" /></a> <a href="javascript:tag_gb(':dance:','')"><img src="http://xtgem.com/images/smilies/dance_mini.gif" alt="*" title=":dance:" /></a> <a href="javascript:tag_gb(':drink:','')"><img src="http://xtgem.com/images/smilies/drink2_mini.gif" alt="*" title=":drink:" /></a> <a href="javascript:tag_gb(':fool:','')"><img src="http://xtgem.com/images/smilies/fool_mini.gif" alt="*" title=":fool:" /></a> <a href="javascript:tag_gb(':inlove:','')"><img src="http://xtgem.com/images/smilies/man_in_love_mini.gif" alt="*" title=":inlove:" /></a> <a href="javascript:tag_gb(':LOL:','')"><img src="http://xtgem.com/images/smilies/lol_mini.gif" alt="*" title=":LOL:" /></a> <a href="javascript:tag_gb(':lol:','')"><img src="http://xtgem.com/images/smilies/lol_mini2.gif" alt="*" title=":lol:" /></a> <a href="javascript:tag_gb(':mamba:','')"><img src="http://xtgem.com/images/smilies/mamba_mini.gif" alt="*" title=":mamba:" /></a> <a href="javascript:tag_gb(':mock:','')"><img src="http://xtgem.com/images/smilies/mocking_mini.gif" alt="*" title=":mock:" /></a> <a href="javascript:tag_gb(':pardon:','')"><img src="http://xtgem.com/images/smilies/pardon_mini.gif" alt="*" title=":pardon:" /></a> <a href="javascript:tag_gb(':rofl:','')"><img src="http://xtgem.com/images/smilies/rofl_mini.gif" alt="*" title=":rofl:" /></a> <a href="javascript:tag_gb(':rolleyes:','')"><img src="http://xtgem.com/images/smilies/rolleyes_mini.gif" alt="*" title=":rolleyes:" /></a> <a href="javascript:tag_gb(':rose:','')"><img src="http://xtgem.com/images/smilies/rose_mini.gif" alt="*" title=":rose:" /></a> <a href="javascript:tag_gb(':secret:','')"><img src="http://xtgem.com/images/smilies/secret_mini.gif" alt="*" title=":secret:" /></a> <a href="javascript:tag_gb(':shy:','')"><img src="http://xtgem.com/images/smilies/blush_mini.gif" alt="*" title=":shy:" /></a> <a href="javascript:tag_gb(':sick:','')"><img src="http://xtgem.com/images/smilies/bo_mini.gif" alt="*" title=":sick:" /></a> <a href="javascript:tag_gb(':sorry:','')"><img src="http://xtgem.com/images/smilies/sorry_mini.gif" alt="*" title=":sorry:" /></a> <a href="javascript:tag_gb(':wack:','')"><img src="http://xtgem.com/images/smilies/wacko_mini2.gif" alt="*" title=":wack:" /></a> <a href="javascript:tag_gb(':wacko:','')"><img src="http://xtgem.com/images/smilies/wacko_mini.gif" alt="*" title=":wacko:" /></a> <a href="javascript:tag_gb(':yay:','')"><img src="http://xtgem.com/images/smilies/yahoo_mini.gif" alt="*" title=":yay:" /></a> </div> </div> {% endif %} {# BBcode and Emoticon tool ?> #}
Comment macro
{% macro comments_list ( comments, ctx, no_links, no_images, no_youtube, owner ) %} {% for comment in comments %} <div class="list-group-item{% if comment.owner_of_comment %} text-muted{% endif %}"> {% if comment.author_profile %} <a class="btn btn-default btn-xs" href="{{ comment.author_profile.link }}"><img src="{{ comment.author_profile.avatars[16] }}" style="display:inline"><span class="text-{% if comment.owner_of_comment %}info{%else%}default{% endif %}">{{ comment.author_profile.name }}</span></a> {% else %} <span class="btn btn-default btn-xs"><span class="glyphicon glyphicon-user" aria-hidden="true"></span>{{ comment.nick|raw }}</span> {% endif %} {% if comment.is_hidden %} <div class="text-warning">{{ ctx.data.translations.t_hidden_comment }}</div> {% else %} {%set mssg= comment.message %} {# fix code bbtag in comments #} {% if '<pre>' in mssg %}{%set mssg = mssg|replace({('<pre>'):'<pre class="pre-scrollable" style="resize:horizontal">',('</pre>'):'</pre>',('&'):'&','<p>':'','</p>':'','<em>':'_','</em>':'_','\r\n': '', '\n': '', '\r': '' }) %}{% endif %} {%if comment.author_profile.name != owner %} {# no images in comments #} {%if no_images %} {% if '<img' in mssg %} {% set m=mssg|split('<img src="') %} {% for i in 1..(m|length-1) %} {% if not ( m[i] starts with 'http://xtgem.com') %} {% set n=m[i]|split('"') %} {% set mssg=mssg|replace ({("<img src=\"#{n[0]}\" alt=\"img\" />"):'<b class="text-danger">[images disabled]</b>'}) %} {% endif %} {% endfor %} {% endif %} {% endif %} {# no links in comments #} {%if no_links %} {% if '<a href' in mssg %} {% set m=mssg|split('<a href="') %} {% for i in 1..(m|length-1) %} {% set n=m[i]|split('a>') %} {% set mssg=mssg|replace ({("<a href=\"#{n[0]}a>"):'<b class="text-danger">[links disabled]</b>'}) %} {% endfor %} {% endif %} {% endif %} {# no embedded youtube in comments #} {%if no_youtube %} {% if '<object' in mssg %}{% set mssg=mssg|replace({("<object"):'<b class="text-danger">[youtube disabled]</b><!--',("</object"):'--'}) %}{% endif %} {% endif %} {% endif %} <div style="margin-top:2px">{{ mssg|raw }}</div> {% endif %} <div class="small text-muted">{{ comment.date }}</div> {% if not ( ctx.data.in_comments_thread and comment.childs and (comment.childs_count > 0) ) %} <div> {% if not comment.owner_of_comment %} {% if ctx.data.visitor_is_admin and not comment.childs %} <a class="btn btn-default btn-xs" href="{{ comment.reply_link }}">{{ ctx.data.translations.t_reply }}</a> {% endif %} {% if ctx.data.reported_spam and ctx.data.reported_spam == comment.id %} <span class="btn btn-danger btn-xs">{{ctx.data.translations.t_reported}}</span> {% else %} {% if ctx.data.is_logged_in and not comment.is_hidden and not data.comments_form.is_maintenance %} <a class="btn btn-default btn-xs" href="{{ comment.spam_link }}">{{ ctx.data.translations.t_report_spam }}</a> {% elseif not ctx.data.is_logged_in and not comment.is_hidden and not data.comments_form.is_maintenance %} <a class="btn btn-default btn-xs" href="{{ comment.login_link }}">{{ ctx.data.translations.t_report_spam }}</a> {% endif %} {% endif %} {% endif %} </div> {% endif %} {% if comment.childs %} <div style="margin-top:2px;"> {{ _self.comments_list(comment.childs, ctx, no_links, no_images, no_youtube, owner) }} </div> {% endif %} </div> {% endfor %} {% endmacro %} {{ _self.comments_list(data.comments, _context, no_links, no_images, no_youtube, owner) }}
Guestbook full page code
upload/copy (remove
.js
after upload) Incudes javascript for bbcode tool
Log in
Teya Salat