Leaderboard
Popular Content
Showing content with the highest reputation on 07/02/2015 in all areas
-
The BMW Dealersites is a collaboration of various BMW dealers, brought together in a multisite ProcessWire setup with centralized and per-dealer contentmanagement possibilities. For anyone interesed, below a quick glance at the multisite pagetree: BMW enforces strict design guideliness for all websites that are built carrying the BMW logo. The guideliness are extensive but can be considered a bit outdated, since they do not take responsive possibilities into account yet. We managed to implement a responsive setup nevertheless, still complying to the guideliness. Which was quite a struggle, I can assure you As mentioned, the Dealersites is a collaboration of various BMW dealers. The idea is that all dealersites are basically the same (fields and templates), yet content may vary. This enabled us to create a centralized content module, in which content can be added and copied to all underlaying dealersites, minimizing the efforts needed to add and maintain content. See the screenshot below for an impression on how this works. We have been experimenting with hosting a bit. The sites are hosted using various Docker instances on an Amazon EC2 server, and mails are sent using Amazon SES. In the near future we plan on implementing ProCache3 with Amazon CloudFront. If you need any info on our experiences with this, just drop a line in this topic or sent me a DM. We have used quite a few modules, but nothing exotic. FormBuilder was used to create forms, some of which are handled by a third party URL to have added functionality: shooting Leads to an external webservice for example. The dealersites: http://www.vanlaarhovenbmw.nl http://www.vanhooffbmw.nl http://www.demaassche-venlo.nl http://www.demaassche-echt.nl http://www.nobracars-uden.nl http://www.nobracars-helmond.nl http://www.story-denbosch.nl http://www.story-waardenburg.nl http://www.story-nijmegen.nl Splashpages: http://www.nobracars.nl http://www.demaassche.nl http://www.bertstory.nl Work was done by us at X-com3 points
-
3 points
-
I rebuilt my brothers website from it's WordPress theme/plugin into a ProcessWire designed theme. Mostly because it was build poorly, half the things didn't work and it kept getting attacked through 3rd party plugins, and not knowing much about WordPress other that omg I hate it - decided to look else where! Turned out nice I thought, easily modifiable pages/projects with tagging showcase etc, and using FormBuilder with bootstrap theme for contact form, also ProCache. Will look to try use ProcessWire for further projects, very nice to use as a dev. Cheers John2 points
-
2 points
-
This has been the default behaviour in certain server setups, including most Debian and Ubuntu based servers, since ProcessWire 2.5.17. The code responsible for this can be found from index.php: https://github.com/ryancramerdesign/ProcessWire/blob/master/index.php#L183. Most of the time this is intended behaviour, and not something you should be worried about. On Debian-based servers PHP's garbage cleaner wasn't working at all when session files were stored in a custom directory, which is why we let PHP decide where to store them. If this is causing you actual issues please let us know, though!1 point
-
Here is a dirty quick fix - perhaps someone could make it nicer. 1. Append this to skin.js (/site/modules/InputfieldCKEditor/skins/lightwire/skin.js) // inline editor toolbar position fix // needs changes in editor.css, editor_gecko.css, editor_ie.css $('.InputfieldCKEditorInline').click(function () { var inlineToolbar = $('#cke_' + $(this).attr('id')); if (inlineToolbar.length) { $(this).parent().after(inlineToolbar); } }); 2. Append this to editor.css, editor_gecko.css, editor_ie.css: /*inline editor toolbar position fix*/ .InputfieldCKEditor { position: relative; } .cke_float { bottom: 100% !important; top: auto !important; left: 0 !important; right: auto !important; }1 point
-
I found a bug: if(!$ptf->has($child->id)) { $pp->{$ptf->name}->add($child); $pp->of(false); $pp->save($ptf->name); } Should be: if(!$pp->{$ptf->name}->has($child)) { $pp->{$ptf->name}->add($child); $pp->of(false); $pp->save($ptf->name); } It was re-writing the PageTable items every time, which made it impossible to reorder items.1 point
-
1 point
-
yup, just include the path to the php file in your hanna code; <?php include($config->paths->templates . "hannas/myhanna.php"); then you can include that same file form a template, or use as hanna code.1 point
-
related to the _init.php snippet you could use this while it has no affect in the frontend: may a solution could be to add this code from ryan here to set pages with specific template to hidden: $pages->addHook('saveReady', null, 'makePageHidden'); function makePageHidden(HookEvent $event) { $page = $event->arguments(0); if($page->template != 'category-site') return; // replace 'category-site' with your template name if(!$page->is(Page::statusHidden)) $page->addStatus(Page::statusHidden); } add this in your /site/templates/admin.php, after the opening <?php tag with this Pages::saveReady Hook it processes only before finishing saving a page...so just for new pages working for existing you should go to setup a API snippet with all needed pages and a foreach loop to edit all of the existing pages to setup up hidden status... With this function it is equal what a user set to status it would be always hidden after saving. regards mr-fan1 point
-
Yes that's the intended for the moment. The Module does the auto-redirect, I can't figure out how to send it to the other subdomain at the moment with out doing string manipulations. At the moment its kind of like if $page-> url ="/" && $page->id != 0 and its title is in the host file, then etc... to fix the directs. If I can solve the other part then I'll look into it, but for now it's actually working really well Cheers John1 point
-
I found it: It seems that on Ubuntu 15.04 (and maybe older versions) the newly shipped libapache2-mod-php5filter module somehow truncates the $_POST data. I removed it and installed libapache2-mod-php5. Now it works again. THAT IS NOT COOL, UBUNTU! If you have the same problem, run (as root): apt-get remove libapache2-mod-php5filter libapache2-mod-php5 will be installed automatically. Thank you for your help. Processwire works perfectly and confidence is there again but not for Ubuntu .. Sorry for my angry post. Regards, Fred1 point
-
1 point
-
Well, still shorter than the Magento Checklist...1 point
-
You are welcome. Thats what the forum (besides others) is for: asking for help with problems you cannot solve yourself. It is not bothering. So, - nice to hear it is solved now! PS: also I only was able to think about that solution because of your well sorted and formulated question / description. At least, _you_ gave the answer by yourself. I only was able to see it, whereas you wasn't because you did not have had the distance for a clear view.1 point
-
Luckily I do not have to work with WP sites, as I'm also build very less sites, mostly private things. There is only one site that was built with WP, it's a private site for my son and me. We haven't made any updates to it since two years. And I want to port it to PW since I know PW, but haven't found the time until now. My 10 years old son has made some photos that he wants to see on the homepage there and I need to remember where the admin / backend / login page was. I tried some URLs that all fail. Than I opened a FTP client and looked to the directory structure and found the name of the subfolder which contains the wp-admin folder. After typing this URL and failing again I got a bit dazzled and was talking / grumbling to myself. My son began to laugh and rolling over the floor and shouts: "You are not able to write wp-admin you have written pw-admin. Everything you can think of is PW!". And he is right: after finding PW, I just want to wipe out any past memory regarding WP. After porting this site I can fullfill this to 100%. Until then I have to live with mistakes like pw-admin.1 point
-
I like the "increase memory limit" part the best Btw here's an Advanced WordPress Development Checklist: DONT1 point
-
Seriously, first I considered the post as spam. I still think its very trollish.1 point
-
Here is something I hacked together quickly for automatically adding new child pages to the pagetable field. This is only if you are using the page as the parent. It also handles deletion of items if they are trashed externally. I also disabled the internal check for orphans - because they have been automatically added already, there is no need for the "Children were found that may be added to this table. Check the box next to any you would like to add." option. I seems to be working great here, but please test carefully!! Add this to your admin.php file: wire()->addHookBefore('InputfieldPageTable::render', function($event) { $pp = wire('pages')->get(wire('input')->get->id); $ptf = $event->object; //remove pages from pagetable field if they were externally trashed foreach($pp->{$ptf->name} as $item) { if($item->is(Page::statusTrash)) $pp->{$ptf->name}->remove($item); } //add pages to pagetable field if they were created externally foreach($pp->children as $child) { if(!$ptf->has($child->id)) { $pp->{$ptf->name}->add($child); $pp->of(false); $pp->save($ptf->name); } } //reset orphans property so that we don't get a message asking to add new pages that are now already automatically added $ptf->setOrphans(new pageArray()); });1 point
-
we're currently working on a campaign website for the German wheelchair sports association, a website for a real estate investment company and one for a local castle. All to be released in the next 2 weeks. Afterwards there are several more waiting. Good times atm1 point
-
Hi, I'm currently experimenting with using the excellent new PageTable field and have been unable to find an answer to this problem. When editing a page using the PageTable field, I am able to manually drag'n'drop the child pages created by the field. However when I save this doesn't seem to have any effect on the children that the PageTable field created in the admin PageList tree. I've tried setting the template with the PageTable field to sort children by 'manual drag n drop' and also tried setting it to sort children by the PageTable field but nothing seems to have an effect. TL;DR I can't get he manual sort order of pages created with PageTable field to be reflected in the sort order of the admin PageList tree. (The order in the admin PageList) (The order in the PageTable field) Thanks for any help with this!1 point
-
@adrianmak In the Netherlands there are a lot of rules that must be fulfilled for sending news letters. This brings big responsibility to the end user of the system. When you really trust the user with the sending and subscribe and un-subscribe system you could go that way. When done wrong it's not uncommon that your IP gets blocked or you've to pay big fines as stated by law. The markup generation can be done with ProcessWire ( Don't know any system that handles this better ), but I recommend for the sending an external service. Those services have you covered with good subscribe and un-subscribe systems.1 point
-
Page: https://sev-online.ch/de/members/login/ User: guest Error: Exception: SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (ascii_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' (in /xxxx/wire/core/DatabaseQuery.php line 86) The first and only time I get this error on this site. It's on the login/register. I'm not sure what exactly causing it, but I'm sure there's some special char getting submitted? It's hard to tell just from the vaque error message. Any ideas how to reproduce it?1 point
-
Just found how to reproduce it. When I enter some special chars like "éààéé" as the username... I think I need some more validation/sanitizing for that.1 point
-
Actuall in my testing phase of PW - there are much less usecases for such little snippets because you could use simple a extra field or do prefered PHP direkt in the page template....but in other systems you only had some blocks or one Wysiwyg per pages and such snippets catch up some content or bring some logic to a wysiwyg the user doesn't have to think about it. For example you could easy setup some Hanna codes and implement it fast via import on new different websites....reusable codesnippets are the usecase. Iportant question if i wanna make them work in the template i have to call the process i think?? Next HannaCode from my testings is a simple sitemap: //:Sitemap: creates a simple sitemap (Snippet find in the forum from soma) //:Use: [[sitemap]] Just import this one: !HannaCode:sitemap:eyJuYW1lIjoic2l0ZW1hcCIsInR5cGUiOiIyIiwiY29kZSI6Ijw/cGhwXHJcblxyXG5cclxuZnVuY3Rpb24gc2l0ZU1hcCgkcGFnZSwgJG91dHB1dD0nJykge1xyXG4gICAgJG91dHB1dCAuPSBcIlxcblxcdDxsaT48YSBocmVmPSd7JHBhZ2UtPnVybH0nPnskcGFnZS0+dGl0bGV9PFwvYT5cIjtcclxuICAgIGlmKCRwYWdlLT5udW1DaGlsZHJlbikge1xyXG4gICAgICAgICRvdXRwdXQgLj0gXCJcXG5cXHRcXHQ8dWw+XCI7XHJcbiAgICAgICAgZm9yZWFjaCgkcGFnZS0+Y2hpbGRyZW4gYXMgJGNoaWxkKSAkb3V0cHV0IC49IHN0cl9yZXBsYWNlKFwiXFxuXCIsIFwiXFxuXFx0XFx0XCIsIHNpdGVNYXAoJGNoaWxkKSk7XHJcbiAgICAgICAgJG91dHB1dCAuPSBcIlxcblxcdFxcdDxcL3VsPlwiO1xyXG4gICAgfVxyXG4gICAgJG91dHB1dCAuPSBcIlxcblxcdDxcL2xpPlwiO1xyXG4gICAgcmV0dXJuICRvdXRwdXQ7XHJcbn1cclxuXHJcbiRob21lcGFnZSA9ICRwYWdlcy0+Z2V0KFwiXC9cIik7XHJcbiRzaXRlTWFwID0gc2l0ZU1hcCgkaG9tZXBhZ2UpO1xyXG5lY2hvIFwiPHVsPlwiLiRzaXRlTWFwLlwiPFwvdWw+XCI7In0=/!HannaCode Have Fun - mr-fan1 point
-
@ozwim - not sure if you already know about this, but i follow Soma's suggestion and have a folder called 'hannas' and then keep all the hanna codes there; and then using this in the hanna code itself: include($config->paths->templates . "hannas/some-hanna-code.php"); @mr-fan - that's great - we should try and setup a place to share hanna codes... maybe github? I have a lot of examples also1 point
-
Just a little tip when working with hanna code. I for some project prefer to have the code on file system and not db. This can be achieved simply by including the php file in the hanna code. For example a Hanna code: include($config->paths->templates . "hannas/archive.php"); And have your Hanna code in archive.php.1 point
-
I just posted version 5 of Hanna Code. The primary additions here are: Predefined (default) attribute values There is a new Attributes field present in the Hanna Code editor. From here you can define what attributes your PHP or Javascript Hanna Code expects. This can also be used to set default values for attributes. Use of this is optional. However, I think it's a good idea to use it as it helps communicate what the options are for a given Hanna Code. It also saves you some code as you can assume your attributes will be defined as variables, ready to access. The main listing page now shows Hanna Codes with their attributes so that they can be copied/pasted into your body text with all attribute options known and ready to fill in. Support for Export and Import of Hanna Codes Now you can export any Hanna code and import it somewhere else using copy/paste. You'll see the Export option when editing a Hanna Code. You'll see the Import option on the main listing page. Below is a predefined Hanna Code you can import if you'd like: Jumplinks Hanna Code (example for import) This Hanna code is meant to be used in your body copy. It collects all the headline tags in the text and turns them into anchor jump links while outputting a linked table of contents. It will put the table of contents wherever you type the Hanna code. See the anchor jump links on this page for an example of what this Hanna Code does. Import Data: !HannaCode:jumplinks:eyJuYW1lIjoianVtcGxpbmtzIiwidHlwZSI6IjIiLCJjb2RlIjoiXC8qaGNfYXR0clxuZm9yPVwiaDIgaDNcIlxuaGNfYXR0cipcL1xuJGZvciA9IHN0cl9yZXBsYWNlKCcsJywgJyAnLCAkZm9yKTtcclxuJGZvciA9IGV4cGxvZGUoJyAnLCAkZm9yKTtcclxuZm9yZWFjaCgkZm9yIGFzICRrID0+ICR2KSAkZm9yWyRrXSA9IHRyaW0oJHYpO1xyXG5cclxuJGZvciA9IGltcGxvZGUoJ3wnLCAkZm9yKTtcclxuJGFuY2hvcnMgPSBhcnJheSgpOyBcclxuJHZhbHVlID0gJGhhbm5hLT52YWx1ZTsgXHJcblxyXG5pZihwcmVnX21hdGNoX2FsbCgnezwoJyAuICRmb3IgLiAnKVtePl0qPiguKz8pPFwvXFwxPn1pJywgJHZhbHVlLCAkbWF0Y2hlcykpIHtcclxuICBmb3JlYWNoKCRtYXRjaGVzWzFdIGFzICRrZXkgPT4gJHRhZykge1xyXG4gICAgJHRleHQgPSAkbWF0Y2hlc1syXVska2V5XTtcclxuICAgICRhbmNob3IgPSAkc2FuaXRpemVyLT5wYWdlTmFtZSgkdGV4dCwgdHJ1ZSk7XHJcbiAgICAkYW5jaG9yc1skYW5jaG9yXSA9ICR0ZXh0OyBcclxuICAgICRmdWxsID0gJG1hdGNoZXNbMF1bJGtleV07IFxyXG4gICAgJHZhbHVlID0gc3RyX3JlcGxhY2UoJGZ1bGwsIFwiPGEgbmFtZT0nJGFuY2hvcicgaHJlZj0nIyc+PFwvYT4kZnVsbFwiLCAkdmFsdWUpOyBcclxuICB9ICBcclxuICAkaGFubmEtPnZhbHVlID0gJHZhbHVlOyBcclxufVxyXG5cclxuaWYoY291bnQoJGFuY2hvcnMpKSB7XHJcbiAgZWNobyBcIjx1bCBjbGFzcz0nanVtcGxpbmtzJz5cIjtcclxuICBmb3JlYWNoKCRhbmNob3JzIGFzICRhbmNob3IgPT4gJHRleHQpIHtcclxuICAgIGVjaG8gXCI8bGk+PGEgaHJlZj0nJHBhZ2UtPnVybCMkYW5jaG9yJz4kdGV4dDxcL2E+PFwvbGk+XCI7XHJcbiAgfVxyXG4gIGVjaG8gXCI8XC91bD5cIjtcclxufSBlbHNlIHtcclxuICBlY2hvICcnO1xyXG59In0=/!HannaCode Usage Examples: [[jumplinks]] Locates all h2 and h3 headlines, turns them into anchors, and generates a table of contents. This is the default behavior with no attributes. [[jumplinks for=h2]] Here we specify a 'for' attribute. It produces the same behavior as above except only anchors h2 headlines. [[jumplinks for=h2 h4]] Same as above except only anchors h2 and h4 headlines.1 point
-
Now we have this, I can imagine we have a "snippet" bucket somewhere were we can share some high quality "snippets".1 point