Multiple Blogs in PyroCMS (or other OpenSource CMS) - php

I have been looking round for an open-source CMS framework that I can use as the basis for a few web projects. I used to use Joomla, but I found it to be clunky and out-dated, certainly too complicated for the average user that would be faced with it.
My current project requires a content-managed website, with all the usual stuff, and on the whole PyroCMS seems well suited to the task. However a core requirement of the project is that it contains four blogs. A general one for news relating to news in the client's field and then one each for the three members of the company.
I can't see how to do this as it stands, but I'm sure it must be possible somehow. I'm happy to write a module myself to do it if needs be, but I'm trying to keep the project fairly simple, and I can't be the first person to want to do this!
I'd considered a Wordpress network, but a key requirement is that everything is centralised in one administrator panel.
In summary - is there any way to maintain several blogs using just PyroCMS and addons?
Thanks,
Ian

There are a few outstanding features that have never really been added into PyroCMS as they have never really been needed by anyone with enough interest or ability to add them.
The blog module is VERY basic, but it has always been used by incredibly simple sites. "Mom and Pap" websites, simple "News" sections on corporate sites, developer blogs, etc.
Out of the box it CAN be done, by making a pages for "blog" and a category for each, then use the {pyro:blog:posts number="10"}{title} {summary} {/pyro:blog:posts} tags.
It's not the cleanest solution, but remember that most development on PyroCMS is done by developers finding gaps that need to be filled for client projects. I have a client project coming up soon that requires multiple categories (surprised it took so long!), which would solve this problem perfectly, but until they pay me to work on it I just don't have the time. If you want the feature added in for your job I can help you with it if needs be through giving advice on here, in the forums, on IRC etc, then we can merge it in easily enough.

Related

Migrating Silverstripe to Wordpress - Change web platforms

I'm going to re-design and develop a new site for my client (they prefer wordpress as the new platform). They have got an existing big site with membership (with paypal), member portfolios and directories (with search) which are largely done manually in php associated with Silverstripe CMS.
I need some directions on how I best target this task with changing platforms from Silverstripe to Wordpress.
1) They want to keep their membership, directories data and migrate it to wordpress without members have to re-enter it again manually, is this possible, how can this be achieved?
2) For their membership, portfolios and directories, is it best to re-use the code, or is it too different between those two platforms? Or shall I search for some plugins to best match it and then manually add extra php code to match the existing site?
Which would be a better approach?
3) I've found some migrating companies who do migrations from Silverstripe to Wordpress with a cost, is the end product as logical as the original site? Or is it better to build it yourself in wordpress?
Anyone had experience of changing platforms, any suggestions are appreciated.
Thank you.
EDIT:
Sorry I've been away, thank you so much for your answers, Colyba, Cam and Zauberfisch, it is hard to choose one to be the answer. A little update, my client is more towards staying with Silverstripe after I used some of your knowledge, thank you.
Now I just found out they have got an offline Miscrosot Access to keep the membership details as well, my first thought was to just use the website and ditch MS Access, but their admin person has been using this MS Access for a long time even before the site was built, so I am just wondering is there anyway to synchronise both data?
I know the SS website membership database and MS Access membership database structures are set up differently, so I am just wondering is there any way to automatically update the offline MS Access membership when the SS website membership database is updated online? so they don't have to double add member details onto the offline MS Access. Any security issues? See question here, any suggestions are appreciated. Thank you very much!
I think what it comes down to is asking the client what the vision of the future or business direction is, also who will be responsible for maintaining the code base once the work is done?
I find WP has a lot of updates that need regular attention otherwise it is common to get hacked. If the client is aware of this and actions those that is good. Also does the business not have any intention of building further custom functionality other than what they currently offer to customers? if not, and the functionally is mostly commodity based stuff then sometimes WP can be the right tool for the job (even though you could do it in SilverStripe too).
However... if you are already on SilverStripe (perhaps an older 2.4 version) you could look at upgrading them to version 3 (assuming you are on 2.4) which has a much more user friendly admin interface (dare I say it more Wordpress-ish in layout) This might be more familiar to your client. If you do go this direction spend some time running your client through how to use the CMS as part of the project. I have found that helped me sell the benefits of SilverStripe when I was working as a freelancer.
SilverStripe will give you a great set of tools for future flexibility of the website (and the business). I usually feel pretty confident that when the business, say in a years time, asks for a very custom new feature to make their customers happy. I know that it can be easily built using SilverStripe's framework and made simple for CMS users to interact with that data through SilverStripe's extendable CMS interface. Also, of consideration is the licensing (we use BSD at SilverStripe), if strategically important and valuable code related intellectual property is being created, BSD allows retention of this while leveraging the SilverStripe platform. See http://www.silverstripe.org/bsd-license
So you can take more than just a technical approach in your discussions with a client.
There was this article which I quite liked http://www.chromatix.com.au/blog/wordpress-vs-silverstripe/ too.
Again, you will want to have a discussion with your client about the business plans going forward to ensure something gets put in place that can cater to those future needs. Sometimes if clients are not well educated about strategically thinking about their site it can lead to plugin bloat (just bolting on any shiny functionality without considering why) and ultimately their WP site falling over in the long term.
People are creatures of habit, they like to stick with what they know and what might have worked before... we just need to be careful not to extrapolate what used to work versus what will give you the flexibility to change in the future given we are in a very dynamic and chaotic business environment :) And particularly given that many IT systems being off the shelf commodities don't give a business any sustained competitive advantage (unique functionality and the capability to build very custom things to align with customer needs however is where business can better compete). If you and your competitor are both on WP you can both simply click a button and get the same features... how are you adding value for your customers if this is the case?
After all, value from information systems is realised through business objectives and making customers happy, and competing in business is about having something unique that others don't.
Hope my ramble helps in your decisions :) Granted I may be perceived as having a bias (after all I am the SilverStripe 'Community Awesomeness Manager' for full disclosure). When I was a freelancer, I have carried out projects in both WP and SS over the years, selecting the right tool for the job while considering the longer term needs of your clients is key. Does your client need a frozen microwave dinner or are they wanting to serve up some fresh home cooked goodness? Both can achieve the objective of being feed ;)
I fully agree with what colymba said in the comments.
what ever the reason may be, it is a bad idea to switch to WordPress with your type of content.
WordPress is a blog system, and its great at it, but doing custom stuff can quickly become rather painful.
Also, as cam pointed out, SilverStripe 3.x has great improvements over SilverStripe 2.x, so if you are still on 2.x, you should consider an update to SilverStripe 3 as alternative to WordPress (updating to SilverStripe also involves some work, as there have been many changes to how SilverStripe works, but its a lot less than migrating to another System)
Even though I strongly discourage your plan of action, I will still attempt to answer your questions (however I have not used WordPress for a complex Site, so I can't really speak to the internal workings of WordPress for this use case):
SilverStripe stores the passwords salted and hashed.
From what I can see WordPress does also salt and hash, but it looks slightly different, you might need to customize the WordPress password hasher to continue using the existing Passwords form SilverStripe.
All other Member data should be possible, just a matter of importing.
But it is for sure that you can't simply export and import your data, the schema of SilverStripe differs quiet a lot from WordPress, so you probably have to write your own import/data migrator.
Again, the architecture and data schema of SilverStripe is quiet different from the one of WordPress, so I am pretty sure you would need to rewrite the major part of your application.
Migration companies usually provide basic migration of standard data (Pages, Files and Users without any special features). your site seems to have a lot of custom features, and thus I am not sure if a company that offers migration will be what you are looking for here.
Plugins ... maybe you find one that does what you need. But the problem with WordPress plugins is that they usually do something, and if you want it slightly different, you are out of luck, so you might loose features that you previously had.
Also, a plugin (eg. for portfolio) does not solve your data migration problem.
overall, I would say its possible to do it.
However it will require advanced programming skills and a deeper understanding of how WordPress works internally.
So I recommend careful consideration before making a decision.

Should I use a simpler framework or CMS to meet deadline?

TL;DR:
Boss needs site up and running yesterday. BackEndGuy1 uses zend framework 2 and is going way too slow. BackEndGuy2 (this is me) was hired to help BackEndGuy1 meet deadline. FrontEndGuy and BackEndGuy2 decide that using Zend will take forever, so they want to switch to an easier framework or a CMS. What should they choose? Expression Engine? Codeigniter? Concrete5? Something else?
A friend of mine and I have a major decision problem. We’re working on a site that has to be up and running as soon as possible. My friend works on the front end along with an artist, and I work on the back end along with another guy. Actually, I was only recently hired because the boss and the rest of the team decided that the other back end guy needed a speed boost. That other guy thought that using zend framework 2 for this job was a good idea. As a result, I’ve spent the last couple of weeks trying to learn zf2 (which is very hard to do, believe me) and doing php and javascript patchwork on existing code. Plus, I have the boss frequently hovering over my head and asking “What do you think? Are we going to be up before Christmas?”, to which I try to respond in a diplomatic way like “Anything is possible with hard work and determination!”, but my honest opinion is “Sorry, this is impossible. At this rate it’ll probably take a month or two…”.
Bearing in mind that (a) the other back end guy practically stopped working on the site after I was hired (we only talk on the phone when I need him to explain parts of his code) and (b) there is still a considerable amount of work to be done on the back end, my friend and I decided that a switch to a different tool will probably give us the boost we need. I’ll try to give a brief but comprehensive description of what we are trying to build, and I’d like you to help us find the best option we have.
Ok, so the site we’re building will be a place where people will publish *candies* for sale and other people will browse published *candies*, and if they find one they like, they will be able to contact the publisher. It is important to note that no transactions will take place over the site. We will only provide a means for publishers to show off their product and customers to contact the publishers. Roughly, the pages / functionality we need are:
home page
*candy* search based on *candy* properties (with pagination, filtering, sorting… etc)
individual *candy* page (as viewed by publisher (editable) and customer)
publisher page with contact info and product list (as viewed by publisher (editable) and customer)
login and registration functionality for publishers
maybe some static helper pages I forgot to mention
Now, many of them are already working (e.g. the search page, with all the desired features, is ready), but there are many things left that have to be done using zf2 and I have no idea how to do them…
What we need now is something that (1) is easy to pick up, (2) is fast to create stuff with and (3) has as much out-of-the-box functionality as possible. My friend (the front end guy) is leaning towards Expression Engine (money is not a problem), because being it a CMS he will be more comfortable with it too, and also because he noticed that we will be needing a lot of its built-in features.
His only concern is that it may not be as customizable as a framework. The framework solution we are considering is Codeigniter, as it fulfills criteria (1) and (2). Another option I am considering is Concrete5. I just watched a couple of introductory videos and I was amazed by the in-place page editing functionality and the block system they use to dynamically add content to pages.
What is your advice? What would you do in our position?
There is quite a big difference between a CMS and a framework. I think you should make that main decision first, before going to details like which one is better.
Also, using a different tool might get you up to speed, but the fact that you need to ask, suggests that you are not very experienced in those other tools as well. Other tools also have a learning curve, even the easy ones, and besides, you will have to start over completely, not being able to take along the work that is already finished.
So I would recommend to stick with zf for now. If you are going to make a switch, maybe Drupal or even a CMS like WordPress would be better and easier. Also, I think it is important to tell the boss what the status is and what problems you have. You can then decide on the best strategy, and let the boss define the most important features, so there will be at least something if not everything before Christmas. Better to have some functionalities working and being usable than having nothing at all.
If you're going to be doing all the work, then switch to a framework or CMS that you already know.
If you don't know any, either stay with Zend & take whatever time it takes (making it clear to the boss what's happening), or get out now.

Create and Search user posts in PHP

This is my first entry into backend development, taking mostly a design role in past projects. Im working on a personal project and have fleshed out what I feel is a logic of sorts. Just a few very basic user tasks broken down.
Core User Actions:
A user can create a new posting
A user can find posts from other users by tag, date created, and
other content. This is done in kinda a central search area. (Search
string: "Dog Saddle", retrieves posts with mentions of dog saddels,
dogs, and saddels)
A post's creator can be contacted from the post.
A user can delete their created posts.
I need guidance/suggestions with the following:
What data should I capture for users?
What framework is best for the application dynamics I've described? (ROR, Python, PHP ect. I'm a one man team currently)
Are there open source projects I may gain reference from?
I'm very dedicated to learning on my own, and can make use of good advice!
Thanks,
Given the rather generic requirements you've outlined and that you are just entering into the development arena, you should try an established framework. That way you won't need to write everything from scratch. You'll still have plenty of control, but the benefits of many commonly used functions, classes etc that will speed up your development.
Give something like CodeIgniter for PHP a try. See http://codeigniter.com/. There are a lot of tutorials online to help you get started. For example, see http://net.tutsplus.com/sessions/codeigniter-from-scratch/.
What you've described doesn't suggest a particular language at all. ROR, Python, PHP--you could use any of those to create what you've described. PHP is considered by many to have a less steep learning curve than ROR and Python, which is why I recommended it. However, there are frameworks for these other languages as well that will give you the same benefits as code igniter.

How to implement a template in Magento

I am stuck in a very difficult condition. I have made some small projects in PHP/MySQL like a blog in which a user can log in make some posts, and categories with the option of deleting and editing posts. While a visitor can browse the blog by posts and categories, can also post comments. Similarly I have also made a news admin panel for a news application where news can submit news and categories with pictures and can edit or delete any news.
All this work was done by using simple PHP without OOP, though I know how OOP works have all the basic concepts. Some days back I got a job of PHP trainee and the first thing which I was told to do is to implement the template of Magento.
Well I have only heard the name of magento before and while exploring it I found it is a very big ecommerce application developed under Zend Framework. I explored it well and figured out how themes works in websites, stores and store views but I don't think I am still in the position to customize Magento
Any Advice or Suggestion except I should leave the job
It is NOT a difficult situation. It's actually, a great opportunity come your way. So, relax.
You have good English, plus PHP skills to start off with, that's a great beginning. And Magento, like any of the customizable Open Source technologies, is designed to be easy to customize.
Guess your approach would be:
User Guide -- Read all that you need to know, its not much, and its fun.
Take a good example Magento site and peek into its internals -- See how it's done.
We all learn in our own individual quirky ways, but the above should be helpful to anyone.
And, no, you need NOT leave the job. All the Best!

CMS or Framework?

I'm looking to build a online store. However, the first question, past the idea of the store, is the platform. I've previously worked with Java and PHP and am quite comfortable with PHP. So my first considerations were Drupal or maybe CodeIgniter (which I have heard lots of good things about)
On discussions with friends, they suggested Django. But I have no experience with Python or Django.
So my question is, is CI better or Drupal? And further, if not either of them, is Django better in terms of ease of development and extensibility?
Request you to not make this a php vs python battle as I'm looking for advice here. Thanks
Edit: More information about the project:
The Project is intended to create a web-store for certain products which aren't currently sold online. The store will have high-resolution images of the products and other associated details. A few other special features related to the products will be added on in time so they aren't that important.
Another clarification: I understand that Drupal is a CMS and not a framework per so. The only reason I compared it to CI was due to the base platform - php. Perhaps the better comparison would have been Joomla vs Django (but I'm not sure as I do not know enough about either, yet)
Choosing a framework for a project you already know what will be the purpose will only slow your development down. If your project's main goal is to be an online store, then pick your choice among the many projects already implemented for you with payment gateways, shipping options, product management, etc. A framework may offer all that too, but will not be ready-to-use out of the box and you will have to bind everything together yourself. My personal opinion is that frameworks are good candidate when you need an highly customized web application that you will write from scratch, that will not only do e-Commerce but handle other specific business models too.
General purpose CMS such as Drupal, WordPress, etc. are good if you plan to extend your online store to also offer other options (i.g. forums, blogs, multimedia/interactive contents, etc.) If you choose to pick this avenue, I would suggest you download the source code of each CMS you retain and play with it for a while and pick the one you feel the most comfortable with, and which has a good user community. Because there's nothing worst than being stuck with someone else's broken code with no one to help you out.
For e-Commerce solutions, you can find many good projects here. If I may choose one to suggest, a solution that you may consider as it looks simple, it is written in PHP and has good reviews is OpenCart
A good one I have worked with is the Instinct e-Commerce plugin for WordPress. I don't necessarily like WordPress, but that plugin is fairly good and will have you get your online store up and running in no time. The plugin also enable you to code new custom payment gateways fairly easily (just one file to code...)
CI and Django are frameworks that help you build a web application from scratch, if you are willing to do this - go ahead and try it. There should be plenty of modules available that allow you to easily extend the framework.
Drupal however is a CMS, so it comes with multiple plugins already installed and is able to manage your content. You'd still need to develop the "store" functionality - payment, listings, etc. - yourself.
If the CMS fits you perfectly now and in the future then CMS, otherwise framework. The framework will allow you total liberty for the price of time spent on development
Have you read and heard about JOOMLA i think its very poweful CMS in php and has a lot of community support as well, In java LifeRay is a good option.
I'd only use a framework if the requirements can not be engineered into an existing cart CMS.
I'd use a CMS over a shopping cart if the commerce aspect was relatively trivial
I'm surprised you're not considering an off the shelf cart. Open Cart is pretty extensible, and Trading Eye has a nice CMS component.
I would generally advise to stick with a language you know for important projects, although I like Python as a language much more than PHP, and Django is a nice framework.
Drupal is not only a framwork, but also a CMS. You can build an online store with some modules (Ubercart), so I would recommend to try that and see if the stock solution fits to your needs.
I suggest you have a look at Drupal's repository of modules -- in particular those in the e-commerce group here: http://drupal.org/project/modules?filters=tid:104&solrsort=sis_project_release_usage%20desc
There's a ton of them that could really help to speed you along on this project.
If you know PHP and have a good grasp of HTML/CSS/JS, you should do OK in Drupal too.
Choose Django if you want to learn Python/Django and use them in your future projects. Django is cool and you'll have fun learning Python. And you'll be able to make an informed decision for your next project.
However, if you have a budget/timeframe or just want to make this project out of the door without needing to learn a new framework I'd suggest choosing a tool/language you're familiar with.
The Bricksett CMS will build the website for you but you can also modify it using PHP for additional functionality. Modify its CSS for a better look and feel. The layout is also simple yet it has a design distinct from other CMS.
A new addition to open-source CMS
Yahoo has something like a specialized CMS for online stores, called Yahoo Stores. They make it very easy to set up an online store, and provide other logistical services. You may want to take a look at that. Of course, they take a small percentage from your sales.

Categories