Mastercard 5378581966044200 people - nick coons - nick@hyperionworks.com Crystal Coons - crystal@hyperionworks.com crystle coons chris lewis - across from me - programmer - chris@hyperionworks.com alex - this is chris lewis's child - he is a programmer chris appleing - just north of me - is always on the phone Chris Appling - chris.a@hyperionworks.com chris appling Tara Wooldridge - hangs out with above chris - photo shop and camera tara woolridge - hangs out with above chris - photo shop and camera tara woolridge - english major - english master tara appling - english major - english master tara - for some reason I want to call here dana - Tara@hyperionworks.com mike - mike.diros@hyperionworks.com chris wiggins - indian food guy - bland indian food, but that better then no indian food - libertarian anarchist - wiggins@hyperionworks.com dakota - beard - libertarian - gunsrgood Dakotah McKinnis - Dakotah McKinnis - dakotah@hyperionworks.com - dmckinnis@hyperionworks.com Tara@hyperionworks.com - Tara Wooldridge mike.diros@hyperionworks.com - Mike Diros dakotah@hyperionworks.com - dakotah@hyperionworks.com dakotah@hyperionworks.com - Dakotah McKinnis dmckinnis@hyperionworks.com - Dakotah McKinnis chris@hyperionworks.com - chris@hyperionworks.com nick@hyperionworks.com - Nick Coons crystal@hyperionworks.com - Crystal Coons chris@hyperionworks.com - Chris Lewis chris.a@hyperionworks.com - Chris Appling Wiggins@hyperionworks.com - Chris Wiggins Nick Coons cell - (602)692-6425 Nick Coons cell phone - (602)692-6425 Nick Coons work - (602)445-9832 x111 Nick Coons work phone - (602)445-9832 x111 ----------------------------------------------- when the internet crashes or you have to reset the internet. restarting the internet when it crashes. rebooting the internet when it crashes. 1) go into the tech room 2) on a rack near the ceiling there are two boxes at the top on the top of the rack there is a ladder in the break room that you can use to get up there. 3) unplug the power supplies to both boxes to get things restarted chris wiggins says it takes a few minutes for the internet to reset ----------------------------------------------- this is the find command that I use to grep stuff in subdirectories find -exec grep -nl 'stuff to grep for' '{}' \; find . -exec grep -nl 'stuff to grep for' '{}' \; ----------------------------------------------- default passwords hwpassword - crystal says nick uses hwpassword for a test password Password1 - password nick gave me Amigos666 frogfrogfrog ----------------------------------------------- Servers pandora is really the name of TWO things on my unix or linux box I have a subdirectory called "pandora" where all the code I write and update is stored on. there is ALSO a server called "pandora" which is located in Phoenix. when I use git to say that my software is done git moves my software from the "pandora" subdirectory on my unix/linux machine to the "pandora" server which nick says in in Phoenix. When Nick uses git to move the software I wrote to is final production location it is moved from the "pandora" server to the customers box. ----------------------------------------------- files I need to keep around .bashrc .vimrc bb mike_path - creates a prompt on command line Nicks phones cell - (602)692-6425 cell phone - (602)692-6425 work - (602)445-9832 x111 work phone - (602)445-9832 x111 how to unzip or extract files from a tar file tar -zxpf files.tar.gz tar -zxpf file-to-extract-from tar -xvf jab-forms.tar to use vi editing commands on the unix prompt or linux prompt use set -o vi to dump apache log file from all internet transactions either tail or vi vi copper/apache2/error.log vi /home/mdiros/pandora/copper/apache2/error.log vi /home/mdiros/pandora/bestway-northamerica/apache2/error.log vi /var/log/apache2/error.log - for julian tail -f copper/apache2/error.log tail -f /home/mdiros/pandora/copper/apache2/error.log tail -f /home/mdiros/pandora/bestway-northamerica/apache2/error.log tail -f /var/log/apache2/error.log - for julian to dump dump SQL transactions or SQL queries either tail or vi this file to turn on the sql log set the slow query amount to zero 0 vi /var/log/mysql/mysql-slow.log tail -f /var/log/mysql/mysql-slow.log to set the slow query log or slowquery log make these changes to this file vi /etc/mysql/my.cnf # # Here you can see queries with especially long duration #log_slow_queries = /var/log/mysql/mysql-slow.log log_slow_queries = /var/log/mysql/mysql-slow.log #long_query_time = 2 long_query_time = 0 jsonrpc config stuff is here????? .../pandora copper jsonrpc-1.1 sun lakes possee file upload for class completions or uploading completion certificates 1) create 256 directorys to upload the files to that is so they can be found faster when searching for them files that begin with A go in A subdirectory files that begin with B go in B subdirectory files that begin with C go in C subdirectory 2) do a MIME on the filename to create a new file name or sh1 or whatever it is. 3) in the sql table add 1) the name of the orginal filename 2) its file type 3) its md5, sh1 name or hashed name 4) we need another menu for the instructor or training officer to view the uploaded files 5) these are the files nick sent me .../Downloads/tar_download files.tar.gz methods.d file file_get.php - gets the file so it can be used by the user - after it has been saved file_save.php www Sun Lakes possee login hwadmin Password1 SQL login mysql -u copper -p copper copper-password mysql -u caspian -p caspian Password1 mysql -u bestway_toolbox -p bestway_toolbox bestway_toolbox SQL - dump schema - dump data mysqldump -u copper -p copper --no-data >schema.copper.sql copper-password mysqldump -u copper -p copper --no-create-info > data.copper.sql copper-password SQL - stuff nick says go to the sql subdirectory in each system ie copper and create the above files ie: schema.copper.sql data.copper.sql SQL patch files used by git there are two types of patch files for git 1) patch files that alter the tables these are used to add new fields to the table modify existing fields, or delete fields YYYYMMDD.n.md-description.patch.sql xxxxx - patch says it alters the table - data says its data for the table xxxxxxxxxxx - short description of what was done xx - my initials x - sequence number of the patch files added on this date xxxxxxxx - the date the patch file was created and run 2) patch files that add data or delete data to or from the tables. these are used when we need to add data to the sql tables. in my first case for copper i didnt and any data YYYYMMDD.N.md-description.data.sql xxxx - data says its data for the table - patch says it alters the table xxxxxxxxxxx - short description of what was done xx - my initials x - sequence number of the patch files added on this date xxxxxxxx - the date the patch file was created and run Here is Nicks email on this: The file name takes this format: YYYYMMDD.N.II-description.[patch|data].sql YYYYMMDD - The date the patch was made. N - The sequence of patches for the day starting with 0. So if you make three patches in a single day, they would be 0, 1, and 2. II - Your initials, so we can see who made the patch. description - A very concise description of the change, like "add_category_id". patch|data - This is literally either the word "patch" or "data", depending on the nature of the file (described above). And then it will have a ".sql" extension. Commit this along with the code commits that correspond with the appropriate features and push it up. Email use these two urls to send and receive my Email mail.hyperionworks.com/admin/user mail.hyperionworks.com mike.diros@hyperionworks.com A********* mail.hyperionworks.com/admin/user - get email mail.hyperionworks.com - get email mike.diros@hyperionworks.com - my email address A********* http://mail.hyperionworks.com/admin/user - get email http://mail.hyperionworks.com - get email this is the URL i use to test stuff http://copper.local/ http://copper.local/courses/ windows notepad is called mousepad on this computer windows word is called abiword or AbiWord - it looks like an open office version of word Nicks web site about git or get or cvs http://nvie.com/posts/a-successful-git-branching-model/ to use git you don't have to specify a directory or path. It knows everything. 00) using git to compare files - comparing files with git git diff uploadify.php just go to the subdirectory the file is in and type git diff filename and it will compare the last version of the file with the version of the file in that subdirectory 0) if you want to delete all the change you made to a program and dont want to keep them use git checkout filename it will get the current copy of the program and replace my copy with it. use this when i test a program and put debug statements into it but then I later find out that I dont want to use any of the changes 1) First you go git status filename 2) Second you go git add filename that tells it you are going to finish adding this file name 3) Third you go git commit in this case you don't specify a file name. In this case it then opens up the VI editor and you type in comments about what you did. Nick wants the first line of the comments to be in ALL CAPS and be the TITLE OF WHAT YOU DID. You follow that with a double space. Next you put the comments about what you did. None of the lines should be longer then 72 characters. 3.5) before doing the git push I first should do a git pull this brings down any changes that have been made to the server and merges them with mine. 4) Fourth and last we have to move the file from the local directory to the server where it can be used in production. I think that is done with git push or git push filename I am not sure if you need to put the file name. In this case it then moves the file or files from here to the server ----------------------------------------------- Mike's test credit card numbers to test software with Amex 341111111111111 Amex 341111111111111 amex 343339120938780 amex 343339120938780 amex 347374122546782 amex 347374122546782 Amex 370000000000002 AmEx 370000000000002 Amex 370000000000002 AmEx 370000000000002 AmEx 370000000000002 amex 371449635398431 amex 371449635398431 amex 371805234365305 amex 371805234365305 amex 371834572094244 amex 371834572094244 amex 378282246310005 amex 378282246310005 amex 379081875882170 amex 379081875882170 amexCorp 378734493671000 AmexCorp 378734493671000 AmexCorp 378734493671000 amexCorp 378734493671000 AustralianBankCard 5610591081018250 AustralianBankCard 5610591081018250 Dankort 5019717010103742 Dankort 5019717010103742 Dankort 76009244561 Dankort 76009244561 Diners 30313244646221 Diners 30313244646221 Diners 30374121302577 Diners 30374121302577 Diners 30569309025904 Diners 30569309025904 Diners 38000000000006 Diners 38000000000006 Diners 38000000000006 Diners 38520000023237 Diners 38520000023237 Diners 38643442749019 Diners 38643442749019 Discover 6011000000000012 Discover 6011000000000012 Discover 6011000000000012 Discover 6011000990139424 Discover 6011000990139424 discover 6011091609054773 discover 6011091609054773 Discover 6011111111111117 Discover 6011111111111117 Discover 6011111111111117 Discover 6011111111111117 discover 6011367898207367 discover 6011367898207367 Discover 6011601160116611 Discover 6011601160116611 discover 6011627127307829 discover 6011627127307829 Enroute 201486663217758 Enroute 201486663217758 Enroute 214908516906134 Enroute 214908516906134 Enroute 214975947175837 Enroute 214975947175837 Generic 4111111111111111 Generic 4111111111111111 Generic 4111111111111111 Generic 7777666655554444 Generic 7777666655554444 Generic 7777666655554444 JCB 180025296581332 JCB 180025296581332 JCB 210016384979060 JCB 210016384979060 JCB 210080256188358 JCB 210080256188358 JCB 3088000000000017 JCB 3088000000000017 JCB 3088000000000017 JCB 3096919816438964 JCB 3096919816438964 JCB 3112666074100717 JCB 3112666074100717 JCB 3528396212651516 JCB 3528396212651516 JCB 3530111333300000 JCB 3530111333300000 JCB 3530111333300000 JCB 3530111333300000 JCB 3566002020360505 JCB 3566002020360505 MasterCard 4222222222222 MasterCard 4222222222222 Mastercard 5100222888321898 Mastercard 5100222888321898 MasterCard 5105105105105100 MasterCard 5105105105105100 Mastercard 5125942036465252 Mastercard 5125942036465252 Mastercard 5127414124851874 Mastercard 5127414124851874 Mastercard 5378581966044200 Mastercard 5378581966044200 Mastercard 5380121566532472 Mastercard 5380121566532472 MasterCard 5424000000000015 MasterCard 5424000000000015 MasterCard 5431-1111-1111-1111 MasterCard 5431-1111-1111-1111 MasterCard 5431111111111111 MasterCard 5431111111111111 Mastercard 5438304459758345 Mastercard 5438304459758345 Mastercard 5443557203728194 Mastercard 5443557203728194 Mastercard 548171619442 8791 Mastercard 548171619442 8791 Mastercard 5482740043862066 Mastercard 5482740043862066 Mastercard 5483224253772330 Mastercard 5483224253772330 MasterCard 5555555555554444 MasterCard 5555555555554444 Paymentech 6331101999990016 Paymentech 6331101999990016 PBS 5019717010103742 PBS 5019717010103742 PBS 76009244561 PBS 76009244561 Solo 6331101999990016 Solo 6331101999990016 Switch 6331101999990016 Switch 6331101999990016 VISA 4005550000000019 VISA 4005550000000019 Visa 4007000000027 Visa 4007000000027 Visa 4007000000027 visa 4007722804718694 visa 4007722804718694 Visa 4012888818888 Visa 4012888818888 Visa 4012888818888 Visa 4012888888881881 VISA 4012888888881881 Visa 4012888888881881 Visa 4012888888881881 VISA 4012888888881881 Visa 4012888888881881 visa 4024007172915 visa 4024007172915 Visa 4111111111111111 VISA 4111111111111111 VISA 4111111111111111 Visa 4111111111111111 Visa 4222222222222 Visa 4222222222222 Visa 4222222222222 Visa 4444333322221111 Visa 4444333322221111 visa 4485882675559360 visa 4485882675559360 visa 4485928448215 visa 4485928448215 visa 4532073888696297 visa 4532073888696297 visa 4556407027306 visa 4556407027306 visa 4556762951793970 visa 4556762951793970 visa 4556989866728722 visa 4556989866728722 visa 4716129958671 visa 4716129958671 visa 4716166510764026 visa 4716166510764026 visa 4716241446522 visa 4716241446522 visa 4916388546101043 visa 4916388546101043 visa 4929057458987617 visa 4929057458987617 visa 4929210107724077 visa 4929210107724077 visa 4929856764353244 visa 4929856764353244 Voyager 869904660644843 Voyager 869904660644843 voyager 869939694746651 voyager 869939694746651 voyager 869956410897188 voyager 869956410897188 ------------------------------------------------------ git and sql git does NOT keep track of changes you make to SQL files you have to put a copy of all the commands that you used to modify the sql files and then when you go to the final system you have to manually make those changes. ------------------------------------------------------ getting to the caspian website nick says caspian and best way are the same company and are both involved in selling pool stuff to get to the caspian website that nick just installed on my computer go to: http://caspian.local/dashboard/ the passwords for the testsite are: nickcoons hwpassword frog frogfrogfrog mikes caspian userid and password - frog - frogfrogfrog the bestway site is at: http://www.bestway-northamerica.com/toolbox/ http://www.bestway-northamerica.com I created 3 userids to login into the bestway admin site. They are: frog - superadministrator frog2 - administrator sapomuerto - user the passwords are the normal password I use multipied by 3. You can telnet, putty or ssh into the bestway server site with: ssh bestway-northamerica-com@arachne.hyperionworks.com You can ftp or scp into the bestway server site with: scp bestway-northamerica-com@arachne.hyperionworks.com Nick says that scp is a secure form of ftp scp, which is a secure form of ftp stands for Secure CoPy like SecureCoPy in the unix CP command scp your_username@remotehost.edu:/some/remote/directory/\{a,b,c\} . scp scp bestway-northamerica-com@arachne.hyperionworks.com:/home/bestway-northamerica-com/master/www/toolbox/uploads/* . The images are in /home/bestway-northamerica-com/master/www/toolbox/uploads/* it looks like my machine is not set up to generate PDF files for best way or caspian ------------------------------------------------------ CODE TO ADD AND UPDATE SQL FOREIGN_PRODUCT_ID Before I can modify the code to allow the user to buy or compare products in the notepad I needed to add a new SQL field called foreign_product_id According to Nick the system administrators will have to define a ?foreign_product_id? for every product that they sell. When a potential customer wants to buy or compare a product, my software will use the new ?foreign_product_id? to point them off to the product to buy or compare. I modified the following toolbox administrator programs to allow the administrators to insert, edit and view the new ?foreign_product_id? /toolbox/admin/inc/consultaTutto.php /toolbox/admin/inc/insertTuttoFile.php /toolbox/admin/inc/modificaTutto.php /toolbox/admin/inc/updateTutto.php I added some data definitions to these two programs /toolbox/admin/lang/lang.inc.php /toolbox/admin/conf/confTabMysql.php Later on when I finish the software to allow potential customers to buy and compare products using the notepad I will have to modify the JavaScript function addToWhishlist() which is in the file: /toolbox/js/functions.js And used in these files; /toolbox/inc/getProduct.php /toolbox/inc/getAccessories.php /toolbox/inc/getAccessoriesDetails.php ------------------------------------------------------ git and cloning - cloning is a part of get. OK, cloning is part of git not get. that is my next task cloning several sites so that i can use git to update files on the sites I wrote this script to clone stuff with git The script is in pandora and named it cloneit XXXXXXX XXXXXXX is the name of the site to clone and I clones two sites. First caspian and Second bestway-northamerica Use my cloneit script like this: cloneit caspian cloneit bestway-northamerica #git clone gitosis@pandora.hyperionworks.com:.git #git clone gitosis@pandora.hyperionworks.com:.git # # clone the caspian system # #git clone gitosis@pandora.hyperionworks.com:caspian.git # # clone the caspian system # git clone gitosis@pandora.hyperionworks.com:bestway-northamerica.git I think after you clone it you have to set the sql passwords by logging in as root or something like that. Once they are cloned, you'll need to configure Apache to access them, setup a local hostname in /etc/hosts, configure a local copy of the MySQL DB, and setup the JSON-RPC configuration. I did write down how to do this cloning stuff. Go to this label in this file: cloning_instructions: I forgot how Nick did it for me the first time. But here is the email nick sent me on stuff to do: >When you finish with the tasks you have so far, clone the "julian" git >repository onto your system and get it configured. There are schema and >data SQL files in www/sql once you pull down the repo. I have some >tasks that the client requested on this, which I'll get to you tomorrow. > But for now, pull down the repo and get it setup so you can get >familiar with it. Mikes notes 2: my notes are on the web at: http://copper.local/courses/mikenotes.php Mikes notes: select u.user_id,x.user_id,u.first_name,u.last_name, x.security_id, s.security_id, s.name from user as u, xref_user_security as x, security as s where x.user_id=u.user_id and s.security_id=x.security_id and s.name='Training Officer'; select u.user_id, x.user_id ,u.first_name, u.last_name from user as u, xref_user_security as x where u.user_id=x.user_id; select user.user_id, xref_user_security.user_id ,user.first_name, xref_user_security.security_id, user.last_name, security.security_id, security.name from user inner join xref_user_security on user.user_id=xref_user_security.user_id, security; select user.user_id, xref_user_security.user_id ,user.first_name, xref_user_security.security_id, user.last_name, security.security_id, security.name from user inner join xref_user_security on user.user_id=xref_user_security.user_id inner join security on xref_user_security.security_id=security.security_id; select user.user_id, xref_user_security.user_id ,user.first_name, xref_user_security.security_id, user.last_name, security.security_id, security.name from user inner join xref_user_security on user.user_id=xref_user_security.user_id inner join security on xref_user_security.security_id=security.security_id where security.name='Training Officer'; select user.user_id, xref_user_security.user_id ,user.first_name, xref_user_security.security_id, user.last_name, security.security_id, security.name from user inner join xref_user_security on user.user_id=xref_user_security.user_id inner join security on xref_user_security.security_id=security.security_id where security.name='Training Officer'; select user.user_id, user.first_name, user.last_name, user.email, user.phone_home, user.phone_cell, security.name from user inner join xref_user_security on user.user_id=xref_user_security.user_id inner join security on xref_user_security.security_id=security.security_id where security.name='Training Officer' order by user.last_name, user.first_name; to edit files with root go sudo vi file then enter my password and I can do it. i am set up as root to restart mysql sql MYSQL or SQL sudo service mysql restart to restart apache or apache2 do this sudo /etc/init.d/apache2 restart this is a way to do the join which I have always failed at: $request_query = << ../sites-available/default lrwxrwxrwx 1 root root 31 Sep 27 08:14 copper.local -> ../sites-available/copper.local lrwxrwxrwx 1 root root 32 Oct 16 18:40 caspian.local -> ../sites-available/caspian.local lrwxrwxrwx 1 root root 45 Oct 18 14:29 bestway-northamerica.local -> ../sites-available/bestway-northamerica.local the problem is there is NOT a symbolic link to julian.local -> ../sites-available/julian.local I put one in and stopped and started apache to see if it would work. the fix!!!!!! nick fixed it and got it up and running by 1) creating the symbolic link 2) stopping and starting apache for some reason I did both of those and it did not work!!!!! Here is how to get mikes mysql tables using mikestestarea running mysql -u mikestestarea -p mikestestarea Password1 ----------------------------------------------- specs for bestway stuff DONE - Have a checkbox for each content image to determine whether or not it shows as part of the rotating header. - Create categories for accessories, add accessories to categories, then on the front-end display accessories organized by category. DONE - When showing details of an accessory, it lists the product numbers with which it's associated. Change this to a single column list of product number and name. When hovering over the product number/name, show a popup with the image and description. Here is part of an email I sent to Nick on this: I found the code that generates all the part numbers that are shown when they click on the "details" it is in getAccessoriesDetails.php All the HTML is stored in that programs. To do what they want on this I suspect it will just involve either modifying the current select to return the data they want, or writing a second select to get the data. Then once you have that data, the HTML can be modified on the server side to display the images and other stuff. Again pretty simple stuff to do. But all the work will be figuring out where the data about the images is stored in the SQL tables. Once that is figured out the modifications to the program shouldn't be that hard. >>- When showing details of an accessory, it lists the product numbers >>with which it's associated. Change this to a single column list of >>product number and name. When hovering over the product number/name, >>show a popup with the image and description. - When adding a product to the memopad, it currently only has the ability to delete a product. Make it so that they can click to Buy a product, which will link to purchase the item from the website. Also add a checkbox to compare it where when multiple are selected and Compare is clicked, have it show a table comparing the products. - Refreshing the page and doing a new search does not always work consistently. more on those specs - here is the email I sent Nick on what needs to be done: >- Have a checkbox for each content image to determine whether or not it >shows as part of the rotating header. On the server side 1) create an sql table with display_image - Yes | NO image_URL 2) write a program to display the SQl table and allow them to toggle the display image flag between Yes and No. 3) in the same program allow them to add new images to be displayed. Or perhaps it would be easier to read the image sub-directory and allow them to add the images to the SQL table. 4) Currently it looks like the images are hardcoded on the web page. We would replace the hardcoded images with a simple select that selects the images which are flagged to be displayed and then writes them out to the web page in place of the hardcoded images I suspect that the JavaScript logic would continue to work when used with the new images. Costs - Administrator Menus If I had to write the code for the users to update and edit the images flags it is some pretty trivial code that would take an hour or so. And just to cover my self I would expand that to a few hours. But figuring out their system and writing the code with menus that have the same look and feel as their existing administrator menus is where it would take a lot of time figuring out how their system works so I can copy and clone the trivial code I need to add to allow them to update the display or not display flag. Web-based code. All that needs to be done to the user program is put a simple select in the code to grab the images that the administrator wants to have displayed. The hard part is searching thru their code and finding where to put the select statement. I started to look thru their code and it looks like it has a whole bunch of layers like the copper code. So it may take some time searching down exactly where to add the simple select statement to generate the names of the images to display. >- Create categories for accessories, add accessories to categories, > then on the front-end display accessories organized by category. We talked about this and you think that we can add a column in the product SQL table that tells which category it belongs to. Pretty simple stuff to do. Also we have to modify their existing admin program to allow them to add and update the new category code for each product. That is also a pretty trivial task. But the hard part is searching thru their code and finding where to place the code to allow them to add or edit the new category code for each accessory. On the client side I don't know enough about modern JavaScript to do this. >- When showing details of an accessory, it lists the product numbers >with which it's associated. Change this to a single column list of >product number and name. When hovering over the product number/name, >show a popup with the image and description. I suspect that a computer program is generating this data. I don't know which program and will have to snoop around to find it. A quick guess is that it may take a half day to do the actual work. But again in this case I suspect a lot of the time will be spent figuring out where to put the change. >- When adding a product to the memopad, it currently only has the >ability to delete a product. Make it so that they can click to Buy a >product, which will link to purchase the item from the website. This looks like it needs to be done in the JavaScript code. The code that does that seems to be in the functions.js library and is the function addToWishList(). Looks like a pretty simple change. The difficult part is searching thru their code and finding their code that on other web pages allows them to click to Buy a product, and which will link to purchase the item from the website. >Also add a checkbox to compare it where when multiple are selected and >Compare is clicked, have it show a table comparing the products. On the server side this should be pretty easy. Just do an SQL select and retrieve the information on all the products they want to compare. Since I haven't used json or jquery the time consuming part will be wrapping the data up and sending it back to the remote computer. And again on the client side I don't know enough about modern JavaScript to do this. >- Refreshing the page and doing a new search does not always work >consistently. I don't know enough about modern JavaScript to fix this bug. --------------------------------------- > Hi Mike! > >>> - Have a checkbox for each content image to determine whether or not it >>> shows as part of the rotating header. > >> I suspect they want to put that on an administrators page. > >> That sounds pretty easy to do. > >> An admin page with thumbnail images of all the slider images >> could be displayed. Then they could check the images they >> wish to be displayed and the results could be written to an >> SQL table or a configuration file. > >> If the person clicks on a thumbnail images it could pop up >> the full page in another window. > >> Then when the web page that customers view is run it could >> get the images to display from the SQL table or configuration file. > >> When I looked at the web page it currently looks like there are >> 23 different "slider" images which are displayed. I am not sure >> if they are hard coded or generated by a computer program. > > I believe they are hard-coded. > > Essentially, they already have a lot of product images in the system > that are tied to the products. What they want to do here is to add a > checkbox to each image within the products that will cause it to be > included in the header rotation if the checkbox is checked. > >>> - Create categories for accessories, add accessories to categories, >>> then >>> on the front-end display accessories organized by category. > >> Again I suspect they want to put that on an administrators page. > > Correct. > >> An SQL table which list categories could be created. > >> An administrators web page could be created to add and >> delete categories from the category SQL table. > >> A second SQL table that lists the products assigned to >> each category would be created. > > Why would a second SQL table be needed? Wouldn't this just be a > category_id column in the existing products table? > >> Another administrator web page would be created to >> add or delete products to each category. > > This should be a function of their existing products editing page. > Right now, they can edit products already. So we'd add a field > (probably a