Some questions before choosing/start learning Yii framework - frameworks

I've been developing simple PHP/MySQL web sites for some years.
Never used a PHP Framework before and I understand I'll need to know OOP, no problem.
I'm about to start a SaaS project of my own.
A)
So far, I've seen Yii generates the CRUD and pages according to the DB.
Is it easy to modify the generated code?, like, adding a new DB field and its form field without not generating again all the stuff every time I change something in the DB and losing other customizations?
I mean, I'm 100% sure the generated DB code and pages are not going to be enough and I'll be constantly adding and correcting fields, and adding more tables etc.
B )
My project will include a Shopping Cart and Calendar(for events, tasks, etc.).
Does Yii has these options or at least an easy way to implement it like the Authentication options or Database listing, etc.?
C) Does documentation has this explained as a tutorial/book or is more like a reference(minimum explanation that only advanced user understand how to integrate it)?
thank you very much

Yiiframework has excelent documentation (you can start from here). Also there is an extensions area in the downloads section where you can find all available yii extensions.
All your questions can be answered if you follow their easy tutorial.

A) Yes, it's easy. You will just add code for new fields not changing it all.
B and C are answered by Stratosgear very well.

Is it easy to modify the generated code?
Yes it is. If you later decide to add more fields to the table, you can do that from your Phpmyadmin using sql commands.
You also need to edit the generated class file adding those new fields to correspond with that on your table.

Related

Do I need to create a module for: A user account, to create and save custom "objects" made of choices from a form

I used Drupal for 2 years, building some quiet "standard" sites (mainly "static content", no user logging etc.)
I always found the modules I needed for what I was expecting for (Views, Slideshows etc….)
In the next weeks, I have to build a little more complex project and I wonder if I can achieve it quiet easily with Drupal.
Until yet I never been through the drupal API, neither did I create a module.
But I'm a C++ developer, and I think there is no problem for me to learn rapidly how works an API.
I've been through the Drupal.org tutorial on how to create a Module (module "current_posts"), and I understood the global mechanisms
In the next weeks, I have to build a site with a little more complex parts, and I wonder how to achieve it with Drupal:
The site is compound of:
a "classical section", with contents, videos, etc…
a user section
The user section give a user the possibility to:
Create an account
fill a form to create an custom "object". The object is compound of 5 parts for example. And each part as several possibilities.
Example: Part 1 -> Options A, B, C, D, E, Part 2 -> Option aa, bb, cc, dd etc...
save his object to a collection
fill a second form to give extras infos about the object he has just created
save these extras infos
get some custom infos "built" upon the choices he made in section 2) and 4)
relog later and reload the objects he built previously
I wonder if:
it can be achieved only with existing modules?
…or do I need to develop a custom module?
Do i need although to create some custom Tables in the DB,
…or is it possible to deal only with content types
Do I need to "design" the tables interactions on a paper, like a real DB developer ;).
Is there some special things I should be careful with? Do you have some clues about how to realize this?
And does it seems feasible in a short delay?
And last but not least;) Is Drupal a really good solution for such a project?
Thanx in advance for your help!
Drupal is great for such a project. And you don't need too much extra modules, just core modules.
1) Core user module is fine.
2) Node type A. Create the node with the described fields and a user Role that will be able to add new A nodes as also as edit/delete own A nodes.
4) Node type B. Just add relationship for the Node type A so users can make the connection. Use the EntityReference module here. Similar user role permissions here.
6) This needs more information but it seems you need to use Views module to achieve this.
7) Welcome to Drupal! This is a core functionality also.

Custom forms for a FE plugin in TYPO3 V 6.1.0

SOLUTION
Inline Relational Record Editing is the answer. Handy stuff.
For Documentation
:)
QUESTION
I created a front-end plugin using extension builder in TYPO3 6.1.0. For this plugin, extension builder of course generates few default forms in the backend. However, my intention is to have the forms customized. My plugin has 3 tables related it and all these have to be integrated to be inputted from one common form, than having individual forms, which is not ideal.
Do I configure my TCA stuff for this ?.. If so, please suggest me some good tutorials on that.
Or will using FlexForm do the trick ?...also please suggest some good tutorials.
I also checked out Flux, but did not quite understand the architecture of it.
Thank You :)
EDIT:
I want forms to give the user to fill in records. Lets say I have an extension for creating Calendar Events. I need a form, in the TYPO3 backend, through which an administrator can add events and its details.

TYPO3 - Migration from RealURL to CoolURI

I have a big TYPO3 instance that exists for ages. All the time the webpage used RealURL but now we want to migrate to CoolURI because we have better experience with this. Now the problem is that all old links shall be available even after switching the URL extension.
The CoolURI documentation states
Migrating from RealURL
The field Speaking URL path segment (tx_realurl_pathsegment) is kept with its values, but make sure it's listed in the element.
I got the tables tx_realurl_pathcache and tx_realurl_uniqalias besides some other tables like redirects, etc. But I don't really understand the function and differences of these two tables and can't find any indepth documentation on this. So I'm a bit afraid right now that I have to reverse engineer the whole extensions and then write a script which exports all the old URLs and imports into the new CoolURI tables. Because we also use tt_news and these URLs have to work, too.
So does anyone have some experience with this? Does CoolURI automatically handle everything and the old links are still valid or if not maybe someone could give me a detailed explanation for all the RealURL tables in the database?
I wouldn't migrate if there is no really important reason (like ie. missing feature). To make sure that you'll be able to generate all links properly and then map them into CoolURI you'll need to learn RU logic anyway.
Reason: RU generates links on the fly - if it's required, and then caching it in the tables, other tables stores links to common pages and other for extensions. You would need to just write custom extension which will visit each page, to make sure that RU cached every possible link and then rewrite all results into for an example list of redirects. IMHO it's not worth of wasting time.
Note, I don't want to say that CU is bad :) actually I don't know it. I want to just remember Voltaire's most famous words: "the better is an enemy of the good"

typo3 - building a simple functionality

I am building a fairly simple website based on typo3. I'm new to the CMS but I've read almost everything I could find about it - tutorials, wikis, documentation. I'm stuck with designing a functionality for the administrator to be able to create records with predefined attributes (category, date, info, image, ...) and those records to be listed in a table on the front end with a "View detailed" link on each row. Will I need to develop a complete extension for this? From where the administrator will enter these records? How can I iterate them on the front end?
I apologize in advance if my question is too broad.
The Kickstarter extension provides a full stop solution for your needs. There is a good set of, if slightly outdated, screencasts explaining how to use this extension to create your custom record types and associated front-end views.

How do websites change content daily?

I just started learning HTML and CSS, with no knowledge on other languages such as javascript, Php, and so forth. Websites like Refdesk.com boast fresh content everyday, there has to be someway they are able to have new content everyday other then changing it by hand. Some Google searches came up with nothing but RSS feeds.
How is this done?
Thanks for the helpful answers, it answers half of my question, but does this also mean that the owner would have to manually add the webpage each day for new content, or say add in the content for a few days and have them displayed day after day automatically?
Most dynamic websites derive their page content from a database. Change the content in the database, and the content on the pages changes to follow suit.
Likely they have some form of content management system which allows non-technical users to update the site. In some systems, the content manager itself can get quite advanced. Here's a description of the latest version of the one used at the BBC, CPS, which drives the many BBC websites and more.
They most probably use a database where they store the content and the newest entries are retrieved from this database and displayed. This requires a server side language like PHP, Java, Python.
The HTML is generated dynamically.
The answers about databases combined with a server-side language like PHP are pretty good and very direct, but depending on how new you are to web development they might not be conceptual enough.
The first thing you need to understand is that a database is a collection of tables - each like any you might be familiar with in excel.
For example, one table in your database might be named "daily_links" and it might have two columns, one named "Date", and one named "Link". So every time you want to publish a new link, you just make a new row.
So now you are half way there.
Now what the server-side scripting language is able to do is to go to the database, look at your table "daily_links" and bring back each all the information that it found there.
From there it can do anything with that information like make a new anchor tag in html for each row it found, and give it an href of the data found in the column "Link".
That is rough idea in (very) general terms.
I hope that is easy to understand.