Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 12/02/2017 in all areas

  1. @wbmnfktr I removed the security related link, which was outdated anyways, as it was for the 2.x legacy version of ProcessWire. Right now, for PW3 there are no documented security flaws. The article is now translated into English and available here: https://jensmartsch.de/blog/why-processwire-is-the-best-choice-for-your-website Additions and comments are welcome. I also updated the first post, with links to both versions.
    3 points
  2. Last update: June 2024 Current stable version: 1.5.4 Dev version: github dev-branch You can find the module on Github and in the modules directory : https://modules.processwire.com/modules/duplicator/ https://github.com/flydev-fr/Duplicator/archive/master.zip Screenshots / Features Dir and files exclusion CRON job Advanced settings Local and Cloud storage duplicator.mp4
    2 points
  3. This week we have a guest post from Bernhard Baumrock that is a nice introduction to creating Process modules in ProcessWire. Bernhard covers a lot of useful material here and we hope you enjoy it. Big thanks to him for his contribution this week. I've been traveling (Ryan) for the last two weeks, but arrived back in town last night, so next week we'll be back to our regular PW core updates and schedule. https://processwire.com/blog/posts/building-custom-admin-pages-with-process-modules/
    2 points
  4. Just tried out the latest dev version and experienced the new admin area. Damn, this is a beautiful CMS. Can't wait to see how my clients react to this.
    1 point
  5. Would you mind to share your White Paper with us? Non-public or with a NDA (kind of)? It sounds interesting as a 10-pager should/might be very promising. I'd like to share my insights and arguments as well - if someone is interested.
    1 point
  6. I created a 10 page white paper that we provide to prospective clients, which does compare PW to the big three, as well as commenting on topics like SEO, Speed, Security and Ease of use. Sort of a 'ProcessWire to the Rescue' story. Been very helpful during any proposal stage. Now i can also send them to your article..
    1 point
  7. Check this website, maybe it can help in your ideas https://processwire.com/about/sites/list/ohm-speakers/
    1 point
  8. <?php /** * * TwigExtensions * * See README.md for usage instructions. * * @author Jens Martsch <jmartsch@gmail.com> * @version 1.0.0 * @see http://www.processwire.com */ /** * Class TwigExtensions */ class FriendChipFunctionsForTwig extends WireData implements Module { /** * Retrieves module meta data * Implementation of the Module interface * * @return array * @see http://processwire.com/apigen/class-Module.html */ public static function getModuleInfo() { return array( 'title' => 'Functions for Twig', 'summary' => 'Allows customizing twig, e.g. add extensions', 'version' => 100, 'singular' => true, 'autoload' => true, 'icon' => 'puzzle-piece', 'requires' => array( 'TemplateEngineFactory', 'TemplateEngineTwig' ) ); } public function init() { if ($this->modules->get('TemplateEngineTwig')) { $this->addHookBefore('TemplateEngineTwig::initTwig', $this, 'addExtensions'); } } /** * Hook add twig extensions * * @param HookEvent $event */ public function addExtensions(HookEvent $event) { $this->twig = $event->arguments('twig'); $this->addRelativeTimeStr(); $this->asset_path(''); } private function addRelativeTimeStr() { $twigWireRelativeTimeStr = new Twig_SimpleFunction('wireRelativeTimeStr', function ($date) { return wireRelativeTimeStr($date); }); $this->twig->addFunction($twigWireRelativeTimeStr); } /** * Returns the revved filename if a rev-manifest exists * else it returns the $filename * @param string $filename relative to the template/assets directory * @return string */ private function asset_path($filename) { $assetPathFunction = new Twig_SimpleFunction('asset_path', function ($filename) { $manifest_path = $this->config->paths->templates . 'assets/rev-manifest.json'; if (file_exists($manifest_path)) { $manifest = json_decode(file_get_contents($manifest_path), TRUE); } else { return $this->config->urls->templates . "assets/" . $filename; } if (array_key_exists($filename, $manifest)) { $manifest_filename = \ProcessWire\wire()->config->urls->templates . "assets/public/" . $manifest[$filename]; return $manifest_filename; } }); $this->twig->addFunction($assetPathFunction); } } or take a look at https://github.com/justb3a/processwire-twigextensions
    1 point
  9. Hi @SamC Thank you for your help, I put namespace Processwire on both, contact.php and _contact-controller.php it all worked. I just had some design problems thus my page won't load properly. I guess I have to take more attention to frontend as well Thank you again!
    1 point
  10. Yes it's usually that kind of hardware use that still makes them attractive. I used a serial port once to switch on lights in a room at the moment a security camera overlay detected movement. I don't live in France so I can't forward that port adapter to you. But yes maybe somebody in France here will pick it up.
    1 point
  11. Hi pwired! Thanks for reading and your reply. Much appreciated! Yes your right!! It's all about the ports. The T60 T61 series laptops are special in that they have a dedicated adapter whereby you can take out the CD or DVD drive from the bay and in it's place put in a combined serial and parallel port interface adapter. I managed to find one of these adapters in France. So am hoping that someone there can purchase it on my behalf and ship it to me Even though they might be considered as antiques, I actually quite like these old ThinkPads. Also I am really getting in to Raspberry Pi's now and they would make a good low cost companion to connect to the Raspberry Pi with. I just bought a T400 with docking station, monitor, mouse and keyboard for a very cheap price to use to play with my Raspberry Pi 3 and to learn Python and SQLite on Thanks again pwired for chiming in
    1 point
  12. If at least one language is inactive, then list all and strike through the inactive ones. My other idea is to show this language list in a tooltip somehow.
    1 point
  13. I've managed to solve the uikit issues mentioned by @jmartsch, will be available in the next update. I'm experimenting with a feature called "language indicators", which would come handy to see the active/inactive languages in the page list: The idea is to make it visible only if not all languages are active, otherwise list all languages (abbreviated to the first 3 chars of their titles). Inactive languages are marked with a line-through. I think it's the quite talkative at first sight, and doesn't mess up the page list if you have many languages. Thoughts?
    1 point
  14. @MilenKo I'd go with Less if you're using uikit as you can make your own theme. Maybe you can do this with the Sass version but I didn't bother trying as there doesn't seem much point being stuck knowing just one or the other. You can get comfortable enough with both then you're free to choose whatever framework you want, or write some stuff yourself from scratch, whatever suits you best. Once it's set up, it's not that difficult, and they give you a build script too so you're literally up and running in about 5mins. Then you just override variables, hook existing stuff (like cards, accordians etc...) and add your own custom rules. All compiles to a nice minified CSS file which you can then link to from your webpage. I'm starting a new guide about Uikit on my tutorials site as I've found the uikit instructions to be lacking in detail and an absolute beginner to css pre-processing would have a tough time with it. The guide will serve as a base for when I get round to writing about customizing the PW admin theme, which will be easy once someone has read the first guide.
    1 point
  15. Did you try putting the namespace at the top of the _contact-controller.php file? What I reckon is $v is a Valitron object, and your error is complaining about a 'non-object' being referenced (trying to call a method called errors() on it). $v is in _contact-controller.php and your calling a method on it in contact.php. These two files don't 'know' about each other (even though you have the namespace in header.php). Maybe unnecessary, but to avoid things like this (undefined functions is another one that crops up) I just add the namespace to the top of every template. It's not that much hassle as I never have tonnes of templates anyway. Therefore I would think that adding the namespace to _contact-controller.php would solve your issue. Now I might be wrong but I'd try this if you haven't already. I can't see anything wrong with the code at a glance, especially if you copied it from a working example. The only difference I see is that yours doesn't have the namespaces.
    1 point
  16. You might try hooking after: ProcessPageAdd::executeNavJSON This is an example of using that to modify the returned list of pages: https://github.com/adrianbj/AdminRestrictBranch/blob/838858fd36a78df808b7690b4cddcb3a6c25ffa3/AdminRestrictBranch.module#L144
    1 point
  17. you can use https://processwire.com/docs/tutorials/how-to-use-url-segments/ you will get page/a-z instead of page/?sort=az ..using this segments you can search, filter, sort the pages results and update too the "sort box" (select, radio buttons, tabs, any) by this value
    1 point
  18. Just had this for breakfast! Brilliant work @bernhard ! Really shows the power of PW in a very pragmatic way.
    1 point
  19. Thanks @flydev ... Now the menu should work already well. I changed the .btn-group class to flex-wrap: nowrap in _custom.scss file. Generally, this is my first template on this framework and I still learn about it, but I hope it will be useful to the community.
    1 point
  20. You came to some pretty solid conclusions in less than a week
    1 point
  21. I pushed a small update this night : Fixed changed all _() call to __() for translation string the installer parse correctly the config.php file on windows machine small typo in ProcessDuplicator Added check if ProcessDuplicator module is installed, if yes, then display the link in the local folder overview to the manager I tested Duplicator on a Windows machine with PHP-5.6 and PHP-7.0, I could build a package and cloned the site without issue too.
    1 point
  22. It just so happens that there is... Templates: Child Pages You could use this in conjunction with the hook below, which will use the template context for title label, description and notes if the number of allowed templates has been restricted to one: $wire->addHookAfter('ProcessPageAdd::buildForm', function(HookEvent $event) { $form = $event->return; $template_field = $form->getChildByName('template'); if($template_field->type == 'hidden') { // Only one template is allowed for this new page // Get the template $template = $this->templates->get($template_field->value); // Get the title field in the context of this template $title = $template->fieldgroup->getFieldContext('title'); if($title) { // Set the properties of the 'title' inputfield $title_field = $form->getChildByName('title'); $title_field->label = $title->label; $title_field->description = $title->description; $title_field->notes = $title->notes; } } $event->return = $form; });
    1 point
  23. Hi everyone, This is an early (but mostly functional) version of a module that I am experimenting with for automatically populating all empty fields on a page. It is designed for use during site development and should be uninstalled once the site is live. https://github.com/adrianbj/AutoContent (anyone have an idea for a better name?) It currently supports the following field types: Text - outputs "This is an example Field Label", where "Field Label" is the label for the field Textarea (RTE and plain) - configurable content from http://loripsum.net/ and embedded images from http://lorempixel.com Datetime - honors output formatting and returns random date/time with configurable min/max datetime Integer - honors min and max settings Float - honors min, max, precision settings URL - returns a random URL Email - returns a random email address Image - you can specify image category (people, nature, business, etc), and the range for min/max number of images to generate. Page - creates runtime selected child page content for output - not well tested yet. MapMarker - not well tested yet! I will be adding support for Profields and other selected 3rd party fieldtypes shortly. Highly configurable content is provided by: http://loripsum.net/ http://lorempixel.com/ https://github.com/fzaninotto/Faker Generated content can be localized to your region - very handy for addresses, people's names, phone numbers etc: Many fieldtypes are configurable via the Input tab on the field's config settings, eg: Textarea: Text: Images: Datetime: In general I am designing this to work with minimal/no configuration so you can install and have all fields on all pages on your site immediately populated for testing layout and styling without the need for manually adding dummy content. There is also a dummy page batch creator and deletor (automatically tracks and deletes just the dummy pages) available from the module config settings page. Please let me know if you think you will find this useful - trying to get an idea of how much time to put into support for additional field types.
    1 point
  24. Some more nice features copy&paste (eg from excel) that way the field could be used as an import-interface with live preview (much more userfriendly than CSV in my opinion) auto-add-rows (coulb be used as something like a repeater-replacement) hot.updateSettings({ colHeaders: ['Foods'], minCols: 1, maxCols: 1, rowHeaders: false, minRows: 1, minSpareRows: 1, }); auto-add-cols (like tagging) hot.updateSettings({ colHeaders: false, minCols: 1, minSpareCols: 1, rowHeaders: ['Foods'], minRows: 1, maxRows: 1, });
    1 point
×
×
  • Create New...