1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-26 11:40:48 +03:00

Synio, blog categories

This commit is contained in:
Denis Shakhov 2013-04-09 05:30:54 +07:00
parent ea0db42c37
commit 403f9cbc87
20 changed files with 423 additions and 679 deletions

View file

@ -538,6 +538,7 @@ $config['head']['default']['js'] = array(
"___path.static.framework___/js/livestreet/settings.js",
"___path.static.framework___/js/livestreet/topic.js",
"___path.static.framework___/js/livestreet/admin.js",
"___path.static.framework___/js/livestreet/init.js",
"http://yandex.st/share/share.js" => array('merge'=>false),
);

View file

@ -1,228 +1,6 @@
{assign var="noSidebar" value=true}
{include file='header.tpl'}
<script>
jQuery(document).ready(function($) {
//ls.tooltip.add('.js-tooltip', { position: 'top'});
//$.fn.poshytip.defaults.className = 'tooltip'
});
</script>
<h2 class="page-header">Popover</h2>
<a href="#" data-type="popover-toggle" title="Popover header title" data-option-title="Popover header" data-option-content="Lorem ipsum dolor sit amet, consectetur adipisicing elit. Numquam ipsum beatae veritatis mollitia fugiat earum labore magnam a totam natus? Cumque non maxime doloremque atque rem ex quisquam. Excepturi pariatur.">Popover</a>
<br>
<br>
<br>
<h2 class="page-header">Tooltip</h2>
<a href="#" data-type="tooltip-toggle" class="js-tooltip" title="Lorem ipsum dolor sit amet, consectetur adipisicing elit. Numquam ipsum beatae veritatis mollitia fugiat earum labore magnam a totam natus? Cumque non maxime doloremque atque rem ex quisquam. Excepturi pariatur.">Top tooltip</a>
<br>
<br>
<br>
<h2 class="page-header">Dropdowns</h2>
<div class="dropdown dropdown-toggle" id="dd1"
data-type="dropdown-toggle"
data-option-target="js-dropdown-test"
data-option-activate-items="true"
data-option-change-text="true"><i class="icon-trash icon-white"></i> <span data-type="dropdown-text">Dropdown</span></div>
<ul class="dropdown-menu" id="js-dropdown-test" data-type="dropdown-target">
<li><a href="#" onclick="return false;">{$aLang.blog_menu_top_period_24h}</a></li>
<li><a href="#" onclick="return false;">{$aLang.blog_menu_top_period_7d}</a></li>
<li class="divider"></li>
<li><a href="#" onclick="return false;">За все время</a></li>
</ul>
<!-- Ajax dropdown -->
<div class="dropdown dropdown-toggle"
data-type="dropdown-toggle"
data-option-target="js-dropdown-ajax"
data-option-template="<div class='dropdown-menu' id='js-dropdown-ajax' data-type='dropdown-target'></div>"
data-param-i-blog-id="2"
data-option-url="http://lshead/ajax/infobox/info/blog/"><span data-type="dropdown-text">Test ajax</span></div>
<div class="dropdown-menu" id="js-dropdown-ajax" data-type="dropdown-target"></div>
<br />
<br />
<h2 class="page-header">Modals</h2>
<button class="button button-primary" data-type="modal-toggle" data-option-target="my-modal">Show modal</button>
<button class="button button-primary" data-type="modal-toggle" data-option-target="modal-long">Show looong modal</button>
<button class="button" onclick="$('#modal-custom').modal('show');">Modal with custom content</button>
<button class="button button-primary" data-type="modal-toggle" data-option-url="{cfg name='path.root.web'}">Show ajax modal</button>
<div class="modal js-modal-default" id="modal-custom" data-type="modal">
<div class="modal-header">
<h3>Modal header</h3>
</div>
<div class="modal-content">
asdfasdfasdf
<button class="button button-primary" data-type="modal-toggle" data-option-target="modal-long">Show ajax modal</button>
</div>
<div class="modal-footer">
<button class="button button-primary" data-type="modal-close">Close</button>
</div>
</div>
<div class="modal js-modal-default" id="modal-inner" data-type="modal">
<div class="modal-header">
<h3>Modal header</h3>
</div>
<div class="modal-content">
asdfasdfasdf
</div>
<div class="modal-footer">
<button class="button button-primary" data-type="modal-close">Close</button>
</div>
</div>
<div class="modal js-modal-default" id="my-modal" data-type="modal">
<div class="modal-header">
<h3>Modal header</h3>
</div>
<div class="modal-content">
<div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deserunt beatae saepe veritatis iusto obcaecati neque? Odio modi tenetur corporis voluptas sed nesciunt quas dolorem cum! Officiis amet dicta dolorum cumque!</div>
<div>Dolore laboriosam sequi voluptatem sint labore tempore magni architecto consequuntur quibusdam adipisci itaque minus ad aspernatur rem repellat debitis nobis in totam cupiditate blanditiis commodi non illo quaerat obcaecati vitae.</div>
<div>Nobis fugit rem molestiae est corporis repudiandae laboriosam temporibus iste pariatur omnis itaque explicabo dolore mollitia possimus totam at illum tempora natus ipsam voluptatibus et vitae beatae architecto hic sint.</div>
<br>
<button class="button button-primary" data-type="modal-close">Close</button>
</div>
</div>
<div class="modal js-modal-default" id="modal-long" data-type="modal">
<div class="modal-header">
<h3>Modal header</h3>
</div>
<div class="modal-content">
<div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deserunt beatae saepe veritatis iusto obcaecati neque? Odio modi tenetur corporis voluptas sed nesciunt quas dolorem cum! Officiis amet dicta dolorum cumque!</div>
<div>Dolore laboriosam sequi voluptatem sint labore tempore magni architecto consequuntur quibusdam adipisci itaque minus ad aspernatur rem repellat debitis nobis in totam cupiditate blanditiis commodi non illo quaerat obcaecati vitae.</div>
<div>Nobis fugit rem molestiae est corporis repudiandae laboriosam temporibus iste pariatur omnis itaque explicabo dolore mollitia possimus totam at illum tempora natus ipsam voluptatibus et vitae beatae architecto hic sint.</div>
<div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Doloremque minima odit quibusdam eveniet repudiandae unde voluptatum tempore beatae sed! Veritatis nihil est quibusdam quasi quis animi optio magni nostrum consectetur.</div>
<div>Libero eos adipisci tempora itaque nam cum doloribus nostrum quisquam commodi neque! Tempore incidunt nesciunt id ipsam quibusdam sunt optio nostrum facere voluptatibus commodi atque ratione aperiam officiis facilis amet.</div>
<div>Eius tempora temporibus necessitatibus itaque animi reiciendis sint facilis quod mollitia quaerat voluptatum nostrum sunt cupiditate totam quo saepe quisquam velit perferendis minus neque. Ex aliquam tempore non vero quisquam!</div>
<div>Fuga at assumenda modi nobis iste quaerat quisquam culpa cum unde eaque voluptates recusandae maiores quam alias deleniti sed possimus nisi rem animi reprehenderit dolorem voluptatibus accusantium error praesentium vel!</div>
<div>Magni atque dolores vitae dolorum asperiores illo ipsa obcaecati accusantium nihil cupiditate qui eum tempora natus voluptatibus sed at eligendi? Nam debitis atque voluptate culpa a odit provident sit quod.</div>
<div>Magnam odit beatae reprehenderit voluptates libero in ut quos ratione veritatis explicabo eum earum corporis sapiente id molestias repellat nostrum quae cupiditate quam quidem maxime nisi pariatur dolorum accusamus animi.</div>
<div>Quia unde illo itaque quam numquam amet similique corporis. Excepturi corporis repellendus eaque beatae expedita in. Fugiat eos enim sunt accusantium laudantium nulla repudiandae eaque ex doloremque sint adipisci reiciendis!</div>
<div>Consectetur accusantium animi ab laudantium commodi consequuntur ducimus quas. Molestias sunt aperiam similique accusamus nobis quasi ut quia nostrum impedit in temporibus deleniti maiores consequuntur ratione neque sit quibusdam necessitatibus.</div>
<div>Repellendus eaque error nisi temporibus est repudiandae hic ex quaerat quis rem molestiae tenetur reiciendis quo praesentium saepe voluptas similique illum modi asperiores qui laudantium fugit rerum eum impedit deserunt!</div>
<div>Modi minima atque in quos porro repellat tempora doloremque optio iste at totam nulla sapiente rem ipsa mollitia ratione numquam? Saepe fugit eveniet officiis doloremque ducimus numquam nemo quos ab.</div>
<div>Quia unde illo itaque quam numquam amet similique corporis. Excepturi corporis repellendus eaque beatae expedita in. Fugiat eos enim sunt accusantium laudantium nulla repudiandae eaque ex doloremque sint adipisci reiciendis!</div>
<div>Consectetur accusantium animi ab laudantium commodi consequuntur ducimus quas. Molestias sunt aperiam similique accusamus nobis quasi ut quia nostrum impedit in temporibus deleniti maiores consequuntur ratione neque sit quibusdam necessitatibus.</div>
<div>Repellendus eaque error nisi temporibus est repudiandae hic ex quaerat quis rem molestiae tenetur reiciendis quo praesentium saepe voluptas similique illum modi asperiores qui laudantium fugit rerum eum impedit deserunt!</div>
<div>Modi minima atque in quos porro repellat tempora doloremque optio iste at totam nulla sapiente rem ipsa mollitia ratione numquam? Saepe fugit eveniet officiis doloremque ducimus numquam nemo quos ab.</div>
<br>
<button class="button button-primary" data-type="modal-close">Close</button>
</div>
</div>
<br />
<br />
<br />
<h2 class="page-header">Tabs</h2>
<ul class="nav nav-tabs" data-type="tabs">
<li data-type="tab" data-option-target="tabs-pages-1" class="active"><a href="#">Tab One</a></li>
<li data-type="tab" data-option-target="tabs-pages-2"><a href="#">Tab Two</a></li>
<li data-type="tab" data-option-target="tabs-pages-3"><a href="#">Tab Three</a></li>
<li>
<a href="#" class="dropdown-toggle"
data-type="dropdown-toggle"
data-option-target="js-dropdown-date2"
data-option-append-to-body="false"
data-option-align-x="right"
data-option-activate-items="true"
data-option-change-text="true">
<i class="icon-trash"></i> More tabs</a>
<ul class="dropdown-menu" id="js-dropdown-date2" data-type="dropdown-target">
<li data-type="tab" data-option-target="tabs-pages-4"><a href="#">{$aLang.blog_menu_top_period_24h}</a></li>
<li data-type="tab" data-option-target="tabs-pages-5"><a href="#">{$aLang.blog_menu_top_period_7d}</a></li>
</ul>
</li>
</ul>
<div data-type="tab-content">
<div id="tabs-pages-1" class="tab-pane" data-type="tab-pane" style="display: block">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic magnam error eligendi odio nemo itaque ea vero adipisci fugit exercitationem totam quasi asperiores dolores harum saepe laudantium provident. Voluptates tenetur.</div>
<div id="tabs-pages-2" class="tab-pane" data-type="tab-pane">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eaque iste vel sit necessitatibus voluptatum cumque quos ipsam ab eligendi blanditiis accusamus nostrum consectetur magnam harum provident dolorem minima iure ex.</div>
<div id="tabs-pages-3" class="tab-pane" data-type="tab-pane">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Pariatur esse odit sequi dolorum ab perspiciatis sint eveniet tenetur praesentium cumque deserunt quidem ipsa perferendis reprehenderit corporis vero explicabo ratione suscipit!</div>
<div id="tabs-pages-4" class="tab-pane" data-type="tab-pane">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Maxime quam magnam quaerat molestiae provident error blanditiis sequi recusandae nisi adipisci. Voluptatibus optio assumenda in quaerat ab eaque placeat nesciunt animi.</div>
<div id="tabs-pages-5" class="tab-pane" data-type="tab-pane"><div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magni similique dolores ab exercitationem sint tempora eius magnam est dignissimos cumque ad id excepturi voluptatibus esse molestiae ut sit voluptates quod!</div>
<div>Iure quibusdam eum eveniet autem veritatis aliquid neque repellat labore obcaecati modi facilis eaque in officia magni officiis tempora itaque eos natus quod quidem quam dolorum nobis distinctio possimus quo.</div>
<div>Error iure ut nihil voluptate perspiciatis ipsam ex officia quis eveniet reprehenderit hic quod voluptas? Iusto dolore ad fugit ullam quos quis iure vitae quas vero nam repudiandae modi eaque.</div>
<div>Sed eos dolorem dolore pariatur perspiciatis atque aspernatur autem cumque perferendis quae ab quisquam quasi hic magnam animi tenetur incidunt impedit nesciunt consequuntur sequi minima ad rerum aperiam dolores veritatis.</div></div>
</div>
<br />
<br />
<h2 class="page-header">Tabs pills</h2>
<ul class="nav nav-pills" data-type="tabs">
<li data-type="tab" data-option-target="tab-pages-1"><a href="#">Tab One</a></li>
<li data-type="tab" data-option-target="tab-pages-2"><a href="#">Tab Two</a></li>
<li data-type="tab" data-option-target="tab-pages-3"><a href="#">Tab Three</a></li>
<li>
<a href="#" class="dropdown-toggle" data-type="dropdown-toggle" data-option-target="js-dropdown-date" data-option-append-to-body="false" data-option-change-text="true">
<span data-type="dropdown-text">Dropdown</span></a>
<ul class="dropdown-menu" id="js-dropdown-date">
<li data-type="tab" data-option-target="tab-pages-4"><a href="#">{$aLang.blog_menu_top_period_24h}</a></li>
<li data-type="tab" data-option-target="tab-pages-5"><a href="#">{$aLang.blog_menu_top_period_7d}</a></li>
</ul>
</li>
</ul>
<div data-type="tab-content">
<div id="tab-pages-1" class="tab-pane" data-type="tab-pane">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic magnam error eligendi odio nemo itaque ea vero adipisci fugit exercitationem totam quasi asperiores dolores harum saepe laudantium provident. Voluptates tenetur.</div>
<div id="tab-pages-2" class="tab-pane" data-type="tab-pane">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eaque iste vel sit necessitatibus voluptatum cumque quos ipsam ab eligendi blanditiis accusamus nostrum consectetur magnam harum provident dolorem minima iure ex.</div>
<div id="tab-pages-3" class="tab-pane" data-type="tab-pane">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Pariatur esse odit sequi dolorum ab perspiciatis sint eveniet tenetur praesentium cumque deserunt quidem ipsa perferendis reprehenderit corporis vero explicabo ratione suscipit!</div>
<div id="tab-pages-4" class="tab-pane" data-type="tab-pane">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Maxime quam magnam quaerat molestiae provident error blanditiis sequi recusandae nisi adipisci. Voluptatibus optio assumenda in quaerat ab eaque placeat nesciunt animi.</div>
<div id="tab-pages-5" class="tab-pane" data-type="tab-pane"><div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magni similique dolores ab exercitationem sint tempora eius magnam est dignissimos cumque ad id excepturi voluptatibus esse molestiae ut sit voluptates quod!</div>
<div>Iure quibusdam eum eveniet autem veritatis aliquid neque repellat labore obcaecati modi facilis eaque in officia magni officiis tempora itaque eos natus quod quidem quam dolorum nobis distinctio possimus quo.</div>
<div>Error iure ut nihil voluptate perspiciatis ipsam ex officia quis eveniet reprehenderit hic quod voluptas? Iusto dolore ad fugit ullam quos quis iure vitae quas vero nam repudiandae modi eaque.</div>
<div>Sed eos dolorem dolore pariatur perspiciatis atque aspernatur autem cumque perferendis quae ab quisquam quasi hic magnam animi tenetur incidunt impedit nesciunt consequuntur sequi minima ad rerum aperiam dolores veritatis.</div></div>
</div>
<br />
<br />
<div class="topic">
<div class="topic-content text">
@ -238,4 +16,5 @@ jQuery(document).ready(function($) {
</div>
</div>
{include file='footer.tpl'}

View file

@ -21,7 +21,7 @@
-o-user-select: none;
user-select: none;
}
.dropdown.open { background: #0088cc; color: #fff; }
/* Dropdown toggle */
.dropdown-toggle {
@ -40,7 +40,6 @@
border: 4px solid rgba(255,255,255,0);
border-top-color: #fff;
}
.dropdown-toggle.open { background: #0088cc; color: #fff; }
.dropdown-toggle.open:after { border-top-color: #fff; }

View file

@ -83,9 +83,4 @@
.nav.nav-main { background: #222; background: -moz-linear-gradient(top, #333 0%, #222 100%); }
.nav.nav-main li a { color: #ddd; }
.nav.nav-main li a:hover { background: #333; }
.nav.nav-main li:first-child a { border-radius: 4px 0 0 4px; }
.nav.nav-main li:last-child a { border-radius: 0 4px 4px 0; }
.nav.nav-main li.active a { background: #3a3a3a; color: #bbb; -webkit-box-shadow: 0 0 7px rgba(0,0,0,.15) inset; box-shadow: 0 0 7px rgba(0,0,0,.15) inset; }
/* Dropdown support */
.nav.nav-main .dropdown-toggle.open:hover { background: #0088cc; }
.nav.nav-main li.active a { background: #3a3a3a; color: #bbb; -webkit-box-shadow: 0 0 7px rgba(0,0,0,.15) inset; box-shadow: 0 0 7px rgba(0,0,0,.15) inset; }

View file

@ -0,0 +1,47 @@
jQuery(document).ready(function($) {
$('html').removeClass('no-js');
// Определение браузера
if ($.browser.opera) {
$('body').addClass('opera opera' + parseInt($.browser.version));
}
if ($.browser.mozilla) {
$('body').addClass('mozilla mozilla' + parseInt($.browser.version));
}
if ($.browser.webkit) {
$('body').addClass('webkit webkit' + parseInt($.browser.version));
}
if ($.browser.msie) {
$('body').addClass('ie');
if (parseInt($.browser.version) > 8) {
$('body').addClass('ie' + parseInt($.browser.version));
}
}
// Фикс бага с z-index у встроенных видео
$("iframe").each(function(){
var ifr_source = $(this).attr('src');
if(ifr_source) {
var wmode = "wmode=opaque";
if (ifr_source.indexOf('?') != -1)
$(this).attr('src',ifr_source+'&'+wmode);
else
$(this).attr('src',ifr_source+'?'+wmode);
}
});
/**
* IE
* TODO: Check browser
*/
// эмуляция border-sizing в IE
var inputs = $('input.input-text, textarea');
ls.ie.bordersizing(inputs);
// эмуляция placeholder'ов в IE
inputs.placeholder();
});

View file

@ -1,8 +1,11 @@
{assign var="noSidebar" value=true}
{include file='header.tpl'}
<h3>{$aLang.admin_list_blogcategory}</h3>
<h2 class="page-header"><a href="{router page='admin'}">{$aLang.admin_header}</a> <span>&raquo;</span> {$aLang.admin_list_blogcategory}</h2>
<a href="#" data-type="modal-toggle" data-option-url="{router page='admin'}blogcategory/modal-add/">{$aLang.admin_blogcategory_add}</a>
<button class="button button-primary" data-type="modal-toggle" data-option-url="{router page='admin'}blogcategory/modal-add/">{$aLang.admin_blogcategory_add}</button>
<br />
<br />
<table cellspacing="0" class="table">
<thead>
@ -17,18 +20,18 @@
{foreach from=$aCategories item=oCategory}
<tr>
<td>
<img src="{$aTemplateWebPathPlugin.page|cat:'images/'}{if $oCategory->getLevel()==0}folder{else}document{/if}.gif" alt="" title="" style="margin-left: {$oCategory->getLevel()*20}px;" />
<i class="icon-file" style="margin-left: {$oCategory->getLevel()*20}px;"></i>
<a href="{$oCategory->getUrlWeb()}" border="0">{$oCategory->getTitle()|escape:'html'}</a>
</td>
<td>
/{$oCategory->getUrlFull()}/
</td>
<td align="center">
<a href="#" data-type="modal-toggle" data-option-url="{router page='admin'}blogcategory/modal-edit/" data-param-id="{$oCategory->getId()}"><img src="{$aTemplateWebPathPlugin.page|cat:'images/edit.png'}" /></a>
<a href="{router page='admin'}blogcategory/delete/{$oCategory->getId()}/?security_ls_key={$LIVESTREET_SECURITY_KEY}" onclick="return confirm('«{$oCategory->getTitle()|escape:'html'}»: {$aLang.admin_blogcategory_items_delete_confirm}');"><img src="{$aTemplateWebPathPlugin.page|cat:'images/delete.png'}" /></a>
<a href="#" data-type="modal-toggle" data-option-url="{router page='admin'}blogcategory/modal-edit/" data-param-id="{$oCategory->getId()}" class="icon-edit"></a>
<a href="{router page='admin'}blogcategory/delete/{$oCategory->getId()}/?security_ls_key={$LIVESTREET_SECURITY_KEY}" onclick="return confirm('«{$oCategory->getTitle()|escape:'html'}»: {$aLang.admin_blogcategory_items_delete_confirm}');" class="icon-remove"></a>
<a href="{router page='admin'}blogcategory/sort/{$oCategory->getId()}/?security_ls_key={$LIVESTREET_SECURITY_KEY}"><img src="{$aTemplateWebPathPlugin.page|cat:'images/up.png'}" /></a>
<a href="{router page='admin'}blogcategory/sort/{$oCategory->getId()}/down/?security_ls_key={$LIVESTREET_SECURITY_KEY}"><img src="{$aTemplateWebPathPlugin.page|cat:'images/down.png'}" /></a>
<a href="{router page='admin'}blogcategory/sort/{$oCategory->getId()}/?security_ls_key={$LIVESTREET_SECURITY_KEY}" class="icon-arrow-up"></a>
<a href="{router page='admin'}blogcategory/sort/{$oCategory->getId()}/down/?security_ls_key={$LIVESTREET_SECURITY_KEY}" class="icon-arrow-down"></a>
</td>
</tr>
{/foreach}

View file

@ -1,8 +1,5 @@
{extends file='modals/modal_base.tpl'}
{block name='options'}
{assign var='noFooter' value=true}
{/block}
{block name='id'}modal-category-add{/block}
{block name='class'}js-modal-default{/block}
@ -16,31 +13,32 @@
{block name='content'}
<form action="" method="post" id="form-category-blog-add" onsubmit="ls.admin.{if $oCategory}editCategoryBlog{else}addCategoryBlog{/if}('form-category-blog-add'); return false;">
{$aLang.admin_blogcategory_form_field_parent}<br/>
<select name="pid">
<p><label for="pid">{$aLang.admin_blogcategory_form_field_parent}</label>
<select name="pid" id="pid" class="width-full">
<option value="0"></option>
{foreach from=$aCategories item=oCategoryItem}
<option {if $oCategory and $oCategory->getPid()==$oCategoryItem->getId()}selected="selected"{/if} style="margin-left: {$oCategoryItem->getLevel()*20}px;" value="{$oCategoryItem->getId()}">{$oCategoryItem->getTitle()|escape:'html'}</option>
{/foreach}
</select>
<br/>
</select></p>
<p><label for="title">{$aLang.admin_blogcategory_form_field_title}</label>
<input type="text" name="title" id="title" class="width-full" value="{if $oCategory}{$oCategory->getTitle()}{/if}"></p>
<p><label for="url">{$aLang.admin_blogcategory_form_field_url}</label>
<input type="text" name="url" id="url" class="width-full" value="{if $oCategory}{$oCategory->getUrl()}{/if}"></p>
<label for="sort">{$aLang.admin_blogcategory_form_field_sort}</label>
<input type="text" name="sort" id="sort" class="width-full" value="{if $oCategory}{$oCategory->getSort()}{/if}">
{$aLang.admin_blogcategory_form_field_title}<br/>
<input type="text" name="title" value="{if $oCategory}{$oCategory->getTitle()}{/if}">
<br/>
{$aLang.admin_blogcategory_form_field_url}<br/>
<input type="text" name="url" value="{if $oCategory}{$oCategory->getUrl()}{/if}">
<br/>
{$aLang.admin_blogcategory_form_field_sort}<br/>
<input type="text" name="sort" value="{if $oCategory}{$oCategory->getSort()}{/if}">
<br/>
<button type="submit" name="submit" class="button button-primary">{if $oCategory}{$aLang.admin_blogcategory_form_edit_submit}{else}{$aLang.admin_blogcategory_form_add_submit}{/if}</button>
{if $oCategory}
<input type="hidden" name="id" value="{$oCategory->getId()}">
{/if}
</form>
{/block}
{block name='footer'}
<button type="submit" name="submit" class="button button-primary" onclick="jQuery('#form-category-blog-add').submit()">
{if $oCategory}{$aLang.admin_blogcategory_form_edit_submit}{else}{$aLang.admin_blogcategory_form_add_submit}{/if}
</button>
{/block}

View file

@ -1,12 +1,16 @@
{if $aBlogCategories}
<section class="block">
<section class="block block-type-blog-categories">
<header class="block-header">
<h3>{$aLang.block_category_blog}</h3>
{if $oUserCurrent and $oUserCurrent->isAdministrator()}
<a href="{router page="admin"}blogcategory/" title="{$aLang.admin_list_blogcategory}" class="icon-cog blog-categories-admin"></a>
{/if}
</header>
<div class="block-content">
<ul>
<ul class="blog-category-list">
<li {if !$oBlogCategoryCurrent}class="active"{/if}><a href="{router page='blogs'}">{$aLang.block_category_blog_all} ({$iCountBlogsAll})</a></li>
{foreach from=$aBlogCategories item=oCategory}
<li {if $oBlogCategoryCurrent and $oBlogCategoryCurrent->getId()==$oCategory->getId()}class="active"{/if}><a style="margin-left: {$oCategory->getLevel()*20}px;" href="{$oCategory->getUrlWeb()}">{$oCategory->getTitle()|escape:'html'} ({$oCategory->getCountBlogs()})</a></li>

View file

@ -55,4 +55,11 @@
.block.block-type-foldable .block-content { display: none; background: #fafafa; }
.block.block-type-talk-search { margin-bottom: 10px; }
.block.block-type-talk-friends { margin-bottom: 10px; }
.block.block-type-talk-friends { margin-bottom: 10px; }
/* Block Type - Blog Categories */
.block.block-type-blog-categories .block-header .blog-categories-admin { position: absolute; top: 13px; right: 13px; }
.block.block-type-blog-categories li a { display: block; margin-bottom: 1px; padding: 5px 9px; }
.block.block-type-blog-categories li.active a { color: #fff; text-decoration: none; background: #5560D5; }

View file

@ -1,247 +1,208 @@
jQuery(document).ready(function($){
// Хук начала инициализации javascript-составляющих шаблона
ls.hook.run('ls_template_init_start',[],window);
$('html').removeClass('no-js');
// Определение браузера
if ($.browser.opera) {
$('body').addClass('opera opera' + parseInt($.browser.version));
}
if ($.browser.mozilla) {
$('body').addClass('mozilla mozilla' + parseInt($.browser.version));
}
if ($.browser.webkit) {
$('body').addClass('webkit webkit' + parseInt($.browser.version));
}
if ($.browser.msie) {
$('body').addClass('ie');
if (parseInt($.browser.version) > 8) {
$('body').addClass('ie' + parseInt($.browser.version));
}
}
/**
* Popovers
*/
$(document).popover({ selector: '.js-popover-default' });
/**
* Modals
*/
$('.js-modal-default').modal();
/**
* Datepicker
*/
$('.date-picker').datepicker();
/**
* Dropdowns
*/
$('.js-dropdown-default').dropdown();
/**
* Tooltips
*/
$('.js-tooltip').tooltip();
$('.js-title-talk').tooltip({
alignX: 'left',
alignY: 'center'
});
$('.js-tip-help').tooltip({
alignX: 'right',
alignY: 'center'
});
if (ls.registry.get('block_stream_show_tip')) {
$(document).tooltip({
selector: '.js-title-comment, .js-title-topic',
alignX: 'left',
alignY: 'center',
delay: 1500
});
}
/**
* Autocomplete
*/
ls.autocomplete.add($(".autocomplete-tags-sep"), aRouter['ajax']+'autocompleter/tag/', true);
ls.autocomplete.add($(".autocomplete-tags"), aRouter['ajax']+'autocompleter/tag/', false);
ls.autocomplete.add($(".autocomplete-users-sep"), aRouter['ajax']+'autocompleter/user/', true);
ls.autocomplete.add($(".autocomplete-users"), aRouter['ajax']+'autocompleter/user/', false);
/**
* Scroll
*/
$(window)._scrollable();
/**
* Toolbar
*/
ls.toolbar.topic.init(); // Тул-бар топиков
ls.toolbar.up.init(); // Кнопка "UP"
/**
* Code highlight
*/
prettyPrint();
/**
* Blocks
*/
ls.blocks.init('stream',{group_items: true, group_min: 3});
ls.blocks.init('blogs');
ls.blocks.initSwitch('tags');
ls.blocks.initSwitch('upload-img');
ls.blocks.initSwitch('favourite-topic-tags');
ls.blocks.initSwitch('popup-login');
/**
* Misc
*/
// Фикс бага с z-index у встроенных видео
$("iframe").each(function(){
var ifr_source = $(this).attr('src');
if(ifr_source) {
var wmode = "wmode=opaque";
if (ifr_source.indexOf('?') != -1)
$(this).attr('src',ifr_source+'&'+wmode);
else
$(this).attr('src',ifr_source+'?'+wmode);
}
});
/**
* Auth modal
*/
$('.js-registration-form-show').click(function(){
if ($('[data-option-target=tab-pane-registration]').length) {
$('#modal-login').modal('option', 'onShow', function () { $('[data-option-target=tab-pane-registration]').tab('activate') });
$('#modal-login').modal('show');
} else {
window.location=aRouter.registration;
}
return false;
});
$('.js-login-form-show').click(function(){
if ($('[data-option-target=tab-pane-login]').length) {
$('#modal-login').modal('option', 'onShow', function () { $('[data-option-target=tab-pane-login]').tab('activate') });
$('#modal-login').modal('show');
} else {
window.location=aRouter.login;
}
return false;
});
// Поиск по тегам
$('.js-tag-search-form').submit(function(){
var val=$(this).find('.js-tag-search').val();
if (val) {
window.location = aRouter['tag']+encodeURIComponent(val)+'/';
}
return false;
});
// комментарии
ls.comments.options.folding = false;
ls.comments.init();
// избранное
ls.hook.add('ls_favourite_toggle_after',function(idTarget,objFavourite,type,params,result){
$('#fav_count_'+type+'_'+idTarget).text((result.iCount>0) ? result.iCount : '');
});
/****************
* TALK
*/
// Добавляем или удаляем друга из списка получателей
$('#friends input:checkbox').change(function(){
ls.talk.toggleRecipient($('#'+$(this).attr('id')+'_label').text(), $(this).attr('checked'));
});
// Добавляем всех друзей в список получателей
$('#friend_check_all').click(function(){
$('#friends input:checkbox').each(function(index, item){
ls.talk.toggleRecipient($('#'+$(item).attr('id')+'_label').text(), true);
$(item).attr('checked', true);
});
return false;
});
// Удаляем всех друзей из списка получателей
$('#friend_uncheck_all').click(function(){
$('#friends input:checkbox').each(function(index, item){
ls.talk.toggleRecipient($('#'+$(item).attr('id')+'_label').text(), false);
$(item).attr('checked', false);
});
return false;
});
// Удаляем пользователя из черного списка
$("#black_list_block").delegate("a.delete", "click", function(){
ls.talk.removeFromBlackList(this);
return false;
});
// Удаляем пользователя из переписки
$("#speaker_list_block").delegate("a.delete", "click", function(){
ls.talk.removeFromTalk(this, $('#talk_id').val());
return false;
});
// Help-tags link
$('.js-tags-help-link').click(function(){
var target=ls.registry.get('tags-help-target-id');
if (!target || !$('#'+target).length) {
return false;
}
target=$('#'+target);
if ($(this).data('insert')) {
var s=$(this).data('insert');
} else {
var s=$(this).text();
}
$.markItUp({target: target, replaceWith: s});
return false;
});
/**
* IE
* TODO: Check browser
*/
// эмуляция border-sizing в IE
var inputs = $('input.input-text, textarea');
ls.ie.bordersizing(inputs);
// эмуляция placeholder'ов в IE
inputs.placeholder();
// Хук конца инициализации javascript-составляющих шаблона
ls.hook.run('ls_template_init_end',[],window);
jQuery(document).ready(function($){
// Хук начала инициализации javascript-составляющих шаблона
ls.hook.run('ls_template_init_start',[],window);
/**
* Popovers
*/
$(document).popover({ selector: '.js-popover-default' });
/**
* Modals
*/
$('.js-modal-default').modal();
/**
* Datepicker
*/
$('.date-picker').datepicker();
/**
* Dropdowns
*/
$('.js-dropdown-default').dropdown();
/**
* Tooltips
*/
$('.js-tooltip').tooltip();
$('.js-title-talk').tooltip({
alignX: 'left',
alignY: 'center'
});
$('.js-tip-help').tooltip({
alignX: 'right',
alignY: 'center'
});
if (ls.registry.get('block_stream_show_tip')) {
$(document).tooltip({
selector: '.js-title-comment, .js-title-topic',
alignX: 'left',
alignY: 'center',
delay: 1500
});
}
/**
* Autocomplete
*/
ls.autocomplete.add($(".autocomplete-tags-sep"), aRouter['ajax']+'autocompleter/tag/', true);
ls.autocomplete.add($(".autocomplete-tags"), aRouter['ajax']+'autocompleter/tag/', false);
ls.autocomplete.add($(".autocomplete-users-sep"), aRouter['ajax']+'autocompleter/user/', true);
ls.autocomplete.add($(".autocomplete-users"), aRouter['ajax']+'autocompleter/user/', false);
/**
* Scroll
*/
$(window)._scrollable();
/**
* Toolbar
*/
ls.toolbar.topic.init(); // Тул-бар топиков
ls.toolbar.up.init(); // Кнопка "UP"
/**
* Code highlight
*/
prettyPrint();
/**
* Blocks
*/
ls.blocks.init('stream',{group_items: true, group_min: 3});
ls.blocks.init('blogs');
ls.blocks.initSwitch('tags');
ls.blocks.initSwitch('upload-img');
ls.blocks.initSwitch('favourite-topic-tags');
ls.blocks.initSwitch('popup-login');
/**
* Auth modal
*/
$('.js-registration-form-show').click(function(){
if ($('[data-option-target=tab-pane-registration]').length) {
$('#modal-login').modal('option', 'onShow', function () { $('[data-option-target=tab-pane-registration]').tab('activate') });
$('#modal-login').modal('show');
} else {
window.location=aRouter.registration;
}
return false;
});
$('.js-login-form-show').click(function(){
if ($('[data-option-target=tab-pane-login]').length) {
$('#modal-login').modal('option', 'onShow', function () { $('[data-option-target=tab-pane-login]').tab('activate') });
$('#modal-login').modal('show');
} else {
window.location=aRouter.login;
}
return false;
});
// Поиск по тегам
$('.js-tag-search-form').submit(function(){
var val=$(this).find('.js-tag-search').val();
if (val) {
window.location = aRouter['tag']+encodeURIComponent(val)+'/';
}
return false;
});
// комментарии
ls.comments.options.folding = false;
ls.comments.init();
// избранное
ls.hook.add('ls_favourite_toggle_after',function(idTarget,objFavourite,type,params,result){
$('#fav_count_'+type+'_'+idTarget).text((result.iCount>0) ? result.iCount : '');
});
/****************
* TALK
*/
// Добавляем или удаляем друга из списка получателей
$('#friends input:checkbox').change(function(){
ls.talk.toggleRecipient($('#'+$(this).attr('id')+'_label').text(), $(this).attr('checked'));
});
// Добавляем всех друзей в список получателей
$('#friend_check_all').click(function(){
$('#friends input:checkbox').each(function(index, item){
ls.talk.toggleRecipient($('#'+$(item).attr('id')+'_label').text(), true);
$(item).attr('checked', true);
});
return false;
});
// Удаляем всех друзей из списка получателей
$('#friend_uncheck_all').click(function(){
$('#friends input:checkbox').each(function(index, item){
ls.talk.toggleRecipient($('#'+$(item).attr('id')+'_label').text(), false);
$(item).attr('checked', false);
});
return false;
});
// Удаляем пользователя из черного списка
$("#black_list_block").delegate("a.delete", "click", function(){
ls.talk.removeFromBlackList(this);
return false;
});
// Удаляем пользователя из переписки
$("#speaker_list_block").delegate("a.delete", "click", function(){
ls.talk.removeFromTalk(this, $('#talk_id').val());
return false;
});
// Help-tags link
$('.js-tags-help-link').click(function(){
var target=ls.registry.get('tags-help-target-id');
if (!target || !$('#'+target).length) {
return false;
}
target=$('#'+target);
if ($(this).data('insert')) {
var s=$(this).data('insert');
} else {
var s=$(this).text();
}
$.markItUp({target: target, replaceWith: s});
return false;
});
/**
* IE
* TODO: Check browser
*/
// эмуляция border-sizing в IE
var inputs = $('input.input-text, textarea');
ls.ie.bordersizing(inputs);
// эмуляция placeholder'ов в IE
inputs.placeholder();
// Хук конца инициализации javascript-составляющих шаблона
ls.hook.run('ls_template_init_end',[],window);
});

View file

@ -21,7 +21,7 @@ $config['view']['grid']['fluid_max_width'] = 1400;
$config['view']['grid']['fixed_width'] = 1000;
$config['head']['default']['js'] = Config::Get('head.default.js');
$config['head']['default']['js'][] = '___path.static.skin___/js/template.js';
$config['head']['default']['js'][] = '___path.static.skin___/js/init.js';
$config['head']['default']['css'] = array_merge(Config::Get('head.default.css'), array(
// Template styles

View file

@ -1,8 +1,11 @@
{assign var="noSidebar" value=true}
{include file='header.tpl'}
<h3>{$aLang.admin_list_blogcategory}</h3>
<h2 class="page-header"><a href="{router page='admin'}">{$aLang.admin_header}</a> <span>&raquo;</span> {$aLang.admin_list_blogcategory}</h2>
<a href="#" data-type="modal-toggle" data-option-url="{router page='admin'}blogcategory/modal-add/">{$aLang.admin_blogcategory_add}</a>
<button class="button button-primary" data-type="modal-toggle" data-option-url="{router page='admin'}blogcategory/modal-add/">{$aLang.admin_blogcategory_add}</button>
<br />
<br />
<table cellspacing="0" class="table">
<thead>
@ -17,18 +20,18 @@
{foreach from=$aCategories item=oCategory}
<tr>
<td>
<img src="{$aTemplateWebPathPlugin.page|cat:'images/'}{if $oCategory->getLevel()==0}folder{else}document{/if}.gif" alt="" title="" style="margin-left: {$oCategory->getLevel()*20}px;" />
<i class="icon-file" style="margin-left: {$oCategory->getLevel()*20}px;"></i>
<a href="{$oCategory->getUrlWeb()}" border="0">{$oCategory->getTitle()|escape:'html'}</a>
</td>
<td>
/{$oCategory->getUrlFull()}/
</td>
<td align="center">
<a href="#" data-type="modal-toggle" data-option-url="{router page='admin'}blogcategory/modal-edit/" data-param-id="{$oCategory->getId()}"><img src="{$aTemplateWebPathPlugin.page|cat:'images/edit.png'}" /></a>
<a href="{router page='admin'}blogcategory/delete/{$oCategory->getId()}/?security_ls_key={$LIVESTREET_SECURITY_KEY}" onclick="return confirm('«{$oCategory->getTitle()|escape:'html'}»: {$aLang.admin_blogcategory_items_delete_confirm}');"><img src="{$aTemplateWebPathPlugin.page|cat:'images/delete.png'}" /></a>
<a href="#" data-type="modal-toggle" data-option-url="{router page='admin'}blogcategory/modal-edit/" data-param-id="{$oCategory->getId()}" class="icon-edit"></a>
<a href="{router page='admin'}blogcategory/delete/{$oCategory->getId()}/?security_ls_key={$LIVESTREET_SECURITY_KEY}" onclick="return confirm('«{$oCategory->getTitle()|escape:'html'}»: {$aLang.admin_blogcategory_items_delete_confirm}');" class="icon-remove"></a>
<a href="{router page='admin'}blogcategory/sort/{$oCategory->getId()}/?security_ls_key={$LIVESTREET_SECURITY_KEY}"><img src="{$aTemplateWebPathPlugin.page|cat:'images/up.png'}" /></a>
<a href="{router page='admin'}blogcategory/sort/{$oCategory->getId()}/down/?security_ls_key={$LIVESTREET_SECURITY_KEY}"><img src="{$aTemplateWebPathPlugin.page|cat:'images/down.png'}" /></a>
<a href="{router page='admin'}blogcategory/sort/{$oCategory->getId()}/?security_ls_key={$LIVESTREET_SECURITY_KEY}" class="icon-arrow-up"></a>
<a href="{router page='admin'}blogcategory/sort/{$oCategory->getId()}/down/?security_ls_key={$LIVESTREET_SECURITY_KEY}" class="icon-arrow-down"></a>
</td>
</tr>
{/foreach}

View file

@ -1,8 +1,5 @@
{extends file='modals/modal_base.tpl'}
{block name='options'}
{assign var='noFooter' value=true}
{/block}
{block name='id'}modal-category-add{/block}
{block name='class'}js-modal-default{/block}
@ -16,31 +13,32 @@
{block name='content'}
<form action="" method="post" id="form-category-blog-add" onsubmit="ls.admin.{if $oCategory}editCategoryBlog{else}addCategoryBlog{/if}('form-category-blog-add'); return false;">
{$aLang.admin_blogcategory_form_field_parent}<br/>
<select name="pid">
<p><label for="pid">{$aLang.admin_blogcategory_form_field_parent}</label>
<select name="pid" id="pid" class="width-full">
<option value="0"></option>
{foreach from=$aCategories item=oCategoryItem}
<option {if $oCategory and $oCategory->getPid()==$oCategoryItem->getId()}selected="selected"{/if} style="margin-left: {$oCategoryItem->getLevel()*20}px;" value="{$oCategoryItem->getId()}">{$oCategoryItem->getTitle()|escape:'html'}</option>
{/foreach}
</select>
<br/>
</select></p>
<p><label for="title">{$aLang.admin_blogcategory_form_field_title}</label>
<input type="text" name="title" id="title" class="width-full" value="{if $oCategory}{$oCategory->getTitle()}{/if}"></p>
<p><label for="url">{$aLang.admin_blogcategory_form_field_url}</label>
<input type="text" name="url" id="url" class="width-full" value="{if $oCategory}{$oCategory->getUrl()}{/if}"></p>
<label for="sort">{$aLang.admin_blogcategory_form_field_sort}</label>
<input type="text" name="sort" id="sort" class="width-full" value="{if $oCategory}{$oCategory->getSort()}{/if}">
{$aLang.admin_blogcategory_form_field_title}<br/>
<input type="text" name="title" value="{if $oCategory}{$oCategory->getTitle()}{/if}">
<br/>
{$aLang.admin_blogcategory_form_field_url}<br/>
<input type="text" name="url" value="{if $oCategory}{$oCategory->getUrl()}{/if}">
<br/>
{$aLang.admin_blogcategory_form_field_sort}<br/>
<input type="text" name="sort" value="{if $oCategory}{$oCategory->getSort()}{/if}">
<br/>
<button type="submit" name="submit" class="button button-primary">{if $oCategory}{$aLang.admin_blogcategory_form_edit_submit}{else}{$aLang.admin_blogcategory_form_add_submit}{/if}</button>
{if $oCategory}
<input type="hidden" name="id" value="{$oCategory->getId()}">
{/if}
</form>
{/block}
{block name='footer'}
<button type="submit" name="submit" class="button button-primary" onclick="jQuery('#form-category-blog-add').submit()">
{if $oCategory}{$aLang.admin_blogcategory_form_edit_submit}{else}{$aLang.admin_blogcategory_form_add_submit}{/if}
</button>
{/block}

View file

@ -1,12 +1,16 @@
{if $aBlogCategories}
<section class="block">
<section class="block block-type-blog-categories">
<header class="block-header">
<h3>{$aLang.block_category_blog}</h3>
{if $oUserCurrent and $oUserCurrent->isAdministrator()}
<a href="{router page="admin"}blogcategory/" title="{$aLang.admin_list_blogcategory}" class="icon-cog blog-categories-admin"></a>
{/if}
</header>
<div class="block-content">
<ul>
<ul class="blog-category-list">
<li {if !$oBlogCategoryCurrent}class="active"{/if}><a href="{router page='blogs'}">{$aLang.block_category_blog_all} ({$iCountBlogsAll})</a></li>
{foreach from=$aBlogCategories item=oCategory}
<li {if $oBlogCategoryCurrent and $oBlogCategoryCurrent->getId()==$oCategory->getId()}class="active"{/if}><a style="margin-left: {$oCategory->getLevel()*20}px;" href="{$oCategory->getUrlWeb()}">{$oCategory->getTitle()|escape:'html'} ({$oCategory->getCountBlogs()})</a></li>

View file

@ -119,3 +119,10 @@
/* Block Type - Tags */
.block.block-type-tags .search-form-wrapper { margin-bottom: 15px; }
/* Block Type - Blog Categories */
.block.block-type-blog-categories .block-header .blog-categories-admin { position: absolute; top: 7px; right: 0; opacity: .3; }
.block.block-type-blog-categories .block-header .blog-categories-admin:hover { opacity: 1; }
.block.block-type-blog-categories li a { display: block; margin-bottom: 1px; padding: 3px 7px; border-radius: 3px; }
.block.block-type-blog-categories li.active a { color: #fff; text-decoration: none; background: #3ABCFF; }

View file

@ -43,7 +43,8 @@
.dropdown-menu > li.divider { height: 0; border-top: 1px solid #e1e1e1; margin: 5px 0; }
/* User menu
-------------------------------------------*/
.dropdown-user-menu { width: 203px; display: none; position: absolute; background: #1d1d1d; border: none; border-top: 1px solid #000; border-radius: 0 0 10px 10px; -webkit-box-shadow: 0 0 7px rgba(0, 0, 0, .5); box-shadow: 0 0 7px rgba(0, 0, 0, .5); z-index: 30; }
.dropdown-user-menu li { border-bottom: 1px solid #000; border-top: 1px solid #393939; position: relative; }
.dropdown-user-menu li:last-child { border-bottom: none; }
@ -68,7 +69,8 @@
.dropdown-user-menu li.item-messages .new { position: absolute; top: 15px; right: 7px; cursor: pointer; color: #fff; border-radius: 15px; border: 2px solid #eabe21; line-height: 1em; padding: 2px 7px 3px; }
/* Create
-------------------------------------------*/
.dropdown-create { margin-right: 120px; line-height: 23px; }
.dropdown-create a { font-weight: normal; }
.dropdown-create h2 a { text-transform: lowercase; display: inline-block; }
@ -81,10 +83,13 @@
.dropdown-menu-create li.active a { color: #aaa; border-color: #aaa; }
.dropdown-menu.dropdown-nav-main { background: #090909; border: 1px solid #333; }
.dropdown-menu.dropdown-nav-main li a { color: #fff; text-decoration: none; }
.dropdown-menu.dropdown-nav-main li a:hover { color: #ddd; }
.dropdown-menu.dropdown-nav-main li.active a { color: #555; }
/* Nav main
-------------------------------------------*/
.nav.nav-main .dropdown-nav-main { display: inline; border: 1px solid #595959; border-radius: 3px; padding: 0 5px 2px; position: relative; padding-right: 15px; }
.nav.nav-main .dropdown-nav-main.dropdown-toggle { padding-right: 16px !important; }
.nav.nav-main .dropdown-nav-main.dropdown-toggle:after { border-width: 3px; right: 5px; }
.nav.nav-pills.nav-pills-dropdown { position: absolute; top: 0; right: 0; margin: 0; display: none; }
.nav.nav-pills.nav-pills-dropdown li { margin: 0; }
.dropdown-menu.dropdown-menu-nav-main { background: #090909; border: 1px solid #333; }
.dropdown-menu.dropdown-menu-nav-main li a { color: #cfcfcf; text-decoration: none; }
.dropdown-menu.dropdown-menu-nav-main li a:hover { color: #aaa; background: none; }
.dropdown-menu.dropdown-menu-nav-main li.active a { color: #aed6e9; background: none; }

View file

@ -103,14 +103,8 @@
.nav.nav-main li:last-child { margin-right: 0; }
.nav.nav-main li a { color: #cfcfcf; text-decoration: none; padding: 0; }
.nav.nav-main li a:hover { color: #aaa; background: none; }
.nav.nav-main li i { display: none; position: absolute; bottom: 0; left: 50%; margin-left: -2px; width: 0; height: 0; border: 3px solid transparent; border-bottom-color: #fff; }
.nav.nav-main li.active i { display: block; }
.nav.nav-main li.active a { color: #aed6e9; background: none; }
.nav.nav-main li.nav-main-more { display: none; }
.nav.nav-main li.nav-main-more a { border: 1px solid #595959; border-radius: 3px; padding: 0 5px 2px; position: relative; padding-right: 15px; }
.nav.nav-main li.nav-main-more a:before { content: ''; position: absolute; top: 8px; right: 5px; width: 0; height: 0; border: 3px solid #fff; border-color: #fff transparent transparent transparent; }
/* Nav Profile */
.nav.nav-profile { margin-bottom: 15px; }

View file

@ -11,10 +11,17 @@
{hook run='main_menu_item'}
<li class="nav-main-more"><a href="#" id="dropdown-mainmenu-trigger" onclick="return false">{$aLang.more}</a></li>
<li id="nav-main-more">
<a href="#"
id="dropdown-mainmenu-trigger"
class="dropdown-nav-main dropdown-toggle js-dropdown-default"
data-type="dropdown-toggle"
data-option-target="dropdown-mainmenu-menu"
data-option-align-x="right">{$aLang.more}</a>
</li>
</ul>
<ul class="dropdown-nav-main dropdown-menu" id="dropdown-mainmenu-menu"></ul>
<ul class="dropdown-menu dropdown-menu-nav-main" id="dropdown-mainmenu-menu"></ul>
{hook run='main_menu'}

View file

@ -2,25 +2,6 @@ jQuery(document).ready(function($){
// Хук начала инициализации javascript-составляющих шаблона
ls.hook.run('ls_template_init_start',[],window);
$('html').removeClass('no-js');
// Определение браузера
if ($.browser.opera) {
$('body').addClass('opera opera' + parseInt($.browser.version));
}
if ($.browser.mozilla) {
$('body').addClass('mozilla mozilla' + parseInt($.browser.version));
}
if ($.browser.webkit) {
$('body').addClass('webkit webkit' + parseInt($.browser.version));
}
if ($.browser.msie) {
$('body').addClass('ie');
if (parseInt($.browser.version) > 8) {
$('body').addClass('ie' + parseInt($.browser.version));
}
}
/**
* Modals
@ -150,25 +131,6 @@ jQuery(document).ready(function($){
ls.blocks.initSwitch('popup-login');
/**
* Misc
*/
// Фикс бага с z-index у встроенных видео
$("iframe").each(function(){
var ifr_source = $(this).attr('src');
if(ifr_source) {
var wmode = "wmode=opaque";
if (ifr_source.indexOf('?') != -1)
$(this).attr('src',ifr_source+'&'+wmode);
else
$(this).attr('src',ifr_source+'?'+wmode);
}
});
/**
* Auth modal
*/
@ -205,18 +167,6 @@ jQuery(document).ready(function($){
toolbarPos();
$(window).resize(function(){
toolbarPos();
});
$(window).scroll(function(){
if ($(document).width() <= 1100) {
toolbarPos();
}
});
// блоки
ls.hook.add('ls_blocks_init_navigation_after',function(block,count){
if ($('.js-block-'+block+'-nav').find('li').length >= count) {
@ -397,40 +347,6 @@ jQuery(document).ready(function($){
return false;
});
// Меню
(function(){
var trigger = $('#dropdown-mainmenu-trigger');
if (!trigger.length) {
return;
}
var menu = $('#dropdown-mainmenu-menu');
menu.appendTo('body').css('display', 'none');
trigger.click(function(){
var pos = trigger.offset();
menu.css({ 'left': pos.left, 'top': pos.top + trigger.height() + 10, 'min-width': trigger.outerWidth() });
menu.slideToggle();
trigger.toggleClass('opened');
return false;
});
// Hide menu
$(document).click(function(){
trigger.removeClass('opened');
menu.slideUp();
});
$('body').on('click', '#dropdown-mainmenu-trigger, #dropdown-mainmenu-menu', function(e) {
e.stopPropagation();
});
$(window).resize(function(){
menu.css({ 'left': $('#dropdown-mainmenu-trigger').offset().left });
});
})();
// Инициализация строчки поиска
(function(){
var search_show = $('#search-header-show');
@ -479,24 +395,16 @@ jQuery(document).ready(function($){
return false;
};
/**
* IE
* TODO: Check browser
*/
// эмуляция border-sizing в IE
var inputs = $('input.input-text, textarea');
ls.ie.bordersizing(inputs);
// эмуляция placeholder'ов в IE
inputs.placeholder();
// Хук конца инициализации javascript-составляющих шаблона
ls.hook.run('ls_template_init_end',[],window);
});
/**
* Toolbar
*/
function toolbarPos() {
var $=jQuery;
if ($('#toolbar section').length) {
@ -512,40 +420,64 @@ function toolbarPos() {
}
};
// Группировка не влезающих пунктов в главном меню
jQuery(window).load(function () {
navMainGroup();
jQuery(document).ready(function($) {
toolbarPos();
});
jQuery(window).resize(function () {
navMainGroup();
$(window).resize(function(){
toolbarPos();
});
function navMainGroup() {
var $ = jQuery;
var more_li = $('#nav-main li.nav-main-more');
var li = $('#nav-main li:not(.nav-main-more)');
var width_lis = 0;
var vis_count = 0;
var is_outofbox = false;
$(window).scroll(function(){
if ($(document).width() <= 1100) {
toolbarPos();
}
});
$('#dropdown-mainmenu-menu').hide();
li.each(function(i){
if (!is_outofbox && $(this).offset().top < 10) {
width_lis += $(this).outerWidth(true);
vis_count++;
} else {
is_outofbox = true;
$(this).appendTo('#dropdown-mainmenu-menu');
}
/**
* Nav Main
*
* Группировка не влезающих пунктов в главном меню
*/
(function($) {
"use strict";
function navMainGroup() {
var nav = $('#nav-main'),
ddm = $('#dropdown-mainmenu-menu'),
ddi = nav.find('#nav-main-more'),
currentWidth = 0,
isOutofbox = false;
ddi.hide().find('a').dropdown('hide');
ddm.empty();
nav.find('li').not(ddi).show().each(function() {
var item = $(this);
if ( ! isOutofbox ) {
currentWidth += item.outerWidth(true);
if ( nav.width() - currentWidth < ddi.outerWidth(true) ) {
ddi.show();
isOutofbox = true;
}
}
if (isOutofbox) {
item.hide().clone().show().appendTo(ddm);
}
});
}
$(window).load(function () {
navMainGroup();
});
if ($('#dropdown-mainmenu-menu li').length > 0) {
if ($('#nav-main').width() - width_lis < more_li.width()) {
$( li[vis_count - 1] ).prependTo('#dropdown-mainmenu-menu');
}
more_li.show();
}
}
$(window).resize(function () {
navMainGroup();
});
})(jQuery);

View file

@ -33,7 +33,7 @@ $config['view']['grid']['fixed_width'] = 976;
/* Styles */
$config['head']['default']['js'] = Config::Get('head.default.js');
$config['head']['default']['js'][] = '___path.static.skin___/js/template.js';
$config['head']['default']['js'][] = '___path.static.skin___/js/init.js';
/* JavaScript */
$config['head']['default']['css'] = array_merge(Config::Get('head.default.css'), array(