Программист-новичок ищет несколько советов по поводу кода, который я пытаюсь научиться читать и исправлять в hubSpot. Я хочу получить код для поиска в блогах по тегам, а не только по названию. Любой совет будет принят во внимание. Я выложу код ниже. Я был бы признателен за любое объяснение того, что происходит с ним, поскольку у меня очень мало опыта работы с базами данных. Спасибо!
<div class="body-container-wrapper">
<div class="body-container container-fluid">
<div class="row-fluid-wrapper row-depth-1 row-number-1 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell flush-rows" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-2 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-cell container" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-3 ">
<div class="row-fluid ">
<div class="span12 widget-span widget-type-raw_jinja " style="" data-widget-type="raw_jinja" data-x="0" data-w="12">
{# Instead of trying to sort the contents directly, make a list of just event dates and post ids. #}
{% set events = utility.event_looper(contents, (topic or simple_list_page or blog_author))|split(',')|sort(simple_list_page or topic == 'past-events' or topic == 'webinar', True) %}
{% set months = utility.month_looper(contents, (topic or simple_list_page or blog_author))|split(',')|sort(simple_list_page or topic == 'past-events' or blog_author, True)|unique %}
{% set page_number = request.query_dict.page|int or 1 %}
{% set posts_per_page = 1000 if simple_list_page else 12 %}
{% set max_pages = (events|count / posts_per_page)|round(0, 'ceil') %}
{% if page_number > max_pages %}
{% set page_number = max_pages %}
{% endif %}
{% set offset = (page_number - 1) * posts_per_page %}
{% set base_url = group.absolute_url ~ '/' %}
{% if current_month %}
{% set topic = current_month %}
{% endif %}
{% if topic %}
{% set base_url = base_url ~ 'topic/' ~ topic %}
{% endif %}
{% if blog_author %}
{% set base_url = base_url ~ 'author/' ~ blog_author.slug %}
{% endif %}
{% if current_month %}
{% set topic = current_month %}
{% endif %}
{% set month_labels = [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
]%}
{% if is_listing_view %}
<div class="padded-section padded-section--half">
<div class="events-listing">
<div class="filters filters--blog">
<h3 class="filters__title">Explore Events</h3>
<div class="filters__controls">
{% set current_month = request.query_dict.month %}
{% if current_month or topic %}
<a href="{{ group.absolute_url }}" class="filters__item filters__item--clear">View All</a>
{% endif %}
<div class="filters__item filters__item--filter filters__item--filter--topics select-nav">
<span class="select-nav__label" title="Type">
Type
</span>
<div class="select-nav__options">
<a href="http://www.----.com/events/topic/webinar">Webinar</a>
<a href="http://www.----.com/events/topic/conference">Conference</a>
</div>
</div>
{% unless current_month or topic %}
<div class="filters__item filters__item--filter filters__item--filter--topics select-nav">
<span class="select-nav__label" title="{{ topic_group.label_plural }}">
{% if current_month and month_labels[current_month] %}{{ current_month.label }}: {{ month_labels[current_month] }}{% else %}Months{% endif %}
</span>
<div class="select-nav__options">
{% for month in months %}
{% set year = month[0:4] %}
{% set month_value = month[4:6] %}
{% set month_index = month[4:6]|trim|int - 1 %}
{% set month_label = month_labels[month_index] %}
<a href="http://www.----.com/events/topic/{{ month_value }}{{ year }}">{{ month_label }} {{ year }}</a>
{% endfor %}
</div>
</div>
{% endunless %}
{{ components.search_form('https://www.----.com/search', 'blog-search', current_search, 'filters__item filters__item--search', 'q') }}
</div>
</div>
{% if events %}
<div class="event-listing clearfix">
{% for event in events %}
{% set post_id = event|split(':', 2)|last %}
{% set content = blog_post_by_id(post_id) %}
{% if simple_list_page or (loop.index > offset and loop.index <= offset + posts_per_page) %}
{{ components.event_thumbnail_blog_post(content) }}
{% endif %}
{% endfor %}
</div>
<nav class="blog-listing__nav listing-nav">
{% if page_number > 1 %}
<a href="{{ base_url }}{% if page_number > 2 %}?page={{ page_number - 1 }}{% endif %}" class="listing-nav__item listing-nav__item--prev">Previous</a>
{% endif %}
{% if simple_list_page or topic or blog_author %}
<a href="{{ group.absolute_url }}" class="listing-nav__item listing-nav__item--all">View Upcoming</a>
{% else %}
<a href="{{ group.absolute_url }}/topic/past-events" class="listing-nav__item">View Past Events</a>
{% endif %}
{% endif %}
{% if page_number < max_pages %}
<a href="{{ base_url }}?page={{ page_number + 1 }}" class="listing-nav__item listing-nav__item--next">Next</a>
{% endif %}
</nav>
{% else %}
<div class="events-listing__error">
<p><em>Couldn't find any upcoming events!</em></p>
{% if blog_author or topic %}
<p><a href="{{ group.absolute_url }}">View Upcoming</a></p>
{% endif %}
</div>
{% endif %}
{% endif %}
</div>
</div>
{% endif %}
</div><!--end widget-span -->