- NewspapertagDiv Composer Tutorial
- NewspaperCredit System
- NewspaperCreate a frontend submission form
- NewspaperHow to Use the Tabbed Content shortcode
- NewspaperCreate a form contact page
- NewspaperFilters and sorting for taxonomies
- NewspaperUser review system
- NewspaperModal Popup
- NewspaperFlex Block Settings Guide
- NewspaperSocial Sharing
- NewspaperSingle Post Shortcodes
- NewspaperInfinite Loading for Single Posts
- NewspaperThe Newspaper Mobile Theme: Introduction
- NewspaperHow to Add a Logo in Newspaper
- NewspaperCustom Post Type Support
- NewspaperCloud Library Templates
- NewspaperDesign your Post Pages using the Cloud Library Templates
- NewspaperHeader Builder
- NewspapertagDiv Cloud Library Plugin
- NewspaperAd Box Element and Ads Overview
Hi,
You can edit the page with the tagDiv composer, that way you can see what elements are used. That issue with the images seems to happen with the WPBakery plugin active as mentioned above.
Disable WPBakery and edit the page with TD composer, make any changes you want to the page. Use your own content, the default content is only for demo purposes. Let us know if you have more questions.
Thanks
Hello meri,
You should use the TD Composer and customize it yourself the page layout using that page builder. For more information about this, please check the following guide from here -> https://forum.tagdiv.com/tagdiv-composer-tutorial/
Thanks for your understanding!
Hello terrya,
You should use a category template from our Cloud Library and customize it yourself using the TD Composer and add the Author box, like this -> https://www.screencast.com/t/wOJ3a0s32
Thanks for the message!
Hello pocto,
5)Please provide some useful screenshots with your desired changes so I will be able to provide a more accurate response.
6)You should simply add a block into your sidebar from Widgets section and sort it by Latest Articles. Also, if you want to add the Widgets on your Sidebar from the page, you should edit it with TD Composer, Widgetized Sidebar element.
7)Unfortunately, the theme does not have any such an option that allows you to make some changes over that section from the panel. All the available settings for that section can be found here -> https://www.screencast.com/t/sgRJn7ig8T If you want to customize this area in another way notice that you should do it yourself through the code because we cannot provide support for untested plugins. Usually, we recommend the developers from studio.envato.com.
8)Sorry but please notice that’s the default functionality of our Smart Sidebar and it has been designed to works as expected, in that way. If you want to customize it you should do it yourself because we cannot provide support for untested plugins.
P.S I’m sorry that I have missed answering your other questions.
Thanks for your understanding!
thanks you
but my website still in localhost i am editing homepage using TD Composer but some parts of homepage is not directly editable using TD composer for example:
latest news
and editors pick
the element option setting is not appears for this block
Hello khalil,
You should edit the homepage with TD Composer as page builder and then, you have to edit the Sidebar section. Also, you can provide your website URL so I can take a closer look at it. For more information about TD Composer, please check here -> https://forum.tagdiv.com/tagdiv-composer-tutorial-2/
Thanks for your understanding!
Hello.
I have spent the past days trying to find a way to be able to filter my posts based upon category and custom taxonomy.
Since tagdiv sadly doesn’t support custom taxonomy filtering, I was hoping that adjusting a block might do the trick.
is it possible to perhaps make 26 copies of block 10 and module 10 (doable with the api plugin example on your site https://forum.tagdiv.com/practical-example-how-to-add-a-new-block-and-module/)
for instance block 10 A, block 10 B,.. to make an alphabetical index ?
I’d then adjust the post loop to only include posts from that taxonomy, whereas the filter in the tagdiv composer could then be set to the different categories (movies, music etc).
could you tell me if this is doable and where this query can be adjusted ?
I’ve followed literally all links you post in the replies stating have a look here, but they are always outdated or incomplete as an answer.
this is the loop argument that I’d like to include in the blocks:
$args = array(
'post_type' => 'post',
'posts_per_page' => '-1',
'meta_key' => 'keyword',
'orderby' => 'meta_value',
'order' => 'ASC',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'alphabetical_letter',
'field' => 'term_id',
'terms' => array( '441' ), //this is by slug
),
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( 'muziek-recensies' ), //this is by id
),
),
);
// The Query
query_posts( $args );
// The Loop
if (have_posts()) {
while ( have_posts() ) : the_post();
echo $td_template_layout->layout_open_element();
if (class_exists($td_module_class)) {
$td_mod = new $td_module_class($post);
echo $td_mod->render();
} else {
td_util::error(__FILE__, 'Missing module: ' . $td_module_class);
}
echo $td_template_layout->layout_close_element();
$td_template_layout->layout_next();
endwhile; //end loop
echo $td_template_layout->close_all_tags();
Hi Janelle. As per the tagdiv team’s advice, you should not use tagdiv composer and wp bakery at the same time. In fact, the team recommends using td composer and uninstalling wp bakery. So, if you have not created any pages with wp bakery, deactivate and delete it. Nothing will happen to td composer. (I don’t work here)
I added three pictures with title by using TD Composer on dekstop. I want to see them on mobile too.
I did deactiveted mobile theme plugin, only I could see them on mobile in this way. But my website in google test not mobile friendly.
What I should do to to see my changes on mobile theme.
I’m running Newspaper v 8.8.2 and WPBakery Page Builder version 5.5.1 is showing up under installed plugins and is asking to be updated to Version 5.5.2 The plugin author’s page advises to buy a separate license even if you got WPBakery in a theme (naturally they want more sales).
Luckily I saw on this TagDiv page that we don’t need to purchase a separate license. It does however say we should uninstall the plugin: https://forum.tagdiv.com/update-the-visual-composer-plugin-wpbakery/
I’m worried about uninstalling it because I might then lose access to the TD Visual Composer? Do I need to follow the instructions at the above link to remove the WPBakery plugin? Am I ok just to do nothing and let the plugin continue complaining about needing an update? I’m assuming the next theme update would fix this.
Thanks,
Janelle
Hey guys,
1) I’ve recently installed the Raw & Wild demo theme, however, when I try to edit in TD Composer I keep getting a red notification at the top of the screen that reads “invalid data.” I’ve tried removing images to add in my own images to make the website my own, however, no matter what I do, it never loads and I get the “invalid data” notification. I was under the impression that we are able to edit demo pages and quickly turn them into our own. Is that not the case?
2) Also, regarding the Raw & Wild demo page, I love the full width picture of the tiger on the home page as well as the four columns (wild horses, lion reserve, monkey business, elk river) underneath it. Is there a way to find out what blocks those are? I’ve looked in the backend editor but it’s all just HTML text and doesn’t show what blocks were used to create those sections on the home page.
I look forward to your reply.
Justin
Flex block one does not have normal pagination. Open the flex block with TD composer and click on the filter tab. Scroll down until you see Extra>Pagination and select the kind of pagination you want from there (Next Prev, Load More, Infinite Load).
I know that custom taxonomies are (currently) not a supported filter in the tagdiv page composer. Sadly for my client this function has become quite a turning point and a critical one that I really need to solve if I wish to deliver a working finished website.
So, following a couple of suggestions on here that it might be possible, I started looking into this, only to reach partial success.
As far as I know, this custom build will be overwritten with any new update so I know that if I get this working I need to reprogram this.
So, here’s what I got so far.
The filtering is defined in the td_config file, and I have based my trials upon the category function.
(basically copying it and adjusting it to what I thought/think should work)
I have copied and then altered this code:
array(
"param_name" => "category_id",
"type" => "dropdown",
"value" => td_util::get_category2id_array(),
"heading" => 'Category filter:',
"description" => "A single category filter. If you want to filter multiple categories, use the 'Multiple categories filter' and leave this to default",
"holder" => "div",
"class" => "tdc-dropdown-big",
'group' => $group
),
into this code
array(
"param_name" => "taxonomy_id",
"type" => "dropdown",
"value" => td_util::get_taxonomy2id_array(),
"heading" => 'ABC filter:',
"description" => "A single category filter. If you want to filter multiple categories, use the 'Multiple categories filter' and leave this to default",
"holder" => "div",
"class" => "tdc-dropdown-big",
'group' => $group
),
this breaks the website.
I keep seeing td_util::get_category2id_array so I am guessing (correct me if I am wrong) that this refers to the file found in wp booster folder “td_util.php”.
In that file I found indeed the get_category2id array arguments so I performed the same trick again.
Turning this code
/**
* generates a category tree, only on /wp_admin/, uses a buffer
* @param bool $add_all_category = if true ads - All categories - at the begining of the list (used for dropdowns)
* @return array
*/
private static $td_category2id_array_walker_buffer = array();
static function get_category2id_array($add_all_category = true) {
if (is_admin() === false) {
return array();
}
if (empty(self::$td_category2id_array_walker_buffer)) {
$categories = get_categories(array(
'hide_empty' => 0,
'number' => 1500
));
$td_category2id_array_walker = new td_category2id_array_walker;
$td_category2id_array_walker->walk($categories, 4);
self::$td_category2id_array_walker_buffer = $td_category2id_array_walker->td_array_buffer;
}
if ($add_all_category === true) {
$categories_buffer['- All categories -'] = '';
return array_merge(
$categories_buffer,
self::$td_category2id_array_walker_buffer
);
} else {
return self::$td_category2id_array_walker_buffer;
}
}
into this
/**
* generates a taxonomy tree, only on /wp_admin/, uses a buffer
* @param bool $add_all_taxonomy = if true ads - All taxonomies - at the begining of the list (used for dropdowns)
* @return array
*/
private static $td_taxonomy2id_array_walker_buffer = array();
static function get_taxonomy2id_array($add_all_taxonomy = true) {
if (is_admin() === false) {
return array();
}
if (empty(self::$td_taxonomy2id_array_walker_buffer)) {
$taxonomys = get_taxonomys(array(
'hide_empty' => 0,
'number' => 1500
));
$td_taxonomy2id_array_walker = new td_taxonomy2id_array_walker;
$td_taxonomy2id_array_walker->walk($taxonomies, 4);
self::$td_taxonomy2id_array_walker_buffer = $td_taxonomy2id_array_walker->td_array_buffer;
}
if ($add_all_taxonomy === true) {
$taxonomies_buffer['- All taxonomies -'] = '';
return array_merge(
$taxonomies_buffer,
self::$td_taxonomy2id_array_walker_buffer
);
} else {
return self::$td_taxonomy2id_array_walker_buffer;
}
}
and a bit further down this
class td_category2id_array_walker extends Walker {
var $tree_type = 'category';
var $db_fields = array ('parent' => 'parent', 'id' => 'term_id');
var $td_array_buffer = array();
function start_lvl( &$output, $depth = 0, $args = array() ) {
}
function end_lvl( &$output, $depth = 0, $args = array() ) {
}
function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) {
$this->td_array_buffer[str_repeat(' - ', $depth) . $category->name . ' - [ id: ' . $category->term_id . ' ]' ] = $category->term_id;
}
function end_el( &$output, $page, $depth = 0, $args = array() ) {
}
}
into this
class td_taxonomy2id_array_walker extends Walker {
var $tree_type = 'taxonomy';
var $db_fields = array ('parent' => 'parent', 'id' => 'term_id');
var $td_array_buffer = array();
function start_lvl( &$output, $depth = 0, $args = array() ) {
}
function end_lvl( &$output, $depth = 0, $args = array() ) {
}
function start_el( &$output, $taxonomy, $depth = 0, $args = array(), $id = 0 ) {
$this->td_array_buffer[str_repeat(' - ', $depth) . $taxonomy->name . ' - [ id: ' . $taxonomy->term_id . ' ]' ] = $taxonomy->term_id;
}
function end_el( &$output, $page, $depth = 0, $args = array() ) {
}
}
Alas to no avail.
I know you guys don’t support the taxonomies in the tagdiv (why I don’t know) and that you simply dont have time to do this kind of custom builds, but could you help me out on this one.
What am I doing wrong or is this really the complete wrong way to try to achieve what I want ?
once again, the custom taxonomy that I have made is called “alphabetical letter”.
TD Composer – This plugin requires Newspaper v8.7.5 but the current installed version is Newspaper v7.0.1.
To fix this:
– Delete the TD Composer plugin via wp-admin
– Install the version that is bundeled with the theme from our Plugins Panel
Unfortunately, I do not use td-Composer. Just the Theme options. If you can give me the code which I can insert in the header3.php, I will do that and try.
Found the problem. TD Composer left behind empty pieces of code when I deleted different elements/rows. I was in a rush to move my equipment out of the rain (working outside) and forgot to screenshot. Very Generic example:
[td_block_text_with_title tdc_css=""""]
The empty deprecated pieces of code are only visible in the normal WordPress Page editor. The text tab is better to find them, look for double html quotes "". I deleted two rows of data, saved, cleared caches (just because), and site is working again.
I’ll have to re-do those two rows, but it’s better than a “Fatal Error” and at least I know where to start troubleshooting if the error comes up again.
This is for anyone who has or may have a “Fatal Error” problem in the future.
Everything was working fine until about 30 minutes ago. Now I can’t add/save things in TD Composer and the site preview shows this error:
Fatal error: Uncaught Error: Class ‘""’ not found in /app/public/wp-content/themes/Newspaper/includes/wp_booster/td_block.php on line 181
This is what line 181 looks like from td_block.php
$this->td_block_template_instance = new $td_block_template_id($this->td_block_template_data);
I made NO changes to this file at any point. I have the Envato Market plugin installed. Everything looks up to date. Tested disabling plugins. Cleared all caches. I need this resolved today.
Thank You.
Hello,
I’m trying to create and set a Posts Page as described for the Front Page here
https://forum.tagdiv.com/homepage-how-to-build-and-set-it/.
I add a new page and edit it with the tagDiv Composer. Works good. But when I set this page as the Posts Page under Settings->Reading I can’t any more access the page with the Composer. I get an error tdcIframeData.init() -> bindViewsModelsWrappers().
How can I set and edit a Posts Page?
Hello aoerem,
Unfortunately, please notice that our blocks do not contain any Ads, sorry! I do not exactly understand what you mean. You can use the TD Composer and add any element you want using the settings from our page builder. Please check here -> https://forum.tagdiv.com/tagdiv-composer-tutorial/ If is not what you mean, please provide more details so I will be able to provide more accurate response/code.
Thanks for the message!
Hello csimply,
You should simply add a single video through a Text with Title element from TD COmposer. You should only copy/paste the video link in the editor.
Thanks for your understanding!
…/wp-content/plugins/td-composer/includes/wpeditor.php?wp_path=/var/www/vhosts/…
getting 403 forbidden error when try to reach wpeditor.php
…/wp-content/plugins/td-composer/includes/wpeditor.php?wp_path=/var/www/vhosts/…
getting 403 forbidden error when try to reach wpeditor.php
Hello TechieBraj,
Unfortunately, the theme does not have any such an option for this, sorry! Notice that we do not recommend to manually increase the theme width because you can easily break the theme layout, sorry! Another alternative for your would be to use a stretch ROW into your content, using the TD Composer on your page, like this ->
For more information about this our TD Composer, please check here -> https://forum.tagdiv.com/tagdiv-composer-tutorial/ -> https://www.screencast.com/t/tiPS2ebUfO
Hope this helps!
Thanks for your understanding!
Hi,
Please advise what is the easiest way how to add a single video on a page?
I am editing page with TD composer however after clicking on ADD ELEMENT option there is no single video element.
I can see just Video Playlist option but I need to add just a single video.
How can I do it with TD composer?
Thanks,
Jan
Also, the need to implement the api is still there.
We have painstakingly created a custom “alphabetical letter” taxonomy to display all posts on one page using a keyword, all posts that have keyword A on page A etc etc.
However since we can not select a custom taxonomy on the tagdiv composer when filtering posts (only categories are allowed) we are stuck.
We have implemented this text into the plugin, which gets us the ARTICLE DISPLAY VIEW icons on the theme panel. however when we select them the page reverts back to the default. could you point us in the right direction please ?
<?php
/*
Plugin Name: td-api-plugin
Plugin URI: http://tagdiv.com
Description: tagDiv API plugin
Author: tagDiv
Version: 1.0
Author URI: http://tagdiv.com
*/
class td_api_plugin {
var $plugin_url = '';
var $plugin_path = '';
var $root = '';
function __construct()
{
$this->root = get_site_url();
$this->plugin_url = plugins_url('', __FILE__); // path used for elements like images, css, etc which are available on end user
$this->plugin_path = dirname(__FILE__); // used for internal (server side) files
add_action('td_global_after', array($this, 'hook_td_global_after')); // hook used to add or modify items via Api
}
function hook_td_global_after() {
//Add new modules
td_api_module::add('td_module_20',
array(
'file' => $this->root . "/wp-content/themes/newspaper-child/includes/modules/td_module_20.php",
'text' => 'Module 20',
'img' => $this->root . '/wp-content/themes/newspaper-child/images/panel/modules/td_module_20.png',
'used_on_blocks' => array('td_block_25'),
'excerpt_title' => 30,
'excerpt_content' => 50,
'enabled_on_more_articles_box' => false,
'enabled_on_loops' => true,
'uses_columns' => true, // if the module uses columns on the page template + loop
'category_label' => true,
'class' => 'td_module_wrap td-animation-stack',
'group' => '' // '' - main theme, 'mob' - mobile theme, 'woo' - woo theme
)
);
td_api_module::add('td_module_21',
array(
'file' => $this->root . "/wp-content/themes/newspaper-child/includes/modules/td_module_21.php",
'text' => 'Module 21',
'img' => $this->root . '/wp-content/themes/newspaper-child/images/panel/modules/td_module_21.png',
'used_on_blocks' => array('td_block_21'),
'excerpt_title' => 15,
'excerpt_content' => '',
'enabled_on_more_articles_box' => true,
'enabled_on_loops' => true,
'uses_columns' => true, // if the module uses columns on the page template + loop
'category_label' => true,
'class' => 'td_module_wrap',
'group' => '' // '' - main theme, 'mob' - mobile theme, 'woo' - woo theme
)
);
}
}
new td_api_plugin();
the text in module 20 for instance looks like this:
<?php
class td_module_20 extends td_module {
function __construct($post, $module_atts = array()) {
//run the parrent constructor
parent::__construct($post, $module_atts);
}
function render() {
ob_start();
$title_length = $this->get_shortcode_att('m20_tl');
?>
<div class="<?php echo $this->get_module_classes();?>">
<div class="td-module-image">
<?php echo $this->get_image('td_150x150');?>
<?php if (td_util::get_option('tds_category_module_20') == 'yes') { echo $this->get_category(); }?>
</div>
<?php echo $this->get_title($title_length);?>
<div class="td-module-meta-info">
<?php echo $this->get_author();?>
<?php echo $this->get_date();?>
<?php echo $this->get_comments();?>
</div>
<?php echo $this->get_quotes_on_blocks();?>
</div>
<?php return ob_get_clean();
}
}
We have created pages for each letter which each run their specific post template, which looks like this:
<?php
/*
Template Name: archief albumrecensie a
*/
get_header();
//set the template id, used to get the template specific settings
$template_id = 'archive';
//prepare the loop variables
global $loop_module_id, $loop_sidebar_position, $part_cur_auth_obj;
$loop_module_id = td_util::get_option('tds_' . $template_id . '_page_layout', 1); //module 1 is default
$loop_sidebar_position = td_util::get_option('tds_' . $template_id . '_sidebar_pos'); //sidebar right is default (empty)
// sidebar position used to align the breadcrumb on sidebar left + sidebar first on mobile issue
$td_sidebar_position = '';
if($loop_sidebar_position == 'sidebar_left') {
$td_sidebar_position = 'td-sidebar-left';
}
//read the current author object - used by here in title and by /parts/author-header.php
$part_cur_auth_obj = (get_query_var('author_name')) ? get_user_by('slug', get_query_var('author_name')) : get_userdata(get_query_var('author'));
//prepare the archives page title
{
$td_archive_title = get_the_title();
}
?>
<div class="td-main-content-wrap td-container-wrap">
<div class="td-container <?php echo $td_sidebar_position; ?>">
<div class="td-crumb-container">
<?php echo td_page_generator::get_archive_breadcrumbs(); // get the breadcrumbs - /includes/wp_booster/td_page_generator.php ?>
</div>
<div class="td-pb-row">
<?php
switch ($loop_sidebar_position) {
default:
?>
<div class="td-pb-span8 td-main-content">
<div class="td-ss-main-content">
<div class="td-page-header">
<h1 class="entry-title td-page-title">
<span><?php echo $td_archive_title; ?></span>
</h1>
</div>
<?php locate_template('loop-albumrecensies-a.php', true);?>
<?php echo td_page_generator::get_pagination(); // get the pagination - /includes/wp_booster/td_page_generator.php ?>
</div>
</div>
<div class="td-pb-span4 td-main-sidebar">
<div class="td-ss-main-sidebar">
<?php get_sidebar(); ?>
</div>
</div>
<?php
break;
case 'sidebar_left':
?>
<div class="td-pb-span8 td-main-content <?php echo $td_sidebar_position; ?>-content">
<div class="td-ss-main-content">
<div class="td-page-header">
<h1 class="entry-title td-page-title">
<span><?php echo $td_archive_title; ?></span>
</h1>
</div>
<?php locate_template('loop-albumrecensies-a.php', true);?>
<?php echo td_page_generator::get_pagination(); // get the pagination - /includes/wp_booster/td_page_generator.php ?>
</div>
</div>
<div class="td-pb-span4 td-main-sidebar">
<div class="td-ss-main-sidebar">
<?php get_sidebar(); ?>
</div>
</div>
<?php
break;
case 'no_sidebar':
?>
<div class="td-pb-span12 td-main-content">
<div class="td-ss-main-content">
<div class="td-page-header">
<h1 class="entry-title td-page-title">
<span><?php echo $td_archive_title; ?></span>
</h1>
</div>
<?php locate_template('loop-albumrecensies-a.php', true);?>
<?php echo td_page_generator::get_pagination(); // get the pagination - /includes/wp_booster/td_page_generator.php ?>
</div>
</div>
<?php
break;
}
?>
</div> <!-- /.td-pb-row -->
<div class="archiefmenutitel"></br></br><h1 class="entry-title td-page-title">ARCHIEF</h1></div>
<div class="albumrecensiesabc">
<?php wp_nav_menu( array( 'theme_location' => 'albumrecensiesabc' ) ); ?>
</div>
</div> <!-- /.td-container -->
</div> <!-- /.td-main-content-wrap -->
<?php
get_footer();
and finally the loop it uses
<?php
/**
* If you are looking for the loop that's handling the single post page (single.php), check out loop-single.php
**/
// $global_flag_to_hide_no_post_to_display - comes from page-category-big-grid.php and is a flag to hide the 'No posts to display' message if on category page there are between 1 and 5 posts
global $loop_module_id, $loop_sidebar_position, $global_flag_to_hide_no_post_to_display;
///if we are in wordpress loop; used by quotes in blocks to check if the blocks are displayed in blocks or in loop
td_global::$is_wordpress_loop = true;
$td_template_layout = new td_template_layout($loop_sidebar_position);
if (empty($loop_module_id)) { //not sure if we need a default here
$loop_module_id = 1;
}
$td_module_class = td_api_module::_helper_get_module_class_from_loop_id($loop_module_id);
//disable the grid for some of the modules
$td_module = td_api_module::get_by_id($td_module_class);
if ($td_module['uses_columns'] === false) {
$td_template_layout->disable_output();
}
$args = array(
'post_type' => 'post',
'posts_per_page' => '-1',
'meta_key' => 'keyword',
'orderby' => 'meta_value',
'order' => 'ASC',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'alphabetical_letter',
'field' => 'term_id',
'terms' => array( '441' ), //this is by slug
),
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( 'muziek-recensies' ), //this is by id
),
),
);
// The Query
query_posts( $args );
// The Loop
if (have_posts()) {
while ( have_posts() ) : the_post();
echo $td_template_layout->layout_open_element();
if (class_exists($td_module_class)) {
$td_mod = new $td_module_class($post);
echo $td_mod->render();
} else {
td_util::error(__FILE__, 'Missing module: ' . $td_module_class);
}
echo $td_template_layout->layout_close_element();
$td_template_layout->layout_next();
endwhile; //end loop
echo $td_template_layout->close_all_tags();
} else {
/**
* no posts to display. This function generates the __td('No posts to display').
* the text can be overwritten by the themplate using the global @see td_global::$custom_no_posts_message
*/
echo td_page_generator::no_posts();
}
all of this was working fine since all of the code was directly implemented in the td config php file, which gets overwritten when you update the theme. all I thought I would have to do is implement the said code in the plugin api but clearly this isn’t how it should be done. I’m fearful that weeks of work on this alphabetical archive have been for nought…
-
This reply was modified 8 years by
NickDeBaerdemaeker.