У меня возникли проблемы с созданием пользовательского виджета изображений в Apostrophe CMS. Текущий apostrophe-images-widgets
работает отлично для большего количества изображений, но мне нужен специальный футляр для логотипа сайта, так как ему нужен конкретный css и конкретное место на веб-сайте.Создание пользовательского графического виджета в Apostrophe CMS
Я пробовал следовать учебнику here для создания пользовательского виджета с менеджером, но я не получил результаты, которые мне бы хотелось. Вот мой logo-image
модуль
module.exports = {
extend: 'apostrophe-pieces',
name: 'logo-image',
label: 'Website Logo',
addFields: [
{
name: 'companyName',
label: 'Company Name',
type: 'string',
required: true
},
{
name: 'logo',
label: 'Logo',
type: 'singleton',
widgetType: 'apostrophe-images',
options: {
limit: 1,
minSize: [ 200, 200 ]
}
}
],
construct: function(self, options) {
self.beforeSave = function(req, piece, options, callback) {
piece.companyName = 'Freedom Mutts';
return callback();
};
}
};
который я зарегистрировал в app.js
как так
modules: {
'logo-image': {}
}
Тогда у меня есть logo-image-widgets
модуль с index.js
как так
module.exports = {
extend: 'apostrophe-pieces-widgets',
label: 'Website Logo',
filters: {
projection: {
slug: 1,
title: 1,
type: 1,
tags: 1
}
}
};
и modules/logo-image-widgets/views/widget.html
как так
<a class="navbar-brand" href="/">{{
apos.singleton(
piece,
'logo',
'apostrophe-images',
{
edit: false
}
)
}}</a>
и базовая компоновка, как так
{% extends data.outerLayout %}
<div class="apos-refreshable" data-apos-refreshable>
{% block beforeMain %}
<nav class="navbar navbar-default navbar-fixed-top nav-back">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false"
aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
{{
apos.area(data.page, 'logo', {
widgets: {
'logo-image': {}
}
})
}}
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">Our Pets</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><button class="btn header-btn">Donate <span class="sr-only">(current)</span></a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
{% endblock %}
{% block main %}
Main code here...
{% endblock %}
{% block afterMain %}
layout code here...
{% endblock %}
</div>
Это оставляет меня пару вопросов, 1) Я не могу добавить изображение логотипа на сам сайт, только через меню и 2) Я не думаю, это то, что я хочу. Я хочу, чтобы пользовательский тег <img />
отображался с моими собственными классами css.
Я не был уверен, где задать этот вопрос, поэтому любой совет будет замечательным. У меня возникли проблемы с созданием более сложных пользовательских виджетов.
Любая помощь приветствуется. Благодаря!
Спасибо тонну! Это должно делать свое дело! – Carson
У меня есть переопределение для 'apostrophe-images-widgets'' widget.html' в моем локальном проекте, но я получаю проблему, когда 'apos.attachments.url' вызывается дважды. Второй раз - это «неопределенное» вложение. Это когда я выбираю изображение для отображения на экране с панели выбора изображения. Есть идеи? Больше информации я могу дать? – Carson
Мне нужно будет увидеть код, чтобы понять, что один из них. –