Leaderboard
Popular Content
Showing content with the highest reputation on 12/12/2014 in all areas
-
I think this all goes like the cookie insanity. Law change is so stupid that it really cannot work. Although this is probably done because of all large digital business (app store, google) are run from Ireland because of lowest vat. In Finland you don't have to pay vat if sales are under 8000€, interested to see whether that have changed because of this.4 points
-
Small update on this: I will build support for tax classes, stock management and simple reports during Christmas holidays. After that hopefully ready for wider beta testing.4 points
-
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 here3 points
-
@Claus Forgot to mention that the date for compliance is ... 1st Jan 2015. There's a lot of Brits are up in arms about this as it impacts what micro-businesses here will now have to deal with more than a lot of European friends as most of us didn't previously have to deal with VAT returns at all. Now they all have to VAT register and (presumably) put up prices as a result. This is slightly exaggerated but sums up the options as a lot of small sellers here see them... Regardless of the above mentioned UK perspective, this legislation will change the way a lot of other Europeans trade and, consequently, there's now an EU-wide petition to have a threshold introduced for all this. Please consider signing this and joining the #vatmoss and #vatmess discussion, in your local language, on twitter or facebook and share it.2 points
-
@apeisa It probably hits the Brits harder than anyone else but it is pan-European (the EU also wants it to be Worldwide.) Even Philipp from Conclurer has posted about it. Basically it shifts VAT calcs from the VAT rate charged in the nation of the seller to the nation of the buyer. Business-to-business sales are unaffected but business-to-consumer sales are covered by the rules. As @Claus points out, the sales process will have to be more complex as the point-of-sale systems will now need to be able to collect, prove (how, I don't know) and retain information about customer type (business or consumer) and their location for 10 years (security implications anyone?) and use that information to charge the correct rate of VAT - which will change across 28 authorities now instead of just your local one. The retention of potentially valuable customer location data (like a billing address) is worrying to me as a lot of places are probably going to leak it or have it stolen over that 10 year period. Data can only be held on servers/sites based within the EU. Depending on local interpretation of the legislation keeping this data may also require you to register with your local data-protection registrar/authority (it does here in the UK - with the attendant responsibilities and liability for audit etc.) So now we all have to... Migrate Servers/Sites inside the EU if they were hosted outside. Complicate the order process (=> fewer conversions to sales) Match at least 2 data points about customer location and store them for 10 years (security anyone?) Perhaps register with local data protection agency. Keep up with VAT rates in 27 additional countries. (probably) charge the customer more than before (though some customers in low tax locations may see price decreases) Submit quarterly VAT returns. Disburse tax collected to the correct member state (though there is the mini-one-stop-shop system that can help here) If you weren't previously liable to submit a VAT return then you will also have to register for VAT in at least your local jurisdiction and use the MOSS -or- VAT register in, and disburse funds to, every EU state in which you have a consuming client. Updated to add this missed paragraph: It also means that sellers can be pursued for tax by any and all EU tax authorities now, not just their local one. I guess a lot of people are going to switch from self-hosted solutions like using the PW shop module over to services that act as resellers as that means our relationship with them is now business-2-business and they take care of all the new compliance issues. Sorry to be the bearer of bad news but I hope that helps clarify a few things.2 points
-
I have updated the module to Version 0.1.0 beta and it has a new addition to the weighten option that can be used together with contain. The initial code I have taken for weighten calculations is from Martijn. I have changed it to simplify its usage so that you only need to specify a bounding square and have to switch it on, or additionaly prioritize landscape oriented images in two favours: x1, x2 or do the same for portrait oriented images with: y1, y2. (read more in the posts above) But if you (@Martijn ) like to use more different options, like with the original ImageFitBoundaries.module, you can use it by specifying different values for width and height together with the new value "comp##". For ## you set the value for compression like comp20, comp30, comp40 or whatever you like.2 points
-
Hi! Oh, here is something bigger than I have made before: autosystem.ru Was used: PW (latest dev) Foundation 5 for grid layout (but not for long, want to rewrite grids with Susy — it is awesome). ProCache Markdown HannaCode Fredi Map Maker Pageimage Sizer Imagick and great help of all of you Thanks for any suggestions and kind words2 points
-
ircmaxell has been writing about the problems with MVC in the context of PHP recently. He seems to have a proposal cooking, so be sure to follow his blog2 points
-
Markup Simple Navigation Module While there was a lot of people asking how to make navigation, and there were many examples around already (apeisa, ryan...) I took the chance to sit down 2-3 hours to make a simple navigation module. It has even some options you can control some aspects of the output. Installation: 1. Put this module's folder "MarkupSimpleNavigation" into your /site/modules folder. 2. Go to your module Install page and click "Check for new modules". It will appear under the section Markup. Click "install" button. Done. Technically you don't even need to install it, after the first load call ( $modules->get("MarkupSimpleNavigation") ) it will install automaticly on first request if it isn't already. But it feels better. However, it will not be "autoloaded" by Processwire unless you load it in one of your php templates. Documentation: https://github.com/somatonic/MarkupSimpleNavigation/blob/master/README.md Modules Repository processwire.com mods.pw/u Download on github https://github.com/somatonic/MarkupSimpleNavigation Advanced example with hooks creating a Bootstrap 2.3.2 Multilevel Navbar https://gist.github.com/somatonic/6258081 I use hooks to manipulate certain attributes and classes to li's and anchors. If you understand the concept you can do a lot with this Module.1 point
-
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 Link1 point
-
Hey all, I launched this website a few weeks ago: http://www.archsf.com/ It was deceptively simple looking at a first glance of the mockups, however this project turned out to be very challenging and ProcessWire really shined, as it always does. The main template being used on the site is the Project Category template. Here's the "Residental" page, which is powered by that template: http://www.archsf.com/project-categories/residential/ As you can see, if you're on a large screen, there are 5 blocks across (1 callout + 4 projects). I'm using Zurb Foundation (the Grunt/Libsass version, which rocks), however like most CSS frameworks, there isn't an even 5 column structure, so I had to take care of that manually. Then, add in the fact that the website is full browser width, which presents a whole host of width/height manipulation that must be done. All the project thumbnails are the same size, but that first callout is text-based so it's height must calculated based of the height of one of the project thumbnails. But of course, the thumbnails themselves are dynamic in height depending on the browser width. And, you can only get the height of the images once they are loaded in (which is easy thanks to the imagesLoaded plugin). Now, if you look at the next row, it's not 5 easy blocks across, but rather 2 blocks, then a big block that takes up 2 block spaces, then another regular size block. I went through some different approaches to handle that situation, and what I ended up doing is hardcoding a the layout so that specific blocks would appear in specific places. It's not a masonry / nicely floated structure! Then, let's not forget this is a responsive site. So, for the phone-sized breakpoint, there's actually another repeated layout of all the project thumbnails, but it's set to hidden unless viewing that breakpoint (which will hide the other breakpoints). That breakpoint has 2 blocks across, with the occasional 1 block featured project. There is also the tablet-sized breakpoint, which has 4 blocks across. This approach, from a code point of view, is a bit ugly in that content is being repeated on a page, however this was a necessary decision I had to make in order for the complicated layout structure to work. It didn't seem to affect the search engine indexing of the site however. Also, each project thumbnail also has different image sizes based on the breakpoint being viewed. ProcessWire makes creating thumbnails on the fly so easy, which is a huge plus (especially compared to WordPress). Oh, while administrators have the ability to create projects, they sometimes wanted the ability to have a project assigned 2+ times for a page. Now, having them create a repeat project would be inefficient, so I created another template type called 'duplicate_project' which allows a custom title and thumbnail, but then has a dropdown field that makes the duplicate project act as the main project. As for the lightbox that appears when clicking on a project thumbnail. An ajax request is made to the project template file, which returns a JSON object containing the lightbox image data for Blueimp Gallery, which is the lightbox being used (not Foundation's Clearing Lightbox, which I find very annoying!). It works well, except aligning the bottom-left caption (and bottom-right "Project Information" toggle) was an huge exercise in manipulating the absolute positioning of that element, relative to the image itself, because Blueimp by default doesn't align captions relative to the image. I considered using other lightboxes, but Bluimp turned out to be the best one for my needs, and it's responsive out of the box. The projects themselves have their own individual pages/URLs, but not in the classic sense. If you go to a direct URL of the project, I wrote some code so that it will show the FIRST category it's been assigned to, and then automatically bring up the lightbox containing the projects images. It does this by detecting the the page being hit is either project-category.php or project.php and running the necessary code, which involves the same AJAX request to bring up the lightbox. Example: http://www.archsf.com/projects/aptos-street/ The firm page is whole other beast, but I won't get into that. Screenshots demonstrating some internals: Editing a Project Category: http://goo.gl/T30AEh Editing a Project: http://goo.gl/fekgqQ Editing a Duplicate Project: http://goo.gl/ppKfo5 Editing a Callout: http://goo.gl/gfEbPO Editing the Home Page: http://goo.gl/rbHlRQ Overall Page Structure: http://goo.gl/gfEbPO Enjoy. Jonathan1 point
-
1 point
-
1 point
-
Oh dear gawd. So I have to tally the sum of deferred VAT and then reverse charge that… ? Jesus what a complicated system.1 point
-
Sorry, I forgot that notifications are still not enabled by default. That is a weird one You seem to be having the same issue as gebeer: https://processwire.com/talk/topic/8152-notice-undefined-index-searchfields-after-update-to-25-dev/?p=789731 point
-
I am not experienced programmer, so there are nothing interesting or new in my structure or templates. There are 12 templates with files and about 20 without. Basic-page, for example (really basic, but structure is similar to others): <!DOCTYPE html> <html lang="ru" class="no-js"> <head> <?php include("./_head.php"); ?> </head> <body> <?php include("./_topbar.php"); ?> <?php include("./_sidebar.php"); ?> <div class="wrapper white"> <div class="row"> <div class="small-12 columns"> <header class="page-header"> <h1><?php echo $page->get('headline|title'); ?></h1> </header> </div> </div> <div class="row content"> <div class="medium-12 columns"> <?php echo $page->body;?> </div> </div> <?php include("./_footer.php"); ?> </body> </html> Dealers map structure: Country --Region ----City ----City ------Dealer ... So, there are 630 shops for now in 1112 cities (I have imported cities, so more than half are empty now). Product catalog has 278 items and same structure. And something about 100 pages with docs and "We are bla-bla-bla pages". https://yadi.sk/i/f-GmE_oEdK5VD Yeap.1 point
-
I have a images field with a large number (about 400) of images. Uploading took a while, but worked. But when I try to remove them all by double-clicking the trashcan icon and saving the page nothing happens. The page editor just reloads with all images still there. I get no error message. Removing only a small set of images works like expected. Is there a php/server setting I need to change? Currently I am testing this in my local MAMP environment. Edit: I found something in my server logs: PHP Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0 I edited the php.ini to include max_input_vars = 10000 and now it seems to work.1 point
-
This is the bit in .htaccess that blocks access to files in the templates directory: # Block access to any PHP or markup files in /site/templates/ RewriteCond %{REQUEST_URI} (^|/)(site|site-[^/]+)/templates($|/|/.*\.(php|html?|tpl|inc))$ [OR] Which is why css, js etc work, but php, html, tpl, inc etc don't.1 point
-
Hi kongondo, Thanks for the quick reply and the welcome. I had actually already read the topic that you mention, and this is what prompted my need: I would like to save a "stock" field for each product, but this field would have to be calculated each time a stock movement is saved, and calculating this field is precisely what takes so much time. In the meantime, I continued looking into the problem, and I think that I came up with a solution with the following module: class PagesSum extends WireData implements Module { public static function getModuleInfo() { return array( 'title' => 'Pages Sum', 'version' => 1, 'summary' => 'Adds a $pages->sum($selectorString, $fieldName) function to sum the value of a specific field over a list of pages selected by a selector string.', 'singular' => true, 'autoload' => true ); } public function init() { $this->addHook('Pages::sum', $this, 'sum'); } public function sum($event) { $selectorString = $event->arguments(0); $fieldName = $event->arguments(1); // Find all the pages associated with the selector string $pageFinder = new PageFinder(); $idQuery = $pageFinder->findIDs(new Selectors($selectorString), array('returnQuery' => true)); $idQuery->set('orderby', array()); $idQuery->set('groupby', array()); $idQuery->set('limit', array()); $stmt = $idQuery->execute(); $idArray = $stmt->fetchAll(PDO::FETCH_COLUMN); // If no pages were found, return 0 if (count($idArray) == 0) { $event->return = 0; return; } $idString = implode(',', $idArray); // Get the table name for the given field name $field = $this->fields->get($fieldName); // If no field with this name is found, return 0; if (!$field) { $event->return = 0; return; } $tableName = $field->getTable(); // Run the SUM query $sumQuery = new DatabaseQuerySelect(); $sumQuery->select("SUM(data)"); $sumQuery->from($tableName); $sumQuery->where("pages_id IN ($idString)"); $stmt2 = $sumQuery->execute(); list($total) = $stmt2->fetch(PDO::FETCH_NUM); $event->return = $total; } } In my tests, it is about 60 times quicker to calculate the sum with the function $pages->sum($selectorString, $fieldName) than looping over the pages (for about 12000 pages). I would appreciate any feedback, in case there are any other optimizations to be achieved, or any errors I haven't thought about. And I hope that this might maybe be useful to others too!1 point
-
Hi i wanted to share my website http://carbatteryassist.co.uk that i built for my offline business , I built it first with wordpress, then try'd Concrete 5 still wasn't happy so i went with processwire and foundation 5. When i'm not out fitting im learning all about webdesign, for my own site and to help others. There's still a long way to go but wanted to get my first processwire creation out there1 point
-
Thanks Ivan ... i agree i only got formbuilder yesterday and put the site together and uploaded last night . Still lots to do i try'd a bit of styling in formbuilder but didnt work so ill have another go later lol1 point
-
Looking really nice. And the "powered by processwire" logo in the footer only makes it better)) Formbuilder forms could benefit from some styling, but they are not so easy to customize.1 point
-
Just committed a small, but I think quite useful option. You can now choose to replace the SVG thumbnail in the admin page edit view with a rasterized version - primarily for speed of display. All the details about the image will still refer to the original SVG, and viewing the full sized version (in the lightbox) will still be the SVG. The reason I added this is that on one site we have been uploading many very complex SVGs and using the rasterize() API method to display them on the site. We still want the originals to be in SVG though so that resizing results in no loss of quality, and also so we can offer the SVG as a downloadable version. The problem was that during page edit, the SVGs were taking too long to render in the browser. Hope this helps others too.1 point
-
My search for this ended with xcloner: http://www.xcloner.com/ standalone version ! This stuff is for real.1 point
-
Hi, Only thing I can think of is: it is sent via POST when you press the save button, so you may check the setting for post_max_size. With enabled DevTools in your browser you may easy be able to read the amount of sent POST-data. PS: a good setting for max_post_data is 240M when the upload_max_filesize is set to 200M1 point
-
Code before talk. With 2.5.0 released Friday, and 2.5.1 dev released today, there's been a lot of code.1 point
-
Do you get paid for the sites that you would with PW? When you come to the forums to get help, do you limit your questions purely to development work that you are doing for free? I originally developed PW to help us all create better sites in less time, and with more fun. I'm hoping that PW is helping others to be more competitive in all ways, including financially. But recognize that PW did not come into existence on its own. Years worth of time and money has gone into making ProcessWire happen. If you are using ProcessWire to develop sites you get paid for, then you are profiting from ProcessWire. And that's fine with me, no ROI is expected or wanted--I've never asked anyone for anything. But it is disheartening to hear a user make a statement with the implications yours makes. Form Builder is not about making a profit. I don't expect that I will ever make enough on it to offset the actual time investment on it. My hope is that eventually it will be something where the community and myself have split the cost to create. If I wanted a profit, I would go make a Form Builder for WordPress or Drupal where the user base is large enough for that potential to exist. Form Builder is a tool that wouldn't exist if I had to fully self fund it. It's also an experiment to determine if I can reduce my client workload and substitute some of it with ProcessWire-related development that benefits all of us. But I can't substitute something that supports my family with something that doesn't. Form Builder is here to benefit you, not me. If you build sites for a living (or even a hobby) it's going to pay for itself the first time you use it. If you previously spent half a day building a form, now you can spend minutes and get a better, more secure and capable result that can do all sorts of things with the results it collects. Also want to note that Form Builder is something completely different from the original subject of this thread and I don't view them as similar products at all. Likewise, Form Builder is completely different from something like Zend Form or others like it. One does not preclude the use of the other and we should all keep more than one tool in our forms toolbox. I fully support Clinton's project and any others that benefit forms in ProcessWire. Forms are one of the most diverse and important aspects of web development. I feel very confident about the value of Form Builder in your toolbox, so have made it 100% refundable if you find it isn't for you (this type of return policy is pretty rare with digital products).1 point
-
I appreciate the interest. There isn't currently a donation capability here right now, though I hope to figure it out this year. Since I incorporated my business a long time ago (2003), ProcessWire is technically built by RCD (Ryan Cramer Design, LLC), so not really sure how to handle donations given that it's a corporation. I think I just need to do more reading, but I find the material hard to understand, so it's slow reading. Probably what I will do is move ProcessWire to it's own legal entity (non-profit entity or foundation if possible). And that should make it straightforward to accept donations as well as make them tax-deductible for the people that donate. But until then, the best way you can donate to the project is staying involved and active, and spreading the word online when and where possible. I think that are a lot of people that may benefit from ProcessWire that don't yet know about it.1 point