With NM 3.7 you can customize the post layout with components or template files, using some Wordpress-style PHP functions.
(Note: these docs are temporary and will be updated.)
Table of contents:
No internationalization, no image support, no author, doesn't check if there are no tags, no go-back link...
<?php if(!defined('IN_GS')) die(); /* <-- recommended for template files */ ?>
<div class="myPost">
<h2><?php nm_render_title(); ?></h2>
Published on <i><?php nm_render_date(); ?></i>
<p>Tags: <?php nm_render_tags(); ?></p>
<?php nm_render_content(); ?>
</div>
Full layout for both single post view and lists of posts (main, archive, etc.)
<?php if(!defined('IN_GS')) die(); /* <-- recommended for template files */ ?>
<div class="nm_post">
<h3 class="nm_post_title"><?php nm_render_title(); ?></h3>
<p class="nm_post_date"><?php nm_e('PUBLISHED'); ?> <?php nm_render_date(); ?></p>
<?php if (nm_must_render_author()) { ?>
<p class="nm_post_author"><?php nm_e('AUTHOR'); ?> <em><?php nm_render_author(); ?></em></p>
<?php } ?>
<?php if (nm_must_render_image()) { ?>
<div class="nm_post_image"><?php nm_render_image(); ?></div>
<?php } ?>
<div class="nm_post_content">
<?php nm_render_content(); ?>
</div>
<?php if (nm_has_tags()) { ?>
<p class="nm_post_meta"><b><?php nm_e('TAGS'); ?>:</b> <?php nm_render_tags(); ?></p>
<?php } ?>
</div>
<?php if (nm_is_single()) { ?>
<?php if (nm_has_goback_link()) { ?>
<p class="nm_post_back"><a href="<?php nm_goback_link(); ?>"><?php nm_e('GO_BACK'); ?></a></p>
<?php } ?>
<?php } ?>
Simpler default layout, only for lists of posts (main, archive, etc.) (This doesn't check if the "Go Back" link has to be rendered.)
<?php if(!defined('IN_GS')) die(); /* <-- recommended for template files */ ?>
<div class="nm_post">
<h3 class="nm_post_title"><?php nm_render_title(); ?></h3>
<p class="nm_post_date"><?php nm_e('PUBLISHED'); ?> <?php nm_render_date(); ?></p>
<?php if (nm_must_render_author()) { ?>
<p class="nm_post_author"><?php nm_e('AUTHOR'); ?> <em><?php nm_render_author(); ?></em></p>
<?php } ?>
<?php if (nm_must_render_image()) { ?>
<div class="nm_post_image"><?php nm_render_image(); ?></div>
<?php } ?>
<div class="nm_post_content">
<?php nm_render_content(); ?>
</div>
<?php if (nm_has_tags()) { ?>
<p class="nm_post_meta"><b><?php nm_e('TAGS'); ?>:</b> <?php nm_render_tags(); ?></p>
<?php } ?>
</div>
nm folder in your theme. Inside this folder, create a file named post-default.php (for example) and paste the code in the example abovetemplateShowPost nm/post-default.phpYou can also use specific layouts for different news page types. For example:
post-single.php in the nm folder, with its custom codesingle templateShowPost nm/post-single.php(You can also do this for the other types: main, archive, tag, search.)
Like in GS template files, it is recommended to have something like this in the first line of every file:
<?php if(!defined('IN_GS')) die(); ?>
nm-post-default and paste the code in the example abovecomponentShowPost nm-post-defaultYou can also use specific layouts for different news page types. For example:
nm-post-single with its custom codesingle componentShowPost nm-post-single
(You can also do this for the other types: main, archive, tag, search.)Note: It is not necessary to have the <?php if(!defined('IN_GS')) die(); ?> code in components, only in templates.
Their output depends on normal and custom settings (e.g.titleLink, classPostTitleLink, DATE_FORMAT, more, etc.)
nm_render_title()nm_render_date()nm_render_content()nm_render_tags()nm_render_image()nm_render_author()nm_goback_link()They return true or false and can be used, for example, in if (...) { ... } sentences.
nm_has_tags()nm_must_render_image()nm_must_render_author()nm_has_goback_link()They just output field values, independently of settings
nm_put_url()nm_put_title()nm_put_content()nm_put_excerpt($length=150, $ellipsis='...', $break=false)nm_put_date($format='Y-m-d')nm_put_image($width=0, $height=0, $crop=false, $default='')They return raw field values that can be assigned to variables or whatever. If echoed, should be done be done with htmlspecialchars
nm_return_url()nm_return_title()nm_return_content()nm_return_excerpt($length=150, $ellipsis='...', $break=false)nm_return_date($format='Y-m-d')nm_return_tags()nm_return_image($width=0, $height=0, $crop=false, $default='')If you want to make your custom layout work for any language selected for the front-end (texts like Published on, Tags, date format, ...) you can use these instead of writing the texts directly in the layout.
nm_e('TEXT')i18n('news_manager/TEXT')nm_r('TEXT')i18n_r('news_manager/TEXT')