packages: function.alturl.php (NEW) - initial plugin for building best arti...
glen
glen at pld-linux.org
Thu Jul 22 11:30:46 CEST 2010
Author: glen Date: Thu Jul 22 09:30:46 2010 GMT
Module: packages Tag: HEAD
---- Log message:
- initial plugin for building best article url. issue 33426
---- Files affected:
packages:
function.alturl.php (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: packages/function.alturl.php
diff -u /dev/null packages/function.alturl.php:1.1
--- /dev/null Thu Jul 22 11:30:46 2010
+++ packages/function.alturl.php Thu Jul 22 11:30:40 2010
@@ -0,0 +1,79 @@
+<?php
+/*
+ * @see: https://eventum.dev.delfi.ee/view.php?id=33426
+ *
+ * Pick best match from alturls
+ *
+ * alturls structure:
+ * <code>
+ * array(
+ * 1 => array(
+ * 120 => http://www.elfride.delfi.ee/news/paevauudised/eesti/sorra-eesti-siga-tahab-et-eestlane-ta-ara-sooks.d?id=30440255,
+ * ),
+ * 3 => array(
+ * 150312 => http://naistekas.delfi.ee/suhted/suhted/sorra-eesti-siga-tahab-et-eestlane-ta-ara-sooks.d?id=30440255,
+ * 150034 => http://naistekas.delfi.ee/suhted/seks/sorra-eesti-siga-tahab-et-eestlane-ta-ara-sooks.d?id=30440255,
+ * ),
+ * 11 => array(
+ * 7591174 => http://taheke.delfi.ee/meelelahutus/nuputa/sorra-eesti-siga-tahab-et-eestlane-ta-ara-sooks.d?id=30440255,
+ * ),
+ * )
+ * </code>
+ */
+
+function smarty_function_alturl($params, &$smarty)
+{
+ // allows us to debug input
+ if (!empty($params['debug'])) {
+ echo "<pre>Smarty::function::alturl: ", print_r($params, 1), "</pre>";
+ }
+
+ foreach (array('alturls', 'url') as $param) {
+ if (empty($params[$param])) {
+ $smarty->_trigger_fatal_error("[plugin] parameter '$param' cannot be empty");
+ return;
+ }
+ $$param = $params[$param];
+ unset($params[$param]);
+ }
+ foreach (array('channel', 'category', 'debug') as $param) {
+ // optional params default to 0
+ $$param = !empty($params[$param]) ? (int )$params[$param] : 0;
+ unset($params[$param]);
+ }
+
+ if (!empty($params)) {
+ $smarty->_trigger_fatal_error("[plugin] unknown parameters: ". join(',', array_keys($params)));
+ return;
+ }
+
+# if ($debug) {
+# echo "<pre>vars:";
+# unset($smarty);
+# unset($params);
+# print_r(get_defined_vars());
+# echo "</pre>";
+# }
+
+ // empty channel id, we have no way pick anything
+ if (!$channel) {
+ return $url;
+ }
+
+ // direct match
+ if (isset($alturls[$channel][$category])) {
+ return $alturls[$channel][$category];
+ }
+
+ // fist from matching channel
+ foreach ($alturls as $k => $v) {
+ if ($k == $channel) {
+ foreach ($v as $url) {
+ return $url;
+ }
+ }
+ }
+
+ // just return url
+ return $url;
+}
================================================================
More information about the pld-cvs-commit
mailing list