Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 09/18/2012 in all areas

  1. I'm excited to announce that the ProcessWire Form Builder is now available from the DesignIntelligence bookstore: http://store.di.net/...re-form-builder I'm initially giving a 20% discount on the prices there (coupon code PWFB-BETA) because I'm still adding new things to it at a rapid pace, and feel it should still be called "beta test" (and not full price) until it's been out in the wild for a bit. However, a few of us here have been using the Form Builder on production sites for awhile already, and it's working great. But if you don't mind using a pre-release version and giving me feedback or suggestions where appropriate, then there's a nice discount for now (which will expire when we reach version 1.0). If you are wondering what the DesignIntelligence bookstore is, they are one of my long time clients and have agreed to let me provide the Form Builder through there. I actually setup and manage this online store already for them (and have for years), so feel very comfortable putting the Form Builder here. But when we grow big enough, we'll setup our own. When you get Form Builder, you'll also get access to the new Form Builder Support board (in this forum). This is where regular software updates are posted (ZIP files), among other things. So PM me when you do so that I can add you to it. Thanks for your support of ProcessWire and Form Builder!
    6 points
  2. Adde pull request for modified ProcessTemplate translation file. Also translated a new file "ThrottleLogin" module, json file attached. wire--modules--sessionloginthrottle-module.json.zip
    2 points
  3. I wanted to give you a little preview of a new module I've been working on recently: the Form Builder module. This module lets you create simple-to-complex forms and place them in your site without any need for development. In this video we show how we can create, publish and test a simple contact form in less than 5 minutes. Then we take a quick look at a more complex form (already produced). I recommend viewing the full screen + HD 720p version so that you can see it more clearly than in this small forum embed. (note: there's no sound, so no need to adjust your volume) More about the Form Builder The Form Builder has many options for the developer to customize output and create their own themes, markup, etc. But the goal here was to build something that could enable you (or your client) to publish a form in less than 5 minutes, so that's the focus of this video. This tool is literally easy enough for your clients to create and manage their own forms. Or from a developers perspective, it takes something that used to consume hours and makes it happen in minutes. Form results save in the database and optionally can be CC'd to you by email. Result entries and be viewed, filtered by date, and even edited in the admin. You can export results to a spreadsheet as well. I'm working on the ability to export to pages, though that isn't quite ready yet. How the Form Builder will be licensed This module will be individually licensed on a per-site basis for a small license fee. It will also be available for free personal use to established forum members. Basically, I want to see if I can substitute some of my client work to focus on ProcessWire instead. And in order to do that, I need to have an income (I have a family to support). So I thought that building a special tool like this would be a way to make a go of it. A lot of you have asked to make donations to the ProcessWire project, and while we still won't be able to take donations, you will be able to support the ProcessWire project by purchasing and using the Form Builder in your own client projects. So a lot of motivation for this module came from wanting to provide something really special for all that had wanted to support ProcessWire. After a few months of work, I'm pretty happy with how this module has turned out -- it's already saved me tons of time in my client projects. So I'm thinking and hoping you guys will really like it too. I look forward to your feedback.
    1 point
  4. I realise it's something of an edge case, but I'm struggling to import a CSV file containing 1,692,242 rows. Firstly, a bit of background - the CSV is generated by phpMyAdmin, and contains the full UK postcode list and grid references like thus "AB101AA","394251","806376" "AB101AB","394251","806376" "AB101AF","394181","806429" "AB101AG","394251","806376" "AB101AH","394371","806359" "AB101AJ","394181","806429" and so on. So while there are a lot of lines, not big ones - just 3 fields. They will be use to calculate the distance between 2 places (along the lines of a 'Store Locator' page). The input fails when clicking the 'Continue to Step 2' button, and just reloads Step 1. This happens on files > about 250,000 rows. (250,000 works, 500,000 fails) What I have tried/noticed No PW errors, on screen or in error log. No PHP errors ditto. I've increased upload_max_filesize in php.ini to a figure well over the CSV file size I will probably do the import in 250,000 line chunks (probably would have finished by now if I hadn't written this ), but if I'm doing something wrong or it's a known limitation or a bug, maybe we are as well knowing.
    1 point
  5. Since a latest updates to TinyMCE inputfield there's an option to add custom plugins from outside the core to TinyMCE on a per field basis. Here's an example how to add the bramus_cssextras plugin. Ok download the plugin http://www.bram.us/p...xtras/#download 1. create a directory in your site folder i.e. "/site/tinymce" 2. create a plugins folder in it i.e. "/site/tinymce/plugins" 3. put the folder "bramus_cssextras" in there 4. put a content.css in the "tinymce" folder (this is where you can define classes or id's, like: p.lead {...}, ul.list {}, h2.red{ ... } ) (see bramus_cssextras homepage for further infos) 5. now go to the TinyMCE field you want to use it. Under tab "Input" you'll see a "TinyMCE Advanced Configuration Options" collapsed. Open it. 6. add the buttons to one of the theme_advanced_button fields: "bramus_cssextras_classes,bramus_cssextras_ids" if you don't need id's leave it out 7. add the content.css to the content_css field setting like: "/site/tinymce/content.css" 8. add plugin to "Third-party plugin" textarea field like: "bramus_cssextras: /site/tinymce/plugins/bramus_cssextras" as one line. Done. You should now be able to select the class "lead" when cursor inside a <p> tag. Add as much css classes or id's to the content.css as you wish, bramus_cssextras will autodetect them. Have fun.
    1 point
  6. I wrote my first PW module this week-end, and I was generally pleased - in about 5-6 hours through the day, I was able to learn (from the ground up) how to use the hooks and input-fields APIs, as well as writing a small but functional plug-in. If I had to compare this experience with my Drupal or WordPress module-writing experience in the past, I would say this is about 10 times easier to learn and do! One thing I find in general about PW however, is the IDE support is lacking - this is natural and expected, due to the nature of the PHP language, but I like to push the limits, so if you're interested... Help me brainstorm for ideas to implement IDE support for hooks? Of course, the obvious route is to implement IDE support in the IDE - this is the route that more IDEs seem to choose lately, for example Yii and Symfony has IDE support in a couple of IDEs by now. That's all well and good, but I would strongly prefer to find an approach enables static analysis - IDEs already parse and inspect code and PHP-DOC annotations, and in modern IDEs this ties in with powerful features like auto-completion, parameter/type-hints, documentation, diagramming, automated refactoring, and so forth. There must be some way we can leverage that existing IDE power? A couple of random ideas and hocus-pocus off the top of my head: - thin run-time code-generation in "autoloaders" - things like eval('class '.$magic.' extends '.$static.' { use '.$trait.' }') execute quickly. - static code-generation via stream-wrappers or autoloaders, modifying or generating code. - inline code-generation (via autoloaders) - altering sectioned areas in source-code (relies on eager saving and auto-refresh in IDEs/editors, e.g. PhpStorm) - class-name aliasing: use x as y... I actually attempted eval('use Foo\Bar as Fudge;') and I can report that it executes, but doesn't work - still worth pondering though, could work in combination with inline code generation. - PHP 5.4 traits can implement __call(), __get() and __set() ... doesn't provide any IDE support off-hand, but perhaps in combination with something else? - parsing PHP and/or PHP-DOC: could lead to interesting results in combination with another hocus-pocus technique. Please add to the list, if you're interested!
    1 point
  7. I was delighted to find when editing copy in a TinyMCE window that with the cursor in a block of text marked up with a Paragraph tag, pressing Cmd+2 (on a Mac) will on-the-fly change this to an H2 tag. Cmd+3 for H3, etc. Can anyone point me toward the easiest way to change and existing shortcut I don't use, such as Cmd+5 (H5) to blockquote? Or, if that's not possible, how to add a new keyboard shortcut. I've Googled and tried things but to no avail. Ideally I'm looking for a solution that just involves edits to the field settings in the admin but if the only way is by adding extra files under /site then no problem. Thanks in advance for any pointers. Cheers, -Alan
    1 point
  8. It is a lot of fun when you get playing with it. I've been building some test forms earlier this evening to try it out and will build some more serious ones later in the week. It's powerful, impressive stuff which seems to be the ProcessWire way
    1 point
  9. I would suggest looking into Mandrill from those chaps at MailChimp. It's basically the sending/stats/bounce part of Mailchimp, leaving you to build the newsletter and subscriber database in ProcessWire. Basically it's another alternative to what Antti mentioned above, and one I'm really curious to look into myself if I ever get time! Colour me biased, but the pricing and features in Mandrill might be more appealing too (first 12,000 emails sent per month free).
    1 point
  10. You could build one template with the current site and point all access to that page using the excellent plug-in by pete called Maintenance Mode.
    1 point
  11. Hello there! Without knowing exactly how your module works, I can only throw in general ideas - hope they're of some help: a) You could use a GET variable for this; example.com/example-page/?view=newsletter and then "if ($input->get->view == "newsletter") { ... }". b) There are many solutions for this one. Simple way would be fetching the content of your newsletter page ($newsletterPage = $pages->get('/page-uri-or-whatever')) and then including a file with your alternative markup (in which you use $newsletterPage instead of $page) wherever you wish to render the newsletter. Another method would be to play around with actual template files; see this post by Soma for an example. One slightly crude method to get JSON (or pretty much any other markup you need) out of a process module is to output it (echo, output buffering, whatever floats your boat) and then die() -- or exit() if you prefer it that way. There are cleaner ways to do this too, but hey -- it works
    1 point
  12. Nico, sorry I forgot. Would it be possible that you add %parents option to the module? Thanks!
    1 point
  13. Just did my duties, and it took 5 attempts with recaptcha. But once again human was stronger than evil computer.
    1 point
  14. Welcome Ryan and thanks for pushing the already tidied code back so quickly.
    1 point
  15. Didn't see this post before answering the other one. I am still going to finish this, but I don't have any time at the moment. I've been caught up by quite a lot of client work. In the month October I got some spare time. Perhaps ryan's new form builder could accompany you.
    1 point
  16. I use jQuery.on() everywhere - it's basically the standard for event-management in jQuery now. An icon font, hmm... I prefer to have a folder where I can drop in another icon when needed. I knew about the custom label setting, but I wanted something colorful you can distinguish from the rest of the content - I won't personally be using the label-feature on every template, just on certain templates to call attention to certain things. The style was lifted from Twitter Bootstrap's badge style - I'm not a designer, but it looks fine to me. I saw your color-picker and decided not to use it, as it creates more complications from having to either compute (or enter) a foreground color. I also decided I wanted a small preset list of colors because I'm not trying to turn the page list into a color symphony - a low number of colors that are easy to distinguish from each other. All conscious decisions. I was less conscious of API choices and PW conventions - I tried to grok what I could from existing plug-ins, but as said, a code-review would be appreciated, if anyone has the time/experience... (on that note, the documentation page really could use a chapter explaining hooks in depth...)
    1 point
  17. 500K is quite a lot. So even 250k is a lot and surprized it works. It's not about time it takes to upload and the size of the csv. It will generate 250k pages in memory and it looks a lot like a memory or time execution limit. Recently we had to up the memory limit up be able to upload 6MB+ images on a server so it's not alwas directly related. I think importing such amount of data in chunks is your best bet. It was discussed in the CSV thread an other occasion here in the forums.
    1 point
  18. @Ryan, I just noticed that if in config.php I have $config->debug = true; then whenever I submit a change to the settings of the LoginNotifier I see at the top of the rendered page: Notice: Undefined variable: this in /my-test-website.alan/site/site/modules/LoginNotifier/LoginNotifier.module on line 197 I assume this is nothing to be worried about and just a variable that has not been established before it's used (like I know what I am typing there... I know so little PHP ) Anyway I just thought I should let you know in case it's important.
    1 point
  19. And i thought i was being ambitious the other day while importing 13.000 rows/pages! In step 2 the csv file is opened and it's contents read. Maybe some memory_limit issues? Googling for something like 'php fgetcsv timeout' gives some results like this which describe similar issues. Interesting. On a side note: wouldn't it be better to store this data is a separate/custom table?
    1 point
  20. I thought it might be something like that. Any particular reason the autoloader couldn't be responsible for this? Anyhow, to return to the original subject - I've mostly built out a module (yay, my first!) that lets you add a colorful badge and/or an icon to a template, which will display on the page list. Here's a screenshot: The repository lives here: https://github.com/mindplay-dk/TemplateBadges Two known issues: I realized too late that ProcessWire uses an older version of jQuery - to test this module, you will need to replace the bundled jQuery with a newer version. I posted the issue here. ProcessTemplate::buildEditForm is not hookable - I haven't posted an issue for this, since Ryan said he will adds hooks as needed. With those two fixes in place, you should be able to test it out. Since this is my first, I would appreciate a code review and feedback from any experienced module developers!
    1 point
  21. Ryan, if you ever need some king of slogan for PW, I suggest: "It's just too easy." Of course, thanks to soma, this foreach($page->children("include=hidden") as $child) sitemapListPage($child); does the trick. Boy, I wish I had known about PW way, way earlier.
    1 point
×
×
  • Create New...