instantcms 2 виджет php

Нужен виджет вывода php кода

#1 1 декабря 2014 в 12:34
Скажите, вот в instantcms 2, в стандартных виджетах, есть виджет вывода html кода, а есть виджет вывода php кода?
#2 1 декабря 2014 в 15:44
Было бы не плохо. Решало бы задачи например той же SAPE.
#3 1 декабря 2014 в 17:51

Было бы не плохо. Решало бы задачи например той же SAPE.

DeeMon
))) Собственно для SAPE и нужно, сейчас просто в файле main.tpl.php в низ страницы код вставил. Так 4 ссылки купили и тишина… Ничего не пойму… И тут приходит комментарий модератора, что ссылки в подвале и оптимизаторы отказываются их размещать и… что-то про чёрный список… а вручную где-то в середине или сбоку под виджетами их вставлять ну вообще не хочется. Скажем в опенкарт для этой цели есть отдельный модуль который вставляет и html и php. Вообщем виджета хочется!)
#5 1 декабря 2014 в 19:12
Вот набросал. Там все просто, соотв применяем на свой страх и риск.
instantcms.ru/users/files/download4946.html
#6 2 декабря 2014 в 04:35

Вот набросал. Там все просто, соотв применяем на свой страх и риск.

IngDesign



Установка проходит через обычный установщик, что клёво, в виджетах появляется. А при добавлении на страницу, возникает ошибку. Код SAPE в виджете:

<? echo $sape->return_links(1); ?>
<? echo $sape->return_links(2); ?>
#7 2 декабря 2014 в 09:52
Проверьте код введенный в виджете. Вы открываете <?, а этого делать не нужно
#8 2 декабря 2014 в 09:54
Пишите

  1. echo $sape->return_links(1);
  2. echo $sape->return_links(2);
#9 2 декабря 2014 в 09:58
Код введённый в видежет я писал:

<? echo $sape->return_links(1); ?>
<? echo $sape->return_links(2); ?>

Vladimir

Не силён в PHP, а данный код на самом сайте SAPE, скажите как правильно написать… Да даже если ради тесте в окне виджета написать "1234", всё равно такая же ошибка…
#10 2 декабря 2014 в 10:01

Пишите

Код PHP:
echo $sape->return_links(1);
echo $sape->return_links(2);

IngDesign

Fatal error: Call to a member function return_links() on a non-object in /home/users/g/XXXXXXXXXXXXXXXXX/templates/default/widgets/php/php.tpl.php(1): eval()'d code on line 1
#11 2 декабря 2014 в 10:06
Ругается что нет такой функции
#12 2 декабря 2014 в 10:07

Да даже если ради тесте в окне виджета написать "1234", всё равно такая же ошибка...

Писать нужно php код
#13 2 декабря 2014 в 10:07
Хотя можно доработать
#14 2 декабря 2014 в 10:27
в шаблоне изменить
  1. eval($widget->options['phpcode']);
изменить на
  1. eval("\r\n?>\r\n ".$widget->options['phpcode']."\r\n<?php\r\n");
#15 2 декабря 2014 в 13:18

в шаблоне изменить
Код PHP:
eval($widget->options['phpcode']);
изменить на
Код PHP:
eval("\r\n?>\r\n ".$widget->options['phpcode']."\r\n<?php\r\n");

IngDesign

Теперь вроде всё отлично работает. Спасибо IngDesign!!! Раз уж в теме вопрос со ссылками поднимался, добавлю про SAPE. На сайте предлагается скачать и залить файлы в корневую директорию сайта. Так вот, в тех файлах есть файл sape.php, в нём необходимо изменить кодировку в строке 189 (возможно sape в будущем изменит скрипт, и строка соответственно поменяется)
$this->_charset = 'windows-1251';
изменить на
$this->_charset = 'utf-8';

Менять кодировку только здесь, иначе на сайте SAPE будет предупреждение о невозможности определить версию.
Менять кодировку нужно, в противном случае ссылки будут нечитабельными, в SAPE кодировка "windows-1251" .

Код которые предлагает SAPE можно вставлять целиком в виджет, необязательно в коде инстанта искать head.

Ссылка на скачивание готового виджета instantcms.ru/users/files/download4952.html
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.