Leaderboard
Popular Content
Showing content with the highest reputation on 07/26/2013 in all areas
-
It's my first post in this area and this barely validates as a "showcase case", but: I've finally managed to update my own Web presence, resulting in flamingruby.com. It's primarily a blog, but some of my projects are on display there too. This site has actually been up for months already -- wasn't going to post it here, but thought it'd be nice to prove that I've actually built something with PW after all.. Being responsive is fairly standard stuff these days. In this case no frameworks were involved, though; it's all hand-made, built from mobile first perspective and based on content alone, instead of predefined breakpoints. Some details I'm still not happy about, so it'll probably get tweaked every now and then, but at the moment things are pretty much in a stable state. Since it's a personal project, I've been slowly adding small tricks here and there, none of which really count as anything "special." One addition made just today, mostly as a proof-of-concept, is a combination of a simple module and new subdomain (static.flamingruby.com) to automatically serve assets from (at least in theory) cookie-free location. This is described in more detail here. For home page I built an importer module (with AngularJS GUI, which was actually quite fun) that periodically pulls content from various feeds.. a bit like what Nico did with his social timeline, but nowhere as cool as that. At the moment content is being pulled from GitHub (for which I had to put together MarkupLoadAtom) and Twitter (which kindly killed it's RSS support just in time, so I'm using rssitfor.me instead.. although that site interestingly spits out Atom and not RSS like one would expect.) That's just about it.8 points
-
I've posted a new documentation section on how to use the multi-language page names / URLs in ProcessWire: http://processwire.com/api/multi-language-support/multi-language-urls/5 points
-
Hi Everyone! I'm glad to show you guys my first Processwire project: http://www.ihera.com.br/ It's a simple yet tailor made website I did for a clinic specialized in women health in Brazil. We've designed/coded several templates for the backend, used the Skeleton CSS Framework (http://www.getskeleton.com/) to help making it responsive adn some some minor javascript to some pages - and of course, made it very SEO friendly with custom titles and meta description for each page. I'd like to thank Ryan again for this amazing tool! I've never done such a tailor made CMS (Wordpress, Joomla, Drupal, CMS - I've been there) that's so easy to use that my client didn't need more than 10 minutes of "training" and is super happy about the outcome and the ease of maintaining it. Simple, amazing and beautiful. Best of all: the code is clean and since you code the templates from scratch, you know exactly what is what and speed and great clean markup is an obvious result of it... Let me know what you think! Tks a lot! jw3 points
-
Have you tried adding "template" there? Works for me already. Doesn't look exactly like what you posted above, though, more like this: About us, template-a 3 | edit | view | new | move Our Board, template-b | edit | view | new | move (etc.)3 points
-
@Soma it would be lovely if there would be a "MailChimp/newsletter module team" here and maybe a "payment/e-commerce module team", too.3 points
-
Looks and reads great on mobile! Also - is this first blog with more than one pw related posts? Great posts Teppo, enjoyed reading them!2 points
-
2 points
-
Welcome to the forums dwimar! 1. Login to ProcessWire and go to Modules page at the top. Find the Login Throttle module and click on the title. A new page loads with several options. You can change the settings here. 2. Which version are you running? There were some issues with Page::localUrl before so you might want to make sure you are running the latest dev version.2 points
-
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!1 point
-
ProcessWire2.+ Admin Hot Keys 0.0.7 This modules adds hot keys functionality to PW backend. The keys can be configured in the module settings in the admin. I created a repo here for download and if anyone interested in picking it up. https://github.com/s...ic/AdminHotKeys Currently it supports Save : ctrl+s Add New : ctrl+n View Page : ctrl+v Open Pages search : alt+q (search field can be configured) Open Templates search : ctrl+shift+t Open Fields search : ctrl+shift+f Goto Pages : ctrl+shift+p Goto Setup : ctrl+shift+s Goto Modules : ctrl+shift+m Goto Access : ctrl+shift+a Note: If you're inside a text input it will ignore the hot keys, as to avoid problems with already defined key. Tip: If you open up templates or fields autocomplete search `ctrl+shift+f|t` press `shift+tab` to focus on the link in the label previous to the search input box. Now hit enter to get right to the template or field screen. (If using FF make sure to enable tab focus for all elements in MacOSX: http://support.mozil...enus or buttons)1 point
-
I have done an iso for the raspberry pi with processwire installed with the basic profile, if anybody is interested in a copy just let me know.1 point
-
I like it! I personally prefer single-column layouts or maybe 1+sidebar for this sort of information, because my lazy brain tries to gain a sense of hierarchy really fast. But I think the color scheme is great and you're on the right track for a fun personal site-type logo. *ahem* I have at least three. I would write more but I'm afraid you'll realize I'm stealing all your secrets you'll steal all my secrets.1 point
-
I have to agree with Adam concerning the logo as the kerning doesn't work at all. If the font doesn't have a good kerning by default, the best thing is to build the logo on a vector software, and use an image. Or if you feel like, just envolve each letter in a span and have fun http://letteringjs.com/, http://kerningjs.com/ and practice a lot http://type.method.ac/1 point
-
Check out the settings of your Page field under the "Input" tab: Custom selector to find selectable pages This means, you can also exclude things, e.g. template!=admin, id!=1897, parent!=id_of_parent_of_children_that_are_not_selectable1 point
-
I passionately hate the logo, but I commend you on the font selection, especially of the blog articles, reads very well, even when it's in non-native language and I'm quite tired. Good work. Also notes regarding layout: I'm not sure masonry sits well with your homepage, not to mentioned the small github/twitter badges flying all over the place.1 point
-
Facepalm. "template" didn't show up in the You may enter one or more of these fields listing, so I didn't even try, but it is exactly what I needed.1 point
-
@Gabi: this sounded like an interesting idea, so I mocked up a proof-of-concept module (Page Render Relocate Assets) that dynamically alters asset requests to point to another location. This isn't, however, something you should yet consider production-ready. Idea is quite simple: the module just hooks after page render and alters generated markup, converting any requests to /site/assets/ to another URL specified via module settings. Just to be on the safe side this (at the moment) only alters requests that start with a double quote and /site/assets, ie. "... src="/site/assets/..." would get replaced, while "Look at my /site/assets/!" or "... src="http://example.com/site/assets/..." wouldn't. To test this I created a new subdomain and pointed it to my own sites /site/assets/. According to this blog post this should be enough, and so far things seem to work just fine. You can see it in action here: http://www.flamingruby.com/about/. Note that one of the images on that page is (for some CKEditor-related reason) embedded with full URL and thus doesn't get "relocated", but other one (the bike) should point to static.flamingruby.com instead. .. so to answer to your question here: changing assets location would require a lot of work at the moment, but this way you can serve them without useless cookies etc. as long as that's what you're after. If you're looking to share the load between multiple servers or something like that, this alone won't do the trick (though if combined with some kind of server-side replication that would be quite possible too.) I might have to take this module a bit further at some point, I'm kind of starting to like where this is going1 point
-
1 point
-
1 point
-
The second one error, is one we already reported multiple times, but I don't know what Ryan says about it or can't remember as I haven't looked into it since then. Basicly the 404 page doesn't have a localUrl when it's thrown and not directly accessed. Not sure it has been fixed already or if it's possible.1 point
-
kongondo, you rock! =) ps: Андрюха, пиши в следующий раз хотя бы через переводчик яндекса/гугла. Это, все-таки, англоязычное сообщество и корявки наши разбирать не каждому под силу, а люди реально помогают. Добро пожаловать на форум.1 point
-
They're both doing the same. There are also other methods available: prepend(Inputfield $item) : Adds your Inputfield on the first position insertBefore(Inputfield $item, Inputfield $existingItem) : Add your Inputfield before the Inputfield $existingItem insertAfter(Inputfield $item, Inputfield $existingItem) : Add your Inputfield after the Inputfield $existingItem1 point
-
1 point
-
Updated code to v1.0.3 - this is an upgrade to the core Minify package (not my module or ProcessWire's code) to address a serious security issue. This update is SERIOUSLY recomended for anyone using this module! Thanks arjen for the heads-up! EDIT: Also worth noting that it was the main developer behind this forum software who noticed the flaw and suggested a fix to the Minify developers - I've also updated the Minify code in these forums. If you use Minify as a standalone package (ie. not this module, but the code available from the above link) elsewhere it would be worthwhile updating it wherever you have installed it. The issue is likely to be present in other JS/CSS minify modules/plugins in other CMS' that use the code from the above link too - I've spotted at least two WordPress modules for example that use the same codebase and there may well be others, so please bear that in mind if you use other systems.1 point
-
Andrew, Here's your demo for using SWFObject in ProcessWire. I reckon you owe me at least one free Russian lesson Hehe Here's the JavaScript code; the whole 3 or so lines of it <script type="text/javascript" src="<?php echo $config->urls->templates?>js/swfobject.js"></script> <script type="text/javascript"> swfobject.embedSWF("<?php echo $config->urls->templates?>swf/locomotive_poc.swf", "myContent", "900", "720", "9.0.0"); </script> And the HTML.... <div id="myContent" class="myflash" > <p>Alternative content if Flash doesn't work </p> </div> These code is placed in your ProcessWire template file. There is hardly any PHP in it. Of course, you can add your SWFObject parameters as you wish...Next you create a PW page and make it use that template file. I placed my swfobject.js file in /site/templates/js/ and the .swf in /site/templates/swf/ (I created the swf folder). That's all there is to it So, what do you say? ProcessWire rocks, right?1 point
-
Heh, now we got 3 mailchimp modules separately that do work differently. I'm holding mine back as it is a lot more complicated to create a good mailchimp module with remote managing lists and campaigns. Lists can't be created via API, reason being that you should work with segments and groups for a list instead of creating a list for every group. This is to avoid creating too many lists. But this get's a little more expensive in "recreating" the functionality Mailchimp already has done very very well. One thing that is different from your module for example is I don't use PW user but pages. I create campaigns for lists and submit them from a newsletter created from a special page the user can edit and select for submission. So far I haven't got the time to invest and list management is still missing, kinda what you got here but as said not for PW users. But it has a nice admin interface to create campaings and see part of statistics after sending. Thing is that to make it really efficient (as the requests are limited) it would need to have caching built in so it doesn't need to request all those informations everytime, kinda what they suggest in their API docs. We maybe should work all together I'm on holiday currently in Turkey this week, but maybe I can find some time to share module.1 point
-
download ISO image Raspberry pi, for people that doesn't know about this little computer that cost less than 50$ The image comes form a 2GB SD card ProcessWire Admin user: admin pass: process2013 Mysql Database dbName = 'process'; dbUser = 'process'; dbPass = 'processdb'; Raspberry admin and ftp user user: pi pass: raspberry you get processwire files under /home/pi/www1 point
-
This theme is rather old and I'm not planning to update it any further, but stay tuned, surprise is coming really soon For those of you using the theme, you can download latest version of jQuery Cookie from here.1 point
-
Sorry that I didn't finished the translated version before I went to holidays ... if you want to stil get it I would translate it until friday evening... EDIT: Sorry, I didn't read the previous posts. Looks super awesome! I'm glad that you got it without my help1 point
-
Ah thanks for mention. It this strange thing with versions when being 008 it threats it as octal number, although when on version 0.0.7, it shows that an update 0.0.8 is available (shows it correct) but after updating it displays 0.0.0. :/ Ryan? Edit: I corrected this with 008 changed to 8.1 point
-
Like you keep a library with your reusable code snippets (html, css, js, php) you can also keep your library of reusable parts of designs.1 point
-
Ryan, speaking of responsive, you might want to increase the z-index of the social buttons (100 is enough), and make them position:fixed. As it is now when I close the browser window they go under the pictures and when I scroll horizontally they move away from the window side.1 point
-
Thank you all, I'm glad the interview is as interesting and informative for you as it was for me, and thanks to Ryan, couldn't have done it without him1 point
-
I'm not sure why it wasn't working in my case, but will try again. Good to know how the capability is provided (collagePlus), I like it so much you have me thinking this should be the default output.1 point
-
1 point
-
Recently I've been working on a site where it seemed like it was going to be impossible to keep the page tree and the needs of the site's main menu in harmony; So to solve this I setup a separate page tree under a hidden page called 'Main Menu', with each menu item having three fields: title, menu-link-page, and menu-link-url. All of the menu items are also hidden, so the code below uses the include=all parameter when getting the pages for the tree. To generate the main menu markup, i adapted the great code that was developed by Soma for Joss's bootstrap menu, and modified it to output links to the menu-link-page or menu-link-url; (Entering a value in the menu-link-url field overrides any selection in the menu-link-page.) This solution has enabled me to setup the menu exactly how the site needs it, even if the menu heirarchy is not the same as the page heirarchy, and has solved a lot of problems and made things easier for this scenario. For example, menu items can easily contain external URLs, to subdomain pages, or other related site's pages. (In this case the client has a separate web store for selling parts). Also, all of the parent menu items had to use a javascript:void() as the href, in order for the accordion version to work right on mobile; So this was easy to do by putting that into the menu-item-link field. In the code below, page #1271 contains the menu tree, so it is specified as a parameter to the $root variable. I think this sort of setup, using a custom menu tree, could solve a lot of the questions I've seen recently on the forum; I probably wouldn't use this technique on small sites since it is more work, but for larger ones where you might need a lot of menus, this could be helpful. Also, if you had to setup a Mega Menu, with images and icons, this might make it easier to manage. <?php /** * render custom markup menu for bootstrap nested navigation * * @param PageArray $pa pages of the top level items * @param Page $root root page optional, if you use other root than home page (id:1) * @param string $output for returned string collection * @param integer $level internally used to count levels * @return string menu html string */ function renderChildrenOf($pa, $root = null, $output = '', $level = 0) { if(!$root) $root = wire("pages")->get(1); $output = ''; $level++; foreach($pa as $child) { $class = ''; $has_children = count($child->children('include=all')) ? true : false; if($has_children && $child !== $root) { if($level == 1){ $class .= 'parent'; // first level boostrap dropdown li class //$atoggle .= ' class="dropdown-toggle" data-toggle="dropdown"'; // first level anchor attributes } } // make the current page and only its first level parent have an active class if($child->menu_item_page === wire("page")){ $class .= ' active'; } else if($level == 1 && $child !== $root){ if($child->menu_item_page === wire("page")->rootParent || wire("page")->parents->has($child)){ $class .= ' active'; } } $class = strlen($class) ? " class='".trim($class)."'" : ''; if($child->menu_item_url) {$childlink = $child->menu_item_url; } else { $childlink = $child->menu_item_page->url; } $output .= "<li$class><a href='$childlink'>$child->title</a>"; // If this child is itself a parent and not the root page, then render its children in their own menu too... if($has_children && $child !== $root) { $output .= renderChildrenOf($child->children('include=all'), $root, $output, $level); } $output .= '</li>'; } $outerclass = ($level == 1) ? "accordmobile" : ''; return "<ul class='$outerclass'>$output</ul>"; } // bundle up the first level pages and prepend the root home page // $root = $pages->get(1); // $pa = $root->children; // $pa = $pa->prepend($root); // Set the ball rolling... // echo renderChildrenOf($pa); // example with pages further down in the tree $root = $pages->get("1271"); $pa = $root->children('include=all'); // $pa = $pa->prepend($root); // add the root as the second parameter echo renderChildrenOf($pa,$root);1 point
-
1 point
-
1 point
-
The page statuses are a bitmask so it's possible for there to be multiple statuses on a page, like unpublished and hidden. So it's best to add and remove statuses with the addStatus and removeStatus functions, i.e. $page->addStatus(Page::statusUnpublished); // same as: $page->status = $page->status | Page::statusUnpublished; $page->removeStatus(Page::statusHidden); // same as: $page->status = $page->status & ~Page::statusHidden; You can also check the status of a page by using the is() function: if($page->is(Page::statusUnpublished)) { ... } // same as if($page->status & Page::statusUnpublished) { ... }1 point