Recently I am involved in a project to create an extranet for an organization. Besides normal CMS functions, the organization also requested some additional features. Although CCK (or creating a new module) is capable to do most of the work, but I find CCK very restricting. For example, when working with computed field, debugging will be extremely painful to do because I only get the result once the field value is saved into the database.

I am thinking of using a php framework called CodeIgniter (CI) to fulfil the additional requirements as CI is easier to work with. However after spending hours digging through the documentation (although some parts are incomplete but I really like drupal doc), I can't seem to find a way to import a subset of drupal functionalities into an external app, well, at least the documentation here ( http://drupal.org/node/32178 ) not very complete. Is there any other places where I can find some articles on this topic?

Oh, the Drupal version we are using is 5.7

Comments

jjkd’s picture

While it isn't CodeIgniter, you might want to take a look at the Drake project: http://drupal.org/project/drake to see an example of how this was approached with another PHP framework. While that project doesn't seem to have much recent activity or support for Drupal 6, there is a release marked as for Drupal 5.

--
Joe Kyle
--jjkd--

Jeffrey04’s picture

Thanks for the information.

I am currently experimenting with the integration thing and came out with a drupal module (currently named 'cheeseburger'). However, there are still a lot of work to be done as I don't know why some of the global variables in CI seems to have some problems.

<?php
    // codeigniter module

    function cheeseburger_help() {
    }

    function cheeseburger_perm() {
        return array('access cheeseburger content');
    }

    function cheeseburger_menu() {
        $items = array();

        $items[] = array(
            'path' => 'cheeseburger',
            'title' => t('Cheeseburger'),
            'callback' => 'cheeseburger_ci',
            'access' => user_access('access cheeseburger content'),
            'type' => MENU_CALLBACK
        );

        return $items;
    }

    function cheeseburger_ci() {
        // process the query string
        $_SERVER['PATH_INFO'] = $_GET['q'];
        require_once dirname(__FILE__) . '/index.php';
    }