Jump to content

Noel Boss

Members
  • Posts

    170
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by Noel Boss

  1. This. I think these two statements summ it up pretty well – @Knubbi's post is totally legit imho. Those who argue otherwhise (expect for @bernhard's point of PW becoming more popular not beeing a goal at all) miss the point I guess – yes you can do all things with PW and, yes we don't want a Drupal front-end-hell and for sure no second WP – BUT for people looking into PW there could be better ways to start: I think @joshuag provied a solution that has both worlds – but it involves both Developers and Ryan. A strong Site-Profile market: Profile should have a well visible market where they could also be sold … directly integrated into the PW setup and processwire.com Like Themes (which are often bundling other modules f.e. shopiing funcitonality etc.) they could be very powerfull, within their provided scope of Templates and Fields, as are WP Themes – Site Profiles come with the dependencies they need: for example Blog functionality etc. and provide a fast starting point for those who need what the profile combines. At the same time, they stay true to PW as they are just ready-made implementations of PW, not bloating the core or changing the way PW works One can still start with a blank site I think, what we miss is, that WP does not really work any different – there is a system and then there are some Themes on top of it providing basic functionality – But only well integrated with the Base-System. As soon as you want to add this or that – it requires manual work or it might look goofy or breaks stuff. We have the same situation with PW Profiles: We don't have to change the way PW works, what we need is strong support for readymade Sites, coming together with a few PW-Templates and Fields. Now this is not where most of us work as @joshuag said – but its a totally valid market and could easily life side by side with those crafting sites from the blank slate.
  2. Thats not practical since the "overrides" would need to be at so many places. With Uikit you've got LESS where you inject your colors etc. at various places. You replace code, not just override it. Simple overrides would be much more complicated and and could potentially break on an updated base theme. Replacing the whole CSS makes sence. BUT, you're suggestion just triggered an idea: Publish it as a propper Module and replace the CSS of the AdminThemeUikit with a hook… This way, AdminThemeUikit would still be technically the Theme, but the CSS (and potentially JS) would be entierly replaced by the "Child" Theme. In this way, one would also not need to change Settings etc… Brilliant! But I think, the required Method is not (yet) hookable… I guess it is hookable, since it's public…
  3. Thanks very much! Looks very clean! I got the following message: No such coupon: 8525
  4. Oh man, that looks amazing! Great times being a part of the PW Community!
  5. There was an issue with installations in subfolders – wire('config')->urls->AdminThemeUikit returned the subfolder twice, resulting in wrong css urls. The latest release 0.1.4 fixes that as well…
  6. Oh boy, what a buggy release… @wbmnfktr Release 0.1.3 should fix it: https://github.com/noelboss/AdminThemeBoss/releases/tag/0.1.3
  7. Hi @louisstephens I have just updated the GitHub repository with a possible fix. Could you try? You also need to select Uikit as the theme in your profile beforehand…
  8. @ryan I have published this theme on the modules repo with the class name AdminThemeUikit in the assumption, it would use my provided title (Admin Theme Boss) as url (and classname) – but now it's listed as https://modules.processwire.com/modules/admin-theme-uikit – what I did not intend. I fear this will lead to confusion, especialy when installing using the backend. edit: Okay, I found out I am able to change the classname – but the url remains modules/admin-theme-uikit – which would probably be better if you or an admin could change it to modules/admin-theme-boss – Sorry for any inconvenience I might have caused. This Question Remains: This theme is basically the same as your AdminThemeUikit with slight modifications of the config and of course updated CSS. I used the same classname but a different folder (AdminThemeBoss) on my system since I did not find a way to extend AdminThemeUikit to let existing modules (like AOS) keep using the hooks of AdminThemeUikit. I tried to extend AdminThemeUikit but then, the hooks would not have any effects. How could I use my own classname but still keep the modifications of AOS etc? Any suggestions on how to proceed with the classname?
  9. Admin Theme Boss A light and clear theme based on Uikit 3 Features Five unique color options Beautifully redesigned login screens Modern typography using Roboto Condensed Extended breadcrumb with edit links Extends AdminThemeUikit, so you can continue using all current and future AdminThemeUikit features Option to activate theme for all users Compatibility with AdminOnStreoids and other third party modules Updated and Releases There is a shiny new release page where you can subscribe to updates for new releases of AdminThemeBoss. Color Variants: ProcessWire Blue Dark Black Vibrant Blue Happy Pink Smooth Green *new with 0.6.1* Requirements Requires a current ProcessWire version with AdminThemeUikit installed and activated. Installation Make sure AdminThemeUikit is activated Go to “Modules > Site > Add New“ Paste the Module Class Name “AdminThemeBoss“ into the field “Add Module From Directory“ Click “Download And Install“ On the overview, click “Download And Install“ again… On the following screen, click “Install Now“ Manual Installation Make sure the above requirements are met Download the theme files from GitHub or the ProcessWire Modules Repository. Copy all of the files for this module into /site/modules/AdminThemeBoss/ Go to “Modules > Refresh” in your admin Click “Install“ on the “AdminThemeBoss“ Module
  10. ProcessWire & Vue.js — a Lovestory Introducing the all new ICF Conference Website The new ICF Conference Page — Fearless » What would happen if we were equipped to fearlessly face the daily challenges and live a life without fear? « This question is at the core of our next ICF Conference in 2019 in Zurich. Its also the question we set out to answer in terms of developing the new website; the all new ICF Conference website is our most advanced website in terms of technology, designed to take advantage of the latest web-technologies. Its a brand new design powered by a lean setup, using ProcessWire for easy content management and a slick frontend based on Vue.js, Quasar and a heavily customized Uikit theme. Technology-stack — From backend to frontend, technologies that are fun, easy and fast to develop with We built on the ICF Ladieslounge website as a solid foundation and took our learnings from building our last Conference Booklet PWA (Progressive Web App) and applied it to the new website. Some highlights of the new ICF Conference website: Completely decoupled backend and frontend Custom design based on Uikit frontend framework Changing of languages happens instantly, no page-reload required Easy content updates thanks to ProcessWire All data is transferred using a single request returning custom JSON » Continue reading on Medium And please don't forget to clap and share:
  11. The latest changes to the CSS broke my edit buttons ([data-feel]). Now I know, I could just override them, (what I technically do) but since these are of a higher css-specify I would need to make the css selectors stronger. Your CSS even includes an !important ? Would it be possible to disable button styling but keep the Lightbox styles separate? Or, even better, in my view, the edit button should even come without any styles from the module, only the lightbox should. Because the edit buttons reside in a design, the lightbox gets added, is kind of like the backend. The edit button as a link is enough – if someone want's to style it, okay, but lets leave this to the author. IMHO this is the process-wire way. Style whats necessary but leave everything frontend related to the author. What do you think? Great module BTW, I like it alot!
  12. Maybe a bit late, but I solved this with a Module: https://gist.github.com/noelboss/7815ff2fea96b41544672f5e1a15f1f5 Usage: wire('modules')->get('ProcessPageView')->sendFile($page, $filename); I remember doing it that way, since I couldn't hook WireHttp or something and I needed to look up the file using the filename (protected site, using repeaters etc.) – you could also adapt it to accept a PageFile or PageImage or a path even… Maybe a bit more straight forward.
  13. Yep, just saw the comments and version ? missed that from memory… How about setting up a workflow: If @ryan adds new features etc. he'd notify a mailing-list and whoever has time could add the stuff to cheatsheet? How could we breath life into it again? Because I think it's already great, it would just need some more love ?
  14. Hello everybody. Last night (no sleep) I was thinking about the state of the PW documentation and Cheatsheet in general. How about we relaunch this project, make it open and PW based? There seems to be so much knowledge and doc buried in Blog Posts and added in newer Versions of PW but Cheatsheet and Docs don't seem to reflect these… So i thought about building a new version with the following: New Cheatsheet based on PW Open for contribution by community, the PW community is so great, I think we could keep it uptodate with community effort… Indicate what Version a feature was added Comments on features etc. Links to Blog Articles, PW Weekly & useful Forum entries Example Implementations Hooks and Hook Recipes Maybe open API? What are your thoughts? Any ideas about how to implement stuff? Am I the only one who regularly finds himself tracking down blog-posts, poking for infos in the forum, comments inside files etc? I'd be happy to kickstart and support the project…
  15. Hi Kixe Great module, thanks! Saved my site this weekend ? I have two suggestions as I reviewed my settings. I noticed someting that would probably be easy to implement and at least for me usefull: – No maximum limit of backups (max): why would that option be limited to 100? If I want to store 6hours backups for 3 months, 100 is not enough. - More flexible remove option (deadline): Provide an integer 1-99 plus a intervall: Hours, days, weeks, months years. This way, one can tailor backups and removal very flexible. The current limitations seem very arbitrary for me. On last thought: If it is possible, it would be nice if one can specify a time at which the backup would start – I know, this would just be an indication but still, one could plan the backups for say during night.
  16. I have multiple files on said page and inside repeaters, so this does not work…
  17. Very nice solution – i had the same issue with user profile pictures … this could work… On one of my pages I have a similar setup, I provide protected files using the page and the filename and then manually serving it using the render hook… Would need to look into the code… Something like > pathtothepage/?f=filename.jpg – because you know the page, you can access the file with PageFilesManager ($page->filesManager) and then send it using http://processwire.com/api/ref/wire-http/send-file/
  18. Thank you Kogondo! BTW, this is one of the most useful Modules out there! Thank you for developing it!
  19. Hi @kongondo No, this works just fine. But this is "pasted PHP code" – since you introduced the option to specify files on the dev Version, it would be nice to use this option also in the frontend; Current status: Dev Version: – include files using module: Backend √ + Frontend X – Past Code: Backend √ + Frontend √ Master Version: – Include files using module: Backend X + Frontend X – Past Code: Backend √ + Frontend √ Desired status ? Master Version: – include files using module: Backend √ + Frontend √ – Past Code: Backend √ + Frontend √
  20. I use this hook to inject edit icons into the breadcrumb. Unfortunately the options exposed by $this->wire('breadcrumbs') are not great, no page id's etc… so it's kind of a hack… public function init() { wire()->addHookAfter('AdminThemeUikit::renderBreadcrumbs', $this, 'renderBreadcrumbs'); } /** * Render a list of breadcrumbs (list items), excluding the containing <ul>. * * @return string */ public function renderBreadcrumbs(HookEvent $event) { if (!$event->return) { return; } $process = $this->wire('page')->process; if ($process == 'ProcessPageList') { return ''; } $breadcrumbs = $this->wire('breadcrumbs'); $out = ''; // don't show breadcrumbs if only one of them (subjective) if (count($breadcrumbs) < 2 && $process != 'ProcessPageEdit') { return ''; } if (strpos($this->layout, 'sidenav') === false) { $out = '<li>'.$event->object->renderQuickTreeLink().'</li>'; } foreach ($breadcrumbs as $breadcrumb) { $title = $breadcrumb->get('titleMarkup'); if (!$title) { $title = $this->wire('sanitizer')->entities1($this->_($breadcrumb->title)); } $edit = ''; $icon = $event->object->renderIcon('pencil'); if (strpos($breadcrumb->url, 'open=') > 0) { $pageid = explode('open=', $breadcrumb->url); $pageid = end($pageid); if (wire('pages')->get($pageid)->editable()) { $edit = "&nbsp;&nbsp;<a href='../edit/?id=$pageid'>$icon</a>"; } } elseif (strpos($breadcrumb->url, '../') !== false && wire('process')) { $pageid = wire('process')->getPage()->parent->id; if (wire('pages')->get($pageid)->editable()) { $edit = "&nbsp;&nbsp;<a href='../edit/?id=$pageid'>$icon</a>"; } // modify open $breadcrumb->url = "../?open=$pageid"; } $out .= "<li><a href='$breadcrumb->url'>$title</a>$edit</li>"; } if ($out) { $out = "<ul class='uk-breadcrumb'>$out</ul>"; } $event->return = $out; } @ryan maybe this would be a useful addition to AdminThemeUikit?
  21. True, it's a great module. But does it work for you in the frontend with files? Because as @kongondo said here:
  22. This is the description for the dev version. Did not work for me. Ended up with the master and: namespace Processwire; return wireRenderFile('fields/'.$field->name, ['page' => $page]);
  23. Would be nice if it is consistent – I use this Field for both, backend and frontend and would love to have the code inside php files.
  24. Hi @ryan Thanks alot for the great plugin. I've implemented it and customised it well until this point Now I'm stuck trying to add a user-image to the registration form. The first error is triggered by LoginRegister.module line 438: $form->processInput($this->wire('input')->post); The problem is, that when it's submited, the user does not exist yet, so there is no upload-path at FieldtypeFile.module > hookProcessInput > line 634 Fatal error: Uncaught Error: Call to a member function path() on null in /home/ubuntu/workspace/www/wire/modules/Fieldtype/FieldtypeFile.module:634 Stack trace: #0 /home/ubuntu/workspace/www/wire/core/WireHooks.php(822): ProcessWire\FieldtypeFile->hookProcessInput(Object(ProcessWire\HookEvent)) #1 /home/ubuntu/workspace/www/wire/core/Wire.php(442): ProcessWire\WireHooks->runHooks(Object(ProcessWire\InputfieldImage), 'processInput', Array) #2 /home/ubuntu/workspace/www/wire/core/InputfieldWrapper.php(809): ProcessWire\Wire->__call('processInput', Array) #3 /home/ubuntu/workspace/www/wire/modules/Inputfield/InputfieldForm.module(146): ProcessWire\InputfieldWrapper->___processInput(Object(ProcessWire\WireInputData)) #4 /home/ubuntu/workspace/www/wire/core/Wire.php(383): ProcessWire\InputfieldForm->___processInput(Object(ProcessWire\WireInputData)) #5 /home/ubuntu/workspace/www/wire/core/WireHooks.php(723): ProcessWire\Wire->_callMethod('___processInput', Array) #6 /home/ubuntu/workspace/www/wire/core/Wire.php(442): ProcessWi in /home/ubuntu/workspace/www/wire/modules/Fieldtype/FieldtypeFile.module on line 634 Error: Uncaught Error: Call to a member function path() on null in /home/ubuntu/workspace/www/wire/modules/Fieldtype/FieldtypeFile.module:634 Stack trace: #0 /home/ubuntu/workspace/www/wire/core/WireHooks.php(822): ProcessWire\FieldtypeFile->hookProcessInput(Object(ProcessWire\HookEvent)) #1 /home/ubuntu/workspace/www/wire/core/Wire.php(442): ProcessWire\WireHooks->runHooks(Object(ProcessWire\InputfieldImage), 'processInput', Array) #2 /home/ubuntu/workspace/www/wire/core/InputfieldWrapper.php(809): ProcessWire\Wire->__call('processInput', Array) #3 /home/ubuntu/workspace/www/wire/modules/Inputfield/InputfieldForm.module(146): ProcessWire\InputfieldWrapper->___processInput(Object(ProcessWire\WireInputData)) #4 /home/ubuntu/workspace/www/wire/core/Wire.php(383): ProcessWire\InputfieldForm->___processInput(Object(ProcessWire\WireInputData)) #5 /home/ubuntu/workspace/www/wire/core/WireHooks.php(723): ProcessWire\Wire->_callMethod('___processInput', Array) #6 /home/ubuntu/workspace/www/wire/core/Wire.php(442): ProcessWi (line 634 of /home/ubuntu/workspace/www/wire/modules/Fieldtype/FieldtypeFile.module) This error message was shown because: site is in debug mode. ($config->debug = true; => /site/config.php). Error has been logged. Administrator has been notified. $page as well as $pagefiles does not exist: /** * Hook into the InputfieldFile's processInput method to set the upload destination path. * * This hook originates with the setupHooks method above. * * @param HookEvent $event */ public function hookProcessInput($event) { /** @var InputfieldFile $inputfield */ $inputfield = $event->object; /** @var Page $page */ $page = $event->options['page']; // < Page does not exist > NullPage /** @var Field $field */ $field = $event->options['field']; $pagefiles = $page->get($field->name); // so also field does also not exist… // there should be a check if $pagefiles exists, because: $inputfield->destinationPath = $pagefiles->path(); // …therefore $pagefiles is NULL and ->path(); throws an error. } I tried to provide a path using a hook: wire()->addHookBefore('InputfieldImage::processInput', $this, 'hookProcessInput', ['priority' => 4]); /** * Hook into the InputfieldFile's processInput method to set the upload destination path. * * This hook originates with the setupHooks method above. * * @param HookEvent $event */ public function hookProcessInput($event) { /** @var InputfieldFile $inputfield */ $inputfield = $event->object; $inputfield->destinationPath = wire('page')->filesManager->getTempPath(); } But this throws another error: Error: Exception: Invalid image (in /home/ubuntu/workspace/www/wire/modules/Inputfield/InputfieldFile/InputfieldFile.module line 425) #0 /home/ubuntu/workspace/www/wire/core/Wire.php(383): ProcessWire\InputfieldFile->___processInputAddFile('leo.png') #1 /home/ubuntu/workspace/www/wire/core/WireHooks.php(723): ProcessWire\Wire->_callMethod('___processInput...', Array) #2 /home/ubuntu/workspace/www/wire/core/Wire.php(442): ProcessWire\WireHooks->runHooks(Object(ProcessWire\InputfieldImage), 'processInputAdd...', Array) #3 /home/ubuntu/workspace/www/wire/modules/Inputfield/InputfieldFile/InputfieldFile.module(602): ProcessWire\Wire->__call('processInputAdd...', Array) #4 /home/ubuntu/workspace/www/wire/modules/Inputfield/InputfieldImage/InputfieldImage.module(1304): ProcessWire\InputfieldFile->___processInput(Object(ProcessWire\WireInputData)) #5 /home/ubuntu/workspace/www/wire/core/Wire.php(383): ProcessWire\InputfieldImage->___processInput(Object(ProcessWire\WireInputData)) #6 /home/ubuntu/workspace/www/wire/core/Wi This error message was shown because: site is in debug mode. ($config->debug = true; => /site/config.php). Error has been logged. Administrator has been notified. What do you suggest? Do you see a path to success in adding profile pictures to the module? I could make it work with an existing users profile by way of hooks…
  25. I have just released an updated version without autoload. I also added a few helpfull closures to the readme, as well as hook-able methods: https://github.com/noelboss/PageQueryBoss#helpfull-closures--tipps
×
×
  • Create New...