Which front end technology I use with drupal 8 backend? - drupal

One of my client wants to integrate drupal 8 as a backend development and they asking for which framework is good for the front end Development.
As per my understanding, I Suggested React JS for Front-End Development. So Whats your Suggestions for the same?

I hate to say that but it actually depends of what you need to do.
If you need a Headless drupal, yeah i guess reactjs is a good idea, but if you dont, you need to know that Drupal 8 has by default a pretty good Front-end workflow with Twig templates (front-end without php), and you also got many good themes including useful tools such as gulp, browser sync, bower, and so on. Personnaly, I would recommand you to start with Radix theme.

Related

Custom Wordpress Development - building a custom page builder

I’m looking for some advice when it comes to custom CMS development.
Wordpress has been perfect for me before a became a developer. I used to use page builders like Elementor & WPBakery.
When developing within WP, would I need to develop a page-builder for people (without coding knowledge) to edit their pages? I’m aware of Gutenberg, is that able to edit coded pages or would it not be able to read anything as it wasn’t built using Gutenberg?
If so, would it not be better to develop a Custom CMS similar to Wordpress? That way you are able to offer a blank canvas CMS that you can brand as your own?
Thanks in advance.
Interesting question! It will require some prior research on your part, as there is no obvious answer. Below are my thoughts on the matter, but it the decision is yours to make, as the project requirements are unique and also the time you can invest in it.
When developing within WP, would I need to develop a page-builder for people (without coding knowledge) to edit their pages?
A: No. Gutenberg is perfect for this.
I’m aware of Gutenberg, is that able to edit coded pages or would it not be able to read anything as it wasn’t built using Gutenberg?
A: It won't read anything that wasn't made with it, but you can try recreating those pages with it. Depends on the design, but it shouldn't be hard. If it is a site for a client, you can ask them to recreate one or two pages and see how they feel. They will answer this question for you :)
That way you are able to offer a blank canvas CMS that you can brand as your own?
A: You can "rebrand" the WordPress admin with such a plugin
If so, would it not be better to develop a Custom CMS similar to Wordpress?
A: It all depends on how comfortable you feel with WordPress and Gutenberg, code-wise. You can do pretty much anything, if you understand the PHP, React (Gutenberg is written in React) and logic behind WP, so you won't need a custom CMS. Again, it all depends on your skills with the technologies. If you rate yourself a 10/10, no need to think about it, but I guess you wouldn't be asking this question, if you were.
Pros of going with WordPress and Gutenberg:
You already have all the necessary tools.
A ton of supporting plugins, already developed by other people.
WordPress has one of the most well-maintained codebases out there, so you will have a great start, compared to building a CMS on your own. Even if you decide to create your own plugin, you have a set of rules and practices that you need to adhere to, which is great for starters. You also have all the necessary components - DB, back-end and front-end ready.
Gutenberg is pretty stable right now and you can install the plugin, because the code that is implemented in WP core is not the latest. It is great for building pages, when you don't know code. Look into all the different blocks it offers by default and think if they cover your requirements. There are also a lot of extra blocks you can add.
The popularity of Gutenberg is growing and the community is slowly, but surely moving in that direction, so making this project with Gutenberg would benefit your future career as a WP developer, if you are interested in building one.
On the point of growing community, you will find answers to a lot of the common issues.
Pros of building your own CMS:
You will see the whole process - DB design, connection and expanding. Back-end and front-end development, user authentication and administration. For me this is a con, because there are many unexpected problems, which WP has solved. It is also very time-consuming, so if you have limited time for this project, I would advise against this.
You can make a slim CMS, which covers only your requirements and you will know the ins and outs of the code, so any future changes and expansions will be easier for you to make.
As you said, it will be easier to brand as your own and you can build the Admin side of it however you want, even though there are defined UX standards, which won't allow you to go very wild. It will probably resemble the WP admin in one way or another. Check out these admin page designs, for reference.
Conclusion
Personally, I would go for WordPress and Gutenberg, because I have had mostly bad experiences with building everything on my own. I am not a good enough coder and that is OK, because I can use all of these tools, built by awesome developers before me. So please keep in mind that building your own CMS will take a lot of time, if you want to make it stable and secure. There are also alternatives to WordPress.

Should I avoid using a CMS if I want to be able to quickly make good sites with more features/options to customize than Wordpress?

Should I avoid using a CMS if I want to be able to quickly make good sites with more features/options to customize than Wordpress?
I want to become a better webdeveloper and able to quickly make good, fast, secure websites with lots of functionality without being limited so as I'd be with Wordpress. I don't see writing lots of plug-ins to reach the same functionality as a nice solution for doing my own programming.
I have written a few games, quizzes and other scripts I'd like to be able to recycle or easily adapt to work with the CMS.
I currently have a multi-lingual website that works with a /nl/ and /en/ part, that has a few self-written games I wrote in PHP.
CakePHP has a very good CMS called Croogo. It's still quite a young project (still in beta and being actively developed), but the great thing about it is that its a Cake app so it's coded to the well-documented Cake standards.
Whereas customizing/extending Wordpress, Joomla, Drupal et al would mean you'd have to invest a huge amount of time learning about their respective frameworks, all for the sake of one part of any given website (the CMS), if you learn CakePHP, you're learning a much more advanced and flexible framework that can pretty much be used to do anything well beyond the confines of CMSes.
If you learn Cake (or if you already know Cake) you'll find that you already understand Croogo without having to invest much additional time at all. Code you write in Cake can easily be packaged to be a Croogo plugin and even if Croogo doesn't stay around for the long term (I hope it will!), it wouldn't be difficult to re-factor all the plugins you've written to work in any other Cake-based CMS that comes along in the future, or even your own Cake apps.
Croogo is pretty basic, but quite powerful. It has a Wordpress-like feel to it, it supports nice URLs via an amazing reverse-routing system, the /en/ /nl/ language thing you mentioned works out of the box and it's very easy to get any of the huge array of Cake components and plugins working in harmony with the CMS through the use of hooks.
I'm currently working on a project using joomla and there are a ton of custom features that I need to implement. I usually have to create a plugin or module in that case. It's a pain. I'd much prefer doing most of this from scratch instead of hacking at the code. If I had a choice, I would not use a CMS. I hate them.
I think ultimately it's about long term support. When you build a custom CMS in cake or another framework it is much easier and faster for you to customize and build the way you wan too. This works great if this is a project you are planning on supporting (by this I mean bug/user support for when you unleash this CMS on non devs). This can become a headache pretty fast when things need updates and clients are looking for fixes and changes. It's completely manageable, just more of a headache then something with community support.
That being said, if you are comfortable in wordpress the amount of support that exists in that community is huge. So often times you can leave the project knowing updates for the CMS and plugins will come in at a regular speed.
TLDR So if it's a project you know you will be supporting long term (or people with the same comfort and skill level as you) then I would say build it your self for ease of build and customization. If this is a one off or something you plan on handing off to a client with little to no support, building inside of a community supported platform is best.
I really comes down to priorities, if you what to build a site really fast a CSM is hard to beat, but you do not have the same control over the core as you do when you wright it from scratch.
But you can do most any thing with plugins/modules so the control is there if you are willing to work for it. If you wright it your self you will be the only set of eyes most of the time so it will in most cases be slower to implement new standers and security fix's (because you will need to find them first) but with a CMS you will have many people working to make it better and safe at the same time.
If you want to be well rounded I think youe need to be able to do both, you can't control what the customer wants to use some times.
You can make site very quickly with a CMS like Joomla but the problem is even having over 7000 extensions sometimes for your particular purpose you don't find an extension and developing an extension can be real tough. it requires a comprehensive knowledge of Framework. If all you need to do is manage content CMS is the best choice. If it is like a web app and require more interactions go for some framework which provide the basic skeleton of your app. e.g. for CRUD operation many frameworks provide scaffolding feature and make this thing a piece of cake. CakePHP, CodeIgniter, Kohana are some of the best PHP frameworks you can use.
Using Chinese Cms DedeCms or phpcms And developer it more easily !
I like PHPCMS, it works with nginx, fasctcgi, mysql on linux or windows.
I use it to make portal site or enterprise sites group. The multi-site architecture and PHPSSO works well. Template engine is also strong enough.
take a look at big mysite: xinm123.com
Most important thing: it's open source.

How much of using Drupal involves programming?

I would like to ask those who are experienced with building a website with Drupal. I got a job like this, but I'm more interested in programming. I got also another job offer and cannot decide!!
How often do I get to programming/changing code in Drupal, when building a site in it? Isn't it just about clicking around and downloading modules?
the other job is different but i didn't want to write long descriptions here. This job with drupal got all the positives, but im afraid that its less programming, more clicking and im trying to learn more programming. the other job is classic php programming with company internal framework.
thanks guys
I work in a company where I mostly do Drupal development. Now it's hard to say anything concrete about your job offer, since we don't really know the company etc. There's not really a reason why doing development with Drupal should be any less coding than doing development with some other PHP framework.
You get a lot for free with Drupal, the whole CMS part, all the modules on drupal.org, and yes there will be some AI configuration, but it's usually not that much. All the configuration part of a Drupal and modules is pretty easy if you know what you're doing. For me I spend around 5% of my time for a project doing configuration, making views (a drupal module you can use to create displays) etc, the rest of my time, I use hacking away in my code editor.
As a drupal developer, you mainly do two things.
Write code to add functionality
Write code to alter existing functionality.
Drupal is run is procedural, so there's not much classic OO, instead you write code that gets executed when something happens. Fx a user logs in, then you get a chance to modify the user, do some things like counting how many times the user has logged in.
An important part of Drupal is also presentation. In Drupal we call this theming. Theming is also very code heavy. Drupal is very flexible, so you can overwrite functions used to generate the markup in your theme. These are classic PHP functions. Then there is the whole css, html js part as well.
If you have the chance to do Drupal development, I think you should take it. There is a massive demand for good Drupal developers, that know how Drupal work, and how to use the APIs. It will be something you can use to find your next good job. Knowing some random in house PHP framework, will probably not help you as much in terms of finding your next job.
It's going to depend on how much you want to customize Drupal. You'll typically get to spend some time altering code to change the layout or whatever other UI-related requirements your employer/client would like.
As far as altering the core of Drupal, you wouldn't want to do that anyway or you could run into trouble when a new version becomes available and you want to upgrade. Any custom coding would instead be done in the form of writing Drupal modules or plug-ins.
Comparing your two brief job descriptions, the "classic php programming" option sounds more like what you want to do. There simply wouldn't be a comparison between doing development in Drupal vs. doing development on some company's internal framework, but either way you would get some experience.
Don't let this answer guide your decision on the offers. Pick the one that feels right and works best with your lifestyle. You can always do your own research and development outside of work if you wish to gain experience or knowledge.
It heavily depends on the project. I work as a professional Drupal developer for 2 years.
Normally making a Drupal site consits the following steps:
the site builder gets the spec
the site builder makes a research what modules to use
the themer makes a wireframe
client accepts the wireframe
the designer makes the actual design
the themer starts implementing the design
the site builder starts installing and configuring the modules
if there are problems which can't be solved with the available modules, then the developer gets a specification
the site builder finishes site functionality and applies the theme
testing
deploying
As you can see, your job will be depend on which role do you work. If you apply for a site builder, then you don't have to code much. If you get hired as a developer, you will most likely end up writing bigger or smaller modules for different projects (this is what I do most of the time). At smaller companies, the site builder and the developer (sometimes even the themer) are often the same person.
However if you want to make sure that you will write code all day (and you don't know what roles will you fulfill at the Drupal company), I rather recommend the second job.

What the difference between zend framework and Wordpress as framework?

I only know Wordpress and have started to seek another alternative framework, Zend. I have heard hearsay that Zend is better than other frameworks. If you are "a serious coder", or try to act like one, you need to use it for building your web app.
Some say Zend is better but it is subjective. It is fast and secure but nobody has given a reason or at least compared it with with Wordpress.
Ultimate question : Does Zend have themes or plugins just like Wordpress ?
Any hint will be helpful
edit. maybe it's stupid, but it's a question. if you don't like it, or you feel it's offensive then down-vote. I don't mind ;). No hard feelings
You're comparing apples and oranges. Wordpress is not a framework, it's a publishing tool. The only thing you can do with Wordpress is make blogs.
A framework is a set of code that provides you with tools to build things. Zend Framework is a web framework that lets you build web applications. In fact, you could build Wordpress using Zend Framework (and it would probably be way better than its current sad design). You could build any other kind of site with Zend Framework. What Zend doesn't do is provide you with a bunch of pre-built web pages and templates and content management systems... those are all publishing tools (which you could build with a framework).
In short, you can't build a web app with Wordpress, since it's not a framework, and Zend doesn't have themes because it's a coding tool.
You are asking the difference between Ferrari and the tomato. Both are red, but…
Zend Framework is a Framework
Wordpress is a Blog software
You may write app like Wordpress using ZF, but not vice versa.
Wordpress is a content management system. It is much more specialized than Zend, which is a generic application framework.
You could build a cms with Zend for example. But you would have to build it from the ground.
I dissagree that Wordpress is not a framework. As a developer you can develop plugins into wordpress that can do some pretty neat things. Okay, you may say that wordpress is not a framework itself, but it does provide a development framework that allows developers to tap into. True it started life as blogging software, but to limit wordpress to only blogs is not doing wordpress the justice it deserves.
Zend_Framework on the other hand is completely different to wordpress. Zend_Framework will help your web development, but it wont do it for you. Where wordpress will work as a content management system/blog out of the box leaving the developer with a plugin framework to allow you to build custom modules and code that will run within wordpress, Zend_Framework will expect you to build everything from scratch. Sure it will provide some helper classes to help you along the way, but its up to the developer to pretty much write their entire application from scratch using Zend tools.
Personally speaking if you want complete and utter control over your entire application, and want to do everything from scratch with some help from Zend, then Zend_Framework is a tool you might want to investigate. If however you just want a website with a little customisation, then wordpress is a very good tool for that.
But the two dont compare side by side, they are different solutions for different problems.
Zend is an application framework. WordPress is a buggy blog manager. If you don't know the difference, then you probably have no reason to use Zend.
There appears to be a project called Zendpress to create a Wordpress-like blog platform built on Zend Framework. Strikes me as a great idea, though at present, there doesn't seem to be any significant activity there.
If you are a coder you can use Wordpress to build any web apps easily. Zend framework is the old fashion way to build web based apps. To this date, Wordpress is getting more powerful and flexible which you can use on any web developments. It is not only a CMS.

What disadvantages/problems are there when integrating Joomla and ASP.Net web pages?

A friend of mine really likes using Joomla as a base for his websites. He also likes the power that Asp.Net has and can code in VB.Net.
He wants to use Joomla as the "Master Page" and Asp.Net/VB.Net/SQL Server to handle the main business logic of the application. He is planning on using the Joomla Wrapper Module (an IFrame, joomla modules) to integrate the ASP.Net into the Joomla website.
Joomla will be able to handle the security (users,roles,registration), menu (based on roles), static content (e.g. About Us page) and it will pass an Encrypted Username & Password to the Asp.Net web page (example here).
The goal of the website is to allow users to register & subscribe to a (free or paid) service where they will be able to customize content and download it as a file.
What disadvantages are there when doing this? Are there work arounds?
Some issues that I can think of are:
Links clicked in an IFrame won't change the browser's url which means that you can't bookmark pages and they aren't in the browsers history.
If Asp.Net has to know the users/roles (which is very likely) then it would have to access the Joomla database or keep its own user table which will have to be in sync with Joomla's users.
EDIT:
I would never build a new website this way, but I was looking for concrete points to convince my friend that using Joomla and Asp.Net together isn't a good idea.
I believe your friend's idea is fine. Both platforms have strong points. Joomla is a mature open source CMS platform that has an enormous amount of community contributed components and it is easy to use which makes it appealing. But I can also see instances where you may want to include ASP.Net functionality in certain scenarios. I have had clients who use Joomla but wanted an app I have written in .Net and it did not make sense to spend the time or money to rewrite it in PHP and MySql. The two can be integrated securely. I wish your friend luck in his endeavors.
I don't see what advantage you get from using Joomla when the app is ASP.net (nor the advantage of coding an ASP.net app when the framework uses PHP/MySQL).
I'm not convinced the security is tight because you can open iframes and bypass the Joomla security. Then you talk about passing username/password to the iframe - but now you need to validate this again through the ASP.net app.
I once coded an app in raw PHP and included it in a Joomla site using iframes. I realized fairly quickly that there was basically no security because the raw PHP had no knowledge of Joomla (although the app was not visible to site visitors and only known about by admin). I quickly recoded it into a built-in component.
To me, this sounds like you're reinventing the wheel on both sides of the app. If you want to use Joomla, either learn how to make components (it's pretty simple) and do it in PHP, or hire someone to do it for you ;).
If PHP is not your strong point, then use a full ASP.net site, perhaps with a CMS as GmonC suggested. Even creating your own basic CMS with some pre-built components (e.g. Telerik) would probably be quicker than integrating PHP and ASP.
Seriously, IMHO, if you're not going to integrate some legacy system or isn't doing this kind of "integration" development as an "experiment" to learn something - in a summarized way, if you just want to have your work done, I think the description you provided inserts a lot of complexity and overhead that aren't needed in the first place.
This added complexity of two completely different ecosystems is a disadvantage to what should be just simpler. I really believe you should try to use Joomla or other CMS written in .net like dotnetnuke (or build your own) instead of this configuration.
If you add more information about what are the goals and objectives of this project, my opinion may change. Until them, I keep my opinion of simplicity.
The time and effort you are going to go through to use Joomla is going to far outweight what it would take to just get some other CMS that was designed for .NET.
Stop over-engineering yourself into a midlife crisis.
Also, Joomla? Seriously? Joomla?
me too don't get any advantages for joomla, it's big system and it just as good as wordpress for regular projects, just wordpress is much simplier. joomla has no good documentation to learn and hard to extend.

Resources