Ejemplo n.º 1
0
 /**
  * Assign page's data to smarty
  * @access private
  */
 private function getData($idPage, $idParent = false)
 {
     $ModelCms = new frontend_model_cms();
     $data = parent::s_page_data($idPage);
     $dataClean = $ModelCms->setItemData($data, 0);
     $dataClean['seoTitle'] = $data['seo_title_page'];
     $dataClean['seoDescr'] = $data['seo_desc_page'];
     $this->template->assign('page', $dataClean, true);
     // ** Assign parent page data
     if (isset($idParent)) {
         $parent = parent::s_page_data($idParent);
         $parentClean = $ModelCms->setItemData($parent, 0);
         $this->template->assign('parent', $parentClean);
     }
 }
/**
 * Smarty {widget_cms_display} function plugin
 *
 * Type:     function
 * Name:     widget_cms_display
 * Date:     29/12/2012
 * Update:   10/03/2013
 * @author   Sire Sam (http://www.sire-sam.be)
 * @author   Gerits Aurélien (http://www.magix-dev.be)
 * @version  1.0
 * @param array
 * @param Smarty
 * @return string
 */
function smarty_function_widget_cms_data($params, $template)
{
    $ModelSystem = new magixglobal_model_system();
    $ModelConstructor = new magixglobal_model_constructor();
    $ModelCms = new frontend_model_cms();
    // Set and load data
    $current = $ModelSystem->setCurrentId();
    $conf = is_array($params['conf']) ? $params['conf'] : array();
    $data = $ModelCms->getData($conf, $current);
    $current = $current['cms'];
    $htm = null;
    if ($data != null) {
        // ** Loop management var
        $deep = 1;
        $deep_minus = $deep - 1;
        $deep_plus = $deep + 1;
        $pass_trough = 0;
        $data_empty = false;
        // ** Loop format & output var
        $row = array();
        $items = array();
        $i[$deep] = 0;
        do {
            // *** loop management START
            if ($pass_trough == 0) {
                // Si je n'ai plus de données à traiter je vide ma variable
                $row[$deep] = null;
            } else {
                // Sinon j'active le traitement des données
                $pass_trough = 0;
            }
            // Si je suis au premier niveaux et que je n'ai pas de donnée à traiter
            if ($deep == 1 and $row[$deep] == null) {
                // récupération des données dans $data
                $row[$deep] = array_shift($data);
            }
            // Si ma donnée possède des sous-donnée sous-forme de tableau
            if (isset($row[$deep]['subdata'])) {
                if (is_array($row[$deep]['subdata']) and $row[$deep]['subdata'] != null) {
                    // On monte d'une profondeur
                    $deep++;
                    $deep_minus++;
                    $deep_plus++;
                    // on récupére la  première valeur des sous-données en l'éffacant du tableau d'origine
                    $row[$deep] = array_shift($row[$deep_minus]['subdata']);
                    // Désactive le traitement des données
                    $pass_trough = 1;
                }
            } elseif ($deep != 1) {
                if ($row[$deep] == null) {
                    if ($row[$deep_minus]['subdata'] == null) {
                        // Si je n'ai pas de sous-données & pas de données à traiter & pas de frères à récupérer dans mon parent
                        // ====> désactive le tableaux de sous-données du parent et retourne au niveau de mon parent
                        unset($row[$deep_minus]['subdata']);
                        unset($i[$deep]);
                        $deep--;
                        $deep_minus = $deep - 1;
                        $deep_plus = $deep + 1;
                    } else {
                        // Je récupère un frère dans mon parent
                        $row[$deep] = array_shift($row[$deep_minus]['subdata']);
                    }
                    // Désactive le traitement des données
                    $pass_trough = 1;
                }
            }
            // *** loop management END
            // *** list format START
            if ($row[$deep] != null and $pass_trough != 1) {
                $i[$deep]++;
                // Construit doonées de l'item en array avec clée nominative unifiée ('name' => 'monname,'descr' => '<p>ma descr</p>,...)
                $itemData = $ModelCms->setItemData($row[$deep], $current);
                // Récupération des sous-données (enfants)
                if (isset($items[$deep_plus]) != null) {
                    $itemData['subdata'] = $items[$deep_plus];
                    $items[$deep_plus] = null;
                } else {
                    $subitems = null;
                }
                $items[$deep][] = $itemData;
            }
            // *** list format END
            // Si $data est vide ET que je n'ai plus de données en traitement => arrête la boucle
            if (empty($data) and $row[1] == null) {
                $data_empty = true;
            }
        } while ($data_empty == false);
    }
    $assign = isset($params['assign']) ? $params['assign'] : 'data';
    $template->assign($assign, $items[$deep]);
}
Ejemplo n.º 3
0
/**
 * Smarty {widget_cms_nav} function plugin
 *
 * Type:     function
 * Name:     widget_cms_nav
 * Date:     22/09/2012
 * Update:   10/03/2012
 * Output:
 * @author   Sire Sam (http://www.sire-sam.be)
 * @author   Gerits Aurélien (http://www.magix-dev.be)
 * @version  1.1
 * @param array
 * @param Smarty
 * @return string
 */
function smarty_function_widget_cms_nav($params, $template)
{
    $ModelSystem = new magixglobal_model_system();
    $ModelConstructor = new magixglobal_model_constructor();
    $ModelCms = new frontend_model_cms();
    // Set and load data
    $current = $ModelSystem->setCurrentId();
    $conf = is_array($params['conf']) ? $params['conf'] : array('level' => 'all');
    $data = $ModelCms->getData($conf, $current);
    $current = $current['cms'];
    $i = 1;
    $items = null;
    $output = null;
    if ($data != null) {
        // *** set default html attributs
        if ($params['htmlAttribut']) {
            $htmlAttr = $params['htmlAttribut'];
            $id_container = isset($htmlAttr['id_container']) ? ' id="' . $htmlAttr['id_container'] . '"' : null;
            $class_container = isset($htmlAttr['class_container']) ? ' class="' . $htmlAttr['class_container'] . '"' : null;
            $class_active = isset($htmlAttr['class_active']) ? $htmlAttr['class_active'] : 'active';
        }
        // *** format items loop (foreach item)
        foreach ($data as $row_1) {
            $items_2 = null;
            if (isset($row_1['subdata']) and is_array($row_1['subdata'])) {
                foreach ($row_1['subdata'] as $row_2) {
                    /** HTML FORMAT (LEVEL 2)**/
                    $data_item_2 = $ModelCms->setItemData($row_2, $current);
                    if ($data_item_2['active'] === true) {
                        $current_item = ' class="' . $class_active . '"';
                    } else {
                        $current_item = null;
                    }
                    $items_2 .= '<li' . $current_item . '>';
                    $items_2 .= '<a href="' . $data_item_2['url'] . '" title="' . $data_item_2['name'] . '">';
                    $items_2 .= $data_item_2['name'];
                    $items_2 .= '</a>';
                    $items_2 .= '</li>';
                }
            }
            /** HTML FORMAT (LEVEL 1)**/
            $data_item = $ModelCms->setItemData($row_1, $current);
            if ($data_item['active'] === true) {
                $current_item = ' class="' . $class_active . '"';
            } else {
                $current_item = null;
            }
            $items .= '<li' . $current_item . '>';
            $items .= '<a href="' . $data_item['url'] . '" title="' . $data_item['name'] . '">';
            $items .= $data_item['name'];
            $items .= '</a>';
            $items .= $items_2 != null ? '<ul class="hidden-sm">' . $items_2 . '</ul>' : '';
            $items .= '</li>';
        }
        if ($items != null) {
            $output = isset($params['title']) ? $params['title'] : '';
            $output .= '<ul' . $id_container . $class_container . '>';
            $output .= isset($params['htmlPrepend']) ? $params['htmlPrepend'] : null;
            $output .= $items;
            $output .= isset($params['htmlAppend']) ? $params['htmlAppend'] : null;
            $output .= '</ul>';
        }
    }
    return $output;
}
/**
 * Smarty {widget_cms_display} function plugin
 *
 * Type:     function
 * Name:     widget_cms_display
 * Date:     29/12/2012
 * Update:   10/03/2013
 * @author   Sire Sam (http://www.sire-sam.be)
 * @author   Gerits Aurélien (http://www.magix-dev.be)
 * @version  1.0
 * @param array
 * @param Smarty
 * @return string
 */
function smarty_function_widget_cms_display($params, $template)
{
    $ModelSystem = new magixglobal_model_system();
    $ModelConstructor = new magixglobal_model_constructor();
    $ModelCms = new frontend_model_cms();
    // Set and load data
    $current = $ModelSystem->setCurrentId();
    $conf = is_array($params['conf']) ? $params['conf'] : array();
    $data = $ModelCms->getData($conf, $current);
    $current = $current['cms'];
    $htm = null;
    if ($data != null) {
        $pattern['default'] = patternCms();
        $pattern['custom'] = null;
        if ($params['pattern']) {
            $pattern['custom'] = is_array($params['pattern']) ? $params['pattern'] : patternCms($params['pattern']);
        }
        $pattern['global'] = $ModelConstructor->mergeHtmlPattern($pattern['default'], $pattern['custom']);
        // *** format items loop (foreach item)
        // ** Loop management var
        $deep = 1;
        $deep_minus = $deep - 1;
        $deep_plus = $deep + 1;
        $pass_trough = 0;
        $data_empty = false;
        // ** Loop format & output var
        $row = array();
        $items = array();
        $i[$deep] = 0;
        do {
            // *** loop management START
            if ($pass_trough == 0) {
                // Si je n'ai plus de données à traiter je vide ma variable
                $row[$deep] = null;
            } else {
                // Sinon j'active le traitement des données
                $pass_trough = 0;
            }
            // Si je suis au premier niveaux et que je n'ai pas de donnée à traiter
            if ($deep == 1 and $row[$deep] == null) {
                // récupération des données dans $data
                $row[$deep] = array_shift($data);
            }
            // Si ma donnée possède des sous-donnée sous-forme de tableau
            if (isset($row[$deep]['subdata'])) {
                if (is_array($row[$deep]['subdata']) and $row[$deep]['subdata'] != null) {
                    // On monte d'une profondeur
                    $deep++;
                    $deep_minus++;
                    $deep_plus++;
                    // on récupére la  première valeur des sous-données en l'éffacant du tableau d'origine
                    $row[$deep] = array_shift($row[$deep_minus]['subdata']);
                    // Désactive le traitement des données
                    $pass_trough = 1;
                }
            } elseif ($deep != 1) {
                if ($row[$deep] == null) {
                    if ($row[$deep_minus]['subdata'] == null) {
                        // Si je n'ai pas de sous-données & pas de données à traiter & pas de frères à récupérer dans mon parent
                        // ====> désactive le tableaux de sous-données du parent et retourne au niveau de mon parent
                        unset($row[$deep_minus]['subdata']);
                        unset($i[$deep]);
                        $items[$deep] = $pattern['item']['container']['before'] . $items[$deep] . $pattern['item']['container']['after'];
                        $deep--;
                        $deep_minus = $deep - 1;
                        $deep_plus = $deep + 1;
                    } else {
                        // Je récupère un frère dans mon parent
                        $row[$deep] = array_shift($row[$deep_minus]['subdata']);
                    }
                    // Désactive le traitement des données
                    $pass_trough = 1;
                }
            }
            // *** loop management END
            // *** list format START
            if ($row[$deep] != null and $pass_trough != 1) {
                $i[$deep]++;
                // Construit doonées de l'item en array avec clée nominative unifiée ('name' => 'monname,'descr' => '<p>ma descr</p>,...)
                $item_dataVal = $ModelCms->setItemData($row[$deep], $current);
                // Configuration de la structure HTML de l'item
                $pattern['global']['is_current'] = $item_dataVal['active'] === true ? 1 : 0;
                $pattern['global']['id'] = isset($item_dataVal['id']) ? $item_dataVal['id'] : 0;
                $pattern['global']['url'] = isset($item_dataVal['url']) ? $item_dataVal['url'] : '#';
                $pattern['item'] = $ModelConstructor->setItemPattern($pattern['global'], $i[$deep], $deep);
                // remise à zero du compteur si élément est le dernier de la ligne
                if ($pattern['item']['is_last'] == 1) {
                    $i[$deep] = 0;
                }
                // Récupération de l'affichage pour le niveau
                $pattern['item']['display'] = is_array($pattern['global']['display'][$deep]) ? $pattern['global']['display'][$deep] : $pattern['global']['display'][1];
                if ($pattern['item']['display'] == null) {
                    $pattern['item']['display'] = $pattern['default']['display'][1];
                }
                // Récupération des sous-données (enfants)
                if (isset($items[$deep_plus]) != null) {
                    $subitems = $items[$deep_plus];
                    $items[$deep_plus] = null;
                } else {
                    $subitems = null;
                }
                $item = null;
                foreach ($pattern['item']['display'] as $elem_type) {
                    // BOUCLE de formatage des éléments contenus dans item
                    $pattern['elem'] = $pattern['item'][$elem_type];
                    if (array_search($elem_type, $pattern['item']['display'])) {
                        // Config class link
                        $item_classLink = null;
                        if (isset($pattern['elem']['classLink'])) {
                            $item_classLink = ' class="' . $pattern['elem']['classLink'] . '"';
                            $item_classLink = $pattern['elem']['classLink'] == 'none' ? 'none' : $item_classLink;
                        }
                        // Format element on switch
                        switch ($elem_type) {
                            case 'name':
                                $elem = $item_classLink != 'none' ? '<a' . $item_classLink . ' href="' . $item_dataVal['url'] . '" title="' . $item_dataVal['name'] . '">' : '';
                                $elem .= $item_dataVal['name'];
                                $elem .= $item_classLink != 'none' ? '</a>' : '';
                                break;
                            case 'descr':
                                $elem = magixcjquery_form_helpersforms::inputCleanTruncate(magixcjquery_form_helpersforms::inputTagClean($item_dataVal['content']), $pattern['item']['descr']['lenght'], $pattern['item']['descr']['delemiter']);
                                break;
                            default:
                                $elem = null;
                        }
                        if ($elem != null) {
                            $item .= $pattern['elem']['before'];
                            $item .= $elem;
                            $item .= $pattern['elem']['after'];
                        }
                    }
                }
                $items[$deep] .= $pattern['item']['item']['before'];
                $items[$deep] .= $item;
                $items[$deep] .= $subitems;
                $items[$deep] .= $pattern['item']['item']['after'];
            }
            // *** list format END
            // Si $data est vide ET que je n'ai plus de données en traitement => arrête la boucle
            if (empty($data) and $row[1] == null) {
                $data_empty = true;
            }
        } while ($data_empty == false);
        // *** container construct
        if ($items[$deep] != null) {
            $htm .= $pattern['global']['container']['before'];
            $htm .= isset($params['htmlPrepend']) ? $params['htmlPrepend'] : null;
            $htm .= $items[$deep];
            $htm .= isset($params['htmlAppend']) ? $params['htmlAppend'] : null;
            $htm .= $pattern['global']['container']['after'];
        } else {
            $htm = null;
        }
    }
    return $htm;
}