Leaderboard
Popular Content
Showing content with the highest reputation on 02/20/2015 in all areas
-
Hi all, http://axisanimation.com http://axis-vfx.com http://flauntproductions.com I've added these to the directory but you might like to check some of the more interesting details written up in a blog post here - http://newnow.co/blog/the-4k-website/ They use: Modified multisite module to mix shared and site-specific content in one instance Modified thumbnail inputfield for cropping Custom inputfield to retrieve video details from Vimeo API Form builder module They are responsive from mobile to 4K, built on Zurb Foundation, and use the new picture element in conjunction with Processwire to serve images at the most appropriate size, and double size for higher pixel density displays. Wouldn't have been possible without the great forum content and documentation so thanks to everyone in the community! Crawford. New Now Ltd. http://newnow.co14 points
-
Hey Ryan, I see that you just implemented a fix for the Max 1 and the Save as Copy, and also the modal size - thanks! One more thought for you - do you think that the cropped image should respect the "Min Image Dimensions" settings. I think it is strange to allow someone to resize or crop an image to be smaller than this setting's value.4 points
-
No problem. Ramble away I'll ramble as well. They are not necessarily "simpler". It's not so much about simplicity in the sense of "dump markdown and done". It's about defining everything in the plain text. I can try to give you an example between Kirby and PW: You have two pages on the site: PageA and PageB. Both are just a content with sidebar. Now you need to add three rarely updated news just for PageA, into the sidebar. In ProcessWire: ([A] is admin, [E] is text editor) - [A] create new repeater with the fields - [A] create new template - [A] add repeater to template - [A] change template on PageA - [E] add HTML and data output - [A] input the data to PageA - [E] design it with CSS - AH! You need to add a date - [E] change the HTML - [A] add the date to repeater - [E] fix the CSS - done. In Kirby: all is in [E] - the editor - add YAML structure with news - add HTML - add CSS - AH! add a date! - add YAML data - fix HTML - fix CSS Disclaimer: of course, your process in PW may be different, easier even. For larger sites, more content-heavy (templates are reused tens, hundreds or thousands of times) sites, or sites where the structure is well defined at the time of creation, it makes a lot of sense to go for the more robust solution — be it PW or something else. But then there are projects like I do; You get a site's goal, and you make up things as you go. I create the rough design idea in PS/Sketch, and then go straight to code, to finish the design, code it up, define content structure and add content. For these projects, you go through the example hundred times, because the process is much more fluid. Then add up possible incompatibility with you workflow, having to manage DB sync during changes/uploads, and you get frustrated with the more robust solution very quickly (possibly in the matter of days). For the projects I usually deal with, images are used either as a part of general design, or in some sort of gallery, which is just image+thumbnail. --- Just to finish the thought: I, both as a person and as a creator, tend to ask 'Why do you want this? Why do it this way?' a lot. This often leads to simplification of the scope and removal of features, because they were requested because "I heard it's good to do X", and not because they are needed for the goal of the site. Your clients, projects and workflow might be wildly different.3 points
-
Hi Adam, sorry the question wasn't very clear. I was just wondering how you deal practically with images. I mean on most sites I build there will be different sizes, thumbnails etc. Perhaps multiple images for an area. I guess in a general way, I'm not sure as to the benefits of using these sort of systems once one knows how to use a system like PW. Certain parts of them do appeal to me (the configuration files) but when I download any of these projects and peep through the code, they don't really seem any simpler to me than to using a fully-featured CMS. I totally get the appeal to someone who just wants to load up a theme and then manage their content in Markdown files but once you get beyond that and want to start editing template files and working with more complex structures, isn't that initial simplicity then lost? At which point you might begin to resent the lack of certain features that fuller systems like PW offer. Think these sort of tools go in the "I really want to like them but I don't quite get it" category... Anyway sorry, just my ramblings on the matter3 points
-
Nope, but it's kinda easy. // module context $table = $this->modules->get("MarkupAdminDataTable"); $table->headerRow( ["Title", "ID", "Created"] ); foreach($this->pages->find("some=pages") as $page){ $data = array( // Values with a sting key are converter to a link: title => link $page->title => $this->config->urls->admin."page/edit/?id=".$page->id, $page->id, $page->created ); $table->row($data); } // $table->footerRow( $someArray ); echo $table->render();2 points
-
One for https://processwire-recipes.com/ Output a Pagearray as: beer, rum, wine & whisky (note the '&' and don't get drunk) $count = count($pagearray); foreach ($pagearray as $key => $p) { $divider = ($key + 1 === $count) ? ($count === 1 ? '' : ' & ') : ($key === 0 ? '' : ', '); $out .= $divider . "<a href='$p->url' class=''>$p->title</a>"; } echo $out;2 points
-
I didn't forgot... Here is my solution: templates(fields): - mailbox (generate view and calls MailboxClass as controler) - threads (title, headline, userProfiles [FieldtypePage]), - messages (title, threads [FieldtypePage], msgBody, dateCreated) userProfiles contains 2 userinfo pages (sender and receiver) which title is equal to username page structure: - Mailbox (mailbox.php template) -- Threads (threads.php which purpose is only as selector) ---- salepg (messages.php which purpose is only as selector) ---- salepg-1 ---- mr-fan ---- lostkobrakai mailbox.php <?php include './functions/MailboxClass.php'; /** here some code to generate basic view */ ?> MailboxClass.php <?php $out = ''; /** locate threads page */ $p = $pages->get("/mailbox/threads/"); /** find threads that belong to logged user */ $threads = $p->find("userProfiles={$user->name}, template=threads, limit=10"); foreach($threads as $thread) { /** making thread object */ $t = new Mailbox($thread); /** output thread's info and last message in that thread */ $out .= "<a href='#'>".$t->receiver."</span> <span>".$t->subject."</span> <span>".$t->msgBody."</span> <span>".$t->dateCreated."</span> </a>"; } class Mailbox { public $thread = NULL; public function __construct($thread) { /** title contain only username of someone who start conversation */ $this->title = $this->title($thread); $this->subject = $this->headline($thread); /** * output receiver's name; user assume that he is in conversation * userProfiles contain 2 User Pages as persons involved in conversation * sender is person who start conversation * receiver is person who will be displayed to person who checks messages */ foreach ($thread->userProfiles as $up){ $this->sender = $this->title; if($this->title != $up->name)$this->receiver = $up->name; } foreach ($thread->children as $message){ $this->msgBody = $message->msgBody; $this->dateCreated = $message->dateCreated; } } private function title($thread) { return $thread->title; } private function headline($thread) { return $thread->headline; } } I ommited a lot of code to simplify this solution and showed just threads that belong to logged user. For starting new thread, reply or open specific thread or message, it's easy to upgrade this code. Also, I used PHP class as a part of maibox.php, again, for the sake of simplicity. powered by mr-fan and LostKobrakai Cheers!2 points
-
I used Get-Simple for some things; it is a nice little CMS, and really fast. You can do quite a bit with it; Image management in PW saves a ton of time, it's like having an extra employee; For some recent 1 page sites, I'm using Cockpit, which is quite handy, and works well; also pretty cool that you can bootstrap it into any page and start outputting managed content in maybe 5 lines of code.. been testing october a bit, and want to try out bolt.. I'm running Grav on a site for fun now; looking forward to trying Pagekit at some point..2 points
-
<rant style="wordpress"> recently i helped someone with a hacked WP site; they had no backup; i had to rebuild the whole thing, and they were on Yahoo, so no .htaccess file; consequently the URLs were all page id, and then to make things worse, the dev of this site wrote a couple of pluigns that relied on the id input; took about 10 hrs to rebuild the site from scraps, rewrite some plugins... and got to see a lot of russian hacker comments. got another enormous ecommerce site that the client can't manage at all - they find wordpress to be totally inscrutable (so now i'm getting emails to add products for them, change a word on the homepage)... and that site is running a heavily customized woocommerce and now the whole thing needs to be updated; updating this will mean cloning the whole thing, and gradually updating each component, and seeing if anything breaks, running diffs and seeing what to fix... I was surprised recently that a large professional organization that i'm a member of swtiched from Drupal to Wordpress, for their membership site - it's a huge org. I was like REALLY? and seeing a lot of local businesses and things like libraries going with WP... upside is that all of these sites are going to become inevitably unmanageable and then they'll come begging to the PW people for salvation </rant>2 points
-
Perhaps "Min Crop Size" could be specified separately? I can see a scenario where I want the Min Image Size larger than a crop size.2 points
-
Aldus PageMaker? You're showing your vintage Marc.2 points
-
there are two main concepts... all are pages == models, objects and so on fields are your data with a pagefield you could combine all together an get your 1:n n:1 1:1 connection of your models... have a read: http://processwire.com/videos/page-fieldtype/ next hint: you have 3 models like LostKobrakai wrote: messages (messagetext, pagefield for the thread, pagefield for the user_profile) --m1 --m2 --m3 threads (simple pagefield for the connection to the messages of one thread) -t1 -t2 -t3 -user_profiles (would make this maybe separate from the existing usersystem - depends on the other things on this site/app) -u1 (refer to the $user and pagefield with saves all his messages) -u2 there is a module that helps you to get information about the pagefield relations: http://modules.processwire.com/modules/page-references-tab/ if all is configured right you could use the PW API to get your data and save your data right how do you like. For Frontend or Bakendusage (there is a module for custom admin pages). best regards mr-fan2 points
-
Introducing ProcessDiagnostics and it's helper module suite. (Is this ProcessWire's first community-created module suite?) Description This suite adds a page under the setup menu that displays information about your installation. Each section's data is provided by a specialist diagnostic helper module but it is all collected and displayed by ProcessDiagnostics. The ProcessDiagnostics module itself does not encode any knowledge about what makes up a good or bad setting in PW - (that's done by the helper modules) - but it does the following... Gather the diagnosics (thanks to PW's hook system) Display the collected diagnostics Provide helper functions for describing some common things Dispatch actions to diagnostic provider modules (again thanks to PW's hook system) And eventually it will: Allow control of the verbosity of the output Allow the output to be emailed to a sysop Store the results between visits to the page Detect differences between results at set times Send a notification on detection of changes Although I am curating the collection, anyone is welcome to fork the repo, make changes in a topic branch, and submit pull requests. I've already had submissions from horst and Nico. Diagnostic Providers The current diagnostic providers include... DiagnosePhp - Simple diagnostics about the PHP envirnoment on the server DiagnoseModules - An ajax based module version checker by @Nico DiagnoseImagehandler - Lets you know about GD + Imagick capabilities by @horst DiagnoseDatabase - Checks each DB table and lets you know what engine and charset are in use DiagnoseWebserver - Checks the webserver setup DiagnoseFilesystem - Looks at how your directory and files are configured and warns of permission issues (currently incomplete) There is also a bare bones demonstration diagnostic module... DiagnoseExample - minimal example to get module authors started. Translations English & German (thank you @Manfred62!) Help translating this suite to other languages is always welcome. On The Net Check out Nico's blog post about this suite on supercode.co!1 point
-
One of the ways you can show support for ProcessWire is to help get the word out by including a small "Powered by ProcessWire CMS" tagline (ideally linking to processwire.com) in the footer of sites that you develop. This is a big help to the ProcessWire project. But I know there are many cases where it just doesn't work to do that because the client thinks of it as gratuitous. I think it's important to communicate to your client that it's not gratuitous at all. It is doing the right thing by showing appreciation and support for a software that is running their site at no cost. Even so, it's not always as simple as that, and I completely understand. We have no requirement or expectation that sites developed in ProcessWire do this. We just encourage and appreciate it when you can. Let your client decide One thing I've been doing lately is to put the control into my clients hands. They really appreciate that I've given them control over it… more so than if I'd left out mention of ProcessWire completely. It also makes them feel good as they are the one showing support, not just their site developer. Here's how to do it in 1 minute: 1. Create a new "checkbox" field in Setup > Fields called "toggle_powered" (or whatever you want to call it), and enter the following for label and description: 2. Add the "toggle_powered" field to your homepage template. 3. Edit the homepage and check the box (if possible in your situation). 4. Edit the template file or include file that contains the site footer and paste in the following: <?php if($pages->get('/')->toggle_powered): ?> <p> <a id='processwire' target='_blank' href='http://processwire.com'>Powered by ProcessWire Open Source CMS/CMF</a> </p> <?php endif; ?> The code above is an example, so adjust the markup, size, wording and placement to suit the site.1 point
-
Hi All, I am gladly posting my first site profile. Blue-VR Site Profile for ProcessWire Summary A site profile for corporate or personal website. Profile can be used with ProcessWire open source CMS/CMF version 2.3+. The front-end uses the Bootstrap 3.1 css framework for to get the responsiveness and mobile friendliness. Front-end Demo - bluevr.webcreate.lk Back-end Demo mode - bluevr-webcreate.lk/processwire (The username 'admin' and password 'bluevr2') Overall features * HTML5 & CSS3 + ({less}) * Build with bootstrap 3.1 * SEO Friendly * Clean & modern design * Responsive markup * Contact form and google map locations with multiple google markers * Testimonials using bxSlider * AIOM supports (Just install the module no need to touch the code) How to install Please take a copy of the latest ProcessWire (Replace the install, modules and templates directories with those in this profile, as shown below: - /site-default/install/ - /site-default/modules/ - /site-default/templates/ Make sure you do following steps as well 1. Add `tinymce` directory into /site-defaut. 2. Add the following two lines to your `/site/config.php` file: $config->prependTemplateFile = '_init.php'; $config->appendTemplateFile = '_main.php'; Download Github: https://github.com/gayanvirajith/BlueVrSiteProfile/ Credits I would like to thanks Ryan for giving us great CMS/CMF and modules. Hani AbuGhazaleh for a great module of Fieldtype: Select (AKA Drop Down) David Karich for providing such a nice module AIOM+. *** Please note that the site profile is still on testing stage. Thanks ------------------------------------------------------------------------ Edit: install instructions. Edit: Add credits Edit: Update live demo url Edit: Update back-end demo mode details1 point
-
Hi, I've started to build module for managing pages like mindmap style. The idea come from project that had lots of static pages and after the first 50 I was frustrated . At this point module is on pre-pre-pre-alpha state but because it's my first admin module I though it would be wise to let you all see the progress so you can correct me if I'm starting to going the wrong way. Features in todo: Mindmap style presentation of pages Ajax driven page adding so that maps is synced with pages Somekind of toolbar for changing page properties trough ajax, what it holds inside I don't know yet Any recommendations you give me EDIT: thx kongondo -> link https://github.com/jkolkka/PagesMapManager1 point
-
For compatibility, i will change [$foo, $bar] to array($foo, $bar). - Edit : Done. You can update module.1 point
-
Feel free to provide a solution here oder create a pull request. Otherwise I will look at this next week...1 point
-
Or: $last = $pagearray->pop(); echo $pagearray->implode(', ','title') . ' & ' . $last->title;1 point
-
Greetings, Just found this on Wired, and it is full of really fascinating ideas. It offers some perspective on where we have been, how much has changed, but also how much of what we use today was envisioned all the way back to CRT days of 1968! And what a coincidence that this computer sings the very same song that HAL 9000 sang in (also 1968) "2001: A Space Odyssey." Take a look: http://www.wired.com/2015/02/tech-time-warp-week-1968-computer-sings-daisy-bell/ Thanks, Matthew1 point
-
Here's an article about it: http://www.smashingmagazine.com/2015/02/03/redefining-lazy-loading-with-lazy-load-xt/1 point
-
I'm posting a solution to this for anyone who finds this topic through google: There are two steps required to make Securimage work with ProcessWire: 1. Add this code to the top of securimage.php ini_set("session.save_path", $_SERVER['DOCUMENT_ROOT'] . "/site/assets/sessions/"); Of course, the path may change depending on where your session path is. This works for those of us with the default path. 2. Change public $session_name on line 382 from null to "wire". This will ensure that Securimage will validate properly.1 point
-
I would just like to add something to Ryans great template code. I think this may be helpful for some. To add some styling to the output, you can: In "renderSitemapXML" function, change the following $out = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'; to this $csspath = wire('config')->urls->templates; $out = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . '<?xml-stylesheet type="text/xsl" href="' . $csspath . '/css/xsl-stylesheet.xsl" ?>' . "\n" . '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'; Then include this file "xsl-stylesheet.xsl" in your "css" directory. <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>XML Sitemap</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript" src="http://tablesorter.com/jquery.tablesorter.min.js"></script> <script type="text/javascript"><![CDATA[ $(document).ready(function() { $("#sitemap").tablesorter( { widgets: ['zebra'] } ); }); ]]></script> <style type="text/css"> body { font-family: Helvetica, Arial, sans-serif; font-size: 18px; color: #545353; } table { border: none; border-collapse: collapse; } #sitemap tr.odd { background-color: #eee; } #sitemap tbody tr:hover { background-color: #ccc; } #sitemap tbody tr:hover td, #sitemap tbody tr:hover td a { color: #000; } #content { margin: 0 auto; width: 1000px; } .expl { margin: 10px 3px; line-height: 1.3em; } .expl a { color: #da3114; font-weight: bold; } a { color: #000; text-decoration: none; } a:visited { color: #777; } a:hover { text-decoration: underline; } td { font-size:14px; } th { text-align:left; padding-right:30px; font-size:12px; } thead th { border-bottom: 1px solid #000; cursor: pointer; } </style> </head> <body> <div id="content"> <h1>XML Sitemap</h1> <p class="expl"> Generated by <a href="http://processwire.com/">Processwire</a> this is an XML Sitemap, meant for consumption by search engines. </p> <p class="expl"> You can find more information about XML sitemaps on <a href="http://sitemaps.org">sitemaps.org</a>. </p> <p class="expl"> This sitemap contains <xsl:value-of select="count(sitemap:urlset/sitemap:url)"/> URLs. </p> <table id="sitemap" cellpadding="3"> <thead> <tr> <th width="75%">URL</th> <th width="12%">Last Change</th> </tr> </thead> <tbody> <xsl:for-each select="sitemap:urlset/sitemap:url"> <tr> <td> <xsl:variable name="itemURL"> <xsl:value-of select="sitemap:loc"/> </xsl:variable> <a href="{$itemURL}"> <xsl:value-of select="sitemap:loc"/> </a> </td> <td> <span> <xsl:value-of select="sitemap:lastmod"/> </span> </td> </tr> </xsl:for-each> </tbody> </table> </div> </body> </html> </xsl:template> </xsl:stylesheet> You can of course put the file anywhere else, just change the path in the code. Also you can adjust the styling to suit your taste/site. I hope this helps someone. P.S. though I have called the file a "stylesheet" it is actually an XSL Transformation You can read more here http://www.w3schools.com/xsl/xsl_intro.asp1 point
-
Sorry, somehow I didn't link to the plugin above. Edited my post to add it. Anyway, the plugin I was talking about—and forgot to link to—, that is compatible with PF is Lazy load XT. See here about its use with responsive images https://github.com/ressio/lazy-load-xt#responsive-images1 point
-
Sorry for the confusion - I was looking at the wrong server. The server in question is running 5.3.29 so it's simply an issue with using $this in the anonymous functions (not allowed in 5.3) you are using, so should be an easy fix.1 point
-
That sounds reasonable and could explain other issues I couldn't reproduce. I've tested only with PHP version 5.5.18. I try to take some time next week to install version 5.3.8 (ProcessWire requires at least this version) and test all again. jeah...1 point
-
Why do you need to use a fake page? Why not use an existing one - could be any existing page, or one dedicated for the purpose. $img = $modules->get('InputfieldImage'); does work if you use $img->attr("value", new Pageimages($this->page)); It would be helpful to see all your code - how are you using WireUpload? I know you say it works, but I think ->destinationPath should be ->setDestinationPath - at least that is how I have always used it. On that note, I put that as part of the image upload processing, not the upload input field, eg: // save image to page //WireUpload stuff $validExts = array('jpg', 'jpeg'); $imageProcess = new WireUpload("ImageUploadJPEG");//name of image file upload <input> $imageProcess->setOverwrite(true);//overwrite files $imageProcess->setMaxFiles(1);//only allow one file! $imageProcess->setDestinationPath('/temppath/'); $imageProcess->setValidExtensions($validExts);//check for valid file extensions //upload the image file $arr_file = $imageProcess->execute(); Does any of that help?1 point
-
@Kongondo sure. I will update here. Quick things : * The ok() , err() methods were changed to log to PSR-3 logger. * All the $_POST values were changed to accept from the method. Eg dbSaveConfig($post) . $installer = new Installer($psr3logger); $installer-> $installer->dbSaveConfig($post); As it is not using global values like `$_POST` and `$_SERVER` all values are passed to methods. Hope this helps!1 point
-
As a speaker of English as a second language, I really notice this quirky error. I notice it a lot in this community, in the blogs and forum entries, but also on official pages (the latest: The PW Directory, front and centre). "its" means the thing belongs to the thing. "it's" means "it is". The simplest test would be: assertTrue( "it is" == meaning_of( $phrase ) ); IOW, if you can write "it is" right there, it's OK to write "it's". Otherwise, always always write "its". Sorta grumpy today.1 point
-
1 point
-
Looks like chrizz has disappeared from this topic - we PM'd a bit about it and I implemented a fix for his problem, but never heard back. All that is needed is to add the following: // make sure the value is of type Pageimages $obj_field->attr("value", new Pageimages($this->page)); You can thank soma for that fix: https://github.com/somatonic/ImagesManager/blob/master/ImagesManager.module#L173 Does that take care of your issues too?1 point
-
Yes, of course. File extension removal is actually feature I don't really care about. More the features you'd use in ProcessWire, just on smaller scale: - templates, not having to edit 20 files when you change a bit of html structure (especially during initial design/coding stage) - navigation generation - Collections of stuff (so you can write one html and just foreach it) - Having data in a nice structured YAML format, decoupled from HTML I'd go mad if I had to do that stuff in pure HTML. Hey, no problem.1 point
-
Hey Ryan, I have just started looking at the new cropping functionality - it's awesome, but I have a few thoughts I wonder if rather than the onhover edit button, it would be better to have an obvious edit/crop button - at the moment, I think editors will need instructions on how to find it. I'd also like to see the crop, resize, min, and max button permanent, rather than onhover for the same reason - they are going to open the modal and stare at it, not knowing what to do When the image is cropped very small, the resize, crop, max, min onhover buttons get messed up as there is no room for them to display - my comment above would solve this. Speaking of those onhover buttons - do these work ok on touch screens? Again #2 would solve this if they don't work well. There seems to be a random bug with the modal edit window sometimes being much taller than the viewport, so after I click "Save Crop", I have to scroll down a LONG way to get to the "Save as Copy", "Save and Replace" and "Cancel" buttons. This is on the default admin theme and it's not all the time. I am honestly a little confused by the "Save Crop" button - I have to save it, then choose one of the other three options. It is a different behavior to the resize options where I am asked to use existing or original. When the images field is set to Max = 1, Save as Copy is a little confusing as initially both appear once the modal is closed, but after page save, the original is gone. I would like to see a way to disable the options and force replacement of the original - I think this is likely the most common scenario. Especially if the image is not being embedded into an RTE, I think the current behavior makes it difficult to use the API to target the one cropped version of each image if there is no Max set for the field - you could end up with multiple copies of each image and no way to figure out which one the editor actually wants to use on the page. Thanks again for all these new tools!1 point
-
1 point
-
Yeah, just checked it's only safari which does this. I'll send you a small clip, maybe it helps. For the other browsers just a really minor thing. I feel like the animation, which grows the header again to it's bigger size, could be a tiny bit faster. If one is swipping back to top (mostly touchpad, didn't notice it with mousewheel) it feels, like it would slow down the scrolling itself, while you're already on top of the page.1 point
-
one is missing.... .processwire { position: absolute; transform: scale(auto); right: 100%; color: #fa5732; } Edit: forgot the color..1 point
-
1 point
-
I don't know if you can fix this, but currently it's hard to get the cropping box to the edges of the image, as the borders sometimes doesn't notice the drag end if you're releasing the mouse outside of the image. Top / right seem to work fine, but bottom and left edge don't get it for me. One can always drag the whole box down to the edge, but it would still be nice to have this working in all variations. Edit: @Ryan I can see that you don't want to duplicate stuff. But it would really be nice to have a single interface for editing image variations. This could even include variations generated by the api to be editable instead of just predefined sizes from CroppableModule and/or RTE images. Also now there are two seperate cropping UI's, which could each borrow a thought or two from each other, aside from the fact that just one interface would be easier for the user. Secondly editing api variations would even enable advanced stuff like using the picture element with automatic cropping for different imagesizes, while having the ability to author the crop for e. g. the mobile view afterwards, like showing a tighter crop. With CroppableImage this would only work for fixed aspect ratios.1 point
-
Just to drive the point across further, recently I've been forced to maintain a bunch of WP sites (medium-high complexity) that are simply unmaintainable clusterfucks of modules inherited from other agencies… PHP directly into fields and the like… Just this week, I've found ~5 SQL injection vulnerabilities in extensions that look like they are rather popular in the WP community, bunch of totally ugly code, no comments to be found. This is what happens when people think WP saves costs, it just simply doesn't! To be fair, WP can be used to do great stuff, but it's a rarity unless you throw an insane amount of $ in it. /vent off1 point
-
Hey, I don't mind necroing my posts if it coincides with my resurfacing on the forums The thing is, you all assume it's just about the speed of the site — the "staticness" of the content. But in my case — which I admit might be far from yours — is that I often deal with tiny, even time limited websites, like website for an event. They usually have just a few, maybe five totally different pages, are active/online for limited time, and I am probably the only person interacting with it. So when you take all of that into account, having both the data and the templates in the text editor, and not having to deal with neither database nor any kind of administration immensely speeds up my workflow. When adding a 'field' is a question of one YAML line versus multiple clicks in (even well designed ProcessWire) administration, there really is no question.1 point
-
1 point
-
You can pass any FilenameArray to AIOM starting on version 3.2. I know, this solution is not optimal but it is our solves the given problem of artamteex.1 point
-
Thanks Mont, your suite, you're sweet.1 point
-
I totally agree with Martijn when he says that the grammar/spelling correction shouldn't distract the reader from the actual topic of the thread. But if this was a german forum I would probably also get grumpy if the users would constantly spell the words wrong. So -as a consequence- I've decided to add a new forum-signature that first of all states that I'm a german speaker but also that I'm eager to learn and improve my english.1 point
-
Hello, all! Sorry if this should be in another forum, but I didn't see one for general introductions, testimonials, and the like. I actually don't need help yet (the documentation and existing forum threads have already been immensely helpful), but I am just finishing up my first project using ProcessWire and felt the need to come here and say thanks. I've been designing/developing websites for several years now, and this is by far the most intuitive CMS I've used...from both a development and end-user standpoint. I just showed my most recent client the backend a couple of days ago and he was amazed at how easy it was for him to update content. So, thank you!1 point
-
Hi Adam, Thanks for the module. It's not working for me though, there is no highlighting for markdown =( Also no line numbers are showing, if this is intended, the gap should not be there then. It would also be great to have a little more customisability, like font, color, font size and so on. Or at lest have the option to have custom style sheet?1 point
-
PW is chosen, WP is followed.1 point
-
I went ahead and made a "powered by processwire" animated GIF if anyone would like to use it Have two versions - one for black backgrounds and one for white. I made it kind of large so you can shrink it to whatever size you'd like. I am using a setting of 140 by 47 pixels. You can see the one for black backgrounds in action at one of the sites I designed here. I am searching for a GIF animator that will allow PNG files so I can have it completely transparent on any background. Will upload soon. For White Background For Black Backgrounds1 point
-
The notices system actually doesn't have anything to do with jQuery UI other than that the default admin theme makes use of jQuery UI class names when generating the markup for notices. But for your own front-end, you can make use of the $notices API variable to output them however you want. It can be as simple as this: echo "<ul>"; foreach($notices as $notice) { $class = $notice->className(); $text = $sanitizer->entities($notice->text); echo "<li class='$class'>$text</li>"; } echo "</ul>"; Then you would want to style the two type of notices in your CSS: .NoticeMessage { color: green; } .NoticeError { color: red; }1 point
-
Marc, when you are developing a site it's good to turn debug mode on. This will ensure that errors are sent to the screen, exceptions reported, etc. This can be found in /site/config.php. By default, it is false. You'll want to change it to true: $config->debug = true; Obviously you don't want this enabled for production sites, so remember to change it back to false for live/production sites. I don't see any problem with using var_dump, var_export, print_r, etc. so long as you are directing that output to where you can see it. Also avoid running these functions on PW objects as you may get into an infinite loop. Sometimes it can be difficult to track the output of these functions because PW performs a redirect after most POSTs. But if you use PW's built-in reporting functions, they will get queued between requests until they are output. Here are the relevant functions bellow. They will produce the messages that you see at the top of your screen in PW admin: $this->message("status message"); $this->message("status message that only appears in debug mode", Notice::debug); $this->error("error message"); $this->error("error message that only appears in debug mode", Notice::debug); If you are outside of a Wire derived object, you can call upon any API var to handle the notice for you. For example: wire('session')->message('status message'); wire('pages')->error('error message'); Note that these reporting functions above are for the admin (and related modules), and they don't do anything on the front-end of your site. How you choose to debug or report errors on the front-end is at your discretion. Personally, I keep debug mode on in development, and this puts PHP into E_ALL | E_STRICT error reporting mode... it reports everything possible. If I need to examine the value of something on the front-end, I'll do it the old fashioned way with just PHP. Though others may prefer to go further with their debugging tools. If you want to keep your own error log, here's how (anywhere in PW): $log = new FileLog($config->paths->logs . 'my-log.txt'); $log->save('whatever message you want'); You can direct it to store logs wherever you want, but I suggest using the PW logs dir as shown in the example above. This will make the log appear in /site/assets/logs/, and this directory is not web accessible for security.1 point