Version 4.1.2
This commit is contained in:
1 parent
3ba79295ee
commit
28bd025b35
1131 files changed
+63658
-20579
No files matched your search
@@ -18,11 +18,11 @@
|
||||
"do": "",
|
||||
"restriction": "template_manage"
|
||||
},
|
||||
"menu": {
|
||||
"media": {
|
||||
"tab": "cms",
|
||||
"controller": "menu",
|
||||
"controller": "media",
|
||||
"do": "",
|
||||
"restriction": null
|
||||
"restriction": "media_manage"
|
||||
}
|
||||
},
|
||||
"databases": {
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
"template_add_edit": "template_add_edit",
|
||||
"template_delete": "template_delete"
|
||||
},
|
||||
"menu": {
|
||||
"manage": "menu_manage",
|
||||
"add": "menu_add",
|
||||
"edit": "menu_edit",
|
||||
"delete": "menu_delete"
|
||||
"media": {
|
||||
"media_manage": "media_manage",
|
||||
"media_add": "media_add",
|
||||
"media_edit": "media_edit",
|
||||
"media_delete": "media_delete"
|
||||
}
|
||||
},
|
||||
"databases": {
|
||||
|
||||
@@ -1,32 +1,370 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<theme name="Default" author_name="Invision Power Services, Inc" author_url="http://www.invisionpower.com">
|
||||
<template template_key="database_category_articles_entry" template_title="entry" template_desc="" template_location="database" template_group="category_articles" template_params="$record, $database" template_app="" template_type="template"><![CDATA[<article class='cCmsCategoryFeaturedEntry {{if $record->hidden()}}ipsModerated{{endif}}'>
|
||||
<template template_key="database_category_2_column_first_featured_entry" template_title="entry" template_desc="" template_location="database" template_group="category_2_column_first_featured" template_params="$record, $database, $id" template_app="" template_type="template"><![CDATA[{{$size = ( $id ) ? 'tiny' : 'small';}}
|
||||
<div class='{{if $id}}ipsGrid_span6{{else}}ipsGrid_span12{{endif}}'>
|
||||
<article class='cCmsCategoryFeaturedEntry {{if $record->hidden()}}ipsModerated{{endif}}'>
|
||||
<header class='ipsPhotoPanel ipsPhotoPanel_notPhone ipsPhotoPanel_{$size} ipsSpacer_bottom'>
|
||||
{template="userPhoto" app="core" params="$record->author(), $size" group="global"}
|
||||
<div>
|
||||
<h2 class='ipsType_pageTitle'>
|
||||
{{if $record->prefix()}}
|
||||
{template="prefix" group="global" app="core" params="$record->prefix( TRUE ), $record->prefix()"}
|
||||
{{endif}}
|
||||
<a href="{$record->url()}" title="{lang="read_more_about" sprintf="$record->_title"}">
|
||||
{{if $record->unread()}}
|
||||
<span class='ipsItemStatus' data-ipsTooltip title="{lang="cms_unread_record"}"><i class="fa fa-circle"></i></span>
|
||||
{{endif}}
|
||||
{wordbreak="$record->_title"}
|
||||
</a>
|
||||
{{if $record->mapped('pinned') || $record->mapped('featured') || $record->hidden() === -1 || $record->hidden() === 1}}
|
||||
{{if $record->hidden() === -1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$record->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
||||
{{elseif $record->hidden() === 1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
||||
{{endif}}
|
||||
{{if $record->mapped('pinned')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
|
||||
{{endif}}
|
||||
{{if $record->mapped('featured')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
</h2>
|
||||
<p class='ipsType_light ipsType_reset cmsInformation'>
|
||||
{lang="cms_byline" htmlsprintf="$record->author()->link(), $record->container()->url(), $record->container()->_title"}{datetime="$record->record_publish_date"}
|
||||
</p>
|
||||
</div>
|
||||
</header>
|
||||
{{if count( $record->customFieldsForDisplay('listing') )}}
|
||||
<div class='ipsDataItem_meta'>
|
||||
{{foreach $record->customFieldsForDisplay('listing') as $fieldId => $fieldValue}}
|
||||
{{if $fieldValue}}
|
||||
{$fieldValue|raw}
|
||||
{{endif}}
|
||||
{{endforeach}}
|
||||
</div>
|
||||
{{endif}}
|
||||
<section class='ipsType_normal ipsType_richText ipsType_break ipsSpacer_both' data-ipsTruncate data-ipsTruncate-size='7 lines' data-ipsTruncate-type='remove'>
|
||||
{{if $record->record_image}}
|
||||
<div class="cCmsRecord_image">
|
||||
<img class="ipsImage" src="{file="$record->record_image" extension="cms_Records"}">
|
||||
</div>
|
||||
{{endif}}
|
||||
|
||||
{$record->truncated()|raw}
|
||||
</section>
|
||||
{{if count( $record->tags() )}}
|
||||
{template="tags" group="global" app="core" params="$record->tags()"}
|
||||
{{endif}}
|
||||
<ul class='ipsList_inline'>
|
||||
<li><strong><a href='{$record->url()}' title="{lang="read_more_about" sprintf="$record->name"}">{lang="read_more"}</a></strong></li>
|
||||
{{if $record::database()->options['reviews']}}
|
||||
<li>{template="rating" app="core" params="'small', $record->averageReviewRating(), \IPS\Settings::i()->reviews_rating_out_of" group="global"}</li>
|
||||
{{endif}}
|
||||
<li><a href='{$record->url()}#comments' title='{lang="view_comments"}'><i class='fa fa-comment'></i> {lang="num_comments" pluralize="$record->record_comments"}</a></li>
|
||||
<li class='ipsType_light'>{lang="num_views_with_number" pluralize="$record->record_views"}</li>
|
||||
</ul>
|
||||
</article>
|
||||
</div>]]></template>
|
||||
<template template_key="database_category_2_column_first_featured_index" template_title="index" template_desc="" template_location="database" template_group="category_2_column_first_featured" template_params="$database, $articles, $url, $pagination" template_app="" template_type="template"><![CDATA[<div class='ipsPageHeader ipsClearfix ipsSpacer_bottom'>
|
||||
{{if $database->use_categories}}
|
||||
<div class='ipsPos_right ipsResponsive_noFloat'>
|
||||
<a href="{$url->setQueryString('show', 'categories')}" class="ipsButton ipsButton_medium ipsButton_fullWidth ipsButton_link"><i class="fa fa-folder-open"></i> {lang="cms_show_categories"}</a>
|
||||
</div>
|
||||
{{endif}}
|
||||
<h1 class='ipsType_pageTitle'>{$database->_title}</h1>
|
||||
{{if $database->_description}}
|
||||
<div class='ipsPageHeader_info ipsType_light'>
|
||||
{$database->_description}
|
||||
</div>
|
||||
{{endif}}
|
||||
</div>
|
||||
|
||||
{{if $database->can('add') or \IPS\Member::loggedIn()->member_id}}
|
||||
<ul class="ipsToolList ipsToolList_horizontal ipsClearfix ipsSpacer_both ipsResponsive_hidePhone">
|
||||
{{if $database->can('add')}}
|
||||
<li class='ipsToolList_primaryAction'>
|
||||
<a class="ipsButton ipsButton_medium ipsButton_important ipsButton_fullWidth" {{if $database->use_categories}}data-ipsDialog="1" data-ipsDialog-size="narrow" data-ipsDialog-title="{lang="cms_select_category"}"{{endif}} href="{$url->setQueryString( array( 'do' => 'form', 'd' => \IPS\cms\Databases\Dispatcher::i()->databaseId ) )}">{lang="cms_add_new_record_button" sprintf="$database->recordWord( 1 )"}</a>
|
||||
</li>
|
||||
{{endif}}
|
||||
</ul>
|
||||
{{endif}}
|
||||
|
||||
<hr class='ipsHr'>
|
||||
<section class='ipsType_normal ipsSpacer_both'>
|
||||
{{if count($articles)}}
|
||||
{{foreach $articles as $id => $record}}
|
||||
{{if $id == 0}}
|
||||
<div class='ipsGrid ipsGrid_collapsePhone'>
|
||||
{template="entry" app="cms" location="database" group="category_2_column_first_featured" params="$record, $database, 0"}
|
||||
</div>
|
||||
{{else}}
|
||||
{{if $id % 2}}
|
||||
<div class='ipsGrid ipsGrid_collapsePhone cmsCategory2col'>
|
||||
{{endif}}
|
||||
{template="entry" app="cms" location="database" group="category_2_column_first_featured" params="$record, $database, $id"}
|
||||
{{if $id % 2 == 0}}
|
||||
</div>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
{{endforeach}}
|
||||
{{endif}}
|
||||
</section>
|
||||
{{if $database->featured_settings['pagination'] and ( $pagination['pages'] > 1 )}}
|
||||
{template="pagination" app="core" location="global" group="global" params="$url, $pagination['pages'], $pagination['page'], $database->featured_settings['perpage'], TRUE, 'page'"}
|
||||
{{endif}}]]></template>
|
||||
<template template_key="database_category_2_column_image_feature_entry" template_title="entry" template_desc="" template_location="database" template_group="category_2_column_image_feature" template_params="$record, $database, $id" template_app="" template_type="template"><![CDATA[<div class='ipsGrid_span6'>
|
||||
<article class='cCmsCategoryFeaturedEntry {{if $record->hidden()}}ipsModerated{{endif}} cms2ColImageFeature'>
|
||||
{{if $record->record_image}}
|
||||
<div class="cCmsRecord_image">
|
||||
<a href="{$record->url()}" title="{lang="read_more_about" sprintf="$record->_title"}"><img class="ipsImage" src="{file="$record->record_image" extension="cms_Records"}"></a>
|
||||
</div>
|
||||
{{endif}}
|
||||
{{if $record->prefix()}}
|
||||
{template="prefix" group="global" app="core" params="$record->prefix( TRUE ), $record->prefix()"}
|
||||
{{endif}}
|
||||
<h2 class='ipsType_pageTitle'><a href="{$record->url()}" title="{lang="read_more_about" sprintf="$record->_title"}">
|
||||
{wordbreak="$record->_title"}
|
||||
</a></h2>
|
||||
</article>
|
||||
</div>]]></template>
|
||||
<template template_key="database_category_2_column_image_feature_index" template_title="index" template_desc="" template_location="database" template_group="category_2_column_image_feature" template_params="$database, $articles, $url, $pagination" template_app="" template_type="template"><![CDATA[<div class='ipsPageHeader ipsClearfix ipsSpacer_bottom'>
|
||||
{{if $database->use_categories}}
|
||||
<div class='ipsPos_right ipsResponsive_noFloat'>
|
||||
<a href="{$url->setQueryString('show', 'categories')}" class="ipsButton ipsButton_medium ipsButton_fullWidth ipsButton_link"><i class="fa fa-folder-open"></i> {lang="cms_show_categories"}</a>
|
||||
</div>
|
||||
{{endif}}
|
||||
<h1 class='ipsType_pageTitle'>{$database->_title}</h1>
|
||||
{{if $database->_description}}
|
||||
<div class='ipsPageHeader_info ipsType_light'>
|
||||
{$database->_description}
|
||||
</div>
|
||||
{{endif}}
|
||||
</div>
|
||||
|
||||
{{if $database->can('add') or \IPS\Member::loggedIn()->member_id}}
|
||||
<ul class="ipsToolList ipsToolList_horizontal ipsClearfix ipsSpacer_both ipsResponsive_hidePhone">
|
||||
{{if $database->can('add')}}
|
||||
<li class='ipsToolList_primaryAction'>
|
||||
<a class="ipsButton ipsButton_medium ipsButton_important ipsButton_fullWidth" {{if $database->use_categories}}data-ipsDialog="1" data-ipsDialog-size="narrow" data-ipsDialog-title="{lang="cms_select_category"}"{{endif}} href="{$url->setQueryString( array( 'do' => 'form', 'd' => \IPS\cms\Databases\Dispatcher::i()->databaseId ) )}">{lang="cms_add_new_record_button" sprintf="$database->recordWord( 1 )"}</a>
|
||||
</li>
|
||||
{{endif}}
|
||||
</ul>
|
||||
{{endif}}
|
||||
|
||||
<hr class='ipsHr'>
|
||||
<section class='ipsType_normal ipsSpacer_both'>
|
||||
{{if count($articles)}}
|
||||
{{foreach $articles as $id => $record}}
|
||||
{{if $id % 2 == 0}}
|
||||
<div class='ipsGrid ipsGrid_collapsePhone'>
|
||||
{{endif}}
|
||||
{template="entry" app="cms" location="database" group="category_2_column_image_feature" params="$record, $database, $id"}
|
||||
{{if $id % 2 == 1}}
|
||||
</div>
|
||||
{{endif}}
|
||||
{{endforeach}}
|
||||
{{endif}}
|
||||
</section>
|
||||
{{if $database->featured_settings['pagination'] and ( $pagination['pages'] > 1 )}}
|
||||
{template="pagination" app="core" location="global" group="global" params="$url, $pagination['pages'], $pagination['page'], $database->featured_settings['perpage'], TRUE, 'page'"}
|
||||
{{endif}}]]></template>
|
||||
<template template_key="database_category_3_column_first_featured_entry" template_title="entry" template_desc="" template_location="database" template_group="category_3_column_first_featured" template_params="$record, $database, $id" template_app="" template_type="template"><![CDATA[<div class='{{if $id}}ipsGrid_span4{{else}}ipsGrid_span12{{endif}}'>
|
||||
<article class='cCmsCategoryFeaturedEntry {{if $record->hidden()}}ipsModerated{{endif}}'>
|
||||
<header class='{{if $id === 0}}ipsPhotoPanel ipsPhotoPanel_notPhone ipsPhotoPanel_small{{endif}} ipsSpacer_bottom'>
|
||||
{{if $id === 0}}{template="userPhoto" app="core" params="$record->author(), 'small'" group="global"}{{endif}}
|
||||
<div>
|
||||
<h2 class='ipsType_pageTitle'>
|
||||
{{if $record->prefix()}}
|
||||
{template="prefix" group="global" app="core" params="$record->prefix( TRUE ), $record->prefix()"}
|
||||
{{endif}}
|
||||
<a href="{$record->url()}" title="{lang="read_more_about" sprintf="$record->_title"}">
|
||||
{{if $record->unread()}}
|
||||
<span class='ipsItemStatus' data-ipsTooltip title="{lang="cms_unread_record"}"><i class="fa fa-circle"></i></span>
|
||||
{{endif}}
|
||||
{wordbreak="$record->_title"}
|
||||
</a>
|
||||
{{if $record->mapped('pinned') || $record->mapped('featured') || $record->hidden() === -1 || $record->hidden() === 1}}
|
||||
{{if $record->hidden() === -1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$record->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
||||
{{elseif $record->hidden() === 1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
||||
{{endif}}
|
||||
{{if $record->mapped('pinned')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
|
||||
{{endif}}
|
||||
{{if $record->mapped('featured')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
</h2>
|
||||
<p class='ipsType_light ipsType_reset cmsInformation'>
|
||||
{lang="cms_byline" htmlsprintf="$record->author()->link(), $record->container()->url(), $record->container()->_title"}{datetime="$record->record_publish_date"}
|
||||
</p>
|
||||
</div>
|
||||
</header>
|
||||
{{if count( $record->customFieldsForDisplay('listing') )}}
|
||||
<div class='ipsDataItem_meta'>
|
||||
{{foreach $record->customFieldsForDisplay('listing') as $fieldId => $fieldValue}}
|
||||
{{if $fieldValue}}
|
||||
{$fieldValue|raw}
|
||||
{{endif}}
|
||||
{{endforeach}}
|
||||
</div>
|
||||
{{endif}}
|
||||
<section class='ipsType_normal ipsType_richText ipsType_break ipsSpacer_both' data-ipsTruncate data-ipsTruncate-size='7 lines' data-ipsTruncate-type='remove'>
|
||||
{{if $record->record_image}}
|
||||
<div class="cCmsRecord_image">
|
||||
<img class="ipsImage" src="{file="$record->record_image" extension="cms_Records"}">
|
||||
</div>
|
||||
{{endif}}
|
||||
|
||||
{$record->truncated()|raw}
|
||||
</section>
|
||||
{{if count( $record->tags() )}}
|
||||
{template="tags" group="global" app="core" params="$record->tags()"}
|
||||
{{endif}}
|
||||
<ul class='ipsList_inline'>
|
||||
<li><strong><a href='{$record->url()}' title="{lang="read_more_about" sprintf="$record->name"}">{lang="read_more"}</a></strong></li>
|
||||
{{if $record::database()->options['reviews']}}
|
||||
<li>{template="rating" app="core" params="'small', $record->averageReviewRating(), \IPS\Settings::i()->reviews_rating_out_of" group="global"}</li>
|
||||
{{endif}}
|
||||
<li><a href='{$record->url()}#comments' title='{lang="view_comments"}'><i class='fa fa-comment'></i> {lang="num_comments" pluralize="$record->record_comments"}</a></li>
|
||||
<li class='ipsType_light'>{lang="num_views_with_number" pluralize="$record->record_views"}</li>
|
||||
</ul>
|
||||
</article>
|
||||
</div>]]></template>
|
||||
<template template_key="database_category_3_column_first_featured_index" template_title="index" template_desc="" template_location="database" template_group="category_3_column_first_featured" template_params="$database, $articles, $url, $pagination" template_app="" template_type="template"><![CDATA[<div class='ipsPageHeader ipsClearfix ipsSpacer_bottom'>
|
||||
{{if $database->use_categories}}
|
||||
<div class='ipsPos_right ipsResponsive_noFloat'>
|
||||
<a href="{$url->setQueryString('show', 'categories')}" class="ipsButton ipsButton_medium ipsButton_fullWidth ipsButton_link"><i class="fa fa-folder-open"></i> {lang="cms_show_categories"}</a>
|
||||
</div>
|
||||
{{endif}}
|
||||
<h1 class='ipsType_pageTitle'>{$database->_title}</h1>
|
||||
{{if $database->_description}}
|
||||
<div class='ipsPageHeader_info ipsType_light'>
|
||||
{$database->_description}
|
||||
</div>
|
||||
{{endif}}
|
||||
</div>
|
||||
|
||||
{{if $database->can('add') or \IPS\Member::loggedIn()->member_id}}
|
||||
<ul class="ipsToolList ipsToolList_horizontal ipsClearfix ipsSpacer_both ipsResponsive_hidePhone">
|
||||
{{if $database->can('add')}}
|
||||
<li class='ipsToolList_primaryAction'>
|
||||
<a class="ipsButton ipsButton_medium ipsButton_important ipsButton_fullWidth" {{if $database->use_categories}}data-ipsDialog="1" data-ipsDialog-size="narrow" data-ipsDialog-title="{lang="cms_select_category"}"{{endif}} href="{$url->setQueryString( array( 'do' => 'form', 'd' => \IPS\cms\Databases\Dispatcher::i()->databaseId ) )}">{lang="cms_add_new_record_button" sprintf="$database->recordWord( 1 )"}</a>
|
||||
</li>
|
||||
{{endif}}
|
||||
</ul>
|
||||
{{endif}}
|
||||
|
||||
<hr class='ipsHr'>
|
||||
<section class='ipsType_normal ipsSpacer_both'>
|
||||
{{if count($articles)}}
|
||||
{{foreach $articles as $id => $record}}
|
||||
{{if $id == 0}}
|
||||
<div class='ipsGrid ipsGrid_collapsePhone'>
|
||||
{template="entry" app="cms" location="database" group="category_3_column_first_featured" params="$record, $database, 0"}
|
||||
</div>
|
||||
{{else}}
|
||||
{{if ($id - 1) % 3 == 0}}
|
||||
<div class='ipsGrid ipsGrid_collapsePhone cmsCategory3col'>
|
||||
{{endif}}
|
||||
{template="entry" app="cms" location="database" group="category_3_column_first_featured" params="$record, $database, $id"}
|
||||
{{if ($id - 1) % 3 == 2}}
|
||||
</div>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
{{endforeach}}
|
||||
{{endif}}
|
||||
</section>
|
||||
{{if $database->featured_settings['pagination'] and ( $pagination['pages'] > 1 )}}
|
||||
{template="pagination" app="core" location="global" group="global" params="$url, $pagination['pages'], $pagination['page'], $database->featured_settings['perpage'], TRUE, 'page'"}
|
||||
{{endif}}]]></template>
|
||||
<template template_key="database_category_3_column_image_feature_entry" template_title="entry" template_desc="" template_location="database" template_group="category_3_column_image_feature" template_params="$record, $database, $id" template_app="" template_type="template"><![CDATA[<div class='ipsGrid_span4'>
|
||||
<article class='cCmsCategoryFeaturedEntry {{if $record->hidden()}}ipsModerated{{endif}} cms3ColImageFeature'>
|
||||
{{if $record->record_image}}
|
||||
<div class="cCmsRecord_image">
|
||||
<a href="{$record->url()}" title="{lang="read_more_about" sprintf="$record->_title"}"><img class="ipsImage" src="{file="$record->record_image" extension="cms_Records"}"></a>
|
||||
</div>
|
||||
{{endif}}
|
||||
{{if $record->prefix()}}
|
||||
{template="prefix" group="global" app="core" params="$record->prefix( TRUE ), $record->prefix()"}
|
||||
{{endif}}
|
||||
<h2 class='ipsType_pageTitle'><a href="{$record->url()}" title="{lang="read_more_about" sprintf="$record->_title"}">
|
||||
{wordbreak="$record->_title"}
|
||||
</a></h2>
|
||||
</article>
|
||||
</div>]]></template>
|
||||
<template template_key="database_category_3_column_image_feature_index" template_title="index" template_desc="" template_location="database" template_group="category_3_column_image_feature" template_params="$database, $articles, $url, $pagination" template_app="" template_type="template"><![CDATA[<div class='ipsPageHeader ipsClearfix ipsSpacer_bottom'>
|
||||
{{if $database->use_categories}}
|
||||
<div class='ipsPos_right ipsResponsive_noFloat'>
|
||||
<a href="{$url->setQueryString('show', 'categories')}" class="ipsButton ipsButton_medium ipsButton_fullWidth ipsButton_link"><i class="fa fa-folder-open"></i> {lang="cms_show_categories"}</a>
|
||||
</div>
|
||||
{{endif}}
|
||||
<h1 class='ipsType_pageTitle'>{$database->_title}</h1>
|
||||
{{if $database->_description}}
|
||||
<div class='ipsPageHeader_info ipsType_light'>
|
||||
{$database->_description}
|
||||
</div>
|
||||
{{endif}}
|
||||
</div>
|
||||
|
||||
{{if $database->can('add') or \IPS\Member::loggedIn()->member_id}}
|
||||
<ul class="ipsToolList ipsToolList_horizontal ipsClearfix ipsSpacer_both ipsResponsive_hidePhone">
|
||||
{{if $database->can('add')}}
|
||||
<li class='ipsToolList_primaryAction'>
|
||||
<a class="ipsButton ipsButton_medium ipsButton_important ipsButton_fullWidth" {{if $database->use_categories}}data-ipsDialog="1" data-ipsDialog-size="narrow" data-ipsDialog-title="{lang="cms_select_category"}"{{endif}} href="{$url->setQueryString( array( 'do' => 'form', 'd' => \IPS\cms\Databases\Dispatcher::i()->databaseId ) )}">{lang="cms_add_new_record_button" sprintf="$database->recordWord( 1 )"}</a>
|
||||
</li>
|
||||
{{endif}}
|
||||
</ul>
|
||||
{{endif}}
|
||||
|
||||
<hr class='ipsHr'>
|
||||
<section class='ipsType_normal ipsSpacer_both'>
|
||||
{{if count($articles)}}
|
||||
{{foreach $articles as $id => $record}}
|
||||
{{if $id % 3 == 0}}
|
||||
<div class='ipsGrid ipsGrid_collapsePhone'>
|
||||
{{endif}}
|
||||
{template="entry" app="cms" location="database" group="category_3_column_image_feature" params="$record, $database, $id"}
|
||||
{{if $id % 3 == 2}}
|
||||
</div>
|
||||
{{endif}}
|
||||
{{endforeach}}
|
||||
{{endif}}
|
||||
</section>
|
||||
{{if $database->featured_settings['pagination'] and ( $pagination['pages'] > 1 )}}
|
||||
{template="pagination" app="core" location="global" group="global" params="$url, $pagination['pages'], $pagination['page'], $database->featured_settings['perpage'], TRUE, 'page'"}
|
||||
{{endif}}]]></template>
|
||||
<template template_key="database_category_articles_entry" template_title="entry" template_desc="" template_location="database" template_group="category_articles" template_params="$record, $database" template_app="" template_type="template"><![CDATA[<article class='cCmsCategoryFeaturedEntry ipsClear ipsClearfix {{if $record->hidden()}}ipsModerated{{endif}}'>
|
||||
<header class='ipsPhotoPanel ipsPhotoPanel_notPhone ipsPhotoPanel_small ipsSpacer_bottom'>
|
||||
{template="userPhoto" app="core" params="$record->author()" group="global"}
|
||||
<div>
|
||||
<h2 class='ipsType_pageTitle'>
|
||||
{{if $record->prefix()}}
|
||||
{template="prefix" group="global" app="core" params="$record->prefix( TRUE ), $record->prefix()"}
|
||||
{template="prefix" group="global" app="core" params="$record->prefix( TRUE ), $record->prefix()"}
|
||||
{{endif}}
|
||||
{{if $record->mapped('pinned') || $record->mapped('featured') || $record->hidden() === -1 || $record->hidden() === 1}}
|
||||
{{if $record->hidden() === -1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$record->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
||||
{{elseif $record->hidden() === 1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
||||
{{endif}}
|
||||
{{if $record->mapped('pinned')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
|
||||
{{endif}}
|
||||
{{if $record->mapped('featured')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
|
||||
<a href="{$record->url()}" title="{lang="read_more_about" sprintf="$record->_title"}">
|
||||
{{if $record->unread()}}
|
||||
<span class='ipsItemStatus' data-ipsTooltip title="{lang="cms_unread_record"}"><i class="fa fa-circle"></i></span>
|
||||
{{endif}}
|
||||
{wordbreak="$record->_title"}
|
||||
</a>
|
||||
{{if $record->mapped('pinned') || $record->mapped('featured') || $record->hidden() === -1 || $record->hidden() === 1}}
|
||||
{{if $record->hidden() === -1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$record->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
||||
{{elseif $record->hidden() === 1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
||||
{{endif}}
|
||||
{{if $record->mapped('pinned')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
|
||||
{{endif}}
|
||||
{{if $record->mapped('featured')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
</h2>
|
||||
<p class='ipsType_light ipsType_reset'>
|
||||
{lang="cms_byline" htmlsprintf="$record->author()->link(), $record->container()->url(), $record->container()->_title"}{datetime="$record->record_publish_date"}
|
||||
@@ -42,26 +380,37 @@
|
||||
{{endforeach}}
|
||||
</div>
|
||||
{{endif}}
|
||||
<section class='ipsType_normal ipsType_richText ipsType_break ipsSpacer_both' data-ipsTruncate data-ipsTruncate-size='7 lines' data-ipsTruncate-type='remove'>
|
||||
<div {{if $record->record_image}}class='ipsColumns ipsColumns_collapsePhone'{{endif}}>
|
||||
{{if $record->record_image}}
|
||||
<div class="cCmsRecord_image">
|
||||
<img class="ipsImage" src="{file="$record->record_image" extension="cms_Records"}">
|
||||
</div>
|
||||
<div class='ipsColumn ipsColumn_medium'>
|
||||
<div class="cCmsRecord_image">
|
||||
<img class="ipsImage" src="{file="$record->_record_image_thumb" extension="cms_Records"}">
|
||||
</div>
|
||||
</div>
|
||||
<div class='ipsColumn ipsColumn_fluid'>
|
||||
{{endif}}
|
||||
|
||||
{$record->truncated()|raw}
|
||||
</section>
|
||||
{{if count( $record->tags() )}}
|
||||
{template="tags" group="global" app="core" params="$record->tags()"}
|
||||
{{endif}}
|
||||
<ul class='ipsList_inline'>
|
||||
<li><strong><a href='{$record->url()}' title="{lang="read_more_about" sprintf="$record->name"}">{lang="read_more"}</a></strong></li>
|
||||
{{if $record::database()->options['reviews']}}
|
||||
<li>{template="rating" app="core" params="'small', $record->averageReviewRating(), \IPS\Settings::i()->reviews_rating_out_of" group="global"}</li>
|
||||
<section class='ipsType_normal ipsType_richText ipsType_break ipsSpacer_bottom' data-ipsTruncate data-ipsTruncate-size='7 lines' data-ipsTruncate-type='remove'>
|
||||
{$record->truncated()|raw}
|
||||
</section>
|
||||
|
||||
{{if count( $record->tags() )}}
|
||||
{template="tags" group="global" app="core" params="$record->tags()"}
|
||||
{{endif}}
|
||||
<ul class='ipsList_inline ipsClear'>
|
||||
<li><strong><a href='{$record->url()}' title="{lang="read_more_about" sprintf="$record->name"}">{lang="read_more"}</a></strong></li>
|
||||
{{if $record::database()->options['reviews']}}
|
||||
<li>{template="rating" app="core" params="'small', $record->averageReviewRating(), \IPS\Settings::i()->reviews_rating_out_of" group="global"}</li>
|
||||
{{endif}}
|
||||
<li><a href='{$record->url()}#comments' title='{lang="view_comments"}'><i class='fa fa-comment'></i> {lang="num_comments" pluralize="$record->record_comments"}</a></li>
|
||||
<li class='ipsType_light'>{lang="num_views_with_number" pluralize="$record->record_views"}</li>
|
||||
</ul>
|
||||
|
||||
{{if $record->record_image}}
|
||||
</div>
|
||||
{{endif}}
|
||||
<li><a href='{$record->url()}#comments' title='{lang="view_comments"}'><i class='fa fa-comment'></i> {lang="num_comments" pluralize="$record->record_comments"}</a></li>
|
||||
<li class='ipsType_light'>{lang="num_views_with_number" pluralize="$record->record_views"}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</article>]]></template>
|
||||
<template template_key="database_category_articles_index" template_title="index" template_desc="" template_location="database" template_group="category_articles" template_params="$database, $articles, $url, $pagination" template_app="" template_type="template"><![CDATA[<div class='ipsPageHeader ipsClearfix ipsSpacer_bottom'>
|
||||
{{if $database->use_categories}}
|
||||
@@ -137,7 +486,7 @@
|
||||
{{if $lastPost}}
|
||||
<li>{template="userPhoto" app="core" group="global" params="$lastPost['author'], 'tiny'"}</li>
|
||||
<li><a href="{$lastPost['record_url']}" class='ipsType_break ipsContained' title='{$lastPost['record_title']}'>{truncate="$lastPost['record_title']" length="30"}</a></li>
|
||||
<li>{lang="byline_nodate" htmlsprintf="$lastPost['author']->link()"}</li>
|
||||
<li class='ipsType_blendLinks'>{lang="byline_nodate" htmlsprintf="$lastPost['author']->link()"}</li>
|
||||
<li data-short="1 dy" class="ipsType_light"><a href='{$lastPost['record_url']->setQueryString( 'do', 'getLastComment' )}' title='{lang="get_last_post"}' class='ipsType_blendLinks'>{datetime="$lastPost['date']"}</a></li>
|
||||
{{else}}
|
||||
<li class='ipsType_light ipsResponsive_showDesktop'>{lang="content_categories_index_no_records" sprintf="\IPS\cms\Databases::load( $category->database_id )->recordWord()"}</li>
|
||||
@@ -190,14 +539,20 @@
|
||||
</html>]]></template>
|
||||
<template template_key="database_display_comment" template_title="comment" template_desc="" template_location="database" template_group="display" template_params="$item, $comment, $editorName, $app, $type, $class=''" template_app="" template_type="template"><![CDATA[{{$itemIdField = $item::$databaseColumnId; $idField = $comment::$databaseColumnId;}}
|
||||
<div id='comment-{$comment->$idField}_wrap' data-controller='core.front.core.comment' data-commentApp='{$app}' data-commentType='{$type}' data-commentID="{$comment->$idField}" data-quoteData='{expression="json_encode( array('userid' => $comment->author()->member_id, 'username' => $comment->author()->name, 'timestamp' => $comment->mapped('date'), 'contentapp' => $app, 'contenttype' => $type, 'contentclass' => $class, 'contentid' => $item->$itemIdField, 'contentcommentid' => $comment->$idField) )"}' class='cPost_content ipsComment_content ipsType_medium {{if $comment->hidden()}}ipsModerated{{endif}} ipsFaded_withHover'>
|
||||
{{if in_array( 'IPS\Content\Reputation', class_implements( $comment ) ) and settings.reputation_highlight and $comment->reputation() >= settings.reputation_highlight}}
|
||||
<strong class='ipsComment_popularFlag' data-ipsTooltip title='{lang="this_is_a_popular_comment"}'><i class='fa fa-heart'></i></strong>
|
||||
{{endif}}
|
||||
|
||||
<div class='ipsComment_header ipsPhotoPanel ipsPhotoPanel_mini ipsPhotoPanel_notPhone'>
|
||||
{template="userPhoto" app="core" group="global" params="$comment->author(), 'mini', $comment->warningRef()"}
|
||||
<div>
|
||||
<p class='ipsPos_right ipsType_reset ipsType_blendLinks'>
|
||||
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' data-ipsTooltip title='{lang="share_this_comment"}' data-ipsMenu data-ipsMenu-closeOnClick='false' id='elShareComment_{$comment->id}'><i class='fa fa-share-alt'></i></a>
|
||||
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' data-ipsTooltip title='{lang="share_this_comment"}' data-ipsMenu data-ipsMenu-closeOnClick='false' id='elShareComment_{$comment->id}' data-role='shareComment'><i class='fa fa-share-alt'></i></a>
|
||||
{{if count( $item->commentMultimodActions() )}}
|
||||
<input type="checkbox" name="multimod[{$comment->$idField}]" value="1" data-role="moderation" data-actions="{{if $comment->canSplit()}}split merge{{endif}} {{if $comment->hidden() === -1 AND $comment->canUnhide()}}unhide{{elseif $comment->hidden() === 1 AND $comment->canUnhide()}}approve{{elseif $comment->canHide()}}hide{{endif}} {{if $comment->canDelete()}}delete{{endif}}" data-state='{{if $comment->tableStates()}}{$comment->tableStates()}{{endif}}'>
|
||||
<span class='ipsCustomInput'>
|
||||
<input type="checkbox" name="multimod[{$comment->$idField}]" value="1" data-role="moderation" data-actions="{{if $comment->canSplit()}}split merge{{endif}} {{if $comment->hidden() === -1 AND $comment->canUnhide()}}unhide{{elseif $comment->hidden() === 1 AND $comment->canUnhide()}}approve{{elseif $comment->canHide()}}hide{{endif}} {{if $comment->canDelete()}}delete{{endif}}" data-state='{{if $comment->tableStates()}}{$comment->tableStates()}{{endif}}'>
|
||||
<span></span>
|
||||
</span>
|
||||
{{endif}}
|
||||
</p>
|
||||
<h3 class='ipsComment_author ipsType_blendLinks'>
|
||||
@@ -205,7 +560,7 @@
|
||||
{template="reputationBadge" group="global" app="core" params="$comment->author()"}
|
||||
</h3>
|
||||
<p class='ipsComment_meta ipsType_light ipsType_medium'>
|
||||
{$comment->dateLine()|raw}
|
||||
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' class='ipsType_blendLinks' title='{lang="share_this_comment"}'>{$comment->dateLine()|raw}</a>
|
||||
{{if $comment->editLine()}}
|
||||
({lang="edited_lc"})
|
||||
{{endif}}
|
||||
@@ -222,11 +577,7 @@
|
||||
{{endif}}
|
||||
</div>
|
||||
</div>
|
||||
<div class='ipsAreaBackground_reset ipsPad'>
|
||||
{{if in_array( 'IPS\Content\Reputation', class_implements( $comment ) ) and settings.reputation_highlight and $comment->reputation() >= settings.reputation_highlight}}
|
||||
<strong class='ipsComment_popularFlag' data-ipsTooltip title='{lang="this_is_a_popular_comment"}'><i class='fa fa-star'></i></strong>
|
||||
{{endif}}
|
||||
|
||||
<div class='ipsAreaBackground_reset ipsPad'>
|
||||
<div data-role='commentContent' class='ipsType_normal ipsType_richText ipsType_break ipsContained' data-controller='core.front.core.lightboxedImages'>
|
||||
{{if $comment->hidden() === 1 && $comment->author()->member_id == \IPS\Member::loggedIn()->member_id}}
|
||||
<strong class='ipsType_medium ipsType_warning'><i class='fa fa-info-circle'></i> {lang="comment_awaiting_approval"}</strong>
|
||||
@@ -340,7 +691,7 @@
|
||||
<article itemscope itemtype="http://schema.org/Comment" id='elComment_{$comment->$idField}' class='ipsComment {{if $otherClasses}}{$otherClasses}{{endif}} {{if in_array( 'IPS\Content\Reputation', class_implements( $comment ) ) and settings.reputation_highlight and $comment->reputation() >= settings.reputation_highlight}}ipsComment_popular{{endif}} ipsComment_parent ipsClearfix ipsClear {{if $comment->isIgnored()}}ipsHide{{endif}} {{if $comment->hidden()}}ipsModerated{{endif}}'>
|
||||
{template="comment" group="display" location="database" app="cms" params="$item, $comment, $item::$formLangPrefix . 'comment', $item::$application, $item::$module, $itemClassSafe"}
|
||||
</article>]]></template>
|
||||
<template template_key="database_display_comments" template_title="comments" template_desc="" template_location="database" template_group="display" template_params="$record" template_app="" template_type="template"><![CDATA[<div data-controller='core.front.core.commentFeed' data-commentsType='comments' data-baseURL='{$record->url()}' {{if $record->isLastPage()}}data-lastPage{{endif}} data-feedID='records{$record::$customDatabaseId}-{$record->_id}' id='comments'>
|
||||
<template template_key="database_display_comments" template_title="comments" template_desc="" template_location="database" template_group="display" template_params="$record" template_app="" template_type="template"><![CDATA[<div data-controller='core.front.core.commentFeed' {{if settings.auto_polling_enabled}}data-autoPoll{{endif}} data-commentsType='comments' data-baseURL='{$record->url()}' {{if $record->isLastPage()}}data-lastPage{{endif}} data-feedID='records{$record::$customDatabaseId}-{$record->_id}' id='comments'>
|
||||
<br>
|
||||
{{if $record->commentPageCount() > 1}}
|
||||
{$record->commentPagination( array( 'tab' ) )|raw}
|
||||
@@ -374,7 +725,7 @@
|
||||
<div class='ipsAreaBackground ipsPad' data-role='replyArea'>
|
||||
{{if $record->commentForm()}}
|
||||
{{if $record->locked()}}
|
||||
<p class='ipsType_reset ipsType_warning ipsComposeArea_warning ipsSpacer_bottom ipsSpacer_half'><i class='fa fa-info-circle'></i> {lang="cms_locked_can_comment"}</p>
|
||||
<p class='ipsType_reset ipsType_warning ipsComposeArea_warning ipsSpacer_bottom ipsSpacer_half'><i class='fa fa-info-circle'></i> {lang="cms_locked_can_comment" sprintf="$record::database()->recordWord(1)"}</p>
|
||||
{{endif}}
|
||||
{$record->commentForm()|raw}
|
||||
{{else}}
|
||||
@@ -407,7 +758,8 @@
|
||||
{{if $record->prefix()}}
|
||||
{template="prefix" group="global" app="core" params="$record->prefix( TRUE ), $record->prefix()"}
|
||||
{{endif}}
|
||||
{{if $record->locked()}}<i class='fa fa-lock'></i> {{endif}}{wordbreak="$record->_title"}
|
||||
{{if $record->locked()}}<i class='fa fa-lock'></i> {{endif}}
|
||||
|
||||
{{if $record->isFutureDate() || $record->mapped('pinned') || $record->mapped('featured') || $record->hidden() === -1 || $record->hidden() === 1}}
|
||||
{{if $record->isFutureDate()}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$record->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span>
|
||||
@@ -423,6 +775,8 @@
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
|
||||
{wordbreak="$record->_title"}
|
||||
</h1>
|
||||
|
||||
{{if $record::database()->options['reviews']}}
|
||||
@@ -451,7 +805,7 @@
|
||||
</p>
|
||||
<ul class='ipsList_inline'>
|
||||
<li>{datetime="$record->record_publish_date"}</li>
|
||||
{{foreach $record->customFieldsForDisplay('display') as $fieldId => $fieldValue}}
|
||||
{{foreach $record->customFieldsForDisplay('display_top') as $fieldId => $fieldValue}}
|
||||
{{if $fieldValue}}
|
||||
{$fieldValue|raw}
|
||||
{{endif}}
|
||||
@@ -468,17 +822,23 @@
|
||||
<div class='ipsClearfix'>
|
||||
{{if $record->record_image}}
|
||||
<div class="cCmsRecord_image">
|
||||
<img class="ipsImage" src="{file="$record->record_image" extension="cms_Records"}">
|
||||
<img class="ipsImage" src="{file="$record->_record_image_thumb" extension="cms_Records"}">
|
||||
</div>
|
||||
{{endif}}
|
||||
|
||||
<section class="ipsType_richText ipsType_normal" data-controller='core.front.core.lightboxedImages'>{$record->_content|raw}</section>
|
||||
|
||||
{{if $record->editLine()}}
|
||||
{$record->editLine()|raw}
|
||||
{{endif}}
|
||||
</div>
|
||||
|
||||
{{if $bottomFields = $record->customFieldsForDisplay('display_bottom')}}
|
||||
<hr class='ipsHr ipsClear ipsClearfix'>
|
||||
{{foreach $bottomFields as $fieldId => $fieldValue}}
|
||||
{{if $fieldValue}}
|
||||
{$fieldValue|raw}
|
||||
{{endif}}
|
||||
{{endforeach}}
|
||||
{{endif}}
|
||||
<hr class='ipsHr ipsClear ipsClearfix'>
|
||||
|
||||
{{if $record instanceof \IPS\Content\Reputation and settings.reputation_enabled}}
|
||||
@@ -593,11 +953,11 @@
|
||||
]]></template>
|
||||
<template template_key="database_display_recordEditLine" template_title="recordEditLine" template_desc="" template_location="database" template_group="display" template_params="$record" template_app="" template_type="template"><![CDATA[
|
||||
<span class='ipsType_reset ipsType_medium ipsType_light' data-excludequote>
|
||||
<strong>{lang="date_edited" htmlsprintf="\IPS\DateTime::ts( $record->record_edit_time )->html(FALSE), htmlentities( $record->record_edit_member_name, ENT_QUOTES | \IPS\HTMLENTITIES, 'UTF-8', FALSE )"}</strong>
|
||||
<strong>{lang="date_edited" htmlsprintf="\IPS\DateTime::ts( $record->record_edit_time )->html(FALSE), htmlspecialchars( $record->record_edit_member_name, ENT_QUOTES | \IPS\HTMLENTITIES, 'UTF-8', FALSE )"}</strong>
|
||||
{{if $record->edit_reason}}
|
||||
<br>{$record->edit_reason}
|
||||
{{endif}}
|
||||
{{if \IPS\Settings::i()->edit_log == 2 and ( \IPS\Settings::i()->edit_log_public or \IPS\Member::loggedIn()->modPermission('can_view_editlog') )}}
|
||||
{{if $record->database()->revisions and \IPS\Settings::i()->edit_log == 2 and ( \IPS\Settings::i()->edit_log_public or \IPS\Member::loggedIn()->modPermission('can_view_editlog') )}}
|
||||
<a href='{$record->url('revisions')}' data-ipsDialog data-ipsDialog-title="{lang="content_view_revisions"}" title="{lang="content_edit_view_revisions"}">{lang="content_edit_view_revisions"}</a>
|
||||
{{if !$record->record_edit_show AND \IPS\Member::loggedIn()->modPermission('can_view_editlog')}}
|
||||
<br>{lang="comment_edit_show_anyways"}
|
||||
@@ -609,9 +969,12 @@
|
||||
{template="userPhoto" app="core" group="global" params="$review->author(), 'small', $review->warningRef(), 'ipsPos_left'"}
|
||||
<div>
|
||||
<p class='ipsPos_right ipsType_reset ipsType_blendLinks'>
|
||||
<a href='{$review->item()->url()->setQueryString( array( 'do' => 'findReview', 'review' => $review->id ) )}' data-ipsTooltip title='{lang="share_this_review"}' data-ipsMenu data-ipsMenu-closeOnClick='false' id='elShareComment_{$review->id}'><i class='fa fa-share-alt'></i></a>
|
||||
<a href='{$review->item()->url()->setQueryString( array( 'do' => 'findReview', 'review' => $review->id ) )}' data-ipsTooltip title='{lang="share_this_review"}' data-ipsMenu data-ipsMenu-closeOnClick='false' id='elShareComment_{$review->id}' data-role='shareComment'><i class='fa fa-share-alt'></i></a>
|
||||
{{if count( $item->reviewMultimodActions() )}}
|
||||
<input type="checkbox" name="multimod[{$review->id}]" value="1" data-role="moderation" data-actions="{{if $review->hidden() === -1 AND $review->canUnhide()}}unhide{{elseif $review->hidden() === 1 AND $review->canUnhide()}}approve{{elseif $review->canHide()}}hide{{endif}} {{if $review->canDelete()}}delete{{endif}}" data-state='{{if $review->tableStates()}}{$review->tableStates()}{{endif}}'>
|
||||
<span class='ipsCustomInput'>
|
||||
<input type="checkbox" name="multimod[{$review->id}]" value="1" data-role="moderation" data-actions="{{if $review->hidden() === -1 AND $review->canUnhide()}}unhide{{elseif $review->hidden() === 1 AND $review->canUnhide()}}approve{{elseif $review->canHide()}}hide{{endif}} {{if $review->canDelete()}}delete{{endif}}" data-state='{{if $review->tableStates()}}{$review->tableStates()}{{endif}}'>
|
||||
<span></span>
|
||||
</span>
|
||||
{{endif}}
|
||||
</p>
|
||||
<h3 class="ipsComment_author ipsType_blendLinks">
|
||||
@@ -643,7 +1006,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class='ipsPad'>
|
||||
<div id="review-{$review->id}" data-role="commentContent" class="ipsType_richText ipsType_break ipsContained" itemprop="reviewBody" data-controller='core.front.core.lightboxedImages'>
|
||||
<div id="review-{$review->id}" data-role="commentContent" class="ipsType_richText ipsType_normal ipsType_break ipsContained" itemprop="reviewBody" data-controller='core.front.core.lightboxedImages'>
|
||||
{$review->content()|raw}
|
||||
</div>
|
||||
|
||||
@@ -734,7 +1097,7 @@
|
||||
{template="review" location="database" group="display" app="cms" params="$item, $review, $item::$formLangPrefix . 'review', $item::$application, $item::$module"}
|
||||
</article>
|
||||
{{endif}}]]></template>
|
||||
<template template_key="database_display_reviews" template_title="reviews" template_desc="" template_location="database" template_group="display" template_params="$record" template_app="" template_type="template"><![CDATA[<div data-controller='core.front.core.commentFeed' data-commentsType='reviews' data-baseURL='{$record->url()}' {{if $record->isLastPage('reviews')}}data-lastPage{{endif}} data-feedID='records{$record::$customDatabaseId}-{$record->id}-reviews' id='reviews'>
|
||||
<template template_key="database_display_reviews" template_title="reviews" template_desc="" template_location="database" template_group="display" template_params="$record" template_app="" template_type="template"><![CDATA[<div data-controller='core.front.core.commentFeed' {{if settings.auto_polling_enabled}}data-autoPoll{{endif}} data-commentsType='reviews' data-baseURL='{$record->url()}' {{if $record->isLastPage('reviews')}}data-lastPage{{endif}} data-feedID='records{$record::$customDatabaseId}-{$record->id}-reviews' id='reviews'>
|
||||
{{if $record->canReview()}}
|
||||
{{if $record->locked()}}
|
||||
<strong class='ipsType_warning'><i class='fa fa-info-circle'></i> {lang="item_locked_can_review"}</strong>
|
||||
@@ -756,8 +1119,8 @@
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
{{if count( $record->reviews() )}}
|
||||
<hr class='ipsHr'>
|
||||
<div class="ipsClearfix ipsSpacer_both">
|
||||
{{if !$record->hasReviewed()}}<hr class='ipsHr'>{{endif}}
|
||||
<div class="ipsClearfix ipsSpacer_bottom">
|
||||
{{if $record->reviewPageCount() > 1}}
|
||||
<div class="ipsPos_left ipsResponsive_noFloat">
|
||||
{$record->reviewPagination( array( 'tab', 'sort' ) )|raw}
|
||||
@@ -795,10 +1158,13 @@
|
||||
{$record->reviewPagination( array( 'tab', 'sort' ) )|raw}
|
||||
</div>
|
||||
{{endif}}
|
||||
{{elseif !$record->canReview()}}
|
||||
<p class="ipsType_normal ipsType_light ipsType_reset" data-role="noReviews">{lang="no_reviews"}</p>
|
||||
{{endif}}
|
||||
</div>]]></template>
|
||||
<template template_key="database_form_recordForm" template_title="recordForm" template_desc="" template_location="database" template_group="form" template_params="$record, $category, $database, $page, $title, $hasModOptions, $id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class=''" template_app="" template_type="template"><![CDATA[{{$modOptions = array( 'create_record_state', 'record_expiry_date', 'record_pinned', 'record_allow_comments', 'record_comment_cutoff', 'record_meta_keywords', 'record_meta_description' );}}
|
||||
{template="pageHeader" if="!\IPS\Request::i()->isAjax()" group="global" app="core" params="\IPS\Member::loggedIn()->language()->addToStack( $title )"}
|
||||
<div id="elCmsPageWrap" data-pageid="{$page->id}">
|
||||
<form accept-charset='utf-8' class="ipsForm {$class}" data-ipsForm="true" action="{$action}" method="post" {{if $uploadField}}enctype="multipart/form-data"{{endif}}>
|
||||
<input type="hidden" name="{$id}_submitted" value="1">
|
||||
{{foreach $hiddenValues as $k => $v}}
|
||||
@@ -905,7 +1271,7 @@
|
||||
</div>
|
||||
<div class='ipsColumn ipsColumn_wide'>
|
||||
<div class='ipsPad ipsAreaBackground_light'>
|
||||
<h3 class='ipsType_sectionHead'>{lang="topic_moderator_options"}</h3>
|
||||
<h3 class='ipsType_sectionHead'>{lang="cms_moderator_options"}</h3>
|
||||
<ul class='ipsForm ipsForm_vertical ipsSpacer_top'>
|
||||
{{foreach $elements as $collection}}
|
||||
{{foreach $collection as $inputName => $input}}
|
||||
@@ -941,7 +1307,8 @@
|
||||
<button type='submit' class='ipsButton ipsButton_large ipsButton_primary'>{lang="content_record_form_save"}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>]]></template>
|
||||
</form>
|
||||
</div>]]></template>
|
||||
<template template_key="database_listing_categoryFooter" template_title="categoryFooter" template_desc="" template_location="database" template_group="listing" template_params="$category, $table, $activeFilters" template_app="" template_type="template"><![CDATA[
|
||||
{{if ! \IPS\Request::i()->isAjax() AND ! isset( \IPS\Request::i()->advancedSearchForm ) AND $category->show_records}}
|
||||
<ul class="ipsToolList ipsToolList_horizontal ipsClearfix ipsSpacer_both ipsResponsive_showPhone ipsResponsive_block">
|
||||
@@ -1205,6 +1572,24 @@
|
||||
{{if $row->locked()}}
|
||||
<i class='fa fa-lock' data-ipsTooltip title='{lang="content_locked_record"}'></i>
|
||||
{{endif}}
|
||||
|
||||
{{if $row->isFutureDate() || $row->mapped('pinned') || $row->mapped('featured') || $row->hidden() === -1 || $row->hidden() === 1}}
|
||||
<span>
|
||||
{{if $row->isFutureDate()}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span>
|
||||
{{elseif $row->hidden() === -1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
||||
{{elseif $row->hidden() === 1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
||||
{{endif}}
|
||||
{{if $row->mapped('pinned')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
|
||||
{{endif}}
|
||||
{{if $row->mapped('featured')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
||||
{{endif}}
|
||||
</span>
|
||||
{{endif}}
|
||||
|
||||
{{if $row->prefix()}}
|
||||
{template="prefix" group="global" app="core" params="$row->prefix( TRUE ), $row->prefix()"}
|
||||
@@ -1214,23 +1599,7 @@
|
||||
{{if $row->_title}}{$row->_title}{{else}}<em class="ipsType_light">{lang="content_deleted"}</em>{{endif}}
|
||||
</a>
|
||||
</h4>
|
||||
{{if $row->isFutureDate() || $row->mapped('pinned') || $row->mapped('featured') || $row->hidden() === -1 || $row->hidden() === 1}}
|
||||
<span>
|
||||
{{if $row->isFutureDate()}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span>
|
||||
{{elseif $row->hidden() === -1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
||||
{{elseif $row->hidden() === 1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
||||
{{endif}}
|
||||
{{if $row->mapped('pinned')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
|
||||
{{endif}}
|
||||
{{if $row->mapped('featured')}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
||||
{{endif}}
|
||||
</span>
|
||||
{{endif}}
|
||||
|
||||
{{if $row->commentPageCount() > 1}}
|
||||
{$row->commentPagination( array(), 'miniPagination' )|raw}
|
||||
{{endif}}
|
||||
@@ -1243,8 +1612,8 @@
|
||||
{{endforeach}}
|
||||
</div>
|
||||
{{endif}}
|
||||
<div class='ipsDataItem_meta'>
|
||||
<p class='ipsType_reset ipsType_light'>{lang="byline" sprintf="$row->author()->name"}{datetime="$row->_publishDate"}</p>
|
||||
<div class='ipsDataItem_meta ipsType_blendLinks'>
|
||||
<p class='ipsType_reset ipsType_light'>{lang="byline" htmlsprintf="$row->author()->link( $row->warningRef() )"}{datetime="$row->_publishDate"}</p>
|
||||
</div>
|
||||
</div>
|
||||
<ul class='ipsDataItem_stats'>
|
||||
@@ -1266,7 +1635,7 @@
|
||||
</li>
|
||||
{{endif}}
|
||||
</ul>
|
||||
<ul class='ipsDataItem_lastPoster ipsDataItem_withPhoto'>
|
||||
<ul class='ipsDataItem_lastPoster ipsDataItem_withPhoto ipsType_blendLinks'>
|
||||
{{if $row::database()->options['comments'] or $row::database()->options['reviews']}}
|
||||
<li>
|
||||
{{if $row->mapped('num_comments')}}
|
||||
@@ -1284,7 +1653,7 @@
|
||||
</li>
|
||||
|
||||
<li class="ipsType_light">
|
||||
<a href='{$row->url( 'getLastComment' )}' title='{lang="get_last_post"}' class='ipsType_blendLinks'>
|
||||
<a href='{$row->url( 'getLastComment' )}' title='{lang="get_last_post"}'>
|
||||
{{if $row->mapped('num_comments')}}{datetime="$row->mapped('last_comment')"}{{else}}{datetime="$row->mapped('date')"}{{endif}}
|
||||
</a>
|
||||
</li>
|
||||
@@ -1304,11 +1673,16 @@
|
||||
</ul>
|
||||
{{if $table and $table->canModerate()}}
|
||||
<div class='ipsDataItem_modCheck'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$row->$idField}]" data-actions="{expression="implode( ' ', $table->multimodActions( $row ) )"}" data-state='{{if $row->tableStates()}}{$row->tableStates()}{{endif}}'>
|
||||
<span class='ipsCustomInput'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$row->$idField}]" data-actions="{expression="implode( ' ', $table->multimodActions( $row ) )"}" data-state='{{if $row->tableStates()}}{$row->tableStates()}{{endif}}'>
|
||||
<span></span>
|
||||
</span>
|
||||
</div>
|
||||
{{endif}}
|
||||
</li>
|
||||
{{endforeach}}]]></template>
|
||||
<template template_key="database_listing_rssItemWithImage" template_title="rssItemWithImage" template_desc="" template_location="database" template_group="listing" template_params="$content, $image" template_app="" template_type="template"><![CDATA[<p><img src="{file="$image" extension="cms_Records"}" /></p>
|
||||
{$content|raw}]]></template>
|
||||
<template template_key="page_page_builder_single_column" template_title="single_column" template_desc="" template_location="page" template_group="page_builder" template_params="$page, $widgets" template_app="" template_type="template"><![CDATA[<div>
|
||||
{template="widgetContainer" group="pages" app="cms" params="'col1', $widgets, 'horizontal'"}
|
||||
</div>]]></template>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<emails><template><template_app>cms</template_app><template_name>digests__comment</template_name><template_content_html><![CDATA[<tr style='border-bottom: 1px solid #eeeeee'>
|
||||
<td width='40' align='center' valign='top' class=' '>
|
||||
<td dir='{dir}' width='40' align='center' valign='top' class=' '>
|
||||
<img src='{$comment->author()->photo}' width='32' height='32' style='border: 1px solid #000; vertical-align: middle;'>
|
||||
</td>
|
||||
<td align='left'>
|
||||
<td dir='{dir}' align='left'>
|
||||
<p style='font-family: "Helvetica Neue", helvetica, sans-serif; margin: 0; font-size: 13px; font-weight: bold'>
|
||||
{{$item = $comment->item();}}
|
||||
({$email->language->addToStack("x_commented_cms", FALSE, array( 'sprintf' => array( $comment->author()->name, $item::database()->recordWord( 1 ) ) ) )})
|
||||
@@ -18,10 +18,10 @@
|
||||
</tr>]]></template_content_html><template_data>$comment, $email</template_data><template_content_plaintext><![CDATA[{{$item = $comment->item();}}
|
||||
{$email->language->addToStack("x_commented_cms", FALSE, array( 'sprintf' => array( $comment->author()->name, $item::database()->recordWord( 1 ) ) ) )}: {$comment->item()->_title} ({$comment->url()})
|
||||
]]></template_content_plaintext></template><template><template_app>cms</template_app><template_name>digests__item</template_name><template_content_html><![CDATA[<tr style='border-bottom: 1px solid #eeeeee'>
|
||||
<td width='40' align='center' valign='top' class=' '>
|
||||
<td dir='{dir}' width='40' align='center' valign='top' class=' '>
|
||||
<img src='{$entry->author()->photo}' width='32' height='32' style='border: 1px solid #000; vertical-align: middle;'>
|
||||
</td>
|
||||
<td align='left'>
|
||||
<td dir='{dir}' align='left'>
|
||||
<p style='font-family: "Helvetica Neue", helvetica, sans-serif; margin: 0; font-size: 13px; font-weight: bold'>
|
||||
{$email->language->addToStack("x_created_cms_in", FALSE, array( 'sprintf' => array( $entry->author()->name, $entry::database()->recordWord( 1 ), $entry->container()->_title ) ) )}
|
||||
</p>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<javascript app="cms">
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/blocks" javascript_name="ips.blocks.form.js" javascript_type="controller" javascript_version="100045" javascript_position="1000050"><![CDATA[/**
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/blocks" javascript_name="ips.blocks.form.js" javascript_type="controller" javascript_version="101012" javascript_position="1000050"><![CDATA[/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2013 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
@@ -118,7 +118,7 @@
|
||||
var save = { 't_location': 'block', 't_key': this.scope.find('#elSelect_block_template_id').val(), 'block_key': this.scope.find('input[name=block_plugin]').val(), 'block_app': this.scope.find('input[name=block_plugin_app]').val() };
|
||||
var self = this;
|
||||
|
||||
ips.getAjax()( '?app=cms&module=pages&controller=ajax&do=loadTemplate&show=json', {
|
||||
ips.getAjax()( '?app=cms&module=pages&controller=ajax&do=loadTemplate&show=json&noencode=1', {
|
||||
dataType: 'json',
|
||||
data: save,
|
||||
type: 'post'
|
||||
@@ -133,7 +133,7 @@
|
||||
}
|
||||
});
|
||||
}(jQuery, _));]]></file>
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/databases" javascript_name="ips.databases.download.js" javascript_type="controller" javascript_version="100045" javascript_position="1000100">/**
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/databases" javascript_name="ips.databases.download.js" javascript_type="controller" javascript_version="101012" javascript_position="1000100">/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2014 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
@@ -178,7 +178,7 @@
|
||||
}
|
||||
});
|
||||
}(jQuery, _));</file>
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/databases" javascript_name="ips.databases.form.js" javascript_type="controller" javascript_version="100045" javascript_position="1000100">/**
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/databases" javascript_name="ips.databases.form.js" javascript_type="controller" javascript_version="101012" javascript_position="1000100">/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2014 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
@@ -241,7 +241,142 @@
|
||||
}
|
||||
});
|
||||
}(jQuery, _));</file>
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/fields" javascript_name="ips.fields.form.js" javascript_type="controller" javascript_version="100045" javascript_position="1000150">/**
|
||||
<file javascript_app="cms" javascript_location="front" javascript_path="controllers/external" javascript_name="ips.external.communication.js" javascript_type="controller" javascript_version="101012" javascript_position="1000050"><![CDATA[/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2013 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
* ips.external.communication.js - External communication widget - sends messages to the parent window
|
||||
*
|
||||
* Author: Rikki Tissier
|
||||
*/
|
||||
;( function($, _, undefined){
|
||||
"use strict";
|
||||
|
||||
ips.controller.register('cms.front.external.communication', {
|
||||
|
||||
_blockID: '',
|
||||
_widgetID: '',
|
||||
|
||||
initialize: function () {
|
||||
this.on( window, 'message', this.windowMessage );
|
||||
|
||||
this.on( 'click', 'a', this.clickLink );
|
||||
this.setup();
|
||||
},
|
||||
|
||||
/**
|
||||
* setup method
|
||||
*
|
||||
* @returns {void}
|
||||
*/
|
||||
setup: function () {
|
||||
var self = this;
|
||||
var url = ips.utils.url.getURIObject();
|
||||
this._blockID = url.queryKey.blockid;
|
||||
this._widgetID = url.queryKey.widgetid;
|
||||
|
||||
this._send( 'iframeReady' );
|
||||
this._sendHeight();
|
||||
|
||||
// We'll run a loop to track the height of the document and let the parent know
|
||||
setInterval( _.bind( this._sendHeight, this ), 500 );
|
||||
},
|
||||
|
||||
/**
|
||||
* Handles messages received from the parent window
|
||||
*
|
||||
* @param {event} e Event object
|
||||
* @returns {void}
|
||||
*/
|
||||
windowMessage: function (e) {
|
||||
try {
|
||||
var pmData = JSON.parse( e.originalEvent.data );
|
||||
var method = pmData.method;
|
||||
} catch (err) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Check we have a widget ID and it matches ours
|
||||
if( _.isUndefined( pmData.widgetID ) || pmData.widgetID !== this._widgetID ){
|
||||
return;
|
||||
}
|
||||
|
||||
if( method && !_.isUndefined( this[ method ] ) ){
|
||||
this[ method ].call( this, pmData );
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* The parent has sent us some styles to use
|
||||
*
|
||||
* @param {object} data Data object containing the styles
|
||||
* @returns {void}
|
||||
*/
|
||||
probedStyles: function (data) {
|
||||
// Create a style element to insert into the head
|
||||
var elem = $('<style/>').attr('type', 'text/css').appendTo('head');
|
||||
var stylesheet = "\
|
||||
body {\
|
||||
font-family: " + data.font + "; \
|
||||
color: " + data.text + ";\
|
||||
}\
|
||||
\
|
||||
a {\
|
||||
color: " + data.link + ";\
|
||||
}\
|
||||
";
|
||||
|
||||
elem.text( stylesheet );
|
||||
},
|
||||
|
||||
/**
|
||||
* Event handler for clicking a link; we'll send it to the parent to handle
|
||||
*
|
||||
* @param {event} e Event object
|
||||
* @returns {void}
|
||||
*/
|
||||
clickLink: function (e) {
|
||||
var link = $( e.currentTarget );
|
||||
var href = link.attr('href');
|
||||
|
||||
if( href.startsWith('#') ){
|
||||
return;
|
||||
}
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
this._send( 'goToLink', { link: href } );
|
||||
},
|
||||
|
||||
/**
|
||||
* Shortcut for calculating and sending the height to the parent
|
||||
*
|
||||
* @returns {void}
|
||||
*/
|
||||
_sendHeight: function () {
|
||||
var currentSize = $('body').outerHeight();
|
||||
this._send( 'iframeSize', { size: currentSize } );
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends a message to the parent
|
||||
*
|
||||
* @param {string} method Method name to call on the parent
|
||||
* @param {object} data Data object to send
|
||||
* @returns {void}
|
||||
*/
|
||||
_send: function (method, data) {
|
||||
var output = JSON.stringify( _.extend( data || {}, {
|
||||
method: method,
|
||||
widgetID: this._widgetID,
|
||||
blockID: this._blockID
|
||||
}));
|
||||
|
||||
window.top.postMessage( output, '*' );
|
||||
}
|
||||
});
|
||||
}(jQuery, _));]]></file>
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/fields" javascript_name="ips.fields.form.js" javascript_type="controller" javascript_version="101012" javascript_position="1000150">/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2013 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
@@ -278,7 +413,612 @@
|
||||
}
|
||||
});
|
||||
}(jQuery, _));</file>
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/pages" javascript_name="ips.pages.form.js" javascript_type="controller" javascript_version="100045" javascript_position="1000200"><![CDATA[/**
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/media" javascript_name="ips.media.main.js" javascript_type="controller" javascript_version="101012" javascript_position="1000200"><![CDATA[/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2013 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
* ips.media.main.js - Main media controller
|
||||
*
|
||||
* Author: Rikki Tissier
|
||||
*/
|
||||
;( function($, _, undefined){
|
||||
"use strict";
|
||||
|
||||
ips.controller.register('cms.admin.media.main', {
|
||||
|
||||
_fileListing: null,
|
||||
_sidebar: null,
|
||||
_folderListing: null,
|
||||
_cachedFileInfo: {},
|
||||
_cachedFolders: {},
|
||||
_folderAjax: null,
|
||||
_searchTimer: null,
|
||||
_uploadURL: '',
|
||||
|
||||
initialize: function () {
|
||||
this.on( 'click', '[data-role="mediaItem"]', this.clickItem );
|
||||
this.on( 'click', '[data-role="fileListing"]', this.clickWrapper );
|
||||
this.on( 'click', '[data-role="mediaFolder"] > a', this.clickMediaFolder );
|
||||
this.on( 'click', '[data-action="deleteSelected"]', this.deleteSelected );
|
||||
this.on( 'keydown', '[data-role="mediaSearch"]', this.searchKeyPress );
|
||||
this.on( 'submitDialog', '[data-role="uploadButton"]', this.dialogSubmitted );
|
||||
this.setup();
|
||||
},
|
||||
|
||||
/**
|
||||
* Setup method
|
||||
*
|
||||
* @returns {void}
|
||||
*/
|
||||
setup: function () {
|
||||
this._fileListing = this.scope.find('[data-role="fileListing"]');
|
||||
this._searchResults = this.scope.find('[data-role="searchResults"]');
|
||||
this._sidebar = this.scope.find('[data-role="mediaSidebar"]');
|
||||
this._folderListing = this.scope.find('[data-role="folderList"]');
|
||||
this._uploadURL = this.scope.find('[data-role="uploadButton"]').attr('href');
|
||||
this._newFolderURL = this.scope.find('[data-role="folderButton"]').attr('href');
|
||||
|
||||
this.scope.find('[data-role="uploadButton"]').attr('href', this._uploadURL + '&media_parent=0' );
|
||||
this.scope.find('[data-role="folderButton"]').attr('href', this._newFolderURL + '&media_parent=0' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Dialog submit handler from uploading process
|
||||
* The dialog response will include an array of media items in this folder. We'll use
|
||||
* this data to rebuild the file listing, thereby showing the new files immediately.
|
||||
*
|
||||
* @param {event} e Event object
|
||||
* @param {object} data Event data object
|
||||
* @returns {void}
|
||||
*/
|
||||
dialogSubmitted: function (e, data) {
|
||||
var newHTML = [];
|
||||
var folderID = data.response.folderID;
|
||||
|
||||
_.each( data.response.rows, function (file, key) {
|
||||
newHTML.push( file );
|
||||
});
|
||||
|
||||
this._cachedFolders[ folderID ] = newHTML;
|
||||
this._buildFileListing( folderID, newHTML );
|
||||
|
||||
ips.ui.flashMsg.show( ips.pluralize( ips.getString('mediaUploadedCount'), data.response.count ) );
|
||||
},
|
||||
|
||||
/**
|
||||
* keypress event handler for the search text box
|
||||
*
|
||||
* @param {event} e Event object
|
||||
* @returns {void}
|
||||
*/
|
||||
searchKeyPress: function (e) {
|
||||
clearTimeout( this._searchTimer );
|
||||
this._searchTimer = setTimeout( _.bind( this._doSearch, this ), 500 );
|
||||
},
|
||||
|
||||
/**
|
||||
* Event handler for clicking a folder in the list
|
||||
*
|
||||
* @param {event} e Event object
|
||||
* @returns {void}
|
||||
*/
|
||||
clickMediaFolder: function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var self = this;
|
||||
var allRows = this._folderListing.find('[data-role="mediaFolder"]');
|
||||
var row = $( e.currentTarget ).closest('[data-role="mediaFolder"]');
|
||||
var rowURL = row.find('> a').attr('href');
|
||||
var rowID = row.attr('data-folderID');
|
||||
|
||||
this._resetSearch();
|
||||
|
||||
if( row.hasClass('ipsTreeList_activeBranch') ){
|
||||
row
|
||||
.removeClass('ipsTreeList_activeBranch')
|
||||
.addClass('ipsTreeList_inactiveBranch');
|
||||
} else {
|
||||
row
|
||||
.removeClass('ipsTreeList_inactiveBranch')
|
||||
.addClass('ipsTreeList_activeBranch');
|
||||
}
|
||||
|
||||
allRows.removeClass('ipsTreeList_activeNode');
|
||||
row.addClass('ipsTreeList_activeNode');
|
||||
|
||||
// Update the upload/new folder buttons
|
||||
this.scope.find('[data-role="uploadButton"]').attr('href', this._uploadURL + '&media_parent=' + rowID );
|
||||
this.scope.find('[data-role="folderButton"]').attr('href', this._newFolderURL + '&media_parent=' + rowID );
|
||||
|
||||
// Load subfolders
|
||||
this._loadFolders( rowID, rowURL );
|
||||
|
||||
// And folder contents
|
||||
this._loadFiles( rowID, rowURL );
|
||||
|
||||
this._unselectAll();
|
||||
this._updatePreview();
|
||||
this._checkDeleteButton();
|
||||
},
|
||||
|
||||
/**
|
||||
* Prompts and deletes selected files
|
||||
*
|
||||
* @param {event} e Event object
|
||||
* @returns {void}
|
||||
*/
|
||||
deleteSelected: function (e) {
|
||||
var self = this;
|
||||
var selected = this._getSelected().closest('[data-role="mediaItem"]');
|
||||
var selectedIDs = [];
|
||||
|
||||
$.each( selected, function () {
|
||||
selectedIDs.push( $( this ).attr('data-fileid') );
|
||||
});
|
||||
|
||||
// Confirm with user
|
||||
ips.ui.alert.show({
|
||||
type: 'confirm',
|
||||
message: ips.pluralize( ips.getString('mediaConfirmDelete'), selected.length ),
|
||||
icon: 'warn',
|
||||
callbacks: {
|
||||
ok: function () {
|
||||
selected.find('.cMedia_itemSelected').removeClass('cMedia_itemSelected')
|
||||
|
||||
// Hide and remove them
|
||||
ips.utils.anim.go( 'fadeOutDown', selected )
|
||||
.done( function () {
|
||||
selected.remove();
|
||||
self._updatePreview();
|
||||
self._checkDeleteButton();
|
||||
});
|
||||
|
||||
// Delete them on the server
|
||||
ips.getAjax()( '?app=cms&module=pages&controller=media&do=deleteByFileIds', {
|
||||
data: {
|
||||
fileIds: selectedIDs
|
||||
}
|
||||
})
|
||||
.fail( function () {
|
||||
ips.ui.alert.show({
|
||||
type: 'alert',
|
||||
message: ips.pluralize( ips.getString('mediaErrorDeleting'), selected.length )
|
||||
});
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Event handler for clicking in the whitepace of the file listing
|
||||
* Unselects any selected files
|
||||
*
|
||||
* @param {event} e Event object
|
||||
* @returns {void}
|
||||
*/
|
||||
clickWrapper: function (e) {
|
||||
if( !$( e.target ).closest('[data-role="mediaItem"]').length ) {
|
||||
this._unselectAll();
|
||||
this._updatePreview();
|
||||
this._checkDeleteButton();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Event handler for clicking a file in the file listing
|
||||
* Modifier keys change how we handle the selection in order to mimic file managers
|
||||
*
|
||||
* @param {event} e Event object
|
||||
* @returns {void}
|
||||
*/
|
||||
clickItem: function (e) {
|
||||
var item = $( e.currentTarget ).find('> .cMedia_item');
|
||||
var metaPressed = e.metaKey;
|
||||
var shiftPressed = e.shiftKey;
|
||||
|
||||
if( !metaPressed && !shiftPressed ){
|
||||
// If no special keys are pressed, unhighlight all and highlight this one
|
||||
this._unselectAll();
|
||||
item.addClass('cMedia_itemSelected');
|
||||
this._switchToTab('overview');
|
||||
} else if( metaPressed ) {
|
||||
// If meta key is pressed, toggle the state of the clicked image
|
||||
item.toggleClass( 'cMedia_itemSelected', ( !item.hasClass('cMedia_itemSelected') ) );
|
||||
} else if( shiftPressed ) {
|
||||
// If shift is pressed, select the whole run
|
||||
|
||||
// Find the first selected file
|
||||
var all = this._fileListing.find('.cMedia_item');
|
||||
var indexOfFirst = all.index( all.filter('.cMedia_itemSelected').first() );
|
||||
var indexOfClicked = all.index( item );
|
||||
var itemsToSelect = null;
|
||||
|
||||
// Unselect all to start with
|
||||
this._unselectAll();
|
||||
|
||||
// Select the run
|
||||
if( indexOfFirst == indexOfClicked ){
|
||||
itemsToSelect = item;
|
||||
} else if( indexOfFirst < indexOfClicked ){
|
||||
itemsToSelect = all.slice( indexOfFirst, indexOfClicked ).addBack( item );
|
||||
} else if( indexOfFirst > indexOfClicked ){
|
||||
itemsToSelect = all.slice( indexOfClicked, indexOfFirst + 1 );
|
||||
}
|
||||
|
||||
itemsToSelect.addClass('cMedia_itemSelected');
|
||||
}
|
||||
|
||||
this._updatePreview();
|
||||
this._checkDeleteButton();
|
||||
},
|
||||
|
||||
/**
|
||||
* Checks whether any files are selected and displays the delete button if so
|
||||
*
|
||||
* @returns {void}
|
||||
*/
|
||||
_checkDeleteButton: function () {
|
||||
var selected = this._getSelected().closest('[data-role="mediaItem"]');
|
||||
|
||||
if( selected.length == 0 ){
|
||||
this.scope.find('[data-action="deleteSelected"]').addClass('ipsHide');
|
||||
} else {
|
||||
this.scope.find('[data-action="deleteSelected"]').removeClass('ipsHide');
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Loads sub-folders of the given folder id
|
||||
*
|
||||
* @param {number} rowID Folder row ID to load
|
||||
* @param {string} url Url for this folder
|
||||
* @returns {void}
|
||||
*/
|
||||
_loadFolders: function (rowID, url) {
|
||||
var self = this;
|
||||
var row = this._folderListing.find('[data-folderID="' + rowID + '"]');
|
||||
|
||||
if( this._folderAjax && _.isFunction( this._folderAjax.abort ) ){
|
||||
this._folderAjax.abort();
|
||||
}
|
||||
|
||||
// If this row is loaded, we can just show it
|
||||
if( row.attr('data-loaded') ){
|
||||
return;
|
||||
}
|
||||
|
||||
this._folderAjax = ips.getAjax()( url, {
|
||||
data: {
|
||||
get: 'folders'
|
||||
}
|
||||
} )
|
||||
.done( function (response) {
|
||||
var subFolder = row.find('ul');
|
||||
var newHTML = [];
|
||||
|
||||
_.each( response, function (folder, key) {
|
||||
newHTML.push( folder );
|
||||
});
|
||||
|
||||
subFolder.html( newHTML.join('') );
|
||||
row.attr('data-loaded', true);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Loads files inside the given folder ID
|
||||
*
|
||||
* @param {number} folderID Folder row ID to load
|
||||
* @param {string} url Url for this folder
|
||||
* @returns {void}
|
||||
*/
|
||||
_loadFiles: function (folderID, url) {
|
||||
var self = this;
|
||||
|
||||
if( this._filesAjax && _.isFunction( this._filesAjax.abort ) ){
|
||||
this._filesAjax.abort();
|
||||
}
|
||||
|
||||
// Are we already viewing this folder?
|
||||
if( this._fileListing.attr('data-showing') == folderID ){
|
||||
return;
|
||||
}
|
||||
|
||||
// Do we have a cache already?
|
||||
if( !_.isUndefined( this._cachedFolders[ folderID ] ) ){
|
||||
this._buildFileListing( folderID, this._cachedFolders[ folderID ] );
|
||||
return;
|
||||
}
|
||||
|
||||
// No cache, so load the file listing
|
||||
this._fileListing.addClass('ipsLoading').html('');
|
||||
|
||||
ips.getAjax()( url, {
|
||||
data: {
|
||||
get: 'files'
|
||||
}
|
||||
} )
|
||||
.done( function (response) {
|
||||
var newHTML = [];
|
||||
|
||||
_.each( response, function (file, key) {
|
||||
newHTML.push( file );
|
||||
});
|
||||
|
||||
self._cachedFolders[ folderID ] = newHTML;
|
||||
self._buildFileListing( folderID, newHTML );
|
||||
})
|
||||
.always( function () {
|
||||
self._fileListing.removeClass('ipsLoading');
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Builds the file listing for the given folder ID from the given data
|
||||
*
|
||||
* @param {number} folderID Folder row ID to build
|
||||
* @param {array} data Array of file item HTML fragments
|
||||
* @returns {void}
|
||||
*/
|
||||
_buildFileListing: function (folderID, data) {
|
||||
var output;
|
||||
|
||||
if( !data.length ){
|
||||
output = ips.templates.render('templates.media.noItems');
|
||||
} else {
|
||||
output = ips.templates.render( 'templates.media.grid', {
|
||||
contents: data.join('')
|
||||
});
|
||||
}
|
||||
|
||||
this._fileListing.attr( 'data-showing', folderID ).html( output );
|
||||
$( document ).trigger( 'contentChange', [ this._fileListing ] );
|
||||
},
|
||||
|
||||
/**
|
||||
* Updates the preview panel in the sidebar by finding the selected item and extracting
|
||||
* relevant information about it to display
|
||||
*
|
||||
* @returns {void}
|
||||
*/
|
||||
_updatePreview: function () {
|
||||
// How many selected?
|
||||
var self = this;
|
||||
var selected = this._getSelected().closest('[data-role="mediaItem"]');
|
||||
|
||||
if( selected.length == 0 || selected.length > 1 ){
|
||||
// Build the string
|
||||
var language = ( selected.length == 0 ) ? ips.getString('mediaNoneSelected') : ips.pluralize( ips.getString('mediaMultipleSelected'), selected.length );
|
||||
// Insert it
|
||||
this._sidebar.find('[data-role="multipleItemsMessage"]').html( language );
|
||||
// Show the message box
|
||||
this._sidebar.find('[data-role="itemInformation"]').hide().end().find('[data-role="multipleItems"]').show();
|
||||
} else {
|
||||
|
||||
// Build the file info
|
||||
var info = {
|
||||
itemFilename: selected.attr('data-filename'),
|
||||
itemUploaded: selected.attr('data-uploaded'),
|
||||
itemTag: '{media="' + selected.attr('data-path') + '"}',
|
||||
itemID: selected.attr('data-fileid'),
|
||||
itemIsImage: selected.is('[data-isImage]'),
|
||||
itemFilesize: null,
|
||||
itemDimensions: null
|
||||
};
|
||||
|
||||
// Dimensions & filesize
|
||||
var cache = this._cachedFileInfo[ info.itemID ];
|
||||
|
||||
if( !_.isUndefined( cache ) ){
|
||||
info.itemFilesize = cache['itemFilesize'];
|
||||
info.itemDimensions = cache['itemDimensions'];
|
||||
} else {
|
||||
// Do ajax
|
||||
this._infoAjax = ips.getAjax()( '?app=cms&module=pages&controller=media&do=getFileInfo&id=' + info.itemID )
|
||||
.done( function (response) {
|
||||
self._cachedFileInfo[ info.itemID ] = {
|
||||
itemFilesize: response.fileSize,
|
||||
itemDimensions: response.dimensions
|
||||
};
|
||||
|
||||
self._sidebar.find('[data-role="itemFilesize"]').text( response.fileSize );
|
||||
self._sidebar.find('[data-role="itemDimensions"]').text( response.dimensions );
|
||||
});
|
||||
}
|
||||
|
||||
// Build thumbnail
|
||||
if( info.itemIsImage ){
|
||||
info.itemPreview = $('<img/>').attr( 'src', selected.attr('data-url') ).attr('data-ipsLightbox', true );
|
||||
} else {
|
||||
info.itemPreview = $('<div/>').addClass('ipsNoThumb');
|
||||
}
|
||||
|
||||
// Update the easy info
|
||||
_.each( info, function (value, key) {
|
||||
var elem = self._sidebar.find('[data-role="' + key + '"]');
|
||||
|
||||
if( !elem.length ){
|
||||
return;
|
||||
}
|
||||
|
||||
if( elem.is('input') ){
|
||||
elem.val( value );
|
||||
} else if( key == 'itemPreview' ) {
|
||||
elem.html( value );
|
||||
} else if( value === null ){
|
||||
elem.html( $('<span/>').addClass('ipsType_light').text('Loading...') );
|
||||
} else {
|
||||
elem.text( value );
|
||||
}
|
||||
});
|
||||
|
||||
// If this is an image, show the dimensions row
|
||||
this._sidebar.find('[data-role="itemDimensionsRow"]').toggle( info.itemIsImage );
|
||||
|
||||
// Pre-select the tag box
|
||||
this._sidebar.find('[data-role="itemTag"]').get(0).select();
|
||||
|
||||
// Hide the 'multiple items selected' div and show our info div
|
||||
this._sidebar.find('[data-role="itemInformation"]').show().end().find('[data-role="multipleItems"]').hide();
|
||||
|
||||
$( document ).trigger( 'contentChange', [ this._sidebar ] );
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Performs a tree search and displays results
|
||||
*
|
||||
* @returns {void}
|
||||
*/
|
||||
_doSearch: function () {
|
||||
if( this._searchAjax && _.isFunction( this._searchAjax.abort ) ){
|
||||
this._searchAjax.abort();
|
||||
}
|
||||
|
||||
var self = this;
|
||||
var value = this.scope.find('[data-role="mediaSearch"]').val();
|
||||
|
||||
if( !_.isEmpty( value ) ){
|
||||
this._searchResults.show().addClass('ipsLoading');
|
||||
this._fileListing.hide();
|
||||
this._folderListing.addClass('cMedia_treeDisabled');
|
||||
|
||||
this._searchAjax = ips.getAjax()( '?app=cms&module=pages&controller=media&do=search', {
|
||||
data: {
|
||||
input: value
|
||||
}
|
||||
})
|
||||
.done( function (response) {
|
||||
var newHTML = [];
|
||||
var output = '';
|
||||
|
||||
_.each( response, function (file, key) {
|
||||
newHTML.push( file );
|
||||
});
|
||||
|
||||
if( !newHTML.length ){
|
||||
output = ips.templates.render('templates.media.noSearchResults');
|
||||
} else {
|
||||
output = ips.templates.render( 'templates.media.grid', {
|
||||
contents: newHTML.join('')
|
||||
});
|
||||
}
|
||||
|
||||
self._searchResults.removeClass('ipsLoading').html( output );
|
||||
$( document ).trigger( 'contentChange', [ self._searchResults ] );
|
||||
|
||||
self._unselectAll();
|
||||
self._updatePreview();
|
||||
self._checkDeleteButton();
|
||||
})
|
||||
} else {
|
||||
this._searchResults.hide().html('');
|
||||
this._fileListing.show();
|
||||
this._folderListing.removeClass('cMedia_treeDisabled');
|
||||
this._updatePreview();
|
||||
this._checkDeleteButton();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns selected files, from the file listing or search results panels depending
|
||||
* on which is active
|
||||
*
|
||||
* @returns {object} jQuery collection of selected files
|
||||
*/
|
||||
_getSelected: function () {
|
||||
if( this._fileListing.is(':visible') ){
|
||||
return this._fileListing.find('.cMedia_itemSelected');
|
||||
} else {
|
||||
return this._searchResults.find('.cMedia_itemSelected');
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Resets the search box, hiding the results in the process
|
||||
*
|
||||
* @returns {void}
|
||||
*/
|
||||
_resetSearch: function () {
|
||||
this.scope.find('[data-role="mediaSearch"]').val('');
|
||||
this._searchResults.hide();
|
||||
this._fileListing.show();
|
||||
this._unselectAll();
|
||||
this._updatePreview();
|
||||
this._checkDeleteButton();
|
||||
},
|
||||
|
||||
/**
|
||||
* Unselects all files
|
||||
*
|
||||
* @returns {void}
|
||||
*/
|
||||
_unselectAll: function () {
|
||||
this._fileListing.find('.cMedia_item').removeClass('cMedia_itemSelected');
|
||||
this._searchResults.find('.cMedia_item').removeClass('cMedia_itemSelected');
|
||||
},
|
||||
|
||||
/**
|
||||
* Switches the sidebar to the given tab
|
||||
*
|
||||
* @param {string} tab Tab to switch to
|
||||
* @returns {void}
|
||||
*/
|
||||
_switchToTab: function (tab) {
|
||||
if( tab == 'overview' ){
|
||||
this.scope.find('#elTab_overview').click();
|
||||
}
|
||||
}
|
||||
});
|
||||
}(jQuery, _));]]></file>
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/pages" javascript_name="ips.pages.embed.js" javascript_type="controller" javascript_version="101012" javascript_position="1000250"><![CDATA[/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2013 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
* ips.pages.embed.js - Pages embed dialog
|
||||
*
|
||||
* Author: Rikki Tissier
|
||||
*/
|
||||
;( function($, _, undefined){
|
||||
"use strict";
|
||||
|
||||
ips.controller.register('cms.admin.pages.embed', {
|
||||
|
||||
initialize: function () {
|
||||
this.on( 'change', 'input[type="checkbox"]', this.toggleInherit );
|
||||
this.on( 'mouseenter', 'textarea', this.mouseEnterTextarea );
|
||||
},
|
||||
|
||||
/**
|
||||
* Event handler for mousing over the textareas - we'll select hem to make them easy to copy and paste
|
||||
*
|
||||
* @param {event} e Event object
|
||||
* @returns {void}
|
||||
*/
|
||||
mouseEnterTextarea: function (e) {
|
||||
$( e.currentTarget ).select();
|
||||
},
|
||||
|
||||
/**
|
||||
* Event handler for toggling the 'inherit styles' check
|
||||
*
|
||||
* @param {event} e Event object
|
||||
* @returns {void}
|
||||
*/
|
||||
toggleInherit: function (e) {
|
||||
var toggle = this.scope.find('input[type="checkbox"]');
|
||||
var textbox = this.scope.find('[data-role="blockCode"]');
|
||||
|
||||
if( toggle.is(':checked') ){
|
||||
textbox.val( textbox.val().replace("></div>", " data-inheritStyle='true'></div>") );
|
||||
} else {
|
||||
textbox.val( textbox.val().replace(" data-inheritStyle='true'></div>", "></div>") );
|
||||
}
|
||||
}
|
||||
});
|
||||
}(jQuery, _));]]></file>
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/pages" javascript_name="ips.pages.form.js" javascript_type="controller" javascript_version="101012" javascript_position="1000250"><![CDATA[/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2014 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
@@ -371,7 +1111,7 @@
|
||||
}
|
||||
});
|
||||
}(jQuery, _));]]></file>
|
||||
<file javascript_app="cms" javascript_location="front" javascript_path="controllers/records" javascript_name="ips.records.form.js" javascript_type="controller" javascript_version="100045" javascript_position="1000050"><![CDATA[/**
|
||||
<file javascript_app="cms" javascript_location="front" javascript_path="controllers/records" javascript_name="ips.records.form.js" javascript_type="controller" javascript_version="101012" javascript_position="1000100"><![CDATA[/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2014 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
@@ -483,7 +1223,7 @@
|
||||
}
|
||||
});
|
||||
}(jQuery, _));]]></file>
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.addForm.js" javascript_type="controller" javascript_version="100045" javascript_position="1000250">/**
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.addForm.js" javascript_type="controller" javascript_version="101012" javascript_position="1000300">/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2013 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
@@ -533,7 +1273,7 @@
|
||||
}
|
||||
});
|
||||
}(jQuery, _));</file>
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.conflict.js" javascript_type="controller" javascript_version="100045" javascript_position="1000250">/**
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.conflict.js" javascript_type="controller" javascript_version="101012" javascript_position="1000300">/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2013 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
@@ -605,7 +1345,7 @@
|
||||
}
|
||||
});
|
||||
}(jQuery, _));</file>
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.fileEditor.js" javascript_type="controller" javascript_version="100045" javascript_position="1000250"><![CDATA[/**
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.fileEditor.js" javascript_type="controller" javascript_version="101012" javascript_position="1000300"><![CDATA[/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2013 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
@@ -1458,7 +2198,7 @@
|
||||
}
|
||||
});
|
||||
}(jQuery, _));]]></file>
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.fileList.js" javascript_type="controller" javascript_version="100045" javascript_position="1000250"><![CDATA[/**
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.fileList.js" javascript_type="controller" javascript_version="101012" javascript_position="1000300"><![CDATA[/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2013 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
@@ -1778,7 +2518,7 @@
|
||||
}
|
||||
});
|
||||
}(jQuery, _));]]></file>
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.main.js" javascript_type="controller" javascript_version="100045" javascript_position="1000250">/**
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.main.js" javascript_type="controller" javascript_version="101012" javascript_position="1000300">/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2013 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
@@ -1819,7 +2559,7 @@
|
||||
|
||||
});
|
||||
}(jQuery, _));</file>
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.variablesDialog.js" javascript_type="controller" javascript_version="100045" javascript_position="1000250">/**
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.variablesDialog.js" javascript_type="controller" javascript_version="101012" javascript_position="1000300">/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2013 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
@@ -1857,7 +2597,7 @@
|
||||
}
|
||||
});
|
||||
}(jQuery, _));</file>
|
||||
<file javascript_app="cms" javascript_location="front" javascript_path="mixins" javascript_name="ips.cms.builder.area.js" javascript_type="mixins" javascript_version="100045" javascript_position="1000100"><![CDATA[/**
|
||||
<file javascript_app="cms" javascript_location="front" javascript_path="mixins" javascript_name="ips.cms.builder.area.js" javascript_type="mixins" javascript_version="101012" javascript_position="1000150"><![CDATA[/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2013 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
@@ -1923,7 +2663,7 @@
|
||||
|
||||
});
|
||||
}(jQuery, _));]]></file>
|
||||
<file javascript_app="cms" javascript_location="front" javascript_path="mixins" javascript_name="ips.cms.builder.block.js" javascript_type="mixins" javascript_version="100045" javascript_position="1000100"><![CDATA[/**
|
||||
<file javascript_app="cms" javascript_location="front" javascript_path="mixins" javascript_name="ips.cms.builder.block.js" javascript_type="mixins" javascript_version="101012" javascript_position="1000150"><![CDATA[/**
|
||||
* IPS Social Suite 4
|
||||
* (c) 2013 Invision Power Services - http://www.invisionpower.com
|
||||
*
|
||||
@@ -2029,7 +2769,24 @@
|
||||
|
||||
});
|
||||
}(jQuery, _));]]></file>
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="templates" javascript_name="ips.templates.templates.js" javascript_type="template" javascript_version="100045" javascript_position="1000250"><![CDATA[/* TEMPLATE EDITOR TEMPLATES */
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="templates" javascript_name="ips.templates.media.js" javascript_type="template" javascript_version="101012" javascript_position="1000300"><![CDATA[ips.templates.set( 'templates.media.grid', "\
|
||||
<ul class='ipsGrid' data-ipsGrid data-ipsGrid-minItemSize='100' data-ipsGrid-maxItemSize='200'>\
|
||||
{{{contents}}}\
|
||||
</ul>\
|
||||
");
|
||||
|
||||
ips.templates.set( 'templates.media.noItems', "\
|
||||
<div class='ipsType_center ipsType_large ipsType_light ipsPad_double'>\
|
||||
{{#lang}}mediaEmptyFolder{{/lang}}\
|
||||
</div>\
|
||||
");
|
||||
|
||||
ips.templates.set( 'templates.media.noSearchResults', "\
|
||||
<div class='ipsType_center ipsType_large ipsType_light ipsPad_double'>\
|
||||
{{#lang}}mediaNoResults{{/lang}}\
|
||||
</div>\
|
||||
");]]></file>
|
||||
<file javascript_app="cms" javascript_location="admin" javascript_path="templates" javascript_name="ips.templates.templates.js" javascript_type="template" javascript_version="101012" javascript_position="1000300"><![CDATA[/* TEMPLATE EDITOR TEMPLATES */
|
||||
/* TEMPLATECEPTION */
|
||||
ips.templates.set('templates.editor.newTab', " \
|
||||
<li data-fileid='{{fileid}}' data-location='{{location}}'>\
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<language>
|
||||
<app key="cms" version="100045">
|
||||
<app key="cms" version="101012">
|
||||
<word key="__app_cms" js="0">Pages</word>
|
||||
<word key="menutab__cms" js="0">Pages</word>
|
||||
<word key="menutab__cms_icon" js="0">book</word>
|
||||
@@ -9,6 +9,7 @@
|
||||
<word key="__indefart_content_record_reviews_title" js="0">a review</word>
|
||||
<word key="rebuilding_cms_database_categories" js="0">Rebuilding %s categories</word>
|
||||
<word key="rebuilding_cms_database_records" js="0">Rebuilding %s records</word>
|
||||
<word key="module_no_permission" js="0">No permission</word>
|
||||
<word key="sitemap_cms_Databases" js="0">Database Records</word>
|
||||
<word key="sitemap_cms_Pages" js="0">Pages</word>
|
||||
<word key="sitemap_databases_count" js="0">Number of records to include</word>
|
||||
@@ -77,6 +78,7 @@
|
||||
<word key="editor__cms_PageContent" js="0">CMS Pages</word>
|
||||
<word key="filestorage__cms_Records" js="0">CMS Records</word>
|
||||
<word key="filestorage__cms_Pages" js="0">CMS Pages</word>
|
||||
<word key="filestorage__cms_Media" js="0">CMS Media</word>
|
||||
<word key="modperms__cms_Databases" js="0">Databases</word>
|
||||
<word key="can_content_revisions_content" js="0">Can Manage Revisions</word>
|
||||
<word key="can_content_edit_meta_tags" js="0">Can manage meta tags</word>
|
||||
@@ -141,13 +143,15 @@
|
||||
<word key="cms_block_preview_refresh" js="0">Refresh Preview</word>
|
||||
<word key="cms_db_feed_title" js="0">Database Feeds</word>
|
||||
<word key="cms_db_feed_block_with_name" js="0">Feed from %s</word>
|
||||
<word key="cms_db_feed_block_with_name_disabled" js="0">Cannot create a feed for %s as this database is not assigned to a page</word>
|
||||
<word key="cms_block_form_display" js="0">Templates</word>
|
||||
<word key="block_key" js="0">Template Key</word>
|
||||
<word key="block_key_desc" js="0"><![CDATA[<p class='ipsMessage ipsMessage_info'>The block key can be used in HTML templates and manual pages to fetch a specific block, for instance: <span class='ipsType_monospace'>{block="my_block_key"}</span></p><br>The key must be unique for this database. If omitted, a key will be automatically generated.]]></word>
|
||||
<word key="block_key_desc" js="0"><![CDATA[<p class='ipsMessage ipsMessage_info'>The block key ('my_block_key') can be used in HTML templates and manual pages to fetch a specific block, for instance: <span class='ipsType_monospace'>{block="my_block_key"}</span></p><br>The key must be unique for this database. If omitted, a key will be automatically generated.]]></word>
|
||||
<word key="cms_block_key_not_unique" js="0">The block key is not unique</word>
|
||||
<word key="save_and_reload" js="0">Save and Reload</word>
|
||||
<word key="block_cache" js="0">Cache this block</word>
|
||||
<word key="block_cache_desc" js="0">If your block contains dynamic elements, such as member data, database counts, etc, you will need to prevent this block from being cached.</word>
|
||||
<word key="content_record_title_pl" js="0">Records</word>
|
||||
<word key="content_template_type_block" js="0">Block Plugin Templates</word>
|
||||
<word key="content_template_type_page" js="0">Page Templates</word>
|
||||
<word key="content_template_type_css" js="0">Page CSS</word>
|
||||
@@ -196,6 +200,15 @@
|
||||
<word key="template_group_existing" js="0">Existing Group</word>
|
||||
<word key="template_group_new" js="0">New Group</word>
|
||||
<word key="cms_theme_designer_mode_warning" js="0"><![CDATA[Theme editing is currently unavailabe in the ACP as you have designers' mode enabled.<br /><a href='%s'>Switch off designers' mode.</a>]]></word>
|
||||
<word key="cms_templates_export_title" js="0">Download Templates</word>
|
||||
<word key="cms_templates_export_description" js="0">Select the templates to export from the list below. These templates will be added to a single XML file that can be imported to other IPS4 communities.</word>
|
||||
<word key="templates_block" js="0">Blocks</word>
|
||||
<word key="templates_database" js="0">Database</word>
|
||||
<word key="templates_page" js="0">Pages</word>
|
||||
<word key="cms_no_templates_selected" js="0">You must select templates to export</word>
|
||||
<word key="cms_templates_import_title" js="0">Upload Templates</word>
|
||||
<word key="cms_templates_import" js="0">Upload</word>
|
||||
<word key="cms_templates_imported" js="0">Templates Imported</word>
|
||||
<word key="content_edit_folder" js="0">Edit Folder</word>
|
||||
<word key="content_add_folder" js="0">Add Folder</word>
|
||||
<word key="content_add_page" js="0">Add Page</word>
|
||||
@@ -267,37 +280,24 @@
|
||||
<word key="pages_different_gateway_load_error" js="0">Could not load Pages in this location. Have you uploaded the 'index.php' file?</word>
|
||||
<word key="pages_different_gateway_load_error_rewrite" js="0"><![CDATA[Could not load Pages in this location. Have you uploaded the 'index.php' file and installed the .htaccess file? <a href='{external.devdocs-pages_different_root}' target='_blank'>More information</a>]]></word>
|
||||
<word key="cms_root_page_url_rewrite_desc" js="0"><![CDATA[In order to support this you must <a href='{internal.app=cms&module=pages&controller=pages&do=htaccess}'><strong><u>download this file</u></strong></a>, rename it to '.htaccess' (with no file extension) and upload it to the same location as the special 'index.php' for Pages. If there is already a .htaccess file, add the contents of this one to the existing.<br>If you are not sure how to do this, contact technical support for assistance.]]></word>
|
||||
<word key="menu_type" js="0">Type</word>
|
||||
<word key="menu_type_desc" js="0">If you want to create a menu item that others can choose as a parent, choose 'Folder'.</word>
|
||||
<word key="cms_tag_blocks" js="0">Blocks</word>
|
||||
<word key="cms_tag_databases" js="0">Databases</word>
|
||||
<word key="cms_tag_pages" js="0">Pages</word>
|
||||
<word key="cms_error_page" js="0">Error Page</word>
|
||||
<word key="cms_error_page_desc" js="0">A custom error page will be shown when the suite displays an error. Page builder pages are not suitable for error pages.</word>
|
||||
<word key="cms_error_page_none" js="0">Do not use a custom error page</word>
|
||||
<word key="cms_error_page_message" js="0">Error Message</word>
|
||||
<word key="cms_error_page_code" js="0">Error Code</word>
|
||||
<word key="cms_articles_homepage_form" js="0">Homepage Options</word>
|
||||
<word key="menu_content_page" js="0">Page</word>
|
||||
<word key="content_page_form_tab__menu" js="0">Menu</word>
|
||||
<word key="page_add_to_menu" js="0">Add to front navigation menu</word>
|
||||
<word key="menu_title_page_type" js="0">Title</word>
|
||||
<word key="menu_title_page_inherit" js="0">Use the page name.</word>
|
||||
<word key="menu_title_page_custom" js="0">I will enter a different title.</word>
|
||||
<word key="menu_title_page" js="0">Title</word>
|
||||
<word key="menu_title_page_desc" js="0">You may leave this blank to use the page's title.</word>
|
||||
<word key="menu_content_url" js="0">URL</word>
|
||||
<word key="menu_content_url_desc" js="0">This is a full URL including http:// or https:// where appropriate.</word>
|
||||
<word key="menu_title_url" js="0">Title</word>
|
||||
<word key="menu_parent_id" js="0">Parent</word>
|
||||
<word key="cms_menu_form_type_page" js="0">Page</word>
|
||||
<word key="cms_menu_form_type_url" js="0">URL</word>
|
||||
<word key="cms_menu_form_type_separator" js="0">Separator</word>
|
||||
<word key="cms_menu_form_type_folder" js="0">Folder</word>
|
||||
<word key="cms_menu_adding" js="0">Add Menu Item</word>
|
||||
<word key="cms_menu_edit" js="0">Editing %s</word>
|
||||
<word key="menu_title_folder" js="0">Name</word>
|
||||
<word key="cms_menu_perm_any" js="0">All groups</word>
|
||||
<word key="menu_permission" js="0">Permission</word>
|
||||
<word key="menu_permission_desc" js="0">Select which groups can see this menu item</word>
|
||||
<word key="menu_permission_type" js="0">Permission Type</word>
|
||||
<word key="cms_menu_form_perm_page" js="0">Honor page's can view permission</word>
|
||||
<word key="cms_menu_form_perm_manual" js="0">Manually set permission</word>
|
||||
<word key="content_page_form_tab__menu" js="0">Menu</word>
|
||||
<word key="page_add_to_menu" js="0">Add to menu</word>
|
||||
<word key="page_add_to_menu_desc" js="0">If you have not yet set one up then a new menu will be created replacing the default app menu item.</word>
|
||||
<word key="cms_menu_information" js="0">Adding a new menu item without a parent will create a new top level tab in the suite navigation bar.</word>
|
||||
<word key="cms_menu_no_item_perm" js="0">No view permissions</word>
|
||||
<word key="cms_menu_add_child" js="0">Create Child</word>
|
||||
<word key="cms_menu" js="0">Menu</word>
|
||||
<word key="folder" js="0">Add Folder</word>
|
||||
<word key="folder_add_child" js="0">Add Folder</word>
|
||||
<word key="menu_parent" js="0">Parent</word>
|
||||
<word key="field_title" js="0">Title</word>
|
||||
<word key="field_description" js="0">Description</word>
|
||||
<word key="field_type" js="0">Type</word>
|
||||
@@ -390,6 +390,7 @@
|
||||
<word key="pfield_options" js="0">Settings</word>
|
||||
<word key="field_display_none" js="0">No formatting</word>
|
||||
<word key="pf_type_Youtube" js="0">YouTube</word>
|
||||
<word key="pf_type_Relational" js="0">Database Relationship</word>
|
||||
<word key="media_display_listing_method" js="0">In listing, show as</word>
|
||||
<word key="media_display_display_method" js="0">In a record, display as</word>
|
||||
<word key="media_display_as_player" js="0">Embedded Player</word>
|
||||
@@ -401,6 +402,7 @@
|
||||
<word key="field_placeholder_youtube" js="0">Youtube URL</word>
|
||||
<word key="field_placeholder_spotify" js="0">Spotify URL</word>
|
||||
<word key="field_placeholder_soundcloud" js="0">Soundcloud URL</word>
|
||||
<word key="field_placeholder_relational" js="0">Start typing the title of a %s</word>
|
||||
<word key="cms_upload_field_is_image" js="0">Upload images only</word>
|
||||
<word key="cms_upload_field_is_not_image" js="0">Upload any files</word>
|
||||
<word key="field_image_size" js="0">Max. image dimensions</word>
|
||||
@@ -415,6 +417,13 @@
|
||||
<word key="field_default_update_existing" js="0">Update existing records</word>
|
||||
<word key="field_default_update_existing_desc" js="0">This will update existing records with the current default value to the new default value</word>
|
||||
<word key="field_upload_is_multiple" js="0">Allow multiple uploads</word>
|
||||
<word key="field_relational_db" js="0">Database</word>
|
||||
<word key="cms_relational_field_no_dbs" js="0">There are no databases to select</word>
|
||||
<word key="cms_relational_field_no_db_selected" js="0">You must select a database</word>
|
||||
<word key="field_display_display_json_where" js="0">Display</word>
|
||||
<word key="field_display_display_json_where_desc" js="0">This may not have any affect when using custom templates</word>
|
||||
<word key="cms_field_display_top" js="0">Above the item content</word>
|
||||
<word key="cms_field_display_bottom" js="0">Under the item content</word>
|
||||
<word key="content_content_form_tab__config" js="0">Configuration</word>
|
||||
<word key="content_cat_db_title" js="0">%s Categories</word>
|
||||
<word key="content_cat_furl_not_unique" js="0">The FURL slug is not unique</word>
|
||||
@@ -469,6 +478,7 @@
|
||||
<word key="record_author_choice" js="0">Author</word>
|
||||
<word key="record_author_choice_me" js="0">I am the author</word>
|
||||
<word key="record_author_choice_notme" js="0">Choose a member</word>
|
||||
<word key="record_author_choice_guest" js="0">Guest</word>
|
||||
<word key="record_member_id" js="0">Author's Name</word>
|
||||
<word key="content_database_record_tab_comments" js="0">Comments</word>
|
||||
<word key="record_allow_comments" js="0">Allow comments</word>
|
||||
@@ -644,6 +654,36 @@
|
||||
<word key="database_record_image_desc" js="0">This adds an image upload field to the record form. The image is displayed within the record text area by default.</word>
|
||||
<word key="cms_no_db_page_no_forum_link" js="0">These settings will have no affect until this database is added to a page.</word>
|
||||
<word key="cms_database_no_forum_selected" js="0">You have post topic enabled but have not selected a forum.</word>
|
||||
<word key="cms_database_promote" js="0">Promote from Forums</word>
|
||||
<word key="cms_promote_enabled" js="0">Enable</word>
|
||||
<word key="cms_promote_cat" js="0">Add to category</word>
|
||||
<word key="cms_promote_groups" js="0">Available for</word>
|
||||
<word key="menu__cms_pages_media" js="0">Media</word>
|
||||
<word key="r__media" js="0">Media</word>
|
||||
<word key="r__media_manage" js="0">View Media</word>
|
||||
<word key="r__media_add" js="0">Add Media</word>
|
||||
<word key="r__media_edit" js="0">Edit Media</word>
|
||||
<word key="r__media_delete" js="0">Delete Media</word>
|
||||
<word key="cms_add_media_folder" js="0">New Folder</word>
|
||||
<word key="cms_add_media" js="0">Upload New Media</word>
|
||||
<word key="cms_delete_selected_media" js="0">Delete Selected</word>
|
||||
<word key="cms_search_media" js="0">Search media...</word>
|
||||
<word key="media_folders" js="0">Folders</word>
|
||||
<word key="media_file_overview" js="0">File Overview</word>
|
||||
<word key="media_root_folder" js="0">Pages Media</word>
|
||||
<word key="media_tag_title" js="0">Media Tag</word>
|
||||
<word key="media_tag_desc" js="0">Insert this tag in your pages/templates to insert this media item.</word>
|
||||
<word key="media_folder_name" js="0">Name</word>
|
||||
<word key="media_folder_parent" js="0">Parent</word>
|
||||
<word key="cms_media_preview" js="0">Preview</word>
|
||||
<word key="cms_no_media" js="0">Could not locate that media item</word>
|
||||
<word key="media_filename" js="0">Filename</word>
|
||||
<word key="media_uploaded" js="0">Uploaded</word>
|
||||
<word key="media_size" js="0">File Size</word>
|
||||
<word key="media_dims" js="0">Dimensions</word>
|
||||
<word key="media_parent" js="0">Parent</word>
|
||||
<word key="cms_media_key" js="0"><![CDATA[View page & template tag]]></word>
|
||||
<word key="cms_key_view" js="0"><![CDATA[This key can be used in blocks, pages and templates to fetch the URL of this media item.<br>The current URL for this item is: %s.]]></word>
|
||||
<word key="content_categories_title" js="0">Categories</word>
|
||||
<word key="content_subcategories_title" js="0">Subcategories</word>
|
||||
<word key="x_records" js="0">%d %s</word>
|
||||
@@ -669,6 +709,7 @@
|
||||
<word key="content_record_form_new_record" js="0">Create New %s</word>
|
||||
<word key="content_record_comment_title" js="0">%s Comment</word>
|
||||
<word key="content_record_comments_title" js="0">%s Comments</word>
|
||||
<word key="content_record_review_title" js="0">%s Review</word>
|
||||
<word key="content_record_reviews_title" js="0">%s Reviews</word>
|
||||
<word key="record_type" js="0">Type</word>
|
||||
<word key="content_all_records" js="0">All</word>
|
||||
@@ -721,7 +762,7 @@
|
||||
<word key="cms_next_unread_title" js="0">Next unread %s</word>
|
||||
<word key="cms_record_field_changed" js="0"><![CDATA[Changed <strong>%s</strong> to <strong>%s</strong>]]></word>
|
||||
<word key="content_record_form_auto_follow" js="0"></word>
|
||||
<word key="cms_locked_can_comment" js="0">This is now closed for further comments</word>
|
||||
<word key="cms_locked_can_comment" js="0">This %s is locked, but your permissions allow you to add new replies.</word>
|
||||
<word key="cms_select_category" js="0">Select a category</word>
|
||||
<word key="cms_create_menu_records_x" js="0">%s in %s</word>
|
||||
<word key="record_display_field_change" js="0">Add a comment recording this change.</word>
|
||||
@@ -729,6 +770,7 @@
|
||||
<word key="record_no_revision_data" js="0">No changes recorded</word>
|
||||
<word key="record_locked_cannot_comment" js="0">This is now closed for further comments</word>
|
||||
<word key="cms_moderator_options" js="0">Moderator Options</word>
|
||||
<word key="cms_db_in_use_by_page" js="0">Database '%s' is already used by page '%s'</word>
|
||||
<word key="cms_rf_database" js="0">Database</word>
|
||||
<word key="cms_rf_database_desc" js="0">This cannot be changed. If you want to create a feed from a different database, please create a new custom block.</word>
|
||||
<word key="cms_rf_category" js="0">Categories</word>
|
||||
@@ -757,7 +799,6 @@
|
||||
<word key="cms_rf_sort_dir_asc" js="0">Ascending (0-9)</word>
|
||||
<word key="block_RecordFeed" js="0">Record Feed</word>
|
||||
<word key="block_RecordFeed_desc" js="0">Create a customizable feed of database records</word>
|
||||
<word key="cms_rf_tags" js="0">With tags</word>
|
||||
<word key="block_Editor" js="0">Plain HTML Editor</word>
|
||||
<word key="block_Editor_desc" js="0">Adds entered text as HTML</word>
|
||||
<word key="block_Wysiwyg" js="0">WYSIWYG Editor</word>
|
||||
@@ -788,6 +829,7 @@
|
||||
<word key="block_rss_import_number" js="0">Number of items to show</word>
|
||||
<word key="block_rss_import_cache" js="0">Cache for</word>
|
||||
<word key="block_rss_import_cache_suffix" js="0">minutes</word>
|
||||
<word key="widget_feed_container_cms" js="0">Categories</word>
|
||||
<word key="loc_cms_viewing_page" js="0">Viewing %s</word>
|
||||
<word key="loc_cms_viewing_db_cat" js="0">Viewing %s category %s</word>
|
||||
<word key="loc_cms_viewing_db_record" js="0">Viewing %s in category %s: %s</word>
|
||||
@@ -801,10 +843,24 @@
|
||||
<word key="acplogs__cms_added_database" js="0">Added Database: %s</word>
|
||||
<word key="acplogs__cms_edited_database" js="0">Edited Database: %s</word>
|
||||
<word key="acplogs__cms_deleted_database" js="0">Deleted Database: %s</word>
|
||||
<word key="block_embed_options" js="0">External embed</word>
|
||||
<word key="embed_message" js="0"><![CDATA[This feature allows you to embed this block on an external page that <strong>isn't</strong> part of your IPS Community Suite. For pages created within the IPS Community Suite, use the normal embedding method instead.]]></word>
|
||||
<word key="embed_1_title" js="0">Emedding this block</word>
|
||||
<word key="embed_1_desc" js="0">To embed this block, paste the following code in your page where you'd like it to display. You can optionally have the block automatically inherit some styles (font family, link color, etc.) from the page it appears on.</word>
|
||||
<word key="embed_1_toggle" js="0">Inherit key styles from the parent page</word>
|
||||
<word key="embed_2_title" js="0">Insert the loader</word>
|
||||
<word key="embed_2_desc" js="0"><![CDATA[You'll also need to insert the loader into your page. You only need to do this <strong>once per page</strong>, even if you use many external blocks. It should be inserted either in your <code><head></code> tag, or just before the <code></body></code> tag.]]></word>
|
||||
<word key="view_this_cmsrecord" js="0">View the %s %s</word>
|
||||
<word key="cms_download_db" js="1">Download Database</word>
|
||||
<word key="cms_download_db_explain" js="1"><![CDATA[This will download a file with the database settings, templates, custom fields and categories which can be uploaded to another community.<br>Records are <em>not</em> included.]]></word>
|
||||
<word key="index_as_categories" js="1">Show categories</word>
|
||||
<word key="index_as_records" js="1">Show record list</word>
|
||||
<word key="mediaNoneSelected" js="1">No media items selected</word>
|
||||
<word key="mediaMultipleSelected" js="1">{# [1:media item selected][?:media items selected]}</word>
|
||||
<word key="mediaEmptyFolder" js="1">There's no items in this folder yet</word>
|
||||
<word key="mediaConfirmDelete" js="1">Are you sure you want to delete {!# [1:this file][?:# selected files]}?</word>
|
||||
<word key="mediaErrorDeleting" js="1">There was an error deleting {!# [1:this file][?:these files]}</word>
|
||||
<word key="mediaNoResults" js="1">No files match your search term</word>
|
||||
<word key="mediaUploadedCount" js="1">{!# [1:A file was][?:# files were]} added to this folder</word>
|
||||
</app>
|
||||
</language>
|
||||
+217
-134
@@ -3170,140 +3170,6 @@
|
||||
"collation": "utf8mb4_unicode_ci",
|
||||
"engine": "InnoDB"
|
||||
},
|
||||
"cms_page_menu": {
|
||||
"name": "cms_page_menu",
|
||||
"columns": {
|
||||
"menu_id": {
|
||||
"allow_null": false,
|
||||
"auto_increment": true,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": null,
|
||||
"length": 10,
|
||||
"name": "menu_id",
|
||||
"type": "INT",
|
||||
"unsigned": false,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
},
|
||||
"menu_parent_id": {
|
||||
"allow_null": false,
|
||||
"auto_increment": false,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": "0",
|
||||
"length": 10,
|
||||
"name": "menu_parent_id",
|
||||
"type": "INT",
|
||||
"unsigned": true,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
},
|
||||
"menu_position": {
|
||||
"allow_null": false,
|
||||
"auto_increment": false,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": "0",
|
||||
"length": 10,
|
||||
"name": "menu_position",
|
||||
"type": "INT",
|
||||
"unsigned": false,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
},
|
||||
"menu_type": {
|
||||
"allow_null": true,
|
||||
"auto_increment": false,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": null,
|
||||
"length": 0,
|
||||
"name": "menu_type",
|
||||
"type": "SET",
|
||||
"unsigned": false,
|
||||
"values": [
|
||||
"url",
|
||||
"page",
|
||||
"separator",
|
||||
"folder"
|
||||
],
|
||||
"zerofill": false
|
||||
},
|
||||
"menu_content": {
|
||||
"allow_null": true,
|
||||
"auto_increment": false,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": null,
|
||||
"length": 0,
|
||||
"name": "menu_content",
|
||||
"type": "TEXT",
|
||||
"unsigned": false,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
},
|
||||
"menu_title": {
|
||||
"allow_null": false,
|
||||
"auto_increment": false,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": "",
|
||||
"length": 255,
|
||||
"name": "menu_title",
|
||||
"type": "VARCHAR",
|
||||
"unsigned": false,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
},
|
||||
"menu_permission": {
|
||||
"allow_null": true,
|
||||
"auto_increment": false,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": null,
|
||||
"length": 0,
|
||||
"name": "menu_permission",
|
||||
"type": "TEXT",
|
||||
"unsigned": false,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
},
|
||||
"menu_attributes": {
|
||||
"allow_null": true,
|
||||
"auto_increment": false,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": null,
|
||||
"length": 0,
|
||||
"name": "menu_attributes",
|
||||
"type": "TEXT",
|
||||
"unsigned": false,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"PRIMARY": {
|
||||
"type": "primary",
|
||||
"name": "PRIMARY",
|
||||
"length": [
|
||||
null
|
||||
],
|
||||
"columns": [
|
||||
"menu_id"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"cms_database_reviews": {
|
||||
"name": "cms_database_reviews",
|
||||
"columns": {
|
||||
@@ -3584,5 +3450,222 @@
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"cms_media": {
|
||||
"name": "cms_media",
|
||||
"columns": {
|
||||
"media_id": {
|
||||
"allow_null": false,
|
||||
"auto_increment": true,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": null,
|
||||
"length": 10,
|
||||
"name": "media_id",
|
||||
"type": "INT",
|
||||
"unsigned": false,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
},
|
||||
"media_parent": {
|
||||
"allow_null": false,
|
||||
"auto_increment": false,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": "0",
|
||||
"length": 10,
|
||||
"name": "media_parent",
|
||||
"type": "INT",
|
||||
"unsigned": false,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
},
|
||||
"media_filename": {
|
||||
"allow_null": false,
|
||||
"auto_increment": false,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": "",
|
||||
"length": 255,
|
||||
"name": "media_filename",
|
||||
"type": "VARCHAR",
|
||||
"unsigned": false,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
},
|
||||
"media_added": {
|
||||
"allow_null": false,
|
||||
"auto_increment": false,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": "0",
|
||||
"length": 10,
|
||||
"name": "media_added",
|
||||
"type": "INT",
|
||||
"unsigned": false,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
},
|
||||
"media_full_path": {
|
||||
"allow_null": true,
|
||||
"auto_increment": false,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": null,
|
||||
"length": 0,
|
||||
"name": "media_full_path",
|
||||
"type": "TEXT",
|
||||
"unsigned": false,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
},
|
||||
"media_file_object": {
|
||||
"name": "media_file_object",
|
||||
"type": "TEXT",
|
||||
"length": null,
|
||||
"decimals": null,
|
||||
"values": [],
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"media_filename_stored": {
|
||||
"name": "media_filename_stored",
|
||||
"type": "TEXT",
|
||||
"length": null,
|
||||
"decimals": null,
|
||||
"values": [],
|
||||
"allow_null": true,
|
||||
"default": null,
|
||||
"comment": "",
|
||||
"unsigned": false,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
},
|
||||
"media_is_image": {
|
||||
"name": "media_is_image",
|
||||
"type": "TINYINT",
|
||||
"length": 1,
|
||||
"decimals": null,
|
||||
"values": [],
|
||||
"allow_null": false,
|
||||
"default": "0",
|
||||
"comment": "",
|
||||
"unsigned": true,
|
||||
"zerofill": false,
|
||||
"auto_increment": false,
|
||||
"binary": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"PRIMARY": {
|
||||
"type": "primary",
|
||||
"name": "PRIMARY",
|
||||
"length": [
|
||||
null
|
||||
],
|
||||
"columns": [
|
||||
"media_id"
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "latin1_swedish_ci",
|
||||
"engine": "InnoDB"
|
||||
},
|
||||
"cms_media_folders": {
|
||||
"name": "cms_media_folders",
|
||||
"columns": {
|
||||
"media_folder_id": {
|
||||
"allow_null": false,
|
||||
"auto_increment": true,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": null,
|
||||
"length": 10,
|
||||
"name": "media_folder_id",
|
||||
"type": "INT",
|
||||
"unsigned": false,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
},
|
||||
"media_folder_parent": {
|
||||
"allow_null": false,
|
||||
"auto_increment": false,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": "0",
|
||||
"length": 10,
|
||||
"name": "media_folder_parent",
|
||||
"type": "INT",
|
||||
"unsigned": false,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
},
|
||||
"media_folder_name": {
|
||||
"allow_null": false,
|
||||
"auto_increment": false,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": "",
|
||||
"length": 255,
|
||||
"name": "media_folder_name",
|
||||
"type": "VARCHAR",
|
||||
"unsigned": false,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
},
|
||||
"media_folder_path": {
|
||||
"allow_null": true,
|
||||
"auto_increment": false,
|
||||
"binary": false,
|
||||
"comment": "",
|
||||
"decimals": null,
|
||||
"default": null,
|
||||
"length": 0,
|
||||
"name": "media_folder_path",
|
||||
"type": "TEXT",
|
||||
"unsigned": false,
|
||||
"values": [],
|
||||
"zerofill": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"PRIMARY": {
|
||||
"type": "primary",
|
||||
"name": "PRIMARY",
|
||||
"length": [
|
||||
null
|
||||
],
|
||||
"columns": [
|
||||
"media_folder_id"
|
||||
]
|
||||
},
|
||||
"media_folder_parent": {
|
||||
"type": "key",
|
||||
"name": "media_folder_parent",
|
||||
"length": [
|
||||
null
|
||||
],
|
||||
"columns": [
|
||||
"media_folder_parent"
|
||||
]
|
||||
}
|
||||
},
|
||||
"collation": "latin1_swedish_ci",
|
||||
"engine": "InnoDB",
|
||||
"comment": ""
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,20 @@
|
||||
[
|
||||
{
|
||||
"key": "cms_error_page",
|
||||
"default": "0"
|
||||
},
|
||||
{
|
||||
"key": "cms_promote_cat",
|
||||
"default": "0"
|
||||
},
|
||||
{
|
||||
"key": "cms_promote_enabled",
|
||||
"default": "0"
|
||||
},
|
||||
{
|
||||
"key": "cms_promote_groups",
|
||||
"default": "*"
|
||||
},
|
||||
{
|
||||
"key": "cms_root_page_url",
|
||||
"default": ""
|
||||
|
||||
+391
-52
@@ -1,5 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<theme name="Default" author_name="Invision Power Services, Inc" author_url="http://www.invisionpower.com">
|
||||
<template template_group="blocks" template_name="embedCode" template_data="$block, $embedKey" template_location="admin" template_app="cms"><![CDATA[
|
||||
<div class="ipsMessage ipsMessage_info">
|
||||
{lang="embed_message"}
|
||||
</div>
|
||||
|
||||
<div data-controller='cms.admin.pages.embed'>
|
||||
<div class='ipsPhotoPanel ipsPhotoPanel_mini ipsSpacer_top ipsSpacer_double'>
|
||||
<span class='ipsPos_left ipsBadge ipsBadge_large ipsBadge_icon ipsBadge_positive'>1</span>
|
||||
<div>
|
||||
<h2 class='ipsType_sectionHead'>{lang="embed_1_title"}</h2>
|
||||
<p>{lang="embed_1_desc"}</p>
|
||||
|
||||
<div class='ipsAreaBackground ipsPad'>
|
||||
<input type='checkbox' id='elEmbedInherit' checked> <span class='ipsType_medium'>{lang="embed_1_toggle"}</span>
|
||||
<textarea rows='2' spellcheck='false' class='ipsType_monospace ipsSpacer_top ipsSpacer_half' data-role='blockCode'><div id='block_{$embedKey}' data-blockID='{$block->key}' class='ipsExternalWidget' data-inheritStyle='true'></div></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class='ipsHr'>
|
||||
|
||||
<div class='ipsPhotoPanel ipsPhotoPanel_mini'>
|
||||
<span class='ipsPos_left ipsBadge ipsBadge_large ipsBadge_icon ipsBadge_positive'>2</span>
|
||||
<div>
|
||||
<h2 class='ipsType_sectionHead'>{lang="embed_2_title"}</h2>
|
||||
<p>{lang="embed_2_desc"}</p>
|
||||
|
||||
<div class='ipsAreaBackground ipsPad'>
|
||||
<textarea rows='2' spellcheck='false' class='ipsType_monospace'><script type='text/javascript' src='{url="applications/cms/interface/external/external.js" base="none"}' id='ipsWidgetLoader'></script></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>]]></template>
|
||||
<template template_group="blocks" template_name="pluginSelector" template_data="$plugins, $id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $formClass='', $attributes=array(), $sidebar=''" template_location="admin" template_app="cms"><![CDATA[<div class='acpBlock'>
|
||||
<form accept-charset='utf-8' action="{$action}" method="post">
|
||||
<input type="hidden" name="{$id}_submitted" value="1">
|
||||
@@ -83,6 +116,9 @@
|
||||
<a class="ipsPos_right ipsBadge ipsBadge_style1" href="{$page->url()}" target="_blank">{lang="cms_db_used_on_page" sprintf="$page->_title"}</a>
|
||||
{{endif}}
|
||||
<p class='ipsType_light'>{$database->_description}</p>]]></template>
|
||||
<template template_group="global" template_name="basicRelationship" template_data="$items" template_location="front" template_app="cms"><![CDATA[{{foreach $items as $id => $item}}
|
||||
<a href="{$item->url()}">{$item->_title}</a>
|
||||
{{endforeach}}]]></template>
|
||||
<template template_group="global" template_name="commentTableHeader" template_data="$comment, $record" template_location="front" template_app="cms"><![CDATA[{{$iposted = $record->container()->contentPostedIn();}}
|
||||
{{$idField = $record::$databaseColumnId;}}
|
||||
<div>
|
||||
@@ -102,27 +138,6 @@
|
||||
{{endif}}
|
||||
</h3>
|
||||
<p class='ipsType_normal ipsType_light ipsType_blendLinks ipsType_reset'>{lang="in"} <a href='{$record->container()->url()}'>{$record->container()->_title}</a></p>
|
||||
</div>]]></template>
|
||||
<template template_group="global" template_name="snippet" template_data="$activity, $type='activity'" template_location="front" template_app="cms"><![CDATA[<div class='cSearchActivity_info ipsContained'>
|
||||
{{if in_array( 'IPS\cms\Records', class_parents( $activity ) )}}
|
||||
{{if $type != 'search'}}<a href='{$activity->url()}' class='ipsType_normal ipsType_break'>{$activity->mapped('title')}</a>{{endif}}
|
||||
<div class='ipsType_medium ipsType_richText ipsContained {{if $type != 'search'}}ipsSpacer_both{{else}}ipsSpacer_bottom{{endif}} ipsSpacer_half' data-ipsTruncate data-ipsTruncate-size='3 lines' data-ipsTruncate-type='remove'>
|
||||
{$activity->truncated()|raw}
|
||||
</div>
|
||||
<ul class='ipsList_inline ipsType_light'>
|
||||
<li>{lang="replies_number" pluralize="$activity->mapped('num_comments')"}</li>
|
||||
<li>{lang="num_views_with_number" pluralize="$activity->mapped('views')"}</li>
|
||||
</ul>
|
||||
{{else}}
|
||||
<div class='ipsType_medium ipsType_richText ipsContained ipsSpacer_bottom ipsSpacer_half' data-ipsTruncate data-ipsTruncate-size='3 lines' data-ipsTruncate-type='remove'>
|
||||
{$activity->truncated()|raw}
|
||||
</div>
|
||||
{{if $type != 'search' and $activity instanceof \IPS\Content\Reputation and settings.reputation_enabled}}
|
||||
<ul class='ipsList_inline ipsType_light'>
|
||||
<li>{template="reputationMini" group="global" app="core" params="$activity, '', NULL, TRUE"}</li>
|
||||
</ul>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
</div>]]></template>
|
||||
<template template_group="global" template_name="uploadDisplay" template_data="$file, $record" template_location="front" template_app="cms"><![CDATA[{{if $file->isImage()}}
|
||||
<img src="$file->url" class="ipsImage" data-ipsLightbox>
|
||||
@@ -133,6 +148,131 @@
|
||||
<a href="{$file->url}">{$file->originalFilename}</a>
|
||||
{{endif}}
|
||||
{{endif}}]]></template>
|
||||
<template template_group="media" template_name="fileListing" template_data="$url, $item" template_location="admin" template_app="cms"><![CDATA[
|
||||
{{if $item instanceof \IPS\cms\Media}}
|
||||
<li class='ipsGrid_span4' data-role='mediaItem' data-fileid='{$item->id}' data-uploaded='{datetime="$item->added" dateonly="true"}' data-path='{$item->full_path}' data-filename='{$item->filename}' data-url='{$item->url()}' {{if $item->is_image}}data-isImage{{endif}}>
|
||||
<div class='cMedia_item {{if $item->is_image}}cMedia_itemImage{{endif}}'>
|
||||
<div class='ipsAreaBackground_light'>
|
||||
{{if $item->is_image}}
|
||||
<img src='{$item->url()}'>
|
||||
{{else}}
|
||||
<div class='ipsNoThumb'></div>
|
||||
{{endif}}
|
||||
</div>
|
||||
<p class='cMedia_filename ipsType_reset ipsTruncate ipsTruncate_line'>{$item->filename}</p>
|
||||
</div>
|
||||
</li>
|
||||
{{endif}}]]></template>
|
||||
<template template_group="media" template_name="folderRow" template_data="$url, $row" template_location="admin" template_app="cms"><![CDATA[
|
||||
{{if !( $row instanceof \IPS\cms\Media )}}
|
||||
<li class='ipsTreeList_inactiveBranch' data-role="mediaFolder" data-folderID='{$row->id}'>
|
||||
<a href='{$url->setQueryString( array( 'root' => $row->id ) )}'>{$row->name}</a>
|
||||
<ul></ul>
|
||||
</li>
|
||||
{{endif}}]]></template>
|
||||
<template template_group="media" template_name="media" template_data="$tree" template_location="admin" template_app="cms"><![CDATA[
|
||||
{{$rootButtons = call_user_func( $tree->getRootButtons );}}
|
||||
|
||||
<div data-controller='cms.admin.media.main' class='cMedia_manager'>
|
||||
<div class='acpBlock_title acpBlock_titleDark ipsAreaBackground_dark ipsPad'>
|
||||
<div class='ipsColumns ipsColumns_collapsePhone'>
|
||||
<div class='ipsColumn ipsColumn_wide'>
|
||||
{{if $rootButtons['add_folder']}}
|
||||
<a href='{$rootButtons['add_folder']['link']}' data-ipsDialog data-ipsDialog-title='{lang="cms_add_media_folder"}' class='ipsButton ipsButton_light ipsButton_small' data-role='folderButton'><i class='fa fa-plus'></i> {lang="cms_add_media_folder"}</a>
|
||||
{{endif}}
|
||||
</div>
|
||||
<div class='ipsColumn ipsColumn_fluid'>
|
||||
<ul class='ipsToolList ipsToolList_horizontal'>
|
||||
{{if $rootButtons['add_page']}}
|
||||
<li class='ipsPos_left'><a href='{url="app=cms&module=pages&controller=media&do=upload"}' data-ipsDialog data-ipsDialog-forceReload data-ipsDialog-remoteSubmit data-ipsDialog-title='{lang="cms_add_media"}' class='ipsButton ipsButton_normal ipsButton_small ipsButton_fullWidth' data-role='uploadButton'><i class='fa fa-cloud-upload'></i> {lang="cms_add_media"}</a></li>
|
||||
{{endif}}
|
||||
<li class='ipsPos_left ipsHide' data-action='deleteSelected'><a href='#' class='ipsButton ipsButton_negative ipsButton_small ipsButton_fullWidth'><i class='fa fa-times'></i> {lang="cms_delete_selected_media"}</a></li>
|
||||
<li class='ipsResponsive_showPhone ipsResponsive_block'><hr class='ipsHr'></li>
|
||||
<li class='ipsPos_right'>
|
||||
<input type='search' class='' data-role='mediaSearch' id='elMedia_searchField' placeholder='{lang="cms_search_media"}'>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ipsAreaBackground ipsPad'>
|
||||
<div class='ipsColumns ipsColumns_collapsePhone'>
|
||||
<div class='ipsColumn ipsColumn_wide'>
|
||||
<div class="ipsTabs ipsTabs_stretch ipsClearfix acpFormTabBar" id="elMedia_sidebarTabs" data-ipsTabBar data-ipsTabBar-contentarea="#elMedia_sidebar" data-ipstabbar-updateurl="false">
|
||||
<a href="#elMedia_sidebarTabs" data-action="expandTabs"><i class="fa fa-caret-down"></i></a>
|
||||
<ul role='tablist'>
|
||||
<li>
|
||||
<a href="#" class="ipsTabs_item ipsTabs_activeItem" data-type="templates" id="elTab_folders" aria-selected="true">{lang="media_folders"}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" class="ipsTabs_item ipsTabs_itemDisabled" id='elTab_overview' data-type="css">{lang="media_file_overview"}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id='elMedia_sidebar' class='ipsAreaBackground_reset ipsScrollbar'>
|
||||
<div id='ipsTabs_elMedia_sidebarTabs_elTab_folders_panel' class='ipsTabs_panel ipsPad'>
|
||||
{{$roots = call_user_func( $tree->getRoots );}}
|
||||
<ul class='ipsTreeList' data-role='folderList'>
|
||||
<li class='ipsTreeList_activeBranch ipsTreeList_activeNode' data-role="mediaFolder" data-folderID='0' data-loaded='true'>
|
||||
<a href='{$tree->url->setQueryString( array('root' => 0 ) )}'>{lang="media_root_folder"}</a>
|
||||
<ul>
|
||||
{{foreach $roots as $id => $row}}
|
||||
{template="folderRow" group="media" app="cms" params="$tree->url, $row"}
|
||||
{{endforeach}}
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id='ipsTabs_elMedia_sidebarTabs_elTab_overview_panel' class='ipsTabs_panel ipsPad' data-role='mediaSidebar'>
|
||||
<div data-role='itemInformation'>
|
||||
<div class='ipsAreaBackground_light cMedia_preview ipsType_center' data-role='itemPreview'></div>
|
||||
|
||||
<div class='ipsSpacer_top'>
|
||||
<strong class='ipsType_minorHeading'>{lang="media_tag_title"}</strong>
|
||||
<input type='text' class='ipsField_fullWidth' value='' data-role='itemTag'>
|
||||
<p class='ipsType_small ipsType_light'>{lang="media_tag_desc"}</p>
|
||||
</div>
|
||||
<hr class='ipsHr'>
|
||||
|
||||
<ul class='ipsList_reset ipsSpacer_top'>
|
||||
<li class='ipsSpacer_bottom ipsSpacer_half'>
|
||||
<h3 class='ipsType_minorHeading'>{lang="media_filename"}</h3>
|
||||
<p class='ipsType_reset ipsType_medium' data-role='itemFilename'></p>
|
||||
</li>
|
||||
<li class='ipsSpacer_bottom ipsSpacer_half'>
|
||||
<h3 class='ipsType_minorHeading'>{lang="media_uploaded"}</h3>
|
||||
<p class='ipsType_reset ipsType_medium' data-role='itemUploaded'></p>
|
||||
</li>
|
||||
<li class='ipsSpacer_bottom ipsSpacer_half'>
|
||||
<h3 class='ipsType_minorHeading'>{lang="media_size"}</h3>
|
||||
<p class='ipsType_reset ipsType_medium' data-role='itemFilesize'></p>
|
||||
</li>
|
||||
<li class='ipsSpacer_bottom ipsSpacer_half' data-role='itemDimensionsRow'>
|
||||
<h3 class='ipsType_minorHeading'>{lang="media_dims"}</h3>
|
||||
<p class='ipsType_reset ipsType_medium' data-role='itemDimensions'></p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div data-role='multipleItems'>
|
||||
<div class='ipsPad ipsType_large ipsType_light ipsType_center ipsSpacer_top ipsSpacer_double' data-role='multipleItemsMessage'></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='ipsColumn ipsColumn_fluid'>
|
||||
<div class='ipsPad ipsAreaBackground_reset ipsScrollbar' data-role="fileListing" id='elMedia_fileList' data-showing='root'>
|
||||
<ul class='ipsGrid' data-ipsGrid data-ipsGrid-minItemSize='100' data-ipsGrid-maxItemSize='200'>
|
||||
{{foreach $roots as $id => $data}}
|
||||
{template="fileListing" group="media" app="cms" params="$tree->url, $data"}
|
||||
{{endforeach}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class='ipsPad ipsAreaBackground_reset ipsScrollbar ipsHide' data-role="searchResults" id='elMedia_searchResults'></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>]]></template>
|
||||
<template template_group="pages" template_name="globalWrap" template_data="$navigation, $content, $page" template_location="front" template_app="cms"><![CDATA[<div id="elCmsPageWrap" data-pageid="{$page->id}">
|
||||
{$content|raw}
|
||||
</div>]]></template>
|
||||
@@ -156,7 +296,8 @@
|
||||
<div class='ipsPad'>
|
||||
{$form|raw}
|
||||
</div>]]></template>
|
||||
<template template_group="records" template_name="commentTemplate" template_data="$id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class=''" template_location="front" template_app="cms"><![CDATA[<form accept-charset='utf-8' class="ipsForm {$class}" action="{$action}" method="post" {{if $uploadField}}enctype="multipart/form-data"{{endif}}>
|
||||
<template template_group="records" template_name="commentTemplate" template_data="$id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class=''" template_location="front" template_app="cms"><![CDATA[{{$minimized = false;}}
|
||||
<form accept-charset='utf-8' class="ipsForm {$class}" action="{$action}" method="post" {{if $uploadField}}enctype="multipart/form-data"{{endif}}>
|
||||
<input type="hidden" name="{$id}_submitted" value="1">
|
||||
{{foreach $hiddenValues as $k => $v}}
|
||||
<input type="hidden" name="{$k}" value="{$v}">
|
||||
@@ -185,6 +326,9 @@
|
||||
{{foreach $elements as $collection}}
|
||||
{{foreach $collection as $input}}
|
||||
{{if $input instanceof \IPS\Helpers\Form\Editor}}
|
||||
{{if $input->options['minimize'] !== NULL}}
|
||||
{{$minimized = true;}}
|
||||
{{endif}}
|
||||
{$input->html( TRUE )|raw}
|
||||
{{if $input->error}}
|
||||
<br>
|
||||
@@ -193,7 +337,7 @@
|
||||
{{endif}}
|
||||
{{endforeach}}
|
||||
{{endforeach}}
|
||||
<ul class='ipsToolList ipsToolList_horizontal ipsClear ipsClearfix' data-ipsEditor-toolList>
|
||||
<ul class='ipsToolList ipsToolList_horizontal ipsClear ipsClearfix {{if $minimized}}ipsJS_hide{{endif}}' data-ipsEditor-toolList>
|
||||
{{foreach $elements as $collection}}
|
||||
{{foreach $collection as $input}}
|
||||
{{if !($input instanceof \IPS\Helpers\Form\Editor) && $input->name != 'guest_name' and ! mb_stristr( $input->name, 'content_field_' )}}
|
||||
@@ -224,11 +368,10 @@
|
||||
<button data-ipsCancel class="ipsHide ipsButton ipsButton_veryVerySmall">{lang="cancel"}</button>
|
||||
</div>]]></template>
|
||||
<template template_group="records" template_name="fieldBadge" template_data="$label, $value, $classes" template_location="global" template_app="cms"><![CDATA[<span class='ipsBadge {$classes}'>{$label}: {$value|raw}</span>]]></template>
|
||||
<template template_group="records" template_name="fieldDefault" template_data="$label, $value" template_location="global" template_app="cms"><![CDATA[<span class='ipsType_reset ipsType_light'>{$label}: {$value|raw}</span>]]></template>
|
||||
<template template_group="records" template_name="fieldDefault" template_data="$label, $value" template_location="global" template_app="cms"><![CDATA[<div class='ipsType_reset ipsType_light'><strong>{$label}:</strong> {$value|raw}</div>]]></template>
|
||||
<template template_group="records" template_name="soundcloud" template_data="$url, $params" template_location="global" template_app="cms"><![CDATA[<iframe {{foreach $params as $k => $v }}{$k}="{$v}" {{endforeach}} scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url={$url}&color=ff5500"></iframe>]]></template>
|
||||
<template template_group="records" template_name="spotify" template_data="$url, $params" template_location="global" template_app="cms"><![CDATA[<iframe src="https://embed.spotify.com/?uri={$url}" {{foreach $params as $k => $v }}{$k}="{$v}" {{endforeach}} frameborder="0" allowtransparency="true"></iframe>]]></template>
|
||||
<template template_group="records" template_name="title" template_data="$row, $title" template_location="admin" template_app="cms"><![CDATA[{$title}
|
||||
{{if $row['record_future_date'] or $row['record_approved'] === -1 or $row['record_approved'] === 0 or $row['record_pinned'] === 1 or $row['record_featured'] === 1}}
|
||||
<template template_group="records" template_name="title" template_data="$row, $title" template_location="admin" template_app="cms"><![CDATA[{{if $row['record_future_date'] or $row['record_approved'] === -1 or $row['record_approved'] === 0 or $row['record_pinned'] === 1 or $row['record_featured'] === 1}}
|
||||
<span class='ipsPos_right'>
|
||||
{{if $row['record_future_date']}}
|
||||
{{$time = \IPS\DateTime::ts( $row['record_publish_date'] );}}
|
||||
@@ -248,7 +391,7 @@
|
||||
{{endif}}
|
||||
</span>
|
||||
{{endif}}
|
||||
]]></template>
|
||||
{$title}]]></template>
|
||||
<template template_group="records" template_name="youtube" template_data="$url, $params" template_location="global" template_app="cms"><![CDATA[<div class='ipsEmbeddedVideo {{if \IPS\Settings::i()->max_video_width > 0}}ipsEmbeddedVideo_limited{{endif}}' contenteditable="false"><div><iframe id="ytplayer" type="text/html" {{foreach $params as $k => $v }}{$k}="{$v}" {{endforeach}} src="$url" frameborder="0"></iframe></div></div>]]></template>
|
||||
<template template_group="revisions" template_name="rows" template_data="$table, $headers, $rows" template_location="front" template_app="cms"><![CDATA[{{foreach $rows as $row}}
|
||||
<article class='ipsComment ipsComment_parent ipsClearfix ipsClear'>
|
||||
@@ -569,11 +712,13 @@
|
||||
<li class='ipsMenu_item'><a role='menuitem' href='{url="app=cms&module=pages&controller=templates&do=addTemplate&type=js"}' data-ipsDialog data-ipsDialog-forceReload data-ipsDialog-title='{lang="content_template_add_template_js_title""}'>{lang="content_template_add_template_js"}</a></li>
|
||||
</ul>
|
||||
<div class='ipsAreaBackground_reset'>
|
||||
<ul class='ipsTabs ipsClearfix' id='elTemplateEditor_typeTabs' data-ipsTabBar data-ipsTabBar-contentArea='#elTemplateEditor_fileList' data-ipsTabBar-updateURL='false'>
|
||||
<li><a href='{url="app=cms&module=pages&controller=templates&do=manage&t_type=templates"}' class='ipsTabs_item {{if $current->type == 'templates'}}ipsTabs_activeItem{{endif}}' data-tabURL='{url="app=cms&module=pages&controller=ajax&do=loadMenu&t_type=templates"}' data-type='templates'>{lang="theme_html"}</a></li>
|
||||
<li><a href='{url="app=cms&module=pages&controller=templates&do=manage&t_type=css"}' class='ipsTabs_item {{if $current->type == 'css'}}ipsTabs_activeItem{{endif}}' data-tabURL='{url="app=cms&module=pages&controller=ajax&do=loadMenu&t_type=css"}' data-type='css'>{lang="theme_css"}</a></li>
|
||||
<li><a href='{url="app=cms&module=pages&controller=templates&do=manage&t_type=js"}' class='ipsTabs_item {{if $current->type == 'js'}}ipsTabs_activeItem{{endif}}' data-tabURL='{url="app=cms&module=pages&controller=ajax&do=loadMenu&t_type=js"}' data-type='css'>{lang="theme_js"}</a></li>
|
||||
</ul>
|
||||
<div class='ipsTabs ipsClearfix ipsTabs_stretch acpFormTabBar' id='elTemplateEditor_typeTabs' data-ipsTabBar data-ipsTabBar-contentArea='#elTemplateEditor_fileList' data-ipsTabBar-updateURL='false'>
|
||||
<ul role="tablist">
|
||||
<li><a href='{url="app=cms&module=pages&controller=templates&do=manage&t_type=templates"}' class='ipsTabs_item ipsType_center {{if $current->type == 'templates'}}ipsTabs_activeItem{{endif}}' data-tabURL='{url="app=cms&module=pages&controller=ajax&do=loadMenu&t_type=templates"}' data-type='templates'>{lang="theme_html"}</a></li>
|
||||
<li><a href='{url="app=cms&module=pages&controller=templates&do=manage&t_type=css"}' class='ipsTabs_item ipsType_center {{if $current->type == 'css'}}ipsTabs_activeItem{{endif}}' data-tabURL='{url="app=cms&module=pages&controller=ajax&do=loadMenu&t_type=css"}' data-type='css'>{lang="theme_css"}</a></li>
|
||||
<li><a href='{url="app=cms&module=pages&controller=templates&do=manage&t_type=js"}' class='ipsTabs_item ipsType_center {{if $current->type == 'js'}}ipsTabs_activeItem{{endif}}' data-tabURL='{url="app=cms&module=pages&controller=ajax&do=loadMenu&t_type=js"}' data-type='css'>{lang="theme_js"}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<section id='elTemplateEditor_fileList'>
|
||||
{template="menu" params="$templates, $current, $request" app="cms" location="admin" group="templates"}
|
||||
</section>
|
||||
@@ -597,7 +742,7 @@
|
||||
<br>
|
||||
<div id='elTemplateEditor_outerPanelWrap'>
|
||||
<div id='elTemplateEditor_panelWrap'>
|
||||
<ul id='elTemplateEditor_tabbar' class='ipsTabs ipsClearfix' data-ipsTabBar data-ipsTabBar-contentArea='#elTemplateEditor_panels'>
|
||||
<ul id='elTemplateEditor_tabbar' class='ipsTabs ipsClearfix acpFormTabBar' data-ipsTabBar data-ipsTabBar-contentArea='#elTemplateEditor_panels'>
|
||||
<li data-fileid='{$current->key}' data-type="{$current->type}" data-location='{$current->location}' data-group="{$current->group}">
|
||||
<a href='#' class='ipsTabs_item' id='tab_{$current->key}'>{$current->title} <span data-action='closeTab'><i class='fa fa-times'></i></span></a>
|
||||
</li>
|
||||
@@ -661,7 +806,6 @@
|
||||
<template template_group="widgets" template_name="Categories" template_data="$url" template_location="front" template_app="cms"><![CDATA[{{$catClass = '\IPS\cms\Categories' . \IPS\cms\Databases\Dispatcher::i()->databaseId;}}
|
||||
{{$categories = $catClass::roots();}}
|
||||
{{if !empty( $categories )}}
|
||||
<div class='ipsBox'>
|
||||
<h3 class='ipsWidget_title ipsType_reset'>{lang="categories"}</h3>
|
||||
<div class='ipsSideMenu ipsAreaBackground_reset ipsPad_half'>
|
||||
<ul class='ipsSideMenu_list'>
|
||||
@@ -689,7 +833,6 @@
|
||||
<a href='{$url->setQueryString('show','categories')}' class=''>{lang="cms_show_categories"} <i class='fa fa-caret-right'></i></a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{{endif}}]]></template>
|
||||
<template template_group="widgets" template_name="Database" template_data="$database" template_location="front" template_app="cms"><![CDATA[{database="$database->id" title="$database->title"}]]></template>
|
||||
<template template_group="widgets" template_name="DatabaseFilters" template_data="$database, $category, $form, $orientation='vertical'" template_location="front" template_app="cms"><![CDATA[<h3 class='ipsWidget_title ipsType_reset'>{lang="block_DatabaseFilters_title" sprintf="$category->_title"}</h3>
|
||||
@@ -702,8 +845,8 @@
|
||||
{$content|raw}
|
||||
</div>
|
||||
]]></template>
|
||||
<template template_group="widgets" template_name="RecordFeed" template_data="$database, $records, $orientation='vertical'" template_location="front" template_app="cms"><![CDATA[{{if !empty( $records ) }}
|
||||
<h3 class='ipsWidget_title ipsType_reset'>{lang="block_latest_records" sprintf="$database->recordWord( 2, TRUE )"}</h3>
|
||||
<template template_group="widgets" template_name="RecordFeed" template_data="$records, $title, $orientation='vertical'" template_location="front" template_app="cms"><![CDATA[{{if !empty( $records ) }}
|
||||
<h3 class='ipsWidget_title ipsType_reset'>{$title}</h3>
|
||||
{{if $orientation == 'vertical'}}
|
||||
<div class='ipsPad_half ipsWidget_inner'>
|
||||
<ul class='ipsDataList ipsDataList_reducedSpacing'>
|
||||
@@ -781,24 +924,226 @@
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
|
||||
.cCmsCategoryFeaturedEntry .cCmsRecord_image
|
||||
{
|
||||
max-height: 200px;
|
||||
max-width: 200px;
|
||||
.cCmsCategoryFeaturedEntry .cCmsRecord_image {
|
||||
float: left;
|
||||
margin-right: 6px;
|
||||
margin-right: 15px;
|
||||
margin-top: 4px;
|
||||
border: 4px solid #e2e2e2;
|
||||
}
|
||||
|
||||
.cCmsCategoryFeaturedEntry .cCmsRecord_image img {
|
||||
max-width: 200px;
|
||||
max-height: 200px;
|
||||
max-width: 190px;
|
||||
max-height: 190px;
|
||||
}
|
||||
|
||||
.ipsDataItem_meta span.ipsBadge.ipsPos_right {
|
||||
margin-left: 4px;
|
||||
float: none;
|
||||
}
|
||||
|
||||
/* 2 col */
|
||||
.cmsCategory2col .ipsType_pageTitle {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.cmsCategory2col .cmsInformation {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.cmsCategory2col .cCmsRecord_image img {
|
||||
max-height: 150px;
|
||||
max-width: 150px;
|
||||
}
|
||||
|
||||
.cmsCategory2col .ipsGrid_span6:nth-of-type(1) {
|
||||
border-right: 1px solid #e2e2e2;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.cmsCategory2col .cCmsCategoryFeaturedEntry
|
||||
{
|
||||
border-bottom: 0px;
|
||||
padding: 0px 0 30px 0;
|
||||
}
|
||||
|
||||
.cmsCategory2col {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
/* 3 col */
|
||||
.cmsCategory3col .ipsType_pageTitle {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.cmsCategory3col .cmsInformation {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.cmsCategory3col .cCmsRecord_image img {
|
||||
max-height: 100px;
|
||||
max-width: 100px;
|
||||
}
|
||||
.cmsCategory3col .cCmsCategoryFeaturedEntry
|
||||
{
|
||||
border-bottom: 0px;
|
||||
padding: 0px 0 30px 0;
|
||||
}
|
||||
|
||||
.cmsCategory3col {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.cmsCategory3col .ipsGrid_span4:nth-of-type(1),
|
||||
.cmsCategory3col .ipsGrid_span4:nth-of-type(2) {
|
||||
border-right: 1px solid #e2e2e2;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
/* 2 col featured image */
|
||||
.cCmsCategoryFeaturedEntry.cms2ColImageFeature .cCmsRecord_image {
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
max-height: 250px;
|
||||
overflow: hidden;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.cCmsCategoryFeaturedEntry.cms2ColImageFeature .cCmsRecord_image img {
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
max-height: none;
|
||||
}
|
||||
|
||||
.cCmsCategoryFeaturedEntry.cms2ColImageFeature .ipsType_pageTitle {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
/* 3 col featured image */
|
||||
.cCmsCategoryFeaturedEntry.cms3ColImageFeature .cCmsRecord_image {
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
max-height: 150px;
|
||||
overflow: hidden;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.cCmsCategoryFeaturedEntry.cms3ColImageFeature .cCmsRecord_image img {
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
max-height: none;
|
||||
}
|
||||
|
||||
.cCmsCategoryFeaturedEntry.cms3ColImageFeature .ipsType_pageTitle {
|
||||
font-size: 14px;
|
||||
}</css>
|
||||
<css css_location="admin" css_app="cms" css_attributes="" css_path="media" css_name="media.css"><![CDATA[.cMedia_manager .ipsToolList li {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
/* TABS */
|
||||
#elMedia_sidebarTabs {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#elMedia_sidebarTabs .ipsTabs_item {
|
||||
border: 0 !important;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#elMedia_sidebarTabs .ipsTabs_activeItem {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
#elMedia_sidebar {
|
||||
height: 550px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#elMedia_fileList,
|
||||
#elMedia_searchResults {
|
||||
height: 587px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#elMedia_searchField {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.cMedia_item {
|
||||
padding: 15px 0 0;
|
||||
text-align: center;
|
||||
{prefix="transition" value="transform 0.1s ease-in-out"}
|
||||
}
|
||||
|
||||
.cMedia_item:hover {
|
||||
{prefix="transform" value="scale(1.05)"}
|
||||
}
|
||||
|
||||
.cMedia_filename {
|
||||
line-height: 22px;
|
||||
border-radius: 22px;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
.cMedia_item > div {
|
||||
width: 100%;
|
||||
height: 112px;
|
||||
text-align: center;
|
||||
margin: 0 auto;
|
||||
padding: 5px;
|
||||
margin-bottom: 7px;
|
||||
line-height: 100px;
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
|
||||
.cMedia_itemImage > div > img,
|
||||
.cMedia_item > div > .ipsNoThumb {
|
||||
max-width: 100%;
|
||||
max-height: 100px;
|
||||
}
|
||||
|
||||
.cMedia_itemSelected > div {
|
||||
background: rgba( 84, 144, 192, 0.2 );
|
||||
border: 1px solid rgba( 84, 144, 192, 0.5 );
|
||||
box-shadow: 0px 0px 10px rgba( 84, 144, 192, 0.2 );
|
||||
}
|
||||
|
||||
.cMedia_itemSelected .cMedia_filename {
|
||||
background: #417ba3;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.cMedia_itemDisabled,
|
||||
.cMedia_treeDisabled {
|
||||
opacity: 0.3;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* Sidebar */
|
||||
.cMedia_preview img,
|
||||
.cMedia_preview .ipsNoThumb {
|
||||
max-width: 100%;
|
||||
max-height: 200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.cMedia_preview img {
|
||||
cursor: zoom-in;
|
||||
}
|
||||
|
||||
/* ----- */
|
||||
.ipsMedia_preview {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ipsMedia_preview img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.ipsMedia_key input[type=text] {
|
||||
max-width: none;
|
||||
}]]></css>
|
||||
<css css_location="front" css_app="cms" css_attributes="" css_path="pages" css_name="page.css">/* ----- */
|
||||
|
||||
.ipsWidget.ipsWidget_horizontal[data-blockid^="app_cms"]:not(.ipsBox) {
|
||||
@@ -850,8 +1195,8 @@
|
||||
float: left;
|
||||
max-width: 300px;
|
||||
max-height: 300px;
|
||||
margin-right: 8px;
|
||||
margin-bottom: 8px;
|
||||
margin-right: 30px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.cCmsRecord_image img {
|
||||
@@ -878,7 +1223,6 @@ html[dir="rtl"] #elTemplateEditor_panelToolbar {
|
||||
}
|
||||
|
||||
#elTemplateEditor .ipsTabs {
|
||||
background: #d6d6d6;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
@@ -956,11 +1300,6 @@ html[dir="rtl"] #elTemplateEditor_panelToolbar {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
#elTemplateEditor [data-role="fileList"] .ipsTabs_item {
|
||||
width: 33.3%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cTemplateList a {
|
||||
padding: 5px 0;
|
||||
display: block;
|
||||
|
||||
@@ -92,5 +92,18 @@
|
||||
"100042": "4.0.12",
|
||||
"100043": "4.0.12.1",
|
||||
"100044": "4.0.13",
|
||||
"100045": "4.0.13.1"
|
||||
"100045": "4.0.13.1",
|
||||
"101000": "4.1.0 Beta 1",
|
||||
"101001": "4.1.0 Beta 2",
|
||||
"101002": "4.1.0 Beta 3",
|
||||
"101003": "4.1.0 Beta 4",
|
||||
"101004": "4.1.0 Beta 5",
|
||||
"101005": "4.1.0 Beta 6",
|
||||
"101006": "4.1.0 Beta 7",
|
||||
"101007": "4.1.0 Beta 8",
|
||||
"101008": "4.1.0 Beta 9",
|
||||
"101009": "4.1.0 Beta 10",
|
||||
"101010": "4.1.0",
|
||||
"101011": "4.1.1",
|
||||
"101012": "4.1.2"
|
||||
}
|
||||
@@ -50,11 +50,13 @@
|
||||
},
|
||||
"RecordFeed": {
|
||||
"class": "\\IPS\\Widget\\PermissionCache",
|
||||
"restrict": false,
|
||||
"restrict": [
|
||||
"cms"
|
||||
],
|
||||
"default_area": "",
|
||||
"allow_reuse": false,
|
||||
"menu_style": "menu",
|
||||
"embeddable": false
|
||||
"embeddable": true
|
||||
},
|
||||
"Rss": {
|
||||
"class": "\\IPS\\Widget\\StaticCache",
|
||||
|
||||
Reference in new issue
Block a user