| 1 |
<?php |
<?php |
| 2 |
|
|
| 3 |
// $Id: skeleton.module,v 1.17 2009/03/12 18:22:29 deviantintegral Exp $ |
// $Id: skeleton.module,v 1.18 2009/03/12 18:27:26 deviantintegral Exp $ |
| 4 |
|
|
| 5 |
/** |
/** |
| 6 |
* @file |
* @file |
| 71 |
'file' => 'skeleton_admin.inc', |
'file' => 'skeleton_admin.inc', |
| 72 |
); |
); |
| 73 |
$items['admin/content/skeleton/sync'] = array( |
$items['admin/content/skeleton/sync'] = array( |
| 74 |
'page callback' => 'drupal_get_form', |
'page callback' => 'skeleton_sync_page', |
|
'page arguments' => array('skeleton_sync_form'), |
|
| 75 |
'access arguments' => array('configure skeleton outlines'), |
'access arguments' => array('configure skeleton outlines'), |
| 76 |
'type' => MENU_LOCAL_TASK, |
'type' => MENU_LOCAL_TASK, |
| 77 |
'title' => 'Synchronize', |
'title' => 'Synchronize', |
| 332 |
function skeleton_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) { |
function skeleton_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) { |
| 333 |
switch ($op) { |
switch ($op) { |
| 334 |
case 'load': |
case 'load': |
| 335 |
if ($template = db_fetch_object(db_query("SELECT skeleton_id, template_id, tokens FROM {skeleton_template_node} WHERE nid = %d", $node->nid))) { |
if ($template = db_fetch_object(db_query("SELECT skeleton_id, template_id, tokens FROM {skeleton_template_node} WHERE nid = %d AND template_status != 'overridden'", $node->nid))) { |
| 336 |
$node->skeleton_template = new stdClass(); |
$node->skeleton_template = new stdClass(); |
| 337 |
$node->skeleton_template->skeleton_id = $template->skeleton_id; |
$node->skeleton_template->skeleton_id = $template->skeleton_id; |
| 338 |
$node->skeleton_template->template_id = $template->template_id; |
$node->skeleton_template->template_id = $template->template_id; |
| 350 |
} |
} |
| 351 |
break; |
break; |
| 352 |
case 'update': |
case 'update': |
|
case 'delete': |
|
| 353 |
if (!$node->skeleton_template->keep_connected) { |
if (!$node->skeleton_template->keep_connected) { |
| 354 |
db_query("DELETE FROM {skeleton_template_node} WHERE nid = %d", $node->nid); |
db_query("UPDATE {skeleton_template_node} SET template_status = '%s' WHERE nid = %d", 'overridden', $node->nid); |
| 355 |
} |
} |
| 356 |
break; |
break; |
| 357 |
|
case 'delete': |
| 358 |
|
db_query("DELETE FROM {skeleton_template_node} WHERE nid = %d", $node->nid); |
| 359 |
|
break; |
| 360 |
} |
} |
| 361 |
} |
} |
| 362 |
|
|
| 377 |
module_load_include('inc', 'skeleton', 'skeleton_template'); |
module_load_include('inc', 'skeleton', 'skeleton_template'); |
| 378 |
skeleton_alter_node_form($form, $form_state, $form_id); |
skeleton_alter_node_form($form, $form_state, $form_id); |
| 379 |
} |
} |
| 380 |
else if ($form_node == $form_id && arg(0) == 'admin' && arg(2) == 'skeleton' && arg(3) == 'skeleton' && arg(5) == 'create') { |
else if ($form_node == $form_id && (arg(0) == 'admin' && arg(2) == 'skeleton' && arg(3) == 'skeleton' && arg(5) == 'create') |
| 381 |
|
|| (arg(0) == 'admin' && arg(2) == 'skeleton' && arg(3) == 'sync')) { |
| 382 |
// We need skeleton_id to be defined so forms validate properly. This value |
// We need skeleton_id to be defined so forms validate properly. This value |
| 383 |
// should always be provided by the function instantiating the skeleton. |
// should always be provided by the function instantiating the skeleton. |
| 384 |
$form['skeleton_id'] = array('#type' => 'hidden', '#value' => $form_state['values']['skeleton_id']); |
$form['skeleton_id'] = array('#type' => 'hidden', '#value' => $form_state['values']['skeleton_id']); |
| 385 |
$form['template_id'] = array('#type' => 'hidden', '#value' => $form_state['values']['template_id']); |
$form['template_id'] = array('#type' => 'hidden', '#value' => $form_state['values']['template_id']); |
| 386 |
$form['tokens'] = array('#type' => 'hidden', '#value' => $form_state['values']['tokens']); |
$form['tokens'] = array('#type' => 'hidden', '#value' => $form_state['values']['tokens']); |
| 387 |
} |
} |
| 388 |
} |
} |
| 389 |
|
|
| 390 |
/** |
/** |
| 398 |
* FALSE otherwise. |
* FALSE otherwise. |
| 399 |
*/ |
*/ |
| 400 |
function _skeleton_template_connected($node) { |
function _skeleton_template_connected($node) { |
| 401 |
return user_access('configure skeleton outlines') && db_result(db_query("SELECT COUNT(1) FROM {skeleton_template_node} WHERE nid = %d", $node->nid)); |
return user_access('configure skeleton outlines') && db_result(db_query("SELECT COUNT(1) FROM {skeleton_template_node} WHERE nid = %d AND template_status != 'overridden'", $node->nid)); |
| 402 |
} |
} |
| 403 |
|
|
| 404 |
/** |
/** |