Jump to content

da²

Members
  • Posts

    405
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by da²

  1. Transitioning from procedural development to object-oriented development is primarily a matter of approach and key principles to follow. It involves learning to code differently, but the code itself is not the core issue; it is the way the application is structured that is important. It's not enough to create a class to do OOP; for example, if you put 5000 lines of code in a class, you are probably not adhering to OOP principles. ? I would advise you to look into the KISS principle, read articles that compare inheritance with composition, study the role of interfaces and abstract classes, study Design Patterns, and represent your programs with UML class diagrams before you start coding (at least during your learning period). A book that definitively gave me a leap forward is "Design Patterns" from the Head First series. This book is absolutely magnificent for understanding the OOP approach in record time while learning the essential Design Patterns and the reason for their existence.
  2. What web server and OS do you use? Error 500 is a web server error, and errors are logged by default. The log file location depends on OS and web server, for example in xampp Windows with Apache, it's in xampp/apache/logs/error.log, in Debian it's in /var/log/apache2/error.log...
  3. Hi, I don't know but maybe template caching requests some module to be installed in web server, like URL rewriting. Check your web server logs and you'll find the reason of this error.
  4. Maybe open a bug report for this, that looks like this is not intended.
  5. I can't use a hook like Inputfield::render because I just found that $inputfield->collapsed = Inputfield::collapsedLocked; is not working (I still can edit the field). It's working only from a hook ProcessPageEdit::buildForm or buildFormContent. I'm investigating how to implement this with buildForm, if you have an idea don't hesitate, I'm wasting so much time on this simple feature... ? I also have to check if the field is inside the repeater, because there is also another instance on the page and I don't want to modify it.
  6. Thanks, I had to update to dev branch to make it work. I'm still interested to know how to do this with a hook, because on another template the dependency is related to a parent page field value.
  7. Hi, When I click the "add" button on this repeater I want to hide a field inside depending on the value of other fields in the same page (but outside the repeater). So it should start with a hook and end with a: myInpufieldField->collapsed = Inputfield::collapsedHidden; But I can't find a way to access the input field. And not sure what kind of hook to use (ProcessPageEdit::buildForm, Inputfield::render, InputfieldRepeater::render°. I struggle to access the inputfield inside an item of a repeater... Any idea?
  8. Yes Ubuntu adds their own philosophy over the Gnome desktop. With Gnome in Manjaro Linux I can move the dash in 4 screen edges and have more options to tweak. You could try Manjaro since it's based on the rolling release Arch Linux distribution, so you get only recent versions of each software. It's not considered as stable as Ubuntu tho (in theory, because of rolling release philosophy), but practically there's really few chances to have a serious issue. In the past I ran Adobe CS5 under a virtualized Windows with Virtual Box and that was working fine, I mainly used Photoshop and Illustrator. Maybe make a try. It's necessary to enable CPU virualization in BIOS and activating some options in VirtualBox (like graphical acceleration) after creating the Windows VM and installing the package virtualbox guest additions.
  9. @poljpocket The same code works if called from another class. The above code is incomplete to create a page, and just illustrates that template is empty when called from static method in the custom page class. If I fully create the instance, I end with that strong bug in admin.
  10. @BrendonKozNo, from a template if I remember good. The method create() is not complete in my post, the page is saved at the end and I have these strange bugs in admin, so the code executes well, and the same code in another class (not the custom page class) is working fine. Looks like a bug in Pw, maybe something related with PHP namespaces and template retrieval.
  11. Hello @BrendonKoz, On the code above I didn't copy the namespace and use statements but this is not the issue, instead of using ProcesswireTemplate I can directly use strings but this is not working either. EDIT: I've edited my code to remove this ambiguity, using strings instead of class ProcesswireTemplate.
  12. Hi, I post here before to report an issue, just in case I'm missing something (using PW 3.0.229). To create instances of a custom page class, I'm adding a static method on it: class IndividualCarChoicePage extends Page { public static function create(UserPage $user, ChampionshipPage $championship): void { $carChoiceParent = wire()->pages->get("parent_id=$championship->id, template=individual-car-choices"); $carChoicePage = new IndividualCarChoicePage(); $carChoicePage->of(false); $carChoicePage->template = "individual-car-choice"; $carChoicePage->parent = $carChoiceParent; $carChoicePage->title = $user->displayUsername; DevUtils::prettyPrintObject($carChoicePage); exit(); } } But the template is not defined: ProcessWire\IndividualCarChoicePage Object ( [id] => 0 [name] => [parent] => /assetto-corsa-competizione/championnats-acc/championship/choix-de-voiture/ [template] => [title] => MyName [data] => Array ( [title] => MyName ) ) And then the admin is corrupted: The blue page is the parent page of the newly created, you see the arrow on left indicating it has a child, but this child is not displayed. And there's not way of solving this issue, I can not delete the parent page "Choix de voiture", the trash refuses to delete it! Now, if I move this code to another class, that is not extending Page and not located in /site/classes/ directory: IT WORKS! The new page is created with its template. Why?
  13. About using Paypal for payment, better solution than using payment buttons is to use Paypal checkout SDK. Then you can dynamically create any order you want and validate the payment. EDIT : this SDK is now deprecated and replaced by REST API.
  14. Hello @HarryWilliam It looks like padloper is a e-Commerce module.
  15. @hellomoto It's a common error. You are outputting data before the headers, but headers must be the first thing to output. Headers are sent by ProcessWire, but you echo something before to include PW: $boot = realpath($boot); echo $boot; // DO NOT echo something... require_once $boot;// $pw_dir.'/index.php'; // ...BEFORE PW sent headers. Also why do you use this code and not a simple include at start of file? include __DIR__ . "/../index.php";
  16. Hello, Is your template named "repeater"? (I don't really understand the "page object class: RepeaterPage" here, I don't see this information on my side but am not on last PW version, I imagine this is the custom class associated with this template, but RepeaterPage is a PW class)
  17. Hello, The pw-replace must be in template-file.php and the id in _main.php. Documentation.
  18. Nice, for a beginner it's a nice way to quickly discover PW mechanics. And probably an experimented user can also find some interesting features he doesn't already know (I already see some of them). ?
  19. On my side I use a script to upload site, there's 2 parts: - A Ant project that synchronizes some folders/files from the source code to a "target" directory, add a version number and transpile SCSS to CSS, TypeScript to JS... - A bash script that runs the Ant project, and if no error, use rsync to synchronize only changed files with the production server. It uses a file listing exclusions so I'm sure the site/config.php will never be uploaded, like the sessions or the cache. This script is a Linux one because Linux have those powerful integrated tools like rsync, but I'm running Windows and executing the script with Microsoft Linux WSL. I have another bash script for staging server, it's the same as for production except it also pushes a clean version of my local ProcessWire database to the staging server.
  20. You can do it with a module or manually. https://processwire.com/modules/process-wire-upgrade/ https://processwire.com/docs/start/install/upgrade/
  21. If you don't want to add a library, why not using a simple XHR? That's only a few line of JS and PHP. On what part are you struggling exactly?
  22. Hello, updating PHP means you need to install a newer version of PHP, it's not directly related to ProcessWire in first instance. It depends of your OS (Windows, Linux), it also depends if this is a shared host or a dedicated server. In a shared host you usually have an administration interface provided by your hosting service to manage your server. In a dedicated server you generally do everything yourself. About ProcessWire you have to check that the currently installed version is compatible with the PHP version you plan to install. Probably it won't be OK because you talk about years. If you plan to install PHP 8+ you'll also need to upgrade PW.
  23. @August I use PhpStorm, in my commit window I just have to right click a file or a set of files, and create patch: Of course you can do the same with vanilla git tools, by command line or probably with Git GUI.
  24. @August Because I'm using big tables that are filled dynamically and locked in admin and the result is a horizontal scrollbar on the whole page: In that case I create a git patch file, so if I update PW to a version that doesn't fix the issue, I then apply the patch. I also document on my wiki what's the goal of each patch.
  25. Hello @August Maybe you can add your suggestion to my issue report.
×
×
  • Create New...