Changeset 26370


Ignore:
Timestamp:
06/15/10 20:50:03 (7 years ago)
Author:
flack
Message:

synchronize with ragna branch

Location:
branches/developers/flack/acltuning
Files:
18 edited
57 copied

Legend:

Unmodified
Added
Removed
  • branches/developers/flack/acltuning/Pakefile.php

    r26138 r26370  
    188188}
    189189
    190 function choose_component_revision__svn($component_name)
     190function choose_component_revision__svn($component_dir)
    191191{
    192192    $svn_commit = trim(pake_sh("svn info ".escapeshellarg($component_dir)." 2>/dev/null|grep 'Last Changed Rev'|cut -d ' ' -f 4"));
  • branches/developers/flack/acltuning/midcom.core/midcom/baseclasses/components/handler/crud.php

    r26304 r26370  
    147147     * Method for adding or updating an object to the MidCOM indexer service.
    148148     *
    149      * @param Datamanager2 instance containing the object
    150      */
    151     public function _index_object($datamanager)
     149     * @param $dm Datamanager2 instance containing the object
     150     * @todo implement this properly now it's just a stub
     151     */
     152    public function _index_object(&$dm)
    152153    {
    153154        return;
  • branches/developers/flack/acltuning/midcom.core/midcom/config/midcom_config.php

    r26302 r26370  
    691691 * same or partly the same content tree.) This is because lang0 and auto
    692692 * workflow related code is only active when either of the settings is set.
     693 *
     694 * Note: If you later disable this feature and execute the multilangs.php or
     695 * multilang.php script automatically generated lang0 content is deleted. If
     696 * you want duplicate langX content to be deleted instead (so that master
     697 * content is left to lang0 instead of langX - please note that you might of
     698 * course get mixed language contents to lang0 then - it's a feature not a
     699 * bug), define this setting as array('') before you run the script. (Naturally
     700 * you can remove it after you've executed the script.)
    693701 *
    694702 * If disabled, define an empty array or false/null.
     
    752760 * content (if lang0 has same content as langX) which you naturally don't
    753761 * want to happen if you actually use lang0 content for something.
     762 *
     763 * Note: If you later disable this feature and execute the multilangs.php or
     764 * multilang.php script automatically generated langX content is deleted.
    754765 *
    755766 * If disabled, define an empty array or false/null.
  • branches/developers/flack/acltuning/midcom.core/midcom/core/collector.php

    r26329 r26370  
    341341            }
    342342
    343             if (    $this->_user_id
    344                 && !$_MIDCOM->auth->acl->can_do_byguid('midgard:read', $object_guid, $classname, $this->_user_id))
    345             {
    346                 debug_add("Failed to load result, read privilege on {$object_guid} not granted for the current user.", MIDCOM_LOG_INFO);
    347                 $this->denied++;
    348                 continue;
    349             }
    350 
    351343            // We need to skip this one, because we are outside the offset.
    352344            if (   $this->_offset > 0
  • branches/developers/flack/acltuning/midcom.core/midcom/services/multilang.php

    r26313 r26370  
    196196            {
    197197                $object_lang = null;
    198                 try
    199                 {
    200                     $language = new midgard_language($object_in_lang->lang);
    201                     $object_lang = $language->code;
    202                 }
    203                 catch (Exception $e)
    204                 {
    205                     // Nothing to do. If DB is missing the language, strict fails then.
     198                if (!$object_in_lang->lang)
     199                {
     200                    $object_lang = '';
     201                }
     202                else
     203                {
     204                    try
     205                    {
     206                        $language = new midgard_language($object_in_lang->lang);
     207                        $object_lang = $language->code;
     208                    }
     209                    catch (Exception $e)
     210                    {
     211                        // Nothing to do. If DB is missing the language, strict fails then.
     212                    }
    206213                }
    207214
     
    290297        if ($is_update)
    291298        {
     299            $lang_exists = false;
    292300            $lang0_exists = false;
    293301
     
    302310                    }
    303311
     312                    if ($language->code == $real_lang)
     313                    {
     314                        $lang_exists = true;
     315                    }
    304316                    if ($language->id == 0)
    305317                    {
     
    355367                        $object->purge_parameters($constraints);
    356368
    357                         if ($real_lang)
     369                        if (   $real_lang
     370                            && $lang_exists
     371                            && !midgard_connection::get_default_lang())
    358372                        {
    359373                            if ($lang0 === true && !$lang0_exists)
     
    364378                                midgard_connection::set_lang($real_lang);
    365379                                self::is_real(true);
     380
     381                                $lang0_exists = true;
    366382                            }
    367383
    368                             if (   !midgard_connection::get_default_lang()
    369                                 || self::get_object_in_lang($object, self::get_default_lang()))
     384                            if ($lang0_exists)
    370385                            {
    371386                                self::is_real(false);
     
    381396                {
    382397                    $object->set_parameter($domain, $real_lang, true);
    383 
    384                     if (   !$GLOBALS['midcom_config']['multilang_lang0_langs']
    385                         && !isset($langs['']))
    386                     {
    387                         if (!$object->lang)
    388                         {
    389                             self::is_real(false);
    390                             $object->update();
    391                             self::is_real(true);
    392                         }
    393 
    394                         if (   $object_in_lang0 = self::get_object_in_lang($object, '', true)
    395                             && self::are_objects_equal($object, $object_in_lang0))
    396                         {
    397                             self::is_real(false);
    398                             self::set_default_lang_to_lang();
    399 
    400                             midgard_connection::set_lang('');
    401                             $object_in_lang0->delete();
    402                             midgard_connection::set_lang($real_lang);
    403 
    404                             self::set_default_lang_back();
    405                             self::is_real(true);
    406                         }
    407                     }
    408398                }
    409399
     
    421411                {
    422412                    return;
     413                }
     414            }
     415
     416            if ($lang0 === true || !$lang0)
     417            {
     418                if (   !$lang_exists
     419                    && !midgard_connection::get_default_lang())
     420                {
     421                    self::is_real(false);
     422                    $object->update();
     423                    self::is_real(true);
     424
     425                    $lang_exists = true;
     426                }
     427            }
     428
     429            if (   $lang0 !== true
     430                && !$GLOBALS['midcom_config']['multilang_lang0_langs']
     431                && !isset($langs['']))
     432            {
     433                if (   $lang_exists
     434                    && $lang0_exists
     435                    && $object_in_lang0 = self::get_object_in_lang($object, '', true)
     436                    && self::are_objects_equal($object, $object_in_lang0))
     437                {
     438                    self::is_real(false);
     439                    self::set_default_lang_to_lang();
     440
     441                    midgard_connection::set_lang('');
     442                    $object_in_lang0->delete();
     443                    midgard_connection::set_lang($real_lang);
     444
     445                    self::set_default_lang_back();
     446                    self::is_real(true);
    423447                }
    424448            }
     
    451475    }
    452476
    453     function syncs($object, $is_update = true)
    454     {
    455         if (!self::is_real()) return;
     477    function syncs($object, $is_update = null)
     478    {
     479        if (!self::is_real()) return;
     480
     481        $auto = true;
     482        if (is_null($is_update))
     483        {
     484            $is_update = true;
     485            $auto = false;
     486        }
    456487
    457488        static $domain;
     
    461492        }
    462493
    463         $auto = false;
    464 
    465494        if ($GLOBALS['midcom_config']['multilang_auto_langs'])
    466495        {
    467             $auto = true;
    468496            self::sync($object, self::langs($GLOBALS['midcom_config']['multilang_auto_langs']), $domain, $is_update, false);
    469497        }
     
    471499        if ($GLOBALS['midcom_config']['multilang_lang0_langs'])
    472500        {
    473             $auto = true;
    474501            self::sync($object, self::langs($GLOBALS['midcom_config']['multilang_lang0_langs']), $domain, $is_update, true);
    475502        }
     
    477504        if (!$auto)
    478505        {
    479             self::sync($object, self::langs(array('', self::get_lang())), $domain, $is_update, 'disabled');
     506            if ($languages = $object->get_languages())
     507            {
     508                $real_lang = self::get_lang();
     509
     510                $object_langs = array();
     511                foreach ($languages as $language)
     512                {
     513                    if (!$object->get_parameter($domain, $language->code))
     514                    {
     515                        $object_langs[] = $language->code;
     516                    }
     517                }
     518
     519                foreach ($languages as $language)
     520                {
     521                    if (   $GLOBALS['midcom_config']['multilang_auto_langs']
     522                        && in_array($language->code, $GLOBALS['midcom_config']['multilang_auto_langs']))
     523                    {
     524                        continue;
     525                    }
     526
     527                    if (   $GLOBALS['midcom_config']['multilang_lang0_langs']
     528                        && in_array($language->code, $GLOBALS['midcom_config']['multilang_lang0_langs']))
     529                    {
     530                        continue;
     531                    }
     532
     533                    $langs = array($language->code);
     534
     535                    $delete = false;
     536                    if (!in_array($language->code, $object_langs))
     537                    {
     538                        $delete = true;
     539                    }
     540                    else if ($GLOBALS['midcom_config']['multilang_lang0_langs'] == array(''))
     541                    {
     542                        array_unshift($langs, '');
     543                    }
     544
     545                    midgard_connection::set_lang($language->code);
     546                    self::sync($object, self::langs($langs), $domain, $is_update, 'disabled');
     547                    midgard_connection::set_lang($real_lang);
     548
     549                    if ($delete)
     550                    {
     551                        self::is_real(false);
     552                        $default_lang = self::get_default_lang();
     553                        if ($lang = array_shift($object_langs))
     554                        {
     555                            // Not at all needed but prefer lang0 if it can be used
     556                            if (   $lang != ''
     557                                && $language->code != '')
     558                            {
     559                                if (in_array('', $object_langs))
     560                                {
     561                                    $lang = '';
     562                                }
     563                            }
     564                            midgard_connection::set_default_lang($lang);
     565                        }
     566                        else
     567                        {
     568                            continue;
     569                        }
     570                        midgard_connection::set_lang($language->code);
     571                        $object->delete();
     572                        midgard_connection::set_default_lang($default_lang);
     573                        midgard_connection::set_lang($real_lang);
     574                        self::is_real(true);
     575                    }
     576                }
     577            }
    480578        }
    481579    }
  • branches/developers/flack/acltuning/midcom.helper.datamanager2/datamanager.php

    r25935 r26370  
    543543        echo "<div class=\"midcom_helper_datamanager2_view\">\n";
    544544        $fieldset_count = 0;
    545         foreach ($this->schema->fields as $name => $config)
     545        foreach ($this->schema->field_order as $name)
    546546        {
    547547            if ($this->_schema_field_is_broken($name))
     
    549549                continue;
    550550            }
     551            $config =& $this->schema->fields[$name];
    551552            if (   isset($config['hidden'])
    552553                && $config['hidden'])
  • branches/developers/flack/acltuning/midcom.helper.datamanager2/static/chooser/jquery.chooser_widget.js

    r25960 r26370  
    455455            var creation_url = options.creation_handler;
    456456           
     457            creation_url += '?chooser_widget_id=' + options.widget_id;
    457458            if (last_term != 'undefined')
    458459            {
    459                 creation_url += '?defaults[' + options.creation_default_key + ']=' + last_term;
     460                creation_url += '&defaults[' + options.creation_default_key + ']=' + last_term;
    460461            }
    461462           
  • branches/developers/flack/acltuning/midcom.helper.reflector/config/config.inc

    r25928 r26370  
    3636    'midcom_core_temporary_object_db' => false,
    3737    'org_routamc_positioning_country' => false,
     38    'net_hurttakallio_library_item' => 'barcode',
    3839),
    3940/**
  • branches/developers/flack/acltuning/net.nehmer.blog/config/config.inc

    r25466 r26370  
     1//<?php//hack for syntax highlighters
     2
    13// Schema database to use
    24'schemadb' => 'file:/net/nehmer/blog/config/schemadb_default.inc',
     
    4143
    4244'comments_enable' => false,
     45'ajax_comments_enable' => false,
    4346'comments_topic' => '',
    4447
  • branches/developers/flack/acltuning/net.nehmer.blog/config/schemadb_config.inc

    r25254 r26370  
     1//<?php array(//hack for syntax highlighters
    12'config' => array
    23(
     
    243244                'widget' => 'select',
    244245            ),
     246            'ajax_comments_enable' => array
     247            (
     248                'title' => 'ajax_comments_enable',
     249                'storage' => array
     250                (
     251                    'location' => 'configuration',
     252                    'domain' => 'net.nehmer.blog',
     253                    'name' => 'ajax_comments_enable',
     254                ),
     255                'type' => 'select',
     256                'type_config' => array
     257                (
     258                    'options' => array
     259                    (
     260                        '' => 'default setting',
     261                        '1' => 'yes',
     262                        '0' => 'no',
     263                    ),
     264                ),
     265                'widget' => 'select',
     266            ),
    245267            'ajax_enable' => array
    246268            (
  • branches/developers/flack/acltuning/net.nehmer.blog/handler/index.php

    r26069 r26370  
    214214        $data['index_fulltext'] = $this->_config->get('index_fulltext');
    215215
     216        if ($this->_config->get('ajax_comments_enable'))
     217        {
     218            $_MIDCOM->componentloader->load('net.nehmer.comments');
     219
     220            $comments_node = $this->_seek_comments();
     221
     222            if ($comments_node)
     223            {
     224                $this->_request_data['ajax_comments_enable'] = true;
     225                $this->_request_data['base_ajax_comments_url'] = $comments_node[MIDCOM_NAV_RELATIVEURL] . "comment/";
     226            }
     227        }
     228
    216229        midcom_show_style('index-start');
    217230
     
    284297        return true;
    285298    }
     299
     300    // helpers follow
     301    /**
     302     * Try to find a comments node (cache results)
     303     *
     304     * @access private
     305     */
     306    private function _seek_comments()
     307    {
     308        if ($this->_config->get('comments_topic'))
     309        {
     310            // We have a specified photostream here
     311            $comments_topic = new midcom_db_topic($this->_config->get('comments_topic'));
     312            if (   !is_object($comments_topic)
     313                || !isset($comments_topic->guid)
     314                || empty($comments_topic->guid))
     315            {
     316                return false;
     317            }
     318
     319            // We got a topic. Make it a NAP node
     320            $nap = new midcom_helper_nav();
     321            $comments_node = $nap->get_node($comments_topic->id);
     322
     323            return $comments_node;
     324        }
     325
     326        // No comments topic specified, autoprobe
     327        $comments_node = midcom_helper_find_node_by_component('net.nehmer.comments');
     328
     329        // Cache the data
     330        if ($_MIDCOM->auth->request_sudo('net.nehmer.blog'))
     331        {
     332            $this->_topic->parameter('net.nehmer.blog', 'comments_topic', $comments_node[MIDCOM_NAV_GUID]);
     333            $_MIDCOM->auth->drop_sudo();
     334        }
     335
     336        return $comments_node;
     337    }
    286338}
    287339?>
  • branches/developers/flack/acltuning/net.nehmer.blog/locale/default.en.txt

    r25280 r26370  
    8080---STRINGEND
    8181
     82---STRING ajax_comments_enable
     83Show comments in listing (using AJAX, requires the net.nehmer.comments component)
     84---STRINGEND
     85
    8286---STRING content
    8387Content
  • branches/developers/flack/acltuning/net.nehmer.blog/style/index-item.php

    r26069 r26370  
    1616$published = sprintf($data['l10n']->get('posted on %s.'), "<abbr title=\"" . strftime('%Y-%m-%dT%H:%M:%S%z', $data['article']->metadata->published) . "\">" . strftime('%x %X', $data['article']->metadata->published) . "</abbr>");
    1717
    18 if (array_key_exists('comments_enable', $data))
     18if (array_key_exists('ajax_comments_enable', $data))
    1919{
    20     $published .= " <a href=\"{$data['local_view_url']}#net_nehmer_comments_{$data['article']->guid}\">" . sprintf($data['l10n']->get('%s comments'), net_nehmer_comments_comment::count_by_objectguid($data['article']->guid)) . "</a>.";
     20    $published .= ' <a href="#switch_comments" onClick="showAjaxComments(this, \''.$data['article']->guid.'\'); return false;">'
     21                    .sprintf($data['l10n']->get('%s comments'), net_nehmer_comments_comment::count_by_objectguid($data['article']->guid))
     22                    ."</a>.";
     23}
     24elseif (array_key_exists('comments_enable', $data))
     25{
     26    $published .= " <a href=\"{$data['local_view_url']}#net_nehmer_comments_{$data['article']->guid}\">"
     27                    .sprintf($data['l10n']->get('%s comments'), net_nehmer_comments_comment::count_by_objectguid($data['article']->guid))
     28                    ."</a>.";
    2129}
    2230?>
     
    5159        <?php
    5260    }
     61
     62    if ($data['ajax_comments_enable'])
     63    {
     64        echo '<div class="ajax_comments_container" style="display: none;"></div>';
     65    }
    5366    ?>
    5467</div>
  • branches/developers/flack/acltuning/net.nehmer.blog/style/index-start.php

    r5048 r26370  
    44//$data =& $_MIDCOM->get_custom_context_data('request_data');
    55?>
     6<?php if (array_key_exists('ajax_comments_enable', $data)): ?>
     7<script type="text/javascript" charset="utf-8">
     8var base_ajax_comments_url = MIDCOM_PAGE_PREFIX + '<?php echo $data['base_ajax_comments_url']; ?>';
     9function showAjaxComments(element, guid)
     10{
     11    var container = $(element).parent().siblings('.ajax_comments_container');
     12    if (container.text().length) {
     13        container.slideUp(function(){ $(this).text(''); });
     14    } else {
     15        container.load(base_ajax_comments_url + guid, function(){ $(this).slideDown(); });
     16    }
     17}
     18</script>
     19<?php endif; ?>
    620
    721<h1><?php echo $data['page_title']; ?></h1>
  • branches/developers/flack/acltuning/net.nehmer.blog/viewer.php

    r25986 r26370  
    389389        if ($this->_config->get('view_in_url'))
    390390        {
    391             $this->_request_switch['view'] = Array
     391            $this->_request_switch['view-raw'] = Array
    392392            (
    393393                'handler' => array
     
    399399                (
    400400                    'view',
     401                    'raw',
    401402                ),
    402403                'variable_args' => 1,
    403404            );
     405            $this->_request_switch['view'] = Array
     406            (
     407                'handler' => array
     408                (
     409                    'net_nehmer_blog_handler_view',
     410                    'view',
     411                ),
     412                'fixed_args' => array
     413                (
     414                    'view',
     415                ),
     416                'variable_args' => 1,
     417            );
    404418        }
    405419        else
    406420        {
     421            $this->_request_switch['view-raw'] = Array
     422            (
     423                'handler' => array
     424                (
     425                    'net_nehmer_blog_handler_view',
     426                    'view',
     427                ),
     428                'fixed_args' => array
     429                (
     430                    'raw',
     431                ),
     432                'variable_args' => 1,
     433            );
    407434            $this->_request_switch['view'] = Array
    408435            (
  • branches/developers/flack/acltuning/net.nehmer.comments/handler/view.php

    r25294 r26370  
    313313        $this->_prepare_request_data();
    314314        $_MIDCOM->set_26_request_metadata($this->_get_last_modified(), $this->_objectguid);
     315
     316        if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')
     317        {
     318            $_MIDCOM->skip_page_style = true;
     319        }
    315320
    316321        return true;
     
    551556            {
    552557                $this->_display_datamanager->autoset_storage($comment);
    553                 $data['comment'] =& $comment;
     558                $data['comment'] = $comment;
    554559                $data['comment_toolbar'] = $this->_populate_post_toolbar($comment);
    555560                midcom_show_style('comments-item');
  • branches/developers/flack/acltuning/org.openpsa.core/static/jqGrid-3.6.5/css/ui.custom.css

    r26305 r26370  
    5151.ui-widget-content { border: 1px solid #BABDB6; background: white url(images/ui-bg_inset-hard_100_fcfdfd_1x100.png) 50% bottom repeat-x; color: #222222; }
    5252.ui-widget-content a { color: #222222; }
    53 .ui-widget-header { border: 1px solid #4297d7; background: #5c9ccc url(images/ui-bg_gloss-wave_55_5c9ccc_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
     53.ui-widget-header { border: 1px solid #4297d7; background-color:#3465A4; height: 15px; color: #ffffff; font-weight: bold; }
    5454.ui-widget-header a { color: #ffffff; }
    5555
     
    304304.ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; }
    305305.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
    306 .ui-datepicker select.ui-datepicker-month, 
     306.ui-datepicker select.ui-datepicker-month,
    307307.ui-datepicker select.ui-datepicker-year { width: 49%;}
    308308.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; }
     
    355355.ui-dialog { position: relative; padding: .2em; width: 300px; }
    356356.ui-dialog .ui-dialog-titlebar { padding: .5em .3em .3em 1em; position: relative; }
    357 .ui-dialog .ui-dialog-title { float: left; margin: .1em 0 .2em; } 
     357.ui-dialog .ui-dialog-title { float: left; margin: .1em 0 .2em; }
    358358.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
    359359.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
  • branches/developers/flack/acltuning/org.openpsa.core/ui.php

    r26305 r26370  
    2121        //first enable jquery - just in case it isn't loaded
    2222        $_MIDCOM->enable_jquery();
     23
     24        $_MIDCOM->add_jsfile(MIDCOM_JQUERY_UI_URL . '/ui/ui.core.js');
    2325
    2426        //needed js/css-files for jqgrid
Note: See TracChangeset for help on using the changeset viewer.