Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 12/14/2015 in all areas

  1. Writing some tutorials for Envato Tuts+ anyone have any recommendations of topics to help Processwire beginners? Starting with Installation, admin guide and themeing.
    5 points
  2. Hi, I've hit this problem before. I started out as WordPress developer. WordPress is immensely popular to the point where plenty of clients think WordPress = CMS. If you mention another system they will think "they wont be able to edit it". WordPress is very much do-it-yourself and plenty of clients like that. However working in an agency it's a nightmare. You will find that they always break things, or use dodgy shortcodes and your often trying to provide support. When building a bespoke website in WordPress, I often used ACF to make sure it was locked down, no Visual Composer to play around with elements. But all it gave me was headaches. The API is allover the place and not to mention each plugin has it's own set of functions you have to worry about (WooCommerce). I've been using WordPress for years and I'm still always searching stuff like "How to get category image as thumbnail size", which turns out you have to call about 20 functions and pass it through the eye of sauron before it spits out just a url with the image size. With WordPress there is no guessing. ProcessWire I learnt the rules of the API and from there, I could guess how to do things and often it worked! This is a signature of a system that works for you, and not you having to work for the system. jQuery is a lot like this and the reason I love jQuery, I know I get the with .width() so the height should be .height(). Simple. So that's everything my side, how about the clients? Well, I always found convincing clients was very easy when the subject of security came up. I often tasked them to find a hacked ProcessWire site, then do the same for WordPress. Obviously we knew who the clear winner were there. After that is speed. All my ProcessWire sites run lightning fast. But I just think morally it's better to go with ProcessWire. WordPress is now taking up roughly about 20% of the web, this calls for a very unsafe web. That's 20% of websites with known vulnerabilities coming out almost every week. It's got so bad, Google now scour websites and report hacked sites on their search results. ------- Here is an example we had recently; A potential client came in thinking he had an audience of about 30,000 per month. He was using his cPanel's analytics and always went off those. He decided with that amount of viewers he should invest in marketing. We hooked up Google Analytics to see demographic, page views, user journey etc. to discover he was only getting 2,500 per month. After accessing his analytics we found that he had 27,500 hits per month to /wp-admin/admin-ajax.php
    5 points
  3. Hey Ben, that's brilliant news! Finally, someone who knows about ProcessWire writing about ProcessWire . Could you please start a new thread about this? It is an important issue and should not 'be hidden' here amongst other stuff, thanks.
    3 points
  4. Hello friends, I have been using the wireRenderFile() function a lot. Since the inclusion of the wireRenderFile() method I made all my websites using this pattern. This is a medium post that I made explaining it. https://medium.com/@clsource/the-wire-render-pattern-806bf6d6097a?source=featured---------1 All the files will be uploaded here https://github.com/NinjasCL/wire-render-pattern
    2 points
  5. I believe this as well and here's how I came to the same conclusion... I recently read this post by the original creator of Drupal and the fantastic comments there: http://buytaert.net/should-we-decouple-drupal-with-a-client-side-framework ... and that gets you thinking deeply about the evolution of content management systems and what their role is in the coming years. If you believe their role is ultimately some sort of structured content storage database that's decoupled from the frontend, or entirely headless, then platforms that like already exist. They are called Content as a Service systems, like Contentful: https://www.contentful.com/ More about CaaS: http://ecmarchitect.com/archives/2014/10/27/3944 Contentful is "an API-first CMS" and is entirely headless. It exposes the content as an API. You can then build your frontend separately in any way that you like. A very interesting approach is outlined here, using the Roots static site generator: http://carrot.is/coding/static_cms The thing about Contentful is that the concept and simplicity of fields, templates (known as "Content Types" in Contentful) and pages (known as "Entries" in Contentful) is almost exactly like ProcessWire. If you compare the two, you soon realize that ProcessWire is much more robust and feature rich... more field types, ability to nest pages, finer level of control, a User system, not forced into Markdown for rich text fields, ability to create modules, Hannacode/shortcodes and so on. Contentful is great too, but I feel it has a more precise use case. With that being said, the way I see ProcessWire is that it can be a CaaS-like/headless CMS much like Contentful, but also a "traditional" CMS like Drupal/WordPress but with way better architecture. Best of both worlds. I love my CMS too.
    2 points
  6. The trick that works most of the time is the security issue, a little googling and evidence shows itself in blog posts all around the web. I rarely have tech wise clients, though some of the few who actually DO know a bit about web technology and are on the Wordpress hype train, I take out this weapon: "Did you know Wordpress in in fact a blogging software?? Then, let's think again, do you think your website is a blog?" It's like using confusion on a Pokemon. The train of thought is that they are using the wrong tool for their problem and that actually stops people to think, what do I want from my website??. I then go with the "more professional, custom solution called Processwire" pitch. Also, very important, I talk about how costly can Wordpress become if you want to start customizing content management and display, unsafe plugins, and the safe ones that mean extra costs, maintenance for Wordpress updates, etc. With PW, you get what you need, solid cost effective solution. Though, the smarter ones will say: Hey, everyone is using it!! What's the deal with you weirdo!! After that, I'm left with my last weapon which is walk away!! And impressively, that one actually sometimes work! It's like, after showing them that the way to Wordpress goes through Mordor, they start feeling the fear and come back. ps. I'm really liking the LOTR metaphors.
    2 points
  7. Maybe the ideas presented here The Wire Render Pattern by @cclsource ould help you decide?
    2 points
  8. I'd the same problem with my composer files and ultimately decided to put everything into the site folder, whereas the templates folder should only hold things that really belong there (php files and compiled js / css files). I found this to be most in line with the already present structure of things. site/ does hold all site specific data and package.js and other files are configuration like config.php.
    2 points
  9. Hiting directly on WP (or other systems) always has it's bad feelings for the client - ranting on other systems is always no good way to sell your own product. Personally i'm in a position that most of my few clients are really non web affine and they have no clue about different tools or how to use them...but they know wordpress, too. But i show them the last half year security problems (without knockin down WP and stay ojective as far as i could) and we are ready to go one step further with PW and no other system...but i could imagine the problems with business clients that have dangerous ssuperficial knowledge that makes your life harder! Best regards mr-fan
    2 points
  10. 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
  11. ALIF - Admin Links In Frontend EDIT: latest version update with PHP 8 fixes on 05. Nov 2023 (!) The version now is 1.1.9 (!) This module combines some of the admin links that we want to use on the frontpages sometimes. It is a comfortable and easy way to do so. After you have installed and configured the module, you can inject the links into the frontpage with code like this in a template file: echo $modules->isInstalled('AdminLinksInFrontend') ? $modules->get('AdminLinksInFrontend')->render() : ''; . Credits: The comfortable Javascript Color Picker in the Configpage comes from Jan Odvarko (http://jscolor.com). Many thanks for this! * Toolbar The toolbar can be positioned by css values for top/bottom and left/right. It can expand in vertical or horizontal direction. The buttons are links to the PW admin, for logout, or for editing the page in admin, or informational ones. All settings, including the colors, can be defined in the modules config page. This is available for all PW versions from PW 2.3 up to now. Depending on how you configure this part, it can be used for authors and editors too, maybe. * Import / Export Settings It has the possibility to export and import its settings via two textarea fields. When importing settings, you get a second screen where you can select which settings you want to import. * One-click User Account Switcher For PW versions 2.6.8+, there is one really nice function available, that I use when developing / testing sites with different user / roles. A fast User-Account-Switcher that lets you view the same page from different user accounts with only one click. To enter this mode, you need to login as a superuser one time, and the feature needs to be enabled in the module of course. After that, you can log out, login with different user roles, etc. At least the toolbar buttons for the User-Account-Switcher will stay visible for you. This is session based. There is also an extra button with a trash can and the text "Session", that helps you to leave this mode once you are finished. As you can see in the screenshot, after clicking "guest", I was logged out, but a regular login button, a warning for debug mode and my three defined buttons for user accounts are available. When clicking another user button I login with this account. Very handy. ATTENTION! The use of the One-click User Account Switcher is mainly intended for dev sites, not for public sites! You should be aware that there is a huge security risc when using this feature on public reachable sites! We completly leave ProcessWires comfort zone in regard of security, - and the only thing between your site and potentially hackattacks is this module. (Oh mom, - what have I done?) PW 2.6.8+ has a comfortable function for admin tasks, that let us log into different user accounts via API without using passwords. This module uses this function! All data that is needed during a User Account Switcher session is stored in the session data on the server. So, if someone steel your session cookie, there is potentially risc that he can login as a superuser, depending of the user account buttons you have in your admin links collection! To prevent SessionHijacking, the module can be bound to a single IP address, it uses a fingerprint depending of IP(s) and UserAgent string. And you need to define a max time to live in minutes between 2 and 60, a User Account Switcher session may run. A User Account Switcher session only can be initialized by a Superuser who also explicitly has set a permission called 'alif-user-account-switcher', what is defined by the module, when installing it. So, the prefered way to use this module is, to enable and use the User Account Switcher while the site is unpublic, and before it goes public, remove the permission from the superuser role. This way, you can use its menu function, but not the UAS anymore. On a sidenote, for those rare cases where multiple superusers simultaneous developing on a site and want to use the ALIF, but the UAS should be used only by one, you can leave the 'alif-user-account-switcher' permission removed from the superuser role, but need to assign the role 'alif-superuser' to the single user account. This way, only that single superuser has the permission for UAS, whereas all other superusers doesn't have it. . . * The Configpage * Online demo I have pasted it into this old site and enabled it to be present every time (when the site is in demo mode only!). So, it is an earlier state, but the switcher is functional there: http://pwlaf.biriba.de/dbinfo/ * Download From our modules directory or from github repo
    1 point
  12. http://kapeli.com/dash#docsets http://zealdocs.org/ Could the API docs be handed to Dash easily; http://kapeli.com/docsets I know there's the apigen docs for PW, but Dash doesn't support it. Doxygen?
    1 point
  13. A quick tutorial how to create file downloads using pages You will be able to create a new page using template "PDF" (or any you setup), upload a pdf file. You then can select this page using page fields, or links in Wysiwyg. The url will be to the page and NOT the file itself. This will allow to keep a readable permanent unique url (as you define it), unlike /site/assets/files/1239/download-1.pdf, and you'll be able to update/replace the uploaded file without worring about its filename. Further more the file will also have an id, the one of the page where it lives. Clicking those links will download or open the file (when target="_blank") like it would be a real file on server with a path like /downloads/project/yourfile.pdf. You'll be also able to use the "view" action directly in the page list tree to view the file. Further more you'll be able to esaily track downloads simply by adding a counter integer field to the template and increase it every time the page is viewed. Since the file is basicly a page. This all works very well and requires only minimal setup, no modules and best of it it works in the same way for multi-language fields: Just create the language alternative fields like "pdf, pdf_de, pdf_es" and it will work without modifying any code! Still with me? ok PW setup Download folder: Create a template "folder" or "download-folder" with only a title needed. Create pages in the root like /downloads/project/ using this template. Setup the template for the pdf files 1. Create a new template in PW. Name it pdf 2. Goto template -> URLs tab and set the URL end with slash to no. (So we can have /path/myfile.pdf as the URL) 3. Create a new custom file field, name it pdf. Set its maximal count to 1 under -> Details tab. 4. Add the pdf field created to the pdf template. Easy. 5. Create a new "pdf" page using the pdf template under a download folder you created earlier. 6. Give it the title and in the name field add ".pdf" to the end (could also leave as is) Template PHP file for the pdf files 1. Create the template file pdf.php in your /site/templates folder 2. add the following code: <?php // pdf.php if($page->pdf){ wireSendFile($page->pdf->filename); } Done. To see the options you have with PW's wireSendFile() you can also overwrite defaults <?php // pdf.php if($page->pdf){ $options = array( // boolean: halt program execution after file send 'exit' => true, // boolean|null: whether file should force download (null=let content-type header decide) 'forceDownload' => false, // string: filename you want the download to show on the user's computer, or blank to use existing. 'downloadFilename' => '', ); wireSendFile($page->pdf->filename, $options); } Simple and powerful isn't it? Try it out. Some thoughts advanced Create as many file types as you like. It might also be possible to use one "filedownload" template that isn't restricted to one field type but evaluate it when being output using $page->file->ext, or save the file extension to the page name after uploading using a hook. One last thing. You can add other meta fields or preview images to the template and use those to create lists or detail pages. It's all open to goodness. Again all without "coding" and third-party modules. Further more you can use the excellent TemplateDecorator to add icons per template and have a nice pdf icon for those pages. This as a base one could also easily create a simple admin page for mass uploading files in a simple manner, and create the pages for the files automaticly. ImagesManager work in the same way. Cheers
    1 point
  14. A temporary fix in response to this request ProcessCommentsManagerEnhanced This is a slightly enhanced version of the current core ProcessCommentsManager. I've tested it in the current dev version of PW and it works fine. I cannot provide any guarantees nor support the module though ....it is a working-nicely-proof-of-concept. Download GitHub Install Just like any other ProcessWire module. It requires FieldtypeComments to be installed. You do not need to install ProcessCommentsManager. Demo Screen
    1 point
  15. @FrancisChung - I am going to be offline for about a month, but please let me know how Migrator works out for you. I use it a lot in my development process for migrating new branches of content from dev to live, but I do know that there are still some issues that need to be sorted out. As I mentioned in the Migrator support thread, it's definitely not abandoned, I just need to find a good chunk of time to address some bugs. I would definitely recommend testing the migration from one dev site to another dev site first and if that goes as expected it should be safe to migrate to a live site. Also be sure to use the the inbuilt backup option just in case. Hopefully sometime in the new year this module will get some more love.
    1 point
  16. Try: <?php foreach($page->children as $child): foreach($child->images as $image): echo $image->url; endforeach; endforeach; ?> I kept the code similar to what you had so you understand the differences, but way of writing PHP is more suitable if you want to alternate PHP and direct HTML. For a simple echo it's better to just use brackets. I'm actually surprised that you don't get a PHP error with that code
    1 point
  17. Great write up thank you. For 2 recents project i've also explored this kind of MVC-ish approach and it works quite well. P.S : little typo spotted in this sentence "In Processwire you can organize your code the way it make most senSe..."!
    1 point
  18. Good day everyone! There was some talk about using frontend development technologies like node and gulp and bower with PW. I actually started to incorporate them in my workflow on the latest projects. But I did not make a conscious decision on where to put the root of all my frontend dev ops in the PW folder structure. My first intention was to put my package.json, gulpfile.js and bower.json in the templates folder. Jonathan Lahijani suggested doing so in his epic video. So I've done. But it always looked messy to have node_modules, bower_components, .sass-cache and all the little .json files in there. But now I have a bigger problem - all those files seem to cause errors when running "Translate files" in languages. So I decided to rethink this. Do I really have to put all that stuff in templates folder? Should I put them in site or even in the root folder? That are benefits and downsides of each option? Are there any possible collisions in multisite installations? I ask you to share your experience and thoughts on the topic.
    1 point
  19. I don't have much recent experience but Like LostKobrakai i used to put that kind of stuff in the site folder, which i consider the root of a project. I only use the templates folder for final production files. So i usually have something like site/src with all css/scss/less/js source files and then build into the templates folder and sub-folders. I'm not familiar with multi site so i don't know about the pros and cons there.
    1 point
  20. @kongondo Thanks for your module ! I made a pull-request for separating status urls from status labels. I opened an issue for original ProcessCommentsManager, because problem coming from the original module. On my side i am using your module with my changes its look like working well !
    1 point
  21. Testing here with PW 2.7.2 in a new URL field I setup called "href", I used the URLs you mentioned. For my field settings, I have "Allow single/double quotes" set to true, and for "Text formatters" I have "HTML Entity Encoder" selected. I tried with and without the "allow IDN" option, but it doesn't matter here since we're not testing with IDNs. Here are the results I got: https://en.wikipedia.org/wiki/Peter_O'Toole Input to URL field in admin: https://en.wikipedia.org/wiki/Peter_O'Toole API code to output: echo "<a href='$page->href'>test</a>"; Output in rendered page: <a href='https://en.wikipedia.org/wiki/Peter_O'Toole'>test</a> Result: Clicking the link works, taking me to the page on Wikipedia https://upload.wikimedia.org/wikipedia/commons/5/53/Peter_O'Toole_-_1968.jpg Input to URL field in admin: Input to URL field in admin: https://en.wikipedia.org/wiki/Peter_O'Toole API code to output: echo "<img src='$page->href' />"; Output in rendered page: <img src='https://upload.wikimedia.org/wikipedia/commons/5/53/Peter_O'Toole_-_1968.jpg' /> Result: Picture of Peter O'Toole Basically, it's working exactly how it should. My best guess is that it wasn't working for you because you've got some other code in there somewhere HTML entity encoding the URLs, to make up for the bug prior to 2.7.2 where text formatters weren't being properly applied to URL fields. Another possibility, check if your $page possibly has output formatting turned off? It would need to be ON for this all to work. That's interesting, so it looks like the URL is getting URL encoded, converting the apostrophe to a %27. I did try entering that too, but PW converted it back to an apostrophe and then entity encoded it, resulting in the same working output as in my second test above. If this is literally how your URLs are stored in the database, then my best guess is that when you are outputting the value, either the $page's output formatting is off for some reason, or the HTML entity encoder wasn't selected in your "text formatters" details tab, which would prevent a URL with an apostrophe from working, whether it was URL encoded or not. I would suggest upgrading again to 2.7.2 and double check all your settings, especially the one about allowing single/double quotes and the Text Formatters. If the URLs are still not working, then check to make sure in your template file that the page's output formatting is enabled, like this: if($page->of()) { echo "<p>Output formatting IS enabled</p>"; } else { echo "<p>Output formatting IS NOT enabled</p>"; } If it's not enabled, you'll want to track down where you are turning it off, typically with a $page->of(false); or $page->setOutputFormatting(false); Finally, check that you don't have something else entity encoding the URLs in your site. If you've got a line like this, you'll want to remove it: $page->bfd_image_from_url = htmlentities($page->bfd_image_from_url); // avoid this
    1 point
  22. I believe it's hidden by default because "Pages" also took you to the page tree. This means on the default theme you have Pages and Pages > Tree going to the same place. I can see how Ryan saw this as confusing for non-technical users. However with Reno Theme you can't single click on the top level menu item, causing this problem. You can double click Pages to get to the tree, however I recommended: https://processwire.com/talk/topic/7625-reno-theme/?p=108089
    1 point
  23. Fantastique ! What i see is what i like.
    1 point
  24. I went another way, don't know why but those others felt a little more hacky, maybe I still don't understand enough in this fields.. Maybe someone got improvements or is just interested in using another approach here it is: $limit = 42; $current_page = $input->pageNum ? : 1; $start = ($current_page - 1) * $limit; // I'm joining pages table because I needed only images from certain templates in this case tpl_id 44 & 52 // and I'm sorting by page published date // if you don't need this context you could of course go without the join $images = $database->prepare('SELECT i.pages_id, i.data, i.description, i.tags FROM field_images AS i LEFT JOIN pages AS p ON p.id = i.pages_id WHERE p.templates_id IN (44,52) ORDER BY p.published DESC, i.sort ASC LIMIT :start, :limit '); $images->bindValue(':start', (int)$start, PDO::PARAM_INT); $images->bindValue(':limit', (int)$limit, PDO::PARAM_INT); // I tried to pass the params via the execute, but somehow I couldn't get it working, he wouldn't treat them as integer, even though some people are doing it..?! $images->execute(); while ($rawImage = $images->fetch(PDO::FETCH_OBJ)) { // for easier image handling I turn the raw data into an actual Pageimage $p = $pages->get($rawImage->pages_id); $i = new Pageimage($p->images, $rawImage->data); // create whatever markup you prefer for your gallery } // Just read about "SQL_CALC_FOUND_ROWS" here http://stackoverflow.com/a/12887293/3484824 $totalImages = $database->query('SELECT count(*) FROM field_images AS i LEFT JOIN pages AS p ON p.id = i.pages_id WHERE p.templates_id IN (44,52)'); $totalImages = $totalImages->fetchColumn(); $totalPages = ceil($totalImages / $limit); // and the pager $content .= "<ul class='pagination'>"; if ($input->pageNum > 1) { $prevPage = $input->pageNum > 2 ? $page->url . 'page' . ($input->pageNum - 1) : $page->url; $content .= "<li class='pagination__item'><a href='$prevPage'>prev</a></li>"; } for ($i = 1; $i < $totalPages; $i++) { $pagerPage = $i === 1 ? '' : "page$i"; $current = $input->pageNum === $i ? ' pagination__item--current' : ''; $content .= "<li class='pagination__item{$current}'><a href='{$page->url}{$pagerPage}'>$i</a></li>"; } if ($input->pageNum < $totalPages) { $nextPage = $page->url . 'page' . ($input->pageNum + 1); $content .= "<li class='pagination__item'><a href='$nextPage'>next</a></li>"; } $content .= "</ul>"; So far so good, hope you enjoy this peace of code and improvements, tips and tricks are always welcome as I'm still learning
    1 point
  25. You can use escaped doublequotes in either of the versions in your code, than it should work in PW 2.7 too: echo "More info on <a href=\"{$page->bfd_url_wiki}\" target='new'><b>Wikipedia</b></a>"; change href='...' to href=\"...\" in your template code, than it will work in every situation, regardles if you have escaped or unescaped single quotes in your URLs.
    1 point
  26. I´m a happy customer of padloper thanks for all your work apeisa
    1 point
  27. @Beluga I like the approach of discussing and agreeing project requirements with your client and then recommending a suitable platform and selling a solution instead of disqualifying WordPress immediately. Hitting directly on WP is probably the wrong approach, especially for clients who only know WP and have no technical experience.
    1 point
  28. You will enjoy reading the thread One at a time (PW Vs WP)
    1 point
  29. I understand how you feel. It's quite sad that so many people have closed their minds to platforms that either don't live up to their promises, or just fail on their backsides at almost-regulated intervals. Luckily, my experience hasn't been so bad - guess I just have an open-minded client-base. There have been several instances where WordPress was brought up, and an explanation of PW's benefits was required. However, all of these went smoothly, and not one client has forced WordPress into the equation. They're all happy with PW, and have outstanding things to say about it. I prefer to not argue with people, and so would say to a potential client insisting on WordPress that it shouldn't be used just because everybody else is using it, "but, if you insist, here are a few designers and developers that would be happy to help you." (And then proceed to list the 5999 designers and developers here in SA that use it religiously.) It's not easy, I know - but your preference of ProcessWire is exactly that: your preference. And so, it isn't easy to make your clients feel about it the way in which you do. I guess my initial experience was along the lines of my client relying on me and trusting me extensively - to the point where they just ran with it (instantly).
    1 point
  30. 1 point
  31. Or simply unhide the Tree Page under Admin > Pages > Tree.
    1 point
  32. Hey Reno, with the new update removing the tree. The only way to access the page tree is by clicking the ProcessWire logo. It took me a while to figure this one out as I always went to Pages > Tree. With Pages > Tree now missing it might be worth doing: I know it's not as visually appealing so you may have a better idea Reno.
    1 point
  33. +1 and Christmas is coming up ...
    1 point
  34. Thanks all for your thoughts, I like this topic! There's surely no "the one" CSS framework. In fact each project may require another fw that fits. Larger projects may benefit of large fws with extra stuffs like carousel, lightbox, etc, while a very simple one requires only a grid and some helpers. Here are my findings with some fws: Fluidable It's only a small grid system but sometimes that's all I need. There are many similar out there, I found this one first and it worked fine. UIkit I liked it much but of course I had to manually tweak things here and there. Unlike other large fws I like its feel and design. Foundation I used this only in a few project but always felt it's too much. Usually I don't participate in projects where such a big fw would be beneficial. Bootstrap That's the de-facto CSS framework and if you do frontend you can't avoid it. I won't start a project with it unless I have to, but I manage many sites where it is used. Most of them are using only its grid and the menu component but they are pulling the full fw. Base That's the one I use the most. It's a grid and some nifty helpers. I started with v1 back then until it turned out that it's not mobile-first. This was fixed in v2, now it's a great starting point. It doesn't have any extra (js) components but that's good - I prefer doing such stuffs with 3rd party plugins. Pure I'm trying this out right now. It's really tiny and works fine so far. I'm not sure I will use it in the future instead Base, time will tell. What I would really like to see is some kind of class name standardization. Almost all have different namings (e.g grids), so it takes some time to get in picture when switching projects.
    1 point
  35. Hi Steve, I am sorry, I haven't had time to work on Migrator for a while now. It is definitely not abandoned - I just need to find a good chunk of time to revisit a few things regarding Page fields and sort out remaining bugs. I will try to take a look at this sometime soonish. Regarding the last part of your question - Migrator currently creates new users/roles if the creator/modifier of the imported content was created by a user that doesn't exist on the new site. The problem of course is migrating the user's password - is this a requirement in your scenario? All the template settings etc are all handled completely by Migrator. I also have some aspirations to take Migrator a step further and allow it to connect directly to another site and sync changes, but if this happens it will be some time away and will likely be a commercial version of Migrator. I am not sure if that really helps you at the moment. I am away for the next few days and busy for the week or so after that, but might see if I can get a new version out before the end of the month - but no promises
    1 point
  36. processwire is love processwire is life
    1 point
  37. Thanks, I corrected and rewrote part of it.
    1 point
  38. When I need a quick info of assigned values I use a better readable version of var_dump: <?php /** * Original script from Stefan Eickhoff, 05.12.2002 * URL: http://aktuell.de.selfhtml.org/artikel/php/variablen/ * * @shortdesc output a better vardump. $outputMode: 1=Browser; 2=Commandline-Window; 3=StringVar; 4=file; * **/ function my_var_dump($v, $outputMode=2, $filename='') { // Ausgabe von var_dump ueber Output-Buffer in Variable einlesen ob_start(); var_dump($v); $content = ob_get_contents(); ob_end_clean(); // maximale Einrueckung ermitteln $m = 0; preg_match_all('#^(.*)=>#mU', $content, $stack); $lines = $stack[1]; $indents = array_map('strlen', $lines); if($indents) $m = max($indents) + 1; // Ausgabe von var_dump() an maximaler Einrueckung ausrichten $content = preg_replace('#^(.*)=>\\n\s+(\S)#eUm', '"\\1" .str_repeat(" ", $m - strlen("\\1")>1 ? $m - strlen("\\1") : 1). "\\2"', $content); // bei Array-Strukturen oeffnende Klammer { in neue Zeile $content = preg_replace('#^((\s*).*){$#m', "\\1\n\\2{", $content); // pre tags entfernen $content = str_replace(array('<pre>','</pre>'),'',$content); switch($outputMode) { case 1: // Output to Browser-Window echo '<pre style=" margin: 10px 10px 10px; padding: 10px 10px 10px 10px; background-color:#F2F2F2; color:#000; border: 1px solid #333; font-family: Lucida Console, Courier, monospace; font-size : 12px; overflow: visible;">'.$content.'</pre>'; break; case 2: // Output to Commandline-Window or to Browser as hidden comment echo isset($_SERVER['HTTP_HOST']) ? "\n<!--\n".$content."\n-->\n" : $content."\n"; break; case 3: // Output into a StringVar return '<pre style=" margin: 10px 10px 10px; padding: 10px 10px 10px 10px; background-color:#F2F2F2; color:#000; border: 1px solid #333; font-family: Lucida Console, Courier, monospace; font-size : 12px; overflow: visible;">'.$content.'</pre>'; break; case 4: // Output into a file, if a valid filename is given and we have write access to it //return $this->string2file(str_replace(array('>','"',' '), array('>','"',''), strip_tags($content)), $filename, true); break; } }
    1 point
  39. https://www.contentful.com/ This is still in beta and I just asked for an invitation, so I don't know how it is. But the concept sounds good. Edit: just want to add that something like this would be really easy to do with a PW site
    1 point
×
×
  • Create New...