Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/20/2015 in all areas

  1. 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.co
    14 points
  2. 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
  3. 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
  4. 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 matter
    3 points
  5. 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
  6. 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
  7. 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
  8. 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
  9. <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
  10. 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
  11. 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-fan
    2 points
  12. 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
  13. Given a PageArray of pages, this module will render an RSS feed from them. This is intended to be used directly from a template file. Installation Download the RSS feed module at the bottom of this message. To install, unzip and place the file in /site/modules/. Go into Admin > Modules and click "Check for new modules" at the bottom. Then click the "install" button for the "MarkupRSS" module. From there, you'll be able to configure several aspects of the module. Usage Create a template in ProcessWire and use the following example as a guide. See the actual .module file for more configuration options too. <?php // retrieve the RSS module $rss = $modules->get("MarkupRSS"); // configure the feed. see the actual module file for more optional config options. $rss->title = "Latest updates"; $rss->description = "The most recent pages updated on my site"; // find the pages you want to appear in the feed. // this can be any group of pages returned by $pages->find() or $page->children(), etc. $items = $pages->find("limit=10, sort=-modified"); // send the output of the RSS feed, and you are done $rss->render($items); This module is now included in the ProcessWire core.
    1 point
  14. For compatibility, i will change [$foo, $bar] to array($foo, $bar). - Edit : Done. You can update module.
    1 point
  15. Feel free to provide a solution here oder create a pull request. Otherwise I will look at this next week...
    1 point
  16. Or: $last = $pagearray->pop(); echo $pagearray->implode(', ','title') . ' & ' . $last->title;
    1 point
  17. 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, Matthew
    1 point
  18. Here's an article about it: http://www.smashingmagazine.com/2015/02/03/redefining-lazy-loading-with-lazy-load-xt/
    1 point
  19. 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
  20. 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.asp
    1 point
  21. 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-images
    1 point
  22. 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
  23. 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
  24. 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
  25. @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
  26. 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
  27. 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
  28. I agree, Pierre-Luc. It reminds me of the way I felt about people using Microsoft Word for desktop publishing after I learned to use Aldus Pagemaker. Especially when those macro infections really started to go around I noticed that clients don't really appreciate it much when I pretend to faint at the mention of WP and generally play the victim card on CMS issues. So lately I tread really carefully when I need to communicate my CMS angst. But when I communicate with web designers, it feels like more of an opportunity. Nobody wants to be preached to, myself included, but we can and should educate each other as fellow devs & designers.
    1 point
  29. 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
  30. 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
  31. Perfect, Thanks for the speedy responses!
    1 point
  32. 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
  33. one is missing.... .processwire { position: absolute; transform: scale(auto); right: 100%; color: #fa5732; } Edit: forgot the color..
    1 point
  34. Maybe document how you made this + solved your issue to help the next guy
    1 point
  35. 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
  36. 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 off
    1 point
  37. 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
  38. 1 point
  39. 1 point
  40. As mr-fan stated the key here is the FieldtypePage. It lets you link those pages. For your performance concerns, I would say build your code well, use "limit" in selectors as much as possible and let ProcessWire handle the database stuff. It does it very well.
    1 point
  41. 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
  42. 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
  43. You see, this is talking MY language. I never understand how people communicate without having a mention of food somewhere in the argument - it just aint natural!
    1 point
  44. 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 Backgrounds
    1 point
  45. 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
  46. 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
×
×
  • Create New...