Jump to content

Leaderboard

Popular Content

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

  1. Yesterday I looked at the HTML output of a PW website of mine and thought it looked kind of messed up. It wasn't because the code was bad or I used the wrong tags. It also wasn't because I somehow forgot to close open tags (w3c validation went fine). No, it only was because the HTML output wasn't well formatted. I think this is a pretty common "problem" when using PHP to generate your HTML code instead of creating static HTML pages. To solve my "problem" I searched a bit and stumbled upon https://github.com/gajus/dindent. The idea behind this remarkable little piece of software is imho great: In opposite to HTML purifier or tidy Dindent doesn't manipulate your HTML code in a sense that it will behave differently. It doesn't close unclosed HTML tags or something like that. No, Dindent only changes the format of the HTML output to make it more readable and appear cleaner. So, as a developer, you are still responsible for creating proper HTML code! So I decided to create a simple little ProcessWire module that hooks into the render-method and applies the magic provided by Dindent. That's all! But I really think it can make a difference in the presentation of your website for everyone that looks a bit deeper into your project and therefore looks at the HTML code your website provides. Beware: Of course the whole beautifying process is not free. It costs some time, so it works best together with a caching mechanisms (favourably the fantastic ProcessWire ProCache)! What do you think? DIndent_v1.0.0.zip
    7 points
  2. <now you are already half way social engineered>Hah!</now you are already half way social engineered> read more ... (blog.fox-it.com) OMG! When it comes to the combination of these two human characteristics the world is uncertain: greed and stupidity.
    6 points
  3. Greetings, This is one of my primary reasons for getting away from Joomla and discovering and falling in love with ProcessWire. I wish this problem were more known. I work with a number of Drupal/WordPress/Joomla people, and I am amazed at how many just assume that what you install in these systems is safe. I'm talking about developers, by the way, not "regular" users! It's not only malicious plugins -- innocent ones can be an issue too. They all open security holes. A well-intentioned developer can compromise your application (I witnessed it first hand). I think another part of the problem that we don't hear about is hosting dishonesty. A lot of hosts specifically market to the Joomla audience (for example), and they spread a bit of false security. I've had conversations with two developers in recent weeks who host at a particular cloud service, and they both believed that the host protected their sites from malicious plugins. (I actually went so far as to write to this host and ask them to guarantee this, at which point, of course, they admitted it was not true). On a related note: happy two-year mark Joss! I'll try to round up the old Seblod and Molajo team for a celebration. Amy Stephen might come too. Matthew
    6 points
  4. This CryptoPHP is really bad stuff. Especially on W*rdpr*ss it installes an additional AdminAccount too. This way the attackers may have server control after the desinfection of the malware code itself. CryptoPHP is PHP-code within a file that should be a PNG-image. There is a python detection script on GitHub available: https://github.com/fox-it/cryptophp/tree/master/scripts
    6 points
  5. Hello Horst, Adding the "images.tags=coupon" selector to Kongondo's code DID THE TRICK! You guys ROCK! Thank you
    4 points
  6. Some of you may be aware of Google Trends and the ability to search for a keywords trend over time. Here's one for PW. There's a very encouraging (and well deserved) climb north. Some crazy dudes from Germany obviously like the CMS too
    3 points
  7. http://www.google.com/trends/explore#q=ProcessWire%2C%20Concrete5%2C%20Silverstripe%2C%20Pimcore%2C%20Symphony%20cms&cmpt=q PW seems to have stable growth, soon biggest on that group!
    3 points
  8. It's called “German efficiency” for a reason, you know.
    3 points
  9. //we only get one random coupon page (we use 'get' rather than 'find') $couponimage = $pages->get("template=service-pages, images.tags=coupon, sort=random")->images->getTag('coupon'); @Kongondo: Your code together with the pages selector from Dave should be a solid solution. - But haven't tested. @Dave: Welcome.
    3 points
  10. Hi Dave, Welcome to PW and the forums... Glad you sorted it out but would like to suggest you do it differently...assuming I understood the question correctly... If all you want is to grab one random image from a coupon page, there is probably no need to find several pages first. Why not grab ONE random page instead (one containing your coupon images) and display its coupon image? Assuming that a coupon page contains other images as well but you are only interested in the coupon image (i.e. tagged 'coupon'), something like this maybe... //we only get one random coupon page (we use 'get' rather than 'find') $couponimage = $pages->get("template=service-pages, sort=random")->images->getTag('coupon'); Edit: This code assumes there will always be a coupon image in those service pages.
    3 points
  11. I got caught out like this several years ago on a Joomla plugin - actually, I didn't even know it was a ripped off plugin, it seemed to come from an ordinary legit site, so I got caught without even doing anything obviously silly. I can't remember what it installed now, but it ended up mashing up just about everything. Thankfully (sort of) it was on one of my own sites and not something important, so I was able to chuck the whole lot away and only kick myself. This is one of the things that put me off systems that rely on lots of functionality from a lot of different sources - it is difficult to keep track of everything. With ProcessWire, I haven't had that worry. It is one of the reasons I am not keen to see lots of front-end display modules appearing and making the PW network too wide with functionality being downloaded from hundreds of different, un-policed locations. Probably me being paranoid.
    3 points
  12. I have confirmed that the 'missing' file is in the zip file at the download link you have stated. Your unzipping must have gone wrong. I would start the unzipping all over (maybe using a different unzip programme ) in case other files are 'missing' too. Edit: Oh, how rude of me. Matt, welcome to ProcessWire and the forums! Sorry for the bad start
    3 points
  13. Fixed module versioning after feedback here, tested under 2.5, added small improvements.
    3 points
  14. Introducing PVC PvcCore: https://github.com/oliverwehn/PvcCore/ PvcRendererTwig: https://github.com/oliverwehn/PvcRendererTwig/ (coming soon) PvcGenerator: https://github.com/oliverwehn/PvcGenerator/ (coming soon) Each time I’ve built a ProcessWire page I’ve struggled with organizing (and separating) code, markup and stuff. Playing around with frameworks (backend as well as frontend) like Rails, Ember and stuff I really liked having a given structure, knowing where to put what piece of code. Therefor I started working on a MVCish way to deal with templates in PW that considers the $page object kind of the data/model layer and adds View and Controller upon it. First by just catching everything via a small processor file added to all PW templates as altFilename. I’ve digged a bit deeper since then and hooked into the native rendering process, have been refactoring my code base more than a dozen times. Now I got a first version that seem to work and I’d love some of you guys to try it out! PVC (instead of MVC) stands for Page-View-Controller, as it considers PW’s $page var the model/data layer. I’m still working on the README.md on GitHub to document the basics. So have a look for more detailed infos there. I’ll give you a short overview here: Code separation: PVC introduces views and controllers to your PW templates as well as multiple action templates. Controllers, as most of you already know, keep all the business logic. Controllers execute actions wired to routes (urlSegment patterns). Even routes with dynamic segements (e.g. /edit/:id/) can be defined and assigned to an action, providing input through $this->input->route. Values can be set on the controller to be accessable in your templates later on. It’s also possible to set dynamic values as closures to be calculated (e.g. using field values of the current page) on render. Also controllers allow you to set layouts, styles and scripts to be available in your layout or template. Logic can be shared through inheritance between controllers. Views introduce view helpers. Helpers are functions that are made available to you (only) within your template context. There are predefined ones like embed(), snippet(), styles() or scripts(). But you can implement your own helpers easily and share them among your view classes through inheritance. Action templates contain the actual markup. Every action defined in a controller uses its own template. So the same page can display content accordingly to the action that was addressed via urlSegments/route. Within templates you can access all field values and values set on your controller like globals (e.g. <?=$title?>). Modular renderers: PVC implements rendering through separate renderer modules. PvcCore comes with PvcRendererNative that gives you template syntax the good ol’ PW/PHP way. A Twig renderer is in the making. And maybe you want to build your own renderer for the template syntax of your choice? I consider the module an early Beta version. So make sure to try it within a save environment! Would love to get some feedback (and error reports). I’m no professional developer, so code quality may suck here and there. So I’m glad for inputs on that, too. Also there is some old stuff in there yet, I still have to get rid of.
    2 points
  15. New methods: $page->getPage() $page->getPage(1015) $page->getChildren() $page->getChildren(2024) $page->getChildren('template=products')
    2 points
  16. First off I would have never guessed that there's a gallery link hidden in that picture frame icon. I clicked the images to no success (hm what's supposed to be here?) Ok just a glance at html <!DOCTYPE HTML> <!-- copyright 2014 OwlTree Web Solutions Ltd --> <html lang="en"> Not sure but some long year experience says this comment could cause issues. Definately if it would be at top (for IE) Aand we have a js error $ undefined., which 99.999% is jquery not included/loaded before a jquery script using $. <script type="text/javascript" src="/carman/site/templates/scripts/main.js"></script> <!-- Pretty Photo CSS and scripts --> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script type="text/javascript" src="/carman/site/templates/scripts/jquery.easing.js"></script> <script src="/carman/site/templates/scripts/jquery.prettyPhoto.js" type="text/javascript"></script> <link rel="stylesheet" href="/carman/site/templates/styles/prettyPhoto.css" type="text/css" media="screen" /> Even if main.js seems empty to you there's a $(document) and it's included before jquery core. Loading jquery core like this <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> What do you do if server google isn't available. There should be a fallback like https://github.com/h5bp/html5-boilerplate/blob/master/dist/index.html#L25 Finally this is the gallery markup <a href='/carman/site/assets/files/1036/con11.jpg' class='gallery' data-rel='prettyPhoto[pp_gal]'><img src='/carman/site/templates/images/gallery.png' alt='Conservatories Gallery' /></a> <a href='/carman/site/assets/files/1036/con12.jpg' class='gallery' data-rel='prettyPhoto[pp_gal]'> </a> <a href='/carman/site/assets/files/1036/con3.jpg' class='gallery' data-rel='prettyPhoto[pp_gal]'> </a> <a href='/carman/site/assets/files/1036/con4.jpg' class='gallery' data-rel='prettyPhoto[pp_gal]'> </a> <a href='/carman/site/assets/files/1036/con5.jpg' class='gallery' data-rel='prettyPhoto[pp_gal]'> </a> <a href='/carman/site/assets/files/1036/con6.jpg' class='gallery' data-rel='prettyPhoto[pp_gal]'> </a> <a href='/carman/site/assets/files/1036/con7.jpg' class='gallery' data-rel='prettyPhoto[pp_gal]'> </a> <a href='/carman/site/assets/files/1036/con8.jpg' class='gallery' data-rel='prettyPhoto[pp_gal]'> </a> <a href='/carman/site/assets/files/1036/con9.jpg' class='gallery' data-rel='prettyPhoto[pp_gal]'> </a> <a href='/carman/site/assets/files/1036/con10.jpg' class='gallery' data-rel='prettyPhoto[pp_gal]'> </a> Possibly the use of 'attr' instead of "attr", you'll laugh but I got caught by it once, but don't remember what case it was. I don't think so here is the case. In my Firefox it loads the gallery but the container is positioned far far down. Only after scrolling some it shows up. Offset is inline calculated from top and seems wrong. I removed you CSS "height: 100%" from <body> and <html> and it works fine.
    2 points
  17. No worries guys, sorry I haven't keep you updated. It's been busy here with other things, so no new progress on this. I think it will take winter (or next summer...) holidays for me to get back to this. Maybe I release early bird release of what I have now... I have been hesitating with that because I know I can't provide any real support.
    2 points
  18. Judging by the lack of response from apesia here it appears that he wants to be left alone as far as this module goes at the moment. Maybe best for us to let off with the pressure as I am sure he will surprise us with an update when he is ready.
    2 points
  19. Thanks for sharing! I will test it later this week when find some time. I think this is helpful to me while developing on the Markup of a page. ------ BTW: I would recomment to add to your getModuleInfo() a "requires" key like: 'requires' => array('ProcessWire>=2.4.0', 'PHP>=5.3.8'), You use Namespaces with your module and therefore the minimum needed PHP Version should be noted in the required value(s), or the minimum PW version. At the moment it is not mandatory to note this, but it is helpful anyway.
    2 points
  20. I just downloaded and tested Pretty Photo on Windows with Firefox. The example does work smoothly (exept for some problems with flash). On your site it does not.
    2 points
  21. I can't see anyway in which this is being caused by PW. You might want to check whether where you have inserted the code in the dom is an issue. Also, check whether it is fully compatible with the version of JQuery you are using. If in doubt, try stripping away everything except the link image to the gallery, and if that then works okay, start adding the other parts of your layout back in and see where it breaks. Have you asked on the Prettyphoto forums?
    2 points
  22. The _notes folder is probably from Dreamweaver: https://forums.adobe.com/docs/DOC-1671
    2 points
  23. Module updated 1.- Added methods $page->getChildren() $page->getPage() 2.- Now you can inject scripts trough module configuration
    2 points
  24. Yeah, the force is strong in our country
    2 points
  25. 2 points
  26. You can detect whether the current page was loaded from ajax by checking the value of $config->ajax from your template file: <?php if($config->ajax) { // page was requested from ajax } Following that, you will likely want to render the page differently to accommodate whatever you are doing from the javascript side. For instance, you might want do one of these: 1. Deliver alternate or reduced markup when loaded from ajax 2. Deliver a JSON or XML string for parsing from javascript Below are examples of each of these scenarios. 1. Deliver alternate or reduced markup when loaded from ajax You might find checking for ajax helpful when you want portions of pages to load in your site without re-rendering the entire page for each request. As a simple example, we'll use the default ProcessWire site and make it repopulate it's #bodycopy area when you click a page in the top navigation. (To use this example, you'll need the default ProcessWire site templates, though you can easily adapt the example to another situation.) To accomplish this, we'll update our main page template to only include the header and footer markup if the page is NOT being loaded from ajax: /site/templates/page.php <?php if(!$config->ajax) include("./head.inc"); echo $page->body; if(!$config->ajax) include("./foot.inc"); Next we'll update the top navigation to do ajax loads of the pages when the client has javascript (and leave as-is when they don't). Paste this javascript snippet before the closing </head> tag in the header markup file: /site/templates/head.inc: <script type="text/javascript"> $(document).ready(function() { $("#topnav a").click(function() { $("#topnav a.on").removeClass('on'); // unhighlight selected nav item... $(this).addClass('on'); // ...and highlight new nav item $("#bodycopy").html("<p>Loading...</p>"); $.get($(this).attr('href'), function(data) { $("#bodycopy").html(data); }); return false; }); }); </script> Now when you click on any page in the top navigation, it pops into the bodycopy area without a page load visible from your browser. And all pages remain accessible from their URL as well. Note that this is just a test scenario, and I probably wouldn't use this approach for the entire bodycopy area on a production site (it would make bookmarking difficult). But this approach can be very useful in the right places. 2. Deliver a JSON or XML string for parsing from javascript Lets say that you want pages in your site to return a JSON string with the page's id, title, and number of children when it is requested from ajax. When not requested from ajax, they will return their content as normal. To handle the ajax requests, you'd want to add something like this at the top of your template file before any other output. <?php if($config->ajax) { // this is an ajax request, return basic page information in a JSON string $json = array( 'id' => $page->id, 'title' => $page->title, 'numChildren' => $page->numChildren ); echo json_encode($json); return; } // not ajax, continue with regular page output And here is some markup and inline javascript you might use to test the ajax call on some other page (or the same one if you prefer). You would paste this snippet right in your site's markup where you want that info to appear. <ul id='info'></ul> <script type='text/javascript'> var url = '/'; // this is homepage, so replace '/' with page URL you want to load JSON from $(document).ready(function() { $.getJSON(url, function(data) { $.each(data, function(key, value) { $("#info").append("<li>" + key + ": " + value + "</li>"); }); }); }); </script> The above snippet would output something like this: • id: 1 • title: Home • numChildren: 5 To take this example further, you could build an ajax-driven sitemap or any number of web services. Conclusion Hope this helps you to see how simple it is to use ProcessWire to deliver output for ajax. These are just contrived examples, but hopefully examples that might lead to more ideas. In addition, much of what you see in these examples is also applicable to building web services in ProcessWire.
    1 point
  27. Image Animated GIF v 2.0.2 Module for PW 2.5 stable or newer, but is obsolete for PW Versions greater then 3.0.89 (... read more ...) This module helps with resizing and cropping of animated GIFs when using the GD-Library. The GD-Library does not support this. This module is completely based upon the fantastic work of László Zsidi (http://www.gifs.hu/, builts the initial classes) xurei (https://github.com/xurei/GIFDecoder_optimized, enhanced the classes) I have ported it to a PW module and it works with core imagefields, together with Pia and with CropImagefields that uses the new naming scheme since PW 2.5. ------------------------------------------------------------------------------------------------------------------------------------------ read more in this post about the rewrite from version 1.0.0 to version 2.0.0 ------------------------------------------------------------------------------------------------------------------------------------------ You can find it in the modules directory: https://modules.processwire.com/modules/image-animated-gif/ and on Github: https://github.com/horst-n/ImageAnimatedGif ------ A preview can be found here
    1 point
  28. Validation Module for ProcessWire, Validation module using GUMP standalone PHP data validation and filtering class. That makes validating any data easy and painless without the reliance on a framework. Usage almost same with original GUMP validation class. Extended original validation class for make it multi-language and added 2 new function 1 for field labels, 1 for set and get fields. Module Link
    1 point
  29. ok thanks - got it now.. here's a drop in i'm working on: AsmSelectLinks - which adds links so you can edit your Asm and Page Autocomplete pages by clicking on them.. this is a rough first version, but i think it can get better. The only major issue is with the loading of magnific which would be required; i guess this will probably need to be a module, so that it can load the magnific and the 2 files.. javascript: $(function(){ $('div.InputfieldPageAutocomplete').each(function(){ $('ol li', this).each(function(){ var id = $(this).find('span.itemValue').text(); $(this).find('span.itemLabel').wrapInner(" <a class='edit-modal' href='"+config.urls.admin+"page/edit/?id="+id+"&modal=1' target='_blank'></a>"); }); }); $('div.InputfieldAsmSelect').each(function(){ $('select option', this).each(function(){ id = $(this).val(); rel = $(this).attr('rel'); $('li.asmListItem[rel='+rel+']').find('span.asmListItemLabel').wrapInner(" <a class='edit-modal' href='"+config.urls.admin+"page/edit/?id="+id+"&modal=1' target='_blank'></a>"); }); }); $('div.InputfieldPageListSelectMultiple').each(function(){ $('ol li', this).each(function(){ var id = $(this).find('span.itemValue').text(); $(this).find('span.itemLabel').wrapInner(" <a class='edit-modal' href='"+config.urls.admin+"page/edit/?id="+id+"&modal=1' target='_blank'></a>"); }); }); }); $(document).ready(function(){ $('a.edit-modal').magnificPopup({ type: 'iframe'}); }); css: .mfp-iframe-holder .mfp-content { max-width: 1200px!important; } a.edit-modal:hover { text-decoration: underline; } ... this feature has been a huge time saver because (especially during development) you often need to edit/access those pages that are being selected.. planning on also getting it to work with page list selects..
    1 point
  30. I am sure others would be willing to contribute to this project/module if you released it and would be happy with that dependent in which form you want to release it(closed or open project). Not sure if you know but there was a discussion here about putting together an active “Shop Development Group” if you would be open to something like that. If you release early bird, I promise not to ask support from you.
    1 point
  31. Hi Kongondo, Thanks so much for your reply! I tried your code and it didn't work for me, most likely because I have a common template for all internal pages named "content-page" and not all pages in the site have a coupon image in them. However, your code is a great example of using selectors to condense the steps I took I'm sure it would work if I had a separate template just for the service pages. Thanks for your input - it helps me a lot!
    1 point
  32. The look of any lightbox type plugin should be easy to customise to match the website, so I would just worry about making sure it functions well and then make it look how you want.
    1 point
  33. Module In Progress... working on an Inputfield which will allow the updating of the select description (for contextual description of the actual selected item) based on the selected option. This module is/was mostly written by netcarver, so i'm just getting the details together and some jquery for this to work... https://processwire.com/talk/topic/419-extending-inputfields/?p=76823 i'm thinking that the module title should probably be more specific?, like InputfieldSelectDataDescription... in case there were other 'extended' interpretations...? module so far: <?php class InputfieldSelectExtended extends InputfieldSelect { public static function getModuleInfo() { return array( 'title' => __('Select Extended', __FILE__), 'version' => 1, 'summary' => __('Selection with extended attributes. An enhancement to select', __FILE__), 'permanent' => false, ); } /** * inputfield is loaded */ public function init() { // append script needed for the inputfield $this->config->scripts->add($this->config->urls->InputfieldSelectExtended . 'InputfieldSelectExtended.js'); } /** * Adds an option with extended attributes that allow mutually exclusive groups. */ public function addOption($value, $label = null, array $attributes = null) { if ( is_null($value) || (is_string($value) && !strlen($value)) ) { return $this; } if (null === $attributes) { $attributes = array(); } $extra_atts = $this->extendAttributes($value, $label); $attributes = array_merge($attributes, $extra_atts); return parent::addOption($value, $label, $attributes); } /** * Hook this and return an array with whatever extended attributes you need. * */ public function ___extendAttributes($id, $value) { $atts = array(); $page = wire()->pages->get($id); $atts['data-description'] = $page->data_description; return $atts; } } the js, so far - works, but doesn't account for multiple selects yet. InputfieldSelectExtended/InputfieldSelectExtended.js $(document).ready(function() { var $default = $('.InputfieldSelectExtended').prev('p.description').html(); $('.InputfieldSelectExtended select').change(function(){ var $selected = $(this).find(':selected'); var $description = $('.InputfieldSelectExtended').prev('p.description'); if($selected.data('description') == null ) $($description).html($default); $($description).html($selected.data('description')); }).trigger('change'); }); once installed you would need to add this inputfield to the list; then select the inputfield on your page field your selectable pages would need a data_description field. here is the result, before option selected: after select: i guess once i get the module more advanced, there would be a way to get some of these things automatically setup.. also - for this to work, you need to set a description for the page select field, so there is something to replace...
    1 point
  34. Its possible to test the module ? Or to see a demo or something ? When do you thing it could be online ?
    1 point
  35. Include the name of the language when you include the JS file? <script src="js/<?=$language->title;?>-scripts.js"/></script> Code not tested. This should output something like "en-scripts.js".
    1 point
  36. @Matt, That _notes folder in your screenshot is new to me. Is that a custom folder you created? What's in it? Below are the 31 items that should be in /wire/modules/Inputfield/ folder:
    1 point
  37. Maybe when unzipping it got lost. In the release it is present. Just open your downloaded archive and copy over all files of wire/ over your actual files again. But do not copy any files under site/ again. This will brake your installation. EDIT: OK: @Kongondo: 1:1 EDIT2: Uups! @Matt: Welcome!
    1 point
  38. Matt, You are probably missing some ProcessWire files such as /wire/modules/Inputfield/InputfieldSelectMultiple.module. What version of PW is this? Did you download the PW zip? Ensure the unzipping went OK Edit: Beaten by Horst...
    1 point
  39. There seems to be a file missing, maybe? Can you please have a look for this file: C:\xampp\htdocs\processwire\wire\modules\Inputfield\InputfieldSelectMultiple.module Does it exist?
    1 point
  40. One thing you could try, just as a process of elimination, is with the containers where you are getting the overlap, set overflow to none. If they then are chopped off, then it is probably not the monitor, but the web browser - perhaps very old firefox or something. If that is the case, then you will need to change the way the elements are positioned within the container to make sure they stretch the container down. Make sure they are not using position absolute, for instance.
    1 point
  41. Macrura, nice. Please be aware of some possible YAML parsing pifalls. It's always advised to wrap strings, that are more than just one word in quotes, or prepend them with a pipe symbol. Commas are interpreted as array separators, so your example should be looking like this instead: - author: William role: Client text: "Integer eu libero sit amet nisl vestibulum semper. Fusce nec porttitor massa. In nec neque elit. Curabitur malesuada ligula vitae purus ornare onec etea magna diam varius." - author: James role: Hippie text: "Posuere erat a ante venenatis dapibus posuere velit aliquet. Duis llis, est non coeammodo luctus, nisi erat porttitor ligula, egeteas laciniato odiomo sem." or - author: William role: Client text: |Integer eu libero sit amet nisl vestibulum semper. Fusce nec porttitor massa. In nec neque elit. Curabitur malesuada ligula vitae purus ornare onec etea magna diam varius. - author: James role: Hippie text: |Posuere erat a ante venenatis dapibus posuere velit aliquet. Duis llis, est non coeammodo luctus, nisi erat porttitor ligula, egeteas laciniato odiomo sem. or multi line - author: William role: Client text: > Integer eu libero sit amet nisl vestibulum semper. Fusce nec porttitor massa. In nec neque elit. Curabitur malesuada ligula vitae purus ornare onec etea magna diam varius. - author: James role: Hippie text: > Posuere erat a ante venenatis dapibus posuere velit aliquet. Duis llis, est non coeammodo luctus, nisi erat porttitor ligula, egeteas laciniato odiomo sem.
    1 point
  42. So Resolution is the same. What about Pixel Density, Browser and OS Versions? Maybe the monitor is just misscallibrated. 25" with 1024x768 sound a little bit strange too...
    1 point
  43. Macrura, thanks for testing/using the module. The current master branch only uses WireData on object like structures and regular arrays for numeric key structures. I renamed the module to FieldtypeDataStructrue (because it now supports more than YAML) and have a separate repo for that, what you want is all there on the dev branch. Check it out, I added a bunch of features (including your wanted WireArray output and a couple of new input/structure types, beside YAML) and the whole thing is unit tested, so it SHOULD be pretty stable: https://github.com/owzim/FieldtypeDataStructure/tree/dev More detailed info on the new version: https://github.com/owzim/FieldtypeDataStructure/blob/dev/README.md For now you should create a new field and not change the fieldtype on your existing one to the new FieldtypeDataStructrue I think it now became pretty powerful, I am planning to make a video to cover it and all it's possible use cases. Please (all) share your thoughts on how else it could be used.
    1 point
  44. Part III: Using YAML (part of structured data module). 1.) Install the module (make sure to install the new version, FieldtypeDataStructure) 2.) create the field for it (ex. settings_ds) 3.) Add some settings - these can be more sophisticated/nested than the settings above, because of the YAML structure options: - name: address street: 27 Hawthorne Lane city: New York state: NY zip: 10982 phones: main: (999) 888 9874 fax: (555) 548-5647 - name: social_media facebook: https://www.facebook.com twitter: https://twitter.com - name: global site_title: My Awesome Site tagline: Tulips Rule 4.) Get the field into your template: $settings_ds = $pages->get(1644)->settings_ds; 5a.) Option 1: Auto populate the $vars foreach($settings_ds as $setting) ${$setting->name} = $setting; 5b.) Option 2: Query the field with PW selectors (this is awesome): $address = $settings_ds->get("name=address"); $social_media = $settings_ds->get("name=social_media"); $global = $settings_ds->get("name=global"); this is cool because you can keep all the parts of a setting together as a group, and have multiple parameters like this: // address echo $address->street; echo $address->city; echo $address->state; echo $address->zip; echo $address->phones->main; echo $address->phones->fax; // social media echo $social_media->facebook; echo $social_media->twitter; // global echo $global->site_title; echo $global->tagline;
    1 point
  45. I am working with opencart at the moment. It would be great to be able to integrate processwire and opencart together a little. A match made in heaven.
    1 point
  46. SomeDay Tool I'm working on a series of restricted collaborative websites that are geared towards me working with my clients. It's a mashup of CRM, Project/Task Management, Tracking, Documentation and Configuration Control features. Everything is controlled by PW Roles. It's a tool that allows me to have a great deal of transparency with those I work with. The objective is to easily know the who, what, when, where and how of whatever is being worked on. I call it a Collaborative Resource Management System (CRMS) which has the nickname of SomeDay. I currently have one of these websites for each of my important clients and an additional one to keep track of my internal work. They all use the inherent native power of PW to produce specialized status reports. The websites intentionally incorporates the front-end and back-end of the PW platform. There is a lot of information stored within this type of website, what I like to call an Information Portal. You are able to easily query a status and get a good view of what's going on. This is a long-term ongoing project and I will update this post as more features/capabilities are added. Meanwhile, here are a few pictures of the CRMS Tool: Figure 1-3 (The SomeDay Tool for one of my clients) Figure 1 (Login courtesy of Adrian's Protected Mode Module) Figure 2, Homepage is a summary of all information Figure 3, Each item can be clicked on to get to detailed information Figures 4-7 (My internal SomeDay Tool website) Figure 4, (Login) Figure 5, Homepage Summary for my internal work Figure 6 , Homepage Summary Figure 7, FlagPages showing Bookmarks Figures 8-11 (Looking at a Task) Figure 8, Front-end view Figure 9, Back-end view (editing) Figure 10, Place for adding Priority or Statuses Figure 11, Private Tab only available to selected PW Roles Figures 12 and 13 (Site Structure) Figure 12, CRMS structural flow Figure 13, Tasks and Sub-Tasks can be added to Projects Figures 14-16 (Customized Reports) Figure 14, Review all items based on what type of work it is Figure 15, Review items based on their status Figure 16, Listing of all items with a status category of Active That's it for now.
    1 point
  47. Hi all, I'm a big fan of the Sublime Text 2 text editor and of course of huge fan of ProcessWire, so I went ahead and created a library of PW snippets to be used with the ST2 Snippet system. I followed the PW cheat sheet, and created Advanced and Basic versions. The Advanced version contains only those seen in the advanced mode of the cheat sheet, so if you want the full set, you'll want to get both Basic and Advanced. They are on GitHub here: https://github.com/evanmcd/SublimeProcessWireSnippetsBasic https://github.com/evanmcd/SublimeProcessWireSnippetsAdvanced I've just submitted the Advanced set for inclusion into Package Manager, so hopefully that will be added soon. See the README for more info. Any feedback welcomed
    1 point
×
×
  • Create New...