Leaderboard
Popular Content
Showing content with the highest reputation on 02/14/2015 in all areas
-
10 points
-
Another Friday blog post with core updates just posted. This time we've got several image editing updates, particularly with regard to image editing for images placed in rich text fields. Also included are HiDPI/Retina support, an image variation tool, and more… Read all about it here, plus a video and screenshots: https://processwire.com/blog/posts/new-image-editing-features-2.5.19/10 points
-
I pushed it on GitHub in an alpha state: https://github.com/NicoKnoll/LightWire-Skin Feel free to try it and send me PullRequests or ideas.5 points
-
I think something like PW should be a page on FB rather than a group. If you have a page, you post from the page's name not from your own. So you do not annoy your family and friends)) As all meaningfull discussion is here in the forums I do not see any reason for maintaining a PW group. As a page we can have presence on FB with announcements and so bringing FB public to this forum. Private group will not serve as a kind of ad for PW.4 points
-
Where do i get? From here: https://github.com/IDT-media/Pages2JSON (thanks to LostKobrakai for "bug" report) What does this do? Simply adds method toJSON() to Page and PageArray elements, is capable to converting image and file arrays to URL containers, travels recursively all objects before outputs actual JSON. How to use? Simply install this module, configure data you want it to export in JSON result (similar to Ryan's ServicePages, thanks btw used some of ur code here). in templates or anywhere you need JSON output, call: $page->toJSON(); or $pages->toJSON(); Live example with template: search.php /***************************************************************** Do search *****************************************************************/ $term = $sanitizer->text($input->term); $results = array(); if($term) { $input->whitelist('term', $term); $term = $sanitizer->selectorValue($term); $limit = (int)$input->limit; $limit = $limit ? $limit : 50; $limit = $sanitizer->selectorValue($limit); $selector = "title|categories|content*=$term, limit=$limit, template=default|product"; // Prevent admin pages. if($user->isLoggedin()) $selector .= ", has_parent!=2"; // Find pages that match the selector $results = $pages->find($selector); } /***************************************************************** Output *****************************************************************/ header("Content-type: application/json"); echo $results->toJSON(); exit(); Customizing values: if(wire('config')->ajax) { wire()->addHookAfter('Pages2JSON::getValue', function($event) { $value = $event->arguments(0); if(!is_object($value)) return; $page = wire('page'); if($page->template == 'thumbs' && $value->className == 'Pageimage') $event->return = $value->size(28,28)->url; }); } Here i swap URL of all Pageimage objects in JSON response to match thumbs. Simple hu?3 points
-
3 points
-
Could you send me a screenshot of yours? Yeah I'm going to release it and hope that it may become default in 2.6 or 3.0. Because I think the current default skin is really ugly (not PW's fault).3 points
-
3 points
-
I did another quick module, which plugs something I always kinda missed in ProcessWire. It's just a raw overview over the access management from the templates. Nothing fancy, but useful. The visible roles and the visibility of system templats can be setup in the modules settings. I'll add this to the modules directory later. But for now it would be great to hear if anyone is missing anything or if someone does have a better idea how to name the module. 12.03.15: Renamed the module and fixed wrong information for superusers and inherited rights from the required guest role. GitHub: https://github.com/LostKobrakai/ProcessAccessOverview2 points
-
2 points
-
I've updated the module, I'll update the Screenshot above, too: Templates now show access rights inherited from parents, which are in the parentTemplates array. Templates show up in the "Free Inherited Access" if they don't define special parentTemplates or at least one of the defined ones does not lead to a template, which defines access on it's own. A checkbox in the settings to enable, that the paths of inherited access' is shown. By default this info is reachable via mouse over on the icon. A small description below the table to make it clear what's going on. I would also like to have some input regarding these features. First I'd welcome any recommendations about the descriptions (mouseover / below the table). Secondly I'd like to know what you'd find more understandable regarding the paths. E. g.: products - Defines Access category - Must be child of products, does not define access product - Must be child of category, does not define access The row for product could display either "products > category", which it does currently, or it could show "products > category > product", which would show the current template's name, too.2 points
-
I agree, however one of the main points I drive home to my clients is that you need to be seen on the major social media platforms. You may ask, why should I do FB, Google+, irc etc? The simple answer is that not everyone uses the same content media on the Internet. Some like Twitter, some like FB, some like Instagram, some like Snapchat and some like regional or national social media. If you want to reach a particular market or group of people you need to advertise where your target audience is. Realistically, we can't cover them all and we shouldn't. We just need to identify what's important and stick to those social channels for the immediate future. I do think that Twitter, FB and Google+ are critical and important to anyone for a variety of reasons. Twitter and FB would seem obvious to almost anyone. I believe that Google+ is important for raising and enhancing your SEO/SEM position in local, regional, national and international markets.2 points
-
I've now added clock-picker to the master branch and bumped the version number. Please see the opening post for more details.2 points
-
2 points
-
I'm building a series of Process Modules for internal business functions. We have several processes that require complex forms. More than would be feasible to create using pages. So I decided to use FormBuilder to allow the appropriate users create and maintain the forms. There would be way too many fields required to send all these forms to pages using the built-in FormBuilder process. These are all lengthy forms (and this is a University), so think 10+ forms — some with up to 60 fields. Rather than save the form to a page, we hook into 'FormBuilderProcessor::saveForm' and create a page that references FormBuilder entry. (The page title is the same as the form entry, for example 1.817) I got a few tips from Ryan on that part. There is one base module called "ProcessAdminForms" that has all the common functionality. The modules that extend it can get as specific as needed. The screenshots below are from the "ProcessAdminIPIFs" module. It is an internal HR process that is required to hire a new employee or setup a new vendor. List of entries Show/hide columns (state saved per user via cookie) Viewing an entry Administrative comments & notifications2 points
-
So you've developed this shiny new website but your editors and marketing guys keep complaining they need more "native embedded content" with shiny share and retweet buttons because otherwise their text will look like ...text? Look no further: This processwire module has you covered! TextformatterOEmbed for processwire What it does At this point this module basically wraps the fabolous Essence PHP library by Félix Girault and adds some processwire magic to parse your boring Textareas and make your content look more bling blingthan ever before. Disclaimer: This Module is heavily inspired by TextFormatterVideoEmbed by the awesome guy who created processwire: RyanCramer. Requirements php 5.4+ curl and/or allow_fopen on Features Supports the following 32 providers out of the box (That's a lot of Hanna-Codes you can get rid of now, eh?): Add your own providers in the blink of an eye (if you're not good at regex - like me - it will propably take you a cup of coffee and a google search) Easy styling: Wraps embedded items with customizable BEM-Style classes including modifiers for every provider and embedtype. Choose to either add CSS directly in the modules configuration or to your existing stylesheets Choose to add pre defined Fluid Video CSS for your responsive design (or - again - feel free to add your own) Usage Click check for new modules in ProcessWire Admin Modules screen. Click install for the module labeled: "oEmbed for processwire". Install the module Open the modules Settings page Add css classes either within the "Custom CSS" field or in a seperate CSS file. Every provider is wrapped with the following markup: <div class="pw-oembed pw-oembed--providername pw-oembed--embedtype"> <div class="pw-oembed__inner pw-oembed__inner--providername pw-oembed--embedtype"></div> </div> If you're not happy with the "block" class .pw-oembed you can rename it to something you like better using the modules config. Every embedded media item and it's respective inner wrapper has two modifier classes: One for the provider (i.e. youtube, twitter...) and one for the media type (one of photo, video, link or rich according to the OEmbed specification). This should be enough classes to add some fancy icons, adjust widths per provider or whatever else you like to do. If you're missing a provider don't hesitate to open a pull request (see roadmap first) and I'll do my best to add it as soon as possible. In the meantime you can extend the available providers found in lib/essence/providers.php in the modules settings using the following JSON-Format (remember that you'll have to properly escape the regex): [{ "23hq" : { "class" : "OEmbed", "filter" : "#23hq\\.com/.+/photo/.+#i", "endpoint" :"http://www.23hq.com/23/oembed?format=json&url=%s" } }] Roadmap Add moaaar providers:Facebook (currently not providing a "native" oEmbed API) Google Plus (currently not providing a "native" oEmbed API) support for more fancy integration of Instagram posts (currently there are "just" images without fancy sharing stuff that will be embedded) Render only one javascript (i.e. ) when there are multiple items of the same provider Propably make this module more generic and add services as submodules at some point World domination1 point
-
Hey everybody, I'm one of the admins on the ProcessWire FB page and I had a question. For those of you who are active on Facebook, would you rather that we turn the group into a closed group instead of a public group? You can see the difference here: screenshot. Anyone can still request to join the group, so it's still pretty open, but you have to join the group to see the posts. The reason I'm asking is: I notice I don't feel like posting there much, because my Facebook friends are notified whenever I post to a public group. So it's kind of a disincentive to post, for me--like I'm calling attention to something that is just more noise in their feed. Let me know what you think!1 point
-
I have the same problem EDIT: Opened an issue on this .1 point
-
Here's a weird thing. It's not just new fields I've created since upgrading to the new dev, it's the same problem with every image. I can't delete anything! No error messages, nothing. I click the trash button and it goes red and scores it out like normal. But then hit save and it just comes back like I didn't do anything. How curious. I don't think it's file permissions or anything like that because I haven't changed anything on the site directory. Just replaces the wire directory, as normal.1 point
-
Sure, although I think yours looks better and would make a better default. I'm on mobile now, will send later when I can get to a computer.1 point
-
Looks great Nico. I've been using a custom one here that matches AdminThemeReno. I've been meaning to get it out there, but yours looks great, and would likely go well with any theme. Looking forward to checking it out. *assuming you will release it.1 point
-
1 point
-
1 point
-
I think officially pw is just on Twitter. Fb, google+, irc etc are all "community driven communities". FB probably works better as hidden, though I think it has big overlap with this forum anyways. I don't post to fb because my friends mught see that on their walls, but because I find bigger audience from here.1 point
-
1 point
-
Hi, Just tried this module with pw 2.5.3. I'm also using bootstrap-framework as a base for my theme and I found out that bootstrap has modal-class defined which make a pretty mess with adminbar. I changed: adminbar.module line 181: $modalClass = 'modal'; --> $modalClass = 'ab-modal'; adminbar.js line 10: var $modalLinks = $adminbar.find('a.modal'); --> var $modalLinks = $adminbar.find('a.ab-modal'); That fixed the mess. I don't know is it a good idea but maybe it would be wise to change that class to ab-modal so it won't interference with common css/js frameworks.1 point
-
Thanks! Valuable thread, but too complex for my task. I need save once and maybe read this array twice or something, so I've stopped on textarea and it works fine for me.1 point
-
re:headers this is a very interesting read i came across: http://www.mobify.com/blog/beginners-guide-to-http-cache-headers/1 point
-
First, Thank You for your comments. No problem with disagreeing, however my point is that if a developer is using ProcessWire as a solution, they should have confidence in and knowledge of the product. Maybe what I don't fully understand is, if you are a professional Solution Provider, I would sincerely hope that you aren't ever providing crappy solutions. This would be the case regardless of what software you are developing with. That is a situation where the skill of the developer determines the outcome. It's never crappy software that's to blame, it's always a lack of focus that leads to a crappy implementation. In my humble opinion (and remember this is my opinion), ProcessWire as a tool for developing websites has more to offer (on a technical basis) a client than Wordpress. You have more control over the front-end and back-end development processes. You have an enormous variety of field types that can be customized. With ProcessWire, the limitations are few and the benefits are many. Yes, Wordpress is more popular and will most likely always be that way. I appreciate Wordpress' status and pedigree. I believe they have much to offer just not at the technical level that ProcessWire does. Serious web development (once again in my humble opinion) should be about creating workable solutions for your clients. We discuss the requirement with our clients and end up giving them a solidly built self-maintainable website. They only get the good website (in their opinion) when we listen, appreciate and respond to their needs. You are right, they are the final say in whether it works for them. Thanks again for giving me your perspective. I agree with many things you say. This forum has people from all over the world, with a variety of skill-sets and opinions. For me, that is a good and healthy situation. I honestly believe we are all here working with the ProcessWire project because this tool is unique and fun to work with.1 point
-
I deleted the post you wanted to delete and kongondo's question why you want to delete it.1 point
-
Hey Christophe, I built this (cultural) event site with PW, and it might be of interest to you: http://www.spainculture.us/ Think carefully about the initial structure that makes most sense for your project. In my case, since we're talking about events organized in different cities around the U.S., I chose to build the tree this way: This "geographical structure" is very intuitive for editors as they're able to quickly add or edit events by looking for the city where the event takes place. Much faster than having all events under one place, e.g. a page named "Events". When editing or creating an event, editors can choose categories (architecture, culinary arts, etc) from a simple pull-down menu: This menu is a page field, like Diogo recommended above, which references the categories that are organized as such in the tree: I hope this helps you understand the power and simplicity of page system in Processwire.1 point
-
1 point
-
New dev branch updates for this week: Field editor now lets you target templates Optimization to field cloning Live-updated session viewing tool Session cleanup on certain Debian-based servers Configurable session fingerprints Session history from the API1 point
-
I've been working part-time, for several months, on an administration and attendance tracking system for a local trampoline and gymnastics club where I also do a little coaching. Been trying to build this up incrementally in the form of re-usable modules and I have already released some of these (FieldtypeTime, markup crossfade & google calendar embed) but a couple of new fieldtypes and the major module - which handles club sessions, members, scheduling and attendance tracking - are still being tweaked. The system runs on the club intranet with the club administration being done via PW's admin interface and the homepage being displayed on the check-in kiosk at the front desk (a touch-enabled monitor in portrait orientation.) The athletes use the kiosk to check-in as they arrive and club information, signage and advertising can all be shown in the background on the kiosk thanks to the markup-crossfade module. Club staff can quickly and easily create new slides in the kiosk display sequence or modify what's already there (slides for fees-due, car blockages, session times etc) as well as seeing who is in attendance and for what. I don't yet have permission to post full screenshots of the athletes in public places (remember this is all internal to the club) but once I get permission I'll do a write-up of the site. In the meantime here's a few teasers. Firstly, on the check-in kiosk... ...and some from the back-end...1 point
-
if someone can check I have done this right, I would be obliged as I ain't no module developer! This is a very simple text formatter that looks for @ and # and adds the appropriate links to twitter. So, @profile will become http://www.twitter.com/profile and #searchterm will become http://twitter.com/search?q=searchterm It uses preg_replace as a quick and dirty solution rather than the Twitter API - so no apps need to be created and so on. https://github.com/jsanglier/TextformaterTwitterReplace Obviously, if you use @something and #something regularly and DONT want them linked, then this is useless for you. But quite nice for blogging purposes Unsolicited thanks to Netcarver because I nicked one of his modules to work out how to do it Joss1 point
-
Pierre-Luc: on the product catalog side: everything you have in your PW arsenal, will be in your PadLoper shop also. So multi-language. image galleries etc.. all that kind of things will be done how you like to do them with ProcessWire. So multi-language products are definitely easy thing. Your idea about multilang emails is interesting - and I have it already covered. I actually don't store any templates in text files (I dislike any templates in text areas). What I have setup is very simple (but may I say clever!) thing. All the default templates are stored in /site/modules/PadLoper/templates/*.*. Those are normal PW template files. so you have all the template variables and multilang stuff available there. But I don't want anyone to edit those files directly, so you can add same templates into /site/templates/padloper/*.* and PadLoper will use those instead. So let's say we have email-order-confirmation.php template file. It's by default multilang ready, but if you want to customize it further, you simple copy the file into /site/templates/padloper/email-order-confirmation.php and edit it to your needs. And remember, you have all the template variables available, like $pages, $modules, $config etc.. Many of the templates also get $order variable, which has the current order and all it's information (customer, products, prices, taxes etc). If you want to use these templates in your own code, it's also simple: $t = $modules->get("PadRender")->getPadTemplate("email-order-confirmation.php"); $t->set("order", $order); // This template file requires $order variable echo $t->render(); That make's it sure that you always get the customized version, if you have one, and the default one for those that don't have. And then of course I have shortcuts for the most common templates, renderCart() etc - but customizing their markup is as simple as others (just creating copy of the file into site/templates/padloper/ folder.1 point
-
It depends on what kind of payment gateway you use. If you don't have need for saving the credit card numbers in your service (for "one click checkout"), then there you don't have any need to collect credit card information in your service either. Both payment gateways that PadLoper will ship (Stripe and PayPal) asks for credit card information on their services, so using them makes your service PCI compliant (or to be exact - it removes the need from your service to be PCI compliant, since you are not handling credit card information at all). Yes - although not on the first release. I want to wait little and see how things are developing on that. I have a gut feeling that there are some more changes coming. The tax class system I have in place does already have possibility to define different taxes based on location (country & state supported). It seems that digital products was just beginning, EU will be rolling changes on all sales in upcoming years. Regardind order states: I am currently wondering this one: I found most of those statuses confusing and something where the shop owner needs to define meaning. I am looking for more specific toggles, like: - order successful / failed - order delivered / not delivered - order paid / not paid What causes me some problems are those custom situations like "returned", "cancelled" etc. I think those cases a little. Then there will be order notes also. Yes, there will be invoicing and invoice pdf (or printable html - I'll have to see if I am allowed to bundle pdf libraries in this module). Regarding bank transfers, not sure I understand? You can use invoice, where the payments go into your bank account - but PadLoper will not integrate with your bank. Downloadable products will have protected links: each link is unique per product & order, and there can be "download rules" defined - like how long it's available and how many downloads are allowed. Downloading a file doesn't require login though. PadLoper adds very little on top of the ProcessWire - so if PW runs ok on your server, then will PadLoper also.1 point
-
1 point
-
Hi thanks for the responses. I tried the exec approach, but that didn't really work for me so I ended up using the ZipArchive class. http://www.php.net/m....ziparchive.php This is the basic approach of my code. <?php // ************************************************ // Zip files // ************************************************ $zip_filename = "assets.zip"; $zip_path = $config->paths->root."site/assets/files/".$page->id."/".$zip_filename; $zip_url = $config->urls->root."site/assets/files/".$page->id."/".$zip_filename; $zip = new ZipArchive; $res = $zip->open($zip_path, ZipArchive::CREATE); $log_errors = ""; if ($res === TRUE) { foreach ($pages->get("/slides/")->children() as $slide) { if ($slide->screen_image_nl->filename) { // add image - size iPad $slide_nl = $slide->screen_image_nl->size(1024,768)->filename; $zip->addFile($slide_nl, basename($slide_nl)); // add image - thumbnail $slide_thumb_nl = $slide->screen_image_nl->size(128,96)->filename; $zip->addFile($slide_thumb_nl, basename($slide_thumb_nl)); } else { $log_errors .= "slide (id:".$slide->id.") - ".$slide->title." <strong>does not exist!</strong><br/>"; } } $zip->close(); $zip_html = "<a href='$zip_url'>Download $zip_filename</a>"; } else { $zip_html = 'Oops something went wrong. I cannot give you the .zip file.'; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Download assets</title> </style> </head> <body> <h4>Download</h4> <p><?php echo $zip_html; ?></p> <h5>ERRORS:</h5> <p><?php echo $log_errors == "" ? "No errors" : $log_errors; ?></p> </body> </html>1 point