Новости Joomla

👩‍💻 WT CDEK library v.1.3.0 - обновление PHP SDK для Joomla + CDEK.

👩‍💻 WT CDEK library v.1.3.0 - обновление PHP SDK для Joomla + CDEK.

Небольшая нативная PHP Joomla библиотека для работы с API v.2 службы доставки CDEK. Библиотека представляет собой клиент для авторизации в CDEK API по OAuth, работы с некоторыми методами API: получения ряда данных и расчета стоимости доставки. Поддерживается Joomla 4.2.7 и выше.

В пакет входят:
- библиотека Webtolk/Cdekapi
- системный плагин System - WT Cdek для хранения настроек и AJAX-интеграций
- task-плагин Task - Update WT Cdek data для обновления локальных копий справочников CDEK по расписанию
- web asset с официальным JavaScript-виджетом СДЭК

👉 v.1.3.0. Что нового?
- Полный рефакторинг библиотеки. Библиотека переработана в entity-based API с фасадом Cdek и отдельным слоем запросов. Обратная совместимость не нарушена, поэтому версия библиотеки - 1.3.0.
- Добавлена поддержка новых разделов API СДЭК. Добавлена поддержка новых разделов API СДЭК: webhooks, prealert, печатные формы, payment, passport, reverse, intakes и других сущностей.
- Улучшена интеграция с Joomla.
Улучшена интеграция с Joomla: installer script для layouts, новые поля Joomla Form для тарифов и обновлённые js виджета CDEK.
- документация библиотеки. Все методы библиотеки подробно описаны, а так же текст документации собран в отдельной папке в git репозитории и будет опубликован на сайте.

Библиотека эта нужна для разработчиков, создающих свои расширения для интеграции Joomla и курьерской службы CDEK.

Страница расширения
GitHub расширения

@joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 1637 Просмотров
*

CTPZ

  • Захожу иногда
  • 305
  • 24 / 5
Обьясните что к чему
« : 18.04.2011, 23:33:39 »
Вот код без комментариев вначале
Код
<?php

/** ensure this file is being included by a parent file */
defined( '_JEXEC' ) or die( 'Restricted access' );

$mainframe->registerEvent( 'onPrepareContent', 'pluginAddPhp' );


function pluginAddPhp( &$row, &$params, $page=0  )
{
  // expression to search for
  $regex = '/{(rdaddphp)\s*(.*?)}/i';

  $plugin =& JPluginHelper::getPlugin('content', 'rd_addphp');

  if (!JPluginHelper::isEnabled('content', 'rd_addphp')  ) {
$row->text = preg_replace( $regex, '', $row->text );
return;
}

// find all instances of plugin and put in $matches
$matches = array();
preg_match_all( $regex, $row->text, $matches, PREG_SET_ORDER );

foreach ($matches as $elm) {

parse_str( $elm[2], $args );
$phpfile=@$args['file'];
$output = "";
if ( $phpfile ) {
$phpfile = JPATH_ROOT . DS . $phpfile;
if (file_exists($phpfile)) {
ob_start();
include($phpfile);
$output .= ob_get_contents();
ob_end_clean();
} else {
$output = "File: $phpfile don't exists";
}
}
$row->text = preg_replace($regex, $output, $row->text, 1);

}
return true;
}
/* EOF */
?>

Это код плагина. Работает он просто.
В редакторе пишут
Код
{rdaddphp file=file.php}
и в статью вставляется содержимое файла file.php
Какие строки отвечают за параметр file?
« Последнее редактирование: 18.04.2011, 23:37:14 от CTPZ »
*

moskitos80

  • Осваиваюсь на форуме
  • 21
  • 3 / 0
Re: Обьясните что к чему
« Ответ #1 : 25.04.2011, 11:51:19 »
Здесь тупо из строки : {rdaddphp file=file.php} - при помощи регулярки отлавливают "file=file.php" :

Код
preg_match_all( $regex, $row->text, $matches, PREG_SET_ORDER );

А потом при помощи ф-ции:
Код
parse_str( $elm[2], $args );

получают $args['file']; - его значением будет строка: "file.php".

 Далее проверки на существование файла,
чтение его в буфер, и замена его содержимым строк "{rdaddphp file=file.php}":

Код
$row->text = preg_replace($regex, $output, $row->text, 1);

Всё очевидно :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

чему принадлежит $this

Автор voland

Ответов: 2
Просмотров: 1844
Последний ответ 09.04.2009, 23:53:07
от voland