Technology

Installing Yii Users and Rights in 5 Steps

So you've got your clean Yii installation*...now what? Frequently the next step is adding support for users and some sort of permissioning schema. The official Yii guide to Authentication and Authorization is a very comprehensive and important piece of documentation — please do take the hour or so necessary to read it and try to understand it. You could skip it, of course, and just use the following steps to get your app working, but you'd really be missing out, especially if you're new to Yii, new to object-oriented PHP, or just new to authentication/authorization methodologies.

Anyone could roll his own user and permissioning framework, but luckily there are two well-supported Yii extensions for this: yii-user and rights. Both come with installation instructions, but I'm writing it all out in steps for easy reference.

By the way, I've created a github repository with a working version of my installation. You can grab it here, or just clone it:

git clone git@github.com:benjaminlhaas/Yii-with-Users-and-Rights.git

If you use this, you'll need to run the two migration scripts in the webapp/protected/migrations directory and probably change some directory permissions. Check out the README in the root.

If you still want to install yii-users and rights step-by-step, here are the instructions:

> Read More
Category:
Tags:

Installing Yii in 10 Easy Steps

I've been working with the Yii Framework for a few months now, and have been massively impressed so far. The amount of foresight that went into the design and architecture of this framework is mind boggling, and I keep getting reminded of this over and over again when I'm trying to get a very specific task done, and I learn that a well-documented, simple method or class already exists expressly for this purpose. I'm really surprised that Yii hasn't been getting a lot of chatter in the development community (at least from the people I've been listening to).

I've thrown together a few Yii applications so far, and I thought I would document a few installation/configuration processes for my benefit, and for anyone else who stumbles across this. All of this is available in disparate locations, including the official Yii reference, but I wanted to list things out as simply as possible, detailing how I got it to work for my setup.

> Read More
Category:
Tags:

Mozilla's 4096 Character TextNode Limit

Ugh, I hate it when one browser works different than all the rest of them and displays some unexpected behavior. Believe it or not, no, I'm not talking about IE this time, it's Mozilla that's giving me a headache. Mozilla is the only major browser that imposes a 4096 character limit on TextNodes in its DOM structure.

> Read More
Category:

Using Apache's mod_rewrite for Maintaining Advanced and Classic Mobile Websites

These days it's not enough to just have a single mobile website. With fragmentation of handheld devices, operating systems, and browsers, your site's visitors have a wider range of a viewing capabilities than ever. My HTC Incredible for example, running Android 2.2, delivers a much richer browsing experience than my old BlackBerry Curve (you know the one - everyone used to have it in the pre-iPhone days - it's the one everyone was playing BrickBreaker on while riding the subway). To be truly considerate of your site's visitors, you should have a feature-rich "advanced" mobile site for advanced handhelds (iPhone, iPad, Android, etc.), and a simpler, more text-centric "classic" site for older handhelds. The challenge, then, is how to route users to the appropriate site without annoying them. This is where Apache's .htaccess and mod_rewrite come in handy.

> Read More
Category:

AMF and PHP with Drupal and Flex

At my company we're working on a project where we're using Drupal as an administrative-facing data storage and content management system, and Flex as a client-facing user interface. We knew conceptually that this should be an easy task, since we knew we can create and expose an API to Drupal via the Services module. We were initially concerned, though, that we might have some difficulty getting Flex to work smoothly with these API. Turns out though, that our fears were unfounded -- with the help of the AMFPHP module, it couldn't have been easier.

> Read More
Category:
Tags: , ,

How to Hide Drupal's "Request New Password" Tab

Sometimes your site only has one or two users (like this site!), and you have no need for the built-in Drupal "Request new password" tab on the user login block. It's really quite easy to disable this tab. All you have to do is have a custom module, and implement hook_menu_alter.

> Read More
Category:
Tags:

Accessing web services via AJAX by creating an Apache pass-through proxy on Windows

I've been working with a certain client for several years, and in that time I've built quite a few web sites for this client. Each of these sites connects to a web service that I developed and maintain. This web service delivers real-time numerical data, which the individual client sites use to populate charts and tables.

> Read More
Category:

Drupal 6 Site Build Checklist

This is my checklist for the beginning stages of building a new Drupal 6 site. Your checklist may certainly vary — this is a list of steps that I personally found myself repeating many times. This checklist assumes you have already come up with a development plan, with custom content types, custom urls, etc., having been defined.

> Read More
Category:
Tags:

Windows 7, localhost, and Drupal

I recently bought a new Windows 7 laptop. Along with all the other basic programming tools, I immediately installed Apache, PHP, and MySQL. One of the first things I wanted to do was to try to install Drupal. I spent two days fighting the white screen of death on Drupal installation, though, and I finally figured out why -- and I can blame it on Windows.

> Read More
Category:

Commonly Used Drupal 6 Modules

Here's a handy-dandy checklist of Drupal 6 modules (and one theme) that I use all the time:

Most Commonly Used

> Read More
Category:
Tags:
Syndicate content