I have a web site which is developed using Zend framework. Now the requirement came for a mobile site for same system. So I have two solutions in my mind. I would like to know what is the best solution I should select.
Develop separate views and layout for the site keeping Controllers of existing site. By detecting the device serve relevant view.
Duplicating the existing system create new Zend module and modify everything to support mobile browsers.
Appreciate all your suggestions.
You could either pick up the incoming request and check if it's a mobile device, as zysoft says, or you could look at going down the route of rewriting your existing views so they're "responsive". That is, the layout adapts to the size of the screen of the device being used to view your site.
The benefits of a responsive design is that you're not relying on a list of device names or whatever to match and serve a mobile-specific page (as it goes on the screen size, not the device's identity). The downside is, it's a bit more work than making some 'light' views.
You've also got to consider that devices no longer sit in between "desktop" and "mobile" groups—there's a plethora of devices in between such as tables, netbooks and TVs that makes responsive web design more and more desirable.
As I understand the issue is only with heavy design and some elements that mobile doesn't support. You can solve it by creating separate views folder and set it as primary in application initialization where you detect mobile. It gives you a way to save all hard work on controllers, keep the code unified and provide people with a kind of "mobile theme" for the site.
Related
I'm working on a Laravel App and I would like to serve the content based on the user's viewport size. My app requires user login.
When the user logs in I'll also get the device view port size and store it in the session variables. So whenever a particular view is requested I can check the view port dimensions stored in the session and serve the content based on that.
My question: Is there any better way to achieve what I want?
Edit
I know responsive design. The trouble I'm facing with the CSS media queries is the tables. I've hard time making the tables responsive and present them meaningfully. And I've several pages with table data in my app. So I thought I can use the above approach.
I can even optimize the mobile pages to load the fewer resources. I don't want all the features available on desktop to be in mobile. This means that right now my webpage has hidden content, unused plugins and resources on the mobile devices.
So instead of loading the content and 'hiding' it, why not just load the minimum data(and resources, plugins) required for the mobile devices?
Edit 2
After further research I found answers to my questions. I found that there is whole new concept of dynamic serving, which is adopted by most of the large sites. Often it is difficult to achieve everything with CSS media queries. And the css code can get cluttered.
Also the frameworks like Laravel makes it easy to manage the different views. So in such cases dynamic serving can be helpful.
I have another codeigniter CMS suggestion question. Pretty much I am just looking for a CMS that allows my client to easily add in content that doesn't necessarily need to be tied into a page. I pretty much want a MYSQL database with a gui that allows the client to upload content to certain tables in the db. I don't want any themes attached to the cms as the site code will all be custom built and I would prefer to write all the db calls to pull data for specific pages. I just need a way for the client to easily upload data to a table where I can create a model to pull the data.
I have heard of FuelCMS, Ionize, and PyroCMS but all these seem like they have too much. I am looking for a pretty barebones db that has a gui and good documentation for the api's. That's all.
Thanks!
I know you wouldn't think of ExpressionEngine as "lightweight" but from the perspective that you are speaking, it is...
It allows complete control of content separate from any design's or concepts of "pages". It's power is that you define "objects" or channels that contain specific information that you then take and construct the pages around. Channels are a more user friendly concept of the MYSQL tables you're talking about.
DownsideYou get good support because it's not free, but and worth the money.
It's module development pattern is familiar if you are a codeigniter developer also.
We have a dashboard that we'd like to build for our customers. This dashboard displays various statistics about one or more of their (business) Facebook Pages. The statistics are pulled from Facebook using their FQL and Graph APIs, stored locally in a MySQL database, and queried/derived/presented to the user based on dates requested and some other variables. Additionally, users will be able to take action on various items (e.g., reply to wall posts, etc.) using their JavaScript SDK.
One of the external developers we spoke with -- currently don't have any resources within the company with time to work on this -- has proposed building the system around Drupal. Now I'm a fan of CMS systems for web pages, blogs, etc. but using something like Drupal did not come to mind here as much of the functionality seems irrelevant.
Can someone please let me know the advantages and disadvantages of using Drupal for custom development work like this? While we're looking for an elegantly designed system that our developers (as we hire them) can maintain and extend over time, I'm not so sure a CMS is the way to go.
Thanks!
I wouldn't recommend Drupal at all for something like this. You don't really need a full-blown CMS like Drupal, and it would be pushing it to say you should use a framework such as CakePHP.
Personally, I would build this as a standalone app. I see no reason to get a framework involved unless you plan on expanding the APP considerably in the future.
Drupal is often called a content management framework because it's so extensible, and certainly you could implement the dashboard in Drupal. However, I would question the developer thoroughly about their rationale for using Drupal before consenting to it.
Everything you specified sounds like custom development and has nothing to do with content management. You're manipulating data from Facebook, not a database of content produced by an editor. Your data is custom data, not simple Drupal node data (title, body, etc). I would go with a general Web application framework such as CakePHP. That way you get templates and user authentication without all the CMS overhead.
While I don't think that Drupal is really necessary in this case, I think that the final decision lies with what the strengths of the contractors you are using are.
If Drupal will allow them to finish it more quickly, and more securely (due to the fact that Drupal will provide well test user authentication, used by many), then I would say let them go with Drupal.
That said, I do agree that Drupal sounds to be more than what is necessary, and there would probably be far less cruft if you used a simple framework.
If you were to integrate some open source CMS into your already existing website... which CMS would you choose and how would you go about achieving it?
The BEST CMSs that will work very well and may fit your needs are :
Instante Update - the best one in my opinion
PulseCMS
SiteCake
These three CMSs can be integrated into any existing Website & they are easy to use. I think they fit your needs.
you should ask the question in different order "How to migrate already existing content to open source CMS" and your action list would be
map existing data and url schema (so you could make redirects from old content to new locations if locations change) to get the hang of the amount of pages/structure that need conversion
choose your next weapon (wordpress, joomla, modx and so on dependent of your needs and amount of data) and make a clean installation of latest version
convert old site information to data import format of your chosen weapon
if your information is in start planning design, editorial and other regular tasks that each site needs
the idea here is to make the conversion first with raw data to get the clean site structure and content you really need and not mess with design and editorial tasks first as those are secondary and can be addressed separately over and over
i would go with wordpress... just download in from wordpress.org and install it into ur site, via FTP or File Manager, but you need to know how to use wordpress, everything would be very basic in PHP, they usually slice the website into three parts. Header, Body, and Footer, try to mess with it, and you could integrate it... but i think CMS is much preferrable if ur trying to create a blog-style website
You should also consider the popularity of the Open Source platform you choose. The more popular it is, the less likely it will disappear all of a sudden - and it will be a lot easier to get community support (and 3rd party modules).
For me there would be 3 choices if it has to be a PHP based CMS : Wordpress, Joomla or Drupal. I tend to prefer the latter, because it's very flexible (though it also has some quirks, especially if you're creating multilangual sites).
As for how to go about it : that largely depends on what you already have. Is it a static site or dynamic site? Have you got some scripts that wouldn't be easy to alter? Your first priority should be to list specific functionalities of your site and see if any of the CMSes you consider supports these out-of-the-box (or using 3rd party modules).
Porting data to Drupal can be very easy (using the Migrate module - Migration: not just for the birds).
Oh, and one more thing : also keep things you plan for the future in mind. If you consider building a full blown website, don't stick with something that will help you out now, but hold you back in the future.
I understand the classical definition of a CMS: it's a "webapp" the main purpose of which is to handle "content", probably that's generated by its users (kind of like all of us here at SO and the content we provide is text and code).
I also always got the impression that creating a CMS is supposed to be a Really Tough Thing. But how so? Isn't a CMS just a webapp like any other. I would guess that many webapps are tougher to code than a traditional CMS.
If I were to think of creating a CMS like creating any other webapp, would I be wrong?
I suppose you can consider a CMS as any other kind of web application ; only thing is there are lots of functionalities that are both required, and/or expected by users.
A few of those which come to mind :
authentication / access control
to the application, of course
but also to every kind of data
and even, maybe, each field of each type of content
a bit of ergonomy -- especially if targeting not technical users.
dealing with media (photos, videos, music, flash content, ...) ; both upload, linking, and consultation
if designing a CMS that's not oriented toward a specific website, you have to create something generic, that can work even in cases you didn't think about
extensibility : you will create the core of your CMS ; but users will most likely want to add some additional functionalities
which requires a nice extension/plugin system
internationalization / localization
Well, that's just a really short list, actually ; and there are probably lots of other ideas that could come to mind...
So, yeah, a CMS is a web application -- but it has to be generic, if you want it to work for more than just one (kind of) website.
Read up on CMS and DMS in wikipedia. Then it should get clear that a good CMS is really a big task.
Especially templating, workflow (fixed ones, support for custom ones), user hierarchies and so on... are hard to get right and still make them easily adaptable and customizable.
And don't forget that a CMS doesn't have to be a WebApp, but there are so called WebCM-Systems.
Aside this WebCMS are like every other big complex WebApp.
Content management system
Document management system