ckeditor_link.node.inc in CKEditor Link 7.2
Same filename and directory in other branches
Written by Henri MEDOT <henri.medot[AT]absyx[DOT]fr> http://www.absyx.fr
File
includes/ckeditor_link.node.incView source
<?php
/**
* @file
* Written by Henri MEDOT <henri.medot[AT]absyx[DOT]fr>
* http://www.absyx.fr
*/
/**
* Implementation of hook_ckeditor_link_TYPE_autocomplete().
*/
function ckeditor_link_ckeditor_link_node_autocomplete($string, $limit) {
$matches = array();
$node_types = array_keys(array_filter(variable_get('ckeditor_link_autocomplete_node_types', array(
'- any -' => '- any -',
))));
if (count($node_types)) {
$query = db_select('node', 'n')
->fields('n', array(
'nid',
'title',
))
->condition('n.title', '%' . db_like($string) . '%', 'LIKE')
->orderBy('n.title')
->orderBy('n.type')
->range(0, $limit)
->addTag('node_access');
if (!in_array('- any -', $node_types)) {
$query
->condition('n.type', $node_types, 'IN');
}
$result = $query
->execute();
foreach ($result as $node) {
$matches['node/' . $node->nid] = $node->title;
}
}
return $matches;
}
/**
* Implementation of hook_ckeditor_link_TYPE_revert().
*/
function ckeditor_link_ckeditor_link_node_revert($path, &$langcode) {
if (!preg_match('`^node/(\\d+)$`', $path, $matches)) {
return;
}
$nid = $matches[1];
$query = db_select('node', 'n')
->fields('n', array(
'title',
'language',
))
->condition('n.nid', $nid)
->addTag('node_access');
if ($node = $query
->execute()
->fetchObject()) {
if ($node->language != LANGUAGE_NONE) {
$langcode = LANGUAGE_NONE;
}
return $node->title;
}
return FALSE;
}
/**
* Implementation of hook_ckeditor_link_TYPE_url().
*/
function ckeditor_link_ckeditor_link_node_url($path, $langcode) {
if (!preg_match('`^node/(\\d+)$`', $path, $matches)) {
return;
}
$nid = $matches[1];
$languages = ckeditor_link_get_languages();
if ($languages) {
$language = db_query('SELECT language FROM {node} WHERE nid = :nid', array(
':nid' => $nid,
))
->fetchField();
if ($language && $language != LANGUAGE_NONE && isset($languages[$language])) {
$langcode = $language;
}
}
return ckeditor_link_url("node/{$nid}", $langcode);
}
/**
* Implementation of hook_ckeditor_link_TYPE_settings().
*/
function ckeditor_link_ckeditor_link_node_settings() {
$form['node'] = array(
'#type' => 'fieldset',
'#title' => t('Nodes'),
);
$form['node']['ckeditor_link_autocomplete_node_types'] = array(
'#type' => 'checkboxes',
'#title' => t('Content types'),
'#options' => array(
'- any -' => t('<em>Any content type</em>'),
) + array_map('check_plain', node_type_get_names()),
'#default_value' => variable_get('ckeditor_link_autocomplete_node_types', array(
'- any -' => '- any -',
)),
'#description' => t('Select the content types to be available as autocomplete suggestions.'),
);
return $form;
}
Functions
Name![]() |
Description |
---|---|
ckeditor_link_ckeditor_link_node_autocomplete | Implementation of hook_ckeditor_link_TYPE_autocomplete(). |
ckeditor_link_ckeditor_link_node_revert | Implementation of hook_ckeditor_link_TYPE_revert(). |
ckeditor_link_ckeditor_link_node_settings | Implementation of hook_ckeditor_link_TYPE_settings(). |
ckeditor_link_ckeditor_link_node_url | Implementation of hook_ckeditor_link_TYPE_url(). |