A todo list:
finish off all of the custom-auth work.
subscriber id is null in the subscriptions table.
fix the admin/manager views so our grids don’t blow out the layout
maybe pull in the new Cake1.3 version of Auth component and tweak it
verify all the paypal stuff still works under 1.3
Make member/view action work for subscribers
fix design of the site
look at the live site and make a list of what functionality is being cut
get Laura’s signoff on everything
Rebuild Project Notes #24 »« Rebuild Project Notes #22
What happened to #21 you ask? Well, let’s just leave the question up in the air.
A big part of this site rebuild is the search capability. I think that the new version of the search should really use some of the newest, neatest, most Ajax-y type of searching. There are two things I might try.
The first is a ajax-enabled lookup on a dropdown of all members. This will be a dropdown of all members by name, and will filter out items in the list as users type into the widget.
The second will be some sort of hierarchical or categorical filtering. This will show a list of the models involved and their properties, and when you click on these it will eliminate certain results and show you a subset of the results. I think this is going to be more than adequate for searching through the directory.
So for now I am just browsing through some of the built-in components for Cakephp. This is a way for me to try and hunt around for a solution to an authentication problem that I am working through. I might just as well read the entire source for cake. The secrets are all in the code.
Some of the more important ones include auth.php, dispatcher.php, session.php, request_handler.php, security.php, acl.php, and auth.php. I’m already somewhat familiar with that last one.
Todo List »« Rebuild Project Notes #20
I finally got around to doing some serious work on the site. I’ve basically rebuilt it all from scratch. I wanted to re-run cake bake on all models, views, and controllers under the 1.3 console. I think it was a pointless exercise, except for the fact that it forced me to basically re-examine every piece of the program.
I seem to be missing the bit of code that adds to my aros table when a user signs up. The error message looks like Failed ARO/ACO node lookup in permissions check. This seems to happen when the ACO table is out of sync with the site. Easy to fix with acl_extras.
Bad notes today. But I did make a lot of progress. Worked from about 12:45 until about 11:15 and took a couple of hours off. I had to shut off my phone completely. And get dumped by my girlfriend.
Rebuild Project Notes #22 »« Intellectual Property Gone Wild
Show Price in Shopping Cart. Hmmm? I saw this on amazon.com. I have seen this before. I just never thought about it very much. Until today.
It was for the Apple magic mouse. Naturally this would be an Apple product. I clicked on the “what’s this about?” link and found this.
Retailers like Amazon have the legal right to set their own prices independently, but some manufacturers place restrictions on how those prices may be communicated.
If you click a little widget on the graphic it will pop open a small window which tells you the price. I think that this is to prevent some crawler from learning the price.
Now, I understand that prices are pure information about the value of goods and services. As such, I suppose that one could argue that the price is a piece of intellectual property. Just like the iPhone’s multitouch interface is (patented) intellectual property.
But where do we draw the line? Apple, isn’t it enough that you have a multitude of IP patents under your ownership? The patent system is broken and plenty of Apple’s patents seem like they should NOT actually be under patent for an unlimited duration. Really, multitouch on a phone but not on a surface…that’s patentable?
You call that original art? Maybe Wiki is wrong on this point, but it looks like there is prior art. You’ve really gone too far with this your greed Apple. Shame.
Rebuild Project Notes #20 »« Rebuild Project Notes #19
Coming along nicely tonight. The CSS is sweeeeet. The HTML is tight. 171 lines versus 476 of HTML. The YSlow score of the old site is 65 and the score for the new site is a 75. I still haven’t gone all the way with optimization.
There are lots of images on the site that are wayyyy too big. One of the homepage articles had a 500KB header.
The homepage articles are not using the built-in “Read more” thing right now. Maybe I will just go with K2 to get the features, one of which must solve the “Read more” problem.
I think that I should sit down with both my contacts at the company, and get their help in migrating articles over. This would be a nice “boot camp” for their HTML skills and let them know how to best write articles for the site.
Just when I had a nice feeling, I checked my site in IE8 using “Compatibility view” and it was NOT nice. I cannot determine from this check if it is because my site looks bad in IE7, or if it’s because the layers of CSS and frameworks I’ve employed do not work in “Compatibility view.” Of course I wish for the latter.
Intellectual Property Gone Wild »« Rebuild Project Notes #18
Super Tricky
Trying to setup jQuery Cycle script with mootools and superfish menu…a whole lot of disparate javascript libraries that don’t play well together…it’s such a pain. But I finally got it working.
I think the key was to specify no-conflict for the superfish jQuery in my Joomla backend. And then I had to tweak my inline script just a bit…use the jQuery('#myid') syntax instead of $('#myid').
I went through all the jQuery Cycle code and replaced the dollar-sign with jQuery. I think I might be able to undo this, I hope so. I need a clean install/migrate process.
Rebuild Project Notes #19 »« Rebuild Project Notes #17
It’s a Joomla night
I’m trying to figure out how to make this easier to use for them. The two folks over there who are tasked to update the site…they do not know HTML very well. I think that a little bit of training on HTML along with a saner Joomla template will help them out a lot.
So I was just trying to use the TinyMCE editor to create “read more” links for articles on the homepage which show a teaser and a link to “read more.” You’re supposed to use some page-break button in the editor to make this happen, but my editor no longer has that button in it. This linky link had the solution.
Wow, trying to figure out how to suppress output of page titles and it was a real bear to figure it out. In the end I needed to go to the Article Manager, then click the Parameters button in the toolbar. This gave me a nice popup with all kinds of options, one of which was an option to hide/show page titles. There’s more about this over here.
Throughout Joomla there are two different and separate organizational notions. The primary one is the menus, the second one is the Section->Category->Article heirarchy. Being aware of this is critical when it comes to configuring Joomla properly.
My search engine friendly urls seem to be borked. The import is just too tricky at this point in time and somewhere along the line I broke the menus.
Some command line stuff
Tip for tykes: something that I wasn’t aware of until tonight is that your bash shell scripts must use Unix line endings (newline \n) or else you will see some error messages.
The thing that I need to do probably is to just wipe out all the articles I have in the system and rebuild the menu from a clean installation. I need a repeatable process which is very automated through shell scripts. Something that I can just apply in one short process. The best way might be to simply use shell scripts and take a very close look at what’s happening in the database. Lots of database snapshots.
Semantic HTML
I really gotta say that Joomla is awful as far as semantic html and accessibility are concerned. Just awful.
Joomla Template is Hopeless
Until I found the Gantry framework. I think this is going to be the savior of this project. It’s a very modern take on Joomla templates, it is GPL licensed, and highly customizable. I need to test this out a bit.
Rebuild Project Notes #18 »« Rebuild Project Notes #16
Tonight I worked on the search form a bit. I just copied over my index view for the most part…added in the search form up top, I think I should move it to the sidebar. I also think that the homepage of the directory should be the directory itself, if you’re logged in and are paid up.
Getting the pagination stuff right was tough. I’m paging through models of a different type than my controller. I finally got it right when I stopped doing $model->paginate() and did $this->paginate() instead. But it finally worked.
Also spent a bit more time than I’d like to get parameters working in my controller. It was a lame mistake. I think that I need to do something to fix the search form, so that parameters from all sources are passed along to the page. Maybe use the compact() function that I see everywhere in examples.
Rebuild Project Notes #17 »« Rebuild Project Notes #15
I found a nice instructional article about overriding default tag output in CakePHP. The secret is to create app/app_helper.php and call $this->loadConfig(‘tag-library-name’); This was handy for putting a
into my label tag output. I don’t like the inline label thing, best to have the label above the input box, I think.
I’m in phase two now. My days have all been broken up so I’m working in shifts. On the night shift now. Maybe there’ll be another night shift, super late. We will see.
The main site’s HTML is much nicer, I just went through a sample page and fixed the HTML and CSS. I cut out most of what we had before and am just trying to write the most minimal stylesheet that I can. It looks great on all the browsers. I learned this neat tip for styling an RH tag.
hr {
border-color: #cc0000;
border-style: solid;
border-width: 1px 0 0;
clear: both;
margin: 0 0 20px;
height: 0;
width: 635px;
text-align: left;
}
This works great across the browsers.
I’m struggling right now trying to work with Blueprint CSS. I am looking to some other CSS reset options. I might try out YUI’s css reset. It allows you to apply the reset to a specific set of elements. I think this will let my superfish menus play nice with the css reset.
I just flipped the site over to one with a table-based layout. I feel so dirty I think that I will go shower.
Note to self: I did do a clean deploy of the latest cake.
Rebuild Project Notes #16 »« Rebuild Project Notes #14
Going to work on the joomla template some.
Very very slow going…trying to decide how to best organize their Joomla content. I think that I’m going to go ahead and use K2. K2 can be found over here. The built-in content management stuff seems a little too complicated.
Or maybe it is actually quite close to what K2 does. I really can’t yet tell. I can tell you for certain that the built-in Joomla templates are crap. I’m going to avoid using their layouts as much as possible. If K2 lets me workaround that well, then it might be worth it for that one reason.
And while poking around I discovered that you can specify the stylesheet used by the TinyMCE editor. This is going to be a very good development. If you go into the Admin panel and hit the plugins section of the Extensions menu you can find a list of plugins and hit the link for TinyMCE. On this page you will find a bunch of settings, including one which lets you specify the css file to use for the dropdown. If you do not specify it, it will pull up a default file called editor.css.
Rebuild Project Notes #15 »« Setting up google email hosting for your domain