Jump to content

flydev

Members
  • Posts

    1,355
  • Joined

  • Last visited

  • Days Won

    48

Everything posted by flydev

  1. Hello, I would like to present you a new module which aim to facilitate the productivity of your editors/publishers when working on ProcessWire. The idea begun when my co-worker told me that when typing in ProcessWire CkEditor field he was feeling "loosing motivation" when writing big wall of text and/or inspiration. So he opened his web-browser and show me a site looking to Wordpress - feel free to put your preferred emoji here - then he opened Gutenberg... typed some text and moving some "blocks". I understood immediately why he got this feeling with CkEditor. If you or your client feel like this guy, then you will love this module ! What is currently supported ? Features Auto-save Medias upload support HannaCode support Blocks Implemented Heading Image Paragraph Embed Quote Code Link Table (beta) Block Delimiter Raw HTML Note (custom block markup) Feature Request Frontend Edition And there you go for the preview - sorry I am to lazy and bad at typing text so I had a copy/pasta moment : Module featured in the ProcessWire Weekly #317 - Thanks @teppo
  2. You already know that you might have to backup and upgrade your site to the new master. Since this version (3.0.62) there have been a number of various fix including repeater.
  3. Hi, Which is the class derived from ? Can you paste all the module code ?
  4. How is created the CSV file ? I mean on which computer ? You can ran into memory issue because of line ending badly detected when for example a CSV file is created on MacOS, see : Other thing, try importing the data with TracyDebugger disabled. Other thing, instead of using getRecords() : $reader = \League\Csv\Reader::createFromPath('./file.csv', 'r'); $stmt = (new \League\Csv\Statement())->offset(2); foreach ($stmt->process($reader) as $record) { print_r($record); } or instead loading the whole file : $reader = \League\Csv\Reader::createFromPath('./file.csv', 'r'); foreach ($reader as $record) { print_r($record); }
  5. Sorry for the delay, did you sorted out your issue ? Indeed, yes, the folder is correct. Refreshing the modules should work as expected.
  6. You might copied the wrong folder. See my ./site/modules folder : (again, what @adrian said in his last comment, sorry for insisting too ?)
  7. Yes maybe the cache. Try to clear the compiled files and your browser cache then refresh the module. What I did is, downloading your module from Github, installed it, dumped the var with TracyDebugger - which you should install in a hurry - and tada, it seem it worked ??
  8. Yes, exactly what you did, copying the module from Wire to Site/modules then refresh and select the new module when asked. After a refresh : After a click on "InputfieldCommentsAdmin" link : Same thing for "FieldtypeComments" and the CSS should now load correctly. -------- Anyway, I suggest you to avoid this technique and to copy the CSS from the module and to paste it on your own principal main CSS file and tweak the CSS comments there. Once that done, you won't have to worry about keeping the module up-to-date.
  9. I tested it, and it look like its working, see my capture : - columns echo'd on frontend - ok - debug dumps - ok
  10. Not really a direct answer to your issue, but using HannaCode could be a solution. Another approach, I don't know how your custom module works, but you could achieve it by extending your module or coding a little custom TextFormatter.
  11. Or you could also inherit the variable in your closure (anonymous function) from the parent scope (see the use() keyword) : wire()->addHookBefore('LoginRegister::createdUser', function($event) use($myRole) { ...
  12. You might can explain what you are trying to achieve ? Maybe it's copying/editing the module is not required ?
  13. I have the same question than @psy but about RockFinder 1 ? I think I have already my answer.. Anyway, thanks version 3 @bernhard ??
  14. What @Ivan Gretsky said in his second paragraph. You will want to build your backend (ProcessWire) with a RestAPI, catching/storing media from Internet on the server and delivering content/data/media to your mobile apps (hybrid, native, whatever). The apps will fetch the data from there periodically and save theses data on the local Internal/External storage of the user device. I personally use heavily SQLite as storage with my mobile apps. For the Youtube video, you can build something customized. You will not get stats about the viewers on Youtube but the end-user will have access to the media once synchronized. The idea is the following. When you upload a video on Youtube, you then fetch the video from the backend and save it on the server. Then when the app will synchronize the data, it will get and store the media on the device which will be played offline inside your app with the media player of the framework used. If the idea of catching, converting and storing the media directly from Youtube is against any Terms of Services, you could build and upload manually a compressed version of the media on the server. The goal is to have the media on the server whatever the method used... And anyway, the user will have to manage to get an access Internet from time to time to be able to download/update the app from the store or to synch the data from the backend. Also, shipping the media directly in the app (when downloaded from the app store) is a bad idea. You will ran into the issue where your binaries are limited in SIZE. Example, https://help.apple.com/app-store-connect/#/dev611e0a21f About the app development, I think you should start with an hybrid one, it will be a good first experience and will be "quite easy" to build as the learning curve will be low and, you have already the competence required for it (HTML5, JAVASCRIPT, CSS). You will have to "just" learn how to put it in a native container.
  15. Salut Jeannette, I can help you to keep your shop up-to-date and improve it. I own a license of PadLoper and wrote somes custom payment processing methods and others improvements. I live in France, near Bayonne - meeting ourselves could be easy. I will send you my phone number / mail address by private message, and if you feel then we can call us tomorrow. You too ! ??
  16. @jacmaes you can simply add a new condition if the the GET var level is a string ? let's try : if($input->get->level && is_array($input->get->level)) { // level as array given $level = array(); foreach($input->get->level as $id) $level[] = (int) $id; // sanitize to INTs $level = implode('|', $level); // convert to 123|456|789 string, ready for selector } elseif($input->get->level && is_string($input->get->level) && $input->get->level !== '') { // level as string given // can be optimized (sanitizer) $level = array(); foreach(explode('|', $input->get->level) as $id) $level[] = (int) $id; // sanitize to INTs $level = implode('|', $level); // convert to 123|456|789 string, ready for selector } else { $level = ''; }
  17. Try range() in your selector : $selector = "range=(date>=1583017200, date<=1589493599)"; just replace the timestamps with your own.
  18. Some sorts of hypotheses. 1 - Yes, too many bookmarks could cause problems ?? 2 - The potential problem is: the size of the data stored in this session (session are written to disk, and re-write every request) ?? 3 - The practical limit will be the memory that PHP can take on the server 4 - What @MoritzLost explained I hope it give you an idea of the potential issue with a lots of pages.
  19. Hey @matjazp It could be possible to dig into this a bit further ? ??‍♂️
  20. function convertYoutube($string) { return preg_replace( "/\s*[a-zA-Z\/\/:\.]*youtu(be.com\/watch\?v=|.be\/)([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i", "<iframe src=\"//www.youtube.com/embed/$2\" allowfullscreen></iframe>", $string ); } Source: SO ?
  21. @JeevanisM Look like you use the wrong youtube URL. Try to see how is composed your URL and then be sure that you link youtube's video with the /embed endpoint as it allow cross origin request. Check : bad: https://www.youtube.com/watch?v=kSLhay7msTI gud: https://www.youtube.com/embed/kSLhay7msTI
  22. Hi @Ralf, sorry for the delay. Instead of checking for the $input->post->submit, you should check if the response from the ReCaptcha is green. So, instead of : // form was submitted so we process the form if($input->post->submit) { // Do cool stuff here <<<<-------- I cannot get in here } Do : // form was submitted so we process the form if($captcha->verifyResponse() === true) { // Do cool stuff here <<<<-------- you will get here now } Also, try to call the getScript() method on the end of your main markup page. I mean, just before the </body></html> tags. And to avoid calling the module every page request, you can for exemple, check if the current page's template is the contact one and then call the module's getScript() method : <html> <head> </head> <body> ... <!-- other tiers scripts exemple --> <script src="jquery.js"></script> <script src="anotherscript.js"></script> <?php if($page->template->name === 'contact-tpl') { // google recaptcha required script echo $modules->get("MarkupGoogleRecaptcha")->getScript(); } ?> </body> </html> Ping me if you need further help.
  23. Interesting, on my side for every project, it's : TracyDebugger because coding without it it's like masochism AutocompleteModuleClassName super-man backend module BreadcrumbDropdowns super-man backend module VersionControl for versioning page's content Migrations to keep control between dev and prod sites Duplicator for backups and migrations @JeevanisM you should give a try to the last one ???
  24. Hi @SeriousUser OK, the core ship what's needed FormBuilder again FormBuilder SEOMaestro MediaManager RepeaterMatrix ProCache Backup it with Duplicator ? Thanks, you too ??
  25. I am sure you need some knowledges to make something nice without spending a buck in an already built-in theme. Stable ? for a vanilla blog, the core might be green depending the version, the plugins eco-system is red. Intuitive ? ... Booooooo to me, I fall into a troll ! ?
×
×
  • Create New...