. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** * @file * Code for the mica_devel feature. */ include_once('mica_devel.features.inc'); function mica_devel_menu() { $items = array(); $items['admin/config/development/mica_modules_graph'] = array( 'title' => 'Mica module dependencies graph', 'description' => '', 'page callback' => '_mica_devel_modules_graph', 'access arguments' => array('administer site configuration'), ); $items['admin/config/development/mica'] = array( 'title' => 'Mica Devel', 'description' => 'development tools for Mica', 'page callback' => 'drupal_get_form', 'page arguments' => array('_mica_devel_form'), 'access arguments' => array('administer site configuration'), ); return $items; } function _mica_devel_form() { $form['mica_devel'] = array( '#type' => 'fieldset', '#title' => t('Rebuild menus'), '#description' => t('(Re)populate the database tables used by various menu functions.'), ); $form['mica_devel']['rebuild'] = array( '#type' => 'submit', '#value' => t('Rebuild menus'), '#submit' => array('menu_rebuild'), ); $form['dummy'] = array( '#type' => 'fieldset', '#title' => t('Example'), '#description' => t('Form example to run custom actions'), ); $form['dummy']['run'] = array( '#type' => 'submit', '#value' => t('Run dummy method'), '#submit' => array('_mica_devel_dummy_run'), ); return $form; } function _mica_devel_modules_graph() { $graph = array(); $modules = system_rebuild_module_data(); foreach ($modules as $module => $data) { if (_mica_devel_is_mica_module($module) && (!isset($data->info['hidden']) || !$data->info['hidden'])) { $graph[$module]['edges'] = array(); foreach ($data->info['dependencies'] as $key) { if (_mica_devel_is_mica_module($key) && $module != $key) { $graph[$module]['edges'][$key] = 1; } } $graph[$module]['data'] = array( 'title' => $module, 'content' => print_r($data, TRUE), 'background-color' => "#00ff00", ); } } // dpm($graph); $config = array( 'id' => 'mica_modules_graph', 'width' => 900, 'height' => 700, 'engine' => 'graph_phyz', 'menu' => TRUE, 'background-color' => '#ccc', 'animate' => TRUE, 'randomize' => TRUE, 'showForces' => FALSE, 'applyAttractToCenter' => TRUE, 'applyBoundingBox' => TRUE, 'applyBoxOverlap' => TRUE, 'applyCoulombsLaw' => TRUE, 'applyDamping' => TRUE, 'applyHookesLaw' => TRUE, 'applyCompass' => TRUE, ); return theme('graphapi_dispatch', array('graph' => $graph, 'config' => $config)); } function _mica_devel_is_mica_module($module) { return substr($module, 0, strlen("mica")) === "mica"; } function _mica_devel_dummy_run() { drupal_set_message(t("Run dummy method...")); }