Leaderboard
Popular Content
Showing content with the highest reputation on 10/23/2017 in all areas
-
Visual Studio Code for PW Devs This thread is a place for ProcessWire developers who use Visual Studio Code (aka VSC or Code) to share their experience, tips, frustrations , solutions, code snippets and generally discuss all things VSC. From Wikipedia:6 points
-
Install: Modules > Core > System Notifications Adjust settings as you wish.5 points
-
Nice little improvement to the ProcessWire Info panel. I have reduced the admin links section down to some basics: Admin Login / Logout Clear Session & Cookies Tracy Debugger Settings. The removed links can now be added as you wish via the "Custom Links" section. This is configurable in the module settings and lets you link to any page in the Page Tree. The two screenshots show the same custom links (with and without labels). You'll notice that I have added links to a few Process modules (Upgrades, Changelog, and Cache Admin), along with the links that used to be available by default, and then another link to "Add Page" and also to a plain page (My Special Page). Personally I am just going to remove many of these for my own setup so it's just down to those I use a lot. For example I will definitely delete the "Fields", "Templates", and "Roles" links because I rarely want to go to those parent pages anyway - I always want to go via the admin submenus to go to a specific template or field, etc. Anyway, hopefully you'll all find this a useful way to add shortcuts to regular admin tools from the frontend of your sites. On a minor technical note, the module settings for these custom links actually converts the page IDs to page paths so that you can use the Module Settings Import Export module to setup Tracy on other sites without having to redefine these links (because page IDs for non admin pages will be different).5 points
-
Hey! When I was building a little commercial Processwire website for a family member, I started looking into caching with WireCache and somehow had troubles to find a satisfying solution to organize the caches and their expirations. My site had a few parts that updated in a regular manner while other parts should be refreshed whenever the current page - or e.g. for the menu: any page - was saved. I wanted to create a cache of the whole page's html which should expire whenever any of its parts expired. This would be simple if you could set multiple expire values for one cache. Unfortunately, you can only set one. So I started to build a solution to my problem which uses the WireCache and creates a dependency tree for every cache. And since I haven't yet implemented a Processwire module and this little class might be useful for other websites, too, I thought I'd try to make a module out of it. This is it. Github: https://github.com/janKir/CacheNesting Please have a look, and feel free to leave a comment. This is my first module, so any suggestions are welcome. I am not even sure if my approach makes much sense for performance reasons. I'm happy to hear your opinions! Thanks a lot!4 points
-
4 points
-
You can iterate over matches pages and group them in an array: <?php $matches = $pages->find('title~=' . $q . ', template=speech-archive-detail|training-detail, sort=template'); $grouped = []; foreach ($matches as $m) { // you can use template->label, too $grouped[$m->template->name] = isset($grouped[$m->template->name]) ? $grouped[$m->template->name] : []; $grouped[$m->template->name][] = $m; } // sort by template name ksort($grouped); ?> <?php foreach ($grouped as $templateName => $matches): ?> <?= $templateName ?>: <br> <?php foreach ($matches as $match): ?> <?= $match->title ?> <?php endforeach; ?> <?php endforeach; ?>4 points
-
I had a tutorial about this here. Using the hook below you can move template select into content tab before the title. Keep in mind your editors should be able to change templates for your event templates. wire()->addHookAfter('ProcessPageEdit::buildForm', function (HookEvent $e) { // make sure we're editing a page and not a user if ($e->process != 'ProcessPageEdit') return; $page = $e->object->getPage(); // does page template start with event_? if (strpos($page->template, 'event_') !== 0) return; $form = $e->return; $contentTab = $form->children->get('id=ProcessPageEditContent'); $settingsTab = $form->children->get('id=ProcessPageEditSettings'); if (!$settingsTab) return; $template = $settingsTab->get('template'); if (!$template) return; $settingsTab->remove('template'); $contentTab->prepend($template); });4 points
-
You need to use that object – $mail – after you have created it. Like this: https://processwire.com/talk/topic/5693-new-module-type-wiremail/ This topic might get you started: https://processwire.com/talk/topic/8753-simple-wiremail-implementation-on-localhost/ But the easiest/fastest way to setup a contact/enquiry/feedback form is using Simple Contact Form module from @justb3a3 points
-
@adrian, @bernhard, sorry, I didn't respond to your posts. I have started a new VSC-only topic here. Let's take the discussion there.3 points
-
Not sure how do you wanna display results. If u want to group them by the template, u can simply have two search results and loop true them separately: $matches1 = $pages->find("title~=$q, template=speech-archive-detail"); $matches2 = $pages->find("title~=$q, template=training-detail"); Or, if you wanna mix the results, u can check for the template in a loop: <?php if ($count) : ?> <?php foreach ($matches as $result) : ?> <?php if($result->template == "speach-archive-detail"):?> <!-- Display results this way --> <?php else: ?> <!-- its not speach-archive-detail, display it in a nother way --> <?php endif;?> <?php endforeach; ?> <?php endif; ?>3 points
-
Hi @ryanC Not sure whether you've seen this: Also, not sure how to exactly help with your approach but the above worked very well for me so far. Includes recaptcha and validation.2 points
-
Hey there @Samk80, Max from Snipcart here. Don't hesitate to ping us at geeks@snipcart.com should you decide to give our product a try! We'd be glad to help. And a huge thanks to @evan & @flydev for mentioning Snipcart. Goes a long way!2 points
-
I'm working on the github wiki which will include those instructions, but here it is in a nutshell: Once you have created the process page for the settings, those settings are available using the process name, so if you made a page with the name theme-settings, you would do this: $factory = $modules->get("SettingsFactory"); $themeSettings = $factory->getSettings('theme-settings'); the settings are delivered as a WireArray (or can be delivered as a plain array getSettingsArray('name-of-process); Here is the bar dump of those settings, using default wireArray; In some scenarios i'm getting the raw array and merging it with some other hardcoded array, like for outputting JSON-LD schema: Person.schema.php: <?php namespace ProcessWire; if(empty($item)) $item = $page; if(!isset($tag)) $tag = true; $jsonld = array( "@context" => $tag ? "http://schema.org/" : '', '@type' => 'Person', 'mainEntityOfPage' => array( '@type' => "WebPage", '@id' => $pages->get(1)->httpUrl, ) ); $factory = $modules->get('SettingsFactory'); $personSchema = $factory->getSettingsArray('schema-person'); $jsonld = array_merge($jsonld, $personSchema); // add image here... $profileMedia = wire('pages')->get("template=media, media_roles.name=schema-profile, images.count>0"); if($profileMedia->id) { $image = $profileMedia->images->first()->width(696); $jsonld['image'] = array( "@type" => "ImageObject", 'url' => $image->httpUrl, 'height'=> $image->height, 'width' => $image->width ); } $jsonld = array_filter($jsonld); if(!$tag) { return $jsonld; } else { if($user->isLoggedin()) { $jsonld = json_encode($jsonld, JSON_PRETTY_PRINT); } else { $jsonld = json_encode($jsonld); } echo '<script type="application/ld+json">' . $jsonld . '</script>'; }2 points
-
Hi, I do not know if this is what you need, but @bernhard used to share with us his modules: https://processwire.com/talk/topic/15524-preview-rockdatatables/ (see more: https://processwire.com/talk/topic/17207-custom-office-management-crmcontrolling-software/) Also: https://processwire.com/talk/topic/4147-excel-like-crud-in-pw-using-handsontable/ https://github.com/wanze/PwHandsontable https://processwire.com/talk/topic/16608-fieldtypehandsontable-excel-like-inputfield/ Hope this helps.2 points
-
That is strange, <?php echo $page->template->name; ?> seems to work for me. Did you try using "echo" in yours?2 points
-
One more option: $matches = $pages->find("title~=$q, template=speech-archive-detail|training-detail"); $speech_archive_matches = $matches->find("template=speech-archive-detail"); $training_matches = $matches->find("template=training-detail");2 points
-
I ended up turning this into a module, ProcessDatabaseRepair, though it also can also check and/or optimize the tables. So far works well, but since it interacts with database, i'd be worried about distributing the module. If anyone in particular needs such a module, let me know. It's quicker for me to use this to optimize the tables than to login to client's PhpMyAdmin and run it there; also if in the rare event described above, any table crashes, the hope is that this will fix it (yet to encounter a situation where it can be tested in that scenario, unless there is a way to force crash a table)...2 points
-
Hey Sam, Welcome! It's definitely possible to build something like that. There's a few reasons why you didn't find an exact module for what you're trying to do. ProcessWire is more of a development framework and toolset than a plug-and-play CMS. It provides you easy access to a relational database, user and session management, querying, and front-end rendering through its API. As that's the case, much of what you want to do – create product records with categories and tagging, and query those records with those fields – can be done pretty easily with native PW functionality. A skeletal walk-through of how you might do this: Create a Product template in the admin. Create the fields you'd like for the Product – probably a Title, Body, Categories, and Tags. The last two could either be hard-coded (as a Select – more rigid) or relational (as a Page Reference/PageArray, using other Pages as data – more flexible). Create Pages with the Product template, and populate the data. Create a Product front-end template, /site/templates/Product.php (file shares the same name as your admin template name), with code like this: <h1><?=$page->title?></h1> <div class="body"> <?=$p->body?> </div> <div class="categories"> <?php foreach ($page->categories as $c): ?> <?=$c->value?> <!-- This is assuming your Categories are a simple Option fieldtype, without titles. --> <?php endforeach ?> </div> <div class="tags"> <?php foreach ($page->tags as $c): ?> <?=$c->title?> <!-- This is assuming your Tags are a Page Reference fieldtype. --> <?php endforeach ?> </div> Edit your front-end home template, /site/templates/home.php, and list some of your Products, maybe like this: <ul> <!-- List pages with Product template, limit results to 10 --> <?php foreach ($pages->find('template=Product, limit=10') as $p): ?> <li> <a href="<?=$p->url?>"> <?=$p->title?> </a> </li> <?php endforeach ?> </ul> That'll get you started with displaying and querying Pages. You might want to take a look at this article to better understand how Templates, Fields, and Pages relate to each other. E-commerce is one of the less well-represented areas of ProcessWire, but is 100% doable. The main bits that don't exist out-of-box are a shopping cart, order management, and the checkout process, but could definitely be built using PW. The module Padloper has both a cart and checkout process. You could get something mostly self-contained like Stripe or Snipcart running within a PW install in short order. Whatever the case, E-commerce in PW, and in fact most systems, will require some development and figuring out. Hope that helps!2 points
-
This is the new topic for the Settings Factory module (formerly known as Settings Train). Repo: https://github.com/outflux3/SettingsFactory I'm not sure what versions this is compatible with, it has only been tested on 3.x branch; it is not namespaced, and i'm not sure if namespacing is necessary or a benefit for this module; if any namespace or module gurus can weigh in on this, let me know. I'm also not sure if there needs to be a minimum php version; I have one live site using this now and it's working great; But before submitting to mods directory, would be better if there was some additional testing by other users.1 point
-
Restrict Repeater Matrix Allows restrictions and limits to be placed on Repeater Matrix fields. Requires ProcessWire >= v3.0.0 and FieldtypeRepeaterMatrix >= v0.0.5. For any matrix type in a Repeater Matrix field you have the option to: Disable settings for items (cannot change matrix type) Prevent drag-sorting of items Prevent cloning of items Prevent toggling of the published state of items Prevent trashing of items Limit the number of items that may be added to the inputfield. When the limit is reached the "Add new" button for the matrix type will be removed and the matrix type will not be available for selection in the "Type" dropdown of other matrix items. Hide the clone button when the limit for a matrix type has been reached. Note that in PW >= 3.0.187 this also means that the copy/paste feature will become unavailable for the matrix type. Please note that restrictions and limits are applied with CSS/JS so should not be considered tamper-proof. Usage Install the Restrict Repeater Matrix module. For each matrix type created in the Repeater Matrix field settings, a "Restrictions" fieldset is added at the bottom of the matrix type settings: For newly added matrix types, the settings must be saved first in order for the Restrictions fieldset to appear. Set restrictions for each matrix type as needed. A limit of zero means that no items of that matrix type may be added to the inputfield. Setting restrictions via a hook Besides setting restrictions in the field settings, you can also apply or modify restrictions by hooking RestrictRepeaterMatrix::checkRestrictions. This allows for more focused restrictions, for example, applying restrictions depending on the template of the page being edited or depending on the role of the user. The checkRestrictions() method receives the following arguments: $field This Repeater Matrix field $inputfield This Repeater Matrix inputfield $matrix_types An array of matrix types for this field. Each key is the matrix type name and the value is the matrix type integer. $page The page that is open in ProcessPageEdit The method returns a multi-dimensional array of matrix types and restrictions for each of those types. An example of a returned array: Example hooks Prevent the matrix type "images_block" from being added to "my_matrix_field" in a page with the "basic-page" template: $wire->addHookAfter('RestrictRepeaterMatrix::checkRestrictions', function(HookEvent $event) { $field = $event->arguments('field'); $page = $event->arguments('page'); $type_restrictions = $event->return; if($field->name === 'my_matrix_field' && $page->template->name === 'basic-page') { $type_restrictions['images_block']['limit'] = 0; } $event->return = $type_restrictions; }); Prevent non-superusers from trashing any Repeater Matrix items in "my_matrix_field": $wire->addHookAfter('RestrictRepeaterMatrix::checkRestrictions', function(HookEvent $event) { $field = $event->arguments('field'); $type_restrictions = $event->return; if($field->name === 'my_matrix_field' && !$this->user->isSuperuser()) { foreach($type_restrictions as $key => $value) { $type_restrictions[$key]['notrash'] = true; } } $event->return = $type_restrictions; }); http://modules.processwire.com/modules/restrict-repeater-matrix/ https://github.com/Toutouwai/RestrictRepeaterMatrix1 point
-
Font Awesome 5 Pro for ProcessWire At Github: https://github.com/outflux3/FontAwesomePro I whipped up a font awesome pro module so that i could use those icons in the admin; it will be one of those "BYO vendor files", so you'd load your own Font Awesome 5 Pro assets once you buy it (about 1 day left to get the discounted pro license!)... Just posting this here in case anyone else ...is working on something similar ...already built something like this ...wants to collaborate on it} The webfont version basically works well in current admin theme but requires a custom css with fontface redefinition to refer to legacy 'fontAwesome' which is used in the admin css. The svg framework seems to work well, and leaving in the legacy font-awesome means that any icons that can't be replaced by JS are still visible (like :after psuedo classes); SVG framework only works with solid, probably because the new prefixing (fal for light, far for regular..) This is also going to be interesting for future admin themes, and the new 'regular' style is cute... Solid (default): dashboard example showing more icons: SVG framework:1 point
-
Thanks for your reply As a matter of fact. I was tasked in creating a form heavy application. I started using NativeScript but the designers abused the combo box (html select option) in the desings. Because picker views (combo box) were huge in the native implementation compared to the web versions, the UX should be redesigned from scratch (there were so many inputs in the form that a single screen should be separated in 5 or more just to be more simple to use). So because time and money constraints the solution was: throw away Nativescript and just use a web view with onsen framework. Onsen, Nativescript, Jasonette or React Native are wonderful tools for making Apps with Javascript. It's important to know the limitations and capabilities of each tool and select the right one for the job at hand.1 point
-
1 point
-
Thanks szabesz! I'm sure I will be back here with more questions after going over these links.1 point
-
1 point
-
Hm, okay. Maybe then make two arrays and merge them / prepend the array with checkboxes? <?php $withcheckbox = $page->children("checkboxname=1"); $others = $page->children("checkboxname=0, sort=-chiffre"); $all = $withcheckbox->import($others); foreach($all as $a) { .. ?>1 point
-
Nobody loves my riddles It should read … "The 'checkbox' field is a default checkbox field, no special module" <?php foreach ($page->children('sort=-chiffre') as $child): ?> <div class="job <?= $child->highlight ? 'hightlight' : 'default' ?>">Chiffre <?= $child->chiffre ?> | <?= $child-title ?> – <?= $child->body ?></div> <?php endofreach ?> … will render … <div class="jobs"> <div class="job">Chiffre 734 | Job Title – Job Description …</div> <div class="job">Chiffre 732 | Job Title – Job Description …</div> <div class="job highlight">Chiffre 722 | Job Title – Job Description …</div> <div class="job">Chiffre 720 | Job Title – Job Description …</div> <div class="job">Chiffre 718 | Job Title – Job Description …</div> <div class="job highlight">Chiffre 605 | Job Title – Job Description …</div> </div> But what I need … <div class="jobs"> <div class="job highlight">Chiffre 605 | Job Title – Job Description …</div> <div class="job highlight">Chiffre 722 | Job Title – Job Description …</div> <div class="job">Chiffre 734 | Job Title – Job Description …</div> <div class="job">Chiffre 732 | Job Title – Job Description …</div> <div class="job">Chiffre 720 | Job Title – Job Description …</div> <div class="job">Chiffre 718 | Job Title – Job Description …</div> </div> … the pages with a checked "highlight" (the checkbox field) should be on top and ordered by the chiffre. The other pages should follow and ordered by chiffre too.1 point
-
Hi Bernhard, Modified and Created are the same for new – not yet modified "again" – pages. Does that help? Related post:1 point
-
No probs, glad to help. Also see this one: ...which might be useful in addition to the other one.1 point
-
1 point
-
@adrian, Yes, the PHP IntelliSense is not the best. What extension are you using? This PHP IntelliSense one? That's the one I use. I have never had any luck with auto-completion for PW. Seems you are doing better than me. I suppose the reason is that I don't have the wire folder included as a source in my projects. Are you including wire? Maybe with the new-ish Multi-root workspace implementation I should be able to add wire in my projects in order to get to at least where you are. I'll have a play with this and post back. Whenever I get the time, I will also post tips and tricks I've gathered so far.1 point
-
Once you add your the tag, it can take 24-48hrs for any results to be seen in the analytics account so you wont know if this is working or not for at least a day. This is a good suggestion, especially if you're going to change it out for a wordpress site anyway.1 point
-
I get you. However, UI in NativeScript is made using just XML and CSS. XML is quite simple, especially if you already know HTML. In return you get the speed that comes with native apps. Onsen looks neat though, so I have one eye on it .1 point
-
Go to: Setup > Fields > altTitle > Input tab: Did you get an error (if yes, what?) or you just did not see any change in the source code of the page? If the latter, did you make sure you are not watching some sort of cache? (browser, cloudflare, ProCache, ProcessWire cache etc...) I have no experience with this one but if you are still getting cached pages then it is what makes it hard for you to work on any changes. Seeing how much trouble it means to make changes to the site, you might want to ask for some paid help. Have you considered this?1 point
-
Just a quick update, so this module works fine and if you purchased FontAwesome 5 Pro and need/want to use those icons in the PW admin, this module allows that do be done, and works with default and Reno themes; it doesn't work on UiKit theme yet, see here for the reason https://github.com/processwire/processwire-requests/issues/1201 point
-
@Pierre-Luc is there still no way to get feedback on success/errors when sending through the Mailgun API? I would like to build a Lister(Pro) Action around your module and for that I would like to show results after sending. Something like $mail->getResult(); in WireMailSMTP. EDIT: Guess I would need to use Mailgun Events for tracking emails. Right?1 point
-
Thanks for the purchase @Robin S, I'll have a look at the issues you've raised and respond here later.1 point
-
As evan mentioned above, ProcessWire lacks support of shop modules. I built 3 Shops with ProcessWire within the last year. The first one with the help of Padloper, the other two (b2b-shops) without Padloper. Take the time to write down evertything about the structure of your producst and then you can start developing your own very flexible solution for your customer. By the way, it's very easy to do complex imports (XML or JSON) and exports of products or orders (PDF - pages2pdf, XML, JSON) for other systems. So there is no need to manage the orders within ProcessWire. The import can be startet manually or via cron by night. But you can do this also... maybe not so shiny as in magento or shopware. In one solution the customer can put everything with an import into the shop and the orders run back via email into the system. The customer nearly never uses the backend.1 point
-
1 point
-
By strange coincidence, I was just thinking that maybe PW should have a standard EditorConfig file as part of the suite. Whilst it does not address all of the code styling issues raised above, it would allow us to all get the tabs/spaces/line endings/whitespace trimming right for this project by just using an editor that either supports EditorConfig out of the box, or via a plugin. I've started using it on my current project and it seems to work quite well.1 point
-
Sure, why not? I am using it on more than ten websites. Some of them have thousands of visitors each day, but that is not the crucial thing since the module doesn't do anything different than the PageTable module itself. It "just" renders the templates also in the admin. There can be some glitches (as this thread shows) but as long it works for you in the admin area, it will also work for your visitors ;-)1 point
-
Just a quick update to let you all know that: 1) With lots of help from @gmclelland we have been ticking off a lot of PHP 7.2 errors. Not sure that we have discovered them all yet though, so please let me know if you come across any. 2) I just forced the Validator panel to use the HTML5 version all the time. I was finding the other version wasn't working for some sites. Hopefully this won't cause any problems, but please let me know if you find anything amiss.1 point
-
Yeah I use it at work, created this with it https://play.google.com/store/apps/details?id=com.interswitchng.ifisagent&hl=en It feels lighter to me than Ionic and faster, and yes it can be built with other frameworks. But TypeScript and NG2 isn't bad though1 point
-
Hey desbest, what version of processwire are you currently using? If you are using 3.x.x, you will probably need to incorporate <?php namespace ProcessWire; ?> into your template files. However, there might be a few other things needed as this profile was introduced 5 years ago and has been removed from the Site Profiles currently in the modules directory. There is though an updated version by @dadish that updates it to v3.x.x, and it can be found here.1 point
-
There exist two Pro modules which will help you to build this e-commerce website. Padloper (already mentioned) and Variations : https://variations.kongondo.com (check the tutorial and the video) Also there are two good reads on Snipcart, a tutorial and a case-study - a must read even if you plan to not use Snipcart: https://snipcart.com/blog/processwire-ecommerce-tutorial https://snipcart.com/blog/case-study-ateliers-fromagers-processwire Welcome to the forum @Samk80 and good day to you1 point
-
Why not store them under admin? It will be out of your sight and users without superuser permission will not be able to see the pages under admin. Thats how PW stores repeater items, too.1 point
-
Replying to myself here in case anyone else was looking for a similar migration. This seems to work for setting up repeater fields via a single migration file. Not sure if the method I've used for generating the repeater template is sensible but it will do for now: <?php class Migration_2017_10_01_10_10_10 extends FieldMigration { public static $description = "<b>+FIELD</b> Custom Matrix (custom_matrix)"; protected function getFieldName(){ return 'custom_matrix'; } protected function getFieldType(){ return 'FieldtypeRepeaterMatrix'; } protected function getMatrixTemplateName() { return FieldtypeRepeater::templateNamePrefix . $this->getFieldName(); } protected function getMatrixTypes() { return [ [ 'name' => 'foo', 'label' => 'Foo', 'head' => '{matrix_label}', 'fields' => [ 'title' => [ 'label' => 'Title (Optional)', 'required' => 0, ], 'markdown', ], ], [ 'name' => 'bar', 'label' => 'Bar', 'head' => '{matrix_label}', 'fields' => [ 'title' => [ 'label' => 'Title (Required)', 'required' => 0, ], 'image', ], ], ]; } protected function addFieldToRepeaterList($matrixField, $field) { $repeaterFields = $matrixField->repeaterFields; if (!is_array($repeaterFields)) $repeaterFields = []; if (!in_array($field->id, $repeaterFields)) { $repeaterFields[] = $field->id; } $matrixField->repeaterFields = $repeaterFields; } protected function addMatrixType($matrixField, $index, $config) { $templateName = $this->getMatrixTemplateName(); $prefix = 'matrix' . ($index + 1) . '_'; $matrixField[$prefix.'name'] = $config['name']; $matrixField[$prefix.'label'] = $config['label']; $matrixField[$prefix.'head'] = $config['head']; $matrixField[$prefix.'sort'] = $index; $fields = []; foreach ($config['fields'] as $key => $property) { $field = (!is_numeric($key)) ? $this->fields->get($key) : $this->fields->get($property); $fields[] = $field->id; $this->addFieldToRepeaterList($matrixField, $field); $this->insertIntoTemplate($templateName, $field); if (!is_numeric($key)) { $this->editInTemplateContext($templateName, $field, function(Field $f) use ($property) { foreach ($property as $prop => $val) { $f->$prop = $val; } }); } } $matrixField[$prefix.'fields'] = $fields; } protected function fieldSetup(Field $f){ $f->label = 'Custom Matrix'; $f->tags = 'matrix'; $f->required = 1; $f->icon = 'fa-bars'; // Do this to generate a template file for the repeater // @TODO Find a better way to do this $fieldtype = $f->type; $numOldReady = $fieldtype->countOldReadyPages($f); // Setup matrix stuff $matrixTypes = $this->getMatrixTypes(); foreach ($matrixTypes as $i => $matrixData) { $this->addMatrixType($f, $i, $matrixData); } // Insert into template $template = 'my-template'; $this->insertIntoTemplate($template, $f); } }1 point
-
1 point
-
When you're satisfied with that position then ProcessWire is not the right tool for you I Guess. But when you're willing to learn, then jump in we're here to help. ProcessWire has that nasty side effect that non coders become coders after using it for a while. You don't need much scripting at all to get started. Go ahead and follow the link provided by Joss.1 point