,259c1
< <?php
< /*********************************************
<  * Installation profile for a small business website.   *
<  *********************************************/
< 
< /**
<  * Return an array of the modules to be enabled when this profile is installed.
<  *
<  * @return
<  *   An array of modules to enable.
<  */
< function sb_profile_modules() {
<   return array('color', 'comment', 'help', 'menu', 'taxonomy', 'dblog');
< }
< 
< /**
<  * Return a description of the profile for the initial installation screen.
<  *
<  * @return
<  *   An array with keys 'name' and 'description' describing this profile,
<  *   and optional 'language' to override the language selection for
<  *   language-specific profiles.
<  */
< function sb_profile_details() {
<   return array(
<     'name' => 'Small Business',
<     'description' => 'This installation profile sets up a simple Small Business website. '
<   );
< }
< 
< function create_new_node($node) {
< 	 db_query("INSERT INTO {node} (nid,vid,type,title,uid,status,created,changed,comment,promote,moderate,sticky)
< 			  VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','0','%s','0','%s')",
< 			  $node['nid'], $node['vid'],$node['type'], $node['title'], '1', $node['status'], $time, $time, 
< 			  $node['promote'], $node['sticky']);
< 			  
<      db_query("INSERT INTO {node_revisions} (nid, vid, uid, title, body, teaser, log, timestamp, format)
< 				VALUES ('%s', '%s', '1', '%s', '%s', '%s', '', '%i', '1')",
< 				$node['nid'], $node['vid'], $node['title'], $node['body'],$node['teaser'], $time);
< }
< 
< /**
<  * Return a list of tasks that this profile supports.
<  *
<  * @return
<  *   A keyed array of tasks the profile will perform during
<  *   the final stage. The keys of the array will be used internally,
<  *   while the values will be displayed to the user in the installer
<  *   task list.
<  */
< function sb_profile_task_list() {
< }
< 
< /**
<  * Perform any final installation tasks for this profile.
<  *
<  * The installer goes through the profile-select -> locale-select
<  * -> requirements -> database -> locale-initial-batch -> configure
<  * -> locale-remaining-batch -> finished -> done tasks in this order,
<  * if you don't implement this function in your profile.
<  *
<  * If this function is implemented, you can have any number of
<  * custom tasks to perform after 'configure', implementing a state
<  * machine here to walk the user through those tasks. First time,
<  * this function gets called with $task set to 'profile', and you
<  * can advance to further tasks by setting $task to your tasks'
<  * identifiers, used as array keys in the hook_profile_task_list()
<  * above. You must avoid the reserved tasks listed in
<  * install_reserved_tasks(). If you implement your custom tasks,
<  * this function will get called in every HTTP request (for form
<  * processing, printing your information screens and so on) until
<  * you advance to the 'profile-finished' task, with which you
<  * hand control back to the installer. Each custom page you
<  * return needs to provide a way to continue, such as a form
<  * submission or a link. You should also set custom page titles.
<  *
<  * You should define the list of custom tasks you implement by
<  * returning an array of them in hook_profile_task_list(), as these
<  * show up in the list of tasks on the installer user interface.
<  *
<  * Remember that the user will be able to reload the pages multiple
<  * times, so you might want to use variable_set() and variable_get()
<  * to remember your data and control further processing, if $task
<  * is insufficient. Should a profile want to display a form here,
<  * it can; the form should set '#redirect' to FALSE, and rely on
<  * an action in the submit handler, such as variable_set(), to
<  * detect submission and proceed to further tasks. See the configuration
<  * form handling code in install_tasks() for an example.
<  *
<  * Important: Any temporary variables should be removed using
<  * variable_del() before advancing to the 'profile-finished' phase.
<  *
<  * @param $task
<  *   The current $task of the install system. When hook_profile_tasks()
<  *   is first called, this is 'profile'.
<  * @param $url
<  *   Complete URL to be used for a link or form action on a custom page,
<  *   if providing any, to allow the user to proceed with the installation.
<  *
<  * @return
<  *   An optional HTML string to display to the user. Only used if you
<  *   modify the $task, otherwise discarded.
<  */
< function sb_profile_tasks(&$task, $url) {  
<   //Todo: Set settings 
<   //Todo: (optional) Create Small Business theme
<   
<   $site_name = variable_get('site_name', "Example Company");
<   variable_set('site_footer', st('Copyright &copy; 2007 ').$site_name);
<   
<   $node_types = array( //This is where all the node types go
<     array(
<       'type' => 'page',
<       'name' => st('Page'),
<       'module' => 'node',
<       'description' => st("Use this node to create static pages. This page doesn't allow comments and doesn't get featured on the front page."),
<       'custom' => TRUE,
<       'modified' => TRUE,
<       'locked' => FALSE,
<       'help' => '',
< 	  'min_word_count' => '',
< 	),
< 	array(
<       'type' => 'story',
<       'name' => st('Blog'),
< 	  'module' => 'node',
<       'description' => st("Use this node type to publish day to day updates. This type will feature on the front page and allows comments."),
<       'custom' => TRUE,
<       'modified' => TRUE,
<       'locked' => FALSE,
<       'help' => '',
<       'min_word_count' => '',
< 	),
<    );
< 
<    foreach ($node_types as $type) {
<      $type = (object) _node_type_set_defaults($type);
<      node_type_save($type);
<    }
<    menu_rebuild();
<    
<    //Create nodes (About us....)
<    $nodes = array(
<      array(
<        'nid' => 1,
<        'vid' => 1,
<        'status' => 1,
<        'promote' => 0,
<        'sticky' => 0,
<        'type' => 'page',
<        'title' => st('About Us'),
<        'body' => st("This is a page describing what the company does. 
< Some possible content may include history of the company, location, and testimonials.
< Modify this page with your own content."),
<      ),
<      array(
<        'nid' => 2,
<        'vid' => 2,
<        'status' => 1,
<        'promote' => 0,
<        'sticky' => 0,
<        'type' => 'page',
<        'title' => st('Contact Us'),
<        'body' => st("Contact ".variable_get('site_name', "Example Site").":
<     
<     890 Nowhere Drive
<     P.O. Box 485
<     Schenectady, NY 12345
<     (678) 901-2345
<     ".variable_get('site_mail', "sales@example.com")."
< 	Edit this page with your content"),
< 	 ),
<      array(
< 	   'nid' => 3,
< 	   'vid' => 3,
< 	   'status' => 1,
< 	   'promote' => 0,
< 	   'sticky' => 0,
< 	   'type' => 'page',
< 	   'title' => st('Services Offered'),
< 	   'body' => st("This page is to tell your visitors what services you offer.
<     
< <h3>Sample Service</h3>
< Services can be separated by headings, as shown above.
<     
< <h3>Sample Service 2</h3>
< When writing service descriptions, you should include either prices or e-mails to get quotes, especially to a member of your business in that department. Also add details.','This page is to tell your visitors what services you offer.
<    
< <h3>Sample Service</h3>
< Services can be separated by headings, as shown above.
<     
< <h3>Sample Service 2</h3>
< When writing service descriptions, you should include either prices or e-mails to get quotes, especially to a member of your business in that department. Also add details."),
< 	 ),
< 	 array(
< 	   'nid' => 4,
< 	   'vid' => 4,
< 	   'status' => 1,
< 	   'promote' => 0,
< 	   'sticky' => 0,
< 	   'type' => 'page',
< 	   'title' => st('Latest News'),
< 	   'body' => st("Put all your news here"),
< 	 ),
< 	 array(
< 	   'nid' => 5,
< 	   'vid' => 5,
< 	   'status' => 1,
< 	   'promote' => 1,
< 	   'sticky' => 0,
< 	   'type' => 'story',
< 	   'title' => st('Welcome'),
< 	   'body' => st("Welcome to this new Small Business website. You can change this content in the Administration."),
< 	   'teaser' => st("Welcome to this new Small Business website. You can change this content in the Administration."),
< 	 ),
<    );
<    
<    $time = time();
<    foreach ($nodes as $node) {
<      //$node = node_submit($node); //Doesn't seem to work using db_query instead to directly insert data
< 	 //node_save($node);
< 	 
< 	 create_new_node($node);
< 
< 	 if($node['type'] == "page") { //This links the newly created node to the primary-link
< 	   $links = array(
< 	     'menu_name' => 'primary-links',
< 	     'link_path' => 'node/'.$node['nid'],
< 	     'link_title' => $node['title'],
< 	   );
< 	   menu_link_save($links);
< 	 }
<    }
<    create_new_node( array( //Creates error pages
<      'nid' => 6,
< 	 'vid' => 6,
< 	 'status' => 1,
< 	 'promote' => 0,
< 	 'sticky' => 0,
< 	 'type' => 'page',
< 	 'title' => st('Page Not Found'),
< 	 'body' => st("Oops!! It looks as the page you are a looking for no longer exists or your URL is
<      incorrectly formatted"),
<    ));
<    create_new_node( array( //Creates error pages
<      'nid' => 7,
< 	 'vid' => 7,
< 	 'status' => 1,
< 	 'promote' => 0,
< 	 'sticky' => 0,
< 	 'type' => 'page',
< 	 'title' => st('Access Denied'),
< 	 'body' => st("You're not authorised to view this page"),
<    ));
<    variable_set('site_404', 'node/6');
<    variable_set('site_403', 'node/7');
<    //variable_set('theme_default', 'pushbutton'); //Disables the navigation menu when done this way
< }
< ?>
\ No newline at end of file
---
\> <!-- -->
\ No newline at end of file
