コード例 #1
0
ファイル: ft.wygwam.php プロジェクト: kentonquatman/iofa
 /**
  * Convert URLs to Wygwam Tags.
  *
  * @param $html
  * @return mixed
  */
 private function _convert_urls_to_tags($html)
 {
     $asset_ids = $this->EE->input->post('wygwam_asset_ids');
     $asset_urls = $this->EE->input->post('wygwam_asset_urls');
     // If they select any files using Assets.
     if (!empty($asset_ids) && !empty($asset_urls) && count($asset_ids) == count($asset_urls)) {
         // Convert Asset URLs to tags
         Wygwam_helper::replace_asset_urls($html, $asset_ids, $asset_urls);
     }
     // Convert file URLs to tags
     Wygwam_helper::replace_file_urls($html);
     // Convert page URLs to tags
     Wygwam_helper::replace_page_urls($html);
     return $html;
 }
コード例 #2
0
 /**
  * Save Config
  */
 function config_save()
 {
     // -------------------------------------------
     //  Advanced Settings
     // -------------------------------------------
     $settings = $this->EE->input->post('settings');
     // empty toolbar
     if ($settings['toolbar'] === 'n') {
         $settings['toolbar'] = array();
     }
     // format_tags
     if (isset($settings['format_tags'])) {
         $settings['format_tags'] = implode(';', $settings['format_tags']);
     }
     // lists
     foreach (Wygwam_helper::config_lists() as $list) {
         if (isset($settings[$list])) {
             $settings[$list] = array_filter(preg_split('/[\\r\\n]+/', $settings[$list]));
         }
     }
     // -------------------------------------------
     //  Save and redirect to Index
     // -------------------------------------------
     $config_id = $this->EE->input->post('config_id');
     $config_name = $this->EE->input->post('config_name');
     if (!$config_name) {
         $config_name = 'Untitled';
     }
     $data = array('config_name' => $config_name, 'settings' => base64_encode(serialize($settings)));
     if ($config_id) {
         $this->EE->db->where('config_id', $config_id);
         $this->EE->db->update('wygwam_configs', $data);
     } else {
         $this->EE->db->insert('wygwam_configs', $data);
     }
     // redirect to Index
     $this->EE->session->set_flashdata('message_success', lang('wygwam_config_saved'));
     $this->EE->functions->redirect(BASE . AMP . $this->base . AMP . 'method=configs');
 }
コード例 #3
0
ファイル: config_edit.php プロジェクト: kentonquatman/iofa
echo form_open($base . AMP . 'method=config_save', '', array('config_id' => $config['config_id']));
?>

<?php 
$this->table->set_template($cp_table_template);
$this->table->set_heading(array('colspan' => '2', 'data' => lang('wygwam_config_settings')));
// -------------------------------------------
//  Configuration Name
// -------------------------------------------
$this->table->add_row(array('style' => 'width: 40%;', 'data' => lang('wygwam_config_name', 'config_name')), array('style' => 'padding-right: 13px', 'data' => form_input('config_name', $config['config_name'], 'id="config_name"')));
// -------------------------------------------
//  Toolbar
// -------------------------------------------
$tb_helper_vars = array('tb_groups' => Wygwam_helper::tb_groups(), 'tb_combos' => Wygwam_helper::tb_combos(), 'tb_label_overrides' => Wygwam_helper::tb_label_overrides());
$selections_vars = array('vars' => $tb_helper_vars, 'id' => 'selections', 'groups' => Wygwam_helper::create_toolbar($config['settings']['toolbar'], TRUE), 'selected_groups' => array(), 'selections_pane' => TRUE);
$options_vars = array('vars' => $tb_helper_vars, 'id' => 'options', 'groups' => Wygwam_helper::tb_groups(), 'selected_groups' => $config['settings']['toolbar'], 'selections_pane' => FALSE);
$tb_html = form_hidden('settings[toolbar]', 'n') . '<div id="tb-label">' . lang('wygwam_toolbar', 'toolbar') . '<table align="middle"><tr>' . '<td id="tbhelp1">' . lang('wygwam_toolbar_help1') . '</td>' . '<td id="tbhelp2">' . lang('wygwam_toolbar_help2') . '</td>' . '</tr></table>' . '</div>' . $this->load->view('config_edit_toolbar', $selections_vars, TRUE) . $this->load->view('config_edit_toolbar', $options_vars, TRUE);
$this->table->add_row(array('id' => 'toolbar', 'colspan' => '2', 'data' => $tb_html));
// -------------------------------------------
//  Height
// -------------------------------------------
$this->table->add_row(lang('wygwam_height', 'height'), form_input('settings[height]', $config['settings']['height'], 'id="height" style="width: 3em;"') . form_hidden('settings[resize_enabled]', 'n') . NBS . NBS . NBS . '<label>' . form_checkbox('settings[resize_enabled]', 'y', $config['settings']['resize_enabled'] == 'y') . NBS . lang('wygwam_resizable') . '</label>');
// -------------------------------------------
//  CSS File
// -------------------------------------------
$this->table->add_row(lang('wygwam_css_file', 'css') . '<br />' . lang('wygwam_css_desc'), array('style' => 'padding-right: 13px', 'data' => '<p>' . form_input(array('id' => 'css', 'name' => 'settings[contentsCss]', 'value' => implode($config['settings']['contentsCss']))) . '</p>' . '<label>' . form_checkbox('settings[parse_css]', 'y', $config['settings']['parse_css'] == 'y') . NBS . lang('wygwam_parse_css') . '</label>' . NBS . ' ' . lang('wygwam_parse_css_alt')));
// -------------------------------------------
//  Upload Directory
// -------------------------------------------
$this->table->add_row(lang('wygwam_upload_dir', 'upload_dir'), $upload_dir);
// -------------------------------------------
コード例 #4
0
ファイル: index.php プロジェクト: kentonquatman/iofa
<?php

echo form_open($base . AMP . 'method=save_settings');
$this->table->set_template($cp_table_template);
$this->table->set_heading(array(array('style' => 'width: 50%', 'data' => lang('preference')), lang('setting')));
$this->table->add_row(lang('wygwam_license_key', 'license_key'), form_input('license_key', $license_key, 'id="license_key" style="width: 98%"'));
$file_browser_options = array('ee' => 'EE File Manager', 'ckfinder' => 'CKFinder');
// is Assets installed?
if (Wygwam_helper::is_assets_installed()) {
    $file_browser_options['assets'] = 'Assets';
}
$this->table->add_row(lang('wygwam_file_browser', 'file_browser') . '<br />' . lang('wygwam_file_browser_desc'), form_dropdown('file_browser', $file_browser_options, $file_browser, 'id="file_browser"'));
echo $this->table->generate();
echo form_submit(array('name' => 'submit', 'value' => lang('submit'), 'class' => 'submit'));
echo form_close();
コード例 #5
0
ファイル: mcp.wygwam.php プロジェクト: kentonquatman/iofa
 /**
  * Settings
  */
 function settings()
 {
     $this->EE->load->library('table');
     $this->_set_page_title();
     $vars['base'] = $this->base;
     // add the global settings to the vars
     $vars = array_merge($vars, Wygwam_helper::get_global_settings());
     return $this->EE->load->view('index', $vars, TRUE);
 }
コード例 #6
0
 /**
  * Install
  */
 function install()
 {
     $this->EE->load->dbforge();
     $this->EE->db->insert('modules', array('module_name' => WYGWAM_NAME, 'module_version' => WYGWAM_VER, 'has_cp_backend' => 'y', 'has_publish_fields' => 'n'));
     // -------------------------------------------
     //  Create the exp_wygwam_configs table
     // -------------------------------------------
     if (!$this->EE->db->table_exists('wygwam_configs')) {
         $this->EE->load->dbforge();
         $this->EE->dbforge->add_field(array('config_id' => array('type' => 'int', 'constraint' => 6, 'unsigned' => TRUE, 'auto_increment' => TRUE), 'config_name' => array('type' => 'varchar', 'constraint' => 32), 'settings' => array('type' => 'text')));
         $this->EE->dbforge->add_key('config_id', TRUE);
         $this->EE->dbforge->create_table('wygwam_configs');
     }
     // -------------------------------------------
     //  Populate it
     // -------------------------------------------
     // Do toolbars already exist in the fieldtype's global settings?
     $this->EE->db->select('settings');
     $query = $this->EE->db->get_where('fieldtypes', array('name' => 'wygwam'));
     if ($query->num_rows() && ($ft_settings = unserialize(base64_decode($query->row('settings')))) && is_array($ft_settings) && isset($ft_settings['toolbars']) && is_array($ft_settings['toolbars']) && $ft_settings['toolbars']) {
         $toolbars = $ft_settings['toolbars'];
         foreach ($toolbars as &$toolbar) {
             // stylesCombo_stylesSet => stylesSet
             if (isset($toolbar['stylesCombo_stylesSet'])) {
                 $toolbar['stylesSet'] = $toolbar['stylesCombo_stylesSet'];
                 unset($toolbar['stylesCombo_stylesSet']);
             }
             // remove MediaEmbed
             if (($key = array_search('MediaEmbed', $toolbar)) !== FALSE) {
                 array_splice($toolbar, $key, 1, 'EmbedMedia');
             }
         }
     } else {
         $toolbars = Wygwam_helper::default_toolbars();
     }
     foreach ($toolbars as $name => &$toolbar) {
         $config_settings = array_merge(Wygwam_helper::default_config_settings(), array('toolbar' => $toolbar));
         $this->EE->db->insert('wygwam_configs', array('config_name' => $name, 'settings' => base64_encode(serialize($config_settings))));
     }
     // -------------------------------------------
     //  Get Config IDs
     // -------------------------------------------
     $config_ids = array();
     $this->EE->db->select('config_id, config_name');
     $query = $this->EE->db->get('wygwam_configs');
     foreach ($query->result_array() as $config) {
         $config_ids[$config['config_name']] = $config['config_id'];
     }
     // -------------------------------------------
     //  Update fields
     // -------------------------------------------
     $this->EE->db->select('field_id, field_label, field_settings');
     $query = $this->EE->db->get_where('channel_fields', array('field_type' => 'wygwam'));
     foreach ($query->result_array() as $field) {
         $field_settings = unserialize(base64_decode($field['field_settings']));
         if (!isset($field_settings['toolbar']) || !isset($toolbars[$field_settings['toolbar']])) {
             // wtf is wrong with this?
             continue;
         }
         // create a new config?
         if (isset($field_settings['config']) && $field_settings['config'] || (isset($field_settings['upload_dir']) || $field_settings['upload_dir'])) {
             $new_config_settings = array_merge(Wygwam_helper::default_config_settings(), array('toolbar' => $toolbars[$field_settings['toolbar']]));
             // merge in config settings
             if (isset($field_settings['config']) && $field_settings['config']) {
                 $new_config_settings = array_merge($new_config_settings, $field_settings['config']);
                 unset($field_settings['config']);
             }
             // merge in upload directory
             if (isset($field_settings['upload_dir']) && $field_settings['upload_dir']) {
                 $new_config_settings['upload_dir'] = $field_settings['upload_dir'];
                 unset($field_settings['upload_dir']);
             }
             // add the new config
             $this->EE->db->insert('wygwam_configs', array('config_name' => $field_settings['toolbar'] . ' - ' . $field['field_label'], 'settings' => base64_encode(serialize($new_config_settings))));
             // get its ID
             $this->EE->db->select_max('config_id');
             $query = $this->EE->db->get('wygwam_configs');
             $field_settings['config'] = $query->row('config_id');
         } else {
             $field_settings['config'] = $config_ids[$field_settings['toolbar']];
         }
         unset($field_settings['toolbar']);
         // update the field
         $data = array('field_settings' => base64_encode(serialize($field_settings)));
         $this->EE->db->update('channel_fields', $data, array('field_id' => $field['field_id']));
     }
     return TRUE;
 }
コード例 #7
0
    /**
     * Gets the Pages module data.
     *
     * @static
     * @access private
     * @return array
     */
    private static function _get_pages_mod_data()
    {
        if (!isset(self::$_page_data)) {
            self::$_page_data = array();
            if (($pages = self::_get_site_pages()) && ($page_ids = array_filter(array_keys($pages['uris'])))) {
                $EE = get_instance();
                $query = $EE->db->query('SELECT entry_id, channel_id, title, url_title, status
				                         FROM exp_channel_titles
				                         WHERE entry_id IN (' . implode(',', $page_ids) . ')
				                         ORDER BY entry_id DESC');
                // index entries by entry_id
                $entry_data = array();
                foreach ($query->result_array() as $entry) {
                    $entry_data[$entry['entry_id']] = $entry;
                }
                foreach ($pages['uris'] as $entry_id => $uri) {
                    if (!isset($entry_data[$entry_id])) {
                        continue;
                    }
                    $entry = $entry_data[$entry_id];
                    $url = $EE->functions->create_page_url($pages['url'], $uri);
                    if (!$url || $url == '/') {
                        continue;
                    }
                    self::$_page_data[] = array($entry_id, $entry['channel_id'], $entry['title'], '0', $url);
                }
            }
            // sort by entry title
            if (count(self::$_page_data) > 0) {
                self::$_page_data = self::_subval_sort(self::$_page_data, 2);
            }
        }
        return self::$_page_data;
    }
コード例 #8
0
 /**
  * Pre Process
  */
 function pre_process($data)
 {
     Wygwam_helper::$entry_site_id = isset($this->row['entry_site_id']) ? $this->row['entry_site_id'] : null;
     Wygwam_helper::replace_page_tags($data);
     $this->EE->load->library('typography');
     $tmp_encode_email = $this->EE->typography->encode_email;
     $this->EE->typography->encode_email = FALSE;
     $tmp_convert_curly = $this->EE->typography->convert_curly;
     $this->EE->typography->convert_curly = FALSE;
     $data = $this->EE->typography->parse_type($data, array('text_format' => 'none', 'html_format' => 'all', 'auto_links' => isset($this->row['channel_auto_link_urls']) ? $this->row['channel_auto_link_urls'] : 'n', 'allow_img_url' => isset($this->row['channel_allow_img_urls']) ? $this->row['channel_allow_img_urls'] : 'y'));
     $this->EE->typography->encode_email = $tmp_encode_email;
     $this->EE->typography->convert_curly = $tmp_convert_curly;
     // use normal quotes
     $data = str_replace('&quot;', '"', $data);
     return $data;
 }